Home » Books I Love » Skip to the Good Parts- $0.99 Last Chance!
Don't forget that Skip to the Good Parts is still $0.99 for just a little while longer!
Skip to the Good Part 2: 20 Authors Reveal Their Steamiest Scenes offers face-fanning romance and tie-me-up sizzle (and everything in between) from top authors including New York Times and USA Today bestsellers.


I gave a presentation to a committee of the New Hampshire Business and Industry Association (BIA) about voucher repeal yesterday and Charlie Arlinghaus of the Bartlett Center preceded me with a talk about the state budget. He took the opportunity, since he had the floor, to defend the voucher tax credit program. His argument was that the tax credit program actually saves the State money – a few hundred thousand dollars per year. Voucher advocates seem to have decided to bring this this point to the fore as a key selling point.
It's an interesting point because while the savings are minor, the point itself highlights the essence of the voucher program. The savings come because, for each child who leaves the public school system, the State provides a tax credit funded voucher averaging $2,500 to a private school instead of an adequacy grant averaging $4,200 to a public school. Advocates making this argument are saying, "Privatize education – it's cheaper than paying for public education." So, while the cover story is school choice for poor kids, this is as close as voucher supporters get to the real point of this whole exercise, privatizing public education.
The pitch goes on to assert that these State-funded private schools should not be accountable because they are, after all, private. The result though, is that some number of the kids – a large number in other states using education tax credits – will go to small, unaccredited Christian schools teaching that dinosaurs and people were created on the sixth day. Is that really a legitimate use for public money or a substitute for our public education system? I would argue that disinvestment in public education is not a good way to provide an adequate education to every child as the New Hampshire Constitution requires.
Voucher advocates go on to say that it's really all private money going to the private schools. "Because the courts have said so." That always reminds me of that great Groucho Marks quote, "Who are you going to believe, me or your lying eyes?" The courts may treat the almost dollar-for-dollar tax credit the business gets in return for the voucher donation as a separate issue for some legal purposes, but voters can still see it there. I'd say anything the Legislature has to account for in the State's general fund is public money.
By ANHPE in Bills, Vouchers on March 9, 2013 .


Antonini-Canterin, F., C. Di Nora, M. Pellegrinet, O. Vriz, S. La Carrubba, S. Carerj, C. Zito, A. Matescu, A. Ravasel, I. Cosei, and B. Popescu. "Effect of Uric Acid Serum Levels on Carotid Arterial Stiffness and Intima-Media Thickness: A High Resolution Echo-Tracking Study". Monaldi Archives for Chest Disease, Vol. 89, no. 1, Mar. 2019, doi:10.4081/monaldi.2019.1007.


text:
Mahler (en alemán, pintor) es el apellido, en esta enciclopedia:

 de Gustav Mahler, compositor posromántico;
 de Alma Mahler, esposa del anterior;
 de Ángel Mahler, compositor y director de orquesta argentino;
 de Margaret Mahler, psicoanalista húngara;
 de William F. Mahler 1930- , botánico estadounidense.

Del apellido se han derivado otras denominaciones:

 Orquesta de Cámara Mahler;
 Joven Orquesta Gustav Mahler.

redpajama_set_name: RedPajamaWikipedia


Three people have been arrested for drug offences in Worthing after police noticed a man 'acting suspiciously' in the street.
Prevention Officers noticed a man acting suspiciously in Milton Street, Worthing, on Tuesday afternoon (March 6), police said.
After a search, the 36-year-old man of no fixed address was arrested on suspicion of supplying a class A drug, according to a spokesman.
Officers then went to a flat in Thorn Road, Worthing, on a welfare check and discovered a man and a woman acting suspiciously, the spokesman said.
A 19-year-old man from Northampton was arrested on suspicion of concealing, disguising, converting, transferring or removing criminal property, supplying cocaine and assaulting an officer in the execution of duty, police confirmed.
A 31-year-old woman from Worthing was arrested on suspicion of possession of a class A drug (cocaine) and supplying cocaine, the spokesman said.
All three have been released under investigation.


Week 16 of the 2018 NFL Season gets in full swing on Sunday afternoon. Before placing your wagers on today's action, check out the latest Public Betting numbers.
Of the games taking place on Sunday, the one team with the most public support when it comes to wagers is the Minnesota Vikings, as they hit the road to face the Detroit Lions today at 1PM ET. According to oddsmakers at BetNow.eu, the Vikings are the favorite on the road, as they are getting odds of -6 points against the Lions. When it comes to the Public Betting, the Vikings are getting 70 percent of the wagers in this game as the road favorite. Minnesota is 7-6-1 on the season and 7-6-1 against the spread while the Lions are 5-9 overall and 8-6 against the spread. The Vikings already own a 24-9 win over Detroit at home this year, picking up 10 sacks in the process.
Another team with a lot of support at the betting window is the Chicago Bears, who are going on the road today to face the San Francisco 49ers at 4:05PM ET. Oddsmakers are listing the Bears as a 4.5-point favorite on the road against the 49ers. Of the wagers placed on the game, 69 percent are going on the Bears on the road. Chicago is 10-4 on the season and 10-4 against the spread while San Francisco is 4-10 overall and 5-9 against the spread. The road team has won and covered the spread in three of the last four meetings in this series.
The game that is the most split amongst bettors today features the Cleveland Browns hosting the Cincinnati Bengals at 1PM ET. According to oddsmakers, the Browns are the clear favorite, as they are getting odds of -10 points against the Bengals. Of the wagers placed, 53 percent of the public betting is going on the Bengals as the heavy underdog. Cincinnati is 6-8 on the season and 7-7 against the spread while Cleveland is 6-7-1 overall and 9-5 against the spread. Cleveland picked up a 35-20 win at Cincinnati back on Nov. 25, snapping a long losing streak to the Bengals.


One lovely (yet muggy) July Alabama evening, Rebecca and Jay traveled down from Memphis, Tennessee to have their engagement photos taken! Kin to the lovely Caitlyn, Rebecca was just as sweet as she cuddled into the arms of her beau Jay. With family ties to the Whites (a prominent Huntsville name), we were able to shoot at two of the most incredible historic homes in downtown. At the first location, the resident cat, Sprinkles, wanted in on the fun! You can spot him in some of the images below!


Just in time for Mother's Day celebrations, the annual "Listen to Your Mother" [LTYM] show returns on Saturday, May 11, showcasing 11 area mothers – and one father – who will share inspiring, funny and powerfully poignant stories that give motherhood a microphone.
Showtimes are 11 a.m. and 3 p.m. at St. Luke's Hospital's Institute for Health Education, 232 S. Woods Mill Road in Chesterfield.
The 2019 performance, the show's seventh, holds particular significance for Laura Edwards-Ray, who co-produces and directs the show with LTYM St. Louis veteran organizer Naomi Francis.
The first of those is award-winning blogger and humor columnist Hannah Mayer, who puts her own hilarious spin on being a mom of three girls.
The other original cast member is Jen York.
York said that in the years since her "incredibly cathartic" first LTYM experience she has realized how much anger she was still carrying toward her mom. However, raising her own three boys has given her a new understanding of the difficulties of motherhood, even for those who have extensive support.
All 12 of the intensely personal stories shared by the LTYM cast will take the audience on a memorable journey through laughter, tears and a new appreciation of the powerful role of motherhood in everyone's life.
According to Edwards-Ray, the cast is comprised of some of the best writers in the St. Louis region.
"It's just incredible how much talent we have in St. Louis and in Missouri … such talented women, and one talented man, James Baker, who is the husband of a past cast member and tells a wonderful story about his own mother," she said.
Tickets for LTYM are $16, and are currently available online at eventbrite.com or through the show's website, listenstl.com. Tickets also will be sold at the door if available, but only 275 tickets for each performance will be sold and sellouts are anticipated, Edwards-Ray said.
LTYM is sponsored in part by Mid Rivers Newsmagazine's sister publication, West Newsmagazine. Other sponsors include St. Luke's Hospital, Brain Dead & Cooking with Friends, D24 Printing, Diba Shoes Outlet, Elegant Child Early Learning Center, Get Promoted LLC, Girls in the Know, Kranzberg Arts Foundation, Pirate Pictures, Spirit Journey Photography, The Cup, The Wolf Café, and Vintage Vinyl.


