text:
Q: Order posts by 2 custom fields and if one custom field is zero orderby another custom field I have a really tricky function to implement and couldn't find a way by searching
Please see details below
I have a custom post type called "accommodation", and for this post type, there are 2 custom fields, one is "max_sleep_1", another one is "max_sleep_2"
Now the thing is for some posts under this post type, "max_sleep_1" is set and for other posts "max_sleep_2" is set, But I need to order all posts by max sleep number(the maximum one between this 2 fields)
for example
post1 has "max_sleep_1" set to 1 and "max_sleep_2" set to 0
post2 has "max_sleep_2" set to 2 and "max_sleep_1" set to 0
post3 has "max_sleep_1" set to 3 and "max_sleep_2" set to 0
so the final order of post should be post1->post2->post3, so as you can see the problem, I am ordering by 2 fields, when "max_sleep_1" is set to 0 then I need to use "max_sleep_2" to sort
Hope you can understand what I am saying
I have been searching but couldn't find a proper solution, I also try to merge this 2 fields after I get the results of WP_query, but also not possible so far
now I can only order by one field using meta key and the result is post1->post3->post2, like below
$args = array(
'post_type'   => 'accommodation',
'paged'       => get_query_var('paged'),
'post_parent' => $parent,
'meta_key'    => 'max_sleep_1',
'orderby'     => 'meta_value_num',
'order'       => 'ASC'
);
$the_query = new WP_Query( $args );

I will be really appreciate it if anyone can help me out

A: Well let me answer my own question, this may not be perfect, but it works
First I query the posts using WP_query normally, and then I build an associative array by myself including 2 values, one is post ID another one is the order(I merge 2 order fields into one here)
then I use "uasort" to sort the associative array I built based on merged order, so now I have an array with ordered post ID value
then I use WP_query to query again, this time I query use "post_in" array that I have sorted and then orderby => "post_in", so I got the results I want(in correct order)
This is a very specific case and hope this may help someone future
the key is the query variable "post_in" and you can order by "post_in" array, so in this way, you can query posts whatever order you want as long as you build a "post_in" array, like below
$args = array(
'post_type' => 'accommodation',
'post_parent' => $parent,
'post__in' => $ordered_array,
'orderby' => 'post__in',

)

thanks


text:
State of the Phils
By Brian Michael
Wow, there is so much to talk about, where to begin? Let's start with Uncle Charlie's team meeting. "Our guys have potential," Manuel said. "If I could say one thing, I would say, 'Be focused, stay relaxed and give yourself a chance to be as good as you think you can be.'" Well if you talk to Ed Wade that means give yourself a chance to win the World Series, but rest of the planet knows that means give yourself a chance to finish with 86 wins. That is the potential of this team. Now this is not said to beat a dead and highlight Ed Wade's disconnect, rather it is meant to show a lack of leadership within this organization.
Leaders push people to be BETTER than they think they are, they motivate you and empower you with the resources to achieve your goals. Based on that definition it is safe to safe this organization does not have a single shred of leadership skill outside Todd Pratt's locker. You can't look to the GM as a leader like in Oakland, or to the owner like in NY or the manger like in Chicago (both the Sox and the Cubs) or Atlanta or DC. There is no recognizable force in the clubhouse like Varitek or Dutch Dalton. There is no one behind the wheel here. It seems like its Office Space down there: every one is just doing enough not to get fired. Just look at the recent article summarizing the Phils July trades since 2002. Mediocrity at its finest. Blockbuster trades only come when Wade's hand is forced, and in those cases we wind up losing the star rather than acquiring one (Rolen, Schilling). Free agent signings, like Thome, deserve no credit because money matters is the prime factor, not strategy. This is why I liked Larry Bowa, he was man enough to stand up and say "This is not good enough!" Granted he may not have had the answers, as he was paid to do, but he recognized the problem which is more than I can say for most.
So if this is where the organization stands today, how best to answer some of the impending personnel questions? What to do with Padilla? How to replace Wolf? If/when should Ryan Howard be traded? How can we really make this a championship caliber team?
Well, Wade took the initiative on the first one as he publicly announced Padilla is being put on a short leash. Not groundbreaking news, but it really shouldn't be a story. In fact, Padilla's troubles should not come as a surprise. He's a total head case who thinks self-help is the way to go. He never listened to Joe Kerrigan and I'm sure whatever Dubee's saying is getting lost in translation.
As for the rest of the questions, and Padilla for that matter, I honestly don't know what to do. Sure we could use left handed starter and an everyday centerfielder and a legitimate ace. I'll let you portend the names involved; all I want is for this looming roster move (or non-move) to be a smart business decision executed as part of larger blueprint for success, both for this year and the future. I doubt this blueprint exists, but it if Ed Wade does have one, I would love to read it.
National Exposure

redpajama_set_name: RedPajamaCommonCrawl


text:
HD Movies Point > Back to the Future Film Series
Direct download movie Back to the Future (1985) in HD with My HD Movies Point. Back to the Future is a 1985 American science fiction adventure comedy film directed by Robert Zemeckis and written by Zemeckis and Bob Gale. It stars Michael J. Fox as…
1981-1990, Adventure, Comedy, Hollywood, Sci-Fi Back to the Future Film Series, Classic, Old
Back in Time (2015)
Direct download movie Back in Time (2015) in HD with My HD Movies Point. Back in Time is a 2015 American documentary film directed by Jason Aron. The film explores the production, impact, and legacy of the Back to the Future film series, and…
Avaliable in :: DIRECT
2015, Documentary, Family, History, Hollywood Back to the Future Film Series
Direct download movie Back to the Future Part III (1990) in HD with My HD Movies Point. Back to the Future Part III is a 1990 American science fiction Western comedy film and the third and final installment of the Back to the Future trilogy. The film…
1981-1990, Adventure, Comedy, Hollywood, Sport Back to the Future Film Series, Classic, Old
Direct download movie Back to the Future Part II (1989) in HD with My HD Movies Point. Back to the Future Part II is a 1989 American science fiction film directed by Robert Zemeckis and written by Bob Gale. It is the sequel to the 1985 film…


Consistently profitable Forex traders need to keep up to date with what is happening around the world. Whether you're a Forex trader that relies on technical or fundamental analysis, the Vantage FX, Forex News Centre provides Forex traders with a mixture of up to the minute market news and discussion.
See all of the free Forex market news and analysis streamed all in the one place here.
If you're a Technical trader then this is the place for you. All the charts and specific technical analysis articles are found here.
Looking for something different to read around the world of Forex? Then this is the place for you!
Stay up to date with all the happenings at Vantage FX. If the company releases news, you will hear about it first.


Mono-Amaranth Public School is a K-8 school located on Hockley Road just east of Highway #10 and north of the town of Orangeville. The original school, Mono First Central School was built in 1959. The present building has grown as the result of several additions over the years. With a large rural population, the majority of our students are bused. Orangeville District Secondary School in Orangeville is the school most of our graduates attend. Through community partnership, curriculum initiatives, communication with students and collaboration between staff, we strive to create an environment at Mono Amaranth that supports lifelong learning.


In recent years, Thanksgiving has been a holiday I've been content to pretty much ignore. In the States, it's a long holiday weekend and good for travel or just catching up, and following on Rosh Hashanah only a few weeks earlier, I'm not usually hungry for another turkey. But this year I felt pretty blue about being here, probably because I was alone. It was just another work day, and on Friday morning in India, when the phone was passed around at Marty's cousins as people were finishing up dessert (three kinds of pumpkin pie and whiskey cake to boot!!), I felt really homesick. Dad, of course, had no idea what day it was---but even he seemed sad. For a couple of days before Thanksgiving, he announced at the dinner table that he was "less than 100%" because "I lost my mate." He rarely speaks of my mother, and sometimes thinks it's been 20 years since she died (it's just 3 years next month), so I wonder if his internal clock wasn't also registering the holiday.
Growing up, Thanksgiving was really a big deal in our family. We always got together with my mother's sister and her family, and there were certain traditions that my cousins and I still talk about. By popular acclaim, my aunt always made the gravy and my cousins and I got to sample the turkey in advance of the meal---but only the wings (and a bit of stuffing if no one was looking). One year, the cousin closest to me in age (now deceased) and I invented a radio show using my dad's portable tape recorder (in the early 1960s, a very new and state-of-the art device.) Call letters for radio stations in the eastern U.S. start with the letter W---so we called it WHAM radio, and used a nearby block of wood to make the "wham" sound on the table that accompanied the call letters. How many years later it is, and I can still recall the excitement we felt hearing our voices played back on the tape recorder. Not to mention the taste of Aunt Leora's gravy!
Later this week I'm heading up to Darjeeling, in the far northeast, for a long weekend. It's one of the famous British "hill stations" as well as the home of Darjeeling tea, and the views of the Himalayas are supposed to be fantastic---you are even supposed to be able to see Mt. Everest on a clear day. I'll post when I'm back, and hope the weather cooperates this time.


text:
Barbora Balaban
Barbora was born in Prague, a beautiful city full of history and culture, where she graduated from Prague College of Graphic Art.
Prague, a city full of churches, temples, castles, full of music and art and gardens which were very inspirational. In those years, in Prague, Barbora was always drawn to three-dimensional work, but never had the opportunity to work with clay. Instead, she started to explore the beauty of weaving, tapestry and lace making.
In 1990, Barbora immigrated to Canada with her family. After setting down in Ottawa in 1995, she started to work with clay. Barbora joined the Ottawa Guild of Potters and over the years, she had the opportunity to take courses at St. Lawrence College and at Fleming College in Haliburton. She has also taken numerous workshops offered by the Ottawa Guild of Potters and by Fusion (Ontario Clay and Glass) with top Canadian and U.S. Potters.
Barbora makes functional and decorative pieces, using slabs, in combination with thrown elements. She experiments with the distorting and altering thrown pieces and adding more texture by stamping, folding, carving, or simply adding more clay and decorating with slips and brush work. The contrast between glazed and unglazed parts of the pots brings out the texture of the piece and the warmth of the clay. Most of her work has some function with sculpture content. Barbora's work is high-fired pottery in oxidation. Her passion for gardening and nature is represented in her work and is a continuous inspiration.
Barbora works from her beautiful log home studio "in the woods", where she spends her time between pottery making, gardening, weeding, wood chopping and splitting.


