text:
The Westin Birmingham
2221 Richard Arrington Jr. Boulevard North, Birmingham, AL, 35203, United States
Phone: (205) 307-3600
4.1/5 272 reviews
Embrace Uptown Birmingham From Our Luxury Hotel
The Westin Birmingham welcomes travelers to Birmingham, Alabama with spacious accommodations, thoughtful amenities and an inspired location in the heart of the city. Situated in Uptown, Birmingham's newest dining and entertainment district, our hotel is ideally positioned for exploring all that this dynamic Southern city has to offer.
Enjoy seamless access to the adjacent Birmingham-Jefferson Convention Complex (BJCC) or visit top attractions like the Alabama Sports Hall of Fame, the Birmingham Museum of Art and the Birmingham Zoo. After a busy day traversing the city, unwind in our beautifully appointed guestrooms and suites, all of which showcase the signature Westin Heavenly Bed® and Heavenly Bath®. Recharge with an invigorating session at our WestinWORKOUT® Fitness Studio, relax on our rooftop pool and then refuel at the award-winning Todd English P.U.B.
Get these exclusive SPG® member benefits:
- Best Rates
- Earn
- Free
Not an SPG Member?
Joining is quick, easy, and free. Join Now
Let's do breakfast
Save 40% on your 2nd night
Let's do breakfast
Start the day right with breakfast for two every day of your stay.
Book online, or call 877-782-0108 and ask for rate plan BAR1B.
Save 40% on your 2nd night
For every night you pay our regular rate, you can save 40% on the next.
- Arrive Thursday – Saturday
- A minimum stay of two (2) nights is required
Book online or call 866-716-8108 and mention rate plan ZB4.
Rates are pre-paid and non-refundable. 40% is taken off the best available non-restricted rate.
Terms & Conditions
© 2018 Marriott International, Inc.
Guest Reviews
Hear from our guests about their stay from 272 verified guest reviews
78%of our guests
recommend this hotel
Fairly new hotel, accommodating staff, nice beds with comfortable pillows
4.1 /5
Rooms & Suites
Hotel Information
- Check-In: 3 PM | Check-Out: 12 PM
- Complimentary Wi-Fi for SPG Members
- Complimentary Airport Shuttle
- Self-Park: $14/day | Valet: $25/day
- SPG Category 4
Hotel Features
- WestinWORKOUT® Fitness Studio
- The Hive Business Center
- Rooftop Pool + Hot Tub
- Dine | Todd English P.U.B.
- In-Room Spa
- Pet-Friendly
Explore Birmingham
Our Location
The Westin Birmingham is centrally located in Birmingham's vibrant Uptown Entertainment District.
What's Nearby
How To Get Here
Food & Drink
Enhance your getaway with a refreshing meal at Todd English P.U.B., one of Birmingham's top dining destinations.
- Todd English P.U.B.
- Lobby Lounge
- Octane Coffee Company
Todd English P.U.B.
- Cuisine Type: American
- SPG Discount: 10%
- Hours Of Operation
Hours Of Operation
Meetings & Events
The Westin Birmingham is the area's premier events destination, boasting elegant event space, professional planning services and a direct connection to the Birmingham-Jefferson Convention Complex (BJCC)
- 294 guest rooms
- 7,000 square feet of meeting space
- 2,500 square feet of pre-function space
- Connected to the BJCC offering 385,000+ square feet of meeting and exhibition space


text:
Investing For Income
Investment ISAs
Tax FREE Income Ideas
Poor Performing ISA?
High income up to 7% pa
Fixed income - 0.42% per month
Savings - Up to 5% interest
Cash ISAs
Cash ISA Transfers
Fixed Rate Bonds Paying 1.95% pa
Current Accounts Paying 5% pa Interest
Top 10 Tips for 2016-17 ISA season
Annuity Rates
Annuity Services
Compare SIPPs
Car Insurance Quotes - Up to 30% Off
Motorbike insurance - Cover from £75
Temp Car Insurance - Cover 1-28 Days
Van Insurance - Compare over 80 Insurers
Young Driver Car Insurance - Age 17-25
Home Insurance Quotes - Up to 45% Off
Landlord Insurance - Save up to 35%
Holiday Home Insurance - UK & Overseas
Flood Risk Insurance - Immediate Cover
Tenants Contents Insurance
Life Insurance Quotes - From £5 per month
Over 50s Life Insurance - £40 M&S Voucher
12 and 6 Month Income Protection Quotes
Pet insurance - 20% Online Discount
Travel insurance - No age limits
Get a mortgage agreement in principle
How much can you borrow - 5 minute form
Remortgage advice service
The tenant-landlord relationship can sometimes be seen as one fraught with potential tension and misunderstanding – but a recent survey by Saga Home Insurance paints a rosier picture. 77% of t...
Read more
New University term We are getting close to that time of year where certain areas face an avalanche of fresh faced students looking for places to live. While it can be a lucrative venture for landlo...
Read more
Aviva has highlighted the risk that flooding poses to businesses, and the importance of having adequate business insurance in place. Aviva business insurance is advising businesses on what measures ...
Read more
Hiscox Business Insurance - Apply
Whether you are a professional working on your own or a company owner, Hiscox Office Insurance will provide you with office cover specifically tailored to your needs. Hiscox office insurance offers you an 'all risks' policy to protect your office buildings and contents from damage or loss.
With Hiscox office insurance, you choose how much cover you want and what type suits your business best, and you can even add extras to your policy, such as specialist cover for:
With Hiscox office insurance you will be able to benefit from:
For a FREE quote and more information on the benefits of Hiscox office insurance, click on the link.
Fair Investment Company
is rated 4.43 stars by Reviews.co.uk based on 122 merchant reviews
© Copyright 2018 20/08/2018 / 14:12
Fair Investment Company Limited is authorised and regulated by the Financial Conduct Authority.

subset: commoncrawl


text:
Caribbean: eSeaClear Update
Published: 2012-08-26 15:57:18
Topics: Cruising Information
Countries: Bermuda , British Virgin Islands , Grenada , Guadeloupe , Martinique , Montserrat , Saba , Sint Maarten , Spanish Virgin Islands , St Barts , St Kitts & Nevis , St Lucia , St Martin , St Vincent & the Grenadines , Statia , Anguilla , Antigua & Barbuda
More information has emerged about this service following a recent news item posted by noonsite where we stated that eSeaClear, the Caribbean Pre-Arrival Notification System introduced at the beginning of 2009, was no longer operational.
Whilst eSeaClear appears to be operating on line, it is currently an accepted entry system for Antigua and Barbuda only. News of other countries signing up to the eSeaClear system will be posted as soon as they become active.
In the meantime, visiting yachtsmen should be ready to complete arrival paperwork at customs and immigration offices throughout the Caribbean (i.e. filling out paper forms in quadruplicate as in the old days).
The Caribbean Customs Law Enforcement Council (CCLEC) and eSeaClear ended their working relationship at the end of June. The CCLEC are working on developing a new system which will require just one initial clearance for the whole, or at least most, of the Caribbean. It is unlikely however that this will be ready for the start of the sailing season this year.
Note that previous users of the eSeaClear system who plan on visiting Antigua and Barbudua will need to re-enter their data as the system has been restructured. It can however now be used across all departments involved in clearing vessels, that is, Customs, Immigration, and Port Authority.


text:
Public Health Adviser
A Public Health Adviser is responsible for advisory and technical work involving all phases of public health communicable disease investigation. Typical work activities may include personally interviewing persons reported as infected with or exposed to communicable disease; participating in planning and estimating operational and administrative needs for carrying out blood testing and case finding programs or public education; advising on and/or installing systems of clinical records to permit the collection of data for statistical analysis, program evaluation, therapy evaluation, and medical research studies; and keeping informed of new techniques and their suitability for adaptation to local programs as to progress of communicable disease control programs with and outside the area of service.
Public health advisers may report to the Commissioner/Public Health Director or authorized designee, and may be given considerable leeway for the exercise of independent judgment in implementing the goals of the communicable disease program of the Health Department.
Education required
Public health advisers must have a Bachelor's degree, supplemented by at least 15 credits in Health, Natural or Behavioral Science (i.e. Biology, Psychology or Physiology) and one year experience working with the public which includes interviewing, instructing or providing information.


text:
Who I am and why you should bother listening to me
My name is Eric Barstow, I'm 29, and I live in Fort Collins, Colorado.
I've started 15ish businesses in the last 5 years. I travel about 75 days a year. I work 30-40 hours per week when I'm not on vacation. I live a ridiculous life - and I am overly passionate about entrepreneurship and the life it provides.
I want to help entrepreneurs everywhere embrace the true potential of entrepreneurship and what it can provide for your life. It's time to have it all.
Before I tell you about my businesses, you should know about my lifestyle.
I travel about 75 days per year... This year I went to Greece for a bachelor party (incredible). I spent a little over a week in Dominican Republic learning how to Kite Surf - which I love and can't wait to do again. I went to Nantucket for a weekend, spent a week on a beach with some buddies, I went to Los Angeles for a party at Playboy Mansion... Cross that off my bucket list! I went to Vegas. Spent a couple weeks in Vail snowboarding. Lake Tahoe for the 4th of July with 10 friends. Puerto Rico for a few days (kind of a work trip). And a couple of others...
I rarely work more than 30-40 hours per week... when I'm not on vacation. Life balance is important. My time off is important. My relationship with my girlfriend is important. Spending time with friends is important. Golf is important - seriously! I'm not a business owner because I want to work all the time. I'm a business owner so I can control WHEN I work. 60 hour work weeks is not the way...
I've started 15ish businesses in the last 5 years... I love business and I love entrepreneurship. I get an idea, and I go for it. I've failed a lot of times. I've learned a lot from those failures. I've succeeded more after each one...
I started a house painting company in 2010. In 2014 we did $1.1 million in revenue. In 2015 we did $2.5 million and expanded into 3 new locations. In 2016 we are expanding into 10 new locations.
I started an online marketing company 3 years ago. We've tripled our revenue every year and sold over $400,000 in 2015.
I started an online education company teaching people how to start or grow their painting business. I've tripled my income 2 years in a row in this business.
I just started 4 new businesses... We're creating online pole fitness instructional classes for women who want to learn pole dancing. After spending $500,000 on Google AdWords in the last 3 years, we're teaching people how to spend their money more efficiently on Google. We're setting up a website development company for contractors because all of the other services out there suck. Here I'm teaching entrepreneurs how to create their life, control their time & money, and not be run by their businesses.
I started many others that failed, I sold, I quit on, etc...
And remember - all of these businesses and all this growth, and I'm not working the stereo-typical "60 hour work weeks" "slaving away" "working myself to the bone"... No. Not at all.
I'm spending time with people I care about. I'm building businesses which I love. Helping others build businesses. Providing great opportunities to people and great value to my customers.
I'm traveling the world, experiencing more in a single year than some people do in their entire lifetime.
I could go on and on...
And I want to teach people how I create this kind of life for myself. A life that goes the way I want it to.
It is not by accident.
It is not luck.
I was not born knowing how to do this.
I have had incredible coaches, mentors, and experiences that have guided me, and taught me. And I've worked my ass off.
And I've learned.
And I want to teach you what I've learned. So that you can live the life that you want.
You may not want my life - and I don't want to teach you how to have my life. I want to teach you how to have exactly the life YOU want. I want you to be able to say how life goes.
I want to help entrepreneurs everywhere embrace the true potential of entrepreneurship and what it can provide for your life. It's time to have it all.
Sign up below.


