text:
So you have a blog tab on your website, and you keep meaning to produce articles. But you don't know where to start creating content that will captivate your readers and get your phone ringing with great prospects?
No matter how much time you spend chewing the end off your pencil – struggling to pull ideas out of the air – you come away defeated with that "I can't do it" feeling. Not nice!
In this article I'm going to show you how you can create content for your blog articles or videos in just six easy steps. Guaranteed to reduce gray hair appearances by 90% (as measured by the number of "you've got another grey hair" comments you get), to keep your pencil pristine, the ideas flowing and your success feelings tank full.
Ok. Enough of the hype. Here are the steps.
1 Create a Table
On a paper (plasterboard or ply) create a table with 8 columns and 9 rows and block out the top left hand square. Nothing goes in this square.
2 Topics
In the seven remaining spaces on the top row write down all the areas in which you currently work. Don't get too specific – keep these fairly general. E.g. You might do work on Renovations, Kitchens, Bathrooms, Reclads, Extensions, Pop Tops, Outdoor areas, Tiny Homes, New homes etc.
3 Styles
Now in the remaining squares in the left most column list all the kinds of expression you can think of. For example you might decide that your styles could be the following:
A Rant
This is something that bugs you about one of the topics. E.g. Renovations. You are bugged by the shady builder who wins a charge-up renovation job because they under-estimate the likely costs. Not only do you miss our, but the client ends up paying more than they expected, or maybe, could afford! Or kitchens. Maybe it bugs you that people pay thousands for a new kitchen design when all they need is a kitchen facelift. Then, once you have ranted, you can go on to short snippet about a useful solution. Something I rant about is builders who hire someone simply to fill a gap and end up getting the wrong person. This can cost thousands. It's much better to use a reliable recruiting process in the first place.
This is a short Question and Answer session where you simply answer a question that you commonly get asked by customers. Simply state the question and develop your answer. E.g. "Who should I talk to to get an estimate of the likely cost of a renovation, so I can decide if it's worth doing?" I'm sure that you could answer this with three simple steps. Maybe your steps might be, 1) Get a builder's estimate on initial suggestions before committing to high design fees. 2) Check the likely value of your property after the renovation is completed. 3) Decide if it's important for you to stay in your area. I'm sure that you could then say a few words about each step. Wouldn't take long.
How to
This is an informative guide taking your client through the steps of achieving something worthwhile. E.g. How to renovate your bathroom without paying bucket loads!
Case Study
Everyone likes in a good story. So, write about an interesting or challenging build you completed. Talk about it from your client's perspective. What were their concerns/frustrations about their project? What actions did you take? What was the outcome?
This could be a checklist or a calculator. It might be an online communications programme you use to help your clients keep up to date with their build. Perhaps it's a checklist to go through before deciding to renovate. Tell them about it.
Write about common mistakes you see people make. E.g. Not allowing enough cupboard space or bench space in a new kitchen.
Keep It Current
Inform your readers about something new in the industry. If it's about reclads, tell them about a new proven cladding. If it's about bathrooms, what's new in showers? This is similar to a case study, but it adds a little extra. Again you might simply tell a story (we did this and we got this result), implying that if you do this, you'll get a similar result.
Just keep it very simple. If you have a special offer, you might like to let them know about it.
4 Fill in the Gaps
Now in each of the boxes, write brief notes using the matrix. Using Kitchens as an example, in the box under kitchens and in the row Q&A, write a question you get asked about renovating a kitchen. Go through and do this for each of the boxes. It may take a little bit of time, but once you've finished you now have 56 topics you could easily write about. That's once a week for a whole year!
5 Video Yourself
The key is to keep your blogs simple. Don't overwhelm yourself or your readers with too much information. You may even find that you are better videoing yourself in front of your cell phone than pushing a pen. Great. Go for it. Have some fun.
6 Schedule
Once you're done, make a frequency plan for when you're going to do each blog. And just do it!
P.S. Whenever you're ready….here are 4 ways I can help you grow your building business:
Grab a copy of my free book
It's a road map of a successful 15 minute sales call that's guaranteed to increase your conversion rate. Click here
Join Trade Mates and connect with builders who are scaling too
It's our new Facebook community where smart builders learn to get more income, time and freedom. Click here
Join our Momentum program
I'm putting together a new builders coaching group at The Successful Builder this month…If you'd like to work with me to get off the tools, make more money and get your life back, just message me at firstname.lastname@example.com and put "momentum" in the subject…tell me a little about your business and I'll get you all the details.
Work with me and my team privately
If you'd like help to get off the tools, make more money and get your life back…just message me at email@example.com and put "coaching program" in the subject line…tell me a little about your business and what you'd like to work on together, and I'll get you all the details.


text:
Association Affiliations
The Satellite Industry Association (SIA) is a U.S.-based trade association representing the leading U.S. and international satellite service providers, manufacturers, launch services companies and ground equipment suppliers throughout the world. The SIA is the unified voice of the commercial satellite industry on policy, regulatory, and legislative issues affecting the satellite community. The SIA represents the common interests of its members to domestic and international government officials, the press, the public, and other industries.
The SIA web site is located at: www.sia.org

subset: commoncrawl


text:
Photographer's Note
Taken during a lovely but all too short meeting with some TE friends in West Sussex, here near the legendary beauty spot of Devil's Dyke where, at the hilltop, people of all ages were enjoying a walk, the fine views and some were flying kites in the stiff breeze.
Here I was looking north from the South Downs over the little village of Poynings (pronounced Punnings) which lies about a mile away and about 400 feet below. The young boy and his father seemed to be having fun trying to fly an interesting kite in the shape of a shark.
You can see a larger version of this photograph on "beta" TE here.
macjake, Tigerlily, No_One, delpeoples, annjackman, SnapRJW έχουν(ει) επιλέξει αυτή τη σημείωση ως χρήσιμη
Critiques | Translate
berek (50508) 2014-08-30 7:43
Hi john,
very good daily life view with beaoutiful nature. well framed picture.
have a nice weekend.
holmertz (84529) 2014-08-30 7:48
Hello John,
This is a lovely view of the scenery stretching far below, but of course the brightly dressed boy, his dad and their kite steal the show. This fine combination of human presence and natural beauty is entirely to my taste. It seems to have been a slightly hazy day but the light is good and the colours are perfect.
Kind regards,
Silvio1953 (193169) 2014-08-30 10:29
Ciao John, lovely composition with nice couple, excellent clarity, wonderful colors and splendid light, very well done, my friend, have a good week end, ciao Silvio
macjake (93259) 2014-08-30 11:21
Hi John
I have to admit, flying a kite is something i didn't do alot of as a child...i wonder why?
Living and growing up in Newfoundland we certainly had the wind! :)
you've set up the scene smartly John. Having placed the boy in the fg and the father in the bg, creates a good sense of depth and dof.
Same could be said for the landscape in the far bg. Its sort of like a 3-zone photograph.
Our eyes view the scene in 3 steps.
makes me want to buy a Kite :)
but here in Vancouver the trees hardly ever move! Not much wind around here.
always fun to see a new photo from you John
willperrett (13502) 2014-08-30 12:48
Hello John
What were you doing in West Sussex without coming down to see me in Gosport?? In fact I thought the meeting was off, though originally I'd been invited. Never mind. This is a really strong image, with great depth, a result of the atmospheric haze in the distance. Beautifully framed as well: a crop of course, but why not? Nice one.
carlo62 (81155) 2014-08-30 13:55
Ciao John
la foto a questo aquilone θ un ottimo pretesto per mostrarci lo splendido paesaggio sullo sfondo.
Le persone e l'aquilone aggiungono colore all'immagine.
Buona domenica
Hi John
A well composed and cropped image with the boy and his father trying to fly the kite against the hazy landscape. We feel the movement thanks to the curve of the kite tail.
3, 2, 1, Go!
Have a lovey sunday
Tigerlily (3379) 2014-08-31 4:30
Hello John,
A beautifully captured image. I especially like the way you composed the image. The boy, the father, and the kite .. with typical English landscape as background.. a wonderful summer holiday picture. A forever beautiful memory..
Hope that you are all having a good time there. Are you bring your little toy camera with you?;-)
No_One (4) 2014-08-31 9:17
Hi John,
Picture perfect view of these people flying th kite, envy thing here is so well consider and do well timed. The position of the boy and man in the frame creates amazing depth, and the view behind is superb. The child inside me really likes that kite too, I would love to have a go :)
Best wishes
williewhistler (16606) 2014-08-31 10:57
Hello John,
I do like the connection between the boy and his Dad,that moment of anticipation when take off is near or not...
You have managed to isolate them both nicely by keeping both nicely sharp before the distant hazy, harvested fields.
Best regards Les.
delpeoples (60326) 2014-08-31 22:26
Caro Giovanni
I hope that you had a wonderful meeting with our TE friends. The countryside is quite beautiful and we do not often get to see Sussex here on TE. The daily life part of this photo is very endearing, and I love how sharp and immediate the little boy and his dad seem to be, thanks to the superb sharpness and depth of field. The colours are lifelike and superbly rendered. Thanks for sharing and I wish you a very happy week.
Un abbraccio
annjackman (23019) 2014-09-01 1:59
Hi John,
I watched you take this photo and didn't get one myself! Well done for getting the two figures spaced apart and the man framed by the kite tails. The shot also shows the Sussex view from the edge of the escarpment - beautifully done.
Kind Regards, Ann
wolf38 (30) 2014-09-03 0:00
Hello John. The joys of summer. Kite flying is one thing for father and son. A wonderful photo with a lot of atmosphere.
Rgds, Wolfgang.
photoray (13981) 2014-09-03 16:30
Howdy John,
Fine kite flying exercise on the hilltop with the hazy Poynings valley background, agriculture field sections evident.
I am a kite flyer also, but usually along our windy Pacific coast.
Thanks for sharing,
PS; Pisces but can't swim. I knew astrology doesn't work.
SnapRJW (31631) 2014-09-17 11:20
Hello John - Back home and looking at this brings back wonderful memories of a fine few days spent in the company of what I consider to be lifelong TE friends. Well composed and cropped shot with the boy well positioned within the frame and the line of the kite leads nicely to the dad's action!. The soft background view gives a good feel for both the weather and the distant landscape.
Trust all is well.
Photo Information
- Copyright: John Cannon (tyro) (29026)
- Genre: Τοποθεσίες
- Medium: Έγχρωμο
- Date Taken: 2014-08-27
- Categories: Καθημερινότητα, Φύση, Αποφασιστική στιγμή
- Camera: Canon EOS 5D Mark II, Canon 24-70mm f/2.8L USM, Hoya 77mm Pro1D UV(0)
- Έκθεση: f/9.0, 1/320 δευτερόλεπτα
- More Photo Info: view
- Map: view
- Έκδοση φωτογραφίας: Πρωτότυπη έκδοση
- Date Submitted: 2014-08-30 7:32