text:
Basilio is a name of Italian, Spanish, or Portuguese origin. It is a cognate of the English name Basil. The name may refer to:

Given name
Basilio Augustín (1840–1910), Spanish Governor-General of the Philippines briefly in 1898
Basilio Badillo (1885–1935), Mexican educator and politician; served briefly as Governor of Jalisco 1921–22
Basilio Basili (1804–1895), Italian tenor and composer
Basílio da Gama (1740–1795), Brazilian poet and Jesuit priest, writing under the pen name Termindo Sipílio
Basilio de Bragança Pereira (born 1945), Brazilian statistician
Basilio do Nascimento (born 1950), Roman Catholic bishop of Baucau, East Timor
Basilio Farinha (born 1977), Portuguese politician
Basilio Lami Dozo (1929–2017), Argentine military officer; member of the military junta ruling Argentina 1981–82
Basilio Martín Patino (born 1930), Spanish documentary film director
Basilio Owono (born 1999), Equatorial Guinean footballer
Basilio Paraíso (1849–1930), Aragonese businessman and politician
Basilio Pompili (1858–1931), Italian cardinal of the Roman Catholic Church
Basilio Santa Cruz Pumacallao (a.k.a. Pumaqallo or Pumacalla, 1635–1710), Peruvian Quechua painter
Basilio Villarino (1741–1785), Spanish naval officer; sailed around Cape Horn
Basilio J. Valdes (1892-1970), Filipino Doctor, General and Minister during World War II
Basílio (footballer) (born 1972), Brazilian footballer

Surname
Carmen Basilio (1927–2012), Italian-American professional boxer
Charles Fernando Basílio da Silva (1985–2019), Brazilian professional football player, playing for Russia
Enriqueta Basilio (a.k.a. Queta Basilio), (born 1948), Mexican Olympic hurdler
Paloma San Basilio (born 1950), Spanish singer

Characters
 Cousin Basilio, a character and 1878 novel by José Maria de Eça de Queiroz
 Don Basilio, a character in the 1816 opera The Barber of Seville by Rossini
 a character in the 1786 opera The Marriage of Figaro by Mozart
 a character in the novels Noli Me Tángere (novel) (1887) and El filibusterismo (1891) by Jose Rizal
 a character in the 1636 Spanish play Life Is a Dream by Pedro Calderón de la Barca
 Basilio the Cat, a crook cat from the 1936 The Golden Key, or the Adventures of Buratino fairy tale
 a playable character from the video game Fire Emblem Awakening

Places
Dom Basílio, town in Brazil
San Basilio (disambiguation)

redpajama_set_name: RedPajamaWikipedia


text:
Q: Sync displays using current time I'm making a digital signage system and I'd like to sync the displays so that they all show the same screen at the same time. I'm thinking that the simplest way of doing this is using the current time as a marker - all the machines running the displays will have the accurate time, and the amount of slides they have will be the same.
Is there a calculation I could perform on the current time to work out which slide to display which could be used on each screen, with a slide display time of 30 seconds for example?

A: I have no experience working with this.
But speaking with a colleague whom has, he pointed me in the direction of Synchroscope.
Seems like the right way to approach it?
Hope it helps!
Synchroscope Guide

A: Thanks to Bergi's suggestion of using Modulo, I've found a solution. Here is my Javascript code that changes the screen/slide every 30 seconds:
var sec = Math.floor(Date.now() / 1000);
var nearest30Sec = Math.round(sec / 30);

var currentSlide = ((nearest30Sec - 1) % 10) + 1;

currentSlide will produce a number between 1 and 10, which will change every 30 seconds.

redpajama_set_name: RedPajamaStackExchange


PBE Marking Systems was founded in the early 1920's as importers and distributors of genuine gold leaf.
Many years later, when Hot Stamping Foils were first introduced, the foundations were laid for what is, today, the largest UK equipment supplier to the product marking industry. PBE Marking systems Ltd, has expanded its product portfolio to embrace a wide range of product marking equipment, consumables and services (Screen Printing and Pad Printing). PBE is based in Reading ten minutes away from the central railway station and close to the A329 motorway leading to the M4.


to large integrated operations, the program was designed and developed to meet the demands of modern swine production. SOW raises the bar by leveraging technology to solve real-world inefficiencies.
SOW ENTERPRISE is a premium upgrade to SOW within the MetaFarms' Agriculture Platform (MAP) enabling innovative swine producers to gain complete daily visibility into their barns. Through a snapshot view of key performance metrics, managers can make timely data-driven decisions. The new program gives swine producers real-time oversight across their production system by capturing daily information through their mobile application and robust integration with electronic sow feeders (ESFs).
The SOW mobile application (app) was developed specifically you–the producer and the challenging environment in which you work. Data entry is reduced and simplified with a mobile app on a familiar "off-the-shelf" Android or iOS tablet–eliminating the need for specialized equipment or training. It offers offline functionality and data validation warnings.
Integration with Electronic Sow Feeders helps eliminate redundant data entry while improving data accuracy. MetaFarms works directly with leading manufacturers including Nedap, AP Schauer and others for continuous improvement.
day-to-day and week-to-week across sow units. The snapshot enables managers to see at-a-glance how their farm is doing and react for real-time decision making.
Make real-time decisions to meet productivity and performance targets. SOW ENTERPRISE provides an "at-a-glance" daily view into your production units with customization and mobile app.
Improve efficiency and accuracy in daily recording. SOW ENTERPRISE provides in-the-barn data entry through a familiar tablet and mobile app with customized interface and intuitive design.
Bring the power of SOW to the barn and insights to the office.
Click here to schedule a demo with our sales team.


Today IAN SWEET released the kaleidoscopic CG animated video for "Holographic Jesus" from her acclaimed 2018 album Crush Crusher. Directed by Marty Tzonev (whose recent credits include tour visuals for Julianna Barwick), the video centers around things that Jilian does using her wrist, featuring an array of colorful objects in perpetual motion, all inspired by the lyric in the song "The sun on my wrist, on my wrist, it's never felt like this".
Following a stretch around the US at the end of last year, IAN SWEET kicks off 2019 with a tour across the UK and Europe. Jilian is also set to return to the Europe in April for a run of solo shows supporting Frankie Cosmos. Tickets are available now via iansweetmusic.com. For a full list of upcoming performances, head to our tour page.


Best Home Interior Design. Apart from the promise of hassle-free experience and space-optimized home interiors, why should I hire Design Cafe? With Design Cafe, you can look forward to a hassle-free, personalised home interior design experience, from design board to delivery. Interior Design Ideas & Home Decorating Inspiration. Inspirational Interior Design Ideas for Living Room Design, Bedroom Design, Kitchen Design and the entire home. Home Designing Blog Magazine covering Architecture, Cool Products!
Best Home Interior Design ior Design is the definitive resource for interior designers, architects and other design pros, featuring groundbreaking projects, innovative new products, real-time design industry news, exclusive in-depth research and more. Offering print, digital and events, Interior Design is the design authority in the B2B design market. 25 Best Online Home Interior Design Software Programs. 3. Home Hardware Design Centre. Home Hardware is a Canadian company, but anyone can access their incredible suite of free interior design, storage design and kitchen design software products.


00:00:23 MariahCarry u want es?
00:00:24 coolass someone else play es?
00:00:48 coolass wankmaster go furionp?
00:01:34 coolass fast manaboots or soul ring first?
00:01:45 svents casperry what u want?
00:15:42 Casberry why chase 3 ?
00:31:36 Casberry what should i get ?
00:38:37 MariahCarry u know what es spells do?
00:49:39 Usires casberry u somekind of retard?


