text:
Privacy Policy
1 Collecting information on the Website
When you make a review of a company, we collect the information you state in the review, including which company you review, which purchase(s) the review concerns, and how you evaluate the company.
The Website uses cookies. Cookies are digital information which is stored on your computer. The cookie does not identify the individual user but the user's computer, and it is used for different purposes.
2 Disclosure of personal data
Other information
Other information provided by you on the Website, including photos and reviews, are automatically made available for other users of the Website. In some instances, the companies you review will also receive information about your review.
Disclosure to other services
A main purpose of Infinite Reviews is to increase the exposure and the availability of the reviews made on the Website. Hence, we permit other services to show the reviews created on the Website thus increasing other consumers' knowledge of your reviews.
Other disclosure
Infinite Reviews may be required to disclose information by a court order from a competent court of law or public authority in accordance with the existing legislation.
3 Data processor
By accepting this personal data policy, you accept that Infinite Reviews also allows the data for which you are the data controller be processed by the same data processor.
The data processor has made necessary technical and organizational safety measures against the information being accidentally or illegally destroyed, lost or deteriorated, and against the information coming to the knowledge of unauthorized persons, is misused or in other ways is processed in violation with the act on processing of personal data. On your request – and against remuneration of the data processor's current hourly rates at any time for such work – the data processor shall supply you with sufficient information to demonstrate that the above-mentioned technical and organizational safety measures have been made.
4 Security measures
Infinite Reviews will see to that the recorded data, including the personal information, is handled carefully and protected properly following the currently applicable safety standards. Infinite Reviews regularly audits its system for possible vulnerabilities and attacks. However, since the internet is not a 100% secure environment, Infinite Reviews cannot ensure or warrant the security of information you transmit to Infinite Reviews. Emails sent via the Website are not encrypted, and Infinite Reviews therefore advises you not to communicate any confidential information through these means.
5 Cookies
This website uses cookies and similar technologies. In the following we describe what cookies we use and for what purposes.
By using our website you accept that we use cookies as described in the following.
What is a cookie and similar technologies?
Cookies are small information units which the Website places on your computer's hard disk, on your tablet or on your smartphone. Cookies contain information that the Website uses to make the communication between you and your web browser more efficient. The cookie does not identify you as an individual user but identifies your computer.
There are two types of cookies – session cookies and persistent cookies. Session cookies are temporary bits of information which are deleted when you exit your web browser. Persistent cookies are more permanent bits of information that are stored and remain on your computer until they are deleted. Persistent cookies delete themselves after a certain period of time but are renewed each time you visit the website.
The Website uses session cookies and persistent cookies.
What type of cookies do we use and for what purposes?
We use cookies for
– Statistics:
Measuring Website traffic i.e. number of visits on the Website, which domains the visitors come from, which pages the visitors visit on the Website and in which overall geographical area the visitors are located.
– Improvement of the functionalities of the Website:
Optimizing your experience with the Website, which includes remembering your user ID and password when you return to the Website so you do not have to log in again.
– Quality assurance
Ensuring the quality of reviews and to prevent misuse or irregularities in connection with writing reviews and using the Website.
6 Access, correction and deletion
Requests regarding the above shall only be processed if more than 6 months have lapsed since your previous request, unless you can substantiate a special interest in obtaining the information earlier.
Correction and deletion
If you discover that the information which Infinite Reviews as the data controller process on you is incorrect or misleading, Infinite Reviews shall make the correction hereof on your request. We recommend that you – if possible – make the correction of such errors yourself.
When your profile is deleted, all the data associated with your user profile is deleted, including your master data and reviews on the Website. If you delete a review on the Website, the review is permanently deleted.
Infinite Reviews reserves the right to block the access to your profile and/or delete your profile, if the profile or the content of your profile on the Website in our assessment is discriminating, racist, sexually oriented, unethical, threatening, offensive, harassing or in other ways violates the legislation, third party rights or the purpose of the Website. If we block the use of your profile, you shall be informed hereon, as well as on the reason for blocking the access, by email to the address you have stated in your profile.
7 Changes in the privacy policy
Infinite Reviews may at any time and without notice make changes to its privacy policy with future effect. Infinite Reviews shall inform the users of the Website of such changes when the users log on to the Website. You agree that the continued use of the Website after any posted modified version of the Privacy Policy is your acceptance of the modified Privacy Policy.
8 Inquiries regarding the Website or the privacy policy
In case of inquiries regarding Infinite Reviews privacy policy, our processing of personal data, correction of data or your relations to us in general, you are welcome to contact Infinite Reviews on the following address:
17 Barracks Square,
Barracks Road,
Or call us on: 03333 44 77 55