text:
Edge Esports and Simtag continue partnership
by Dennis Jordan | Jun 5, 2019 | Edge Esports, News
Joining forces with simracing hardware company Simtag last year has been one of our best moments so far. In July, on the weekend of the 24h race in Spa-Francorchamps, our team was able to travel to the Ardennes to test Simtag's high-quality products in every detail. To no surprise, our drivers were amazed by their content and could profit from it as practice right away.
You can relive our trip to Simtag by watching the Vlogs of our driver Jim Parisis HERE
Today we are happy to announce that our partnership with Simtag will continue into the future. We are more than happy to get supported by a company of their quality, going for the same goal as Edge Esports: Bring simracing to the next level!
We are already in talks about another session in their simulators and can not wait to share more on that with you in the future!
Visit Simtag:
Edge Esports and PRINTiX join forces
by Dennis Jordan | May 30, 2019 | Brands, Edge Esports, News
Since the foundation of Edge Esports, brand image has been of major importance for us and the increasing popularity of offline events within simracing requires brands to be well presented also outside of the World Wide Web.
We are proud to announce that we join forces with PRINTiX to further improve the public presence of the Edge Esports brand. PRINTiX has been a leading Belgian company in digital print for ten years now. From interior or wood printing to banners of all sizes, PRINTiX is able to present everything bigger and better. We look forward to making use of their rich experience and skill set in the future.
During our recent charity event organized by The Mangolia at Outpost Ghent we were already lucky to be supported by one of their masterpieces: Our very own Edge Esports roll-up banner!
Visit PRINTiX:
PRINTiX Website
PRINTiX Facebook
Eyes Forward – Brazilian Grand Prix
by Andreas Wauters | Oct 23, 2018 | Edge Esports, GPVWC, News, Superleague
Autódromo José Carlos Pace… Interlagos…
When drivers hear this name they know that not only is the season coming to a close, but that they are about to drive out of the garage onto one of the most prestigious circuits on not only the GPVWC Superleague calendar but the Formula One calendar as well.
Named after Brazilian F1 driver, Carlos Pace. The 4.309 kilometres (2.677 miles) boasts some of the best action the fans will get to see throughout the season. Much like the Circuit of the Americas before, we are greeted by a mix of sweeping corners and tight, technical and tyre destroying sections mainly inside the second sector.
Whilst the Suzuka circuit boasts being the home of title winning races for the greatest drivers. Interlagos boasts being the home of, in most people's eyes, the single greatest Formula One driver of all time.
Welcome to the Eyes Forward for the penultimate round of the 2018 Grand Prix Virtual World Championship Superleague season. One in which, once again, could mean the title is wrapped up a round early by Alex Siebel.
A Quick Round Up:
Last time out at the Cirtuit of the Americas we witnessed exhilaration and heartbreak alongside an Edge Esports first.
Qualifying 1st and 2nd on the grid locking out the front row for the first time in the team's history after two outstanding laps put Brljak on the pole with Teien alongside.
An amazing qualifying was then followed by an amazing show of pace in the early phase of the race with Brljak slowly pulling away from Teien of whom was acting rear gunner for the Croatian fending off title leader Alex Siebel.
Throughout the rest of the race is was Brljak's day. No drop in pace and a fresh engine allowing him to max his potential and keep the gap to Siebel and take the victory by a dominant 13.6 seconds.
For Teien however. The luck just was not there for the Norwegian. Coming into the race with a dying power unit his pace was already off what Siebel and Brljak could do on race pace but to add insult to injury only ten laps from the chequered flag his engine gave out into Turn 16 and ended the team's hopes of scoring a double podium and closing the gap in the constructors to ACR Zakspeed of whom finished P2 and P7 after a shocking race for Kappet.
The title fight – The Drivers Title:
After Brljak's, dominant, victory at the US Grand Prix it means that the gap between himself and Siebel drops by another 5 points coming into the penultimate round. What this means is that the title implications change although they are extremely less in favor of the Edge driver.
If Siebel finishes ahead of Brljak it is game over in the title fight. So for Brljak to remain inside the title fight:
Brljak Wins – Siebel P5 or lower.
Brljak 2nd – Siebel P8 or lower.
Brljak 3rd – Siebel P12 or lower.
Brljak 4th – Siebel P15 or lower.
Brljak has his work cut out for him if he wants to win this year's title but he is more than capable of finishing ahead of Siebel. For this round luck will need to be fully on his side if he wants to have a shot going into the final round at Abu Dhabi.
The title fight – The Constructors Title:
In the constructors standings things just got harder. After Teien's retirement with ten laps to go it meant that ACR Zakspeed claimed four points over the Edge Esports squad coming into Brazil. To remain in the Constructors Title fight, Teien and Brljak will need to amass a total of three points over the ACR Zakspeed squad on Thursday to be within the 45 points limit coming into Abu Dhabi. So not only is the pressure on in the Drivers Championship but it is very much on in the Constructors Championship.
As we look ahead to Thursday and the 71 laps and 305.939 Kilometres (190.076 Miles) that confront the grid of 14 teams and 28 cars, we can be certain that the 2018 GPVWC Superleague Brazilian Grand Prix will be one for the history books. 18 years and 16 different winners alongside a certainty of a new winner at this racetrack gives us some incredible racing to look forward to. Will you be there to watch history?
Join us on Thursday the 25th of October on the GPVWC YouTube channel LIVE at 20:30 CEST for what will be another unmissable event!
SIMTAG Backs Edge In Landmark Partnership
by James Kirk | Jul 19, 2018 | Edge Esports, Interviews, News
Edge Esports is delighted to reveal an exciting, new partnership with professional simulator and simracing accessories developer, SIMTAG.
All professional drivers will be given access to the company's infrastructure including exclusive usage of prototype rigs. This works two ways as the drivers can give critical feedback to the development team whilst also receiving high quality race training. The deal also sees new media opportunities open up for both parties.
SIMTAG will become a prominent feature on both our Formula SimRacing and WTF1 Superleague vehicles from their respective next rounds. Any future car capable of receiving a custom livery will also see a large influence from the Belgian-based, Hungarian team. A number of Edge personnel including 2018 two-time WTF1 Superleague race winner Jarl 'AroX' Teien will travel to SIMTAG HQ for their first official session next week.
JAMES KIRK, Edge Esports Marketing Director
"This announcement has been a long time coming so it is a huge boost for the team to finally unveil our partnership to the eRacing world. We didn't just want to work together with any simulator developer, rather one that understood what we were about. That means a mutually beneficial relationship for both parties driving towards continual progress.
"The career of Norbert Michelisz (SIMTAG co-founder) was a wonderful ice breaker. The company's HQ location in the heart of Spa-Francorchamps stole our hearts. The drivers are excited for more simulator time. Everything fell into place wonderfully.
"We also hope to develop innovative, consumable media together to showcase just how powerful our combined efforts can be. The possibilities are very exciting indeed."
JÁNOS ZSINOR, SIMTAG Sales and Events Manager
"We would like to be the connection between virtual and real racing so for us it was very important to find a partner who had a similar focus on targets as we do. After research and conversations with Edge we decided that we had to step forward together. Both brands could be strong alone but we could be stronger as one.
"Our belief is that we'll be the weapon that gives Edge the advantage against other teams both online and offline. We are not of the internet generation though we are well aware of what they want to see. To grow on social media we need these young faces of esports to find success. High quality videos on a regular basis will demonstrate our cooperation to both sets of audiences."
It's a 1-2 for Edge Esports in Germany!
by James Kirk | Jul 7, 2018 | Drivers, Edge Esports, GPVWC, Interviews, Jarl Teien, News, Petar Brljak, Quasar, Superleague
"Even with a car that is off pace, we can still achieve incredible results"
Hockenheimring, July 5th
For the first time in the team's history as either Edge Esports or Wauters Automotive, a 1-2 was secured in a Superleague Grand Prix. The Hockenheimring proved to be a day of everything falling into place with Jarl Teien picking up his second win of the season.
With, arguably, one of the weakest cars on the grid our boys did exceptionally well in Qualifying. Jarl secured a front row slot alongside pole sitter Alex Siebel whilst Petar Brljak slotted in on the third row. Sadly for the Croatian his luck at starts remained abysmal as he was caught in a first corner melee along with Geoffrey Fournier and Dennis Jordan.
Whilst his team mate was putting together the pieces of an outstanding recovery drive, Jarl was focusing on keeping the gap down to Siebel ahead. Disaster struck for the German however when he suffered a disconnect promoting the #30 into first place. From here, the Norwegian would continue to control the race masterfully with an aggressive tyre strategy which saw him shock the field with a four-stopper.
All the way from 15th, Petar fought his way back up the order both on track and in the pit lane. By the final phase of the race he was 4th with a fresh set of Ultrasoft rubber. He dismissed the hugely impressive Rait Kilk before taking his time but ultimately winning out against Borja Millan to steal 2nd. No better result has been achieved by the team in its Superleague history. The gap to the top of the Constructors' championship was slashed by over thirty points.
JARL TEIEN – #30
Started – 2nd
Finished – 1st
Fastest Lap – 1:13.416
Pitstops – One: Lap 13 [Ultra/Ultra], Two: Lap 25 [Ultra/Super], Three: Lap 42 [Super/Ultra], Four: Four: Lap 54 [Ultra/Ultra]
"Going into this race I expected to fight for a top five position at max. My sights were set higher after Qualifying those as I nailed my lap being only a tenth off Alex. Starting that high up on the grid helps with strategy options and I think I had a pretty aggressive strategy compared to other people.
"I feel like the four-stop was slower than a three-stop but I made it work anyway. Petar had bad luck on the opening lap but still managed 2nd. I believe had he avoided that he would have won by around 15 seconds over me.
"Lots of upgrades to the next race so that gap to ACR will close hopefully. It will be a hard fight going all the way to the end of the season!"
PETAR BRLJAK – #33
Started – 5th
Finished – 2nd
Pitstops – One: Lap 13 (Ultra/Super), Two: Lap 32 (Super/Super), Three: Lap 51 (Super/Ultra)
"Qualifying went quite nicely as myself and Jarl both managed to do good laps. Unfortunately I was just a passenger in the T1 incident and dropped loads of positions. Luckily the car was still alright to drive and my pace looked really good compared to those around me.
"We had to convert to a three-stop as that meant I could both avoid and jump people through the pitstop phases. I was picking people off a bit easier than expected thanks to being strong into T2. Towards the end I saw I had a chance of 2nd and decided to gamble on the Ultrasofts for the last stint which worked out very well in the end.
"Congrats to Jarl for the win and it's great to see we've fully capitalised on this opportunity for our first 1-2 finish! The last things missing are a few upgrades to close that gap to the best cars. Hungary is one of my favourite tracks so I'm looking forward to that one!"
ANDREAS WAUTERS, Edge Esports and Quasar Manager
"Today we scored our first 1-2 finish ever in the WTF1 Superleague. It's a super happy moment and it shows that even with a car that is off pace, we can still achieve incredible results. It's still a bit of a surprise to me that the result was this good since the preparation for Germany was difficult.
"I feel that we were a bit lucky to the other top teams struggling. With the upcoming summer break we hope that we can bring some more upgrades to the boys. Hopefully they will close up the gap with ACR and a title hunt will be back on!"
Edge Secure Manatee Merchandising Partnership
by James Kirk | Jun 20, 2018 | Edge Esports, Events, eWTCR, FSR, GPVWC, Interviews, News, Superleague, WC
Edge Esports is pleased to announce a brand new merchandising partnership with popular, custom esports apparel supplier, Manatee. The agreement allows supporters at home to purchase their very own Edge Esports jersey whilst the organisation itself is supplied for LAN events.
Manatee.gg will be proudly displayed on both our Formula SimRacing and WTF1 Superleague vehicles. Any future car capable of receiving a custom livery will also feature the logo. Andreas Wauters, Edge Esports Manager, stated "I'm thrilled to work together with a merchandising company of Belgian origin. They offer great service and designs at an affordable price!"
The first set of jerseys were seen in action at the Esports World Touring Car Cup launch event back in May at the Ring°Arena. Now you can order your own with the option to fully customise your name and gamertag! We're delighted to open up orders with a 10% discount and free worldwide shipping. Type the code "EDGE" into the discount bar during checkout and await the sportswear which will help connect you to the sharp end of simracing!
https://www.manatee.gg/products/edge-esports-jersey
"Manatee are the perfect company to help bring Edge Esports products to our followers. In early talks there was an instant kinship with both our brands finding their beginnings in Belgium. This developed into a great understanding and there was never any question of how positive it would be to work together.
"The outstanding quality of both kit design and shirt comfort hugely impressed us. The trial jerseys proved to be a roaring success across the board! From there it was only a matter of time before the partnership was confirmed.
"Future developments and projects are something I think we are all eagerly awaiting. The next steps will be sure to include our fan base! We want to discover what apparel is desired within the realm of eRacing."
CHRISTIAAN TULLENERS, CEO Manatee.gg
"Up to this point we had not partnered with an eRacing team. This is, for us, a good opportunity with a respected team to bring our name to this niche esport. I feel both organisations want to do what every company with a bit ambition wants; become the best in your field. From what I have experienced in working with Edge Esports so far, they will no doubt reach their goals.
"The jerseys came out great! When creating this concept we were thinking about team recognition somewhere outside of the actual game. The goal is that people recognise the car because they saw a driver with the same design or vice versa. I think we pretty much achieved that job."