text: Actual birthday was very quiet because she had been running a fever and we kept her home from school. Party? Total opposite. Kind of a mad house with a dozen kids making masks, playing with toys, roasting marshmallows, and eating cake in a tent in the living room – but everyone lived to tell about it and Maya ... [Read more]


text:
Design and Renovations
Collaboration between design, construction and our clients is at the heart of our renovation process. Our "hands-on" team works closely every step of the way to maximize efficiencies, take action on challenges and ideas, and create a space that is your own.
Our integrated process was rewarded with 5-Star customer satisfaction reviews in both 2015 and 2016, the ultimate measure to our success.
Reviews for
Truly a talented, professional, organized and creative team of professionals. Cecily has both a creative mind... Read More
The Woolrich Group undertook a very challenging renovation of our sixty year old home which included the desig... Read More
Cecily and her team are phenomenal assets if you're planning a large scale renovation. We have worked with the... Read More
We'd love to sit down
and discuss your renovation ideas
and questions over a coffee.


text:
This new monitor from ASUS is a quad HD display that comes at a very decent price. It comes with a neat design and is aimed at people who game a lot and media consumers. In this ASUS PB258Q 25 inch monitor review, we'll take a good look at this display and see if it has the specs to become your next QHD display.
The monitor has an edge to edge display which means there is absolutely no bezel involved. It is a wonderful design when looked from the front. Even when looked from the monitor isn't that bulky. The stand is solid and holds good.
Click Here to see what the users are saying!
You can tilt the monitor to suit your angle. You can also swivel and adjust the height according to your needs. Another necessary feature here is the ability to convert this to a vertical display. This is very useful for people who code, work on graphics, etc. You can also mount it on the wall as it is VESA compliant.
ASUS PB258Q Specs and Features
This 25 inch display comes with a resolution of 2560 x 1440 pixels. This is four times the resolution when compared to a normal HD display. With a viewing angle of 178 degrees, you can look at your monitor from any angle and see a clear picture. The native aspect ratio of 16:9 leads to a widescreen display and with this you can fit in more windows and be more productive than before.
The pixel density here is a pretty good 117 pixels per inch. This is impressive considering the size of the monitor. What this pixel density does is it makes sure there is no pixel when viewed from a distance. So you get a clear picture with a lot of details in it.
The response time is good at 5ms. The faster the response time is, the smoother your picture will be. So with a response time like this you can enjoy fast moving action without any blurring effects. So the next time you find yourself watching a race or an action movie, note how smooth the picture is.
The ASUS PB258Q comes with inbuilt flicker free technology. It reduces flicker and makes sure your eyes doesn't take up any damage. It also comes with low blue light filter to protect your eyes from harmful blue light that comes from the display.
The monitor features a new feature called the Splendid plus Video Intelligence technology. This Splendid plus comes with 8 preset modes – Reading, Scenery, Dark room, Night view, Game, Standard, sRGB and theater modes. Though these are perfect, you get the closest setting possible and can adjust from there.
The ports you can find in the ASUS PB258Q are a HDMI port, a display port and a dual link DVI-D port. There is also an earphone jack which can also come in handy. There are a couple of inbuilt speakers which sound okay but you need external speakers if you are looking for quality sound experience.
The display also comes with Energy star and EPEAT certification which confirms that it comes with both energy conserving and environment friendly features.
ASUS PB258Q 25 inch Monitor Review: Verdict
That brings this review to an end and now it is time for the verdict. This new QHD monitor is a very good display. It is perfect for both work and play. The price is also not that steep which makes this a very good offer. Go get this one if you need a reasonably priced QHD display with good features.
Click Here to purchase this product from Amazon!


text:
Some New Information on TES V: Skyrim Surfaces
Posted: 12:52PM
Author: bp9801
Recently, one of the editors over at Kotaku got a chance to play a little bit of Skyrim at PAX and discuss many things with the game's creative director, Todd Howard. One of the things covered is a list of which characters in the game you can and cannot kill. Howard said that "Central" characters cannot be killed and will merely drop to their knees when defeated. Rare "Protected" players can be killed by you, but not by other NPCs in the game. Both of these ensure that certain quests and characters will always remain possible, so you can't just kill anyone wily nily in the game. Characters who are neither of those can be killed by anyone, be it your own hand or one of the NPCs in the game. In The Elder Scrolls V: Skyrim, you can command animals to fight at your side, but those animals won't always obey you or be of use to you. Some animals, like a deer, may run away from any combat you engage in, while others, like wolves, can help you out.
One of the problems some people have with The Elder Scrolls and even Fallout games are the limits on how much weight you can carry. Howard knows this and says that the encumberance limits have been raised compared to Oblivion, but would not say how much more. You can raise your stamina level in the game to be able to carry a ton more items and heavier equipment than a character who does not, obviously, so hopefully we won't have to shed some gear just to be able to escape from a dungeon. As for the game's difficulty levels, Skyrim more closely resembles Fallout 3 than Oblivion in that regard. Gone is the ability that raises the level of all NPCs and monsters like in Oblivion, and in its stead are different areas of Skyrim with set difficulty levels. These levels can raise or lower some depending on your character level, so if you take a low level character into a high level area, you will be challenged. Howard did say that the loot you can find in those areas will be of the rare variety, so you will be richly rewarded if you manage to survive the trip.
There will be DLC for Skyrim and yes the first two will be exclusive to the Xbox 360 at first, but Howard did not say what we can expect from the DLC. He said that the team hasn't nailed down exactly what the DLC will be like, but expect it to be large, like Point Lookout of Fallout 3 large. Lastly, Howard said that the team has learned from Fallout 3 and when you defeat the final boss in Skyrim, you can still continue adventuring. The Elder Scrolls IV: Oblivion let you keep on playing after defeating the final boss, and in fact gave you a nice set of armor after two weeks of in-game time had passed. Skyrim will be like Oblivion in that regard, meaning the finale is not an actual finale and the game is forever open-ended. Howard also said that future Bethesda games will let you keep on adventuring after the final boss, which to me is the greatest news of all.
The Elder Scrolls V: Skyrim launches on November 11th for the PC, PS3, and 360.