text:
TouchBistro POS review
In our TouchBistro POS review find out why it's seamless and simple, and offers a selection of smart features ideally suited to the restaurant trade
By Tamsin Oxford 19 August 2019
(Image: © TouchBistro)
TouchBistro offers a rich selection of features designed and managed by former restaurant owners. While the feature set is rich and the set-up simple, the exclusive use of iOS platforms and hardware is a limitation
Offline mode allows for ongoing operations
Easily integrated and customisable feature set
Costly per iPad commitment for a minimum of a year
Slow responsiveness on some screens and setups
TouchBistro Features
Online/ Offline Access – Cloud-based reporting that works offline in a pinch but you're going to need to fork out for that server
Stock / Inventory Management – You can list ingredients, measurements, unit prices, stock levels and profits but you can't manage purchase ordering or manage your vendors
Data / Reporting – Easy to use and understand system that serves up relevant numbers across payments, performance, profit margins and customizable reporting
Customer Engagement – Expect to pay an extra $49 for this service
eCommerce features – Inventory and menu management with clear sales tracking tools
Online ordering integration – Get all your online orders delivered and organized on the app
Staff Management and Control – Employee performance, tracking and reporting
Operating Systems – iOS
Hardware – iPad and Mac Mini
Free Trial - 7-day free trial
Payment Options – Annual billing based on a per license structure
Support – 24/7 from directly within the app and self-service diagnosis tools
From the outset it's easy to see that TouchBistro was designed for all food-related retail outlets by people who understand exactly what these outlets need. The application offers customizable features to full-service restaurants, bars, nightclubs, food trucks, and breweries and covers everything from tableside ordering and menu management to inventory control and analytics. If you'd like to read more about POS solutions that aren't necessarily tailored to the catering industry, read our review of the best POS systems.
Like many POS applications of its kind, it has paid attention to the growing demand for solutions that tap into the data generated by the restaurant and customer so owners can more deftly manage stock, demand and customer experiences.
The TouchBistro platform is only accessible on an iPad and the company recommends the use of the Apple Mac Mini computer to sync multiple iPads and store the aforementioned data. This is an excellent time to point out that TouchBistro only works on the iPad with zero support for Android devices and a cost ratio that rises per device. It is also only compatible with more recent iPads, so if you plan on opening a restaurant and are still lugging around a decrepit iPad 2, you're out of luck. In fact anything before the 4th generation iPad (launched in 2012) won't work. While newer iPads will work they may not perform as well as you might need them to, TouchBistro recommends iPad models launched from 2018 onwards.
You pay per license, per year – TouchBistro doesn't offer a month-by-month payment plan. However, you can cancel at any given time with a month's notice and without a forfeit fee, but you will lose any prepaid funds in the process. The costing varies from around $69 for one device per month up to $399 per month for more than six licenses. The plans are not limited in the feature sets they offer, but are rather structured around the number of devices used and you will have to pay extra if you want to opt into their customer loyalty program as that's not included. You can take a look at its leading competitors Toast and Lightspeed if you'd like to explore different feature and pricing structures.
Read also: Best POS Systems
The customer-facing display helps avoid errors by confirming orders visually (Image credit: TouchBistro)
TouchBistro customer-facing display
The kitchen display system is designed to improve back-of-house operation (Image credit: TouchBistro)
TouchBistro kitchen display system
The self-ordering kiosk app aims to speed up ordering and helps upsell every order (Image credit: TouchBistro)
Touch Bistro self-ordering kiosk
TouchBistro POS review: Features
TouchBistro has a wealth of features and they are all very well designed in terms of use, accessibility and customisation. We haven't gone into all of them here, but there's even online ordering integration so you get all your orders on the TouchBistro app.
You can try the software for a free 7-day trial which will allow you to get your head around the feature sets and assess whether or not they are suited to what your business needs. That said, the company has put a lot of effort into ensuring that you get features suited to the food and beverage trade.
The table management features are remarkably detailed – you can even allocate gender and names to seating plans – and you can access a floor view that shows you exactly how many people are in restaurant and how long they've been there. It also has the option to split payment and people by table which makes both the life of the waiter and the patron much simpler. Building out your floor plan is a series of simple taps – add the type of table, add the type of seating, add in structures, even add in floors and walls. The software then serves up this two-dimensional representation of the restaurant that can be controlled by staff and managers.
Payment processing is described as one-size-fits-all which, as anyone buying clothing knows, is never actually true. There are choices around payment types and the list is fairly extensive but you will need to invest in card processing hardware to take the payment through to completion. Mobile card readers are easily connected to TouchBistro's platform and they have provided you with a list of compatible devices that they recommend. If none of these appeal to you or you've already got an alternative solution, you're on your own as they won't give you customer support for it.
Like Vend, TouchBistro provides superb customer support that includes round-the-clock updates and customer care. You can expect assistance from former restaurant owners and managers (as promised on the TouchBistro website) 24/7/365. So that 1am emergency may be solved faster than you thought…
You can create remarkably detailed layouts using the table management features (Image credit: TouchBistro)
TouchBistro POS review: Design and Usability
TouchBistro isn't perfect, but there would be little fun in life if that were true. Yes, the features are easy to get to grips with and the interface has been beautifully streamlined, but the screens can be slow on load and responsiveness can cause a whisper of frustration. You may also have to scroll around on the screen when using a smaller iPad which can be tedious, but it's hard to fault when you look at how easy it is to move around and adapt restaurant or table layout and performance.
We did have a bit of trouble working with the menu, however. When uploading images to the menu screen some didn't upload properly and it took some work to fix them. You will also have to turn your iPad to portrait if you want to double-check your typing in description fields – this can be solved by simply doing all descriptions in landscape mode but if your iPad is fixed in position, it's going to be tricky.
Overall, however, the usability of the app is excellent. Big pictures, plenty of help and support features, lots of explanations and a rather pretty interface make it fun to play around with. Setting up won't take you long, appreciating the elegant simplicity of the system may take you a bit longer.
We found the menu screen a little tricky to set-up (Image credit: TouchBistro)
TouchBistro POS review: Performance
One of the hiccups that you'll first notice when you work with the TouchBistro payment system will be that you will need a stable internet connection to process card payments. The supported Apple router range that's designed to keep the internet running smoothly has been discontinued so you are stuck with whatever the iPad can get you. When we processed a payment on a particularly dodgy connection, it timed out more than once. So, set up a stable Wi-Fi network, even in your food truck, to avoid losing customers and cash.
The sheer volume of features built into TouchBistro is really impressive. The company has clearly put a lot of effort into giving users a friendly and engaging experience. The shortcomings around sluggish loading times aren't enough to take the shine off the rest of what the program has to offer. So many pictures, so many carefully thought out guides – getting started is easy.
Related: Best WiFi Boosters
The payment system is hugely reliable on a steady Wi-Fi connection (Image credit: TouchBistro)
TouchBistro POS review: should you buy?
TouchBistro is very good at what it does. You can see why it has hit high notes in multiple reviews and why Gordon Ramsay agreed to team up with the company in his recent show To Hell and Back. Since that burst of publicity, the platform has received multiple positive reviews and achieved significant industry visibility.
More on Small Business
Final Draft 11 review
Intuit QuickBooks POS review
Vend POS review
However, it's worth remembering that the program isn't perfect, limited as it is by Apple, some responsiveness issues, a lack of built-in customer loyalty services, and a fairly costly pricing structure.
What other POS systems should I consider?
While TouchBistro is one of the best POS systems around, it may not be the best for your business. Here are a few more you might consider. We've indicated what each system is best for; click through to read the full review:
We think Square is the best POS system for startups; Lightspeed is the best all-round POS solution; Intuit QuickBooks POS is the best for retail; ShopKeep POS is the best for interoperability; Shopify is the best POS system for eCommerce ; Toast is the best for bars and coffee shops; and Vend is the best for retail outlets of all sizes.
To see all these point of sale systems tested head-to-head, check out our Best POS Systems buying guide.
Today's best TouchBistro deals


You have and will experience sadness. It might be the loss of a job, pet or a loved one. Yes, even a loved one. The trouble is, particularly here in the United States, we have a quick-fix for everything… why not sadness too?
Our quick-fix for sadness is that it's simply not allowed. Healthy purging of sad feelings is great for you physically and wonderful for your mental health. When you stuff the expression of healthy sadness it may lead to health problems, interpersonal issues, and depression.
So, the first lesson is FEEL your sadness over whatever issue is at hand. It doesn't make you weak or less a man or woman to do so. Yes, I have to say "woman" today too, because women have also begun to place the same negative meaning on expressing feelings of sadness; so they hold back too.
Asking "What if…" questions or making "If only" statements.
Please keep in mind several points about the five statements made above. First, each one is NORMAL! You may cycle through the steps several times and may not do so in the order listed above.
The only time these steps become a problem is when you become stuck at a particular step. Here's an example.
I met a woman about a year ago. She'd been married over 25 years. She and her husband were planning on traveling after he retired. He died within a year of retirement from cancer. She came to see me three years after his death.
She had become stuck at step 3 above. She questioned, over and over again, whether she had done everything she could for him and all their family during those last days before his death. After about a year of ruminating minute-by-minute, she became quite seriously depressed. Then later, she was referred to me by her physician.
We worked through her questions from step 3. She then went through a normal period of being angry over the loss of her husband and how that had changed her life and retirement plans. She felt appropriately sad about the loss of her best friend.
She's not terribly happy about working, but she's been working full-time now for about six months. She is hoping to begin dating. She's insecure about it. "It's been so long since I've dated!" She quips. But, she is on her way to a new life and her level of acceptance is growing each day.
Other times depression may set in from a traumatic event, or a series of negative life events that overlap and overwhelm your usual ability to cope. If this is you, you are often bewildered as to why you can't simply shake out of it as you normally would. Or if it was a trauma event, you will often find that simple security issues (e.g., walking out into a dark parking lot at night after shopping) will trigger panic and later deep depression. Sudden trauma threatens your sense of general safety in the world at large.
If you are wondering if you have Major Depression here are some guidelines to help you to the correct answer. For the best possible solution please seek professional evaluation. I offer professional consultation for individuals through email, making this step easy and convenient.
Depressed mood nearly every day.
Diminished interest in regular activities.
Fatigue and energy loss nearly every day.
Feeling worthless or excessive and inappropriate guilt.
Difficulty in staying on task or making decisions.
Frequent thoughts of death, including but not limited to suicidal thoughts.
Having a few of these symptoms does not necessarily qualify your for the diagnosis of Major Depression. You need to have at least five symptoms consistently over a two-week period of time or longer.
If you decide you have Major Depression please confirm this with a depression screen which you may reach by clicking here. Additionally, please consult your family doctor and a trained professional who specializes in depressive disorders. A family doctor can assist in ruling out a possible medical condition and a therapist knows how to assist you in digging yourself out of that deep depression rut.


Got in the mood to kick back, one-man band style. Trombone, guitar, vocals, tongue-clicking percussion, all played by me, plus a written bass kick melody for metronome. I imagined walking through a concrete jungle at night.
Could also see this as a theme for a post apocalyptic, dystopian society type game/movie.
Like it, would like to hear a dubstep song remix.
I liked this one more, but that kick is way too busy for such a chill track, it's also way too dry. I'd try some variation, and work on the percussion, otherwise I'd remove the kick entirely and make it a short loop. Not bad though.
I was thinking I might redo this and push the kick into the background. Only problem is, the kick is actually the bassline. A lot of experimenting going on basically. I'm glad I got at least a few things right though.
Redirected from the recently emailed "Recoomendation" list.
I love the vibe here, it feels like you can listen to it on repeat. It's just a single wave of emotion and mood, it doesn't feel repetitive to me although it is something that could be listened to while driving or doing something else, like browsing the internet, etc.
Ah, that was the idea -- easy listening. Glad you liked it!