redpajama_set_name: RedPajamaCommonCrawl


The end of Daylight Savings is when we turn our clocks back one hour and is one of the biggest worries for parents of young babies. Daylight savings this year ends in Europe this weekend on October 30th and on November 6th here in the United States (most of them). I start getting questions about the time change up to a month or more ahead of time and understandably so, which is why this year I made sure I did a tele-seminar back in September about it, for those who wanted to get ahead in tackling this very "scary" issue. If your baby is already waking too early, just the thought of your baby waking an hour earlier is enough to make the calmest parent have a few butterflies. If you're like me who obsesses about sleep (how else could I write about this every week?), it wouldn't be surprising if you feel extra anxious about your 5 a.m. waker-upper waking up at 4 a.m. This article will help you survive Daylight Savings 2011.
For those of you who have an early riser, you may want to start working on your baby's schedule, now. If your baby is 6 months or older and isn't napping well enough, you may want to help your baby nap longer and get on a schedule in the next week, so when the time changes you will be able to adjust easier, keeping your baby from getting overtired. When your baby is already taking short naps, it's very difficult to put her to bed at her normal bedtime, now an hour "later" than usual. Better napping means an easier transition.
If your baby is already waking up too early in the morning, in relation to your ideal family schedule, I'd recommend doing some preemptive work ahead of the time change to ease the transition. Moving your baby's schedule isn't always easy, but in the next week or two, you can successfully move your baby's schedule forward by an hour and then move it again, if necessary, to achieve your family's ideal schedule.
For example, your baby may be waking at 5 a.m., but you'd like her to wake at 6 a.m. or later. So, ideally, you would move her schedule forward one hour to 6 a.m., wait for the time to change (where she will be waking at 5 a.m. once again) and then move her schedule forward, again. This works best when your baby is at least 8 months old, but some 6 month old schedules can be moved as well. Younger babies generally will adjust naturally within a few days to two weeks as long as you don't strictly stick to the earlier schedule (a young baby's sleep is already highly disorganized). If you are interested, I go over detailed steps (with examples) to moving your baby's schedule in my pamphlet called Shift Your Baby's Schedule (I know not a very original title, but I've found that tired parents don't always enjoy clever. 🙂 They just want answers, which I try to provide straight and to-the-point in all my e-Books.). I've included a case study that followed one family's schedule shift whom I worked with one-on-one. And, if you want a day-by-day plan to follow customized to your baby or toddler, I can read your history, review your sleep logs (if you have them), and tell you exactly what to do over the next few weeks. Some babies/toddlers are easier than others, so results do vary, but if you don't try, you don't know! You can purchase the book with a consultation at a discounted price, but if you need more than just help with a schedule change, I'd highly recommend a Personalized Sleep Plan®, which is much more comprehensive.
You have three options to handle the time change when Daylight Savings ends, as I went over in my article Time Change Sleeping Tips on WorkingMother.com (2 years ago but the options don't change much year-to-year) and then again in more detail in my tele-seminar mentioned above.
The key to choosing the best strategy is your baby's sensitivity to being overtired. If your baby isn't overly sensitive to being overtired and is not already waking up before dawn, you might just "go with the flow" and wait for the time to change. Many babies will adjust within a few days to a week, just like we do. You will likely have to wake up "earlier" for a few days, since babies tend to sleep in less than adults, though.
For some babies, they will follow a combination of the abrupt time change and a gradual shift. The main thing to remember is that a too-late bedtime can cause over-tiredness leading to an even EARLIER wake-up time in the morning, which will make Daylight Savings even more difficult to manage. Remember that the new 7 p.m. is the old 8 p.m. and can likely have an adverse effect on your baby's schedule. Rather than follow what your friends might be doing, make sure you take into consideration your baby's sensitivity and adaptability when tackling the end of Daylight Savings. And, if your baby is already struggling to sleep, there is no time like the present to make the time change the time to make a change.
If you're looking for ways to get your baby or toddler into a healthy sleeping routine during the day, I encourage you to explore Mastering Naps and Schedules, a comprehensive guide to napping routines, nap transitions, and all the other important "how-tos" of good baby sleep. With over 40 sample sleep schedules and planning worksheets, Mastering Naps and Schedules is a hands-on tool ideal for any parenting style. For those persistent nighttime struggles, check out The 3 Step System to Help Your Baby Sleep. Using the same unique approach and practical tools for success, this e-book helps you and your baby sleep through the night. If you become a member, you get access to all our e-Books AND the tele-seminar recording (as well as all the others, too, so basically you get access to everything in an organized way).
For those looking for a more customized solution for your unique situation with support along the way, please consider one-on-one baby and toddler sleep consultations, where you will receive a Personalized Sleep Plan® you can feel good about! Sometimes it's not that you can't make a plan. Sometimes you're just too tired to.
How will you handle daylight savings in 2011?
Hi Jen- Thanks for sharing the link. What a cute (and oh so true) card!
To Jill: I read like I have been written this myself. I know exactly what you're going through. In the mornings she wakes up at 6am (if not earlier) and is full of play. She cries alone in her room, so in last week I gave up and started to sleep from her first wake (5am) in her room. So I sleep and she can play around and see that I'm next to her. Then she wakes me up about 7ish with a poo or saying: nyamm-nyamm what means she is hungry. I got my extra hour and she didn't cry in the morning. All won.
Yikes! I am doing the schedule adjustment early and it's not going so well. I figured I'd be brave and shift everything an hour and a half since her 5:15ish wake time is sooo early. My 13 month old was going to bed fairly exhausted at 6pm and waking around 5:15 and I'd usually ignore her til 6. Over the last 12 days I've pushed her to a 7:15 bedtime and ignoring her in the morning til 6:45- in theory. This morning, after waking screaming 6 or 7 times last night (usually she sleeps soundly until 4:30 or so then hopefully dozes til after 5) she woke screaming at 5:45 and continued screaming until I couldn't stand it any more at 6:30. I'm going to stay the course and not do any more adjusting until she has a more appropriate wake time. Any advice? When should I expect her to adjust? Also, she takes two naps used to be at 830 and 1:00ish now at 9:45 and 2-2:15ish, both about an hour long. The second nap is usually difficult to get. We have nap and bedtime routines and while she does occasionally put herself to sleep she usually falls asleep nursing. I'd appreciate any advice or encouragement! Thanks!
@Jill How long did you take to shift 1 1/2 hours? That is usually a fairly big shift that would take 2-3 weeks. Go too fast and it generally leads to a lot of over-tiredness. Sometimes you do need to have "breather" days, too, where you don't shift at all. You might give her a "break" with a 6:45 p.m. bedtime (but same naps since she's napping 1+ hour for each) and then continue shifting, again. It can be brutal to get through a schedule shift, but a few weeks later, it's often very worth it! I remember when I shifted my son around 8 months that it was a really rough two weeks, but when he went from waking at ~5 or 5:30 a.m. to waking after 7 a.m., it was soooo worth it! At one time we even got to 8 a.m. 🙂 Good luck!!!
Mahua, your little guy sounds just like my 15-month-old. He is very sensitive to being overtired and also going through a nap transition. Right now, we have no schedule, and he always seems tired! I guess we are just going to go with the flow as well. I'll sure be glad when he gets back into some sort of routine.
As always, thanks for the article. I can't ever remember how to handle the time change.
Since my 3yo doesn't take naps and is very tired at the end of the day, and my 19 mo is young and therefore sensitive to being over tired, I think I'll try the method of waiting till the time changes, then gradually pushing their bed time later back to their original 7:30.
Crazy as it sounds, I can't wait for November 6th! From about day 1 with my son we have been doing the "when its dark you sleep and when the sun comes up you get up". We throw open the curtains and make a big deal out of "the sun is up, good morning". Works great, until he started school this year and the sun started coming up later (not until almost 8). I need him up by 7:30 at the latest to make it to school without rushing. Been having a hard time explaining to my 2-year-old this past month that "the sun is on its way up, today we are going to wake up the sun" but not Saturday…let the "sun" (Mommy) sleep. If left to his own devices he will sleep until 8:15 or so. Blackout curtains are a miracle worker!
@Lainie You're welcome! Sounds like a good plan. Good luck!
@Mahua I hear ya on the inconsistent babies throwing you for a loop! Make sure you keep bedtime very early during the transition. This transition to one nap can be very difficult for some, but it sounds like you are doing a great job giving him what he needs! I hope he adjusts very quickly to the time change. Good luck!!
@Lori Good luck with the time change!! It can be tough with the transition and inconsistency. Sometimes when we are too flexible with inconsistent babies, we can actually make them more tired by allowing schedules to be too loose, but during a nap transition those rules tend to fly out the window. I hope he adjusts quickly to the new nap schedule and the time change!


text:
/**
 * @author Roman I. Chernyatchik
 */
package javax.swing.text.html;

import java.awt.Color;
import java.awt.Component;
import java.awt.ComponentOrientation;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.net.URL;

import javax.swing.AbstractButton;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JList;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.KeyStroke;
import javax.swing.ListSelectionModel;
import javax.swing.JToggleButton.ToggleButtonModel;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.text.AttributeSet;
import javax.swing.text.JTextComponent;
import javax.swing.text.PlainDocument;
import javax.swing.text.SimpleAttributeSet;

import org.apache.harmony.x.swing.Utilities;
import org.apache.harmony.x.swing.text.html.HTMLIconFactory;
import org.apache.harmony.x.swing.text.html.form.Form;
import org.apache.harmony.x.swing.text.html.form.FormButtonModel;
import org.apache.harmony.x.swing.text.html.form.FormSelectComboBoxModel;
import org.apache.harmony.x.swing.text.html.form.FormSelectListModel;
import org.apache.harmony.x.swing.text.html.form.FormTextModel;
import org.apache.harmony.x.swing.text.html.form.FormToggleButtonModel;

final class FormViewComponentFactory {
    static class InputImageIcon implements Icon {
        private BackgroundImageLoader loader;
        private Icon icon;

        public InputImageIcon(final String src, final URL baseURL,
                                   final FormView view) {
            if (src == null) {
                icon = HTMLIconFactory.getNoImageIcon();
            } else {
                URL url = HTML.resolveURL(src, baseURL);
                if (url == null) {
                    icon = HTMLIconFactory.getLoadingFailedIcon();
                } else {
                    loader = new BackgroundImageLoader(url, true, -1, -1) {
                        protected void onReady() {
                            super.onReady();
                            view.preferenceChanged(view, true, true);
                        }

                        protected void onError() {
                            super.onError();
                            icon = HTMLIconFactory.getNoImageIcon();
                            view.preferenceChanged(view, true, true);
                        }
                   };
                }
            }
        }

        public boolean imageWasLoaded() {
            return loader != null && loader.isReady();
        }

        public void paintIcon(final Component c, final Graphics g,
                              final int x, final int y) {
            if (icon != null) {
                icon.paintIcon(c, g, x, y);
                return;
            }

            if (!loader.isReady()) {
                HTMLIconFactory.getLoadingImageIcon().paintIcon(c, g, x, y);
                return;
            }

            g.drawImage(loader.image,
                        x, y,
                        getIconWidth(), getIconHeight(),
                        loader);
        }

        public int getIconWidth() {
            if (icon != null) {
                return icon.getIconWidth();
            }

            if (!loader.isReady()) {
                return HTMLIconFactory.getLoadingImageIcon().getIconWidth();
            }

            return loader.getWidth();
        }

        public int getIconHeight() {
            if (icon != null) {
                return icon.getIconHeight();
            }

            if (!loader.isReady()) {
                return HTMLIconFactory.getLoadingImageIcon().getIconHeight();
            }

            return loader.getHeight();
        }
    };

        private static final int DEFAULT_TEXTFIELD_SIZE = 20;
        private static final int DEFAULT_STRUT = 5;
        private static final int DEFAULT_COLS_COUNT = 20;
        private static final int DEFAULT_ROWS_COUNT = 3;

        private static final char MEAN_CHAR = 'z';

        private static final Color IMG_BORDER_HIGHLIGHT = new Color(136, 136,
                                                                    136);
        private static final Color IMG_BORDER_SHADOW = new Color(204, 204, 204);

        private static final String DIR_RTL = "rtl";
        private static final String BROWSE_BUTTON_DEFAULT_TEXT = "Browse...";
        private static final String SUBMIT_DEFAULT_TEXT = "Submit Query";
        private static final String RESET_DEFAULT_TEXT = "Reset";

        private FormViewComponentFactory() {
        }

        public static Component createButtonComponent(final Object model,
                                                       final AttributeSet attrs,
                                                       final FormView view) {

            // TODO Implement support of BUTTON content
            return createImageComponent(model, attrs, view);
        }

        public static Component createInputButtonComponent(final Object model,
                final AttributeSet attrs) {

            ButtonModel buttonModel = (ButtonModel) model;
            final JButton button = new JButton("");

            // Model
            if (buttonModel == null) {
                buttonModel = new FormButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                  SimpleAttributeSet.EMPTY);
            }
            button.setModel(buttonModel);

            // VALUE
            String attribute = (String)attrs.getAttribute(HTML.Attribute.VALUE);
            if (!Utilities.isEmptyString(attribute)) {
                button.setText(attribute);
            } else {
                final int width, height;
                final FontMetrics fontMetrics
                    = button.getFontMetrics(button.getFont());
                final Insets insets = button.getInsets();
                width =  DEFAULT_STRUT + insets.top
                         + insets.bottom;
                height =  fontMetrics.getHeight() + insets.top + insets.bottom;

                Dimension size = button.getPreferredSize();
                size.width = width;
                size.height = height;
                button.setPreferredSize(size);
                button.setMaximumSize(size);
                button.setMinimumSize(size);
            }

            // SIZE
            setButtonSize(button, attrs);

            // TITLE
            setTitle(button, attrs);

            // ACCESSKEY
            setButtonAccessKey(button, attrs);

            // ALIGN
            setButtonAlign(button);

            // DISABLED
            setDisabled(button, attrs);

            return button;
        }

        public static Component createInputCheckBoxComponent(final Object model,
                                                     final AttributeSet attrs) {
            ToggleButtonModel checkBoxModel = (ToggleButtonModel) model;
            final JCheckBox checkBox = new JCheckBox();

            // Model
            if (checkBoxModel == null) {
                checkBoxModel = new FormToggleButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                          SimpleAttributeSet.EMPTY);
            }
            checkBox.setModel(checkBoxModel);

            // SIZE
            setButtonSize(checkBox, attrs);

            // TITLE
            setTitle(checkBox, attrs);

            // CHECKED
            setChecked(checkBox, attrs);

            // ACCESSKEY
            setButtonAccessKey(checkBox, attrs);

            // ALIGN
            setButtonAlign(checkBox);

            // DISABLED
            setDisabled(checkBox, attrs);

            return checkBox;
        }

        public static Component createInputImageComponent(final Object model,
                                                          final AttributeSet attrs,
                                                          final FormView view) {
            final Component image = createImageComponent(model, attrs, view);

            // ActionPerformed
            image.addMouseListener(view.new MouseEventListener());

            return image;
        }

        public static Component createInputPasswordComponent(final Object model,
                                                 final AttributeSet attrs,
                                                 final FormView view) {
            PlainDocument document = (PlainDocument) model;
            final JPasswordField passwordField = new JPasswordField();

            // Model
            if (document == null) {
                document = new FormTextModel(new Form(SimpleAttributeSet.EMPTY),
                                             SimpleAttributeSet.EMPTY);
            }
            passwordField.setDocument(document);

            // ActionPerformed
            passwordField.addActionListener(new ActionListener() {

                public void actionPerformed(final ActionEvent event) {
                    view.actionPerformed(event);
                }

            });

            // VALUE
            String attribute = (String)attrs.getAttribute(HTML.Attribute.VALUE);

            if (!Utilities.isEmptyString(attribute)) {
                passwordField.setText(attribute);
            }

            // SIZE
            setTextSize(passwordField, attrs, passwordField.getEchoChar());

            // TITLE
            setTitle(passwordField, attrs);

            // ACCESSKEY
            setTextAccessKey(passwordField, attrs);

            // DIR
            setTextDir(passwordField, attrs);

            // READONLY
            setTextReadonly(passwordField, attrs);

            // ALIGN
            setTextAlign(passwordField);

            // DISABLED
            setDisabled(passwordField, attrs);

            return passwordField;
        }

        public static Component createInputRadioComponent(final Object model,
                                                    final AttributeSet attrs) {
            ToggleButtonModel radioButtonModel;
            final JRadioButton radioButton = new JRadioButton();

            // NAME
            String attribute = (String) attrs.getAttribute(HTML.Attribute.NAME);
            if (!Utilities.isEmptyString(attribute)) {
                radioButtonModel = (ToggleButtonModel) model;
            } else {
                radioButtonModel = new ToggleButtonModel() {
                    public void setGroup(final ButtonGroup group) {
                        //Do nothing
                    };
                };
            }

            // Model
            if (radioButtonModel == null) {
                radioButtonModel = new FormToggleButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                             SimpleAttributeSet.EMPTY);
            }
            radioButton.setModel(radioButtonModel);

            // SIZE
            setButtonSize(radioButton, attrs);

            // TITLE
            setTitle(radioButton, attrs);

            // CHECKED
            setChecked(radioButton, attrs);

            // ACCESSKEY
            setButtonAccessKey(radioButton, attrs);

            // ALIGN
            setButtonAlign(radioButton);

            // DISABLED
            setDisabled(radioButton, attrs);

            return radioButton;
        }

        public static Component createInputResetComponent(final Object model,
                                                     final AttributeSet attrs,
                                                     final FormView view) {
            ButtonModel resetButtonModel = (ButtonModel) model;
            final JButton resetButton = new JButton();

            // Model
            if (resetButtonModel == null) {
                resetButtonModel = new FormButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                       SimpleAttributeSet.EMPTY);
            }
            resetButton.setModel(resetButtonModel);

            // ActionPerformed
            resetButton.addActionListener(new ActionListener() {

                public void actionPerformed(final ActionEvent event) {
                    view.actionPerformed(event);
                }

            });

            // VALUE
            String attribute = (String)attrs.getAttribute(HTML.Attribute.VALUE);

            if (!Utilities.isEmptyString(attribute)) {
                resetButton.setText(attribute);
            } else {
                resetButton.setText(RESET_DEFAULT_TEXT);
            }

            // SIZE
            setButtonSize(resetButton, attrs);

            // TITLE
            setTitle(resetButton, attrs);

            // ACCESSKEY
            setButtonAccessKey(resetButton, attrs);

            // ALIGN
            setButtonAlign(resetButton);

            // DISABLED
            setDisabled(resetButton, attrs);

            return resetButton;
        }

        public static Component createInputSubmitComponent(final Object model,
                                                       final AttributeSet attrs,
                                                       final FormView view) {
            ButtonModel submitButtonModel = (ButtonModel) model;
            final JButton submitButton = new JButton();

            // Model
            if (submitButtonModel == null) {
                submitButtonModel = new FormButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                        SimpleAttributeSet.EMPTY);
            }
            submitButton.setModel(submitButtonModel);

            // ActionPerformed
            submitButton.addActionListener(new ActionListener() {

                public void actionPerformed(final ActionEvent event) {
                    view.actionPerformed(event);
                }

            });

            // VALUE
            String attribute = (String)attrs.getAttribute(HTML.Attribute.VALUE);

            if (!Utilities.isEmptyString(attribute)) {
                submitButton.setText(attribute);
            } else {
                submitButton.setText(SUBMIT_DEFAULT_TEXT);
            }

            // SIZE
            setButtonSize(submitButton, attrs);

            // TITLE
            setTitle(submitButton, attrs);

            // ACCESSKEY
            setButtonAccessKey(submitButton, attrs);

            // ALIGN
            setButtonAlign(submitButton);

            // DISABLED
            setDisabled(submitButton, attrs);

            return submitButton;
        }

        public static Component createInputTextComponent(final Object model,
                                                     final AttributeSet attrs,
                                                     final FormView view) {
            PlainDocument document = (PlainDocument) model;
            final JTextField textField = new JTextField();

            // Model
            if (document == null) {
                document = new FormTextModel(new Form(SimpleAttributeSet.EMPTY),
                                             SimpleAttributeSet.EMPTY);
            }
            textField.setDocument(document);

            // ActionPerformed
            textField.addActionListener(new ActionListener() {

                public void actionPerformed(final ActionEvent event) {
                    view.actionPerformed(event);
                }

            });

            // VALUE
            final String attribute = (String)attrs.getAttribute(HTML.Attribute
                                                                .VALUE);
            if (!Utilities.isEmptyString(attribute)) {
                textField.setText(attribute);
            }

            // SIZE
            setTextSize(textField, attrs, MEAN_CHAR);

            // TITLE
            setTitle(textField, attrs);

            // ACCESSKEY
            setTextAccessKey(textField, attrs);

            // DIR
            setTextDir(textField, attrs);

            // READONLY
            setTextReadonly(textField, attrs);

            // ALIGN
            setTextAlign(textField);

            // DISABLED
            setDisabled(textField, attrs);

            return textField;
        }

        public static Component createInputFileComponent(final Object model,
                                                     final AttributeSet attrs) {
            /*
             * FilePath attributes
             */
            PlainDocument document = (PlainDocument) model;
            final JTextField filePath = new JTextField();

            // Model
            if (document == null) {
                document = new FormTextModel(new Form(SimpleAttributeSet.EMPTY),
                                             SimpleAttributeSet.EMPTY);
            }
            filePath.setDocument(document);

            // SIZE
            setTextSize(filePath, attrs, MEAN_CHAR);

            // ACCESSKEY
            setTextAccessKey(filePath, attrs);

            // DIR
            boolean isRTL = setTextDir(filePath, attrs);

            /*
             * Browse button attributes
             */
            final JButton browseButton
                = new JButton(BROWSE_BUTTON_DEFAULT_TEXT);

            // READONLY
            String attribute = (String) attrs.getAttribute(HTML.Attribute
                                                           .READONLY);
            if (attribute != null) {
               filePath.setEditable(false);
            } else {
                browseButton.addActionListener(new ActionListener() {
                    private JFileChooser chooser;
                    public void actionPerformed(final ActionEvent e) {
                        if (chooser == null) {
                            chooser = new JFileChooser();
                        }
                        if (chooser.showOpenDialog(browseButton)
                            == JFileChooser.APPROVE_OPTION) {

                            filePath.setText(chooser.getSelectedFile().getPath());
                        }
                    }
                });
            }

            /*
             * Box attributes
             */
            final Box box = Box.createHorizontalBox();

            // TITLE
            attribute = (String) attrs.getAttribute(HTML.Attribute.TITLE);
            if (!Utilities.isEmptyString(attribute)) {
                filePath.setToolTipText(attribute);
                browseButton.setToolTipText(attribute);
            }

            // ALIGN
            box.setAlignmentX(JComponent.CENTER_ALIGNMENT);
            box.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);
            browseButton.setAlignmentX(JComponent.LEFT_ALIGNMENT);
            browseButton.setAlignmentY(JComponent.CENTER_ALIGNMENT);

            // DISABLED
            if (attrs.getAttribute(HTML.Attribute.DISABLED) != null) {
                filePath.setEnabled(false);
                browseButton.setEnabled(false);
            }

            box.add(filePath);
            box.add(Box.createHorizontalStrut(5));
            box.add(browseButton);

            if (isRTL) {
                box.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
            }

            return box;
        }

        public static JComponent createSelectMultipleComponent(
                                                       final Object model,
                                                       final AttributeSet attrs) {
            // MULTIPLE
            final boolean isMultiple
                = (attrs.getAttribute(HTML.Attribute.MULTIPLE) != null);

            // SIZE
            int linesCount = 0;
            String attribute = (String)attrs.getAttribute(HTML.Attribute.SIZE);
            if (!Utilities.isEmptyString(attribute)) {
                try {
                    linesCount = Integer.parseInt(attribute);
                } catch (NumberFormatException e) {
                    //DO nothing
                }
            }

            /*
             * JList attributes
             */
            JList selectionList = new JList();
            FormSelectListModel optionModel;

            // Model
            if (model != null) {
                optionModel = (FormSelectListModel)model;
            } else {
                optionModel = new FormSelectListModel(new Form(SimpleAttributeSet.EMPTY),
                                                      SimpleAttributeSet.EMPTY,
                                                      selectionList.getSelectionModel());
            }

            selectionList.setModel(optionModel);
            selectionList.setSelectionModel(optionModel.getSelectionModel());

            if (isMultiple) {
                selectionList.setSelectionMode(ListSelectionModel
                                               .MULTIPLE_INTERVAL_SELECTION);

            }

            // TITLE
            if (!Utilities.isEmptyString(optionModel.getTitle())) {
                selectionList.setToolTipText(optionModel.getTitle());
            }

            // DIR
            setTextDir(selectionList, attrs);

            // OPTION attributes
            if (linesCount <= 1) {
                linesCount = Math.max(1, selectionList.getModel().getSize());
            }

            // Selection
            FormViewUtils.resetMultipleSelection(optionModel);

            /*
             * JScrollPane attributes
             */
            final FontMetrics fontMetrics
                = selectionList.getFontMetrics(selectionList.getFont());
            Dimension size;
            if (optionModel.getSize() == 0) {
                size = selectionList.getPreferredSize();
                Insets insets = selectionList.getInsets();
                size.width = fontMetrics.charWidth(MEAN_CHAR)
                             + insets.left + insets.right;
                selectionList.setPreferredSize(size);
            }

            JScrollPane pane = new JScrollPane(selectionList,
                                               JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                               JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

            size = pane.getPreferredSize();
            size.height = linesCount * fontMetrics.getHeight();
            pane.setMinimumSize(size);
            pane.setMaximumSize(size);
            pane.setPreferredSize(size);
            pane.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);

            // DISABLED
            if (optionModel.isEnabled()) {
                pane.setEnabled(false);
            }

            return pane;
        }

        public static JComponent createSelectSimpleComponent(
                                                     final Object model,
                                                     final AttributeSet attrs) {
            JComboBox selectElement = new JComboBox();
            FormSelectComboBoxModel comboBoxModel = (FormSelectComboBoxModel)model;
            // Model
            if (comboBoxModel == null) {
                comboBoxModel = new FormSelectComboBoxModel(new Form(SimpleAttributeSet.EMPTY),
                                                            SimpleAttributeSet.EMPTY);

            }
            selectElement.setModel(comboBoxModel);

            selectElement.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);

            // TITLE
            if (!Utilities.isEmptyString(comboBoxModel.getTitle())) {
                selectElement.setToolTipText(comboBoxModel.getTitle());
            }

            // DIR
            setTextDir(selectElement, attrs);

            // Selection
            FormViewUtils.resetSimpleSelection(selectElement.getModel());

            // Size
            final Dimension size = selectElement.getPreferredSize();
            selectElement.setMinimumSize(size);
            selectElement.setMaximumSize(size);

            // DISABLED
            if (!comboBoxModel.isEnabled()) {
               selectElement.setEnabled(false);
            }

            return selectElement;
        }

        public static Component createTextAreaComponent(final Object model,
                                                        final AttributeSet attrs,
                                                        final FormView view) {
            /*
             * JTextArea attributes
             */
            Dimension size;
            PlainDocument document = (PlainDocument)model;

            //ROWS
            int rowsCount = DEFAULT_ROWS_COUNT;
            String attribute = (String)attrs.getAttribute(HTML.Attribute.ROWS);
            if (!Utilities.isEmptyString(attribute)) {
                try {
                    rowsCount = Integer.parseInt(attribute);
                } catch (NumberFormatException  e) {
                    //Do nothing
                }
            }

            //COLS
            int columnsCount = DEFAULT_COLS_COUNT;
            attribute = (String)attrs.getAttribute(HTML.Attribute.COLS);
            if (!Utilities.isEmptyString(attribute)) {
                try {
                    columnsCount = Integer.parseInt(attribute);
                } catch (NumberFormatException  e) {
                    //Do nothing
                }
            }

            //Model
            if (document == null) {
                document = new FormTextModel(new Form(SimpleAttributeSet.EMPTY),
                                             SimpleAttributeSet.EMPTY);
            }

            final JTextArea textArea = new JTextArea(document,
                                                     null,
                                                     rowsCount,
                                                     columnsCount);
            //DIR
            setTextDir(textArea, attrs);

            //ACCESSKEY
            setTextAccessKey(textArea, attrs);

            //READONLY
            setTextReadonly(textArea, attrs);

            /*
             * JScrollPane attributes
             */
            final JScrollPane pane = new JScrollPane(textArea);
            size = pane.getPreferredSize();
            pane.setMinimumSize(size);
            pane.setPreferredSize(size);
            pane.setMaximumSize(size);

            pane.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);

            //TITLE
            attribute = (String) attrs.getAttribute(HTML.Attribute.TITLE);
            if (!Utilities.isEmptyString(attribute)) {
                textArea.setToolTipText(attribute);
                pane.setToolTipText(attribute);
                pane.getVerticalScrollBar().setToolTipText(attribute);
                pane.getHorizontalScrollBar().setToolTipText(attribute);
            }

            //DISABLED
            if (attrs.getAttribute(HTML.Attribute.DISABLED) != null) {
                textArea.setEnabled(false);
                pane.setEnabled(false);
            }

            return pane;
        }

        private static Component createImageComponent(final Object model,
                                                      final AttributeSet attrs,
                                                      final FormView view) {

            ButtonModel imageModel = (ButtonModel) model;
            final JButton image = new JButton("");

            // Model
            if (imageModel == null) {
                imageModel = new FormButtonModel(new Form(SimpleAttributeSet.EMPTY),
                                                 SimpleAttributeSet.EMPTY);
            }
            image.setModel(imageModel);

            image.setCursor(new Cursor(Cursor.HAND_CURSOR));

            // SRC, ALT
            String attribute = (String)attrs.getAttribute(HTML.Attribute.SRC);

            InputImageIcon icon
                = new InputImageIcon(attribute,
                                          ((HTMLDocument)view.getDocument())
                                          .getBase(),
                                          view);
            image.setIcon(icon);
            image.setBackground(Color.WHITE);
            Dimension size;
            if (icon.imageWasLoaded()) {
                image.setBorderPainted(false);
                size = new Dimension(icon.getIconWidth(),
                                     icon.getIconHeight());
            } else {
                Border outside = new BevelBorder(BevelBorder.LOWERED,
                                                 IMG_BORDER_SHADOW,
                                                 IMG_BORDER_HIGHLIGHT);
                image.setBorder(new CompoundBorder(outside,
                                                  new EmptyBorder(5, 5, 5, 5)));
                image.setContentAreaFilled(false);
                image.setFocusPainted(false);
                attribute = (String)attrs.getAttribute(HTML.Attribute.ALT);
                if (!Utilities.isEmptyString(attribute)) {
                    image.setFont(new Font("Button.font", 0 , 12));
                    image.setText(attribute);
                    image.setToolTipText(attribute);
                }
                size = image.getPreferredSize();
            }
            image.setMinimumSize(size);
            image.setPreferredSize(size);
            image.setMaximumSize(size);

            //SIZE
            setButtonSize(image, attrs);

            //TITLE
            setTitle(image, attrs);

            //ACCESSKEY
            setButtonAccessKey(image, attrs);

            //ALIGN
            setButtonAlign(image);

            //DISABLED
            setDisabled(image, attrs);

            return image;
        }

        private static void setTextSize(final JTextComponent textComponent,
                final AttributeSet attrs, final char widestChar) {
            final String attribute
                = (String) attrs.getAttribute(HTML.Attribute.SIZE);
            int width = DEFAULT_TEXTFIELD_SIZE;
            if (attribute != null) {
                try {
                    final int newWidth = Integer.parseInt(attribute);
                    if (newWidth > width) {
                        width = newWidth;
                    }
                } catch (NumberFormatException e) {
                    // do nothing
                }
            }
            final FontMetrics fontMetrics
                = textComponent.getFontMetrics(textComponent.getFont());
            final int charWidth = fontMetrics.charWidth(widestChar);
            Dimension size = textComponent.getPreferredSize();

            size.width = width * charWidth;
            textComponent.setPreferredSize(size);
            textComponent.setMaximumSize(size);

            size = new Dimension(DEFAULT_TEXTFIELD_SIZE * charWidth,
                                 size.height);
            textComponent.setMinimumSize(size);
        }

        private static String setTitle(final JComponent component,
                                       final AttributeSet attrs) {
            final String attribute = (String) attrs.getAttribute(HTML.Attribute
                                                                 .TITLE);
            if (!Utilities.isEmptyString(attribute)) {
                component.setToolTipText(attribute);
            }
            return attribute;
        }

        private static void setTextReadonly(final JTextComponent textComponent,
                                            final AttributeSet attrs) {
            if (attrs.getAttribute(HTML.Attribute.READONLY) != null) {
                textComponent.setEditable(false);
            }
        }

        private static void setButtonAccessKey(final AbstractButton button,
                                               final AttributeSet attrs) {
            final String attribute = (String) attrs.getAttribute(HTML.Attribute
                                                                 .ACCESSKEY);
            if (!Utilities.isEmptyString(attribute)) {
                button.setMnemonic(attribute.charAt(0));
            }
        }

        private static void setButtonAlign(final AbstractButton button) {
            button.setAlignmentX(JComponent.LEFT_ALIGNMENT);
            button.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);
        }

        private static void setButtonSize(final AbstractButton button,
                                          final AttributeSet attrs) {
            final String attribute;
            attribute = (String)attrs.getAttribute(HTML.Attribute.SIZE);
            if (attribute != null) {
                Dimension size = button.getPreferredSize();
                try {
                    size.width = Integer.parseInt(attribute);
                } catch (NumberFormatException  e) {
                    //Do nothing
                }
                button.setPreferredSize(size);
                button.setMaximumSize(size);
                button.setMinimumSize(size);
            }
        }

        private static void setChecked(final JToggleButton button,
                                       final AttributeSet attrs) {
            if (attrs.getAttribute(HTML.Attribute.CHECKED) != null) {
                button.setSelected(true);
            }
        }

        private static void setDisabled(final Component component,
                                        final AttributeSet attrs) {
            if (attrs.getAttribute(HTML.Attribute.DISABLED) != null) {
                component.setEnabled(false);
            }
        }

        private static void setTextAccessKey(final JTextComponent textComponent,
                                             final AttributeSet attrs) {
            final String attribute = (String) attrs.getAttribute(HTML.Attribute
                                                                 .ACCESSKEY);
            if (!Utilities.isEmptyString(attribute)) {
                ActionListener listener = new ActionListener() {

                    public void actionPerformed(final ActionEvent e) {
                        textComponent.requestFocusInWindow();
                    }

                };
                final char key = attribute.charAt(0);
                final KeyStroke keystroke1
                    = KeyStroke.getKeyStroke(Character.toLowerCase(key),
                                             InputEvent.ALT_MASK);
                final KeyStroke keystroke2
                    = KeyStroke.getKeyStroke(Character.toUpperCase(key),
                                             InputEvent.ALT_MASK);
                textComponent.registerKeyboardAction(listener,
                                                     keystroke1,
                                                     JComponent
                                                     .WHEN_IN_FOCUSED_WINDOW);
                textComponent.registerKeyboardAction(listener,
                                                     keystroke2,
                                                     JComponent
                                                     .WHEN_IN_FOCUSED_WINDOW);
            }
        }

        private static void setTextAlign(final JTextComponent component) {
            component.setAlignmentX(JComponent.CENTER_ALIGNMENT);
            component.setAlignmentY(JComponent.BOTTOM_ALIGNMENT);
        }

        private static boolean setTextDir(final Component component,
                                          final AttributeSet attrs) {
            final String attribute = (String)attrs.getAttribute(HTML.Attribute
                                                                .DIR);
            if (!Utilities.isEmptyString(attribute)) {
                if (DIR_RTL.equals(attribute.toLowerCase())) {
                    component.setComponentOrientation(ComponentOrientation
                                                          .RIGHT_TO_LEFT);
                    return true;
                }
            }
            return false;
        }

}