text:
The English department has three computer lab spaces: LA-202, LA-204, and LA-206. Rooms LA-202 and LA-204 are each equipped with desktop computers and a standard podium and overhead projector for instructor use. LA-206 was remodeled in the Summer of 2016 to be redesigned as the Collaborative Learning Space.
What is in the Collaborative Learning Space?
The room features five interactive workstations, with big-screen TVs and Solstice devices that allow for wifi streaming from phones, tablets, and laptops. A sixth table and a sixth larger TV and Solstice device allows for instructors to directly stream learning content to an entire class at once.
The space also boasts a large, comfortable couch with a coffee table and additional stools, as well as three large mobile whiteboards. The north end of the space features a dry erase wall, where students and faculty may further collaborate and write together. Finally, the room has a fully-equipped laptop cart, with laptops available for checkout while in the room.
Why Did We Change the Room?
Those familiar with the Liberal Arts building may wonder why LA-206 has been drastically changed from our other computer labs. In short, we were responding to faculty and student needs for a more collaborative, student-centered learning environment. Decisions for this room were guided in a myriad of ways, which we have outlined below.
Reason #1: The desktop computers were not being used
In January 2016 the English Department's Technology Committee took a survey of all instructors who consistently teach in the department's labs and discovered that 100% of students and teachers did not use the majority of the desktop computers that line the walls of our labs; 87% never used them at all. 52% of respondents reported that about a third of their students brought their own devices, while 43% said that more than half of their students preferred and brought their own devices for use in class. Furthermore, many instructors reported in their qualitative responses that the existing computers were slow and cumbersome. This clearly helped inform our decision that the money that was annually spent toward purchasing desktop computers for the computer labs could potentially be leveraged in a better way for student learning.
Because 100% of survey respondents told us that they had never seen more than six or seven desktop computers being used at once, we replaced 25 desktop computers with a suite of eight brand-new laptops.
Reason #2: Projection technology was outdated
We also received consistent feedback, both from the survey and anecdotally, that the podium and projection technology was outdated, slow, or had other issues (such as burned out bulbs or not consistently turning on or off). Therefore, we replaced the expensive projection technology with updated wifi technologies that allow students and instructors to stream to one of five 40" TVs in the room, or to a central 60" TV.
Reason #3: Furniture was broken and insufficient to seat a full classroom
One of the biggest concerns about the existing space was with regard to the furniture. Classes held in our labs have a maximum cap of 25 students. In the old space, when a class was full, not every student could have a good seat: that is, at a table that wasn't broken, and in a position to clearly see the instructor and anything that was being projected in the room. Therefore, the new classroom design features five new large tables, seating five people each, as well as an instructor's table, extra chairs, a couch, and three stools — plenty of comfortable, modern seating to seat an entire class plus guests, with lines of sight to every TV monitor in the room.
We also designed the room with accessibility and equity in mind. The table closest to the door of LA-206 is height-adjustable; and we purchased a suite of chairs that both have arms (to assist those who need help standing) and without (to assist those who need a larger space to sit). All of our decisions were carefully and mindfully determined to ensure that the space could be used equally and fairly.
Reason #4: Whiteboard space was blocked by the projection screen
With the original lab classroom layout, the small whiteboard that was in the room was nearly entirely blocked by the screen from the projector, effectively making it unusable. Many instructors mentioned this frustration. Therefore, in the new space we added three large, mobile whiteboards, as well as an entire wall space that has been painted in dry erase paint — giving both instructors and students many options to present and collaborate on information using whiteboards.
Reason #5: Instructors asked for a more collaborative space
In the survey, several instructors also mentioned that the existing layout — which featured desktop computers around the perimeter of the room — was challenging to be able to encourage students to work in groups. Thus, the Collaborative Learning Space was designed as a learning environment where instructors could bring students together collectively and in smaller groups to collaboratively imagine, create, and write.
Reason #6: Research has shown that an active learning environment is best for students
Based on extensive pedagogical research, our Collaborative Learning Space uses what is called a SCALE-UP model (Student-Centered Active Learning Environment with Upside-down Pedagogies). SCALE-UP classrooms put students first, by emphasizing active learning opportunities for students, with a focus on hands-on application of materials and concepts. Decades of research has shown that SCALE-UP learning environments:
- Help students exceed final grade expectations.
- Affect teaching-learning activities, even when the instructor attempts to hold these activities constant.
- Are not conducive to a lecture-based approach; student performance improves when instructors move to active, student-centered teaching methods.
- Are perceived in a largely positive light by students and instructors, but some adjustment of teaching techniques is necessary (Univ. of Minnesota, 2016).
Our research so far shows that we may be the first university to implement a SCALE-UP learning environment in an English Department. Similar spaces have been designed at institutions such as North Carolina State University, Clemson University, University of Minnesota, McGill University, Stanford University, University of Missouri-St. Louis, and Georgia Tech, among others. The English Department at Boise State is one of the first such spaces at Boise State and possibly the first English Department worldwide to implement a SCALE-UP model.
What Should I Expect if I am Scheduled to Teach in the Collaborative Learning Space?
Depending on your teaching philosophy and pedagogical approach, the room will either be a natural fit, or something that requires a bit of getting used to. The space has specifically been designed for instructors who primarily use (or would like to learn to use) active, collaborative learning techniques that focus on in-class activities and student-centered collaboration.
In the space, students and instructors each have access to directly stream content to any TV in the room, and from nearly any device (phone, tablet, or laptop). All it takes is a quick installation of an app, and your devices will be ready to connect to any monitor in the room. This means that the possibilities for instructor-student collaboration are nearly limitless, from breaking students into groups, to bringing everyone together for a rich discussion. Instructors should expect to find that there is intentionally no one focal point to the room. Rather than the attention being aimed at a projection screen or instructor, the learning in the space is shared among all participants.
Whereas the Collaborative Learning Space does feature a central monitor where instructors can display and stream content to an entire class, instructors who rely primarily on a lecture-based pedagogy may find that a more traditional classroom may better suit their needs.
How Can I Get Training on the New Technology?
All instructors who are scheduled to teach in LA-206 will be given hands-on training on the room's technologies, as well as ideas for how to work in and adapt to the space. If you are not one of the instructors currently scheduled to teach in the room, or if you would simply like more information, please feel free to contact the Director of Technology and Web Presence: Dr. Carly Finseth at email@example.com.
Why Does the Lab Have This, or Not Have That?
The short answer to this question is budget. While the Technology Committee has done their best to recommend technological solutions for the lab that suits everyone's needs, we couldn't meet everyone's wish list for this year. However, we do have plans moving forward to update additional lab classrooms and add further functionalities, as needed, and as the budget permits.
Who Do I Contact if I Have Further Questions About LA-206 or the English Department Lab Classrooms?
Please feel free to contact our Office Manager, Maya Duratovic, at firstname.lastname@example.com, or the Director of Technology and Web Presence, Dr. Carly Finseth, at email@example.com.
The faculty on the 2015-2016 Technology Committee (Dr. Carly Finseth, Shauna Anderson, and Dr. Michal Temkin-Martinez) would like to thank many people who helped make this lab remodel possible. This renovation had many twists and turns, as well as innumerable unexpected surprises. COAS IT Systems Manager Dave Monroe and Department Manager Kim Brandt managed the majority of the work without complaint. As we planned the project and as we needed to troubleshoot, Grace Tuttle of OIT/Learning Technology Solutions unselfishly provided expertise and resources. Lana Grover and Devshikha Bose of the IDEA Shop supported us with advice and research. Thank you, too, to our Financial Technician Randy Tucker, and to Helen Davis and April Lanningham of the Boise State Capital Planning and Space Management team, for helping us plan and budget the renovation. We also couldn't have done any of this without the support of the Boise State Facilities Operations and Maintenance staff. And, of course, thank you to our Department Chair, Dr. Michelle Payne, for supporting our efforts.
Thank you to the English Department faculty, staff, and students for your support!


text:
In an effort to expand the FARG (French Army Reenactment Group) motor pool we have purchased a SUMB lorry.
The SUMB is the product of the union of two major motor manufacturers in an effort to produce a medium capability all terrain platform for multiple applications. SUMB or Simca Unic Marmon Bocqet for its correct name was produced between the late 50's to the 70's and continued in use until the 90's.
The original units came with V8 petrol engines and proved to be very thirsty indeed. They were upgraded (as were all french military vehicles) in the mid 70's and sprayed nato camoflage and canvas roofs were changed to the rubberised material you find on most SUMBS and hotchkiss jeeps to this day. Once again in the late 90's the french army attempted to prolong the life of the SUMB by having them totally rebuilt but using diesel powerplants and new electronics/ brakes. Unfortunately these didn't see much service as the vehicles were pulled from service and sold off in large auctions in the late 90's.
I personally attended a few of these auctions in france and sorry looking sumbs were selling for 100's of pounds each, and good examples were lucky to reach £1000! A lot of truck for not much money!!
The FARG have now a deisel rebuilt model being delivered soon (pictures will follow) converted back to original livery and will appear in reenactment scenarios over the coming years.
The pictures to the right show the SUMB in 'action' during the 70's
The colour picture with the rear missing and cab folded down - shows how the vehcile outline coule be reduced dramatically, how this can keep the vehicle weight to a minimum and the centre of gravity to be kept low as possible to provide excellent x-country capability.
The final picture is a close up of the original cab/ driving position, showimg how there wasn't much room for the passenger!!
If you are interested in joining us - feel free to mail


text:
Your cart is empty.
The McDavid Level 3 Dual-Disk Knee Brace is designed to help in the prevention of and recovery from MCL and ACL injuries. The 100% latex-free neoprene brace features a seamless, perforated back panel for comfort and dual disk hinges with hyperextension stops and wide hinge paddles for support. Top and bottom hook-and-loop closures provide a secure fit. Fits right and left legs.