It had seemed a perfect day for a club ride, clear skies, roads free of ice, but the bitterly cold winds soon burrowed through my layers of gloves. Twenty minutes down the road, as numb fingers fumbled brake levers, a collective decision was made to abandon. I took the fastest route home and once there spent half an hour with my hands stuck to the radiator, life painfully creeping back into them. I haven't put my heavy weight gloves on in this season's mild, occasionally damp weather. Where has the winter gone?
The apparent delay to the cold and ice is obviously an advantage for training, with the right clothing there is nothing to stop a determined athlete going outside. This time last year I focussed on what could be managed indoors, how training could be adapted and how to get the most out of limited facilities. This year the question of winter training can focus on how the period is most appropriately used. I wrote about my own winter plans last week – swimming and running are my limiters and cycling can quickly be rebuilt in spring – an easy choice, but not one that will work for everyone.
Before you decide on how to divide your time there's the traditional base mileage to consider; winter months spent training long and often slow to build an aerobic base on which we then build speed. I have no issue with developing aerobic capacity, but the approach doesn't seem to suit many of the athletes I coach whose training is limited by free time. Before I even consider the impact of weather conditions, work, family and socialising all make their demands. My 'average' age grouper can manage around 12 hours training each week, rarely more and sometimes less; if they've already filled that time with training, they can't increase volume. Big mileage isn't an option.
Winter needs simple goals. There are two factors to consider – what training can be done and what training needs to be done. Specifically are there areas of weakness that can be focussed on even if conditions limit options. The weather can restrict cycling, at least forcing training indoors, but swim and run are more flexible, conditions need to be severe to stop them. Obvious choices for winter training, yet I rarely make them the goal. Despite its convenience most of my Ironman athletes are more limited by bike fitness than run fitness – the former affects their marathon performance more than the latter. They can gain from building run fitness, but they benefit more by becoming stronger cyclists.
Cycling may be the training they need to do, it's not always the training they can do. When Winter conditions prevent cycling outside the prospect of five hours on a turbo doesn't bear thinking about. Fortunately there's more to cycle training than endurance; rather than focus on riding long an athlete can work on developing threshold power. Short, hard sessions several times a week, training indoors, but only for an hour at a time. With dedication and focus the winter months can be very productive and they enter spring with a new FTP to build their endurance from. Less hours spent training on the bike means more time elsewhere, usually resulting in increased run volume. The main winter goal remains developing threshold power, but run endurance can be attacked simultaneously.
The winter training plan for many of my athletes takes this form. Swim sessions are spread throughout the week similarly to the rest of the season (it's unfortunately rare that athletes will invest the time to improve their swimming); bike sessions are short and to the point, should conditions allow there might be an occasional longer ride, but the plan focusses on intensity; the remaining hours are dedicated to running, with less intensity and more volume to target endurance. As the year progresses the balance between the two can shift to keep the athlete developing regardless of the time available.
Winter is perfect for focussing on specific aspects of your training. I don't see the need for the already aerobically fit and time limited to plan a period training long and slow. We certainly shouldn't feel particularly tied to training traditions if they don't work for the lifestyle we lead.


Throughout history, artists have helped us see the world in new and exciting ways. They have revealed the beauty and the grandeur as well as the complexities and the not-so-beautiful of the world.
-- from the Foreword by Brian Ferriso, in Mary Chomenko Hinckley: Material Evolution. Mary is an American artist who works in bronze, resin, glass, and photography. Her new book is a monograph of her stunning work.
Mary creates images strictly from her own personal experiences and concerns, past and present, and the imaginative equivalents they suggest to her. The narrative, if there is one, stems from the secret world of the artist.
-- from "Images, Words, and Letters: Seeking Meaning in the Art of Mary Chomenko Hinckley," an essay by Paul J. Karlstrom. There was only a picture on page 56, so this was as close as I could get. Paul is an art historian, author, and the former West Coast regional director of the Smithsonian's Archive of American Art.
Seeing the title inspired me to check the art on her website. An interesting mix of realistic and invented designs in juxtaposition. Hope you enjoy the book!
I love the art on the cover of the book, thank you for sharing and enjoy the book.
Mary Chomenko Hinckley: Material Evolution sounds like a book I would enjoy. Thanks for mentioning it!
Interesting book. Have a great weekend!
The cover art is really cool!
I don't read nonfiction but this sound like a fascinating biography. I'm featuring The Military Wife by Laura Trentham from my review stack this week. Happy reading!
This sounds interesting. I don't often read books like this, but I do like hearing the story behind a piece of art. I hope you have a great weekend.
I don't read a lot of non fiction but this sounds fascinating.
Sounds like an interesting and beautifully illustrated read!


text:
/**
 * Created by shara on 2014/4/28.
 */

window.onload = function () {
    document.getElementById("root").onclick = appendNode;
    document.getElementsByClassName("name")[0].onkeyup = treeKeyup;
    document.getElementById("submit").onclick = submitContentDiv;
    projects = new Array();
    contentStructure = new Array();
    index = 0;
    editFunctions = [{
            "title": "添加下级目录"
    },
        {
            "title": "修改内容结构"
    },
        {
            "title": "删除该目录"
    }];

    dataType = ["int", "varchar", "date", "folat", "double"];

}
function appendNode() {  //创建新目录节点
    console.log(this); //this为输入框后面的添加按钮或元素(div)
    var parent = this.parentElement;
    if (this.id == "root") {
        var num = index;
        var projectName = this.previousElementSibling.value;
    } else {
        var num = this.id.substr(4);
        var parentName = this.previousElementSibling.value;
        var projectName = this.getElementsByTagName("input")[0].value;
        if(this.parentElement.className == "doc"){
        this.removeChild(this.getElementsByTagName("a")[1]); //当节点不是绝对子类时,
        removeContentStructure(parentName, num); //不能添加结构内容,如果之前添加了,则需要删除
        }
   	}
    console.log(projectName);

    var li = document.createElement("li");
    li.className = "doc";
    var div = document.createElement("div");
    var text = document.createElement("input");
    text.type = "text";
    text.className = "new-name";
    text.value = projectName;
    text.name = projectName;
    text.onchange = editName;
    div.id = "node" + num;
    div.className = "edit-div";

    var a = new Array();
    for (var i = 0; i < 3; i++) {
        a[i] = document.createElement("a");
        div.appendChild(a[i]);
        a[i].title = editFunctions[i].title;
    }

    a[0].onclick = newNode;
    a[1].onclick = function () {
        editContentStructure.bind(null, event, this.parentElement.previousElementSibling.value, num)();
    }
    a[2].onclick = removeNode;

    li.appendChild(text);
    li.appendChild(div);
    if (parent.lastElementChild == undefined || parent.lastElementChild.tagName != "UL") {

        var ul = document.createElement("ul");
        ul.appendChild(li);
        parent.className = "folder";
        parent.appendChild(ul);
    } else {
        var ul = parent.lastElementChild;
        ul.appendChild(li);
    }

    if (this.id == "root") {
        var h4 = document.createElement("h4");
        h4.innerHTML = projectName;
        document.getElementsByTagName("ul")[0].insertBefore(h4, li);

        projects[index] = {
            "name": projectName,
            "children": []
        };
        index++;
        console.log("root:   " + projects[index]);
    } else {
        var node = {
            "name": projectName,
            "children": []
        };
        traversalJson(projects[num], parentName, node, "add");
        console.log(projects[num]);
    }
    resizeWindow(false);
    }
function traversalJson(project, parent, node, operation) {  //遍历树目录的Json, project:遍历的节点名称, parent:需要插入的父节点, node:需要插入或修改、删除的节点, operation:CRUD操作
    var x;
    console.log(project.name);
    if (project.name == parent) {
        switch (arguments[3]) {
        case "add":
            project.children.push(node);
            break;
        case "delete":
            project.children.remove(node);
            break;
        case "edit":
            project.name = node; //parent为需要修改的节点name,node为改后的字符串
            break;
        }
    }
    for (x in project.children) {
        console.log(project.children);
        if (project.children[x].length != 0) {
            traversalJson(project.children[x], parent, node, operation);
        }
    }
}

function treeKeyup(e) { //创建目录树的输入框回车即可出发创建函数
    var keyCode = e.keyCode;
    if (keyCode == 13 || keyCode == 108)
        appendNode.bind(this.nextElementSibling)();
}

function newNode() {  //弹出创建新子节点的输入框
    if (this.nextElementSibling.tagName == "DIV") {
        if (this.nextElementSibling.style.display == "none") {
            this.nextElementSibling.style.display = "";
            //          $(this).contents().animate({height:"136px",opacity: "1"},600);
        } else {
            this.nextElementSibling.style.display = "none";
            //           $(this).contents().animate({height:"0px",opacity: "0"},600);
        }
    } else {
        console.log("in new node");
        var div = document.createElement("div");
        div.className = "get-name-div";
        var name = document.createElement("input");
        name.type = "text";
        name.placeholder = "输入节点名字";
        var button = document.createElement("input");
        button.type = "button";
        button.value = "添加";
        button.className = "correct";
        div.appendChild(name);
        div.appendChild(button);
        this.parentElement.insertBefore(div, this.nextElementSibling);
        name.onkeyup = function (e) {
            var keyCode = e.keyCode;
            if (keyCode == 13 || keyCode == 108) {
                appendNode.bind(this.parentElement.parentElement)();
                this.value = "";
                this.parentElement.style.display = "none";
            }

        };
        button.onclick = function () {
            this.parentElement.style.display = "none";
            appendNode.bind(button.parentElement.parentElement)();
            this.previousElementSibling.value = "";
        }
    }
}

function editName() {  //修改节点的名称 同时会修改Json的内容, 修改h4标题的内容
    var num = this.nextElementSibling.id.substr(4);
    var project = projects[num];
    traversalJson(project, this.name, this.value, "edit");
    this.name = this.value;
    console.log(projects[num]);

    for( var x in contentStructure[num]){
        if(contentStructure[num][x].nodeName == this.name)
            contentStructure[num][x].nodeName = this.value;
    }
    if(this.parentElement.previousElementSibling.tagName == "H4"){
        this.parentElement.previousElementSibling.innerHTML = this.value;
    }
    console.log(contentStructure);
}

function editContentStructure(event, nodeName, num) {  //弹出添加内容结构的div
    var editDiv = window.parent.document.getElementsByClassName("edit-content-div")[0];
    if(editDiv != undefined){
    	editDiv.parentElement.style.display = "block";
    }
    else {
       var cover = document.createElement("div");
       cover.className = "cover-div";

       var div = document.createElement("div");
       div.className = "edit-content-div";
       cover.appendChild(div);
       cover.style.height = window.scrollHeight + "px";

       var colse = document.createElement("a");
       colse.className = "edit-content-div-colse";
       colse.onclick = colseContentDiv;
       div.appendChild(colse);
       var ul = document.createElement("ul");
       ul.className = "edit-content-input";
       var li = new Array();
       for (var i = 0; i < 5; i++) {
           li[i] = document.createElement("li");
           ul.appendChild(li[i]);
       }
       var name = document.createElement("input");
       name.type = "text";
       name.placeholder = "字段名";
       name.onblur = checkAdd;
       var i = document.createElement("i");
       i.className = "must";
       li[0].appendChild(name);
       li[0].appendChild(i);

       ///////////////////////////////////////
        var type = createSelect();
       var i = document.createElement("i");
       i.className = "must";
       li[1].appendChild(type);
       li[1].appendChild(i);

    var length = document.createElement("input");
    length.type = "text";
    length.placeholder = "长度";
    li[2].appendChild(length);

    var addition = document.createElement("input");
    addition.type = "text";
    addition.placeholder = "附加内容";
    li[3].appendChild(addition);

    var button = document.createElement("input");
    button.type = "button";
    button.disabled = true;
    button.value = "添加";
    button.onclick = function (event, nodeName, num) { //添加列表的内容到内容结构json里, nodeName , num有问题
        console.log(nodeName);
        var ul = this.parentElement.parentElement;
        var div = ul.parentElement;
        var items = ul.getElementsByTagName("li");
        var content = {
            "nodeName": nodeName,
            "name": items[0].childNodes[0].value,
            "type": items[1].childNodes[0].value,
            "length": items[2].childNodes[0].value,
            "extend": items[3].childNodes[0].value
        };
        if (contentStructure[num] == undefined) {
            contentStructure[num] = new Array();
        }

        contentStructure[num].push(content);

        var table = div.getElementsByClassName("content-list")[0];
        var h5 = div.getElementsByTagName("h5")[0];
        h5.innerHTML = nodeName;
        if (table.getElementsByTagName("th").length == 0) {
            var tr = document.createElement("tr");
            table.appendChild(tr);
            var th = new Array();
            for (var i = 0; i < 4; i++) {
                th[i] = document.createElement("th");
                tr.appendChild(th[i]);
            }

            th[0].innerHTML = "id";
            th[1].innerHTML = "type";
            th[2].innerHTML = "length";
            th[3].innerHTML = "extend";
        }
        var tr = document.createElement("tr");
        table.appendChild(tr);
        var td = new Array();
        for (var i = 0; i < 4; i++) {
            td[i] = document.createElement("td");
            if(i == 1){
                var value = createSelect();
            }else{
                var value = document.createElement("input");
            value.type = "text";
            }
            value.value = items[i].childNodes[0].value;
            value.disabled = true;
                td[i].appendChild(value);
            tr.appendChild(td[i]);
        }
        var a = new Array();
        for(var i = 0 ; i < 3; i++){
            a[i] = document.createElement("a");
            tr.appendChild(a[i]);
        }
        a[0].title = "修改内容";
        a[0].onclick = function(){
            this.parentElement.className = "edit-content-input-able";
            var input = this.parentElement.getElementsByTagName("input");
            for(var i = 0 ; i < input.length; i++){
        	input[i].disabled = false;
            }
            var select = this.parentElement.getElementsByTagName("select")[0];
            select.disabled = false;
        };

        a[1].title = "修改完成";
        a[1].onclick = function(){};

        a[2].title = "删除该内容";
        a[2].onclick = function(){};

        console.log(div.offsetHeight);
        div.style.height = parseFloat(div.offsetHeight) + parseFloat(33) + "px";
        console.log("after   " + div.offsetHeight);
        if((div.offsetHeight + div.offsetTop) >= div.parentElement.offsetHeight){
            div.parentElement.style.height = div.offsetHeight + div.offsetTop + "px";
        }
    };
    li[4].appendChild(button);
    div.appendChild(ul);

    var h5 = document.createElement("h5");
    h5.innerHTML = nodeName + "的结构内容:";
    div.appendChild(h5);

    var table = document.createElement("table");
    table.className = "content-list";
    div.appendChild(table);

    var submit = document.createElement("input");
    submit.type = "button";
    submit.className = "correct";
    submit.value = "完成";
    submit.onclick = colseContentDiv;
    div.appendChild(submit);

    window.parent.document.getElementsByTagName("body")[0].appendChild(cover);
    }
}

function removeNode() {  //删除节点, 这个需要删除节点的内容,修改json, 修改内容结构
    console.log("removeNode");
}

function checkAdd() { //检查添加内容结构的列表是否将必填项都填好了
    var ul = window.parent.document.getElementsByClassName("edit-content-input")[0];
    console.log(ul.getElementsByTagName("input")[0].value);
    console.log(ul);
    console.log(ul.getElementsByTagName("option")[0].selected);
    if (ul.getElementsByTagName("input")[0].value != '' && !ul.getElementsByTagName("option")[0].selected) {
        console.log("correct");
        ul.lastElementChild.childNodes[0].className = "correct";
        ul.lastElementChild.childNodes[0].disabled = false;
    } else {
        console.log("erro");
        ul.lastElementChild.childNodes[0].className = "";
        ul.lastElementChild.childNodes[0].disabled = true;
    }
}

function removeContentStructure(deleteName, num){  //删除内容结构的某一项 ,deleteName即为删除的nodeName
    for(var x in contentStructure[num]){
        console.log(contentStructure[num][x]);
        if(contentStructure[num][x].nodeName == deleteName){
            contentStructure[num].splice(x, 1);
        }
    }
    console.log(contentStructure);
}

function submitContent(event, div) {  //发送请求提交该树Json和内容结构Json
    /************华泉注意*********************
    树的Json结构:
    projects[index] = [
    {"name": value, "children": [{"name": value, "children":[]}]},
    ]
    index代表那个根目录, 因为可以同时创建多个根目录

    内容结构Json:
    contentStructure = [
    [{
            "nodeName": nodeName,//这个name是值哪个节点发起的
            "name": value,
            "type": value,
            "length": value,
            "extend": value
        },
    {
            "nodeName": nodeName,
            "name": value,
            "type": value,
            "length": value,
            "extend": value
        }],
        [{
            "nodeName": nodeName,
            "name": value,
            "type": value,
            "length": value,
            "extend": value
        },
    {
            "nodeName": nodeName,
            "name": value,
            "type": value,
            "length": value,
            "extend": value
        }]
    ]
    contentStructure[index]的index对应着树目录的下标
    我的contentstructure添加时还有bug,但是那个bug不影响你存放数据的格式
    *****************/

    console.log(div);
    if (div.getElementsByTagName("input")[0].innerHTML == "提交") {
        var req = createRequest();
        req.onreadystatechange = function () {
            if (req.readyState == 4 && req.status == 200) { //添加成功后返回ok给我
                if (req.responseText == "ok") {
                    var p = div.getElementsByTagName("p")[0];
                    p.className = "submit-success";
                    p.innerHTML = "提交成功!";

                    var button = div.getElementsByTagName("input");
                    button[0].value = "下一步";
                    div.removeChild(button[1]);
                } else {
                    var p = div.getElementsByTagName("p")[0];
                    p.className = "submit-error";
                    p.innerHTML = "提交失败!";

                    var button = div.getElementsByTagName("input");
                    div.removeChild(button[0]);
                }
            }
            req.open("post", "url?treeJson=" + projects + "&conentStructureJson=" + contentStructure, false);
            req.send();
        }
    }else{
        div.style.display = "none";
        nextPage("addUsers");
    }
}

function submitContentDiv() {  //弹出提交的div
    var div = document.createElement("div");
    div.className = "submit-content";

    var p = document.createElement("p");
    p.innerHTML = "提交这些目录?";
    p.className = "submit-warning";
    div.appendChild(p);

    var submit = document.createElement("input");
    div.appendChild(submit);
    submit.type = "button";
    submit.value = "提交";
    submit.onclick = submitContent.bind(submit, event, submit.parentElement);

    var cancel = document.createElement("input");
    cancel.type = "button";
    cancel.value = "取消";
    cancel.onclick = function () {
        this.parentElement.style.display = "none";
    };
    div.appendChild(cancel);
    document.getElementsByTagName("body")[0].appendChild(div);
}
function colseContentDiv () {
        //this.parentElement.style.display = "none";
        this.parentElement.parentElement.style.display = "none";
    }

function createSelect(){
    var type = document.createElement("select");
       type.onblur = checkAdd;
       var options = new Array();
       options[0] = document.createElement("option");
       options[0].innerHTML = "数据类型";
       type.appendChild(options[0]);
       for (var i = 1; i < 5; i++) {
           options[i] = document.createElement("option");
           options[i].innerHTML = dataType[i];
           options[i].value = dataType[i];
           type.appendChild(options[i]);
       }
    return type;
}

redpajama_set_name: RedPajamaGithub


In a few days, the Maronite Church and Lebanon will end an important chapter of their history. No other man in current Lebanon has left a more durable print on the ink of Lebanese history than Patriach Sfeir, whose resignation from head of the Maronite Church was met with grateful sadness from many and jubilation from a few.
I will not enumerate the many achievements of this man – for those achievements are imprinted in every free Lebanese's mind. Patriarch Sfeir has fought for Lebanon and continued the legacy of the Maronite Church's continuous struggle to make Lebanon a suitable home for every Lebanese, not only Maronites.
Patriarch Sfeir has been beaten down – literally and figuratively – during his twenty five year run as head of the Maronite Church. And yet, he did not let down. Regardless of the many insults and blows he was dealt, he persevered. The betterment of the nation was superior to his own well-being. He handled it with wisdom and serenity.
He was a leading voice against social and political injustice in Lebanon, of which his people suffered immensely. He played a great role in keeping together what was left of his country when everyone wanted a piece of that country. It is because of this man and the institute that stands behind him that we can say that today, regardless of how weak it might be, we have a country to our name.
He was a voice of reason when reason was not appreciated. He was firm in his stances when firmness meant a pertinent life threat. He had a futuristic vision of a future that many saw was bleak. And in many occasions, his vision turned out to be true.
I, as a Maronite, am proud to say that this man has represented me for the past twenty five years. Regardless of whatever mistakes he might have made, and we all make mistakes.


As a leader, it is easy to get stuck in a rut. Take time to pause, reflect, and celebrate your success with fellow leaders. This is a place for early childhood leaders to talk about what works and share brief tips and strategies that made a difference. See what others are celebrating and share your own success strategies. Give fellow leaders a 1-2 sentence tip on how you did it!
We may share tips from this discussion board on social media and/or in the "Leadership Edge" section of emails to our list of subscribers. The tip's author will be credited. By commenting with a tip, you give us permission to share it. We reserve the right to edit tips before sharing them.


text:
Q: Trouble with ResultSet using executeUpdate I am new to programming and have run into a problem while using executeUpdate with the resultSet next() method.
It iterates once only through the result set then the execute update closes the result set. I get error: ResultSet not open. Operation "next" not permitted. Verify that autocommit is off.
I have added the con.setAutoCommit(false) statement but problem still persists.
I need to run the update multiple times with different variable values.
Here is the code I have:
    try {
        String eidQuery = "SELECT EID FROM EMPLOYEE_DATA WHERE ACTIVE = TRUE ORDER BY EID";
        int nextEID;
        Statement st = con.createStatement();
        con.setAutoCommit(false);
        rs = st.executeQuery(eidQuery);
        while (rs.next()){
            nextEID = rs.getInt(1);
            String getDailyTotals = "SELECT DATE, SUM(TOTAL), MAX(OUT_1) FROM PUNCHES WHERE EID = " + nextEID + " AND DATE >= '" + fd + "' "
                    + "AND DATE <= '" + td + "' GROUP BY DATE";

            ResultSet rs2 = st.executeQuery(getDailyTotals);
            while (rs2.next()){
                double dailyTotal = rs2.getDouble(2);
                if (dailyTotal > 8){
                    double dailyOT = dailyTotal-8;
                String dailyDate = rs2.getDate(1).toString();
                Timestamp maxTime = rs2.getTimestamp(3);
                String updateOT = "UPDATE PUNCHES SET OT = " + dailyOT + " WHERE EID = " + nextEID + " AND DATE = '" + dailyDate + "' AND OUT_1 = '" + maxTime + "'";

                st.executeUpdate(updateOT);

            }
            }
        }

        rs = st.executeQuery("SELECT PUNCHES.EID, EMPLOYEE_DATA.FIRST_NAME, EMPLOYEE_DATA.LAST_NAME, SUM(PUNCHES.OT) FROM PUNCHES "
                + "JOIN EMPLOYEE_DATA ON PUNCHES.EID = EMPLOYEE_DATA.EID WHERE PUNCHES.DATE >= '" + fd + "' AND PUNCHES.DATE <= '" + td + "' GROUP BY EMPLOYEE_DATA.FIRST_NAME, EMPLOYEE_DATA.LAST_NAME, PUNCHES.EID");

        Reports.setModel(DbUtils.resultSetToTableModel(rs));

    } catch (SQLException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null, ex);
    }