text:
I recently ran into a woman I hadn't seen in a few years. We're both addicts, and she had been in and out of abstinence and sobriety for a long time. She looked great and I told her so.
"What's made the difference?" I asked.
"Painting most days," she said. "It makes me so happy. I don't worry about making great art. I'm not out to sell it. I just like doing it and it keeps me grounded and sane."
I know what she means. Incorporating art-making into my daily life has made all the difference to my abstinence and sobriety. I get a daily dose of joy and full engagement and satisfaction. It engages my mind in learning and problem-solving; it satisfies the child in me (and there's one in all of us) who just likes to make stuff.
I started with coloring books, moved to drawing and painting. Took a few art classes from kindly and encouraging teachers. Now I have a studio at home and paint most days. I've no intention of becoming a professional artist. I give most of my work away. But I love the doing of it.
Not sure where to start? Check out my book, Sober Play: Using Creativity for a More Joyous Recovery.

subset: commoncrawl


text:
The Brain Injury Association provides information on brain injury, research, conferences, publications, prevention and education, survivors' voice, assistive technologies, and information and referral. Phone: (800) 444-6443
Image for Brain Injury Association –
The Brain Injury Association of America (BIAA) is the country's oldest and largest nationwide brain injury advocacy organization.
BIAA's mission is to advance brain injury prevention, research, treatment and education and to improve the quality of life for all individuals impacted by brain injury. Through advocacy, BIAA brings help, hope and healing to millions of individuals living with brain injury, their families and the professionals who serve them.
The Brain Injury Association of America (BIAA)


text:
Ok folks, this is called http://multibikecrash.wordpress.com created to highlight the numbers of multibikecrashes round the world, so people 'can't ignore it', it is out in cyberspace.
Hopefully more cyclists will be more aware of this happening, and perhaps the laws can be tougher instead of them pandering to these dangerous motorists, who have no concern whatsoever about other people's lives. What they do with their own life is up to them but why should they inflict misery on others.
When I started this blog and Twitter account 'multibikecrash' I was amazed how many multiple bike crashes there were. In fact, it could well be the tip of an iceberg. I have never seen any books on the subject either and don't know the earliest multi-bike crash in history. I may have to consult the London Transport Museum for help and ideas.
I'd to know whether multibikecrashes are increasing, is this something that will be a regular occurance in the next century, if not earlier? Has it happened in the UK?
Already these massacres are not making national news,but they are often found in some local magazine, few people have heard of.
Hopefully it will encourage other cyclists to contribute to the Twitter account round the world so we will have more links of this happening.
The only ones I had heard about were the Mexican ones, and the Irish one. But are these stories not getting into the national media perhaps because there is no video or picture, some other odd reason, like they prefer to put Cheryl Cole over the frontcovers instead. The so-called broadsheets either ignore them or put them in a tiny paragraph. Many of these crashes will have no picture or video but I will put it up anyway. I don't think I will be able to get them all obviously but it will give people and idea of what's happening and maybe the Governments can find way to tackle this issue.


text:
Ever wanted to go crazy with colour but always get too scared? Tried using hair chalk but find it all a bit messy and too much hassle?
Well check this out, L'Oreal Professionel's answer to this: Its easy to apply and completely temporary making it perfect for a night out or for use on children without them getting in trouble at school.


text:
whats the most meaningful lyrics to you?
when you listen to that one song that you relate to on a different level, what are the lyrics, what do you feel, why do they mean so much to you?
7 Answers
- Aril DaineLv 69 months ago
~funny when you're dead how people start listening~i feel sad because it's true that people will only start paying attention to you as soon as something tragic happens to you.Source(s): if i die you by the band perry🐰
- dman63Lv 79 months ago
"Man has to be his own saviour" from "Silver" by Echo and the Bunnymen. At the time I heard it many years ago, it struck a chord with me. I was having some problems, and I had also met the woman who eventually became my wife. I had to stand up and make some decisions about where my life was going, and this song crystallized it. Years later, it's still a favourite for that reason.
- ElleLv 79 months ago
These lyrics are my story... Every word is perfect, I'm not. Color Me Badd, its all your's... WILDFLOWER...
- 9 months ago
(Remember in this game we call life
That no one said it's was fair) and (Just because you're winnin'
Don't mean you're the lucky ones) and (Everybody warms themselves
To a different fire) and (But everybody darlin' sometimes
Bites the hand that feeds) and (Funny how ev'rything was roses
When we held on to the guns) all from a forgotten song from Guns N' Roses Breakdown from 1991.Source(s): Vanishing Point Tribute by dsnitris2007 on YouTube
- What do you think of the answers? You can sign in to give your opinion on the answer.
- Anonymous9 months ago
runaway by kanye west, hits a lil different
- Anonymous9 months ago
mark e smith was known for having, basically, no singing talent whatsoever. he pretty much shouted his lyrics, often slurring the words, not infrequently to the point of being completely unintelligible. he didn't really keep great track of what the lyrics to his songs were supposed to be, and in various performances the words would sometimes change quite a bit.
i never heard that he played any instruments either. he may well have had no technical knowledge of music at all, for all i know. and yet somehow he ran a group, wrote his own lyrics, hired and fired musicians, and, somehow, he told them what to play
and somehow, over decades, he produced a hell of a lot of great music doing this. he also produced a lot of stuff that was basically unlistenable, to me at least, but it was always interesting to hear what he was doing
and somehow, even when his health was breaking down and he was approaching death in his early 60's, he still managed, from time to time, to put out tracks i still can't stop listening to, like "junger cloth." the lyrics seem semi demented, absurdist. he basically croaks them into the mike, but the backing music is solid. i can't really say why these meaningless lyrics impress me so much, but i'm not much younger than he was, when he died, so maybe that's got something to do with it
the lyrics, or what somebody thinks they are, are posted here, and there's commentary also about just what the heck he might have been talking about exactly, which i think is pretty interesting also
- SnoopyLv 69 months ago
I really liked relax don't do it when you wanna go do it.


text:
Mangaluru, July 14, 2018: A part of the old tiled roof of the old building of Ullal Railway Station collapsed on July 13, Friday; weak wooden scaffolding supporting the tiled roof is to blame in heavy rains.
The building had been abandoned and ticket issuing counter was shifted to a new building constructed next to the old building, said a senior engineer from the Palakkad Division of Southern Railway. The Mangaluru Railway Region, however, had sent a proposal to the Division to erect a new roof for the structure so that the building could be used as passenger waiting hall/ concourse.
Once the Division approves the Rs. 10 lakh proposal, the work would start and the passengers would get the benefit, the engineer said
Read other news
|Comments on this Article
|Manvi J A, bolar
|Sat, July-14-2018, 4:57
|Luckily the incident happened to take place after its been shifted else many would have been injured
|Anuradha S Amin, manglore
|Sat, July-14-2018, 12:13
|The government buildings most of the times lack maintenance.


text:
The best writing advice you'll ever find. Everyone I prescribe this to responds well to it.
Author: ZFSigurdson
In the Defense of Trash
I have been seeing a sentiment amongst writers that has sort of frustrated me. So here is my defense for both writing and reading trash.
Reliable Places of Inspiration – Travel, Food and Culture Shows
SO, I totally forgot to blog last week. Here is one for writers which I think will help. This will be an ongoing series for places I tend to go for reliable sources of inspiration when I'm stuck or need something in the background. With Netflix's new show Street Food it is the perfect time … Continue reading Reliable Places of Inspiration – Travel, Food and Culture Shows
Mid April Update: Ramblings… then a point about episodic storytelling
Well, I knew I should have drafted something earlier this week... What to talk about... Harder to say when I am actually doing really well with nothing to report. I am working away on the Blacksword Saga drafts. I'm trying to keep up the pace on them, but this forth episode is forcing me into … Continue reading Mid April Update: Ramblings… then a point about episodic storytelling
Project Announcment! The Blacksword Saga
SO! Here it goes! I am officially announcing my current writing project
Anthology Review: Love, Death & Robots
My review of the Netflix Original Series Love, Death and Robots. A brilliant anthology of animated science fiction schlock.
Monsters, Demons and Depression
My Horror Adventure and why I love to be scared. Well, I DID have a plan this week. I swear I did, but that one will take research. Then I kind of got knocked on my ass yesterday, but I don't want to keep going, "Hey guys, feeling like shit. Bye." So I'll actually make … Continue reading Monsters, Demons and Depression
Mid March Update
Shit... I agreed to keep doing this. I should really make a schedule... and drafts... I think I had a great idea for a blog and then I went to bed... and -poof- gone. I will admit to one thing. I've begun a project. Something I hope to continue through to publishing. That is all... … Continue reading Mid March Update
Why I Love Genre?
Because I like to break it! Oh shit, I guess I still agreed to do this weekly. This week was better, mostly because I kept busy with the Manitoban. Still not doing great but it's better than drowning. What the hell do I talk about? I guess I can talk about genre. GENRE! Genre is … Continue reading Why I Love Genre?
February 2019: What the hell?
I'm really not that okay... I guess I promised myself to do this weekly... I'll add the usual preface. My month was not your month. I am writing this entirely as a point of therapy for myself because well... writing does help. Screaming into the void does help. Just putting my thoughts and feelings into something readable allows me … Continue reading February 2019: What the hell?


text:
Filler - Bag-in-box High Volume
Click Image for Gallery
The WE High Speed Bag In Box Filler is the affordable way to get started in bag-in-box and pouch packaging. A good choice for micro winery production. This unique, counter top semi-automatic filler is fully adjustable. It can fill a wide range of bags and pouches (from 1 Litre up to 20 Litres) and accommodate most common tap openings. This high speed model is faster than our regular unit. It has a self priming, beverage friendly pump with a flow rate of 3 US Gallons per minute (11.3 Litres/minute). The WE BIB Filler's compact, drip-free design minimizes spillage.Just slide your bag or pouch into the sturdy neck holder, insert the filling nozzle and open the adjustable flow valve. Place the filler on a shipping scale or use a digital timer to determine your exact fill rate. Turn off the valve and snap in the tap – ready to fill the next one!
The optional gas purge feature allows you to inject inert gas (i.e., Nitrogen) into your bags or pouches prior to filling with your product. $100 extra.


text:
The Divisional Court of Ontario has quashed the Ford government's initiative that gives post-secondary students a choice to opt out of school services that are considered as non-essential.
The three-judge panel ruled that the Student Choice Initiative (SCI) announced by the province earlier this year "are inconsistent with the statutes enacted by the legislature in respect to governance of universities and colleges."
The Canadian Federation of Students and York Federation of Students filed a legal challenged against SCI in May.
The lawyers representing the student groups told the judges in October that the initiative threatens the autonomy of universities. The government maintained that students should have more choice as to which service they support. It also argued that the initiative enhances transparency,
Under the initiative, ancillary fees would be categorized as essential and non-essential. Some of the non-essential services include students' union and campus newspapers.
In the decision, it stated that the government failed to provide why some fees are essential, while others are considered non-essential.
Athletics, career services, health and counselling, and campus safety are categorized as essential.
Kayla Weiler, an Ontario representative of the Canadian Federation of Students, said in a statement Thursday that the decision confirms that SCI is unlawful and the province acted beyond their authority.
"Doug Ford's attempt to wipe out students' unions under the guise of giving students 'choice' has been exposed for what it really was: an attempt to silence his opposition," said Weiler.
Jenessa Crognali, press secretary for Attorney General Doug Downey's office, said the ruling is being reviewed.
"As this matter is in the appeal period, it would be inappropriate to comment," she wrote in an email.
-with files from the Canadian Press


text:
So.. Christmas is over, New Years Eve has come and gone, resolutions have been made (and are being kept) and now we are full into winter. I feel like I am hybernating big time. A snow storm is supposed to be hitting the midwest this weekend (we'll see if we get it) and I plan… Continue reading Winter Blues
Category: Candles
Mesmerizing Candle Light
It has been said that the effects of candles can help to sooth our soul. That the illumination of the candle light helps to reduce stress. I don't know how scientific this is but I know that when I turn off all my lights and light some candles I instantly feel more relaxed. It… Continue reading Mesmerizing Candle Light


text:
What is your full name? Grant W Goff
What are your future plans? What are you majoring in, if you are planning on attending a post-secondary school? I am planning on going to flight school to become a pilot.
What has made this year your best year? Nothing, well maybe leaving soon.
If you could give any advice to the underclassmen, what would you say? Try.
What class has been the most beneficial for you? Why? Applecare, it helped me find out how to help with computers.
What is something interesting about you that most people wouldn't know about you? I sail competitively.
Where do you see yourself in 10 years? I planned to be enjoying my career outside of Indiana.


text:
As I have said many times before, I am not political in the practical sense of the word nor am I religious. I profess to be Spiritual. It is like the quote of Gandhi, " God has no Religion". Unfortunately some religions are pure politics with rules and regulations that must be followed or you will go straight to "Hell". There is a quote from someone I cannot recall the name of. ~~ "To be religious is to be fearful of Death and Hell, ~~ to be Spiritual is to have already experienced Hell and do not fear death."
Even in a country with so much Spirituality as India, there can be found inhumanity. One reason for the inspiration of this post is a current case involving A doctor Binayak Sen who for years has been a doctor for the poor. He is an Indian Pediatrician and a public care specialist and a human rights activist. He has been found guilty of of treason while fighting for Human Rights. The government claimed in the process of his fight for human rights he was guilty of being associated with a banned organization against the government. He has been sentenced for life in prison. Amnesty International considers Dr. Sen to be a prisoner of Conscience.
Doctor Sen transferred to prison
Doctor Sen transferred to prison
What would Gandhi do if he were alive today?
Does this sound like Nelson Mandela all over again?
Gandhi is the poster child for non violence. He has always promoted unity of all people and protested with fasting and prayer. Never with violence. Is it not a shame that he had become a victim of violence to really make his point? He was assassinated with three bullets to the chest.
It seems that other leaders for unity and humanity including but not limited to Martin Luther King Jr. also fell victim to violence.
Think about it for a moment. ~~~ More people have been killed in the name of religions than in any war on the planet.
Remember, Violence can also be verbal and can cause even more pain.
Be the religion you already have inside you. The door to your church is your heart and soul. If you need to take your inner church to a building, so be it. Just know that Kindness, love and compassion does not come from sitting or kneeling on a pew. No matter how many Holy Communions you take or liturgies you hear, you have to reach inside for your attributes that help your fellow humans be better and non violent creatures.


text:
You have sexual imaginations in which the straponessa appears? The most uncommon secret desires can be embodied if you on the website "Fotomodeli". Here information on the prostitutes ready right now to arrive to you, having taken a strap-on. In St. Petersburg our resource - for the aid to all who are eager for a sexual variety.
Use of a dildo practices in not all couples. The average girl can even did not hear about the sex toy allowing the woman to be as a male with the naturalistic member. If you want to try such erotic extreme, order the relaxed prostitute.
Women of easy virtue will give pleasure of a pegging if the man is attracted by anal penetration with a strap-on. It is change of a role and feelings (and not necessarily a homosexuality indicator!), pleasure from impact on an anus, a prostate. Plus special psychological experiences.
The professional of erotic services can reincarnate in Madam that your meeting was filled with ecstasy in the spirit of BDSM. To feel in submission, to dump from itself a traditional "strong" image - you will be able to become a passive side and to enjoy in a new way already in the nearest future. Pleasure, fireworks of exotic feelings are provided!
For the man the strap-on will open the whole world of unique feelings with an anal orgasm. Pleasure differs from habitual pleasures of vaginal sex. Plunge into voluptuous libertinism with a strap-on. The visit to the prostitute begins with your choice of the offer on the website.
Sex from straponessy is interesting also to couples. The prostitute will satisfy both him, and hers. With a strap-on you will feel pleasures of lesbian sex, the whole spectrum of fresh feelings. At the order discuss erotic toy type, additional requirements, and everything will be in accuracy as you want.


text:
With incredible branding and excellent beer, Tin Man Brewing Company is out to change the way their city drinks beer… We just had to stop by for a beer (or 4).
Evansville, IN is about as midwestern of a city as you'll find… Good, hardworking folks who like to throw back a few cold ones after a hard day's work. The problem, however, is for far too long the fine drinkers of Evansville have been throwing back just your big-name brands and missing out on the flavor of a well-crafted IPA, stout, or even sour beer.
The Davidsons decided to do something about this lack of craft beer and opened Tin Man Brewing Co. on a stretch of road considered to be the former heart and soul of Evansville. Just so happens, the Davidsons have about every skill you need for a successful brewery with at least someone in the family being an expert at brewing, business, design, and, well, beer drinking. We toured their W. Franklin St. brewery and restaurant with Andy Davidson, "Vice President and Beer Drinker" and came away desperately wishing they sold Tin Man in our hometown.
[the_ad id="4952″]
The family's eye for style is apparent from the decor of the tap room to the can designs to the robot himself. Everything flows and works together for a cool, hip brand tucked into one of the oldest parts of Evansville.
Our time change meant it was a solid hour past our lunchtime, and we were ready to eat and drink. The menu is classic pub food with a few twists here and there to keep it interesting. We went for our standard pub order: a cheeseburger. Their burger menu, however, isn't just any old burger menu. They have damn near every topping and combination a human could possibly devise like this burger with blue cheese and buffalo sauce…
Our flights of beers were as delicious as the food. We always find it difficult to give a beer "review" because, honestly, we like practically all types of beer. Put simply, we'd re-order a full pint of any beer featured in our sampler.
So in terms of our "review"… The food is great. The beer is great. Let's move on.
What else makes Tin Man Brewing Co. so awesome… How about the way they brew?
Conservation is the name of the game at Tin Man Brewing, and thanks to their High Efficiency Brewing System, they get the absolute most out of their ingredients. The backbone of the "HEBS"? The mash filter which helps Tin Man produce their delicious beer using 40% less water and 15-20% less grain than other craft breweries.
[the_ad id="4952″]
Like many craft breweries these days, Tin Man uses aluminum cans instead of glass bottles for their finished product. Not only is an aluminum can more appropriate for a place called "Tin Man," it gives you a better beer and is better for the environment.
That same waste-not philosophy used in their production was also used in the creation of their incredible space. Instead of building from scratch, the Davidsons went to great lengths to preserve the historic building they occupy today. When the original floors had to be ripped out, they even used the old floorboards to make the tables in the tap room.
It all comes together to make Tin Man Brewing Co. one of the must-visit places in Evansville and the cornerstone of an area on the brink of revitalization.
Once a craft-beer desert, Evansville now boasts over half a dozen breweries and brewpubs with Tin Man Brewing Co. leading the way with their charge, "Ordinary beer does not compute."
Visit Tin Man Brewing Co.:
1430 W. Franklin St.
Evansville, IN 47710
Click here to find their beer near you.
More from our trip to Evansville:
Legendary Bosse Field: in a league of its own
Touring the LST 325: a D-Day hero turned pirate ship
Show Comments (1)
Comments are closed.


text:
Call Us Today 720.328.4372
Are you interested in how to lose weight? Have you tried all diets just to rebound or not look the way you do? We can help!
Takes an athlete to train others to perform at their best. Allow us here at MODEVO with our team of experts to get your ready for your event.
Looking to add some lean muscle without getting injured or gaining excess body-fat? Look no further as our trainers at MODEVO can help you in your journey of adding lean muscle mass.
We can ensure you will be ready for your special day, not only will you be glowing but feel fabulous for your wedding day.
I've never felt comfortable with my body. I would wear baggy clothes and hide my body as much as possible. It's been a year this month that I decided to make a healthy change mentally and physically. I can't thank you enough Modevo Fitness for guiding me, helping me and being there for all the ups and down this past year.
This is an awesome training facility for people who are serious about fitness and nutrition as well as people who are new to working out. The MOD-T45 challenges kick ass and produce results. Trainers are exceptional - easily the most knowledgeable I've ever worked with.
Modevo FIT has been life changing for me. I have done both the classes and the personal training. I have not been as small as I am now in close to 10 years. The truly awesome part though is that I have never been as strong, confident, or happy as I am now. Coming here has been one of the best decisions I've ever made.
It has been my 3rd challenge at Modevo Fitness. Trainers keep us motivated, there are helping us reach our goals by pushing us to our limits. Sierra & Alex (the owner's) are very supportive, there are always there to answer our questions. After not doing exercise for a long time i'm in love with Modevo Fitness!!
441 Wadsworth Blvd.
Lakewood CO 80226


text:
BOF @Lunch: Fear and Loathing in IT Security
Wherever we look we find security threats that are made out to be the end of the world as we know it. The problem is that there is a lot of wolf-crying going on in this space. Is this part of your job description or responsibilities? How do you assess what threats are real? How have security threats, real and hyped, affected the way you do your job? Come join this discussion and let us know how you spot an overblown issue or an underappreciated threat and what you do about it.


text:
|HometownSweetwater, TX
|High schoolSweetwater
Willie Amos joined the Huskers in 2000 after earning a scholarship at the ROV position. At 6/2 and 185 pounds, Amos came to NU after playing previously at Sweetwater. He is from Sweetwater, TX.
Learn more about Nebraska's Class of 2000 or scroll down to see players similar to Amos in Husker history.
These are the players who built Nebraska football.
©2018 BH Media Group


text:
- Description
This is a wonderful collection of eight songs, in honor of Gurudev, sung by Swami Atmavidyananda Giri.
The songs include:
1. Namami Sadgurum Shantam - Salutations to Guru
2. Agocharam Priyam Vadam - I Bow to Gurudev
3. Paramahamsa Hariharananda - Prostrations to the Kriya Master
4. Hai Prarthana Gurudev SE - Let this World Be Like Heaven
5. Guruvara Tumhi Bata Do - O Gurudev at Whose Feet Should I Take Refuge?
6. Jay Sadguru Devan Devavaram - Glory to Gurudev
7. Shri Gurumurti Chidananda Jyoti - Guru is Pure Consciousness
8. Arati Shri Sadguru Charanan Ki - Vesper to Gurudev
Music Composed by - Gregory Khabner
Sound and Production - Silas Mera
To purchase and download mp3 files
To purchase hard copy CD
Please go to the ordering information page and follow the instructions there.


text:
The Eclipse range offers a timeless look of softened edges with a contemporary edge, which provides endless options for unique design combinations.
Finish: Chrome
Technical Details
- Mains Pressure Only
- 10 Year Warranty
- Max.Temp 65deg.C
- Max. Pressure 500kpa
- Min. Pressure 150kpa
- 1/2" (15mm) Inlet
- WELs Rating: Mains 4 Star; 6.5L/min
- Low/Unequal 5 Star; 5.5L/min


text:
Africa Whispers Country House,
From R250 p/p sharing
From R250 p/p sharing
User rating:
Welcome to Africa Whispers Country House. We are a home away from home on a three-acre horse estate in the country. The country house is located on the border of the Valley of a 1000 Hills overlooking...


text:
The organizational culture is composed of the set of values, principles, norms, procedures, and behaviors shared by all the members[…]Read more
Month: August 2019
How to Regain Someones Trust?
Trust is one of the fundamental pillars of a relationship. When it is damaged, it is challenging to rebuild it.[…]Read more


text:
hmlRALEY PANTS
Pants with print and adjustable waist
Choose colour
Choose size
- Free shipping on orders above 120 EUR
- Easy returns
- Delivery within 3-4 business days
- All-over print
- Decorative string
- Adjustable waist
- Quality: 100% cotton
- Fitting: Regular
Expand your child's lazy-day edit with the hmlRALEY PANTS. These hummel® pants made of sweat fabric and with an all-over print and decorative string together with an adjustable waist for easy wear and movement will give many hours of comfort and joy at any occasion. Pair them with a sweatshirt and your baby's outfit is complete!
Item no.. 204130-7381


text:
Having secured an extension to my little vacation oop north, I was happily watching a shed load of Basking Shark of Col, when I got a text. "Can you come in to work as we are exceptionally busy!". Hmm! I suppose that could happen, but since I was on my way to the outer Hebrides, there could be a snag. Or rather a lot of snags...
Heroically I made it the next day, and just 4 hours late after travelling for 10 hours and so any thoughts of commuting from the west of Scotland can be scotched, it's not that feasible. Anyway I am back from a thoroughly fantastic fortnight travelling Northumberland, the Highlands (well Aviemore at least), and Oban and (some of ) the Western Isles. c. 130 species, 3 lifers and 20 year ticks (if I count the calling female Capercaillie, which I might have to come the end of the year), and another huge hole in my bank account.
First things first and day 2 in Northumberland. My sister had told me that a colleague would be ringing at Derwent from 06:30 the next morning and that it might be quite interesting. Sounds like it should be. Derwent was only a mere 6-7 miles away across the moors, so a nice early morning stroll then. It would help to clear the memory of a near death experience at the feet of Hissing Sid, the ugliest and biggest of the ugliest ducks in the world (Muscovies) that my sister kept on the premises.
I had been trying to shoo the big ugly bastard into the shed with his more affable mates, when he decided to take a detour up my leg, pecking as he climbed. I tried to shake him off, succeeding in only making him lose his grip with the result that he was now hanging upside down, flapping his wings violently, from one of his talons that had slashed through my trousers and into my knee. I would have to touch him, eeeeugh!
It took about 10 minutes to free myself and the irate duck and save my bits, and slightly longer to regain my composure. Luckily my knee support had saved me from too much damage and the need for a tetanus injection. Happily the chickens had already shut themselves in already. Job done.
Next morning I was out of the house at 05:00. Cleverly I had sketched a map of my route through the forest and over the moors. Cleverly I left it by the front door as I left. The morning was set fair, how hard could it be, all I had to do was go due east and soon enough I would get a visible reference point.
It all started so well, pleasant sunshine, the smell of the pines and of the forest flowering, Siskin a constant, the occasional small group of Crossbill, Nuthatch, Treecreeper and Coal Tit, all audible over a background grumble of water tumbling. All very nice, but all very much uphill.
Having drawn a map I could just about remember what landmarks I was looking for, at least the first few then it went a tiny bit wrong, which went further wrong as I guessed routes so that I left the forest about a mile or so to the south of where I should have been. Not that I knew this at the time - it looked right to me.
Then on the moors it went completely wrong. I might have been distracted by the grouse, or the sadly calling calling Golden Plover or just decided to stick to the paths that clearly defined rather than risk the ones that looked like ditches. I think I ended up somewhere near Sheffield.
Spotting some gulls I surmised that gulls meant water and made my towards them. The next crest would surely reveal the reservoir over which the now numerous gulls were hawking. Happily it did, though not were I expected. I could just see the northern arm of the water seemingly miles to the east, shit! Now that I could see where I wanted to go it was evident that none of the paths were willing to take me there. A farmer was shooting something on the best looking candidate so I tried another looking for a easterly route from there. A couple of dead ends not helped by the fact that controlled burning of the heather gave the impressions that there were paths to be found going the way I wanted. Time wasted. By now the farmer had shot everything he had wanted to for the morning and had gone home for breakfast, I retraced my steps. The path looked good and I made up some time.
Red Grouse were everywhere some amazingly stupid birds amongst them that probably wouldn't make it past the glorious 12th. Amongst them 2 Black Grouse and a couple of Grey Partridge. Where the farmer had been shooting a flock of Returning Golden Plover wheeled and called before heading off somewhere altogether quieter. A Short-eared Owl flew high to the east and a couple of Buzzards mewed up high somewhere.
After a mile or so the path began to descend, which was good, but then turned and ran along the contour line to the north not so good. I could see the road I presumed I needed so plunged into the increasingly boggy stuff having had enough of going round in circles. Using a line of fencing to get over the worst of the streams and mires I couldn't help but notice the other side to the idyll. Traps placed on crossing points over the little streams. I would see dozens of these repellent objects but only one that contained an unfortunate Stoat victim.
I thought these kind of things were illegal, but I suppose in the county that was trying to reduce Buzzard numbers, and has successfully eradicated the Hen Harrier, a little thing like legality is not going to stand in the face of making of making money out of rich twats.
Having made it through the bog I found another track which finally lead me to a road I had assumed would lead down to the reservoir. It had other ideas and appeared to be heading back up hill to the north. I took a footpath east down by a stream along a path which appeared to be one part mud, one part cow dung and rather a lot more parts water.
Did see my first Spotted Flycatcher and it looked good for Pied too. Half an hour later I reached the reservoir road, knackered and slightly muddy. I could see my destination about half a mile up the road, but the wellies with 3 pairs of socks were becoming increasingly uncomfortable as they had leaked and the socks sucked up water.
Only a few hours late (it had taken me 7 hours to get here) I met up with Martin Hughes, local BTO ringer, as he sat under the shade of the trees processing his last catches.
He had had a good morning, best for a while he said. And the good morning continued as we did another couple of circuits before packing up, netting, 4 Willow Warbler, Long-tailed Tit, Treecreeper, Chaffinch, Great Tit and best of all a juvenile Common Redstart taking his tally up to nearly 50 birds.
While he processed these he gave me some background information on local birds and where to find them and we exchanged stories. On the matter of traps he said that the local game keepers try and place traps on the nature reserve itself, his disdain for the introduced Red Grouse quite palpable. Interesting man and a pleasant way to spend a couple of hours, furthermore it meant I could sit down, which was also pleasant.
Having helped pack away his nets I set off for home, somewhere over the hills and far away. I decided to stick to the roads as far as possible but even then took one or two false turns before finally forgoing trust in my own senses I did the sensible thing and used the satellite positioning on my i-phone. Wish I had done that earlier.
The way back was still a slog with a few highlights in the form of a flighty Little Owl and a family of Willow Tit in a small copse (apparently they are still quite common round here according to Martin). I got back just before sundown and collapsed. It then took me half an hour to extract myself from the wellingtons which had welded themselves to my feet - quite the most arduous part of the day.
The following day unsurprisingly I kept close to the house keeping the dog company. On a brief foray down the wooded valley part of the patch I found a pair of Spotted Flycatcher presumably still with a nest somewhere and my first Slow Worm; a trio sunbathing on a small raised mossy lump.
Tomorrow the coast.


text: Hello all , With past Audi dealership meets ive been to working well Sandra has asked which dealerships we as a group would like to visit. Im from Rotherham in south Yorkshire so for me the nearest largish dealership is in Sheffield, I dont mind traveling though as it would be good to try and get a few of us together. I would love to hear other peoples views on locations. Please add your suggestions. Thanks ... I look forward to reading everybody's ideas.


text:
Student says he was possibly drugged at fraternity house
Johns Hopkins University security officials are investigating a possible drugging and sexual assault that a male student said began at a fraternity house.
According to a bulletin released to students on Sunday, a male undergraduate student told security officials that he thinks someone at the Sigma Phi Epsilon fraternity house gave him a date-rape drug on Friday at the fraternity's house in the 2900 block of Wyman Parkway.
The victim said he also thinks someone sexually assaulted him at a different location.
News of the allegations traveled fast around campus.
"I think that it is the frat's responsibility to make sure that everything that goes on in the house is safe. I've heard people say they can't control it, but if they can't, they shouldn't have the parties there," said Henry Carpenter, a student.
"I've never seen parties as a dangerous or uncomfortable situation, but if something happened, that needs to be addressed," said Jack Sylvia, a student.
Some students were second-guessing their own safety.
"I'm always worried, especially when I go to parties off campus, that I don't know everyone in the house. Obviously, I'm always worried something will happen," said Eliza Cohn, a student.
Substance abuse expert Mike Gimbel told 11 News that GHB is frequently used as a date-rape drug in Maryland. While he said it's more likely to be used on women, it has become more popular over the years to be used on male victims as well.
"It doesn't discriminate, male or female, it's just a matter of who gets it," Gimbel said. "(If) you have GHB in your system, you're at the mercy of anyone, because you really can't defend yourself."
Gimbel said that because GHB is tasteless and odorless, it's is easy to slip into a drink. It leaves a person incapacitated and with very little memory the next day.
"If you're at a club or dance, or a party and drinking something, no matter what it is and you set it down, get a new one," Gimbel said. "As the problem grows, so has the awareness and the prevention of people taking care of themselves, but people have to be careful."
"It probably should cross my mind more than it does. I'd be sure to only drink closed drinks, but I don't think about it as much as I should," Carpenter said.
Gimbel said some bars are taking a proactive approach, giving out coasters that change color when a drop of a drink has an unknown chemical in it.
In a statement emailed to 11 News on Tuesday, Sigma Phi Epsilon Fraternity spokesman Andrew J. Parrish said, "We take these allegations very seriously, and we are working with the university to investigate the situation. At this point, we do not know if the incident actually occurred. We've asked the chapter to suspend all activities until we can complete a thorough investigation."
Baltimore police said that so far, the victim has not filed a police report, so it remains a campus security investigation.


text:
Regarding: Visits
After day 1, this seems to be me. I am leading the family pool with 13-16.
I slept in a bit and now I am feeling like I am running late. I am taking the dogs to tour a new boarding facility today. We "won" a 3-night visit at a silent auction and want to see the place before we drop them off.
I wanted to get the carpets cleaned today but with the kennel visit, that may get pushed to tomorrow.
Later today there will be an edition of Food Friday. And then it is food and wine night! But I still don't know what we are having for dinner.
I am not getting nearly enough done while Michael is away. I need to get moving.
Posted on March 16, 2012, in Sports, Welcome/Intro's and tagged Childfree, sports. Bookmark the permalink. 2 Comments.


text:
During the recent #DevDiscuss chat on "Developer Confessions", I confessed that I didn't really know what I was doing when I started my first dev job 3 years ago. To demonstrate my inexperience, I shared an example of the kind of code I was writing at the time.
Jacque SchragConfession: I was winging it completely when I first started my job. This is one of my favorite code monstrosities I wrote. 😂 I promise I know how to use loops now. #DevDiscuss01:13 AM - 03 Apr 2019
The response I received has been overwhelmingly positive. Most of us have written "bad"* code that we're not proud of, but it's a sign of growth when you can look back at that older code, recognize how it could be better, and maybe laugh at yourself for the choices you made. In the spirit of continuing to learn, I want to share some of the ways I might solve this problem today.
*Although this bit of code is silly and could have been written much more efficiently, hard-coding accomplishes the task it needed to just fine.
Context & Goals
Before refactoring any legacy code, it's critical to step-back and assess the context that the code was written in. There could be an important reason for the
madness choices a developer made that were influenced by context that you might not be aware of (or remember, if it's your code). In my case, I was simply inexperienced, so this code can be safely refactored.
The code was written for two data visualizations: "Global Foreign Direct Investment Stocks" (in/out) and "China Bilateral Investment Outflows" (China). They have similar data & functionality, with the primary goal allowing the user to explore the datasets by filtering by type, year, or region. I'm going to focus on the global data, but the China dataset can be refactored in a similar way.
Let's assume that changing one of the filters will result in the below values being returned:
let currentType = 'in' // or 'out'
let currentYear = 2017
let currentRegions = ['Africa', 'Americas', 'Asia', 'Europe', 'Oceania']
Note: The region checkboxes don't currently work this way, hence the "All" and "Partial" in the snippet, but this is how it should have been done.
Finally, here is a simplified example of the data itself after it's been loaded in from a CSV:
const data = [
{ country: "Name", type: "in", value: 100, region: "Asia", year: 2000 },
{ country: "Name", type: "out", value: 200, region: "Asia", year: 2000 },
// Total Items in Array: ~2,400
Option 1: Initializing Empty Objects
Beyond being hard-coded, my original snippet completely violates the Don't Repeat Yourself (DRY) approach to writing code. There are absolutely instances where repeating yourself makes sense, but in this case when the same properties are being repeated over and over again, it's a smarter choice to create the objects dynamically. Doing so also reduces the amount of manual work required when a new year is added to the dataset, and limits the opportunities for input error.
There are several different approaches to making this more DRY:
.reduce, etc. I'm going to use the
.reduce Array method, because it processes an array and transforms it into something else (in our case, an object). We're going to use
.reduce three times, once per categorization.
Let's start by declaring our categories as constants. In the future, we only need to add a new year to our
years array. The code we're about to write will take care of the rest.
const types = ['in', 'out']
const years = [2000, 2005, 2010, 2015, 2016, 2017]
const regions = ['Africa', 'Americas', 'Asia', 'Europe', 'Oceania']
Rather than thinking about this as types → years → regions, we want to reverse it and start with regions. Once
regions is turned into an object, that object will be the value assigned to the years properties. The same is true for years in types as well. Note that it's possible to write this in fewer lines of code, but I'm opting for clarity over cleverness.
const types = ['in', 'out']
const years = [2000, 2005, 2010, 2015, 2016, 2017]
const regions = ['Africa', 'Americas', 'Asia', 'Europe', 'Oceania']
Convert regions to an object with each region as a property and
the region's value as an empty array.
const regionsObj = regions.reduce((acc, region) => {
acc[region] = []
return acc
}, {}) // The initial value of the accumulator (`acc`) is set to `{}`.
// {Africa: [], Americas: [], Asia: [], Europe: [], Oceania: []}
Now that we have our regions object, we can do something similar for the years and types. But instead of setting their values to an empty array like we did for the regions, we set their values to the previous category's object.
Edit: It was brought to my attention that the original code snippet didn't actually work once you attempted to load data into it because I was merely referencing an existing object instead of instantiating a new one. The below snippet has been updated to fix this problem by creating a deep copy of the existing object. An explanation is available in this article on "How to differentiate between deep and shallow copies in JavaScript" by Lukas Gisder-Dubé.
function copyObj(obj) {
return JSON.parse(JSON.stringify(obj))
Do the same thing with the years, but set the value
for each year to the regions object.
const yearsObj = years.reduce((acc, year) => {
acc[year] = copyObj(regionsObj)
return acc
}, {})
// One more time for the type. This will return our final object.
const dataset = types.reduce((acc, type) => {
acc[type] = copyObj(yearsObj)
return acc
}, {})
// {
// in: {2000: {Africa: [], Americas: [],...}, ...},
// out: {2000: {Africa: [], Americas: [], ...}, ...}
// }
We now have the same result as my original snippet, but have successfully refactored the existing code snippet to be more readable and maintainable! No more copying and pasting when it comes to adding a new year to the dataset!
But here's the thing: this method still requires somebody to manually update the year list. And if we're going to be loading data into the object anyway, there's no reason to separately initialize an empty object. The next two refactoring options remove my original code snippet completely and demonstrate how we can use the data directly.
Aside: Honestly, if I had tried to code this 3 years ago, I probably would have done 3 nested
for loops and been happy with the result. But nested loops can have significant negative performance impacts. This method focuses on each layer of categorization separately, eliminating extraneous looping and improving performance. Edit: Check out this comment for an example of what this method would look like and a discussion on performance.
Option 2: Filtering Directly
Some of you are probably wondering why we're even bothering with grouping our data by category. Based on our data structure, we could use
.filter to return the data we need based on the
currentYear, and
currentRegion, like so:
`.filter` will create a new array with all elements that return true
if they are of the `currentType` and `currentYear`
`.includes` returns true or false based on if `currentRegions`
includes the entry's region
let currentData = data.filter(d => d.type === currentType &&
d.year === currentYear && currentRegion.includes(d.region))
While this one-liner works great, I wouldn't recommend using it in our case for two reasons:
- Every time the user makes a selection, this method will run. Depending on the size of that dataset (remember, it grows every year), there could be a negative impact on performance. Modern browsers are efficient and the performance hit might be minuscule, but if we already know that the user can only select 1 type and 1 year at a time, we can be proactive about improving performance by grouping the data from the beginning.
- This option doesn't give us a list of the available types, years, or regions. If we have those lists, we can use them to dynamically generate the selection UI instead of manually creating (and updating) it.
Option 3: Data Driven Objects
We can combine aspects of the first and second options to refactor the code in a third way. The goal is to not have to change the code at all when updating the dataset, but determine the categories from the data itself.
Again, there are multiple technical ways to achieve this, but I'm going to stick with
.reduce because we're going to transform our array of data into an object.
const dataset = data.reduce((acc, curr) => {
If the current type exists as a property of our accumulator,
set it equal to itself. Otherwise, set it equal to an empty object.
acc[curr.type] = acc[curr.type] || {}
// Treat the year layer the same way
acc[curr.type][curr.year] = acc[curr.type][curr.year] || []
return acc
}, {})
Note that I've eliminated the region layer of categorization from my dataset object. Because unlike type and year, multiple regions can be selected at once in any combination. This makes pre-grouping into regions virtually useless since we have to merge them together anyway.
With that in mind, here is the updated one-liner to get the
currentData based on the selected type, year, and regions. Since we're limiting the lookup to data with the current type and year, we know that the maximum number of items in array is the number of countries (less than 200), making this far more efficient than option #2's implementation of
let currentData = dataset[currentType][currentYear].filter(d => currentRegions.includes(d.region))
The last step is getting the array of the different types, years, and regions. For that, I like to use
.map and Sets. Below is an example of how to get an array that contains all the unique regions in the data.
`.map` will extract the specified object property
value (eg. regions) into a new array
let regions = data.map(d => d.region)
By definition, a value in a Set must be unique.
Duplicate values are excluded.
regions = new Set(regions)
// Array.from creates a new array from the Set
regions = Array.from(regions)
// One-line version
regions = Array.from(new Set(data.map(d => d.region)))
// or using the spread operator
regions = [...new Set(data.map(d => d.region))]
Repeat for type & year to create those arrays. You can then create the filtering UI dynamically based on the array values.
Final Refactored Code
Putting it all together, we end up with code that is future-proofed to changes in the dataset. No manual updates required!
// Unique Types, Years, and Regions
const types = Array.from(new Set(data.map(d => d.type)))
const years = Array.from(new Set(data.map(d => d.year)))
const regions = Array.from(new Set(data.map(d => d.region)))
// Group data according to type and year
const dataset = data.reduce((acc, curr) => {
acc[curr.type] = acc[curr.type] || {}
acc[curr.type][curr.year] = acc[curr.type][curr.year] || []
return acc
}, {})
// Update current dataset based on selection
let currentData = dataset[currentType][currentYear].filter(d => currentRegions.includes(d.region))
Final Thoughts
Cleaning up syntax is only a small part of refactoring, but often "refactoring code" really means reconceptualizing the implementation or relationship between different pieces. Refactoring is hard because there are several ways to solve problems. Once you've figured out a solution that works, it can be hard to think of different ones. Determining which solution is better is not always obvious, and can vary based on the code context and frankly, personal preference.
My advice to getting better at refactoring is simple: read more code. If you're on a team, actively participate in code reviews. If you're asked to refactor something, ask why and try to understand how others approach problems. If you're working alone (as I was when I first started), pay attention when different solutions are offered to the same question and seek out guides on best code practices. I highly recommend reading BaseCode by Jason McCreary. It's an excellent field guide to writing less complex and more readable code, and covers a lot of real world examples.
Most importantly, accept that you're going to write bad code sometimes and going through the process of refactoring - making it better - is a sign of growth and should be celebrated.
Posted on by:
Jacque Schrag
I'm a web developer & data visualizer working at a think tank in D.C. I'm a self-taught dev trying to better my skills. I spend most of my time on the front end of the stack.
I remember when you posted this code on Twitter unabashedly, which I SUPER respected. It showed people especially new up and comers that EVERYONE starts somewhere.
This is doubly awesome because it can show people YOU will IMPROVE 🙂🙂🙂
Thank you so much! I was honestly really nervous about posting it on Twitter, so I'm glad it was so well received. I wish more developers would share their bad or in-progress code for exactly the reason you stated - everybody starts somewhere and everyone improves. :D
But nested loops can have significant negative performance impacts. This method focuses on each layer of categorization separately, eliminating extraneous looping and improving performance.
It's awesome that you've got an eye out for performance - that's always great to see. You are right that nested loops can be problematic, but keep in mind that the cost of the work done in the loop is the main factor.
In this case it's actually 6x faster to build your structure using nested loops, since the cost of creating empty arrays is tiny compared to the overhead of all the other calls in your write-up. I'd argue that the nested loop version is easier to understand too:
const types = ['in', 'out'];
const years = [2000, 2005, 2010, 2015, 2016, 2017];
const regions = ['Africa', 'Americas', 'Asia', 'Europe', 'Oceania'];
var dataset = {};
for (let typ of types) {
dataset[typ] = {};
for (let year of years) {
dataset[typ][year] = {};
for (let region of regions) {
dataset[typ][year][region] = [];
As the number of values in
years and
regions increases, the nested loop implementation remains 6x faster as the main cost is running the rest of the code, not creating the array.
It's cool that you know how to reduce iterations like this, but nested loops aren't automatically a bad thing 🙂
Thanks for the comment! I'm aware that nested loops aren't always a bad thing, that's why I included the word "can" in the part of my article you quoted. :)
In this case, you're right, the nested loop is faster, so I stand corrected on the claim that the solution I proposed is better for performance. Most "best practice" articles/guides I've read have all suggested to stay away from nested loops when possible, so I opted to highlight a different method. Of course it's all context specific, so the "best" way is going to be variable depending on the problem being solved.
In any case, I've updated my article with a link to your comment so others can see it as well. Thanks!
Would you consider it highjacking your post if we used the comments to share "hold my beer" examples of our own terrible old code? I'm currently thinking of some ridiculously bloated and complicated Java code I wrote in years past when inheritance and generics were my solution to all problems.
Not at all! Share away. :D
"Hold my <E extends Beer>"
public abstract class EntityManager <E extends Entity,F extends EntityMetaData,G extends EntityMetaDataCollection<F>,H extends EntityWebService> {
protected abstract EntityDialog<E,F,G,H,EntityManager<E,F,G,H>> createEntityDialog(F entityMetaData);
I once thought the above was good code and was proud of how I had ensured type-safety 😭
As a Java dev, this is just amazing! 😂
At a glance, I would say your original code, while not dry is actually better in terms of long term maintenance and easier for people to jump into.
The reason I say this is that we learn to make things dry and obsess to reduce our code but when you have to maintain a project for 5+ years and developers come and go you realize this is where the mantra "Clever vs Clear" steps into effect and you look at your code in a different way.
You're already a Pro 👍
Thanks for the comment! I think I'm going to disagree. Although I concede that at a glance, reading the hard coded version is easier to jump into, from a long term maintenance perspective it isn't better. I've had to update the data for this interactive twice now, and both times something went wrong at first because I forgot to fully implement the new year. I've built a lot more interactives using the data driven approach that don't have that same problem and can be updated just by uploading a new file. Yes, it takes longer for a new dev to read the code to understand how it works, but it's straight forward enough that I think that extra mental effort pays for itself.
There are so many unknowns still unanswered so the best reply I could give was 'at a glance'.
First, I really enjoyed this, so please take that. It's lovely to see someone learn so much. This is the sort of code I try help my teammates write. Neat, organised and with clear optimisations.
I want to note a couple further optimisations though.
First, you could create the full dataset in a single reduce using the .add() method on Set. I don't know how Array.from on a Set is or a new Set on an array are implemented but if it isn't some recast of memory then you actually have a few implicit nested loops in this section.
Then, the .includes() test on currentRegions could be faster (and this might matter for large data sets) if the values in currentRegions were either a Set or stored as object keys. This would allow testing via .has() or .hasOwnProperty(), which are O(1) rather than O(n) lookups.
And this is less a matter of optimisation (indeed less optimal on memory but also not coupled to line location) than my taste for non-mutative code, but you can return directly from a reduce using something like:
return {...acc, [curr.type]: { [curr.year]: [...acc[curr.type][curr.year], ...curr] } }
But still bravo on a lot of this and thanks for writing your journey.
(Sorry to write without code highlighting.)
Hey, thanks for the comments! I'm always happy to hear constructive criticism on how to make my code better. :)
If I'm understanding you correctly, you're suggesting creating the arrays of types, years, and regions within the
.reducefunction? That's not a bad idea, and you're right, would provide some optimization. I didn't explain this in the post, but part of my rationale for keeping it separate is to maintain separation of concerns. Those 3 lines are specifically about isolating the values of those variables within the dataset, while the
.reduceaccomplishes a separate task. But you make a good point and it's something to consider for future implementations!
I hadn't considered storing those values as a Set instead of an array, that's a great idea
Yep! However, I intentionally wrote the longer version for clarity. :) Certainly is worth considering how to make it more concise in production, though!
Re 1, it's not so much where it is but rather that I suspect Array.from loops and new Set loops and the map loops, which means 3 loops for each construction of those items.
That said, you could do it all in one reduce and keep the concerns separated with object keys, and then destructure them into variables in the outer scope.
I think re 3 you're talking about my non-mutation comment?
If you destructure the variables it can be terser, but my case is more for non-destructive operations. I don't like modifying things because it makes the original unavailable for later use without larger refactor. But again I'm an ideologue about this and it isn't common opinion.
Great post Jacque - it definitely looks cleaner in the end (and less brittle to boot).
Just wondering though - you've performed this refactor, but you've not mentioned how you knew you weren't changing the behaviour? Were there automated tests surrounding the code, or were you executing the code with some sample data and comparing the results manually, or were you doing something else?
Thanks so much!
Thanks for pointing out this omission. This particular project doesn't use tests, so my comparing the before/after code was done by manually checking the final dataset object and the returned UI on the data viz. It was definitely more tedious than it could have been if I had also added tests. :)
Nice Jacque! I remember that feeling of gnarly, non-DRY code from my first coding challenge at my bootcamp where I wrote out 500 something lines for converting a number to its roman numeral equivalent. This is a great solution and well explained as well!
Oh my gosh, that sounds awful 😂And absolutely something that I would have done. Here's to learning to spend our time on harder problems!
I'll never forget how I felt that day. It's burned in to my brain as the lowest I've ever felt as an engineer.
Thanks for sharing Jacque! It's nice to see that you could take something positive from a complicated experience haha! Can I suggest an article related to the code refactoring subject? This is it, a dev friend of mine wrote it: uruit.com/blog/code-refactoring/
Awesome - thanks for posting Jacque!!
I think this point you make is key:
Refactoring is hard because there are several ways to solve problems...
One thing I think helps, tell me if you agree, is if you know a lot more about the mission of the project you're on. In some cases, the mission might be: "I just need to get some web ui out there RIGHT NOW to show some investors what our app might look like," in which case your first solution may be perfectly acceptable.
One the other hand, if you know you need a robust, flexible solution that's going to be around for a long time and be able to adapt to any solution, then what you refactored might be perfect.
So I think it's very important to work with your tech lead to make sure the vision for the task is super clear. If you're the tech lead, make sure you are clear about what the mission is. Then that context helps inform your low level design choices...
What do you think?
Pretty sure, by the way, that my early code was far worse than yours btw!! Fortunately, it's all long gone now!
Thanks so much! Glad you enjoyed it. :) And glad to hear I'm not the only one who has made some poor choices with their code before!
I absolutely agree that knowing more about the mission helps in determining in what works as a solution. There is a very real danger in over-engineering something that can be adequately done with less polish. However, I also think we need to be careful to not let poor code choices (like my original snippet) that are done for demo purposes make it into the final code base. I know I've written something quickly for sake of getting it done, didn't take the time to clean it up or think about a "proper" solution, and now it's sitting in production adding to that project's tech debt.
So yes, 99% agree with a 1% caveat to be mindful that poor code doesn't get moved to production because it's already "done". :)
Regarding your advice of reading our of code. There is a website that shows you code examples indexed from github for your code search.
I always forget the name, but it always appear when searching by code in Google.
Do you know something similar for Javascript?
It is very useful to see working examples from real life open source projects.
Unfortunately the search in github code via the web site is not very good.
I always get cloning the projects and using grep.
I'm afraid I'm not familiar with any tools like that for JavaScript, but that sounds awesome! If you think of the name, please update us!
I think is this one: programcreek
Now I realize that it covers also Python, Java and Scala.
This is an example of a search for pytz.timezone
Can I translate your article into English and share it with Chinese developers?
Hi there! Sure, please go ahead. Just include proper credit & a link back to the original here on Dev.to. :) And please share the link with me once it's published!
Chinese link :《重构我写过的最糟糕的代码》 nextfe.com/refactor-worst-code-hav...
Thanks for sharing!
Wow! Great to see such a progress! When I saw your initial code, I couldn't come up with an easy way to "DRY" it. :)
What you did is a great job. That also goes for the other "Options" you added later.
One thing that caught my eye:
Every time the user makes a selection, this method will run. Depending on the size of that dataset (remember, it grows every year), there could be a negative impact on performance. Modern browsers are efficient and the performance hit might be minuscule, but if we already know that the user can only select 1 type and 1 year at a time, we can be proactive about improving performance by grouping the data from the beginning.
...is performance. Yes, some other users already mentioned it. :)
I think we (me too) generally think too much about performance. One great book that I'm reading right now is Martin Fowler's "Refactoring" (pun? :D). In it, he writes, and I agree, to not be so strict about performance. Usually performance bottlenecks are in the parts of the apps we don't think they are.
I'd just add that without a benchmark, we are both just playing poker with no cards in the hand. :)
I'd just advise against even mentioning performance. If you're not writing the next react, just ignore it for this use-case.
As a Java person just starting out with JS, this post gives me serious hope that eventually I will write JavaScript code I'm not embarrassed of. Thanks for sharing!
I'm so glad you found it useful and encouraging! That's exactly why I wanted to share it. I promise you will absolutely get to that point when you're ready to share. 💚
Pseudo code and a little bit of Swift language might help. You are doing a great job though. Wish I was younger to keep up.
Refactoring the Worst Code I've Ever Written, Part 2
// Group data according to type and year
const dataset = data.reduce((acc, curr) => {
acc[curr.type] = acc[curr.type] || {}
acc[curr.type][curr.year] = acc[curr.type][curr.year] || []
return acc
}, {})
Maybe I'm missing the point of your comment, but if you have recommendations for how to refactor that snippet, I'd honestly love to hear them! I did consider creating a dataset object first with the type & years predefined (like I created in Option 1) and setting that to the initial accumulator value, but this seemed cleaner to me. Would love to know if you had other thoughts!
Hello, didn't read the whole legacy code.
But this block of code took my attention, in concrete: useless write and duplicated reads.
I see better construction of it is:
const dataSet = data.reduce((acc, cur) => {
const { type, year } = cur;
if (acc[type] == null) acc[type] = {};
if (acc[type][year] == null) acc[type][year] = [];
return acc;
}, {});
Thanks for sharing! Just goes to show that there's a lot of different ways to solve the same problem.
@Jacque, it's way of not doing useless writing each time, but only in case when it needs.
Yep, I read it and can see what it does, thanks.
Yeah, Dmytro it's terser. It's really not among the more interesting comments you could make though given the optimisations actually available above.
Maybe consider when commenting on the internet about how crap someone's code is that yours is still very ...naive.
sauln, if take your comment seriously, not easy without smile, but anyway,
about "naive" – what do you mean from technical point of view?
Propose your variant, and highlight weak(or naive) sides of my example,
if you will be right with your proposition – I will agree with better solution with real advantages.


text:
I awoke this morning to another tragedy in our city. Just a few weeks ago we had two officers killed in the line of duty and now just last night another officer was shot and killed in the line of duty. Just when our city had rallied together and began the long journey of healing we experience another tragedy. We must not lose hope. I am praying God's grace over our city. Sunday at City on a Hill Church we began our Prayer Initiative for our city partnering with Transform Our World to cover all 1199 streets in our city in prayer. If our city ever needed prayer it is now. If our city ever needed the Church of Jesus Christ to rise up in faith it is now. March 9 we will begin 47 days of prayer Seeking God for our City as a church partnering with numerous others churches in the Tampa Bay area. A song by Clint Brown keeps playing in my heart this morning and I want to share it with you.
Monthly Archives: February 2011
God of the City
"Lord I praise You. Lord I glorify Your Name. And if the sun said I won't rise and dark clouds fill my skies, Lord just know that I will always give you praise. And when trouble's on the way I will always say no matter come what may I 'll always give you praise."
No matter what we will seek God's face. God is our ever present help in times of trouble. My heart grew faint at the news of this tragedy. My heart broke for this family and our city. Right away the Word of God came to me from Psalm 61.
1 Hear my cry, O God; listen to my prayer. 2 From the ends of the earth I call to you, I call as my heart grows faint; lead me to the rock that is higher than I. 3 For you have been my refuge, a strong tower against the foe.4 I long to dwell in your tent forever and take refuge in the shelter of your wings.5 For you, God, have heard my vows; you have given me the heritage of those who fear your name. 6 Increase the days of the king's life, his years for many generations. 7 May he be enthroned in God's presence forever; appoint your love and faithfulness to protect him. 8 Then I will ever sing in praise of your name and fulfill my vows day after day.
Right now our city needs Jesus and no one else will do. I lift my eyes up to the mountains where does my help come from it comes from you Lord. You are the maker of earth and heaven and there is nothing that's too hard for you. I hope that every believer in our city and every church in our city will rally together and call upon the Lord Jesus Christ asking for an outpouring of the Holy Spirit. I pray for spiritual renewal in our city to the glory of God. I pray a revival will sweep through our city sweeping away the darkness and that the light of God's love will shine brighter than ever even in the midst of this incredible and horrific tragedy. I pray for this precious family who has lost their loved one and for a city who has lost another hero. God, You are the God of the city. We need you.
I will end this blog with the words to the song God of this City. God we need your grace.
You're the God of this City. You're the King of these people. You'rethe Lord of this nation. You are! You're the Light in this darkness, You're the Hope to the hopeless, You're the Peace to the restless You are! There is no one like our God, There is no one like our God. For greater things have yet to come and greater things are still to be done in this City.
Call and Response
Habakkuk 2:2-3 "Then the LORD replied: "Write down the revelation and make it plain on tablets so that a herald may run with it. 3 For the revelation awaits an appointed time; it speaks of the end and will not prove false. Though it linger, wait for it; it will certainly come and will not delay."
One of the biggest keys I have learned in this church planting journey that applies to life in general is that vision leaks. As a matter of fact anyone who follows this blog knows I have already written a blog on the very subject just a few months ago. So why am I coming back to the topic of vision casting and catching? Because vision leaks and must constantly be written, spoken, and shared. I have been faithful to keep the vision that God gave me for City on a Hill Church before the people. Not a week goes by that they do not hear me share our vision. It is included in every message because it is the DNA of our church and the reason we were called to our city. I get some of my greatest joy in the call and response of the vision. The people of COAH can finish my sentences. I'll say, "It is all about Jesus it has always been about Jesus and it will always be about Jesus." Before I can even get more than three words out I look out and people are saying it right along with me and smiling and nodding with blessed assurance that this is from God. I sat with two truly amazing young men the other day and I listened as they were sharing their ideas for something God has called them to begin and as they are sharing I hear the influence of COAH's vision in them. I say, 'We are a city within a city reaching our city with the life changing message of Jesus Christ one life at a time." and people perk up because they know this isn't just my vision it is the vision God has called them to fulfill in our city, region, and world. In conversations I'll listen to people speak that we are blessed to be a blessing and joyfully talk about giving their time, talent, and treasure to God. I listen to my leaders encourage their teams by helping them to see we care about you first it is not about what you have or what you can do for us we just simply care about you. This reinforces that core values that people are people not resources to be used up and disposed of. I am inspired when I see and hear our people passionately pursuing Lost people [Luke 15/19:10] and looking to bring Wanderers [Ezk. 34] back into God's pastures. I speak, listen, and hear folks sharing our Church's heart in a nut shell, Love God, Love People, and Preach Jesus. Followed by a, "It really is that simple." We speak of following only one true church planting expert, that is Jesus who said, 'I will build my church and the gates of hell will not prevail against it." [Matthew 16:18]. I get excited when I hear of our people stepping up and showing spiritual maturity and not repaying evil for evil because our core value teaches us that, God is good and He expects us to be good. When we are on mission in the city, going over seas, or living it out every day we fully realize and adopt the core value that we do not do good for the sake of good we do good to the glory of God. Our rewards are in heaven and the greatest reward is seeing a lost person or a wanderer find their way home to Jesus. These kinds of call and response keep me centered, focused, and passionately pursuing Jesus Christ as we live out His vision for our city. Whether it is our past hurts, our current trial, or our future victory we all recognize that God wants to use our story for His glory. It is so rewarding to hear and see the vision God has entrusted to me and the people of COAH constantly being shared and reviewed through call and response. COAH's life verse keeps us on point to help us be about our city. We can't say we are about the city it we are not out in our city. We are called to be a city on a hill a light that can not be hidden. We are building a city for God among the city of men. From January to March of 2010 I wrote down our vision in May of 2010 I became a herald and I began to run with it. It was our appointed time and it has not proved false. We have seen men, women, and children come into right relationship and receive salvation by God's grace through faith in Jesus Christ. We have seen marriages healed and restored, we have seen addictions broken, wanderers come home, missionaries called, miracles, signs, and wonders have followed the preaching of God's Word to the glory of God. I don't intended to stop calling out the vision and I am confident by God's grace that people will continue to respond as long as we remember God's Law of Attraction: Jesus said, "If I be lifted up I will draw all men unto me." I have seen this with my eyes and heard it with my ears as God draws people from the North, South, East, and West into His kingdom. I even use the call and response method in my prayers. I write out and pray the vision of COAH on a daily basis as I pray that God's kingdom would come in my life, my family, my city, and my world. Be encouraged write down your vision, share it, teach it, and most importantly live it out daily. You can be absolutely confident that God has a plan for you. [Jer. 29:11-13] The key to these verses is verse 13 if you seek God you will find Him when you seek Him with all your heart. Once you find Him and He gives you your vision you must be willing for give your life for Him accomplishing it. I leveraged everything in my life to live this vision. I wouldn't trade it for silver and gold. I wouldn't trade it for riches untold. Jesus is worthy of my life. I don't have to do this I get to do this to the glory of the Glorious One who outshines the sun! Jesus called out to me and I responded. Can you hear Him calling?
Seeking God for our City
Habakkuk 3:2 says, "Lord I have heard of your fame; I stand in awe of your deeds, Lord. Repeat them in our day, in our time make them known; in wrath remember mercy."
From the very beginning of this church planting journey it has been my heavy conviction that everything we do is going to have to be bathed in prayer and seasoned with fasting. I was privileged this past week to be a part of a prayer for our city on the steps of City Hall along with numerous other pastors. It truly truly a moving experience. What was more moving to me is that it was organized by police officer's wives and a small group of believers representing different churches, COAH included, who have been meeting together for the past ten years. God's people met together and called out for help and hope for our city and the lives of some very precious people.
Even before the prayer at city hall I was invited by this same amazing small group to partner with them and another church in the city to adopt every street in our city for focused prayer. We will begin inviting the folks who attend City on a Hill Church to join in our effort to be sure every street is covered by a prayer warrior. This excites me knowing that hundreds if not thousands of believers all throughout our city will be calling out to God for our city, for the lost, and for the wanderer.
There is one more leg on this journey of prayer we as a church are about to undertake. Beginning March 9, 2011 we will spend 40 days leading up to passion week and passion week itself bathing our city in prayer. I believe that we can and will see Habakkuk 3:2 happen right before our very eyes if we as a people gather together and lift up the name of Jesus. We are already seeing the first fruits of Hab. 3;2 in our church. Just last week we had a lady who had tremendous pain in her arm and neck that was unrelenting. During Communion she felt the power of God come upon her and her pain was totally relived in Jesus name. God is confirming His Word through miracles signs, and wonders! Glory to God!
We are seeing people set free from addictions, marriages healed and restored, salvations, the sanctification of the saints, and miraculous provision upon our church. City on a Hill Church was born out of a season of prayer and fasting. The Vision for our church came through an intense season of prayer and fasting. The life sustaining hand of God has rested heavy upon us as we have remained faithful to be a people of prayer. We have prayer every week as a part of our services every single week because we believe in the power of prayer. I have heard it said prayer changes things. I want to amend that a bit. I want to say prayer changes people and people change things by the grace of God to the glory of God.
We are committed to building becoming, and being a city within a city reaching our city with the life changing message of Jesus Christ one life at a time. The only way we can or ever will fulfill that mission is through prayer. We must constantly and relentlessly pursue God in prayer for our lives, our families, our church, and our city. I want to encourage you to join us in prayer. Adopt your street and begin praying for every one on it to come to know Jesus. Join us as we spend the 47 days leading up to Easter asking God to seek and save the lost, bring home the wanderer, and send every believer out as a missionary to the culture God has placed us in.
I believe Habakukk 3:2 can and will be fulfilled in our generation if we pray. Let's seek God for our city.


text:
Colorful Rajasthan Tour
Duration : 9 Nights / 10 Days
Destination Covered : Jaipur, Jodhpur, Pushkar, Ranakpur, Fatehpur Sikri
Attractions : The Brahma Temple, Mehrangarh Fort, Umaid Bhawan Palace, Jaswant Thada, Fatehpur Sikri, Amber Fort, City Palace
On Request
Colors of Rajasthan by Indian Holiday is a 10 days / 9 nights tour package which takes you through the most beautiful destinations of the country including Delhi, Agra, Fatehpur Sikri, Jaipur, Jodhpur, Ranakpur, Udaipur and Pushkar. All these destinations promise to leave all spellbound with their beautiful attractions and colorful backdrop. With this tour package, you get to see the most vibrant places of the country. For more details about this unique tour package, check out the detailed itinerary below:
Note : This is just a suggested itinerary indicative of what could be possible. We tailor holidays for your specific needs. Contact us if you want modifications so that we could tailor a holiday to suit your need for an unforgettable India tour.
Payments Terms
Cancellation & Refund Policy
Packages by City
Packages by Category
Similar Tour Packages for Jaipur, Jodhpur, Pushkar, Ranakpur, Fatehpur Sikri
Duration : 3 Nights / 4 Days
Destinations Covered : New Delhi, Jaipur, Agra
Duration : 5 Nights / 6 Days
Destinations Covered : Bikaner, Jaisalmer, Jodhpur
Duration : 2 Nights / 3 Days
Destinations Covered : Jaipur
Duration : 6 Nights / 7 Days
Destinations Covered : New Delhi, Jaipur, Agra, Varanasi
Duration : 3 Nights / 4 Days
Destinations Covered : New Delhi, Bharatpur, Jaipur, Agra, Fate..
Duration : 5 Nights / 6 Days
Destinations Covered : Jaipur, Agra, Fatehpur Sikri


text:
Last updated on April 7, 2015
M for Milk – 'the Complete food' a short History and its Medicinal benefits. Or Breast Milk Is the Best Milk
ance for the survival of a child since its birth.
Clean cow milk produced from grass fed cows was used as a medicine in the early part of the last century.
Gulping a glass of milk after exercise can help you build your body muscles. It lowers the boom on high blood pressure. A study says that men who consumed more diary products tend to have lower blood pressure. Researchers say that more consumption of diary products helps people with high blood pressure. A Harvard study too confirms that consuming more diary foods, especially milk may helps to lower your blood pressure. It contains B12, a nutrient that may help prevent cardiovascular diseases. Notice that only low-fat diary products not high fat, diary does the trick.
Yet another report says: "The vitamin B12 found in milk helps wage an anti-cancer campaign, too, this nutrient plays an important role in preventing cancer. Particularly breast cancer. Your body needs B12 to free another vitamin folate, from food. Your cells then use folate to build healthy DNA, your body's genetic "blueprint," Getting too little B 12 leaves the folate trapped in food, unusable by your body. This folate shortage, in turn causes your body to build weak DNA that is more susceptible to cancer causing changes. So think of milk as a triple threat against cancer with its rich stores so calcium, vitamin D, and B12."
Check your domain ranking


text:
Enjoy Free Shipping On All Orders $75+.
Root on the 'Cats in style with this classic Women's K-State T-Shirt! This women's tee features the infamous Powercat logo printed on the left side of the chest for a subtle and classy look.
The Deets
Fabric Blend
Made of 50% Polyester, 38% Cotton, 12% Rayon to create the perfect blend, super soft feel you're looking for.
Ladies Cut
The ladies tee you've been waiting for! Relaxed neck, shortened sleeve, and a slimmer torso.
American Made
Cut and sewn right here in the U.S.A. to provide the highest quality product possible.


text:
255 views Yuda Electronic (HK) Technology Co.,Limited. 2018-09-22
What is a USB 3.1 cable?
As a next-generation transmission standard, USB 3.1 is called "SuperSpeed+" and has a 10Gbps transmission rate. It has Type-A (Standard-A), Type-B (Micro-B) and Type-C connection interfaces. The 20V/5A power supply standard. Transmission and power supply performance is more powerful.
Make your phone charge faster
As the power supply standard is increased to 20V/5A, 100W power, USB 3.1 can greatly increase the charging speed of the device, while also powering higher power devices such as notebooks, projectors and even TVs. This is why the MacBook only needs to have a built-in USB Type C interface. USB Type C cable enables power and transmission needs.
Faster data transfer speed
Since USB 3.1 supports transmission rates of up to 10 Gbps, it will greatly increase the transmission speed of mobile phones, which is very beneficial for the development of mobile phones. For example, more and more mobile phones are beginning to support 4K video, video files are larger, and faster data transfer speeds are necessary.
Support display output
At present, HDMI is an interface standard commonly used in television and display products, and there is no mobile phone built-in interface, because it will lead to increased costs. Since USB 3.1 supports display output, it is more suitable as an output interface for mobile devices, especially Type-C interfaces.
Obviously, a versatile universal interface is required for small devices such as mobile phones and tablets, which can greatly improve the connectivity of the device. From the current point of view, Type-C in USB 3.1 is most likely to become the future connection standard, providing an integrated connection scheme for data transmission, peripheral connection, display output and the like. Obviously, the future market for TYPE-C data lines is very large.
Cell phone accessories wholesale business can get high profits. But the market is fierce. Big bra...
Does fast charging reduce phone battery life? In order to allow everyone to understand this matt...
How to install the car charger: 1. Insert the USB power adapter into the car cigarette lig...


text:
Yeah sure – this looks like an SYFY Channel flick on steroids but I don't care! I love me a decent disaster flick and it's looking like this one might just have it all. Titled GEOSTORM – it's going to weave the following tale:
"After an unprecedented series of natural disasters threatened the planet, the world's leaders came together to create an intricate network of satellites to control the global climate and keep everyone safe. But now, something has gone wrong—the system built to protect the Earth is attacking it, and it's a race against the clock to uncover the real threat before a worldwide geostorm wipes out everything…and everyone along with it."
A pretty kick as cast – Gerard Butler, Jim Sturgess, Abbie Cornish, Alexandra Maria Lara, Daniel Wu , Ed Harris and Andy Garcia all attempt to save the world – or do they? The trailer explains the plot efficiently.
Yeah, my asss will be in the seat on Oct. 20th.


text:
I was listening to BBC Radio 3 while I hammered at my computer keyboard this morning, as an antidote to all the pop music I have been exposing myself to lately. I was enjoying a performance of Beethoven's Piano Sonata No. 22, performed by Wilhelm Kempff in a live recording made at the Schwetzingen Festival in 1962.
Since the sheet music for this piece lives handily within my piano stool and I do stumble through it occasionally, I have an idea of how it goes. And when I heard good old Willy play a wrong note, it stuck out like the proverbial sore thumb.
Not that I mind. Wilhelm Kempff dates back to an era when classical musicians were human beings, not machines. Much classical music is supposed to sound difficult and the odd stumble among otherwise excellent playing confirms this (just like occasional feedback at a live show lets you know you're listening to a real performance, not something pre-recorded.) Now if you want to listen to a pianist who never played a wrong note, then Thelonious Monk is your man. His piano didn't have any!
So, the wrong note. Here it is...
If you're in doubt, here it is again, focused a little more tightly...
It maybe isn't exactly a wrong note, just a couple of notes squashed together that should have been played as even semiquavers. It's in bar 38 of the third movement, if you want to look it up.
So, let me jump into my time machine, go back to 1962, ask Willy to retake the section after the concert has finished. (I was there when the BBC did this in a live opera recording for TV. Someone came out after the performance and asked the audience if they would mind if they repeated a section. I didn't see even one person leave.)
Back to 2013, time machine powered down and back in the garage, here's the result...
See, I knew Willy could play it just fine!
Since in reality there is no possibility of a retake, the first and most obvious solution is to look for an identical passage elsewhere in the piece. Classical music is often repetitive and there's a reasonably good chance. In fact, there is an extended repeated section in this piece that includes bar 38. So all I had to do was copy the offending passage from the first repeat, and paste it into the second. A little fiddling about with timings and fades and the result isn't at all bad. I very much doubt if anyone would notice anything untoward if they hadn't been told there was an edit. A specialist in classical music editing would have done even better.
This doesn't always work. In this case, Kempff played quite a lot louder the second time than he did the first. Where sections of a piece are repeated the whole point is not to play them the same way. Getting tight in around the problem helps, as does not choosing musically obvious edit points.
So, problem fixed! In the spirit of good karma, if you like the music and the playing, you might consider buying the CD...
P.S. I was once asked to fix a recording of Schumann's Piano Concerto where the opening solo section was entirely missing as someone had pressed the record button too late. I stole it from another record. Sometimes you just have to get the job done any way you can. It's still out there somewhere...Come on the FREE COURSE TOUR
Great home recording starts with a great home recording studio. It doesn't need to be expensive if you know how to select the right equipment for your needs.


text:
What if God were one of us…?
Recently my husband and I were waiting at a street corner for the light to change, and a panhandler came up to us. My husband reached into his pocket and gave the man a dollar bill, then turned to me and said, you never know – that could be God.
It is a question often asked: what if God was here on earth, walking among us. Is it the panhandler? The mother and child? My dog with the beautiful retinas?
And then it struck me.
When I think of the miracles in my life, how I have been richly rewarded, attracting beautiful life experiences and wonderful people into my life, I wonder what if I am God — a Goddess in the Real World — but I am so deep undercover that I have come to believe my own story, that I am just the lady on my driver's license.
Perhaps we are all God, on a deep undercover mission, and we've gone so far undercover we've almost forgotten what our mission is?
What if you were God? What are you really here to do?