text:
I have always thought it was dumb for Windows to put My Documents on the C Drive with the operating system. Everytime you need to re-install Windows, you have to back up and restore your documents. The simple solution to this is to move "My Documents to another drive letter (either a different physical disk, or another partition). I have done this for years, but whenever I re-install Windows, I lose everyting on my Desktop, all of my Favorites, etc.
Recently I have started to move the entire "Documents and Settings" Folder to another drive after installing Windows. The recommendation is to do this at the time of installation, but it is a pain to do and presents its own challenges in getting it to work right as you can't always be sure which drive letter Windows is going to assign a given partition upon installation (if there is a USB card reader, it usually takes the next available drive letter before the 2nd hard disk). Once I have the computer configured and have moved the "Documents and Settings" folder to another drive, and after applying all Windows Updates and before installing any other software (especially Anti-Virus), I create a Ghost Image file of the C Drive that I can restore when Windows starts malfunctioning (you notice I said when, not if Windows starts malfunctioning because if you continue to use it, eventually there will be problems).
When I need to Restore the C Drive, all of my Documents and Windows Setting are still on the separate partition and have not been disturbed. Sure, the desktop may have links to programs that don't exist, and the same is true for the Start Menu, but this is a good thing, it reminds me of the programs I had installed when I did the restore. If I still want to use the program, I can re-install it. If I don't want to use the program, I simply delete the link.
Below are the instructions that I follow to move the "Documents and Settings" folder.
The following is based on KB236621 but revised for XP.
1. Open Explorer.
2. Create a new folder called to replace 'C:\Documents and Settings' in your desired drive.
3. Create a new profile with administrative permission and call it "move".
4. Logoff then logon to the "move" account.
5. Copy all the folders inside 'C:\Documents and Settings\' (except the 'LocalService', 'NetworkService', and 'move' folders) to the new location. (The LocalService and NetworkService folders will be re-created automatically.)
6. Open a Registry Editor (Tip use a 2nd Party Registry Editor like Registry Toolkit by Funduc Software Inc http://www.funduc.com) and Find & Replace all instances of "\Documents and Settings\", including:
'C:\Documents and Settings\'
'\Device\HarddiskVolume1\Documents and Settings\' (This may be different if Windows resides on a different HarddiskVolume)
'%SystemRoot%\Documents and Settings\'
'%SystemDrive%\Documents and Settings\'
Search Registry for any other entries that may need to be updated by searching for '\Docum' and evaluating all results
7. Shutdown your computer, wait 30 seconds and turn it on.
8. Logon to the 'move' account.
9. Repeat step 6.
10. Reboot and logon to your original account.
11. Test by renaming the '\Documents and Settings\' folder in drive C. If you can rename it then it worked!
12. If everything's OK, you can delete the 'move' account you created before.
Here is a link to how to do the same with the 'User' Folder in Windows Vista


text:
Provide your customers with products and services they love and you'll get extra visits to your store, higher spend and commission in your pocket.
Bhrunil Patel at Magnum News explains why PayPoint One is right for his store.
Increase footfall and spending in your shop by offering services that customers love
PayPoint retailers across the UK process over 15 million PayPoint transactions every year, helping to drive millions of customers into their stores.
him's Convenience Tracking Program 2016 shows that the average PayPoint customer visits the shop more frequently than other shoppers – 4.6 v 3.6 times per week. They also spend more per visit - £7.66 v £6.13, which means they are worth 60% more over a week to you as a retailer – or £35 v £22.
You'll also get all of this:
contact centre support, 365 days a year
free point of sale
training and ongoing technical support from over 50 field-based representatives
online access to commission statements and more via MyPayPoint.com
commission credited to your bank account weekly
reduced banking costs - offsetting money paid in and out with Single Daily Settlement which is unique to PayPoint
PayPoint is a leading provider of easy payment solutions for major consumer service organisations.
Our industry-leading payments solutions deliver first class service to the customers of over 1,500 clients - from utility companies, retailers and transport operators, to mobile networks and local and national government. Here's just a few of the clients we work with:


text:
Sleek Styling - Single Level Entertaining - Superb Sea-Keeping Capabilities - Alfresco Cockpit Seating, Foredeck Lounge, Aft Galley, Spacious Salon, Atrium Lounge, 2 Staterooms, 2 Designer Bathrooms, Tender Garage. State-of-the-Art Volvo Penta IPS.
"Owners of the 4800 Sport Yacht will enjoy Riviera's spirited performance, joystick maneuverability and the innovative Glass Cockpit system that makes boating today with Riviera just so easy. There is no finer way to play."
2019 Riviera 4800 Sport Yacht w/ Twin Volvo IPS 800 D8 (600 HP ea.) ACP, Helm Joystick
White Hull Color w/ Black Bootstripe, Satin Walnut Interior
Enclosed Hardtop w/ Electric Webasto Sliding Sunroof, Sliding Side Windows, Spotlight, Windscreen Cover
Indoor/ Outdoor Living Design- Sliding Glass Door & Aft Galley Glass Awning Window
Tender Garage w/ Electric Actuator & Winch w/ Tender 2.7m RIB (no OB)
Dual 12" 7612 Glass Cockpit Multifunction Displays, Volvo/Garmin Autopilot, Garmin GSD 24 Sounder
VHF, Compass, Twin Lever Electronic Controls, C-Zone Digital Switching System, C-Zone iPad Connectivity
Additional Cockpit Joystick
Volvo Digital Positioning System
Trim Tab Upgrade (Volvo Trim Assist)
Anchor Upgrade (S.S. Ultra)
Deluxe Electric Helm Chair, Companion Chair Leather Steering Wheel, Ergonomically Designed Console
Foredeck Sunpad w/ Fold-Up Backrest, Drink Holders, Cover
Forward Deck Sunpad Upgrade (Fold-Up Wagon Top, Stamoid Cover)
Forward Deck Speakers (2), Remote
Teak Laid Cockpit Floor, Swim Platform, Stairs
Cockpit Table Upgrade (Teak/Wenge w/ Electric 3-Stage Pedestal, Infil Cushion)
Cockpit Drop Cover (3-Sided Zip)
Upholstery Upgrade (Cockpit Lounge, Foredeck Sunpad, Matching Cockpit Backrest)
Cockpit Wetbar Sink, Icemaker, Refrigerator Unit, Cockpit Grills (2-Mounted at Transom), Drink Holders
L-Shaped Starboard Lounge, Bench Lounge (Aft Facing Forward), Fixed Pedestal Table (Teak/Wenge), Covers
Hydraulic Swim Platform, Recessed S.S. Ladder, Cockpit H-C Hand Shower
Generator, Onan EQD 13.5 kW, AC/ Reverse Heat-36,000, 24,000, 18,000, 12,000 BTU
Salon Leather Lounge w/ Dinette Table, Cocktail Cabinet w/ Bottle & Glass Storage
Side Window Covers (Saloon)
Flooring Upgrade: Saloon/ Galley, Stairs, Companionway/Lower Lounge
Salon 32" LED TV w/ Electric Lift, Bluetooth AM/FM, CD/DVD, 4 Saloon Speakers, 2 Cockpit Speakers, Remote
Galley: 2-Burner Cooktop, Convection Microwave, Refrigerator/ Freezer (2), Refrigerator (1) Drawers, S.S. Sink, Solid Surface Countertop, Exhaust Fan, Storage Cabinets & Drawers, LED Lighting
Galleyware Package: 32 pc.Cutlery & Dinner Set w/ Salad Bowl, Goblets, Tumblers, Flutes, Napkins
Washer/ Dryer Combo
Forward Master: Queen Walk-Around Berth w/ Headboard, Cedar-Lined Hanging Lockers, Drawers, Hull Windows w/ Blinds, Carpet, Private Entrance Door, 28" LED TV, AM/FM/CD/DVD, iPod Interface, 2 Speakers
Master Ensuite Private Head & Guest Head: Each w/ Encl. Glass Shower Stall, Vacuflush FW Toilet, Vanity
Bathware Package: Beach (4), Bath (8), Hand (3), Face (3) Towels, Accessories, & Bath Mats (3)
Aft Stateroom: Twin Single Berths (Slide Into Double), Single Berth (Bed Covers & Sheets), Blanket Box, Cedar-Lined Locker, Drawers, Fixed Hull Windows w/ Blinds, Opening Portholes
Aft Stateroom 24" LED TV/AM/FM/CD/DVD, 2 Speakers, iPod Interface
Lower Lounge: (Starboard) L-Shaped Leather Lounge w/ Removable Backrest (Sleeps 1), Hull Window w/ Blind, Hatch w/ Screen & Blind, 28" LED TV, AM/FM/CD/DVD, 2 Speakers, iPod Interface
Watermaker Preparation
Secondary Freshwater Pump
Watertight Collision Bulkhead –Forward, Independent Compartments Throughout Hull
Ocean Freight
Prep, Make Ready, Fuel
Mashpee/ Cape Cod: 508-477-4626
Peabody/ North Shore: 978-535-1700
Charlestown Marina/ Boston Waterfront: 978-535-1700
100 Falmouth Road/Rt. 28
Mashpee, MA 02649
United States


text: Kahana Village represents a tremendous value for the money. It's location is convenient to the attractions on Maui's west coast. The property is immaculately maintained, and their pool/hot tub is quite nice. The staff is professional, knowledgable, and accommodating. This was our third visit, and we definitely will continue to return as often as possible. Point of reference: my cousin... More


text:
Welcome to the Annupuri Lodge at Niseko
Rooms and Rates
All rates are per person/per night and include daily hot breakfast, tax included. No hidden charges!
Private King / Twin Room
from ¥7,900
The Annupuri Lodge has 5 Private King / Twin Share Bedrooms, accommodating two persons in either one king-size bed or two separate twin beds.
Season Start Special (12/1〜12/14); ¥7,900
Xmas & NY (12/15〜1/5); ¥12,900
Regular Season (1/6〜2/01, 2/11〜3/3); ¥12,900
Chinese NY (2/16〜2/25); ¥12,500
March Powder Special (3/4〜4/8); ¥7.900
Private Large Units
from ¥7,700
The Annupuri Lodge has 2 Private Large Units, sleeping a maximum of 5 people. The unit can be configured to feature one king-size bed plus three separate singles or a total of five separate single beds.
Season Start Special (12/1〜12/14); ¥7,700
Xmas & NY (12/15〜1/5); ¥10,800
Regular Season (1/6〜2/01, 2/11〜3/3); ¥9,900
Chinese NY (2/02〜2/10); ¥10,800
March Powder Special (3/4〜4/8); ¥7,700
from ¥6,100
Each stay at the Annupuri Lodge Niseko includes a western breakfast, and the Lodge is within walking distance to a number of excellent restaurants.
All rooms use shared newly-renovated bathrooms (separate men's and women's.) There is also a newly-renovated men's shower room and women's large bath and shower room. Guests may also enjoy the Japanese "Onsen" style indoor/outdoor bath 5 minutes walk from the lodge.
Our staff intimately understand Niseko and what makes this area so special for our guests. The wide range of guest services and information available will ensure a truly memorable, relaxing Japan ski holiday.
• Private King / Twin Share
• Private Mezzanine
• Bunkrooms


text:
The Legislature's veto override of a bill expanding religious exemptions from insurance coverage for birth control is the latest example of how Missouri has become a center point in a national debate about pregnancy.
Missouri's law is apparently the first to intentionally contradict an Obama administration policy requiring insurers to cover birth control for women at no additional cost. But the override was closer than expected in the House. One lawmaker acknowledged skipping the vote because he was disgruntled with Missouri Right to Life.
The override came a month after Republican Senate candidate Todd Akin garnered attention because of his comments about pregnancy and rape. Before that, the Missouri House gained headlines for honoring Rush Limbaugh despite protests about comments he made about a proponent of mandatory insurance coverage for contraception.


text:
Why Exhibit?
Crick Boat Show is the ideal opportunity to showcase your business. Located in the scenic setting of one of the country's most sought-after marinas, and with an extensive range of boats, boating businesses and waterway activities, Crick Boat Show is the only inland boat show and is the focal point of the inland waterways calendar.
2019 Show
The Exhibitor Guide and Booking Forms for 2019 will be available during Septemeber 2018. We will be contacting 2018 exhibitors by email in late September regarding re-booking stand space.
With a specialised appeal of around 27,000 visitors, averaging £864 in individual spend, plus a full range of fringe activities, including a live music programme and real-ales available in the entertainment and bar area morning 'till night.
Exhibition space is priced to suit all budgets and comes as part of an enhanced exhibitor package.
Your main exhibitor benefits:
All exhibition bookings come complete with a number of benefits, included in the price:
• A number of free 3-day show passes*
• Free listing on the show website with a link to your own website
• Free listing in official Show Guide
• Special rates on entry tickets for your guests
• Advertising and sponsorship packages available
• Priority advance booking for our on-site camping and online moorings
• Access to the VIP Marquee
• Free exhibitor car parking
*Number depends on the type of exhibit
If you'd like to find out more about exhibiting at the Crick Boat Show, simply contact Ian Sharpe firstname.lastname@example.com or phone 01283 742977.
Please choose from the following options:
Floating Marina Space
Exhibiting your boat on the water in Crick Marina is one of the best ways to showcase your company. The marina is at the heart of the show and the floating berths are always in high demand. We welcome both narrowboats and wide beams. Wide beams are charged for the additional berth space they require. Demand for this space is commonly greater than availability, so it is highly recommended that bookings are made as early as possible to secure your preferred berth and to avoid disappointment.
Land-based Marina Space
The land-based marina is the centrepiece of the Show Village. Exhibiting in this area allows visitors to inspect the hull and undertake a supervised visit through the boat's interior. This position is ideal if you are bringing a wide-beam boat to the Show. A marquee can be erected at one end of the 'berth' to ensure visitors receive your full attention.
Please choose from the following:
Outdoor Quayside
One of the most popular areas on the event site. Situated on hard standing around the marina and in close proximity to our floating exhibits, this location enjoys excellent footfall and unique selling opportunities. Pitch sizes can be customised, but are subject to a minimum depth of 3m.
Outdoor Show Village
Located in the centre of the show, nestled between the marina and the Waterways World Boating Marquee, this is a superb location to attract the crowds. The Show Village is on grass and space is available at customised sizes with marquee hire available – please see booking form for details. All pitches are sold in whole metre increments only.
Please choose from the following:
The Waterways World Boating Marquee
The Waterways World Boating Marquee is the largest indoor exhibition area at the Crick Boat Show; exhibiting inside this main marquee is an excellent option with the greatest footfall of visitors each day. The marquee is light, spacious and fully carpeted and there are a range of stand sizes and locations. A carefully devised layout and a wide variety of businesses exhibiting ensure that visitors have plenty to choose from and the marquee remains busy throughout the Show, whatever the weather.
The Food & Craft Marquee
A separate marquee for food and craft traders and exhibitors. The marquee has flooring throughout. This is an ideal low-cost opportunity to make an impact at the Show whilst keeping valuable stock under cover. Stand prices do not include power, which can be ordered separately. There can be no cooking of food in this marquee.


text:
BY JIM MILLER | The Press-Enterprise
Riverside County senators Richard Roth and Bill Emmerson introduced legislation this week stating their intent to restore lost funding for California cities that have incorporated since 2004.
All four of the cities are in Riverside County — Jurupa Valley, Eastvale, Wildomar and Menifee.
The four Riverside County cities collectively lost $14 million annually when lawmakers approved a 2011-12 spending plan that shifted some vehicle-license fee money to pay for local law-enforcement grants.
All cities lost money in the shift, but it hit the four Riverside County cities particularly hard. A 2006 law had directed an extra boost of license-fee revenue to help them get established, but the budget emptied that pot of money.
Last September, Gov. Jerry Brown vetoed legislation that would have allocated $14 million to the cities. In a veto message, Brown said the state could not afford the measure "given fiscal uncertainties."
The bill introduced by Roth, D-Riverside, and Emmerson, R-Hemet, only declares the measure's intent; its details will be fleshed out later this year.


text:
It looks like you're using an Ad Blocker.
Please white-list or disable AboveTopSecret.com in your ad-blocking tool.
Thank you.
Some features of ATS will be disabled while you continue to use an ad-blocker.
Originally posted by ollncasino
Originally posted by mekhanics
Sadly, your argument is invalid.
The chapter is called "The Repentance"
Surah 9
Nice try though, dough
Dough? Are you making some bread?
Ironically your own link contains the verse
[Quran 9:5]
" But when the forbidden months are past, then fight and slay the Pagans wherever ye find them, and seize them, beleaguer them, and lie in wait for them in every stratagem (of war); but if they repent, and establish regular prayers and practise regular charity, then open the way for them: for Allah is Oft-forgiving, Most Merciful.
Sadly for non-Muslims, repentance consists of submitting to Islamic domination. Which is great if you are a Muslim.
In other words, nice try at trying to spin Islamic aggression as something benign.
"All who would not seek the LORD, the God of Israel, were to be put to death, whether small or great, man or woman. (From the NIV Bible, 2 Chronicles 15:13)"
Originally posted by mekhanics
Dude , tell me - Did Jesus preach Jihad?
• Fought 8 major battles
• Led 18 raids
• Planned another 38 military operations where others were in command but operating under his orders and strategic direction.
• At Kheibar in 628 C.E., the Muslim army was 2,000 combatants.
• When Muhammad mounted his assault on Mecca (630 C.E.) he did so with 10,000 men.
• And at the Battle of Hunayn a few months later the army numbered 12,000.
Source: Islamic Imperialism: A History by Karsh, E. (2007)
Napolean Bonaparte as Quoted in Christian Cherfils, 'Bonaparte et Islam,' Pedone Ed., Paris, France, 1914, pp. 105, 125.
Original References: "Correspondance de Napoléon Ier Tome V pièce n° 4287 du 17/07/1799..."
"Moses has revealed the existence of God to his nation. Jesus Christ to the Roman world, Muhammad to the old continent...
"Arabia was idolatrous when, six centuries after Jesus, Muhammad introduced the worship of the God of Abraham, of Ishmael, of Moses, and Jesus. The Ariyans and some other sects had disturbed the tranquility of the east by agitating the question of the nature of the Father, the son, and the Holy Ghost. Muhammad declared that there was none but one God who had no father, no son and that the trinity imported the idea of idolatry...
"I hope the time is not far off when I shall be able to unite all the wise and educated men of all the countries and establish a uniform regime based on the principles of Qur'an which alone are true and which alone can lead men to happiness."
Sir George Bernard Shaw in 'The Genuine Islam,' Vol. 1, No. 8, 1936.
"If any religion had the chance of ruling over England, nay Europe within the next hundred years, it could be Islam."
"I have always held the religion of Muhammad in high estimation because of its wonderful vitality. It is the only religion which appears to me to possess that assimilating capacity to the changing phase of existence which can make itself appeal to every age. I have studied him - the wonderful man and in my opinion far from being an anti-Christ, he must be called the Savior of Humanity."
"I believe that if a man like him were to assume the dictatorship of the modern world he would succeed in solving its problems in a way that would bring it the much needed peace and happiness: I have prophesied about the faith of Muhammad that it would be acceptable to the Europe of tomorrow as it is beginning to be acceptable to the Europe of today."
Bertrand Russel in 'History of Western Philosophy,' London, 1948, p. 419.
"Our use of phrase 'The Dark ages' to cover the period from 699 to 1,000 marks our undue concentration on Western Europe...
"From India to Spain, the brilliant civilization of Islam flourished. What was lost to christendom at this time was not lost to civilization, but quite the contrary...
"To us it seems that West-European civilization is civilization, but this is a narrow view."
H.G. Wells
"The Islamic teachings have left great traditions for equitable and gentle dealings and behavior, and inspire people with nobility and tolerance. These are human teachings of the highest order and at the same time practicable. These teachings brought into existence a society in which hard-heartedness and collective oppression and injustice were the least as compared with all other societies preceding it....Islam is replete with gentleness, courtesy, and fraternity."
Dr. William Draper in 'History of Intellectual Development of Europe'
"During the period of the Caliphs the learned men of the Christians and the Jews were not only held in great esteem but were appointed to posts of great responsibility, and were promoted to the high ranking job in the government....He (Caliph Haroon Rasheed) never considered to which country a learned person belonged nor his faith and belief, but only his excellence in the field of learning."
Thomas Carlyle in 'Heroes, Hero Worship, and the Heroic in History,' Lecture 2, Friday, 8th May 1840.
"As there is no danger of our becoming, any of us, Mahometans (i.e. Muslim), I mean to say all the good of him I justly can...
"When Pococke inquired of Grotius, where the proof was of that story of the pigeon, trained to pick peas from Mahomet's (Muhammad's) ear, and pass for an angel dictating to him? Grotius answered that there was no proof!...
"A poor, hard-toiling, ill-provided man; careless of what vulgar men toil for. Not a bad man, I should say; Something better in him than hunger of any sort, -- or these wild arab men, fighting and jostling three-and-twenty years at his hand, in close contact with him always, would not revered him so! They were wild men bursting ever and anon into quarrel, into all kinds of fierce sincerity; without right worth and manhood, no man could have commanded them. They called him prophet you say? Why he stood there face to face with them; bare, not enshrined in any mystry; visibly clouting his own cloak, cobbling his own shoes; fighting, counselling, ordering in the midst of them: they must have seen what kind of man he was, let him be called what you like! No emperor with his tiaras was obeyed as this man in a cloak of his own clouting. During three-and-twenty years of rough actual trial. I find something of a veritable Hero necessary for that, of itself...
"These Arabs, the man Mahomet, and that one century, - is it not as if a spark had fallen, one spark, on a world of what proves explosive powder, blazes heaven-high from Delhi to Granada! I said, the Great man was always as lightning out of Heaven; the rest of men waited for him like fuel, and then they too would flame..."
Phillip Hitti in 'Short History of the Arabs.'
"During all the first part of the Middle Ages, no other people made as important a contribution to human progress as did the Arabs, if we take this term to mean all those whose mother-tongue was Arabic, and not merely those living in the Arabian peninsula. For centuries, Arabic was the language of learning, culture and intellectual progress for the whole of the civilized world with the exception of the Far East. From the IXth to the XIIth century there were more philosophical, medical, historical, religiuos, astronomical and geographical works written in Arabic than in any other human tongue."
Carra de Vaux in 'The Philosophers of Islam,' Paris, 1921.
"Finally how can one forget that at the same time the Mogul Empire of India (1526-1857 C.E.) was giving the world the Taj Mahal (completed in 1648 C.E.) the architectural beauty of which has never been surpassed, and the 'Akbar Nameh' of Abul Fazl: "That extraordinary work full of life ideas and learning where every aspect of life is examined listed and classified, and where progress continually dazzles the eye, is a document of which Oriental civilization may justly be proud. The men whose genius finds its expression in this book were far in advance of their age in the practical art of government, and they were perhaps in advance of it in their speculations about religious philosophy. Those poets those philosophers knew how to deal with the world or matter. They observe, classify, calculate and experiment. All the ideas that occur to them are tested against facts. They express them with eloquence but they also support them with statistics."...the principles of tolerance, justice and humanity which prevailed during the long reign of Akbar."
Marcel Clerget in 'La Turquie, Passe et Present,' Paris, 1938.
"Many proofs of high cultural level of the Ottoman Empire during the reign of Suleiman the Magnificent are to be found in the development of science and law; in the flowering of literary works in Arabic, Persian and Turkish; in the contemporary monuments in Istanbul, Bursa, and Edirne; in the boom in luxury industries; in the sumptuous life of the court and high dignitaries, and last but not least in its religious tolerance. All the various influences - notably Turkish, Byzantine and Italian mingle together and help to make this the most brilliant epoch of the Ottomans."
Michael the Elder (Great) as Quoted in 'Michael the Elder, Chronique de Michael Syrien, Patriarche Jacobite d' Antioche,' J.B. Chabot, Editor, Vol. II, Paris, 1901.
"This is why the God of vengeance, who alone is all-powerful, and changes the empire of mortals as He will, giving it to whomsoever He will, and uplifting the humble beholding the wickedness of the Romans who throughout their dominions, cruelly plundered our churches and our monasteries and condemned us without pity, brought from the region of the south the sons of Ishmael, to deliver us through them from the hands of the Romans. And if in truth we have suffered some loss, because the Catholic churches, that had been taken away from us and given to the Chalcedonians, remained in their possession; for when the cities submitted to the Arabs, they assigned to each denomination the churches which they found it to be in possession of (and at that time the great churches of Emessa and that of Harran had been taken away from us); nevertheless it was no slight advantage for us to be delivered from the cruelty of the Romans, their wickedness, their wrath and cruel zeal against us, and to find ourselves at people. (Michael the Elder, Jacobite Patriarch of Antioch wrote this text in the latter part of the twelfth century, after five centuries of Muslim rule in that region. Click here for a relevant document sent to the monks of St. Catherine Monastery in Mt. Sinai, 628 C.E.)
Sir John Bagot Glubb
"Khalif (Caliph) Al-Ma'mun's period of rule (813 - 833 C.E.) may be considered the 'golden age' of science and learning. He had always been devoted to books and to learned pursuits. His brilliant mind was interested in every form of intellectual activity. Not only poetry but also philosophy, theology, astronomy, medicine and law all occupied his time."
"By Mamun's time medical schools were extremely active in Baghdad. The first free public hospital was opened in Baghdad during the Caliphate of Haroon-ar-Rashid. As the system developed, physicians and surgeons were appointed who gave lectures to medical students and issued diplomas to those who were considered qualified to practice. The first hospital in Egypt was opened in 872 AD and thereafter public hospitals sprang up all over the empire from Spain and the Maghrib to Persia."
On the Holocaust of Baghdad (1258 C.E.) Perpetrated by Hulagu:
"The city was systematically looted, destroyed and burnt. Eight hundred thousand persons are said to have been killed. The Khalif Mustasim was sewn up in a sack and trampled to death under the feet of Mongol horses.
"For five hundred years, Baghdad had been a city of palaces, mosques, libraries and colleges. Its universities and hospitals were the most up-to-date in the world. Nothing now remained but heaps of rubble and a stench of decaying human flesh."
Originally posted by mekhanics
Great men spoke about muhammad, they knew true history about him unlike you try to belittle islam, i smell what the dog is cooking
Bukhari (11:626)
- "The Prophet said, 'No prayer is harder for the hypocrites than the Fajr and the 'Isha' prayers and if they knew the reward for these prayers at their respective times, they would certainly present themselves (in the mosques) even if they had to crawl.' The Prophet added, 'Certainly I decided to order the Mu'adh-dhin (call-maker) to pronounce Iqama and order a man to lead the prayer and then take a fire flame to burn all those who had not left their houses so far for the prayer along with their houses.'"
Muhammad orders his men to burn alive those who do not present themselves at the mosque for prayer.
• Pronounced death for leaving Islam, Hadith Sahih Bukhari, Book 83
• Told followers that Jihad was the second highest thing after believing in Allah, Sahih Bukhari, Volume 1, Book 2, number 25
• Stated he would fight until everyone admitted their was only one god, Allah, Sahih Bukhari, Volume 1, Book 2, number 24
• Burnt people for not praying Sahih Bukhari Book 1, Vol 11, Verse 626
• Forced non Muslims to be humbled, submit to Islam and pay jizyah tax.Koran Book 9 Verse 29
The actor was criticised in 2010 after claiming The Chronicles Of Narnia lion, Aslan, who he provided the voice for in the film, was not based on Christ as CS Lewis had claimed but in fact all spiritual leaders including Mohammed.
Originally posted by ollncasino
reply to post by mekhanics
According to the Koran and Hadith, Muhammad
• Pronounced death for leaving Islam, Hadith Sahih Bukhari, Book 83
• Told followers that Jihad was the second highest thing after believing in Allah, Sahih Bukhari, Volume 1, Book 2, number 25
• Stated he would fight until everyone admitted their was only one god, Allah, Sahih Bukhari, Volume 1, Book 2, number 24
• Burnt people for not praying Sahih Bukhari Book 1, Vol 11, Verse 626
• Forced non Muslims to be humbled, submit to Islam and pay jizyah tax.Koran Book 9 Verse 29
If Muhammad, according to the Koran and Hadith, pronounced death for leaving Islam, told his followers to spread Islam by the sword, did so himself, praised violent jihad, burnt people for not praying and forced non-Muslims to be humbled and pay jizyah tax, in what sense is Islam a religion of peace?
One of the most common clichés about Islam is that it "spread by the sword". After all – the reasoning goes – why would so many people have converted if not under threat of death? It is not difficult to speculate why European Christians would have favored this explanation: many of the early converts to Islam were Christians, and they must have been uncomfortable with so many of their brethren converting. However, some Muslims today also have adopted the idea that their ancestors became Muslim by force, not by choice.
Originally posted by mekhanics
Ask Him too :
'It really makes me think about becoming a Muslim'
Originally posted by mekhanics
reply to post by ollncasino
My response.....
Originally posted by mekhanics
One of the most common clichés about Islam is that it "spread by the sword".
Originally posted by InfaRedMan
"We do not wish to live together with dirty beasts like you..."
The Norwegian news portal VG Nett is reporting that a Muslim terrorist group, Ansar al-Sunna', is threatening that if a section of the nation's capitol isn't transformed into a sharia-complaint Muslim nation, an attack rivaling 9/11 will be launched upon the Scandinavian nation.
What is the solution?
Deport them. Simple. Clean. Quick.
If they come back, wood chipper.
The 100: A Ranking of the Most Influential Persons in History is a 1978 book by Michael H. Hart, reprinted in 1992 with revisions. It is a ranking of the 100 people who, according to Hart, most influenced human history.[1]
The first person on Hart's list is the Prophet of Islam Muhammad.[2] Hart asserted that Muhammad was "supremely successful" in both the religious and secular realms. He also believed that Muhammad's role in the development of Islam was far more influential than Jesus' collaboration in the development of Christianity. He attributes the development of Christianity to St. Paul, who played a pivotal role in its dissemination.
The 1992 revisions included the demotion of figures associated with Communism, such as Vladimir Lenin and Mao Zedong, and the introduction of Mikhail Gorbachev. Hart took sides in the Shakespearean authorship issue and substituted Edward de Vere, 17th Earl of Oxford for William Shakespeare. Hart also substituted Niels Bohr and Henri Becquerel with Ernest Rutherford, thus correcting an error in the first edition. Henry Ford was also promoted from the "Honorary Mentions" list, replacing Pablo Picasso. Finally, some of the rankings were re-ordered, although no one listed in the top ten changed position.
Hart wrote another book in 1999, entitled A View from the Year 3000,[3] voiced in the perspective of a person from that future year and ranking the most influential people in history. Roughly half of those entries are fictional people from 2000–3000, but the remainder are actual people. These were taken mostly from the 1992 edition, with some re-ranking of order.
Originally posted by mekhanics
reply to post by ollncasino
Remember what jesus said :
"I come not to bring peace, but to bring a sword"(Gospel of Matthew 10:34)
Originally posted by ollncasino
Originally posted by cenpuppie
How is this any different than the crimes the West perpetuates against them? Two wrongs don't make a right no matter how hard you try.
What crimes would those be?
Considering that the Muslim Arab world was under the Islamic Ottoman Empire's rule until 1918 , one has to presume that theses 'crimes' exist only in your imagination.
Are you aware that the Ottoman Empire occupied Southern Europe until the end of the 19th century?
Here is a further map detailing when the Ottoman Empire lost its Middle East and European colonies. Bulgaria 1908, Albania, 1912, Crete 1898, Greece 1830.
This map shows that not only Europe but also Russia and India suffered Islamic invasion and occupation.
Europe, rather than perpetuating crimes against the Islamic world, was the victim of Islamic aggression for approximately 1,200 of Islam's 1,300 year history.
edit on 7-9-2012 by ollncasino because: (no reason given)


text:
J&J uses web video, teacher outreach in UK ADHD effort
Johnson & Johnson's Janssen-Cilag launched an animated patient education video aimed at showing viewers the world from the perspective of a child with ADHD and urging parents to see a doctor about behavioral problems.
The film is part of an unbranded UK campaign including outreach to teachers and is featured on Livingwithadhd.co.uk. The film employs a technique called "rotoscoping," in which real actors are filmed and converted into animations, and was developed through interviews with patients, parents, doctors and teachers. It visually depicts the child's attention drifting and explores the guilt that parents of children with ADHD often feel.
It's meant encourage parents to take the initial step of seeing a doctor about their child's behavioral problems – a step that research shows gives parents great satisfaction, the company said, either for relief that a diagnosis has been made or for reassurance at having spoken to a professional.
"It might be that certain teachers currently have children with ADHD in their classrooms but that haven't yet realized it or are struggling to cope," said ADHD educational advisor Holly Evans in a release. "If improved understanding and knowledge about ADHD can filter down to at least a small proporation of the teaching population, it will make a big impact."
The J&J unit makes Concerta XL for ADHD.


text:
This is from Matthew Warner's blog, Fallible Blogma:
I thought it would be really cool if we could do a joint promotion effort of a lot of the great Catholic speakers out there and the many Catholic blogs. Introducing…Support a Catholic Speaker Month.To see the list of speakers, go to Matthew's post.
The goal is to create a rising Catholic tide on the internet that lifts all boats (websites, speakers, and all those who participate). This giant, sudden influx of catholic material and interlinking between Catholic websites should get some attention and raise awareness about all of these great Catholic speakers while also promoting the many wonderful Catholic blogs out there that perhaps you haven't heard of yet either.
The primary goal of our Favorite Catholic Speakers Poll of 2009 was not to find out who is better than somebody else. It was to raise awareness about the many Catholic Speakers out there and to support them. They are all sharing the same, one Truth. And as talented and effective as the top favorites are at doing what they do, we need many more like them if we're going to reach everyone.
That's precisely the motivation for Support a Catholic Speaker Month.
How it works:
- If you have a blog or website, just request a speaker from the list below by emailing me here: speaker [@] fallibleblogma [DOT] com. Please include your requested speaker and your blog/website (you don't have to have a fancy, popular blog – just a desire to help the Catholic community).
- Next, simply write a short (at least a few paragraphs) post about your speaker. Link back to this page on FallibleBlogma.com and link to the speaker's own website. Let me know when it's up and I will link to your post from this post so people can find it on your blog and read it!
- The tidal wave of Catholic links and posts then flood the web raising awareness and promoting hundreds of Catholic speakers and blogs in the month of October.


text:
NoSQL::PL2SQL::Simple - Implementation of NoSQL::PL2SQL
package MyArbitraryClass ;
use base qw( NoSQL::PL2SQL::Simple ) ;
use CGI ;
my $collection = new MyArbitraryClass ;
## Writing to the database
$collection->record( CGI->new->Vars ) ; ## Save user input
$collection->save( CGI->new->Vars ) ; ## save() is an alias
## Accessing the database
@allemails = values %{ { $collection->contactemail } } ;
$user = $collection->contactemail('email@example.com')->record ;
@neighbors = $collection->contactaddress('Ann Arbor')->records ;
@classmates = $collection->query(
contactcity => 'Ann Arbor',
graduationyear => '1989',
)->records ;
NoSQL::PL2SQL is a low level abstract interface designed to be swapped into existing applications. It's powerful, flexible, and not quite ready to roll out of the box.
NoSQL::PL2SQL::Simple is an intermediate solution more appropriate for building out new applications. It retains many of PL2SQL's features, particularly universal data schemas that can accomodate heterogeneous, indeterminate data elements. Additionally, NoSQL::PL2SQL::Simple allows data definition capabilities and provides a complete solution for data access.
NoSQL::PL2SQL::Simple's API consists of the following functions:
new() generally takes no arguments and returns an instance of the data definition class.
Classes that implement NoSQL::PL2SQL::Simple are usually referred to as data definition classes. Except this document recommends creating additional abstract subclasses called data source classes. Naturally, the properties of the instance returned by
new() reflect the data definition.
Perl OO, in its annoying flexibility, allows class overloading. So as a convenient mapping of definition and data, objects stored in the database have the same class name. An instance that contains a data definition is distinguished from a data containing object.
It's appropriate for implementations to create methods that will only be applied to objects. If so, they should probably override the
new() constructor (shown in the example under Developer's Notes) to minimize potential confusion.
Data Access
Most of NoSQL::PL2SQL::Simple's methods are heavily overloaded. This approach makes the API easier to remember and minimizes namespace collisions.
record(), for example, has five variants:
If its argument is an unblessed object,
record() is nearly identical to
NoSQL::PL2SQL::SQLObject() in that it simultanously blesses the object and writes it to the database. Unlike
record() returns a cloned object that must be explicitly re-saved.
If its argument is a blessed object,
record() saves the object into the database.
If its argument is an integer,
record() returns an object that was previously written into the database.
If its argument is a blessed array,
record() is an alias for
records(), which returns a set of objects from the database.
If there are two arguments, the first a blessed object and the second unblessed,
record() replaces the first object with the second.
NoSQL::PL2SQL::Simple can be used to maintain the profile records of an access control list:
## A new user registers by submitting a website form. $userid contains
## an automatic assignment, which should be returned as part of the
## confirmation.
$userid = $collection->record( CGI->new->Vars )->SQLObjectID ;
## If the user logs back in using the $userid, his/her record is
## recovered as follows:
$userrecord = $collection->record( $userid ) ;
## Suppose the user changes his/her password. The change is saved as
## follows:
$userrecord->{password} = $encrypted ;
$collection->record( $userrecord ) ;
## If the website contains a profile editting form, then replace the
## entire record with the form data:
$collection->record( $userrecord, CGI->new->Vars ) ;
recordID() is a used to convert query results to record id's (otherwise known as object id's).
SQLObjectID() returns the object id automatically generated by
keyValues() establishes many-to-one and many-to-many relationships among objects, and has three variants:
To add a relationships, pass one or more values as arguments to the
keyValues() method.
To list relationships, pass no arguments to the
keyValues() method.
To clear all relationships, chain the c<keyValues()> method as follows:
See the MANY-TO-ONE RELATIONSHIPS section below.
save() is an alias for
record(). Each of the pair of statements below are equivalent:
$collection->record( CGI->new->Vars ) ;
$collection->save( CGI->new->Vars ) ;
$collection->record( $userrecord ) ;
$userrecord->save() ;
$collection->record( $userrecord, CGI->new->Vars ) ;
$userrecord->save( CGI->new->Vars ) ;
Data Queries
query() is used to query the database. Its arguments are name-value-pairs (NVP's). Multiple NVP's are combined using SQL AND logic.
query() normally returns an array of record id's. In scalar context, its output can be chained to other methods as illustrated:
## In the above example, the user recovers his/her userid by querying
## an email address:
my $cgivars = CGI->new->Vars
my @userids = $collection->query(
contactemail => $cgivars->{contactemail},
) ;
error( "Unknown email address" ) if @userids == 0 ;
error( "Duplicate email address" ) if @userids > 1 ;
my $userid = $userids[0] ;
## Chain recordID to return a scalar instead of an array
$userid = $collection->query(
contactemail => $cgivars->{contactemail}
)->recordID ;
## Allow the user to login using an email address
@userids = $collection->query(
contactemail => $cgivars->{contactemail},
password => $encrypted,
) ;
error( "Login failed" ) unless @userids == 1 ;
my $user = $collection->record( $userids[0] ) ;
my $greeting = sprintf( "Hello %s", $user->{contactnamefirst} ) ;
NoSQL::PL2SQL::Simple uses Perl's magical
AUTLOAD() to make simple queries more concise. The premise of object oriented programming is that complexity is encapsulated inside a black box; and simplicity is exposed at the interface. The premise of NoSQL::PL2SQL::Simple is that the code below is easy to read and maintain:
## The output of query can be chained to return a set of objects
my @users = $collection->query(
contactemail => $cgivars->{contactemail},
)->records ;
## This statement can be rewritten using an AUTOLOAD alias
@users = $collection->contactemail( $cgivars->{contactemail} )->records ;
error( "Unknown email address" ) if @users == 0 ;
error( "Duplicate email address" ) if @users > 1 ;
my $response = sprintf "Hello %s,\nYour userid is: %d",
$users[0]->{contactnamefirst}, $users[0]->SQLObjectID ;
## Without error checking, this code can be further simplified
## In this case, record() aliases records() for readability.
$user = $collection->contactemail( $cgivars->{contactemail} )->record ;
$response = sprintf "Hello %s,\nYour userid is: %d",
$user->{contactnamefirst}, $user->SQLObjectID ;
In this example, the
contactemail() method is not explicitly defined. The magical
AUTOLOAD() essentially calls
query() using the method name as the first argument.
AUTOLOAD() aliases and
query() are slightly different. The
AUTOLOAD() methods are overloaded to take zero or one argument(s).
query() accepts a hash, or even numbered array, as arguments.
If called without arguments, the
AUTOLOAD() methods return a hash of NVP's that correspond to the matching objects, keyed on object id. Each NVP value represents the object element's value.
## Allow users to log in using their name, selected from a combo box
## 'username' must be part of the data definition
## Note: From a security standpoint, this is a poor practice
%users = $collection->username ;
## Build a combo box using the %users NVP
## <select name="userid">
## <option value="$userskey">$usersvalue</option>
## </select>
If called without arguments,
query() returns all the stored objects matching the data definition class. This invocation is used with the
reindex() method as shown below.
Class Definition
A set of NoSQL::PL2SQL::Simple's methods are specifically used as part of the class definition, explained below.
reindex() updates the database to reflect data definition changes. It requires a data element argument. See the INDEXES section below.
Object oriented programming techniques improve code reuse and manage complexity. For example, an object's behavior is determined by its class definition and its individual properties. OO designers usually consider tradeoffs between class attributes and object properties. Subclassing is a technique of assigning attributes to a group of objects so that identical properties don't need to be repetitively defined at instantiation. Instead, properties are defined as attributes of a subclass instantiated by objects who share those properties.
NoSQL::PL2SQL::Simple uses this approach to separate data definitions from its internal complexity. Subclassing also ensures that every object is associated with a data definition, which can be accessed as a class instantiation.
Data Definition Subclass
NoSQL::PL2SQL::Simple is simple even for users who have never defined a class in Perl. Only the following code is required to define a data definition subclass. The BEGIN clause is good practice, but not necessary.
## This code defines a data definition class named
## 'TQIS::HighSchoolFriends'
## The BEGIN clause is not strictly necessary
package TQIS::HighSchoolFriends ;
use base qw( NoSQL::PL2SQL::Simple ) ;
The actual data definition is built using the data definition methods described above. This approach should be easier for users who have never written a class definition. Using a Perl terminal, these statements are simpler than using command line SQL. Otherwise, the code below could be written into a one-time throw-away script. Or, using an appropriate Perl interpreter, the data definitions can be easily managed with a web-based tool.
## Create another Data Definition Class for this example
package TQIS::HighSchools ;
use base qw( NoSQL::PL2SQL::Simple )
## TQIS::HighSchools contains only a list of schools. This example
## illustrates how to normalize data using NoSQL::PL2SQL::Simple
TQIS::HighSchools->new->addTextIndex( qw( highschool ) ) ;
## Create an instance of the TQIS::HighSchoolFriends data definition
my $friends = new TQIS::HighSchoolFriends ;
## Use the data definition methods to perform the actual data
## definition
$friends->addTextIndex( qw( yeargraduated lastname ) ) ;
## A strictly normalized RDB would use a separate table to reflect
## this relationship. I find this simpler approach of using
## internal references more durable: This spouse value will be the
## record id of another HighSchoolFriend object.
$friends->addNumberIndex( qw( spouse ) ) ;
## Normalizing means these highschool data values will be record
## ids from the other data definition class.
$friends->addNumberIndex( highschool ) ;
## The data definition is reflected in the properties of the
## class instantiation
print join "\n", %$friends ;
## Throwaway setup script ends here
## This remaining code is considered runtime. For example, this
## code would be run to create a web form to add new (or modify)
## HighSchoolFriends objects
%schools = TQIS::HighSchools->new->highschool ;
## Populate a web form dropdown with the %schools set, eg:
## <select name="highschool">
## <option value="210">Pioneer High School</option>
## </select>
## Runtime code showing queries using this data definition
## This statement chains the constructor with an implicit query
## and converts the result to a scalar.
my $phs = TQIS::HighSchools->new->highschool(
'Pioneer High School')->recordID ;
## A more robust solution is to select the school from a list
## Naturally, this works better using a mechanism such as
## a web form combo box
my %schools = TQIS::HighSchools->new->highschool ;
my %inverse = reverse %schools ;
$phs = $inverse{'Pioneer High School'} ;
## Incidentally, all these statements will blow up. Don't try them.
# $phs = TQIS::HighSchools->new->highschool->{'Pioneer High School'} ;
# $phs = TQIS::HighSchools->new->{highschool}->{'Pioneer High School'} ;
# $phs = TQIS::HighSchools->new->highschool('Pioneer High School') ;
## The actual query statements
my @pioneerfriends = $friends->highschool( $phs )->records ;
my @classmates = $friends->query(
highschool => $phs,
yeargraduated => '1989',
)->records ;
The data definition only needs to define object properties that will be queried. See the INDEXES section below.
The definition may also include an archive element. (Object elements named archive will be ignored.) The archive data definition prevents object data from being deleted. Instead, when a record is replaced, the original record is assigned a new object id; and the replacement is inserted into the database with the value of the existing object id.
## Create a new data definition subclass
package TQIS::GPRC::Members ;
use base ( NoSQL::PL2SQL::Simple ) ;
## Create an instantiation
my $members = new TQIS::GPRC::Members ;
## Create a new member from webform data
my $memberid = $members->record( CGI->new->Vars )->SQLObjectID ;
## An application may email the $memberid as a confirmation.
## Later on, the $memberid may be used to replace the member
## data with something else
$members->record( $memberid )->save( CGI->new->Vars ) ;
## The new data is returned by default
my $member = $members->record( $memberid ) ;
## Code to return the original data
my @archive = $members->archive( $memberid )->records ;
$member = $archive[-1] ; ## returned set is chronological
Data Source Subclass
Unfortunately, none of the examples presented so far will actually run. Like any database interface, NoSQL::PL2SQL::Simple needs an actual database. Advanced users should create an abstract Data Source subclass, described below. Other users will need to define data sources and pass them to the constructors of each data definition.
NoSQL::PL2SQL::Simple uses its own version of DBI, NoSQL::PL2SQL::DBI. NoSQL::PL2SQL::DBI contains the methods to generate the specific SQL. NoSQL::PL2SQL::DBI subclasses are used to handle discrepencies in the SQL syntax.
NoSQL::PL2SQL is based on a single table which can be shared across multiple implementations. As in the NoSQL::PL2SQL documentation examples, it's commonly called $dsn.
NoSQL::PL2SQL includes implementations for SQLite and MySQL. These examples use SQLite, which comes preinstalled.
## define a data source
use NoSQL::PL2SQL::DBI::SQLite ;
my $dsn = new NoSQL::PL2SQL::DBI::SQLite $tablename = 'objectdata' ;
$dsn->connect( 'dbi:SQLite:dbname=:memory:', '', '') ;
## NoSQL::PL2SQL::Simple queries actually require a second DSN
my $index = $dsn->table('querydata') ;
## run once and only once
NoSQL::PL2SQL::Simple->loadschema( $dsn, $index ) ;
## The DSN objects are passed to the constructor
my $members = new TQIS::GPRC::Members $dsn, $index ;
## The DSN objects can also be shared among all the implementations
## we've used in our examples
my $collection = new MyArbitraryClass $dsn, $index ;
my $friends = new TQIS::HighSchoolFriends $dsn, $index ;
In order to use the last two statements, we would need to redefine the DSN objects every time we instantiate another data definition subclass. The resulting code is much less concise than the examples.
The solution is to define an abstract data source subclass. The code is simple enough to cut and paste from the example below. But in order to work, this class must be an appropriately named file that can be found using
@INC. For newer users, this might be a good opportunity to learn more about Perl OO programming.
package TQIS::PL2SQL::DSN
use base qw( NoSQL::PL2SQL::Simple ) ; ## Do not change this line
use NoSQL::PL2SQL::DBI::SQLite ;
my @dsn = () ; ## Do not change this line
## data source subclasses override this dsn() method
sub dsn {
return @dsn if @dsn ; ## Do not change this line
push @dsn, new NoSQL::PL2SQL::DBI::SQLite 'objectdata' ;
$dsn[0]->connect( 'dbi:SQLite:dbname=:memory:', '', '') ;
push @dsn, $dsn[0]->table('querydata') ;
return @dsn ; ## Do not change this line
1 ;
Once complete, the data definition subclasses are very easy to declare:
package MyArbitraryClass ;
use base qw( TQIS::PL2SQL::DSN ) ;
package TQIS::HighSchools ;
use base qw( TQIS::PL2SQL::DSN ) ;
package TQIS::HighSchoolFriends ;
use base qw( TQIS::PL2SQL::DSN ) ;
package TQIS::GPRC::Members ;
use base qw( TQIS::PL2SQL::DSN ) ;
## Run once and only once
TQIS::PL2SQL::DSN->loadschema() ;
## Each of these statements should now succeed
my $o = new MyArbitraryClass ;
my $schools = new TQIS::HighSchools ;
my $friends = new TQIS::HighSchoolFriends ;
my $members = new TQIS::GPRC::Members ;
Should this section be named INDICES?
Typically, RDB data is indexed directly on the data set. NoSQL::PL2SQL::Simple indexes a second table that contains references to the first table. The biggest drawback to this approach is that records must be explicitly added and deleted from this second table. Happily, this additional complexity is automatically handled whenever records are added or modified. Provided the class definition is completed before object data is inserted, this approach should not affect anyone using NoSQL::PL2SQL::Simple.
However, a little housekeeping is required to modify an existing data set:
my $friends = new TQIS::HighSchoolFriends ;
$friends->addTextIndex('contactemail') ;
## This solution is inefficient, but comprehensive
map { $friends->record( $_ )->save } $friends->query ;
## Alternatively, use this sequence, which must be
## repeated for each new element definition
map { $friends->record( $_ )->reindex('contactemail') }
$friends->query ;
In order to implement NoSQL::PL2SQL's support for indeterminate objects, the class data definition may be completely independent of the object data. This approach requires explicit mapping, but can be useful:
my $members = new TQIS::GPRC::Members ;
$members->addTextIndex('byemail') ;
## add a new member
$members->record( CGI->new->Vars,
workemail => 'byemail', homeemail => 'byemail' ) ;
## This approach creates two records in the index table (three if
## there's an explicit byemail form field), and improves the
## data access capabilities as follows:
## Both these statements work
my $jim = $members->byemail('firstname.lastname@example.com')->record ;
$jim = $members->byemail('email@example.com')->record ;
## this approach must be implemented consistently
$jim->save( CGI->new->Vars, workemail => 'byemail', homeemail => 'byemail' ) ;
## reindexing also allows mapping:
map { $members->record( $_ )->reindex( workemail => 'byemail' ) }
$members->query ;
map { $members->record( $_ )->reindex( homeemail => 'byemail' ) }
$members->query ;
Most of the time, database records can be accessed using a one-to-many relationship. For example, a calendar application would primarily consist of event objects whose elements include a single date, say February 14. Many events can share that date, so when February 14 is queried, all the matching events can be displayed.
NoSQL::PL2SQL::Simple handles all of these relationships automatically. If the object's date is changed to February 17, the correspondence from February 14 is automatically broken and all future queries will return expected results.
This example, which assumes that events only correspond to a single date, represents a one-to-many relationship. Eg, one date corresponds to many events. In a more complicated data model, events can correspond to many dates, if the event occurs repeatedly or spans more than one day. This more complicated model is called many-to-many: multiple objects per key and multiple keys per object.
NoSQL::PL2SQL::Simple automates the multiple objects per key functionality; but handling multiple keys per object requires explicit management using the
keyValues() method. In a web-based calendar, the defined properties might be the record owner and location (zipcode). If event entries always correspond to a single date, then the date will also be a defined property. NoSQL::PL2SQL::Simple automatically manages queries for defined properties.
If the event can correspond to many dates, the web interface becomes more complicated. This codes demonstrates several different scenarios:
my $events = new mycalendar::event ; ## $events is an instance
print $events->{eventdate}, "\n" ; ## prints: I<datekey>
my $event = $events->record( CGI->new->Vars ) ; ## $event is an object
## One scenario is that the interface returns a set of dates
## such as a string containing many separated dates.
my @dates = split /,/, $event->{datelist} ;
$event->keyValues( eventdate => @dates ) ; ## add the set of dates
## In this scenario, when the record is edited, simply replace the
## set of dates:
$event->keyValues('eventdate')->clear() ; ## clear the existing set
$event->keyValues( eventdate => split /,/, CGI->new->Vars->{datelist} ) ;
## Another scenario is an interface worksheet that adds dates one at a time
$event->keyValues( eventdate => CGI->new->Vars->{nextdate} ) ;
## The named property I<nextdate> must be distinct from the named
## property I<eventdate> to prevent automatic key management
## Repeat this process everytime a new date is added. The interface should
## prevent a duplicate date selection
$event->keyValues( eventdate => CGI->new->Vars->{nextdate} ) ;
## The interface should allow users to delete date selections
my $delete = CGI->new->Vars->{deletedate} ;
my @replace = grep $_ ne $delete, $event->keyValues('eventdate') ;
$event->keyValues('eventdate')->clear() ;
$event->keyValues( eventdate => @replace ) ;
If you're planning to write an implementation of NoSQL::PL2SQL, take a look at samples/pl2sql/comments.pl in the distribution package. NoSQL::PL2SQL::Simple is intended to be simple only from the point of view of its interface.
If you're interested in writing OO modules, this module is unusually deliberate and worth noting.
First, the module contains several private methods:
matching(), and
indexmap(). These methods may disappear in future versions, or require changes where they're called. So these methods are out of bounds. Also, since NoSQL::PL2SQL::Simple is intended for subclassing, the number of base methods should be deliberately small to minimize namespace conflicts. The source code illustrates how to defined these private methods.
Second, I normally would not write a
new() constructor- most implementations will want to override the constructor. But in the interest of a simple API, I prefer constructors with no arguments. So the
new() method is used to generate an instance, which in turn uses
record() to create objects. This approach may be insufficiently robust.
Perl OO generally consists of blessed data structures. Once blessed, a data structure is associated with specific class methods that can make assumptions about that data. NoSQL::PL2SQL::Simple is a bit more complicated. But advanced users may want their data definition classes to include this functionality and define additional class methods. They should also rename the constructor.
These users should be familiar enough with Perl OO to implement an abstract data source subclass. One is defined above and used in this example:
package TQIS::MyAdvancedClass ;
use base qw( TQIS::PL2SQL::DSN ) ;
## Rename the constructor to dataDefinition()
sub dataDefinition {
my $package = shift ;
return bless NoSQL::PL2SQL::Simple::new( $package, @_ ),
$package ;
## Create a default constructor that returns an object instead
## of an instance. Replace the generic code with something useful.
sub new {
my $package = shift ;
return bless {}, $package ;
## Create methods intended for objects, not instances. This one
## prints out a mailing label from a contact record.
sub mailingLabel {
my $self = shift ;
return join '', $self->{name}, "\n",
$self->{address}, "\n",
$self->{city}, ' ',
$self->{state}, ' ',
$self->{zipcode}, "\n" ;
## Here's how the class might be used:
use TQIS::MyAdvancedClass ;
my $contacts = TQIS::MyAdvancedClass->dataDefinition ;
print $contacts->email('email@example.com')->record->mailingLabel ;
Third, NoSQL::PL2SQL::Simple uses private properties to avoid potentially overwriting user data.
Using Data::Dumper on both an unblessed structure and its corresponding blessed object might indicate that the two are equivalent. In fact, the blessed object has additional private properties. For example, the object id property can only be accessed using the
SQLObjectID() method. Private properties in Perl OO can share a name assigned to a public property without conflict.
None by default.
Jim Schueler, <firstname.lastname@example.com>
Copyright (C) 2012 Jim Schueler
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.9 or, at your option, any later version of Perl 5 you may have available.