A: You're new to programming and (obviously) Java.    Here are a few recommendations that I can offer you:

*

*Do yourself a favor and learn about PreparedStatement.  You should not be creating SQL by concatenating Strings.

*You are committing the classic newbie sin of mingling database and UI Swing code into a single, hard to debug lump.  Better to decompose your app into layers.  Start with a data access interface that encapsulates all the database code.  Get that tested and give your UI an instance to work with.

*Do not interleave an update query inside the loop over a ResultSet.  Better to separate the two completely.

*Read about MVC.  You'll want your Swing View to be separate from the app Controller.  Let the Controller interact with the data access interface, get the results, and give the results to the View for display.  Keep them decoupled and separate.

*Learn JUnit.  It'll help you with testing.

A: From the java.sql.ResultSet javadoc:

A ResultSet object is automatically closed when the Statement object
  that generated it is closed, re-executed, or used to retrieve the next
  result from a sequence of multiple results.

After you execute the update, the prior ResultSet is closed.  You need to rework your code to account for that.
https://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
The easiest way to rework might be to use two Statements, one for the query and one for the update, but as noted in duffymo's answer there's a fair amount more you could do to improve things.

A: From API's statement documentation "By default, only one ResultSet object per Statement object can be open at the same time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects"
You need two different Statements if you want to read two different ResultSet in the same nested loops.