redpajama_set_name: RedPajamaGithub


text:
Q: Do css background images not get cached by default? While tuning my web app, I noticed that certain of my images are never loading from cache, even though they're completely static:

This particular file always loads from the server, but it should be cached. The only thing somewhat special about the file, AFAICT, is that it's sourced via a CSS class, which specifies the file via a background-image style. I'm not specifying any tricky headers or anything; it's just a regular jpg file.
There's a lot online about preventing caching, but I can't find anything about making it work when it doesn't seem to be.

A: Do you have caching software on your web server? If yes is it enabled? Since some can be disabled such as UnixyVarnish what is mainly found in cPanel. Images do get cached by default. Regardless of how its displayed. And your browser should automatically cache websites you visit, unless you have disabled it.

redpajama_set_name: RedPajamaStackExchange


WGHC Tenants in Area 1 will have now received their letter advising them that Sidey won the contract for the replacement of the doors and windows in their homes. All tenants will soon receive an on site visit from Sidey to discuss their options. If you have a question or concern about these works please contact our Maintenance Manager, Les Graham, directly on 0131 551 5035.Les will arrange to visit you at home to talk through any concerns or queries you might have.
The works are due to start in the week beginning 29th April 2019. Whilst the works are being carried out you will be advised to contact the Sidey Tenant Liaison Officer for the project regarding any matters concerning the replacement of the doors and windows in your home. All replacement doors will be rosewood in colour and tenants will have a choice of 2 doors. All front doors will have a thumb turn lock in accordance with fire safety regulations. All back doors will come with a lock and key and again there will be 2 options available.