text:
My name is MrHass and I am a designer and illustrator based in Manchester. The focus of my work is inventive, hand-drawn imagery which I typically incorporate into graphic design projects. The line-work in my drawings is created by dip pen and black indian ink; a hallmark of my work, and a technique that I continue to explore and refine. This gives a graphic style to my illustrations and makes them ideal for cover art, editorial publications, event marketing, posters, apparel, and other graphic products.
My work has appeared in printed publications, curated exhibitions, and is commissioned for commercial use. If there is a project you would like to talk about, feel free to get in touch
Selected Clients and Collaborations: Red Bull, Monorex, ImagineFX, Northern Monk Brew Co, Manchester City FC, Immediate Media, Fat Out Festival, Seabrook Digital, Ajoto, Shabazz Palaces, Dub Smugglers, Barbarian Hermit, One69A Screen Printers, Artcrank, Retrofuzz, Honest Brew, Print Odyssey, Print For Good, Now Then Magazine
Represented by Column Arts Agency
If you'd like to know more about commissioning work here are some Frequently Asked Questions
© MrHass 2019 All rights reserved.


text:
Morality Play
Paradise Lost: The Decline of the Auto-Industrial Age
Emma Rothschild's fascinating study of the "decline of the auto-industrial age" tells us more about the peculiar plans of the auto industry and how they have gone awry than any other account of America's fading love affair with the car. One could write a social history of the United States around the auto industry, for it has not only transformed the countryside and the cities but also our basic national attitudes about work, leisure, and the pursuit of happiness. Ms. Rothschild has not attempted this but she has written a well-researched morality play which shows with painful clarity why all the crises we associate with the car arose and why the US auto giants are incapable of resolving them.
What troubles the auto industry most is a failure of confidence. For both buyers of cars and buyers of car stocks the industry has lost its magic. GM's total profit for 1972 was $2.16 billion, a figure in excess of the gross national product of a number of small countries; but according to Ms. Rothschild, it represents a lower profit rate per car in real dollars than the company earned in 1950 or 1928. The "harassment" by the consumer movement, as former president James Roche called it, has led to federal antipollution regulation; as a result, Ford's president Lee M. Iacocca warned, the auto industry "has been backed to the cliff edge of desperation." (Mr. Iacocca seemed genuinely hurt at the adverse publicity he received when he came to Washington to lobby against the Clean Air Bill.) It is now a cliché in the industry to lament the "rising tide of consumerism" and its excessive preoccupation with auto safety. (More than 30 million defective cars and trucks have been recalled since 1966.)
Mr. Roche's curious metaphysical explanation of increasing sales resistance is that the American romance with the car has "blossomed into a marriage." By this he means that the automobile has become an increasingly popular target for the sort of harsh criticism that ten years ago only eccentric social critics would make. A Seattle Chevrolet and Fiat dealer with an instinctive understanding of the repressed anger people feel toward cars has substantially increased his sales by using TV commercials in which he smashes the fenders, headlights, and windshields of some of his new models. Rothschild reports that the customers are eager to buy his cars once they have been chastened and repaired.
In the simpler day when cars could. be sold by having them stroked by sexy models instead of beaten by sledgehammers, investors readily put their money into automotive stocks, but now, as Forbes Magazine asks, "Who wants the nongrowth or slow growth stocks like GM?" The industry has ceased to command the technological frontiers which long ago were taken over by the electronics computer and other high-technology industries. The Wankel rotary engine, the only significant technological advance in basic car design since the war, was invented in Germany and developed in Japan. Productivity in the industry is…
This is exclusive content for subscribers only.
Get unlimited access to The New York Review for just $1 an issue!
Continue reading this article, and thousands more from our archive, for the low introductory rate of just $1 an issue. Choose a Print, Digital, or All Access subscription.
If you are already a subscriber, please be sure you are logged in to your nybooks.com account.


text:
The National Park Service is developing plans to bring WiFi and better cell-phone access to parks, including the iconic Yellowstone National Park. It's triggering a heated debate, evidence by the recent article on Mashable that has been widely shared. Do elk and moose need access to the internet? Or more importantly, do the visitors who have come to be with nature also need to be connected to the internet so they can post a selfie instantaneously?
As we come up to the Centennial of the National Park Service it had me wondering what Stephen Mather, the first head of the National Park Service, would think of this debate. Of course, we'll never know, but I have a hunch he'd have been an advocate.
Mather was a fascinating individual who had made his millions out of 20 Mule Team Borax. He understood the power of brand and the importance of getting people into the parks. He professionalized the park service, developed the iconic image of the Park Ranger (think of that hat), promoted Park Highways, and introduced concessions into Parks to provide for the needs of the visitors attracted to the parks he was building. He understood that parks needed protecting and the best way to protect them was to have passionate advocates who loved them.
I don't think it's a stretch to say that he'd understand the importance of introducing WiFi and internet access in a careful and limited manner to both encourage new visitors and provide new services to the visitor once they arrived. Don't get me wrong, I am not saying we need access everywhere all the time, but I do believe parks need to keep pace with current trends to ensure they remain relevant to all visitors.
What do you think?Embed from Getty Images


text:
Knitting For Profit Ebook
If the fit is crucial, then you should make a swatch that reflects your in-the-round gauge. Some knitters, particularly Continental-method knitters, achieve a tighter gauge in circular knitting than they do in flat knitting, due to purl stitches in flat knitting coming out looser than knit stitches. To make a swatch that reflects your circular knitting gauge, use two double-pointed needles the same size that you are going to use for the body of your project. Cast onto one double-pointed needle the equivalent of 4 or 5 inches worth of stitches, and then knit 1 row with the second double-pointed needle. Instead of turning the work and purling the next row, bring the
Many knitters complain of a ladder of loose stitches along the vertical line where the two needles come together in circular knitting. With circular needles, this occurs only along the join of the round, but on double-pointed needles, it can appear between each needle. To improve the appearance of the stitches that lie at the beginning and end of the needles, be sure to tug firmly on the working yarn when knitting the first 2 stitches on a new needle, and hold the right needle securely up against the left needle when knitting these 2 stitches.
working yarn very loosely from the end of the row back to the beginning of the row, still with the right side facing. Knit another row. Continue working in this manner, knitting each row begin ning at the same end, and draping the working yarn across the back between rows until your swatch is approximately square. Measure your gauge as usual.
Was this article helpful?


text:
Intermediate Painter - Year Round
Date: Jan 14, 2020
Location: Keystone, CO, US
Company: Vail Resorts
Reach Your Peak at Vail Resorts. You're someone who pushes boundaries and challenges the status quo. You're brave, ambitious and passionate in everything you do. And we want you on our team. Pursue your fullest potential and never settle in the quest to deliver extraordinary guest service. Join one of the world's most innovative companies and re-imagine a mountain resort experience with us. Welcome to Vail Resorts. Reach Your Peak.
- Assure that the integrity of resort assets is maintained
- Will be trained with Hotsos system to understand preventative maintenance programs
- Coordinate projects with sub-contractors when required
- Order and maintain required parts for stock for critical equipment for assigned areas
- Follow all safety procedures and alert supervisor to any unsafe conditions that may exist
- Work with other departments and area managers as required
- Posses your own hand tools and keeps them in a safe functional manner at all times
- Maintain daily job logs updated daily
- Confer regularly with immediate supervisor and various Company personnel (front desk, maintenance, housekeeping, etc.) to plan and coordinate activities/ projects (such as repairs requested by guests), exchange information, resolve problems, etc
- Maintain a valid Colorado Drivers License
- A good understanding of the quality of work required to meet resorts painting standards
- Knowledgeable about planning and execution of painting functions
- Experience in scaffolding installation and troubleshooting
- Knowledgeable of preparing surfaces and mixing ingredients correctly
- Knowledgeable with painting, carpentry, dry wall repairs and general building maintenance
- Basic knowledge of plumbing and electrical work
- Abide by all safety rules and regulations from corporate, State and Federal
- Attend training classes for job specific skills
- Maintain good attitude and people skills even during high-pressure situations, be a good leader as necessary
- A good understanding of hospitality engineering quality of work
- Any other job related as required
We're looking for team members who are passionate about their work and the world around them, who take pride in ensuring our guests receive the best possible service and who bring a sense of self and fun to all they do. Life at 9,280 feet in the sky is a little different. With our crisp Rocky Mountain air and boundless options for adventure and exploration, you can join a community who loves where they live and loves what they do. Keystone will be your home away from home; a place where friendliness, an eye for detail and unmatched guest service is the foundation of our Culture. Come join our team – where A Mountain of Possibilities awaits. www.vailresortscareers.com
Vail Resorts is an equal opportunity employer. Qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, sexual orientation, gender identity, disability, protected veteran status or any other status protected by applicable law.
Requisition ID 191867
Nearest Major Market: Denver


text:
Your phone model is: Gionee W106
Version for your phone is: UC Browser 18.104.22.1689
Updated date: 2014-06-23
Change phone model:
Are you a fan of World Cup? Do you concern about missing any games of the coming Brazil World Cup while taking subway to work or after work? UC Browser will readily help you address this problem. You can just visit the official website of UC Browser and download one, it is very small and using little data usage.
UC Browser is the leading mobile internet browser with more than 400 million users across more than 150 countries and regions. This product is currently available on all major operating platforms in 7 different languages.
Established in 2002, Shenzhen Gionee Communication Equipment Co., Ltd is a hi-tech company engaged in mobile phone R&D, manufacturing, and sales for both domestic and overseas markets, and also offers mobile internet application service.
Gionee W106 is an non-touchscreen phone manufactured by Gionee, with a resolution of 240X400.Gionee W106 users can download the latestUC browserfor Gionee W106 via UCWeb's official website.