May we all be mindful and grateful to those who Serve and those we've lost in the calling of Freedom for all.
Are you guilty of what Dave Grady calls MAS (mindless accept syndrome) where you automatically accept meeting invites without really considering if it's the BEST use of your time?
Take control of your time, accept with mindful attention and only after you've determined a meeting is the most efficient way to accomplish your desired outcomes/goals.
Why not spare everyone some time, and consider picking up the phone, email, an office visit, or walk and talk.
Do You Work on a Team?
Jim Pawlak's, Biz Book review concisely describes how Bochy Ball is a book for entrepreneurs and business leaders–baseball fans or not. A 3-min lesson-packed read.


It's that time of year again: National Infertility Awareness Week (April 21-27) is just around the corner . IntegraMed Fertility is largest fertility network in North America, and Sher Fertility Institute New York is proud to be part of the IntegraMed family of clinics. Our clinics, in conjunction with IntegraMed brings together the latest science and best-in-class service to provide fertility patients superior care and support. To the 7+ million individuals struggling with infertility, NIAW is our chance to come together as a large network to communicate a message of understanding, share a feeling of support and relay a promise of hope. Sher Fertility Institute New York is joining the national #HaveAHeart campaign . The campaign is to keep up the momentum going on raising awareness on infertility, create awareness and easy patient access for all.
If you would like to see one of the Sher Fertility Institute New York doctors to discuss your fertility journey, contact us today at 646-792-7476 or click here to schedule an appointment and get started on your path to parenthood! Our Patient Care Specialists will contact you within the next 24 hours.


text:
Q: I m trying to use repeater inside repeater field any body can help me I am trying to use repeater inside repeater field. Could you please point me to where is the mistake?
<?php if(get_field('help_blocks')): ?>
    <?php while(has_sub_field('help_blocks')): ?>

<?php the_sub_field('block_title'); ?>

                <?php the_sub_field('block_paragraph'); ?>

                <?php if(get_field('block_list')): ?>

                    <?php while(has_sub_field('block_list')): ?>

<?php the_sub_field('list_item'); ?>

                    <?php endwhile; ?>

                <?php endif; ?>

                <img src="<?php the_sub_field('block_image'); ?>" alt="" />

                    <a class="btn btn-primary" href="<?php the_sub_field('block_button_link'); ?>"><?php the_sub_field('block_button'); ?>

    <?php endwhile; ?>
<?php endif; ?>

A: It looks like you're almost there.
You have this line:
<?php if(get_field('block_list')): ?>

It should be:
<?php if(get_sub_field('block_list')): ?>

Your nested repeater is a sub field of your repeater, so you need to use get_sub_field.


Sometimes cladding can add a certain element of finesse to the design when building luxury apartments. 500 sq. m of Larch in the Byakko finish provided a stylish and accurate wall covering.
These luxury retirement apartments are a development for PegasusLife. They're a developer that has re-invented the way in which we approach retirement housing in the UK. The project is located in the respectable neighbourhood of Canford Cliffs, Poole and is set amongst mature landscapes and tall pine trees. The development is on four impressive levels with incredible south cost views in all directions.
The project was shortlisted for a RIBA Regional Award, not a first for the cladding by ShouSugiBan to appear in. Byakko cladding by ShouSugiBan is a modern interpretation of the traditional charred finish once created in Japan. This stylish finish to the cladding has been designed by the team at Exterior Solutions Ltd that manufacture cladding products in the UK.
The Architects discussed at length about the fixings for the cladding. They chose to express the visibility of the screws by using a stainless fixing with an oversized head. They specified SPAX Hi. Force 6 fixings which come with a 13.6mm wide head.
The cladding has been used to great effect for the adjoining terraces as well as louvred section over windows and openings. The fourth floor meanders from the rear elevation in a geometric sloping pattern which finally shoots for the sky as it nears the front. A contemporary design and certainly one that fits the brief from the client.
Exterior Solutions Ltd has been supplying timber for projects across the UK and Europe. Furthermore, they have a technical team to ensure the correct quality of timber's always selected for each project and in the correct dimensions. They supply from a few square metres to thousands for a single project and by using freshly milled timber ensure the best finish for every project.


Visit the 3rd Floor Galleries to chat with the artists and have guided explanations of the thangkas and other artworks on display as part of the Mar 5th-15th joint exhibitions 10×10 Over Ten – Fundraiser Art Exhibit & Sale + Painted Prayer : The Sacred Art of Thangka.
This special joint fundraising exhibition is the product of volunteer artists, volunteer organizers, and generous sponsors. After all the hard work, it's a night to relax and enjoy the art!
All proceeds benefit the Tibetan Artists Development Society in Labrang. Donations support the school's capital, operating, and scholarship needs.
Food and snacks available at Youngplace Coffee Pub.