We are looking for quick hands and quicker brains to help us deliver a cutting edge, high quality code. You love responsive user-interfaces and dynamic websites and like to work hard with a team in order to implement as many ideas as possible. You're not afraid of new technologies and you enjoy analyzing the frameworks and libraries you use in order to understand how things work. Overall you are an open, flexible problem solver who enjoys working in a close-knit team. Does this sound like a reflection of you? Then you have come to the right place.


text:
Q: Javascript + popup shortcodes wordpress Right now I am using a javascript to trigger a new tab and load a new page in the parent window. It looks like this:

`

This triggers the "same" page in a new tab on click (works fine).
The problem is that I want to trigger a popup on click, I´ve tried several plugins for pop-ups without any success. Is it even possible to trigger a popup after loading the page in a new tab?
The pop-up im talking about is a pop-up for that very link. It is going to show a coupon code. Therefore I can not trigger the pop-up on a specific url since the url/page contains several campaigns with different coupon codes.
I´ve seen this type of solution in multiple webpages but can´t figure out how
they´ve done it. The easiest solution would be to simply add a popup #id in the end of the url to trigger the popup but I haven´t found any plugin that works this way.
btw, im talking about "in page popups". Not a new window.


5 nights accommodation, in the accommodation category of your choice Cat. 1, 2 or 3.
Rental car of your choice for 4 days including unlimited mileage, CDW and more.
Pick up the rental car in the morning and head for the eastern outskirts of the city. Cross the plateau Hellisheiði, with a lot of geothermal activity and plumes of steam rising from the ground. Numerous boreholes have been drilled on Hellisheiði in the last years for hot water and steam, some of the cleanest energy available. Stop at Hellisheiði Geothermal Powerplant where natural hot water and steam pressure from the ground is used for generating electricity. Here, you can enjoy an optional tour through the power station and and learn about the eco-friendly geo thermal energy. After crossing the plateau, come to the small town Hveragerði, where hot spring water is used for heating greenhouses for cultivation of decorative flowers and vegetables. Drive further east towards Hella. Head inland to visit the Landmannalaugar area. The track passes through a wide variety of canyons, valleys, over rock ridges and black lava, weird plain of lava rocks surrounded by captivating mountains. The mountain track over Landmannaleið offers some of the finest scenic views available throughout this fascinating region. Off the track there are various trails leading to the volcano Hekla, which is in view on and off to the south of the trail. Visit Landmannahellir, a cave that runs some distance into a hillside. The scenic interest in the area is tremendous. The surrounding mountains are perhaps the most varied and colourful in Iceland. This area is highly recommended for nature lovers and those interested in geology. It offers numerous hiking trails for long and short hikes. Lake Frostastaðavatn surrounded by colourful mountains and craters. From a side road near the western end of the lake, a short drive up to the rim of Ljótipollur a lake-filled crater. The trail proceeds cutting across some relatively recent lava streams and through the Dómadalur valley.
At Landmannalugar is a warden station, mountain hut and a popular camping site. Near the hut is a warm water pool created by the confluence of natural hot water and a cold water springs which issue within a short distance of one another from underneath the edge of the obsidian lavafield. Here you can take a relaxing bath in the beautiful and almost surreal surroundings. Continue on the Fjallabak route which is one of the most scenic trails in the interior highlands of Iceland, perhaps the most colourful and diversified of the many interesting mountain tracks, rugged colourful landscape of unsurpassed beauty. One of the highlights of the route is Eldgjá, one of the most interesting sights in this part of the country. Here nature has created a unique spectacle splitting mountains and valleys in its course creating a gigantic 30 km long gash into the earth, in some places is up to 600m wide and up to 200m deep. The volcanic fissure is considered to be the greatest of its kind on earth. Ófærufoss, used to be one of the country´s most beautiful waterfall, framed by a natural bridge, arching over the rivers gorge that collapsed years ago. There is marvellous scenery along this route. Proceed through Skaftárdalur valley to Kirkjubæjarklaustur.
Continue from Klaustur over Skeidarársandur, vast tracts of black sandy desert washed down by numerous torrential glacial rivers. Stop at the Skaftafell National Park, an oasis wedged between glacier and sand. Its natural beauty is a result of unusually favourable weather conditions and the interaction of ice and fire. Beneath the Vatnajökull ice cap, towering above Skaftafell is Grímsvötn, one of Iceland's most active volcano. In the afternoon of 21. May 2011, a sub-glacial eruption started in the Grímsvötn volcanic system underneath Vatnajökull Glacier. Later the same day, the eruption broke the ice cover of the glacier and started spewing volcanic ash into the air. The amount of ash fall was the greatest close to the village Kirkjubæjarklaustur. The eruption went on for about a week. It ceased on 28. May 2011. See the interesting Visitors Center where you can learn the history of fire and ice in the region and a video of the volcanic eruption and the catastrophic flood in the area in 1996 can also be viewed. An interesting hiking trail takes you to Svartifoss, one of Icelands most picturesque waterfall, framed in by beautiful basalt columns that surround it. In the Skaftafell area are many other interesting hiking trails. Continue to Jökulsarlón, the Glacial Lagoon where huge icebergs, sculptures of nature, broken off the Breiðamerkurjökull glacier float and grind together in the deep blue waters of the lagoon. An interesting cruise among the icebergs on the Lagoon is available in summer. Head west cross the black sandy floodplains of Mýrdalssandur to the village Vík on the black beach. Drive to Reynishverfi with a spectacular coast and beautiful rock formations. Thousands of seabirds nest here in almost every crevice in summer. Head west towards Reykjavík and stop at the beautiful waterfall Skógafoss and don't miss the Folk Museum at Skógar. On March 20th 2010, a volcanic eruption started on Fimmvörðuháls, a mountain ridge between the glaciers, Eyjafjallajökull and Mýrdalsjökull. The eruption on Fimmvörðuháls lasted a couple of weeks. After this eruption came to an end a new and bigger eruption started underneath the nearby icecap of Eyjafjallajökull Glacier. This eruption came to an end on 23. May 2010.
It is possible to walk behind the pretty waterfall Seljalandsfoss in summer. This is an interesting experience. Continue to the village Hvolsvöllur where you will find the Icelandic Saga Centre. The surrounding area is the scene of Njáls Saga, one of the most famous Icelandic Sagas. Return to Hella area.
Continue to Selfoss. Head inland from Selfoss and stop at the volcanic crater Kerið on you right hand side immediately by the side of the road. Drive further inland and to the waterfall Faxi, which is hidden in a short distance from the road. Continue to the Geyser area to see the famous Great Geysir and Strokkur, a very active geyser that spouts every few minutes, as well as numerous other hot springs. From Geysir, continue a short distance to the waterfall Gullfoss one of Iceland's largest and most beautiful waterfall. Make Gullfoss a turnaround point and head to the National Park Þingvellir, a unique place from a geological point of view. Research has shown that Þingvellir is a natural wonder on an international scale where evidence of continental drift and the rifting of the earth's crust can clearly be seen. Þingvellir is also the most historical place in the country and a place of exceptional beauty. From the National Park, drive across the plateau Mosfellsheiði to Reykjavík for an overnight stay.
Leave Reykjavík and make a circle trip on Reykjanes peninsula to Lake Kleifarvatn, Krýsuvík geothermaal area and visit the Blue Lagoon. Visit Lake Kleifarvatn and Krísuvík geothermal area for a feel of the power of Earth. Continue to from Grindavík fishing town across moon-like rugged lava fields to the Blue Lagoon. Enjoy a relaxing bath in an otherworldly setting. In this unique area, lava and thermal water complement each other to prepare you for your journey home. Soak in the refreshing waters of the Blue Lagoon, and have a wonderful last unforgettable taste of Iceland, that ensures that you are fully relaxed when you leave Iceland. If you plan to take a bath at the Blue Lagoon, we strongly recommend that you book your ticket in advance. It can be booked at www.bluelagoon.com Return to Reykjavík and drop off the car.
Drop off is in Reykjavík the day prior to your departure – day 5.
The highland tracks of Iceland are usually not expected to be open until June and due to road conditions some routes may temporarily not be passable without prior notice.


Roasted radishes with raisins: When I first planted a tiny vegetable garden in my very first home, I planted radishes. A lot of them! I didn't really understand much about planting vegetables and was really surprised to see how successful I had been in growing radishes. Very successful! In fact, the whole packet of seed sort of 'successful'. Sadly, no one in the house really liked radishes much and I never had the will to find out what else I could do with them other than slice them into a salad. That is, until NOW!
Radishes are fast becoming a favourite. Quick to grow and slow to cook, roasted radishes with raisins will add colour and flavor to your next meal and they are equally delicious served chilled too.
Since radishes have a peppery flavor, they are perfectly paired with something sweet like raisins or other dried fruits like cranberries and dates.
Preheat the oven to 185 C / 370 F.
Toss the diced radishes and raisins together with the olive oil, salt and garlic powder.
Place the radishes in a baking dish and place in the centre of the oven, uncovered for 1 hour.
After 1 hour, turn the radishes over with a spoon and place back into the oven for a further 30 minutes or until they begin to brown.
Remove from the oven, drizzle with the honey and turn the radishes over with a spoon to distribute the honey.


To start my project is a Nancyfx application with razor view engine installed. I initially ran Install-Package SquishIt. Once installed I ran through another tutorial that requires some editing of the webconfig. However my webconfig has been altered a lot already, and it did not look like the sample application. I am also not a guru in the web.config so I was kind of confused where to place the sample XML provided. I ignored the webconfig, I fired up nancy and tried to use SquishIt, only to get the following razor compile error.
It seems you must tell razor about squishIt's assemblies. Well It turns out there are basically 2 blocks of entries you need to add to your web.config. First you need to place <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor"/> inside <configSections> but outside of <sectionGroup>.
Once I got it up and running, things did not seem right. So I started combing through google. I stumbled across a thread where the creator of SquishIt noted SquishIt was having issues with resolving file paths. This was caused by a change to Nancy.
Which seemed to work. I believe if you have your file paths be the same as the paths called by the HTML, it will probably work fine without the above fix.
This isn't actually a SquishIt problem, but I didn't notice this until I installed SquishIt. Files in a Scripts/ folder will not be served up by Nancy.
Back to Google I went, and I found my answer on stack overflow. Apparently Nancy only uses Content/ as the content directory, for static content. I ended up adding the following to my ConfigureConventions override.
The AddDirectory requires 2 strings, the first being the route to expect, the second is the directory it needs. This will enable the scripts folder to work in its entirety. You can use this to add other content directories. For me this worked fine.
Now that it all worked I added Bundle.Css().Add("~/Content/bootstrap.css").AsCached("bootstrap", "~/assets/css/bootstrap"); to my ApplicationStartup override. Created a module to serve up the static content (stolen from github) .
Then added @Html.Raw(Bundle.Css().RenderCachedAssetTag("bootstrap")) to my razor view, and by magic it works.
As a side note, it will only minify if you're not in debug mode. So if you're application's webconfig has <compilation debug="true" targetFramework="4.5"> you may want flip it to false to see the minified files.
Well after the work above I was finally generating minified files. SquishIt's ability to minify quickly is very nice. The way it manages files reminds me of the MVC4 Bundling, but SquishIt allows for much greater control over the process.