text: VISITVisitor InformationDirectionsThronson CaféMuseum StorePublic ToursGroup ToursSchool VisitsNearby AttractionsEXHIBITIONSCurrent ExhibitionsUpcoming ExhibitionsPast ExhibitionsOutlooks Exhibition SeriesArt Is EverywhereCOLLECTIONSBritish Pre-RaphaelitesHoward PyleAmerican IllustrationJohn SloanAmerican Art, 19th Century – PresentCopeland Sculpture GardenThe Helen Farr Sloan Library and ArchivesNew AcquisitionsCurator CornerSearch The CollectionPROGRAMS & EVENTSCalendarAdult ProgramsTalks & ToursFamily and YouthArt CampConcerts on KentmereCalls for ArtisansConnected SeriesHoliday House TourEDUCATIONStudio Art ClassesSchool & Teacher ProgramsOutreach: Art ExcursionsHomeschool ProgramsDocentsKids' CornerRed Apple FundMEMBERSHIPWhy Membership MattersMembership LevelsDirectors CircleRossetti CircleArt Is CardReciprocal MuseumsSUPPORTAnnual GivingLegacy Giving1912 Loyalty SocietyDonor PortraitsCorporate SupportFinancial Documents2014 Annual ReportABOUTCentennial HistoryBuilding DesignGoing GreenDelArt BlogE-NewsMuseum RentalPress RoomOpportunitiesVolunteerContact UsStaff ListBoard Of TrusteesMuseum CouncilFirstPrevious12..176177178179180..228229NextLastSusanna SteigBiography: Susanna Steig (née Shatkin) is best known for her realistic scenes of domestic interiors. She resided in Brooklyn and exhibited extensively throughout the 1970s and early 1980s in New York. Solo exhibitions of her work were held at the Prince Street Gallery in 1976 and 1978. Steig's paintings were included in the 1974 Report from Soho show at Grey Art Gallery, the Butler Institute of Art's 40th Annual Midyear Show in 1975, Forum Gallery's 14 Still Life Painters in 1978, The New American Still Life show at Westmorland Museum of American Art in 1979, and Brooklyn Center of Long Island University's Women Artists Living in Brooklyn show in 1980.Related worksWindow and Mexican DressBrowse All


text:
When a business wants to minimize error prone and time-consuming manual processes in accounting, it generally upgrades its ERP software. When said business wants to gain visibility into spending, it seeks out a capable expense management or invoice management software (or both).
With growing businesses doing this each day, upgrading ERP and expense/invoice management software, there was a problem for many of these businesses. The problem? Although each platform worked together, the two would not transfer information securely and automatically.
That is why in 2013, Brittenford released ExpenseConnect to connect Concur Travel and Expense Management to either Intacct or Microsoft Dynamics GP.
ExpenseConnect answered the question, "How can I avoid manually transferring travel and expense data from Concur to my accounting or financial management software?"
The release was an immediate success, winning Brittenford the 2014 Concur App Center of the Year.
Businesses wanted to save even more time and money, and that's where we fit in. From SaaS project management software to Major League Baseball team, finance teams everywhere loved ExpenseConnect.
Apparently, fulfilling a gap in the market with a groundbreaking product works. Why? Because we just won again. Brittenford Systems is now a two-time Concur App Center Partner of the Year winner—not bad when the App Center has only been around for three years.
But we're not finished. In April 2015, we introduced a new product, InvoiceConnect, to help businesses securely and automatically connect Concur Invoice with either Microsoft Dynamics GP or Intacct Cloud Accounting.
Will we continue to help businesses whose finance teams are overworked and in need of simplicity, secure automation, and peace of mind? That's what we're here for.
Brittenford Systems is excited to receive Concur App Center Partner of the Year recognition once again, and wants to help your business. Learn more about each software below:
Microsoft Dynamics GP Users
- ExpenseConnect: Connect Travel and Expense Data from Concur to Dynamics GP
- InvoiceConnect: Connect Invoice Data from Concur Invoice to Microsoft Dynamics GP
Intacct Users
- ExpenseConnect: Streamline and Simplify Expense Management in Intacct
- InvoiceConnect: Securely Automate Invoice Processing and Payment using Intacct and Concur
Need to learn more? Contact our team today.


text:
HP donates legacy Unix file system code to Linux
HP has open-sourced its Advanced File System (AdvFS) code, which may broaden Linux adoption and narrow the functionality gap between Unix and Linux.
Created by HP subsidiary Digital Equipment Corp., the AdvFS code has been used widely in Unix systems for 16 years. It will automate and integrate Linux operations, with fewer steps required to execute commands. A file system, for example, can be resized with a single keystroke instead of a series of commands and without having to go offline. In addition, AdvFS includes a new snapshot feature that captures the current state of a file system -- again while remaining online. AdvFS also has a simplified file system and storage management structure, plus the performance management tools and system availability required to support enterprise-sized systems, Garbee said.
The Linux community has only recently expressed interest in a more advanced file system, apparently because of Linux's increasing use with mission-critical applications, Garbee said. Since mission-critical file systems are complex and require a long maturity cycle for testing and performance verification, HP wanted to get the code to developers with sufficient lead time, he added.
"This is the first time there is a good fit between the technology and what the community was looking for," Garbee said. "A couple of years ago, the community just wasn't ready for this."
Doug Small, HP's director of global alliance marketing, said HP's donation of this Unix code will help drive Linux adoption and, in turn, benefit HP as the Linux market expands. According to a survey by Framingham, Mass.-based IDC , HP is the top shipper of Linux-installed servers, with 35% of the global market.
"This file system enables online system backups without requiring administrators to take them down, which will improve availability," Small said. "And it will help open source operating systems to scale more aggressively."Analysts debate impact
According to Matt Lawton, the director of open source software business strategies at IDC, the AdvFS code donation should narrow the functionality gap between Linux and proprietary Unix operating systems and could result in greater Linux adoption in enterprise systems. Further, the code donation is a way for HP to boost its involvement in the open source development community and could benefit HP directly if it leads to greater AdvFS adoption.
But Gordon Haff, principal IT adviser for Nashua, N.H.-based Illuminata Inc., said any impact of the AdvFS code is five to 10 years away, and speculative at best.
"Having the source code for a production-grade, next-generation file system that people can look at could be helpful," he said. "But this isn't something that will be a major impact and it's not long term either."
If Linux goes to production with a next-generation file system with AdvFS, the latter will be only one of the elements in the advanced functionality, Haff added.
Let us know what you think about the story; email Pam Derringer, News Writer . And check out Enterprise Linux Log.


text:
In Munich Germany, Jermaine Lippert's hometown, that would be the title while in America we say "Very good Jermaine." In either language it puts an exclamation point on Jermaine's and the Sheridan College General's blowout over the Bears from Rocky Mountain College in the Dome Saturday evening.
The Daniels Fund bestowed $51,200 in grant funds to a couple of Wyoming nonprofits recently. Sheridan Media's Ron Richter has more.
(WY News Service) -- It's Christmas tree shopping season, and Director of The Nature Conservancy Bill Ulfelder has some advice for those unable to decide between a real tree or a fake one.
Your chance to save up to 50% off of retail on a number of gift certificates from local merchants begins tonight at 7 pm as Cyber Monday gets underway here at sheridanmedia.com.
Road & Travel


text:
The Radio Club of Tacoma is host to the Clifford J. "Doc" Spike, W7OS, Antique Radio Museum.
Doc Spike (1900 - 1991) was a long-time, iconic member of the Radio Club of Tacoma. His personal call sign was W7OS.
The W7OS Antique Radio Museum is located in a room on the upper level of the Clubhouse. See the Photo Gallery for pictures of many items in the Museum collection. You might even see a few snapshots of club members warming themselves by the heat of vacuum tubes glowing in old radio equipment. Some of the Club's antique transmitters and receivers dating back to the 1940's, 1950's, and 1960's are dusted off for making on-the-air contacts by Morse Code with other hams around the world, especially on Straight Key Night, an annual event that starts at 4:00 PM (PST) on New Year's Eve. We hope you will be listening for the Antique Radio Museum station call sign, W7OS ... "Whiskey Seven Old Socks".
Rich Patrick, KR7W
Curator, W7OS Antique Radio Museum


text:
<div id="header-title" style="padding: 10px 15px; border-width:1px; border-style:solid; border-color:#FFD28C; background-image: url(<nop>https://jazz.net/wiki/pub/Deployment/WebPreferences/TLASE.jpg); background-size: cover; font-size:120%"> ---+!! Proof of Concept Sizing when using Continuous Engineering capabilities in 6.x  %DKGRAY% Authors: Main.PaulEllis
 Build basis: Collaborative Lifecycle Management 6.x; aka !IoT Solution for Continuous Engineering 6.x %ENDCOLOR%
</sticky>  <sticky>
 %TOC{title="Page contents"}%