text:
LG Electronics Unveils Award-Winning Line Of Digital Audio/Video Home Entertainment Products At 2005 CES
LAS VEGAS, Jan. 6, 2005 — Led by a unique DVD player that upconverts to high-definition outputs, LG Electronics today unveiled its latest lineup of digital audio/video innovations at the 2005 International Consumer Electronics Show (CES).
The new products are designed to meet the needs of the growing number of consumers seeking premium home entertainment options, and underscore the company's commitment to growing its brand in the U.S. market through aggressive marketing. These products, many of which were honored with 2005 CES Innovations Awards, will be on display this week at the show (Booth #8214, Central Hall, Las Vegas Convention Center).
FAST FORWARD DVD PLAYERS AND HTiB SYSTEMS
LG Electronics' new DVD players and home theater systems are sure to take the home entertainment experience to an entirely new level — delivering enhanced video and audio. One of the sleek new products on display is the much-anticipated and industry-acclaimed, LDA-511 — a slim designed, high-definition DVD player with HDMI output.
Honored with a 2005 Innovations Award in the Video Component category, this unit is capable of up-converting DVD video to HD 1080i resolution providing crisp, clear, life-like images from DVD-formatted movies. With multi-format playback technology, the DVD player has the capability to playback all DVD formats. This device will also incorporate an 8 in 2 multi-memory card slot, which can read eight different multi-media formats. The LDA-511 will be available in the second quarter.
For true aficionados seeking the ultimate digital theater experience at home, LG is introducing a number of home-theater-in-a-box (HTiB) systems in its 2005 product line, complementing its other home theater offerings, including the wireless LGHTW316. Ideal for those looking for a powerful system, without overpowering the room, LG's LHX-558 is a DVD Combi HTiB that boasts a five-disc DVD changer, VCR and 1200W 5.1 floor-standing speaker system with super-multi playability.
Another convenient new home theater option is the LHY-519, a DVD recorder HTiB Combi that incorporates a DVD recorder, DVD player, VCR and a 1200W 5.1 satellite speaker system with advanced connectivity for digital video integration. It also has a 7 in 2 memory card reader for easy digital video integration and DV inputs for enhanced connectivity to a range of digital audio/video products. The LHY-519 will be available in second quarter 2005.
AT YOUR SERVICE: DVRS AND DVD RECORDERS
Consumers today are on the go more than ever, and are increasingly looking for reliable ways to record their favorite TV programs and movies to watch at their convenience — in high-quality, digital formats. Many are turning to the comforts of digital video recorders (DVRs) and DVD recorders, which enable them to watch pre-recorded entertainment at will — conveniently and effortlessly. LG's latest DVRs and DVD recorders address this growing consumer interest in "on-demand" entertainment.
To address the growing number of VCR, DVD and CD recording and playing formats, LG has also introduced the LRY-517, a Super-Multi DVD Recorder plus VCR, all-in-one system with DVD+R double layer recording capabilities — offering a wide array of recording options, as well as VCR recording/playback features. The unit's "one-touch dubbing" allows consumers to transfer content from VHS to DVD disc recording or from un-copyrighted DVD disc to VHS with just one touch of a button. Its DV input provides enhanced connectivity to a wide-range of audio/video products. The LRY-517 also provides "single-out" connectivity, using one component video connection for both DVD and VHS, which, in addition to convenience, actually improves the quality of VHS recordings.
SHAPING THE BIG PICTURE — HDTV RECEIVERS
LG's selection of premium set-top boxes demonstrates its commitment to providing high-end, high-definition solutions to the consumer marketplace. LG's line of HDTV receivers features the LST-3510A, a combination DVD player and digital HDTV set-top box.
To help turn any room into a home theater, LG's LST-3510A HDTV receiver/high-format DVD player, which up-converts DVD images to HDTV, is the perfect choice. A versatile source for HDTV reception, it features an all-format ATSC receiver for over-the-air HD reception, a QAM tuner for unscrambled HDTV cable reception, as well as a built-in DVD player with 1080i output, a DVI+HDCP connector and an Electronic Program Guide.
With the DVI+HDCP connector, the unit can display true digital-to-digital images of DVDs, bypassing noise-prone analog circuits that are present in some DVD players. The LST-3510A is available now.
ABOUT LG ELECTRONICS U.S.A.
Based in Englewood Cliffs, N.J., LG Electronics USA, Inc., (LGEUS) is the North
American subsidiary of LG Electronics, Inc. LGEUS' key product areas — consumer electronics, home appliances, information technology products and mobile phones — are designed to deliver on the promise of its "LG: Life's Good" 2005 marketing theme. For more information, please visit www.lgusa.com.
ABOUT LG ELECTRONICS, INC.
LG Electronics, Inc. (Korea Stock Exchange: 06657.KS), headquartered in Seoul, South Korea, was established in 1958 and has grown into a global force in electronics, information and communications products with annual total revenues of US $29.9 billion (consolidated). With more than 64,000 employees working in 73 overseas subsidiaries and marketing units around the world, LG Electronics is comprised of four main business companies including Digital Display, Digital Media, Digital Appliance, and Mobile Communications.
LG Electronics' goal worldwide is to create and enable the intelligent networking of digital products that will make consumers' lives better than ever. For more information please visit www.lge.com.
CONTACTS: John I. Taylor (847) 941-8181, jtaylor@lge.com
Kelly Gordon (312) 397-6044, kelly.gordon@ogilvypr.com
Home > Latest > New Products > LG Electronics Unveils Award-Winning Line Of Digital Audio/Video Home Entertainment Products At 2005 CES


text:
Presidency 2023: Press Release By Coalition Of APC Support Groups
Abia ThinkTank 5 months ago 5 months ago 0 Comments3862 Mins Read
The leadership of the coalition of APC support groups has congratulated the APC National Chairman and other National working committee members of the party on their emergence at the March 2022 National Convention. At a well attended meeting of National Executive Committee members of the Coalition held in Abuja on September 9th 2022, the Leadership of the Coalition equally congratulated *the Presidential candidate, His Excellency (Senator) Bola Ahmed Tinubu and the Vice Presidential candidate His Excellency (Senator) Kashim Shettima on their emergence as party flag bearers in the just concluded Presidential Primaries.
The coalition of APC support groups is the umbrella body of all APC registered Support Groups. It has since 2014 contributed immensely to the successful outings of the party at various levels through aggressive awareness campaign and voter sensitization with 89% of its members rooted at the grassroot level.
While congratulating the Leader of the party and President of Nigeria; His Excellency Muhammadu Buhari GCFR on his outstanding infrastructural development across all Geopolitical Zones of the country, the leadership of the coalition called on the National Chairman, the Presidential Candidate, The Director-General of APC Presidential Campaign Council and all party stakeholders to ensure that the Coalition which is the engine room of all registered Support Groups is fully integrated into the Presidential Campaign Structure at all levels.
In his remarks, the National Organising Secretary of the Coalition; Hon. Engr Emmanuel Butches Nwosu emphasized the huge benefits that will accrue to the political fortune of the party if the Support Groups are given all the needed enablement to massively mobilise votes for the party at the grassroots. He noted that such support from the party leadership will ensure effective grassroot mobilization that will guarantee success for the party (APC) at the 2023 polls.
In his closing remarks, the National Chairman of the coalition Hon. Jalil Adewale Adeogun enjoined all Party faithful to prepare for the grand flag off of the Presidential campaign and heed the call by the National Chairman on all party members to go back to their constituencies for effective mobilization.
The National Secretary of the Coalition; Hon. Dattijo Danjuma had in his opening remarks reiterated the crucial role of the Coalition since it's inauguration by the National Organising Secretary of the Party in 2014. He equally extolled the outstanding support given to the Coalition at it's formative years by the Governor of Plateau State; His Excellency Solomon Lalong who incidentally is now the Director General of the APC Presidential Campaign Council.
Other members of the Executive Committee in attendance at the meeting include:Chief Felix Seyefa – Deputy National Chairman South Dr Saleh Bin-Ahmad – National Publicity Secretary Barr Aisha Ali Bala – National Legal Adviser Malam Ali Abacha – National Vice Chairman North East Comrd. Ogolekwu Shedrack – National Vice Chairman North Central Mrs Edna UBA – Zonal Women Leader North Central.
Barr Nobel Agbaeze – National Auditor Hon. Sokari – National Financial Secretary ; among others.
By Abia ThinkTank
Previous PostASUU Strike: UNIBEN Staff Comits Suicide Over 'No Work No Pay' Policy
Next Post2023: Wike Not Crying Wolf But Demanding Justice – Sam Ohuabunwa


text:
Novotel London Heathrow Airport
Crowne Plaza London Gatwick Airport – Horley
Best Western Plus – Reading
Manchester Hotel – Trafford Park
Mercure St Albans Noke Hotel
London O2 Arena Hotel – North Greenwich
Holiday Inn, Watford Junction
Holiday Inn, Birmingham North
Holiday Inn, Sittingbourne
Holiday Inn, Luton South
Holiday Inn Express Rotherham
Holiday Inn Express Colchester
The Dragon Hotel, Swansea
Cartuja Del Golf
Wicker Riverside Development
32 Clarendon Road
Watford Junction Serviced Apartments
Chase Apartments in Cannock
Clarence House
Newhall, Harlow
Hemel Hempstead Royal Mail Site
1 Moorgate Bank Development
Chadha Industrial Estate
Southall Junction
Ex-Woolworths Development
Heathrow Development Site Terminal 4
News – Article
Nine Group Purchases Holiday Inn Luton
July 21, 2016 /in Uncategorized /by mercury8
Property adviser Christie & Co has completed the sale of a 140-bedroom hotel in the Hertfordshire village of Markyate.
The Holiday Inn-Luton South hotel has been acquired by growing hotel operator Vivek Chadha from Nine Hospitality. His plan is to invest "substantial sums" in the property, retaining the Holiday Inn branding.
Chadha said: "We are delighted to acquire this highly strategic hotel to add to our growing portfolio and look forward to investing and driving the business forward."
The hotel is located close to the M1 and was extended in 2000 with an additional 49 bedrooms and leisure facilities. It was rebranded as a Holiday Inn in November 2005 and currently operates as a Holiday Inn under a franchise agreement with InterContinental Hotels Group.
Alex Campbell, director at Christie & Co, added: "After undertaking a competitive sales process with serious engagement from a large number of highly qualified bidders, we are delighted to announce this highly satisfactory outcome for our clients MCAP Global Finance Ltd.
"There was a high level of competition for the purchase of this hotel, and this caused the asset to be sold in excess of its asking price of £6.85m.
"We wish Vivek Chadha and his team further success with this profitable hotel."
Christie & Co acted on behalf of MCAP Global Finance on the deal.
link: https://www.insidermedia.com/insider/central-and-east/140-room-herts-hotel-changes-hands
https://nine-group.co.uk/wp-content/uploads/2015/04/News_001.png 216 307 mercury8 https://nine-group.co.uk/wp-content/uploads/2016/07/Logo_9_group_withtxt_v1.png mercury82016-07-21 23:38:392016-07-22 13:26:50Nine Group Purchases Holiday Inn Luton
Tel: 01923 803 588 - Fax: 0203 002 5695
Head Office, Clarendon Road, Watford, WD17 1DS
© Copyright - Nine-group.co.uk 2016 All Rights Reserved created by Mercury Ink
Director of Nine Group Vivek Chadha speaks at Hotel Conference Nine Group purchases Dragon Hotel


text:
The Invasion of Panama, December 20 1989 - January 31 1990
What is Operation Just Cause?
Operation Just Cause was the invasion of Panama by the United States, taking place between December 20 1989 and January 31 1990
10 Years after thee Torrijos-Carter Treaties were ratified transferring control of the Panama Canal from the U.S. to Panama by 2000. The invasion resulted in in the then current Panamanian leader A dictator named Manuel Noriega being deposed and replaced with President Elect Guillermo Endara, and the Panamanian Defence force being dissolved.
In 1986 Ronald Reagan attempted to negotiate with Noriega, requesting that he step down peacefully after being exposed in the Iran Contra Affair. Noriega was pressured with drug related indictments. Extradition laws between Panama and the U.S. however were weak, and Noriega thought the threat to lack credibility. After May of 1989 when Endara was elected president, defeating Noriega's preferred man Noriega supporters attacked Endara's motorcade and beat him. Noriega declared the election Null and took over Panama as a dictatorship. The Panamanian people called for Noriega to step down. President George Bush Sr called on Noriega to honor the will of the people. After refusing, Bush was pressured for being too weak to handle such matters, Bush stated that the U.S. would not negotiate with a known drug trafficker. The Department of Defense claimed that Noriega was responsible for unable servicement being shot and killed. This among other incidents opened the door for the U.S. to invade Panama.
The official United States justification for the invasion was articulated by President Bush on the morning of 20 December 1989, a few hours after the start of the operation. President Bush listed four reasons for the invasion:[21] Safeguarding the lives of U.S. citizens in Panama. In his statement, Bush claimed that Noriega had declared that a state of war existed between the United States and Panama and that he also threatened the lives of the approximately 35,000 US citizens living there. There had been numerous clashes between U.S. and Panamanian forces; one US Marine had been killed a few days earlier and several incidents of harassment of US citizens had taken place. Defending democracy and human rights in Panama. Combating drug trafficking. Panama had become a center for drug money laundering and a transit point for drug trafficking to the United States and Europe. Protecting the integrity of the Torrijos-Carter Treaties. Members of Congress and others in the U.S. political establishment claimed that Noriega threatened the neutrality of the Panama Canal and that the United States had the right under the treaties to intervene militarily to protect the Panama canal.
Copyright © 2011 www.operationjustcause.us


text:
Our New Puppy - A Story of Loss, 100-plus Year Family History and a Proper Puppy Name
Karen Savaglia | March 18, 2019
This story intersects at loss, renewal, generations of Italian heritage and a bit of Latin, all rolled into a bustling Savaglia Financial Advisors (SFA) office. Here goes…
The loss came in February when we lost our beloved 13-year-old miniature poodle, Petey. Petey joined our family soon after Don and I were married and his loss was devastating to us.
A renewal of sorts began soon after Don surprised me with a same-breed puppy. We knew he could never replace Petey, but we welcomed our new addition. Training and love commenced. What to name the pup proved a challenge of international proportions, dating back more than 100 years. Really … and it's complicated.
Don's Italian roots connect to his paternal grandfather from Acquavena, Italy, who started the process of immigrating to the US in 1906, hoping for a better life. He made numerous Atlantic Ocean crossings in a ship's "steerage" (the lowest cost and class of travel), eventually bringing his growing family to the US, including Don's dad. Hearing stories about his dad's youth in Acquavena, Don and I have been fortunate to go several times to re-connect with family and experience a part of his family history that was fading with each passing year. Our recent visit was a wonderful and moving experience.
We channeled a bit of this rediscovered family history to our new puppy, through a proper Italian name, Fido (a Latin origin word, pronounced FEE-DO, meaning "I trust"). Fido is a revered dog's name in Italy, because of the real-life Fido that an Italian laborer rescued in 1941. Each workday the dog would accompany his owner to a public bus stop that the man would journey from to his factory job. Ever faithful, the dog would wait for hours at the stop each day for his return. During WWII the man was killed when the factory was bombed. For more than 10 years after, Fido still waited at the bus stop for the man who would never return. A bronze statue of Fido is in the town in Borgo San Lorenzo, Italy, commemorating the dog's unwavering trust and faith.
Fido, our newest SFA office "staff member" with a name steeped in Italian lore. A friendly reminder when you next visit SFA and Fido finds the time to greet you, he prefers the Latin pronunciation, Fee-do. It's out of deepest respect.
More Info on the "Original" Fido
Don's Family History


text:
/***********************************************************************
    filename:   SILLYImageContext.h
    created:    10 Jun 2006
    author:     Olivier Delannoy

    purpose:    ImageContext is an abstract class used to hide the loader specific data needed during the parsing of an image
*************************************************************************/
/***************************************************************************
 *   Copyright (C) 2004 - 2006 Paul D Turner & The CEGUI Development Team
 *
 *   Permission is hereby granted, free of charge, to any person obtaining
 *   a copy of this software and associated documentation files (the
 *   "Software"), to deal in the Software without restriction, including
 *   without limitation the rights to use, copy, modify, merge, publish,
 *   distribute, sublicense, and/or sell copies of the Software, and to
 *   permit persons to whom the Software is furnished to do so, subject to
 *   the following conditions:
 *
 *   The above copyright notice and this permission notice shall be
 *   included in all copies or substantial portions of the Software.
 *
 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 *   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 *   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 *   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 *   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *   OTHER DEALINGS IN THE SOFTWARE.
 ***************************************************************************/
#ifndef _SILLYImageContext_h_
#define _SILLYImageContext_h_
#include "SILLYBase.h"

// Start of section namespace SILLY
namespace SILLY
{

/*!
  \brief
    Store the data needed by an ImageLoader object during the parsing of an image
*/

class SILLY_EXPORT ImageContext
{
public:
    /*!
      \brief
      Destructor
    */
    virtual ~ImageContext();

    /*!
      \brief
      Set the destination of the loading
    */
    void setDestination(byte* pixels, size_t length, PixelFormat format);

    /*!
      \brief
      Set the next pixel of the image
    */
    void setNextPixel(byte red, byte green, byte bleu, byte alpha);

    size_t getWidth() const;
    size_t getHeight() const;
    PixelFormat getPixelFormat() const;

    /*!
      \brief
      Flip pixel ordering

      \return true on success false otherwise
    */
    bool  flipVertically();
 protected:
    void setWidth(size_t width);

    void setHeight(size_t height);

    /*!
      \brief
      Constructor

      \param width the width of the image

      \param height the height of the image
    */
    ImageContext(size_t width, size_t height);

private:
    byte* d_pixels;
    size_t d_length;
    size_t d_width;
    size_t d_height;
    size_t d_currentOffset;
    PixelFormat d_format;

    // Disabled operation
    ImageContext(ImageContext&);
    ImageContext& operator=(ImageContext&);
};

} // End of section namespace SILLY

// Inclue inline function when needed
#ifdef SILLY_OPT_INLINE
#include "SILLYImageContext.icpp"
#endif

#endif // end of guard _SILLYImageContext_h_


White 4 drawer chest of drawers- Rose Range Part of our stunning Rose Range is the white painted 4 drawer chest of drawers. With a white painted finish and rose design detailed carved handles these drawers will really give your room a French feel. These drawers are perfect for anyone who loves the shabby chic style and really add elegance and sophistication to a room.
Part of our stunning Rose Range is the white painted 4 drawer chest of drawers. With a white painted finish and rose design detailed carved handles these drawers will really give your room a French feel.
These drawers are perfect for anyone who loves the shabby chic style and really add elegance and sophistication to a room.
This 4 drawer chest of drawers is just one of our various pieces in the gorgeous Rose Range available on our website.
From the Rose range, this is an White 4 drawer Chest with rose detailing on the 4 full-width drawers. Made from wood, the chest is painted White and has a carved fascia and classically styled sides. Its legs are carved too and the drawers have carved roses as knobs. There are other items in this range to complete a French look in your bedroom or other rooms. Its dimensions are 81 cm x 98 cm x 40 cm (width x height x depth) and the drawers are 16 cm high, and 62 cm wide.


We featured an interview with celebrity portrait photographer John Keatley back in March on the Help-Portrait blog. Today we wanted to let you know about a cool giveaway he's doing to help victims in the Horn of Africa crisis.
For his birthday on Sept. 22, John is asking people to donate to One Day's Wages's Horn Of Africa Relief Fund. From the group who donates John will choose several to receive prints from his Liberia collection (a few seen below).
"I am actually feeling more excited about the idea of giving away my work this year, than I ever have about receiving gifts on my birthday in years past," John said.
Help John reach his goal of $3,000 by his 31st birthday on Sept. 22.


text:
Q: Encryption algorithm about 3DES's ECB the data will be encrypted :5140000000080401AEBFFFFFFFF7FBFE
the key is: 00000000000000000000000000000000
and the final result :DBBE8A87A4E37D95B5EDDD2BE6A4151F
//SecretKey to save data
    private SecretKey desKey;

    //Complete encryption and decryption work
    private Cipher c;

    //Save encryption results
    private byte[] cipherResultByte;

    private final static String Algorithm = "DESede/ECB/NoPadding";//Encryption method/operation mode

    private static DESedeKeySpec dks;

    private static SecretKeyFactory keyFactory;

    public DESeseTest02() {

        Security.addProvider(new com.sun.crypto.provider.SunJCE());

        try {

            dks = new DESedeKeySpec("00000000000000000000000000000000".getBytes());

             keyFactory = SecretKeyFactory.getInstance("DESede");

            //Generate key
            desKey=keyFactory.generateSecret(dks);

            //Generate Cipher object, specify its support DES algorithm
            c=Cipher.getInstance(Algorithm);

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (InvalidKeySpecException e) {
            e.printStackTrace();
        }
    }

    public byte[] createEncryptor(byte[] b){

        try {

//          System.out.println(str);
            //根据密钥,对Cipher进行初使化,DECRYPT_MODE加密模式
            c.init(Cipher.ENCRYPT_MODE, desKey);

//          byte[] input=str.getBytes();
//          System.out.println(input.length);

            //Encryption, the results will be preserved
            cipherResultByte=c.doFinal(b);

        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return cipherResultByte;
    }

but the result is not as expected ,why?anyone 's help will be highly appreciate.

A: Replace
"00000000000000000000000000000000".getBytes()

with
new byte[34]

"0".getBytes() is not the same as new byte[]{0}