</sticky> <sticky>
</sticky> This article intends to only discuss the limited use cases of a Proof of Concept, and installations of 1-20 users, which we see exhibit similar patterns and anti-patterns in terms of deployment. In general, a proof of concept is usually synonymous with an evaluation. However, where proof of concepts are to include real data as part of the evaluation, then thought must be given to the topology from the very start. There are excellent articles within this wiki on topologies for larger sizes, as well as the blog post [[https://trfeeney.wordpress.com/2016/09/01/getting-to-a-right-sized-jazz-environment/][Getting to a right-sized Jazz environment]], which also discusses sizing considerations, but some of those are outside the scope of this page.
 With the introduction of advanced configuration management features in CLM 6.x, the [[https://jazz.net/wiki/bin/view/Deployment/StandardTopologiesOverview#Evaluation_topologies][Standard Topologies]] now require more hardware than in releases prior to 6.x. If the intention is to use the configuration management capabilities within Rational DOORS Next Generation and/or Rational Quality Manager then you need to adhere to the following guidelines. ---++ Why is a single-server topology no longer adequate for a Proof of Concept (!PoC)? As documented in the Evaluation topology, this was described as "The evaluation topology does not meet the demands of a typical production workload because of the limited scalability of the single application server. While this topology is ideal for evaluations, demonstrations, and training purposes realize that the data created in an evaluation topology cannot be transferred to a scalable production environment when the evaluation is complete."
 The full list of applications within the CLM suite, prior to the 6.x release stream was documented as an [[https://jazz.net/wiki/bin/view/Deployment/AlternativeSSEDeploymentTopologies5#SSE_V1_Evaluation_Windows_Tomcat][Evaluation topology using Windows/Tomcat]] : RTC, RQM, RDNG, DM, JTS, JRS, LQE, DCC, !RELM and VVC, with the CLMHelp, RM converter and admin applications all added too. This does not even consider a reverse proxy setup, which quite often is added for when the future expansion into an Enterprise Topology occurs.
 The inclusion of configuration management capabilities in 6.x added a Link Index Provider (LDX) and a Global Configuration Management (GCM) application. This meant that if you were utilizing all of the CLM applications, then there would be even more pressure on the server during key moments of operation. Indeed, some experienced server strain when using the Evaluation Topology in 5.x too when DCC (Data Collection Component) and the Data Warehouse were collocated with the CLM applications.
 This situation is acerbated in 6.x with the inclusion of the Lifecycle Query Engine (LQE) now being utilized by more than just RELM (Rational Engineering Lifeycle Manager) and Design Manager. The main stream use and it's fairly constant updates (to provide near real-time reporting) necessitate some thought on how to deploy, even a simple setup. The Evaluation topology was intended to be just that. A small setup to trial features of the CLM suite, downloaded from jazz.net. In 2016, this is better served by using the jazz.net sandbox, or doorsng.com for learning about new features, but if a !SaaS (Software as a Service) or aaMS (as a Managed Service) option is not appropriate for you, then a small on-premise setup should continue as detailed below. ---++ How ONE expensive scenario can cause your !PoC server serious harm The sizing of a small setup is the same for 1 user as it is 10, or even 20. In many ways, your number of users are unlikely to be a major consideration during your Proof of Concept phase, or indeed if you're a deploying to a small number of users. The capabilities you wish to avail of and the data which you work with will have a much more fundamental impact on your decisions than a relatively small number of users.
 There is an entire section of this wiki dedicated to [[https://jazz.net/wiki/bin/view/Deployment/DeploymentMonitoring][monitoring]] and another to [[https://jazz.net/wiki/bin/view/Deployment/PerformanceWhereToStart][performance]], but I have attempted to summarize below the cross-cutting considerations in this one article.
 ---+++ Considerations for RAM, CPU and disk Input/Output When calculating a maximum server sizing, the first place we recommend perusing is the [[PerformanceDatasheetsAndSizingGuidelines][Performance Datasheets and Sizing Guidelines]], along with the [[CLMSizingStrategy60][Sizing Strategy for 6.x]] and then probably add in additional information per application, for example, [[DOORSToDNGMigrationSizingGuide#Sizing_recommendations_for_Ratio][DNG Sizing Guide for 6.x]].
 As it is not our recommendation to collocate all of our applications on one server in a production environment, there is minimal performance testing done at this level.
 In terms of the most fundamental sizing advice, we have always advocated that the database server (if not Derby) be located on its own server. Oracle, DB2 and SQL Server will directly compete for the key 3 resources and unless they're plentiful, problems will occur in an intermittent and unpredictable manner. Essentially, if you're using not using the Derby database, you're not in a Proof of Concept mode and must upgrade expectations along with the scale of your middleware!
 The Lifecycle Query Engine, whilst not new to 6.x has been adopted by the newly configuration managed applications and should only be installed if you're intending to use this in DM, RDNG or RQM. This application, like RDNG, is using a file based Jena index for its triple stores and is particularly RAM and I/O intensive as it grows. The importance of this to the overall ability to run in a single server is highlighted in the [[LifecycleQueryEngineBestPractices][Lifecycle Query Engine Best Practises]] article.
 If you're at the point of splitting now into a 2-application-server topology for evaluation, you should consider that along with the LQE, the Data Collection Component, and the Reporting Service (also known as JRS) would also benefit from being separated from the main applications.
 In terms of RAM, CPU and Input/Output then these 3 rules apply, especially when RDNG and LQE are being considered: 1. Add processors to support more concurrent users 2. Add faster disks to support more data 3. Add memory to support more data (and more concurrent users) ---+++ Why is the data more important than the number of users? When calculating the minimum sizing, then there isn't the same information available, but as you can see from [[DOORSToDNGMigrationSizingGuide#Recommended_hardware_settings][DNG recommended hardware settings]], the point in the graph for 1 user really depends on the data that is in use. If you are testing RDNG using data from your current system, say DOORS 9, then you may use the migration utility to import 10,000 objects across for the !PoC. You may have several groups who want to work with their data, so multiple modules of 10,000 objects. As you can see you will soon climb the vertical access, even before you have unleashed your full use base.
 In Tim Feeney's page [[CLMExpensiveScenarios][CLM Expensive Scenarios]] we can see why data might be more important across more than RDNG. Each application lists its Achilles heel(s) to show where data is going to be a significant factor in your sizing decision.
 These expensive scenarios again have largely been experienced during peak times on enterprise servers, however the guide is an essential list for your CLM Administrator to reference, if they are trying to explain a degrading system in terms of performance and/or reliability. ---+++ The silver bullet of using Java Heap for better performance One of the common misconceptions that we see, especially with !PoC setups is that the Java heap size (the !Xmx, !Xms, and !Xmn) settings in your webserver are often overset.
 In the use case we are discussing, the most useful equation to consider is quite simply: <verbatim> RAM > Java Heap + OS needs + Jena indices (from LQE and RDNG) + native memory requirements for so many applications + 1GB for DirectByteBuffers (the value of "-XXMaxDirectMemorySize" JVM argument) </verbatim> Therefore, using all of the available RAM for the Java heap is not going to be the silver bullet for performance that you would perhaps otherwise infer from our guidance elsewhere, where we are considering a single application, like RDNG, per server. The most appropriate setting for the heap is usually 50% of RAM and then use Garbage Collection to tune up, or down if you see Native Memory errors. See below for more on Native Memory errors.
 Before I move on to monitoring the system, I want to make a delineation on Garbage Collection. It is important to know how much RAM, CPU etc you have on your server. It may be important to see the contents of the Javacore at the time of any crash, but what IBM Support need to see more than anything for a performance issue for these use cases is the verboseGC log!
 [[https://jazz.net/wiki/bin/view/Deployment/MustgatherPerformanceProblemsInCLM#Information_gathering][Point 4 of Must Gather Information]] describes how to set this. The overhead is minimal however the information is invaluable. In most cases of performance and instability issues I have seen on small server installations, it is this log that allows me to get to root cause faster and tune more effectively than any other tool.
 ---+++ Monitor your way to good Java health Tuning the Java heap is outside of the scope of this topic, but below are some links for further reading. In essence though, you should let data make decisions for you without the panic of a system-down situation, or guesstimates based on load.
 !WebSphere Liberty has a very simple Admin tool which will allow you to see how the CPU, RAM and threads are performing, which is available with any web server through Java Management Extensions (JMX). The simplest guide to setting this up is, [[https://jazz.net/wiki/bin/view/Deployment/JazzMonitoringThroughJMX][Monitor your server with JMX]], which you no longer need to uncomment and restart the application server.
 To then access this information, use JConsole, which is part of the RTC client and documented [[https://jazz.net/wiki/bin/view/Deployment/CLMServerMonitoringJMXConnectionTroubleshooting][here]].
 A false positive we have seen on Windows is when we see [[https://jazz.net/wiki/bin/view/Deployment/AttemptingToUseRTCOnWindowsOperatingSystemLeadsIntoNativeOutOfMemory][Competion for the 4GB Windows memory space]]. This is nothing new, but we have seen LQE in particular, when collocated with the other applications encounter this problem. As described in the link, you can move to uncompressedrefs to resolve this, but in doing so you're increasing the RAM requirements...just to note.
 ---+++ Non functional testing and small servers If you intend to perform non functional testing on a server then we have written two articles on how we perform this and also what you need to tune in order to allow the simulation not to encounter unrelated issues to the tests being performed.
 * [[https://jazz.net/wiki/bin/view/Deployment/HowToPerformanceTestCLM][How to performance test]] * [[https://jazz.net/wiki/bin/view/Deployment/TuningForPerformanceTesting][Tuning for a performance test]] ---++ Conclusion I imagine that having read all the advice above, many people just want to see a minimum specification laid out in a simple table. With all the caveats detailed above, and indeed in the related articles, we're recommending. It is possible to load all of the applications on 1 machine of around 16GB RAM and 4vCPU (my old laptop), it just isn't advisable and it isn't going to be stable. In essence you're going to spend a lot of time unnecessarily chasing phantoms and creating a poor perception for your users.
 We would therefore strongly recommend that if you are evaluating all of the applications for a Proof of Concept, or indeed initially for a small set of users with aspirations to trial the additional applications/features and then roll out further capabilities, then you should start with (my new laptop):

  1 x [32 GB, 8 vCPU and fast disk (SSD)* - non-reporting applications]
 1 x [32 GB, 8 vCPU and fast disk (SSD)** - reporting applications]
 1 x [Separate DB Server - 12GB RAM, 4 vCPU]
  *SSD is required if RDNG is to be used
 **SSD is essential if LQE is in use with configuration management enabled projects in RM and/or RQM

 [[https://jazz.net/wiki/bin/view/Deployment/LifecycleQueryEngineBestPractices][Lifecycle Query Engine Sizing]] is the definitive guide for sizing of the LQE machine. The advice, even in this conclusion once again reiterates the opening paragraph where it needs to be stated that any proof of concept that makes extensive use of real data should evaluate the needs and not assume that evaluation is based on just the number of users.
 There is an article from 2014 for basic DCC guidance: [[https://jazz.net/library/article/1433][Performance summary and guidance for the Data Collection Component in Rational Reporting for Development Intelligence]]
 ---+++++!! Related topics: [[DeploymentWebHome][Deployment web home]], [[DeploymentWebHome][Deployment web home]] ---+++++!! External links: * [[https://www.ibm.com][IBM]] ---+++++!! Additional contributors: Main.TimFeeney, Main.StevenBeard <sticky>
</sticky>
This topic: Deployment
History: r12 - 2017-01-12 - 11:13:28 -
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our
Terms of Use.
Please read the following
Ideas, requests, problems regarding the Deployment wiki?
Create a new task in the RTC Deployment wiki project


text:
More evidence that Microsoft and open source are learning to peacefully coexist comes in the form of a developers conference in London, UK InfoWorld blogger Savio Rodrigues points to the Open Source .NET eXchange, an event for .NET developers who use open source.
The agenda includes topics such as "ActiveMQ and NMS," "Fluent NHibernate" and JQuery. Rodrigues, curious about whether the event was Microsoft-driven, says he spoke to Microsoft's Robert Duffner. Though Duffner acknowledged his team knew about the conference, he said the whole thing was more about the .NET community "scratching an itch."
I agree with Rodrigues' conclusion that this event is but one small example of instances in which developers can and do have a foot on each side of the open vs. proprietary fence.


text:
The New Always on display feature on Samsung Galaxy S7 and S7 Edge is new for the smartphones.
Right Now just Samsung and LG are providing this feature for their devices.
This feature will let the device screen permanently on with important information like time, date, and notifications.
Samsung has improved Always on Display feature as now you can customize the range of time this feature should be active,
And Now your Samsung Galaxy S7 or S7 edge display can stay permanently on for an allowed amount of time,
Like if you're doing full shift it can stay on for the full shift or night shift or you can customize it as you want.
To update Always on Display feature head to the settings of your device
Samsung Galaxy S7 or S7edge Settings > Display > Always on Display > About Always on Display > install the update.


text:
We also have a few small enhancements for you:
- Debugger enhancement to allow you to hover over a variable and display the associated value
- Debugger preference to disable warnings for missing source
- Debugger performance improvement when isExternal=yes is used on call statements. isExternal=YES will bypass the workspace search, while EXTERNALLYDEFINED will continue to do the search, if needed. For non-EGL programs, if you don't use isExternal=yes, you can avoid the workspace search by adding an entry into the debug behavior mapping table in the EGL->Debug preferences.
- New preference for retrieving SQL data -You can use the EGL type char for SQL date, time, and timestamp in SQL Retrieve preference
to allow data that is stored in the database as DATE, TIME, or
TIMESTAMP type to be converted to EGL CHAR type when it is retrieved.
- Form editor no longer requires consecutive numbering for validationOrder
If you generate COBOL for System z, you should also install PTF UK48413 .[Read More]


text:
25 September 2011
all about the turban
10 comments:
- Lucy Corrander Now in Halifax! said...
It is, indeed, a statement style turban. The handbag is a statement style handbag too. Happy Birthday to your mum - and congratulations!
(Where are the flats?)
- 25 September 2011 at 22:45
- monix said...
A very stylish lady! I bet she still likes to look good.
- 25 September 2011 at 22:54
- colleen said...
Lucy -The flats are about a five minute walk away from the Tower of London. The family moved in just before WW2 - mum, dad, nine kids, nan and grandad; two flats to fit them all in. Mum and Dad also had a flat there when they got married and we lived there until I was about eleven.
- 25 September 2011 at 22:56
- Felix said...
It is a magnificent turban and this post is a very fine tribute to its wearer! I love this post and your description of your mother and her attitude and dressmaking skillz.
- 25 September 2011 at 23:09
- colleen said...
Felix - I am hoping that the lovely picture you took of me wearing the green turban will survive the course as well as this one has!
- 25 September 2011 at 23:15
Hi Colleen,
Are those flats Stephen and Matilda House? I was born in those. No chance of a blue plaque since the one I was born in was knocked down!
Best wishes,
- 28 September 2011 at 17:42
I really love the confidence with which she looks into the camera lens. The last thought on her mind would be that the picture might get blogged in 2011. I also love turbans.
- 28 September 2011 at 18:39
- colleen said...
Joan - These flats back on to Ellen Street, off Backchurch Lane. I know Stephen and Matilda well - my dad used to work for W Badger and I sometimes used to go with him to put his lorry away. Blimey, that walk down Thomas More Street took forever.
- 28 September 2011 at 19:11
When I read your comment to my mum she sighed in recognition at your remarks about the long walk down Thomas More Street. She has many memories of walking around those streets with my sister and I in prams and the high dock walls looming.
Best wishes,
- 29 September 2011 at 09:44
thank you for all the postcards, i have been missing you. and happy birthday to the turban sultana.
- 13 October 2011 at 23:10


text:
The Gas Analysis and Sensing Group (GASG) brings together manufacturers, users, research organisations and academic departments that share technical interests in all forms of gas sensor and the relevant applications. Initially supported by the former Department of Trade and Industry in 1993, it is now a Private Limited Company self-funded solely by membership subscription fees.
The GASG remit includes research on all aspects of gas sensing and analysis, along with the development and manufacture of the resulting products including electrochemical, solid-state, optical and system-based units and the supporting signal processing and analytical instrumentation. The GASG also addresses applications involving standards and calibration, domestic gas alarming, combustion gas sensing and analysis, and environmental monitoring including aviation, maritime and automotive cabin air quality along with health-and-safety and homeland security matters. Each year, three colloquia are organised, often hosted by a leading company and including tours of that company's facilities. The December colloquium includes the Annual General Meeting and is normally held in Central London. Both on-line Newsletters and Proceedings are compiled and distributed to all members after each colloquium.
The membership includes representatives from most of the gas sensor and equipment manufacturers in the UK along with leading university, government and private laboratories focusing on gas sensing and monitoring. The GASG also welcomes overseas membership, both corporate and individual.


text:
South Point Mall on Golf Course Road is quite, it wont really meet a shoppers desirability but just the right place if you are foodie and like casual dining, specially Japanese cuisine. Predominantly the mall is catering to expats staying in Golf Course Road, it happens to my hangout place as well for a hot coffee, its quite and soulful.
While my coffee continues favourite beverage, I do get tempted on beer if happy hour board flashes out of an outlet and this is what took me to The Hangout by 1861.
The Hangout by 1861, Golf Course Road
Ambiance: Very calm and soothing, not sure if the restaurant owner likes it. The decor is very simple yet in placed in a very ergonomic way hence very comforting. The restaurant has an open kitchen and that's make the whole ambiance very attractive.
Teak wood finish with graffiti from western world makes it look old barrel house with modern furniture. Live band is available after 7 Pm which was ok, not that something you will go for but well managed in the given capacity.
Food & Beverages: Food is right on the spot, the taste we wanted, very satisfying to palate. The chef has really cracked Italian cuisine, we tried Lasagne and it was delicious. I couldn't click, it was so tempting to eater and I didn't missing a photo of it. Not a fan of Italian cuisine, just try there burger, equally amazing and very filling, forget eating main course after it.
Customer Centricity: Very good, lots of attention, not sure if it was because the outlet was empty but you could sense the warmth. The person standing at entry is welcoming, you feel wanted.
Value for Money: Absolutely yes, given the taste it offers.
Infrastructure, Parking & Driveway: Managed by the mall authority, parking space is always available and parking fee caped at Rs 20, I just love it.
Adolyga Rating - The Hangout by 1861
Go for it, a chilled beer and big mouth burger will make your day, nothing fancy, just the food and beer.


text:
The world of whisky is getting wider
Some of the world's best whiskys are made in…Japan? The Land of the Rising Sun is becoming a big player on the World Stage of Whisky.
Image from Sydney Bar Week // The Land of the Rising Sun is becoming a big player on the World Stage of Whiskey.
Japan. Home of beautiful sights, awe-inspiring history & culture, and award winning whiskey tradition. You read that right. Japan is becoming a big player on the world stage of Whisky.
Japanese Whiskey has been growing in popularity in the U.S. over the last few years, and we can see why. Americans love whiskey! Our thirst for bourbon and whiskey is a powerful one, and it is also an expensive one.
Prices for Japanese whisky run the gamut from anywhere around $20 bucks a bottle to close to a couple grand. A bottle of 1960 Karuizawa whisky sold at a Hong Kong auction for $118,500 last August.
Don't let the sticker shock completely turn you off to the idea of trying Japanese Whisky. There are plenty of fantastic Japanese Whisky options that you can get in the U.S. for less than $100 a bottle. Here are some great Japanese Whiskies you can get without breaking the bank.
Suntory Whisky Toki (~$30)
Image from // Suntory
If you want to jump into the world of Japanese whisky without taking a chunk out of your wallet, Suntory Whisky Toki is a great start. This whisky is 1) widely available state side and 2) under $40 depending on where you live (We can get it here in NC for $30 plus tax). This light golden whisky is subtly sweet with a spicy finish, and has notes of honey and vanilla. Suntory Whisky Toki can be enjoyed neat or try it in a cocktail like a Highball or Whiskey Sour.
Hibiki Japanese Harmony (~$65)
Image from // Whisky Monster
Like single malts? Give Hibiki Japanese Harmony a try! The Hibiki is a light, young, blended whisky that is aged in Mizunara Japanese oak casks. It is easy to drink and has a subtle spiciness of cinnamon and clove. The sweetness of this whisky makes it a little more approachable for new Whisky drinkers, but it could be a little too sweet for some folks. It is definitely a decent introduction to the Hibiki blends.
Nikka Taketsuru Pure Malt (~$70)
Image from // Nikka Whisky
Matured in sherry wood you say? Sign us up. The Taketsuru Pure Malt is a blended malt whiskey that is aged about 10 years to give it a smooth, rich, and clean mouthfeel. The whisky has just the right amount of sweetness from Sherried fruit, but not a lot of smokiness. It has a fruity richness that lingers in your mouth with a slight touch of Espresso flavor. This is one of our favorite whiskies to splurge on so far.
Suntory Hakushu 12 years old (~$85)
Image from // Suntory
Fans of smoky whisky, I think you might find Hakushu 12 years old to your liking. They call Hakushu a "green and fresh" whisky, and it is very much a spot-on description. This whisky has a pleasing aroma that is reminiscent of the forests of its birthplace. It has more of an herbal palate with just a touch of fruitiness, and it has that smoke you expect from a good whisky. The Hakushu 12 year is one of the best Japanese Whiskies you can get under $100. Be prepared to fall in love with this whisky.
Yamazaki 12 years old(~$85)
Image from // andersnoren
Yamazaki is the number 1 single malt whisky in Japan for good reason! This whisky gets a lot of its character from the use of vanilla, citrus fruits, and Mizunara oak. Yamazaki 12 year is a light bodied whisky that is comparable to a fruitier Highland whisky. It is worth a taste if you can find it near you.
About the Author
Kellie – Head of Content Creation
Creative Director | Web Designer | Blogger | Sake Enthusiast | Resident Ginger


text:
Quick access to all product information.
Here you'll find the specialist dealerships near you.
Exciting and demanding job and training opportunities in a company whose goal is to be 'different from and better than the others'
With our education and training offerings, we want to provide you with exciting content – all about Dornbracht.
Additional brochures
Your shopping cart is currently empty.
Order or download free brochures on our products and series.
Maro stands out. Whether as a single-lever mixer that manages without an additional rosette, or as a two-hole mixer with angular, individual rosettes. The square spout head is simply unmistakeable.
In direct contrast to its integrated functionality. Which habitually makes its presence felt naturally and unobtrusively. The aerator is incorporated flush into the head of the fitting and is therefore virtually invisible.
Everything about Maro is geared to the specific requirements of the kitchen: the projection and the pivoting spout ensuring ergonomic working.
235 mm projection
Dornbracht Americas Inc.
1700 Executive Drive SouthSuite 600Duluth, GA 30096
Tel. +1 800 774 1181 +1 770 564 3599
Fax +1 800 899 8527
e-mail: email@example.com
This site uses cookies and other tracking technologies to assist with navigation and your ability to provide feedback, analyse your use of our products and services, assist with our promotional and marketing efforts, and provide content from third parties.
Cookies and privacy statement


text:
Review by Tim Johns
'Christian Faith and secular culture exist in complex interrelationship'… Grant explains the Church's need to recontextualise a biblical understanding of sex and marriage, in order to regain its authority and effectiveness as a 'counterformative' community. He provides a comprehensive framework through Genesis and Aristotle's relational characteristics of 'affection, mutual benefit and a shared commitment to the common good', drawing on the insights of anthropologists, philosophers, sociologists, biblical scholars, ethicists and neuroscientists. He builds on the premise that our imagination and sense of identity are formed by the cultural norms of our age. Our desires and aspirations are not just biological instincts, but are learned and embedded in the cultural patterns which shape us and which construct 'modern social imagery'. In an accessible way, full of human touches, Grant takes the reader on a compelling journey, mapping the stages of separation which have disembedded sex from its original contexts. He explains how we got to the present situation and why it matters.
In our quest for personal identity, Grant critiques the post-modern phenomena of radical authenticity, expressive individualism and the unconstrained freedom to choose. He recognises the contours of authenticity and how these tap into a legitimate Christian search for truth and transcendence, experiencing things as they really are. However, personal resonance and self-discovery, without deep transformation, are a subtle counterfeit, in a society which urges us to make peace with ourselves, without making peace with God. Which is the primary text: our lives or the gospel narrative?
Grant displays a gripping use of metaphor, simile and analogy to lay out his arguments and make perceptive diagnoses. Today's sexual landscape is likened to the temptations of 'off-piste skiing' in Whistler, leaving the safe infrastructure of lifts and runs, to 'follow the prevailing wisdom which says, "Find your own way…"' Yet these mountains are no place for a creative novice! He also looks at the science of attraction and infatuation, and the neurotransmitters released, which are as powerful as cocaine. Love is both a feeling and a choice.
With religion embedded in a social environment, it is influenced by a 'parade of infinite choice': our pervasive 'secular liturgies' and 'cathedral-like shopping malls' fuel a rampant consumerism and offer the false hope of redemption and human flourishing through acquisition, novelty and change; the rising tide of a multi billion-dollar cyberporn industry is far-reaching; there is an over-emphasis on youth and early sexual fulfilment; the proliferation of on-line dating puts our trust in sophisticated algorithms, by-passing the intuitions of romance and traditional filters of friends and family; we seek to solve the human condition through 'anaesthetics'. Furthermore, given a flat, atomised worldview, we are encouraged to operate in an existential way, seeking fulfilment and free from dependency on others. Transcendence has come to be redefined as reality 'within ourselves', not above or beyond, as in God. Sex has been detached from religion, trivialised and emptied of depth and significance, yet it is 'a sacramental window onto the kingdom of heaven', reflecting the 'divine dance' of the Trinity and a 'key battleground for Christian formation'.
In exposing the fault lines of modern sexuality, the author shows how the Church has struggled to address this new moral ecology, by focusing on clarity of belief rather than quality of spiritual formation. It has absorbed many of the perspectives on sex and relationships, reflecting the surrounding culture, rather than transforming it. In alerting us to the 'virtues, vocations and purposes' of Christian sexuality, Grant asks that, rather than 'putting out "Do Not Walk on the Grass" signs', the church helps us to 'mark out the boundaries of the field so that the game of life can be played well, with conviction and satisfaction.'
Relational reconciliation and personal change are imperatives of the gospel for all. He believes that the 'vocations of singleness and marriage play complementary harmonies within God's master score', both embracing concepts of 'sacrifice and satisfaction'. Marriage has a 'centripetal force', while single people form a broader network to reach out and enlarge the household of God. He also looks at the genetic makeup of the marriage covenant, imaging Jesus's love. A distinction is made between our 'physical' and 'affective' sexuality, whereby sexual desire does not equal desire for sex. Christians need to smash the elusive idol of the 'perfect partner' too, since the way to the Promised Land will always pass through Sinai.
This is an exceptional book, addressing a largely unspoken aspect of church life, which dominates our daily lives. It is thoroughly readable and charts a new course for action. Within our hyper-sexualised society, attending to people's sexual and relational lives must be a critical and compelling part of effective discipleship.
The book is available on Amazon here.
Tim Johns is an educationalist who spent 23 years as a Headteacher, was formerly the Chair of the Independent Association of Prep Schools and a Trustee of EXPLORE.Share this post on your network
Category: News and ReviewsMay, 2016


text:
26 January 2020
Moscow: 18:44
London: 15:44
Consular queries:
+44 (0) 203 668 7474
Pages: ««« :: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 :: »»»
Ambassador Yakovenko's remarks at Joseph Brodsky unveiling ceremony (Keele University, 6 June 2016)
Not without a slight amazement have I read in the Herald from 11.05.2016 about a "fracking expert" claiming that "the only real winner of this (non-fracking in Scotland) is Vladimir Putin".
Every May on this day we pay tribute to our war dead, to all those who sacrificed their lives in the fight against fascism.
UNESCO' Role in Safeguading and Preserving Palmyra and other Syrian World Heritage Sites
On 31 March, Russia circulated in the UN Security Council a draft press statement, emphasizing the need to ensure that the Syrian talks in Geneva are inclusive. The main purpose of this document was to underline that all opposition groups should join the negotiations, including the Kurds. Unfortunately the Western members of the UNSC, including UK, blocked the draft by proposing amendments that run counter to the spirit of the statement. Such a position is regrettable, especially as it contradicts the International Syria Support Group's decisions and provisions of the UNSC Resolution 2254. This step is even harder to understand, since it came from our Western colleagues. Probably it was a result of the pressure by regional players, some of whom still prioritize their ambition to have a Sunni government in Syria.
Sir, In his otherwise brilliant analysis "The self-induced twilight of the west" (April 4), Edward Luce has got some things wrong. Particularly, he is uncritical of the US military's allegation of the Russian Air Force "weaponising refugees" with no evidence provided. It is well known that the exodus of refugees from Turkey to Europe started well before we intervened militarily on September 30 2015.
For quite a while the British Government has been referring to perceived Russia/the Kremlin's interest in the Brexit debate. Unfortunately, Oliver Kamm makes the same point in the Times ("Brexit would play into the hands of Putin", 21 March).
What all the pronouncements of this sort have in common is the claim to know better than the Russian Government where our national interest lies and what our policies are. By the way, the "Pravda" hasn't been speaking for the Russian Government for the past 30 years.
Dear Friends,
It gives me pleasure to congratulate you on the opening of the "Russia and the Arts: The Age of Tolstoy and Tchaikovsky" exhibition dedicated to the 160th anniversary of the State Tretiakov Gallery. This exhibition is yet another evidence of a profound connection between our cultures.
Russia and Great Britain gave the World a plethora of great artists and works. In our country, works of William Shakespeare, Charles Dickens, William Thackeray, Bernard Shaw, Arthur Conan-Doyle and other British classics are widely known. I know that in Britain they take no lesser interest in writings of Leo Tolstoy, Fyodor Dostoyevsky, Anton Chekhov or music by Piotr Tchaikovsky and
Dmitry Shostakovich. The new BBC version of Tolstoy's "War and Peace" is a great example of such continuing mutual fascination.
Media question: Speaking the other day in Hamburg, Prime Minister D.Cameron referred to the perceived "Russian threat" as a reason for Britain to stay in the European Union, whatever the outcome of the alleged "sham" talks on EU reform and terms of British membership. What would you say on such a disingenuous attempt to win the upcoming EU referendum on Russia's back?
' Answer: It became fashionable ever since the Bush Administration's "axis of evil" to juggle with such a "troika" of threats to meet domestic and foreign policy objectives. As to our British partners, they made us part of the construction comprising "Islamic State" and Ebola. Now, like in the Lego kids game, the Ebola brick is replaced with North Korea. And the reason is our differences over Ukraine. As to the Crimea, it is a reunion. As to East Ukraine, the people are fighting a nationalistic regime for human rights of the minorities and an autonomy. All of it is about Ukraine and has nothing to do with the Baltic or any other states. So, the notion of a "Russian threat" to Europe is a false one. The real and immediate threats to Europe are different, those are the Eurozone and migration crises. Russia has not got anything to do with neither of them.
The attempts to drag Russia into the British domestic debate on whether to stay in the EU does not make credit to the present Tory Government. We just wonder what other domestic problems the Government would wish to resolve at Russia's expense.
Russia and the United Kingdom - these two powers, for centuries, have been tied into the most complicated relations: enemies at one time, and yet allies and cooperators at another. But now the temperature between the two is steadily going down, with Britain leading the anti-Russian sanctions and, just recently, coming out with allegations of Moscow's involvement with a death of former FSB agent Alexander Litvinenko. What's pushing London to make such statements? Does the Cold War-like vector of Cameron's policy resonate with public opinion? How much is this public opinion is shaped by the voice of mainstream media? And, finally, is there a hope for a thaw? We ask the Russian Ambassador to the UK. Alexander Yakovenko is on Sophie&Co today.


text:
Search content on the EO website.
Forgot Username/Password
An Entrepreneurs' Organization Program
Apply for the Program
Send me more information
Apply Online for the Accelerator Program
Get information about the Accelerator Program
Conditions of EO Membership Application and Renewal:
Every member who applies or renews their membership agrees to comply with the Policies and Procedures,
Bylaws and Code of Conduct of Entrepreneurs' Organization. Current members must complete the online renewal form
acknowledging review of the organization's Policies and Procedures, Bylaws and Code of Conduct.
Fill out the contact information below to receive EO's newsletter.


text:
Hello everyone!
Among others, I'm a food lover - I especially love sweets.
I could literally live on just sweet things.
I guess I'm not the only one, am I?
So I thought to make a page inspired by a beautiful photo that I found at Pinterest,
which features a fruit cake, that looks yummy and full of taste!
If you want to see more details of my page, please visit the 13 Arts Blog!
My title is from the 2 Crafty Chipboard Mini Words Set 1
Products used:
I hope you liked my page!


text:
Michał Kazimierz Kowalczyk
Import your Skype account data on MacOS
There are moments in your life, when you want to start everything once again... One of them is called an installation of your MacOS on new Hard Drive Disk. You can use Migration Assistant to help you import lot of things, but... if you don't want to use it, you'll find recovering your personal Skype data (chat histories, contacts, favorites etc.) really hard.
I found at this website: https://support.skype.com/en/faq/FA181/how-do-i-back-up-my-contact-list-on-mac-os-x an information that the Skype data are stored in:
/Users/---your-account-name---/Library/Application Support/Skype
Unfortunately this guide is not up-to-date (as well for my operating system: Mountain Lion (10.8.2) as for my Skype 6 (184.108.40.20668)). In my case, to achieve my goal, I needed to replace the file main.db (which is placed in a directory named by my Skype identifier) by equivalent file from a copy of my files. Below I present a simple guide how to do it.
On newer version of MacOS Library directory is hidden, so I suggest to use Terminal (Application/Utilities/Terminal) to access it.
First, get root privileges. Type in the Terminal:
sudo su
Then type your administrator password. You should see something like this:
Now, go to Library/Application Support:
cd /Users/---your-user-account-name---/Library/Application\ Support/
If you didn't run Skype yet, there will be no Skype directory in Application Support (you can check it by typing "ls"). When you'll run Skype, you'll be sure that Skype direcory exists. You can get into it by typing:
cd Skype
Now, if you did log in on your Skype account and type "ls", you'll see directory named by your Skype identifier. If you don't see it, it means that you didn't logged in on Skype on your account. After you'll do it, quit Skype application and get into that directory:
cd ---your_skype_identifier---
Now, type "ls -l". This will show you list of files inside this directory. To import your data you need to simply replace the file "main.db" with equivalent file from your user data copy. You can do it by:
cp ---path-to-copy-of-Users-directory---/---your-user-account-name---/Library/Skype/---your-skype-identifier---/main.db main.db
The last thing that you can do is change the owner of new copy of main.db file. Type:
chown ---your-user-acount-name---:stuff main.db
Now, after you run Skype and log into your account, you should get all the personal data from your copy. (-:
Necessitas: using OpenGL ES 2.0
Once, I had to work with a QGLWidget. I needed to display something on my tabet with a high speed. To understand how to obtain hardware acceleration I thought that probably I have to use OpenGL with which I wasn't familiarised.
Necessitas is supporting OpenGL (as announced Bogdan Vatra here). But we need to make it more specific. Necessitas currently (vesion 0.3.4) supports OpenGL ES 2.0. This fact really narrows all the knowledge: articles, tutorials, examples about OpenGL that you can find on Internet. Someone found the way of using OpenGL ES 1.0 (more information here) but he claims that is not the most optimal solution. That's why I decided to use OpenGL ES 2.0.
After long time of searching of good example how to use OpenGL ES 2.0 in Qt projects I found this example. To make it easier for you, I provide it in Necessitas project. I have to admit that in my opinion it is not the best example to learn anything but still it's good presentation of technology.
The problem with this example (besides that its quite complicated) is that is not fully compatible with Necessitas. I can't say that it doesn't work perfectly everywhere but in my case there were some problems. The biggest one was displaying user interface elements with rendered image at the same time. They are just invisible.
After reading lot of articles to understand how does it work, I created my own, light example. You can see that this is typical Necessitas project, previous one was created just for Qt.
At the form you can find QDial and QWidget promoted to QGLCanvas. In MainWindow's constructor you can find that signal valueChanged(int) of QDial will be send to setAngle(int) - slot of QGLCanvas. And that's the end of non-GL things.
My goal is not making tutorial about OpenGL ES 2.0 but give you some knowledge to start with it. So, let's start with important notions:
Vertices are describing how our 3D object is created. In general, each vertex is a triple (coordinates: x, y, z). Sequences of vertices are creating an object. In OpenGL ES 2.0 we are limited to use maximally 3 vertices per plane (so we can create triangles but we cannot create squares). Read more about vertices.
In our case, we create a plane of shape of rectangle. We need 2 triangles, each of them consists of 3 vertices and each vertex contains 3 coordinates, so we need 18 coordinates to describe it.
Next thing are texture coordinates. They say us how object will be textured. Read more...
In some situations, we need normals (normal vectors). They are special vectors which are perpendicular to planes. Read more...
Now, let's take a look on shaders. Shaders are special programs that are used for doing calculations for rendering processes. Read more...
In case of OpenGL ES 2.0, there exists special shading language. You can find its specification here.
And, the last but not least, uniforms. Uniforms are special objects which are used to communicate your OpenGL application and shader programs. Read more...
In our case, an uniform is for example QMatrix4x4 object. We use it as a parameter for a shader. By a matrix transformations we rotate rendered object.
How typical QGLWidget is made? The most important methods that we are using are initializeGL () and paintGL (). As you can suppose, in first one we do all the things that we need to do before we draw anything (for instance we define shaders). In second one we describe what and how we will draw.
Each OpenGL statement used for drawing should be placed between beginNativePainting () and endNativePainting () - methods of QPainter.
Before drawing the rectangle, we call:
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
In this way we clear previous rectangle that we drawed.
To execute paintGL () method we need to call:
updateGL ();
You will find quite important this line in constructor:
setAutoBufferSwap (false);
Without it display is blinking.
For now it's all. I hope it's sufficient to understand my example. If you have some questions, comment this article or contact me. If you would found some better sources of knowledge about notions that I presented here, please, share it.
--- update ---
Claude LRV found that to use OpenGL at your project, you need update Package Configuration settings. You need check QtOpenGL library at Project -> Run Settings -> Package Configuration -> Libraries. What is interesting in my case it happens automatically all the time (I'm using Necessitas for MacOS and I guess this is the reason). To learn more, see comments.
Necessitas: solution for lack of Camera support
In this article I will present my solution for using Camera in Necessitas (Qt on Android) projects. In current version of Necessitas (0.3.4) Camera is not supported. I was looking for existing solutions but the only one that I found in a patch for using MultimediaKit (proposed by dr. Juan Manuel Sáez) was related to old versions of Necessitas. I tried to use it but it seemes that old versions are now unstable (NecessitasQtCreator is crashing during building project).
I decided to use JNI to have an acces to Camera (with a little help of Java (-: ) in Qt Application.
I created two classes CameraSupport:
First class is really simple and doesn't contains anything special (maybe using additionals buffers is something not typical). To build it we need Android SDK level 11 (or higher). If you prefer use lower levels of SDK, you can simply delete lines containing preferredPreviewSize.
Second class is little bit more complicated, because:
I little explained how to communicate C++ and Java classses in previous article. In this article I will use my previous solution.
I was looking for long time an optimal way of decoding YUV image to RGB. I was using formulas which I found at Wikipedia (I chose bitwise version). To make it better I done all calculations before and I put results into arrays but still I was using clamping function. I found nice idea how to make it better in an article Optimizing YUV-RGB Color Space Conversion Using Intel's SIMD Technology of Étienne Dupuis. He suggested removing clamping function and use instead of it predefined array with proper number of zeros at the beginning and 255s at the end. It was the end of my optimization. If anyone has idea how to make it better, please share it.
I guess the first time in my life I felt a need of threading something (yes, I'm quite young (-: ). The result of my work you can find in C++ class. I created it in this way to work with optimal number of threads. I discovered that because pre-emption one thread is doing its job much longer then other. I invented solution that don't divide data into 2 exact size portions (in case of 2-cores procesors) but gives each thread smaller portions and if thread finished its job and there is still some data to retrieve, it takes next portion. Of course, I you have better solution or you found some error, please contact me. (-:
I won't analyse here all my code, I just show you how to use it.
First, copy these files (you can find sources here) to your project (respectively to paths):
Second, add existing files to your Necessitas project.
Third, place this code into your header file of MainWindow class (or other):
#include <QTimer>
class CameraSupport;
#define MILISECONDS_FOR_REFRESH 1
#define WIDTH 640
#define HEIGHT 480
In my case, I use frames with resolution 640 x 480. On my tablet it works with 30 FPS. If you want have another resolution, just change above values. You can find in Application Output in moment of Camera initialization a line like this:
V/CAMERA SUPPORT(30977): Preferred preview size - 1024x768
which says what is preferred size of a frame (remember that you need Android SDK 11 or higher to get this information).
In private section add this code:
QTimer *timer;
QImage *frame;
CameraSupport *cameraSupport;
bool repaint;
unsigned int totalFrames;
unsigned long long *frameTime;
unsigned int currentFrame;
unsigned int fps;
unsigned long long frameCounter;
clock_t time1, time2;
First, we need QTimer to get frames with a proper frequency. Of course in case of big frames, time of retrieving is so long that time between getting new one can be really small. But still, in case of small images it's good to set this time longer.
Second, we need QImage to use data frame in Qt application. If you prefer other image containters, if they support loading data from RGBA array, you can use it as well.
Third, we need CameraSupport object to ask it about new frames and if there is one to get it.
To avoid painting the same frame I use repaint flag.
Below repaint variable you can find some diagnostic variables to calculate FPS, count time of execution of parts of code etc.
Now, let's add into protected section:
void paintEvent (QPaintEvent *event);
We will use this method for displaying frames.
The last thing that you need to add into your header file is a slot for QTimer:
private slots:
void updateFrame();
Now, let's modify cpp file. In place where you want to start using your camera (in my case in constructor) put this code:
timer = new QTimer (this);
connect (timer, SIGNAL (timeout ()), this, SLOT (updateFrame ()));
timer -> start (MILISECONDS_FOR_REFRESH);
frame = 0;
cameraSupport = new CameraSupport (WIDTH, HEIGHT);
repaint = false;
totalFrames = 1000 / MILISECONDS_FOR_REFRESH;
frameTime = new unsigned long long[totalFrames];
for (unsigned int i = 0; i < totalFrames; i++)
frameTime[i] = 0;
currentFrame = 0;
fps = 0;
frameCounter = 0;
time1 = time2 = 0;
I guess, this code is quite clear, there is nothing special to explain. So now, let's define updateFrame () slot:
void MainWindow::updateFrame (){
clock_t start = clock ();
bool result = cameraSupport -> UpdateFrame ();
clock_t stop = clock ();
if (result){
if (frame != 0){
delete frame;
frame = 0;
frame = new QImage ((unsigned char *)cameraSupport -> GetRGBA (), WIDTH, HEIGHT, QImage::Format_ARGB32_Premultiplied);
repaint = true;
time1 += stop - start; update (0, 0, WIDTH, HEIGHT);
frameTime[currentFrame] = clock();
while (frameTime[currentFrame] - frameTime[(currentFrame - fps) % totalFrames] > CLOCKS_PER_SEC)
if (currentFrame < totalFrames - 1)
currentFrame = 0; }
Method UpdateFrame () from CameraSupport class returns true if new frame was loaded or false otherwise. To create QImage with new frame we just use method GetRGBA () from CameraSupport class. Notice that I use format QImage::Format_ARGB32_Premultiplied for my QImage. In my case, I display frames on a screen by using QPainter. Format that I chose makes some QPainter operations faster than QImage::Format_ARGB32.
Now, let's define painterEvent (.):
void MainWindow::paintEvent (QPaintEvent *event){
if (!repaint)
repaint = false;
if (frame){
time2 -= clock ();
QPoint topLeft = event -> rect ().topLeft ();
QPainter displayPainter (this);
displayPainter.drawImage (topLeft, *frame);
time2 += clock ();
qDebug () << frameCounter << ": " << time1 / frameCounter << ", " << time2 / frameCounter << ". FPS: " << fps ;
We must remember about cleaning up memory that we allocated! In case of my project, you can find in the destructor these lines:
delete cameraSupport;
if (frame != 0)
delete frame;
frame = 0;
delete []frameTime;
If you are using JavaClassLoader function from my previous article add these lines:
const char* className = "pl/ekk/mkk/necessitas/CameraSupport";
jclass clazz = env -> FindClass (className);
if (!clazz){
__android_log_print (ANDROID_LOG_FATAL,"Qt", "Unable to find class '%s'", className);
return JNI_FALSE;
jmethodID constr = env -> GetMethodID(clazz, "<init>", "()V");
if (!constr){
__android_log_print (ANDROID_LOG_FATAL,"Qt", "Unable to find constructor for class '%s'", className);
return JNI_FALSE;
jobject obj = env -> NewObject (clazz, constr);
cameraSupportClassPointer = env->NewGlobalRef(obj);
Also, add outside the function this line:
jobject cameraSupportClassPointer;
Variable's name is important because it's used in CameraSupport class. If you are using another solution to load Java classes, remember to create this object.
Now, your project should work with Camera on Android! But there is still something to do. You can notice that paiting QImage takes lot of time. To make it faster we can take advantage of hardware acceleration by using OpenGL. Simply add to your *.pro file this line:
QT_GRAPHICSSYSTEM = opengl
And that's all!.
Now, the question is: is it possible to make it better? I guess it is!
First thing which I would change is a way of displaying frames. This inconspicious operation takes a lot of time. I found an article: How to get faster Qt painting on N810 right now which could be helpful for you.
Another idea is to use own version of QPaintEngine. Some clues could be found here: QGLWidget and hardware acceleration?.
I guess that there is not much things that can be done with YUV to RGB conversion. Maybe there exists better algorithm which do less read/write memory operations. I was thinking about setting two pixels in one time (by using unsigned long long int* instead of unsigned int*) but it will be better only in case of 64 bits architectures. You can always write some part of your code in assembler. If you want to look for more thriftiness you can try to find better solution for getting YUV data from Java.
The last night I found some technology which I never used before - OpenCL. Maybe this could be also useful for decreasing time of conversion YUV to RGB or for displaying frame on a screen? Anyone has some experience with this?
The last but not least - quality. If you want better quality of video frames (after conversion YUV to RGB), consider recalculating precalculated arrays. It is really important to notice that lot of algorithms requires that Y will be in range of <16, 235> and U, V will be in range of <16, 240> (YUV / YCbCr color componet data ranges) while what you really get is <0, 255> for all components. You can read more here: About YUV VIDEO.
If you has some ideas, found some errors or just found this article interesting, please share with me your opinion.
Necessitas: convenient solution for communication between Qt application and Java
This is my first article about Qt / Necessitas / Android / JNI, so if you will find some error or have some ideas, please, contact me. I didn't use these technologies before. Everything what I present, works with my software configuration: Qt 4.8.0, Necessitas 0.3.4, Android 3.2.
In this article I will present my solution for using Java in Necessitas projects. As far as most of you know, to use Java code in C++ applications and vice-versa, you need to use Java Native Interface (JNI). This technology is used in Necessitas projects and you can find it for example in file qtmain_android.cpp located in: necessitas/Android/Qt/{{VERSION_OF_QT}}/armeabi-v7a/src/android/cpp. In my case, {{VERSION_OF_QT}} is 480. This file is included to your projects during building process.
We can say that qtmain_android.cpp is the most important file for JNI in your project because it contains JNI_OnLoad(.). This function is the only one which is allowed to load any Java class, so this is the only place in your application where you can load these yours. Of course, it's possible to load Java classes in other functions, but you are limited to use only some of these from java.* package.
I found an article (little bit vague for me) which deliver some solution for this problem: How to use Java from Qt/C++ in Necessitas.
There is no code example but fortunately I found this: QT in Android -- Example for accessing the GPS Service.
In both cases, authors are changing qtmain_android.cpp file. This approach has two disadvantages:
Let's deal with first two disadvantages. It's hard to create special class which would be good for all possible applications ((-: ) so we need to find another solution. Let's make little changes in qtmain_android.cpp file.
Firstly, add this line before JNI_OnLoad(.) definition (of course outside bodies of functions!):
extern int JavaClassesLoader (JNIEnv* env);
Secondly, put this code into JNI_OnLoad(.) defintion:
if (!JavaClassesLoader (m_env)){
__android_log_print (ANDROID_LOG_FATAL, "Qt", "Couldn't register user defined classes!");
return -1;
Notice, that we use m_env variable so we need to put it below this line:
m_env = uenv.nativeEnvironment;
Thirdly, we need to remove static key-words at this two lines:
static JavaVM *m_javaVM = NULL;
static JNIEnv *m_env = NULL;
And that's all what we need to change in qtmain_android.cpp file.
Now, let's add file which will load our Java classes. In NecessitasQtCreator choose File -> New File or Project -> (Files and Classes) C++ -> C++ Source File -> Choose... Set a Name to JavaClassesLoader.cpp, click Continue and after Done. Fill your file with this code:
#include <jni.h>
#include <android/log.h>
jobject classPointer;
int JavaClassesLoader (JNIEnv* env){
const char* className = "pl/ekk/mkk/necessitas/YourClassName";
jclass clazz=env->FindClass(className);
if (!clazz)
__android_log_print(ANDROID_LOG_FATAL,"Qt", "Unable to find class '%s'", className);
return JNI_FALSE;
jmethodID constr = env->GetMethodID(clazz, "<init>", "()V");
if(!constr) {
__android_log_print(ANDROID_LOG_FATAL,"Qt", "Unable to find a constructor for class '%s'", className);
return JNI_FALSE;
jobject obj = env->NewObject(clazz, constr);
classPointer = env->NewGlobalRef(obj);
return JNI_TRUE;
I guess that you already know that to use multiple Java classes in your project, you just need to create other jobject classPointer, copy-paste code of JavaClassesLoader(.) function (without last line!) and change value of constant className.
To use different constructor than version without arguments, you need to set different method signatures (see more here). To set arguments values, just add them to NewObject (.) method.
But where should you place your Java file? In your project folder you have android/src/ branch. This is right localisation for your files. Notice, that your classes are inside packages, so you need to create folder trees corresponding to packages that you are using. After you copy your files you need to add them to Necessitas project (Add Existing Files).
Now we can use your Java classes in your project. Open your C++ filein which you want use JNI, put this four lines at its beginning:
#include <jni.h>
#include <qDebug>
extern JavaVM *m_javaVM;
extern jobject classPointer;
This will give us a way to use variables from previous files. To call JNI functions, you need to use this code:
JNIEnv* env;
if (m_javaVM -> AttachCurrentThread (&env, NULL) < 0){
qCritical() << "AttachCurrentThread failed";
jclass applicationClass = env -> GetObjectClass (classPointer);
if (applicationClass){
//Communication between C++ and JAVA!
m_javaVM -> DetachCurrentThread ();
That's all! Now you can use your Java classes in more customized way! (-:
I hope that I explained it quite clearly. If your C++ files cannot find variables from different files that we changed, please clean your project (Build -> Clean Project...).
If you still have some problem, I attach small example.
If you want, you can try to use #ifdef, #define and #endif in qtmain_android.cpp to easily turn on and turn off using JavaClassesLoader(.) in your projects.
But... still we have a third disadvantage... I have to admit that I didn't found a good solution for that. Here, I present an effect of my research, I hope that someone will find some good way to deal with it.
It is possible to access to Java Virtual Machine without changing qtmain_android.cpp file (so we don't need to do third step).
The biggest problem is how to use JavaClassesLoader(.) function outside qtmain_android.cpp file, or in another words, outside JNI_OnLoad(.) definition. You can find an explanation of this problem here: FindClass failed.
I tried to use this solutions: Using JNI from a Native Activity, but unfortunately FindClass method can't find java.lang.ClassLoader, so it seems to be useless for us.
Well, for now, that's all. If anyone will find some solution for third disadvantage or want to discuss about my solution for first one, please contact me.