text:
The Pub Curmudgeon - The cash machine stops
Thread: The Pub Curmudgeon - The cash machine stops
Automated Tracker
Visit The Pub Curmudgeon site
The coronavirus crisis has resulted in people being strongly encouraged to use contactless payments wherever possible to minimise the need for physical contact associated with using notes and coins. This has led to warnings that it is likely to accelerate the widely foretold death of cash, which may have largely vanished by the summer as people never return to using it. While obviously many people value the convenience of making payments by card, the elimination of cash raises serious issues for both the general functioning of society and for individual freedom, which I touched on a couple of years ago.
It is estimated that there are 1.6 million unbanked workers in the UK, and there must be many other non-workers who have no access to banking facilities. While there may be technological solutions that can address this issue, their interests cannot simply be breezily dismissed. Added to this, there are many people, not by any means entirely elderly, who have a strong preference for using cash and are uneasy about card payments, even though they may theoretically be available to them. Is it reasonable to ride roughshod over their wishes in the name of progress?
Over the past couple of years, there has been a growing trickle of pubs and bars deciding to go entirely cashless and stop accepting cash payments. This may be understandable if, as has happened in a few cases, the establishment has been the victim of multiple robberies. However, in most cases it is simply signalling that they want to be perceived as modern and forward-looking. It is essentially profoundly snobbish. It is in effect saying that they are not interested in the business, not only of people who have no access to card payments, but of those whose preference is to avoid them. They are putting up a sign that the poor, the old and the conservatively-minded are not welcome. Our friend Cooking Lager made a good point when he said:
I like cashless but not accepting cash is like advertising the gaff as a wankers' bar.
— Cooking Lager👁 The #PubFromHomeMan (@CarpeZytha) October 16, 2018
One obvious issue is that going cashless creates a disconnect between people and money. It makes it harder for children to grasp the concept of money, if it is just numbers on a screen rather than something tangible in their hand. It also makes budgeting more difficult for adults, both in terms of limiting your spending on a night out, and also in a more general sense of managing your expenditure through the month. It's hardly surprising that so many people seem to get into unmanageable debt when they hardly ever see the stuff.
When this concept was first mooted more than twenty years ago, what was proposed was "digital wallets" which could be topped up in the same way as a pay-as-you-go mobile phone. This would have helped to make it more manageable, but instead what has happened is that people end up using debit cards and having a multiplicity of transactions taken directly from their current accounts. I was always brought up to keep a separate record of banking transactions and reconcile this to the statement at the end of each month, but if there are dozens of cups of coffee and rounds of drinks on it, this becomes completely impractical.
I always used to find it useful to draw a distinction between significant items of expenditure that justified recording individually, and routine everyday spending that didn't need to be identified in detail, and thus were appropriate to be paid for in cash. I knew that in a typical week I would spend £XXX or thereabouts, so that was what I would withdraw from the cash machine. Fortunately, a couple of years ago the practice of imposing credit card surcharges was outlawed, so from my point of view the most workable solution is to allocate one particular credit card to everyday contactless transactions, which I can then view the balance of online and pay it off in a single sum at the end of the month. But not everyone has the luxury of having a credit card.
Charities have reported a fall-off in donations, such as those received by bar-top collection boxes in pubs, due to the reduction in cash usage. Yes, of course you can make donations by card, but it's a much more considered process and not remotely as spontaneous. Last year, I even saw a street beggar with a card reader, which just seems wrong. The absence of cash will also inhibit small, casual gifts and loans between friends and relatives. It will make such everyday activities as sharing out a restaurant bill, and carrying out a collection for a departing work colleague, much more formal and remove any element of anonymity. And it's not hard to visualise people in situations such as abusive relationships wanting to build up a cash reserve that is hidden from scrutiny.
There are extensive areas of what might be called the black and grey economies that currently run on cash. Requiring all of this to operate by bank payments will obviously bring it out into the light and subject it to the scrutiny of the tax authorities. Some may see this as a good thing, but it may cause many informal or ad hoc economic activities to cease to happen entirely. And, if cash is unavailable, some form of alternative barter economy or unofficial currency may evolve to replace it.
A cashless society is dependent on connections to power and communications for every single transaction. However, the foundations of our modern technological society are more fragile than many imagine. While coronavirus has driven many to adopt cashless payments, it has also exposed our vulnerability to shocks of this kind. Many of us remember being subjected to power cuts in the 1970s, and in recent years the failure of successive governments to support the construction of new capacity has left our power generation system teetering on a knife-edge. Organised hacking attacks have sometimes brought large swathes of the Internet to a standstill, while some banks' IT infrastructure has fallen over for days on end. In 1909, in his oddly prescient short story The Machine Stops, E. M. Forster described how a universal, interconnected, technological society could slowly but surely be brought to its knees if things stopped working.
There are also wider implications for civil liberties, which have been highlighted from both sides of the political spectrum. For example, this article in the Guardian says:
Engineering public consent for cashlessness is a subtle process. People may indeed enjoy a new payments app or contactless card, but financial institutions then use that to justify the gradual removal of the cash infrastructure – such as ATMS – in order to deliberately make cash harder to use. This feeds back, making digital seem relatively more convenient, "inspiring" more people to choose it.
While the free-market Mises Institute says:
Cash has been the target of the banking and financial elites for years. Now, the coronavirus pandemic is being used to frighten the masses into accepting a cashless society. That would mean the death of what's left of our free society...
...Being bound to computers for transactions kicks the door wide open to hardcore surveillance of personal activity and location data. Being eternally on the grid means relentless taxation and negative interest rates, which the Federal Reserve is already gearing up for.
These concerns fall into two main areas. One is that people will be subject to constant surveillance of exactly where they have been and what they have spent their money on. It's all too easy to say that the innocent have nothing to fear, but who can honestly say that they have never done anything that they would prefer not to be exposed to the light of day? And it isn't difficult to imagine a range of scenarios where this information could be used to target or stigmatise people in various ways.
If all transactions are on the record, it also opens up many possibilities for being able to control people. For example, certain types of transactions could be blocked if they were felt to be undesirable, either for the individual or society as a whole. Businesses that were felt to be acting against the public interest could be prevented from accepting payments. And the entirety of your financial life would be potentially laid open to the grasping hand of the State, either through negative interest rates or outright confiscation.
Of course, these concerns may be dismissed by some as examples of the tinfoil hat mentality. But any student of history will know that the benevolence of those in authority is not something that can be guaranteed. And, if you lived today in Russia or China, would you be happy for the State to have such detailed oversight of your everyday activities? It's ironic that some of those who, before Christmas, were ludicrously accusing Boris Johnson of wanting to erect some form of totalitarian state, are now amongst those who are the cheerleaders of a trend that contains such potential for making that outcome a reality.
Ultimately, the continued existence of cash represents a bulwark of freedom against both governments and corporations. Yes, many people may find contactless payments for everyday transactions convenient, but if we as a society allow cash to entirely disappear, we will have also said goodbye to a large measure of our liberties.
Quick Navigation Blog Tracker Top
More full stops.
By Bucking Fastard in forum Report a review
The Pub Curmudgeon - Cash is still king
Called to the Bar - BrewDog: diacetyl machine and all
Rain stops play.
By an_ecumenical_matter in forum Chit Chat
Are you interested in becoming a fruit machine spotter?
By fruitypro79 in forum Your Services


text:
One of our own UK Cypriot Kerry Zacharia presents art exhibition London in Different Dimensions at Gallery 101
Artist Kerry Zacharia is proud to present her first central London solo art exhibition near St Paul's Cathedral, opening on Tuesday 20th March for three weeks through Easter.
The theme for this show is London, entitled "London in Different Dimensions." This exhibition will be hosted by The Salvation Army at their International Headquarters within their Gallery 101 space. A Private View will be held from 5:30pm to 8:30pm on Wednesday 21st March. The show will close on Friday 6th April.
In this exhibition, Kerry aims to engage her audience in a very decisive way with her expressive and highly individual graphic line style, taking them on a journey through familiar urban scenes of this great City of London. They will experience how her everyday life, inspired by simple and uplifting sometimes spiritual moments, has been turned into a unique collection of paintings.
Her London art is deeper than the instant connection it forms, especially when closely observed her audience will be guided via the energy of her lines, allowing for any mysteries to unfold and connections to be formed thus making the whole experience of viewing her art 'different.'
Kerry was born and raised in North London and is of Greek-Cypriot ethnic origin. Creative talent was present in her as a child; however, her career took her on a different path. Her passion for art long remained and at the age of 53, she has managed to establish quite a following. As a self-taught artist, Kerry has not been influenced by any art training and relies on her own inspirations and inner vision to guide and develop her art practice. Her art is largely received as "different", "energising" and "mysterious" and as her having a unique and recognisable style. Someone once went on to describe it as "Van Gogh from another dimension."
In conjunction with this exhibition, Kerry will be running a fundraising event to raise awareness and money to help support the great work of The Salvation Army. People engaging in her fundraising event will not only be entitled to a generous discount on buying her original art, but will be helping Kerry raise even more money as her employer, Telereal Trillium, will 'Charity Match' her donations.
Gallery 101, The Salvation Army International Headquarters, 101 Queen Victoria Street, London, EC4V 4EH. Open Monday to Friday 8:30am to 4:30pm (closed Good Friday/Easter Monday). Nearest Stations: Blackfriars, Mansion House and St Paul's.

redpajama_set_name: RedPajamaCommonCrawl


This guide will show how to create a large scale glass etching using a vinyl stencil and a chemical etching agent. For smaller scale projects, I would suggest using a laser cutter as it will usually be simpler and faster. You can also follow this guide if you want to sandblast to etch as the vinyl application will be the same but we will not go into details in regards to sandblasting.
You will have to source the glass you want to etch. You can get the glass from a hardware store or a local glass manufacturer. The glass I am using is tempered but it doesn't need to be tempered it was just what I had available.
I bought Armour Etch (http://www.armourproducts.com/ecom-catshow/Armour_Etch.html) from a local craft store such as Hobby Lobby (www.hobbylobby.com). The cream will go a pretty long way and I needed just a little over 10 oz to do this project.
Clean the glass with rubbing alcohol as many common glass cleaners have a chemical that prevents streaks but will interfere with the glass etch reaction.
Apply enough of the cream in a small spot that will either be hidden or will definitely be etched later. DO NOT USE YOUR HANDS OR HAVE ANY SKIN CONTACT WITH THE CREAM. The cream will burn your skin so please take care when handling. Using latex gloves when applying the cream is highly recommended and I used a simple craft brush to apply the cream. You do not need to dilute the cream and will need to wait about 10 mins after the cream is applied.
Wipe away the cream with a paper towel and wash the spot with water. If there is a visible etch, then continue to step 2. Otherwise, you will need to acquire another type of glass. Apparently some glass manufacturers will include certain chemicals that will prevent the cream from etching so be aware not all glass will work and etch results will vary.
Now you will select what design to etch. We used our company logo to etch in a VECTOR format. The vinyl cutter will not be able to cut the design without a vector image so make sure it is a vector.
Our logo was scanned from a hand drawing so it took a while to prep the graphic for cutting. Depending on your design, you may need to do some adjustments so the vinyl cutter will properly read and cut the design.
When you import the file to the vinyl cutter, double check that it imports your file correctly and the cut lines are being properly recognized.
I bought OraMASK 813 stencil film for this project and a roll big enough (48") to fit the entire design. I decided to use this type of vinyl since this vinyl is designed to be used as a mask, it has transparency, and a non-permanent adhesive. I would probably use an outdoor vinyl if you intend to sandblast as this particular vinyl might not withstand a sandblaster.
Once you install the vinyl roll, take care to match the alignment of the roll with the hash marks both in the front and back so when it starts to unroll the design it doesn't get shifted.
I used a 300 mm/s speed and 180 g pressure setting but these numbers will likely be different for your setup depending on the blade depth, blade sharpness, etc.You will need to test the design on a small scale cut to make sure the blade is cutting through the top layer but not cutting all the way through the backing. Once you find the right balance in settings, you will be ready to cut your design.
I decided to mirror cut our design since we were going to use this as a table and wanted to keep the design clean by using the opposite side as the actual surface of the table.
Once the design is cut you will need to weed the vinyl. Weeding is the process of removing the parts of the stencil that you want etched.
This step is probably the longest and most tedious part of the project. You will need to take care removing the right pieces and going over cuts that were incomplete with an exacto knife.
I used the small roller to push out any air bubbles and then applied the transfer paper to cover the entire stencil and then used the small roller again to make sure the transfer paper adhered to the stencil completely.
I measured my design on the glass and used a dry erase marker to create demarcation lines so it would be easier to line up the design after we peeled off the stencil from the backing.
You will likely need a few people when you attempt to apply the stencil to the glass to help line up the stencil to your previous marks.
When you start peeling, make sure it is picking up all the different parts. I'm not sure if there is an easier way to apply the stencil but we just eyeballed to match up the lines with the stencil perimeter; it wasn't perfect but it was good enough.
Afterwards I went over the stencil again to remove air bubbles and go over the edges with the Lil Chizler. You don't need to remove all the air bubbles but the edges will need to be tight to prevent bleeding.
Wearing gloves, I generously applied the cream to the exposed areas. I initially was going to do a section at a time but the etching cream is pretty lenient and you can leave the cream on for a long time so I decided to do the whole stencil at one time.
I initially also assumed that the longer you leave the cream on, the deeper the etch. However it looks like it only really reacts with the top layer as there wasn't much difference in depth despite the varying lengths of application time.
The cream is very odious so I would recommend doing this in a well ventilated area or outside.
Finally, be careful not to expose any of the cream to your skin as it will burn you.
So this part was pretty fun and straight forward. I carefully leaned the glass against a wall and lightly washed off the etching cream with a hose. Once you rinse off all of the etching cream, simple remove the stencil and you're done!
This came out nicely, although I recommend getting projects this size done commercially - it's really quite affordable.
Oh that's good to know. Do you know how much it might cost, ballpark-wise? Cost for me was about $20 of glass etch, $5 for other supplies (brushes, gloves, alcohol) and $50 for the masking vinyl although I still have the majority of the roll remaining. It did take some time, particularly the weeding, which is probably the most "cost" for the project.
Flyingbluebunny, while you may have spent less than $100 on the materials to do the job, how much is your time worth? A company that does this for a living, would have probably achieved the same result faster. I think that is what Battlespeed is referring to. Doing this for the learning experience, the pride and joy in knowing that YOU did it can be priceless though.
Was this pane glass, or a table top? I found table top glass only etches well on one side.
This was from an old table top from a table that was going to Goodwill. I only tried one side so maybe I just got lucky? Testing the glass is super important though as not all glass works with the glass etch chemical. I've seen pictures of people doing windows for a sort of stained glass window effect so I think pane glass would be fine but again testing is key.


text:
Donald Trump: Candidate as Cancer
On 3/19/16 at 9:42 AM EDT
Republican U.S. presidential candidate Donald Trump speaks to the media after receiving former candidate Ben Carson's endorsement at a campaign event in Palm Beach, Florida, on March 11. Reuters
Opinion Donald Trump 2016 Presidential Election 2016 Presidential Campaign Republicans
Look into the mirror, American. See there the hair that is like a wheat field whipped by the wind; the face that looks like the product of sexual congress between a tuna and a tangerine; the lips pursed in childish imitation of gravitas; the tie that is too bright and too long; the small, dull eyes of a manatee scanning adoring crowds. This is Donald Trump, American. This is you and I.
Trump is the cancerous growth that suddenly alarms so many in the nation, Republican and Democrat alike. Do we deserve this malady? Is it somehow our fault? There must have been symptoms that we missed. There must have been preventative measures we could have taken, cures that would have worked, only it is too late now. America will be made great again, and then she will moan one last time on her gold-plated deathbed, and then she will die.
If cancer is, to some degree, the disease of bad habits, then Trump is the cancer we all deserve, with our Kardashian fixation, our Twitter-fueled discourse, our PornHub addiction. He is the product not of our politics but of our culture or, rather, the banishment of genuine culture from American civic life. True culture—sorry, Downton Abbey doesn't count—is necessarily limiting. It dictates how we should comport ourselves, what we should value, what is moral and what is not. It frames our collective vision of the world. American mass culture exploded any distinction between high and low, worthwhile and worthless, but the liberation of the Baby Boomers has given way to a chaos where our freedom is nothing more than the freedom to buy. It's a long, hard fall from Otis Redding to Robin Thicke. From there, though, it's just a couple of steps to President Trump.
It's easy to malign his supporters as angry, simplistic rubes. There are some of those, but not nearly enough to have made him a serious contender for the White House. It's just as easy to forget that it wasn't Mississippi that made him famous, but Manhattan, the very one that routinely touts its cosmopolitan values. He has always been the troglodytic bully who today stands to win the Republican presidential nomination. While Hillary Clinton changes her political positions more frequently than I change underwear, Trump has shown through the decades a remarkable consistency of enthusiasms: hot women, tall buildings, gold baubles. His racism is longstanding, his misogyny mirthful. But as long as he was just peddling Trump balsamic vinegar, nobody seemed to mind.
Now that many people mind, we discover that there is very little we can do other than move to Canada, or at least Portland, Oregon. American society no longer provides a vantage point from which someone like Trump can be credibly and definitively denounced. Hence the utter futility of Mitt Romney's recent back-away-from-the-ledge plea. Frankly, I think Trump is right to spurn lectures on civility from the man who sought the endorsement of Kid Rock. Yes, he is a preposterous candidate, but it's hard to call bullshit from the gutter. If we are willing to celebrate Beyoncé as a feminist and Charlie Sheen as a spokesman for people with HIV, then why not the purveyor of Trump Steaks as the leader of the free world?
You need a high point from which to definitively deny the base appeal of someone like Trump, but in the last 60 years, the peaks of high culture have been flattened in the name of egalitarianism. We have become all too averse to shame, the power of telling someone how wrong he is. Trump preys on this relativism, a cancer of our soft intellectual tissue. Yes, it is true that the coded racism of Lee Atwater and Karl Rove are responsible for Trump's current standing in the polls. But not for his rise. For that, some of the blame belongs to the college professor who preached about how Metallica and Full House are as worthy of serious intellectual inquest as Bach and the Upanishads. If cultural judgment is cultural imperialism, then who is to say that serving as the host of The Apprentice is any less honorable than fighting at Belleau Wood? And "honor," well, that's just another hoary artifact of Western phallocentric patriarchy.
I always thought there was something touching about George H.W. Bush's utter mystification about how to use a supermarket bar code scanner during the 1992 presidential campaign. The episode made it easy to paint him as an out-of-touch patrician, but a noble impulse was at work. The guy had spent his entire life in public service, and it was refreshing that the mundanities of grocery shopping were beneath him. His rival Bill Clinton, meanwhile, was happily answering a question about boxers or briefs.
The Republican Party was once the domain of men like John Lindsay and Nelson Rockefeller: educated, urbane, courtly, aware that politics was about service, not power. The Kennedys, for all their faults, burned with a great sense of noblesse oblige. Unlike all of the above, Lyndon B. Johnson was neither a Northerner nor an Ivy Leaguer, yet to read one of his speeches on civil rights or poverty is to be reminded that there was a time when both the presidency and the nation had seriousness and purpose and, dare I say it, the very thing Trump promises to restore: greatness.
The astonishingly graceless Trump speaks at a fourth-grade level, a perfect fit for a nation that knows so little and cares even less. And since we watch five hours of television each day, his constant boasting about the ratings he brings to CNN and Fox News is as germane to most Americans as a discussion of our trade imbalances. The most frightening thing about Trump is that he meets us exactly at our level. We were the ones who emptied the public square, turning it into a wasteland; he's the one who envisioned a Trump Tower on the arid plain.
Some nations, such as Germany, have ministries of culture. We have nothing of the sort, but even if we did, such an organ would never be given the power to censor someone like Trump, to deport Justin Bieber, to shut down the Instagram account of anyone who has ever made a duck face. But it could promote, even require, more serious intellectual standards from publishers, studios and producers. Force—yes, force—people to know basic things about the nation so many of us claim to be the greatest in the history of the world. Trump is right—we have become weak. That is, weak enough in our public discourse to let an imbecile have his way with the democratic process.
I am acutely aware that this comes perilously close to advocating for autocratic control by a cultural elite, the sort of objectionable top-down state that Plato envisioned and Stalin realized. Which, I get it, would be totally un-American, but must we let every flower bloom? And must all our soil smell like shit?
These are uncomfortable questions, but they are urgent, unless we want unsubtle penis-size discussions to become a standard feature of presidential campaigns. Trump will not be the last vulgarian, sociopathic celebrity to imagine himself in the Lincoln bedroom. Far from it, in fact: Kanye West has already announced he is running in 2020. Thus, the cancer spreads.
Stopping Trump: How We Get to a Brokered Convention
Putin and Trump Share An Authoritarian Spirit


Have I really been on epz for 10 years !!!
Some really good work here, Helen. After reading about you, I know who to contact if it all gets too much! P.
Some really good work here, Helen.
After reading about you, I know who to contact if it all gets too much!
Hi Helen, you have a very Artistic eye. I very much enjoyed looking in your portfolio.
Lovely creative portfolio with lots of stunning images. Love your work.
Very creative portfolio - lots of interesting ideas and brilliant photos.
Lovely and interesting portfolio Helen!
Brilliant photography ........ And digital skills Helen..
A wonderfully creative and varied PF... I will be studying these in much more detail later! I love the duck avatar!
A wonderfully creative and varied PF... I will be studying these in much more detail later!
I love the duck avatar!
Just looking through the thumbnails, one is rewarded with immensely beautiful and well thought out compositions and creations.
Fine PF Helen. Great range of images.
Nice PF. Love the variety of styles.
Wonderful gallery of images good work.
WOW, what a great PF. I love the creativness, the use of colour and composition. Where do you get your ideas from?
A very beautiful PF Helen.Lobely images, very colourful, very artistic. How did you know it was my BD?. Regards. Elena.
A very beautiful PF Helen.Lobely images, very colourful, very artistic.
How did you know it was my BD?. Regards.
Wonderful portfolio of unique images.
A great portfolio with lots of amazing ideas and colours, thanks for your support, kind comments and help - more of the mill to follow!
A beautifully different pf here Helen.Fantastic.
A wonderfully varied and creative portfolio full of inspiring images.
A lovely creative portfolio. I certainly will be back again. WesternRed.
This is really some portfolio Helen. Marvellous. Your abstract work is absolutely stunning ! Please, for all our sakes, keep it up !
Hi Helen, Had a a look at your photographs, they are nice. Another facet of photography, your own way expressing your art!!!! Excellent!
Had a a look at your photographs, they are nice. Another facet of photography, your own way expressing your art!!!!
Finally found time to do your portfolio justice and have a good browse. Not sure what I enjoy most, your photographs, or the inspired creativity that you apply to seemingly simple images that results in such wonderful images! Had to do a portfolio comment, if I commented on each picture I liked I would be here for ages! But have added a vote to all my favourites!
I'm a new comer to photography but this portfolio is amazing - looks like a heckuva lot of inspiration, artistic talent and hard work to acheive such amazing results - don't know how you even think these up! Fantasic!
Nice Modern Art. Unusual to me.
Thanks for your comments. Love your portfolio, you must be proud of your work, so inspirational.
Hi Helenlinda, thanks for the vote on my last upload...i had to have a look at your pf and i am so glad i did!!
Extraordinary work, and very inspiring too...my congratulations.
Will come back to your pf again and again.
Wonderful portfolio.....so imaginative...I myself had tried this sort of photography several times and found it real hard to get a real result,here you have so many of them in your PF .............just great.
Thanks for the comments and clicks on my portfolio, it is much appreciated and very encouraging. You have a wonderfully extensive portfolio and so well presented. Well done.
A very creative and beautyful PF.
Wow what a PF. You certainly capture the art in photography. I don't think my imagination would see these myself. So well taken, ever so crisp and interesting. A really good element of fun in there too.
Just seen your portfolio for the first time......most impressive, your creative talents are amazing ( I have none ! )....much respect.
Some stunning work in here.
Photography is an art! You are a good artist! Excellent work!!
which I have enjoyed viewing,thank's for sharing.
what a very impressive extensive portfolio! you have covered a lot and done it all well. unique and very original. BTW, i'm honored with your visit. thanks a lot.
what a very impressive extensive portfolio! you have covered a lot and done it all well. unique and very original.
BTW, i'm honored with your visit. thanks a lot.
Dear HELEN. you have many excellent photos in your beauty portfolio .
A very strong image. It got me to take a look at your portfolio as well, very original and impressive. Cheers, Tony.
Have just looked through your portfolio: WOW!!
Sorry I've missed so much of your work lately, but I must say you abstract work is among the very best work I ever seen, never mind on EPZ.
An amazing collection; these are some of the most attractive pictures that I have ever seen.
You have very artistic mind Helen, which shows in your photography.
A superb P/F....just keep it coming.
Super portfolio with such a range of different subjects. Absolutely brilliant and I am still enjoying going through your albums. Love the Frost one.
Thanks a lot for your comments and votes. Your gallery is just great, and your sets are amazing. Really love them!
While we all have eyes to see with we mostly lack your perspicacity and inherent sense for what works graphically and tonally. My respect!
Thanks for the comment Your gallery's fantastic, I love the photos.
Your gallery's fantastic, I love the photos.
Thanks for your welcome Helen! The trouble is I can see I'm going to spend hours on this site - I shall have to ration my time!
Thank you for leaving a comment. You have got some great images here, I love your shed images.
Your abstracts stand out - you clearly have a knack for those type of shots. Well done.
Thanks for your kind comments about my portfolio - you have an eye for the abstract and unusual and as a consequence I value your feedback even more.
Lovely Pf such diversity. You take shots when most of us would keep the lens cap on,which makes for some unique and intesting shots.
Be true to yourself and let your photography speak your mind.
Thank you for your comments for my picture.
Enjoyed your portfolio very much Helen, your work is of a nice standard and variation and you pay attention to the way you present your work which shows a pride in what you do. Keep it up, I shall drop in again.
you have some cracking shots ,well composed.
I think the hardest part of photography is seeing the shot in the first place, you have the eye to see some great shots in everyday situations that most people would walk straight past and the ability to pull then off.
Yes, as has been said, the variety of the photographs is what makes your pf well worth a browse Helen, it's something I always like to see.
Thank you for your comments, like the others have said you've got some very nice images.
You have some wonderful work in your portfolio Helen. Will be keeping an eye out for more of the same.
I'm really drawn to the images in your portfolio, it's full of fresh, vibrant and original images - a talent to watch!
Thank you for your comment Absolutely great portfolio. It was a pleasure looking through it.
Thanks for your click Helen. I like your P/F.
thanks for the kind comments on my work. Most appreciated.
Love your pf. It's got such diversity and you really do make great images out of the most ordinary of subjects. I think this is going to develop into a very fine pf.
An eclectic and diverse portfolio that has been a pleasure to browse.
Interesting and great variety of images - surprised I am the first to comment.


text:
Spin the Agencies of Record
By James F. Thompson
Travelocity has booked a return ticket to McKinney, the agency responsible for the Roaming Gnome, after two years with Leo Burnett. Though the company hasn't been forthcoming with specific details regarding its return to McKinney, Travelocity's CMO, Brad Wilson did comment, "McKinney's passion for our brand and love of the Roaming Gnome is unquestioned. We are looking forward to tapping into their creative and strategic thinking immediately as we continue to tell our story to travelers."
Restaurant chain O'Charley's is focusing on the Midwest and has tapped Doner, based in Southfield, Michigan, to lead the effort, severing ties with NYC-based Merkley + Partners.
Mcgarrybowen has lost Bud Light's business after just eight months. Translation, which is currently responsible for Bud Light Lime, Bud Light Platinum and major event marketing sponsorships, will assume the transferred responsibilities.
McCann Worldgroup's Momentum unit is set to purchase ChaseDesign, a 50-year-old shopper-design consultancy. ChaseDesign brings with it more than 100 employees as Momentum seeks to capitalize on soaring growth in the shopper-marketing space.
Coke Zero has chosen Droga5 for its U.S. creative efforts, a move that follows the split between Coke Zero and CP&B, owned by MDC Partners, after seven years. Competition for Droga5 was fierce as Publicis Groupe's Leo Burnett, MDC Partners' 72andSunny, and WPP's Ogilvy each vied for the opportunity.
http://adweek.it/2kGSlXo


Pre-shrunk 50% cotton/50% polyester 5.2 ounce t-shirt. Made with up to 5% polyester from recycled plastic. Double-needle coverseamed neck with lay flat collar. Shoulder-to-shoulder tape. Double-needle sleeve and bottom hem. Tag free neck label for comfort.


SCALABLE network simulation technology delivers communications design & analysis tools and cyber training systems to organizations and institutions around the world.
Find & book summer camps in computer programming for kids in Tampa Florida. Kids discover educational & fun computer coding and game design activities.
New York Local Business Guide is what you need to kick start your business in no time. List your business with us today!
At Pierson Requirements Group, we offer business analyst training, quality assurance training, and more. Contact us today for more information!


text:
Javascript location function that returns a promise chain with a device's current location.

## Preface
Locale is a Javascript micro framework that was designed to handle retrieving the GPS location of your device.  The promise structure is a more accessible method of retrieval than the navigator API.  It is some what a facade class.

## Example
```
var deviceLocation = locale();
deviceLocation.then(function(location){
   console.log("lon: " + location.longitude + ", lat: " location.latitude);
});
```
Returns the devices location with the default options.

```
var deviceLocation = locale({enableHighAccuracy : false});
deviceLocation.then(function(location){
   console.log("lon: " + location.longitude + ", lat: " location.latitude);
});
```
Returns the devices location with the non default option enableHighAccuracy = false.

## License
The MIT License

redpajama_set_name: RedPajamaGithub


text:
Board index ‹ Minigolf ‹ General Topics
Re: nicknames
by otterpond » Fri Oct 30, 2009 8:51 pm
Donkey G wrote: How about | John "Chatty-man" Mittler
or "Supper squigy" sorry if the spelling is poor!
I think we should invent a website as an 'homage' to www.catsthatlooklikehitler.com (oh yes it does exist!)
www.catsthatlooklikemittler.com
Here's one to start you off
http://www.lolcats.com/view/28770/
otterpond
by Peter Jones » Tue Nov 22, 2011 1:57 pm
What do others think of my nickname idea I had for Alex Pragnell? - Alex 'The Grrreat' Pragnell. He could stick with the shortened version of his first name, as did Bill 'the Conqueror' Bullin, which was one of the better ones - by comparison, at least. I think Alex's is the best one I've come up with for another player.
Location: NE Wales.
by squirerichard » Tue Nov 22, 2011 2:23 pm
Peter Jones wrote: What do others think of my nickname idea I had for Alex Pragnell? - Alex 'The Grrreat' Pragnell. He could stick with the shortened version of his first name, as did Bill 'the Conqueror' Bullin, which was one of the better ones - by comparison, at least. I think Alex's is the best one I've come up with for another player.
Grrreat. He could get sponsored off of Frosties
The Proof is in the Putting.
squirerichard
Location: Parts Unknown (Luton)
by Pasi » Tue Nov 22, 2011 3:07 pm
Or sponsored by AceMan...Grrr...eat.
Pasi
by Peter Jones » Mon Nov 10, 2014 5:41 pm
I heard that Dave Gomm required a nickname - I don't know whether he had one for the Kent Open just gone. It's a difficult one for a name-based moniker, but I thought of "The Swingommeter".
I've thought of dozens of easier puns and other styles of nickname as alternatives for other players, or those without one. I'm working on one for Justin Irwin - who played in the World Crazies - author of Murder on the Darts Board, who chose "Bachelor of Darts" - suggested by a friend who was a football commentator - as part of his walk-on during his year of trying to qualify for the PDC World Championships. The principle doesn't work for minigolf: unique to be a professional dartplayer with a degree, but almost the norm for minigolfers, I'd have thought.
I'd only just thought of that one, for Dave Gomm, but it's better as "The Swing-Gomm-meter". It reads like like a Wallace & Gromitt invention, then, despite the otherwise awkward-looking dashes. "The Bouncing Gomm" was the first I'd thought of but didn't think it was up to the standard of the others I'd created.
I'd been thinking whether my own moniker would be better written as one word to assist the pun - everyone writes it without the hyphen I used, but not everyone remembered it, so I presumed they didn't realise it was supposed to be a witty variation on a famous nickname (which is usually written as one word (without a hyphen)). But I'm not sure whether it looks better as "The Crazyaced Assassin" or "The CrazyAced Assassin" - easier to read as the latter, I think.
by squirerichard » Wed Nov 12, 2014 10:53 am
Peter Jones wrote: I'd only just thought of that one, for Dave Gomm, but it's better as "The Swing-Gomm-meter". It reads like like a Wallace & Gromitt invention, then, despite the otherwise awkward-looking dashes. "The Bouncing Gomm" was the first I'd thought of but didn't think it was up to the standard of the others I'd created.
The Double-Parentheses )
by Peter Jones » Wed Nov 12, 2014 1:24 pm
The famous book about punctuation Eats, Shoots and Leaves, by Lynne Truss, used an extract from a book, that mentioned a minigolf course.
by squirerichard » Wed Nov 12, 2014 6:24 pm
Peter Jones wrote: The famous book about punctuation Eats, Shoots and Leaves, by Lynne Truss, used an extract from a book, that mentioned a minigolf course.
Popotakis had tried a cinema, a dance hall, baccarat, and miniature golf; now he had four Ping-Pong tables. He had made good money, for the smart set of Jacksonburg were always hard put to get through the rainy season: the polyglot professional class had made it their rendezvous; even attaches from the legations and younger members of the Jackson family had come there.
Evelyn Waugh, Scoop, 1938
Return to General Topics


Me and my friends have been looking at this place in SA: www.campsbaysouthafrica.com. It looks amazing and from what we´ve heard this is a safe spot to live. We have also heard that there is some great surfing around here, does anyone have any recommendations on good surf spots in that area? General suggestions on what not to miss out on is also very welcomed.


text:
11 long-lost Leeds events we haven't forgotten
Leeds has played host to some events to remember through the decades.
By Andrew Hutchinson
Updated Thursday, 13th February 2020, 9:16 am
How many of these long lost Leeds events do you remember?
The majority are woven into the social fabric of the city attracting thousands of people and providing happy memories for a generation. How many of these do you remember? And which would would most like to see make a return? CHANGING LEEDS: Demolished Leeds landmarks | Leeds International Pool | Leeds Inner Ring Road |Corn Exchange | City Square | Vicar Lane | Dark Arches LOVE LEEDS? LOVE NOSTALGIA? Join the Leeds Retro facebook group
Launched in the 1990s this colourful summer arts city centre festival was enjoyed by thousands of people. Scrapped in 2004 when council chiefs claimed it didn't offer best value for money and ruled it should be scrapped.
Celebrated city life during the late 1970s through the 1980s and into the 1990s. The parade,featuring marching bands, hundreds of majorettes alongside dozens of floats, brought huge crowds onto the streets.
It was the annual free pop party that everyone was invited to. Started in 1994 it played host to a galaxy of chart-topping artists at Temple Newsam. The music stopped in 2014.
Kirkstall Abbey was the spectacular backdrop for this classical music concert held each year at the end of September. Axed in 2015.
A classical music concert whose history dates back to 1858 with the first ever attended by Queen Victoria. Held every three years until 1985.
The now demolished Queens Hall in the city centre hosted two music festivals in 1979 and 1980 whose line ups read like a who's who of rock history. They included Hawkwind, U2, Joy Division and Echo and the Bunnymen.
Children's Day in Leeds was one of the biggest festivals of youth staged anywhere in Britain. Organised by local teachers it ran at Roundhay Park from 1922 until 1963 and included pupils from just about every school.
Opera fans flocked to Temple Newsam for thise annual celebration of the musical genre. Alfie Boe and Katherine Jenkins were just two of the big names to perform over the years. Cancelled in 2014.
Roundhay Park hosted a miliary tattoo for the Northern Command from the early 1920s until the 1960s. It was in aid of civil and military charities and welfare.
Thousands turned out to enjoy this event held at Roundhay Park in August during the late 1960s, 1970s and 1980s. Were you one of them?
Held under a big tent in Roundhay Park at the back end of the 1990s audiences were treated to performances by Northern Ballet.
Have we missed any long lost Leeds events out which should have been included? Email [email protected] or tweet him - @AndyHutchYPN
26 photo memories of Garforth in the 1990s
24 photos to take you back to Leeds in 1984
Photo memories from around Leeds in January 1999
Boodle-Am - Memories of a quirky Leeds city centre shop


text:
CAS > AUS wins top awards at the Sustainable Campus Initiative
AUS wins top awards at the Sustainable Campus Initiative
A team of faculty members and students from the Department of Biology, Chemistry and Environmental Sciences of the American University of Sharjah (AUS) College of Arts and Sciences (CAS) has won two major awards at the Sustainable Campus Initiative (SCI), Environment Agency-Abu Dhabi, EAD, held in partnership with Borouge. The awards reinforce the university's focus on research, innovation and sustainability.
In its fourth edition, SCI recognized the exemplary audits and sustainable action projects of participating universities. AUS received the awards in two categories: the Green Campus Audit 2017 and the Sustainable Action Project.
The AUS team was led by Dr. Sandra Knuteson, Lecturer of Biology, Chemistry and Environmental Sciences; Dr. Fatin Samara, Associate Professor of Biology, Chemistry and Environmental Sciences; Ashwatha Mahesh, Administrative Coordinator at the Sustainability Office; and Dr. Jeniece Tyria Lusk, Assistant Professor of International Studies. The team also included students Isra Alam, Fares Feghaly, Lameez Luqman, Zaina Nasrallah, Merilyn Clare Taculog, Azmat Fatima Siddiqui, Mais AlQadi, Sara Rafaey, Rheam Alsabti, Malicka Al-Sabti, Rawan Al-Hadeethi, Nour Attia and Ragui Nemeh.
Speaking about the recognition, Dr. Samara said:
"Creating awareness about environmental sustainability is a priority for our team. We joined the initiative in 2014 and are so excited that our efforts have been appreciated. I am very proud of the students who worked hard performing environmental audits of our campus facilities and a green action project for the community. I am sure that this experience will serve as a foundation to make them environmental leaders in the future."
Dr. Knuteson commented on the importance of the SCI Program:
"The SCI Program provides students the ability to objectively review their university with regards to sustainability measures. These measures therefore feel more relevant and can encourage students to work with the administration to improve the university's environmental and sustainability performance."
Team member Isra Alam, a senior environmental sciences major, said:
"We've been a part of the SCI initiative with Dr. Samara and Dr. Knuteson since 2014. We started with a group of five students and have now expanded to almost 20. Being involved in the activities gave us the opportunity to take an active role in the sustainable development of our campus, and we are ecstatic to see our efforts being appreciated by such a platform."
SCI serves in creating a framework to facilitate networking among the youth, challenges them to understand their own contribution to environmental impact and engages them in working constructively towards sustainable solutions for the present as well as for the long-term.
The Sustainable Campus Initiative, along with a range of other programs implemented by EAD, is supported by the Ministry of Education, Abu Dhabi Water and Electricity Authority, Abu Dhabi Distribution Company, Al Ain Distribution Company, Tadweer and the Department of Transport.


What you see below is the current cover for Joell Ortiz's latest upcoming project, simply titled: "Human".
In this forthcoming project, Joell Ortiz combines his genius mind with that of !llmind. And together, they are set to release the collaborative LP Human which is penciled in to be available to all of their awaiting fans on July 17 via: Roseville Music Group.
Speaking of Joell Ortiz — the Slaughter House rapper and Fuse TV's Total Slaughter Host brought some of the cast to Sway in the Morning a little while back. But the rapper wanted to prove to our Citizens exactly why he has been knighted as the host with the most, for one of the best competitive battle rap shows. So what did he do? He spit his own freestyle, duh.


Do you need a place for all of the mail and correspondence that presently clutters your counter or desktop? The Painted Mail Basket may be the solution. This basket hangs on the wall or on the front porch door by its leather handle and is a decorative way to collect all of those necessary envelopes.


text:
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.refactoring;

import com.intellij.codeInsight.actions.VcsFacade;
import com.intellij.find.findUsages.PsiElement2UsageTargetAdapter;
import com.intellij.history.LocalHistory;
import com.intellij.history.LocalHistoryAction;
import com.intellij.ide.DataManager;
import com.intellij.lang.Language;
import com.intellij.model.ModelBranch;
import com.intellij.model.ModelPatch;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.application.ex.ApplicationEx;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.command.UndoConfirmationPolicy;
import com.intellij.openapi.command.undo.BasicUndoableAction;
import com.intellij.openapi.command.undo.UndoManager;
import com.intellij.openapi.command.undo.UndoableAction;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.UnloadedModuleDescription;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.IndexNotReadyException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogBuilder;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.util.Factory;
import com.intellij.openapi.util.NlsContexts.Command;
import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.ThrowableComputable;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.wm.impl.status.StatusBarUtil;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.SearchScope;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.refactoring.listeners.RefactoringEventData;
import com.intellij.refactoring.listeners.RefactoringEventListener;
import com.intellij.refactoring.listeners.RefactoringListenerManager;
import com.intellij.refactoring.listeners.impl.RefactoringListenerManagerImpl;
import com.intellij.refactoring.listeners.impl.RefactoringTransaction;
import com.intellij.refactoring.suggested.SuggestedRefactoringProvider;
import com.intellij.refactoring.ui.ConflictsDialog;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.usageView.UsageInfo;
import com.intellij.usageView.UsageViewBundle;
import com.intellij.usageView.UsageViewDescriptor;
import com.intellij.usageView.UsageViewUtil;
import com.intellij.usages.*;
import com.intellij.usages.impl.UnknownUsagesInUnloadedModules;
import com.intellij.usages.impl.UsageViewImpl;
import com.intellij.usages.rules.PsiElementUsage;
import com.intellij.util.Processor;
import com.intellij.util.SlowOperations;
import com.intellij.util.ThrowableRunnable;
import com.intellij.util.containers.MultiMap;
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
import org.jetbrains.annotations.*;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.util.*;

public abstract class BaseRefactoringProcessor implements Runnable {
  private static final Logger LOG = Logger.getInstance(BaseRefactoringProcessor.class);
  private static boolean PREVIEW_IN_TESTS = true;

  protected final Project myProject;
  protected final @NotNull SearchScope myRefactoringScope;

  private RefactoringTransaction myTransaction;
  private boolean myIsPreviewUsages;
  protected Runnable myPrepareSuccessfulSwingThreadCallback;
  private UsageView myUsageView;

  protected BaseRefactoringProcessor(@NotNull Project project) {
    this(project, null);
  }

  protected BaseRefactoringProcessor(@NotNull Project project, @Nullable Runnable prepareSuccessfulCallback) {
    this(project, GlobalSearchScope.projectScope(project), prepareSuccessfulCallback);
  }

  protected BaseRefactoringProcessor(@NotNull Project project,
                                     @NotNull SearchScope refactoringScope,
                                     @Nullable Runnable prepareSuccessfulCallback) {
    myProject = project;
    myPrepareSuccessfulSwingThreadCallback = prepareSuccessfulCallback;
    myRefactoringScope = refactoringScope;
  }

  @NotNull
  protected abstract UsageViewDescriptor createUsageViewDescriptor(UsageInfo @NotNull [] usages);

  /**
   * Is called inside atomic action.
   */
  protected abstract UsageInfo @NotNull [] findUsages();

  /**
   * is called when usage search is re-run.
   *
   * @param elements - refreshed elements that are returned by UsageViewDescriptor.getElements()
   */
  protected void refreshElements(PsiElement @NotNull [] elements) {}

  /**
   * Is called inside atomic action.
   *
   * @param refUsages usages to be filtered
   * @return true if preprocessed successfully
   */
  protected boolean preprocessUsages(@NotNull Ref<UsageInfo[]> refUsages) {
    prepareSuccessful();
    return true;
  }

  /**
   * Is called inside atomic action.
   */
  protected boolean isPreviewUsages(UsageInfo @NotNull [] usages) {
    return myIsPreviewUsages;
  }

  protected boolean isPreviewUsages() {
    return myIsPreviewUsages;
  }

  private Set<UnloadedModuleDescription> computeUnloadedModulesFromUseScope(UsageViewDescriptor descriptor) {
    if (ModuleManager.getInstance(myProject).getUnloadedModuleDescriptions().isEmpty()) {
      //optimization
      return Collections.emptySet();
    }

    Set<UnloadedModuleDescription> unloadedModulesInUseScope = new LinkedHashSet<>();
    for (PsiElement element : descriptor.getElements()) {
      SearchScope useScope = element.getUseScope();
      if (useScope instanceof GlobalSearchScope) {
        unloadedModulesInUseScope.addAll(((GlobalSearchScope)useScope).getUnloadedModulesBelongingToScope());
      }
    }
    return unloadedModulesInUseScope;
  }

  public void setPreviewUsages(boolean isPreviewUsages) {
    myIsPreviewUsages = isPreviewUsages;
  }

  public void setPrepareSuccessfulSwingThreadCallback(Runnable prepareSuccessfulSwingThreadCallback) {
    myPrepareSuccessfulSwingThreadCallback = prepareSuccessfulSwingThreadCallback;
  }

  protected RefactoringTransaction getTransaction() {
    return myTransaction;
  }

  /**
   * Is called in a command and inside atomic action.
   */
  protected abstract void performRefactoring(UsageInfo @NotNull [] usages);

  @ApiStatus.Experimental
  protected boolean canPerformRefactoringInBranch() {
    return false;
  }

  @ApiStatus.Experimental
  protected void performRefactoringInBranch(UsageInfo @NotNull [] usages, ModelBranch branch) {
    throw new UnsupportedOperationException();
  }

  protected abstract @NotNull @Command String getCommandName();

  protected void doRun() {
    if (!PsiDocumentManager.getInstance(myProject).commitAllDocumentsUnderProgress()) {
      return;
    }
    final Ref<UsageInfo[]> refUsages = new Ref<>();
    final Ref<Language> refErrorLanguage = new Ref<>();
    final Ref<Boolean> refProcessCanceled = new Ref<>();
    final Ref<Boolean> anyException = new Ref<>();
    final Ref<Boolean> indexNotReadyException = new Ref<>();

    DumbService.getInstance(myProject).completeJustSubmittedTasks();

    final Runnable findUsagesRunnable = () -> {
      try {
        refUsages.set(ReadAction.compute(this::findUsages));
      }
      catch (UnknownReferenceTypeException e) {
        refErrorLanguage.set(e.getElementLanguage());
      }
      catch (ProcessCanceledException e) {
        refProcessCanceled.set(Boolean.TRUE);
      }
      catch (IndexNotReadyException e) {
        indexNotReadyException.set(Boolean.TRUE);
      }
      catch (Throwable e) {
        anyException.set(Boolean.TRUE);
        LOG.error(e);
      }
    };

    if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(findUsagesRunnable, RefactoringBundle.message("progress.text"),
                                                                           true, myProject)) {
      return;
    }

    if (!refErrorLanguage.isNull()) {
      Messages.showErrorDialog(myProject, RefactoringBundle.message("unsupported.refs.found", refErrorLanguage.get().getDisplayName()), RefactoringBundle.message("error.title"));
      return;
    }
    if (!indexNotReadyException.isNull() || DumbService.isDumb(myProject)) {
      DumbService.getInstance(myProject).showDumbModeNotification(RefactoringBundle.message("refactoring.dumb.mode.notification"));
      return;
    }
    if (!refProcessCanceled.isNull()) {
      Messages.showErrorDialog(myProject, RefactoringBundle.message("refactoring.index.corruption.notifiction"), RefactoringBundle.message("error.title"));
      return;
    }

    if (!anyException.isNull()) {
      //do not proceed if find usages fails
      return;
    }
    assert !refUsages.isNull(): "Null usages from processor " + this;
    if (!preprocessUsages(refUsages)) return;
    final UsageInfo[] usages = refUsages.get();
    assert usages != null;
    UsageViewDescriptor descriptor = createUsageViewDescriptor(usages);
    boolean isPreview = isPreviewUsages(usages) || !computeUnloadedModulesFromUseScope(descriptor).isEmpty();
    if (!isPreview) {
      isPreview = !ensureElementsWritable(usages, descriptor) || UsageViewUtil.hasReadOnlyUsages(usages);
      if (isPreview) {
        StatusBarUtil.setStatusBarInfo(myProject, RefactoringBundle.message("readonly.occurences.found"));
      }
    }
    if (isPreview) {
      for (UsageInfo usage : usages) {
        LOG.assertTrue(usage != null, getClass());
      }
      previewRefactoring(usages);
    }
    else {
      execute(usages);
    }
  }

  @TestOnly
  public static <T extends Throwable> void runWithDisabledPreview(ThrowableRunnable<T> runnable) throws T {
    PREVIEW_IN_TESTS = false;
    try {
      runnable.run();
    }
    finally {
      PREVIEW_IN_TESTS = true;
    }
  }

  protected void previewRefactoring(UsageInfo @NotNull [] usages) {
    if (ApplicationManager.getApplication().isUnitTestMode()) {
      if (!PREVIEW_IN_TESTS) throw new RuntimeException("Unexpected preview in tests: " + StringUtil.join(usages, UsageInfo::toString, ", "));
      ensureElementsWritable(usages, createUsageViewDescriptor(usages));
      execute(usages);
      return;
    }
    final UsageViewDescriptor viewDescriptor = createUsageViewDescriptor(usages);
    final PsiElement[] elements = viewDescriptor.getElements();
    final PsiElement2UsageTargetAdapter[] targets = PsiElement2UsageTargetAdapter.convert(elements);
    Factory<UsageSearcher> factory = () -> new UsageInfoSearcherAdapter() {
      @Override
      public void generate(@NotNull final Processor<? super Usage> processor) {
        ApplicationManager.getApplication().runReadAction(() -> {
          for (int i = 0; i < elements.length; i++) {
            elements[i] = targets[i].getElement();
          }
          refreshElements(elements);
        });
        processUsages(processor, myProject);
      }

      @Override
      protected UsageInfo @NotNull [] findUsages() {
        return BaseRefactoringProcessor.this.findUsages();
      }
    };

    showUsageView(viewDescriptor, factory, usages);
  }

  protected boolean skipNonCodeUsages() {
    return false;
  }

  private boolean ensureElementsWritable(UsageInfo @NotNull [] usages, @NotNull UsageViewDescriptor descriptor) {
    // protect against poorly implemented equality
    Set<PsiElement> elements = new ReferenceOpenHashSet<>();
    for (UsageInfo usage : usages) {
      assert usage != null: "Found null element in usages array";
      if (skipNonCodeUsages() && usage.isNonCodeUsage()) {
        continue;
      }
      PsiElement element = usage.getElement();
      if (element != null) {
        elements.add(element);
      }
    }
    elements.addAll(getElementsToWrite(descriptor));
    return ensureFilesWritable(myProject, elements);
  }

  private static boolean ensureFilesWritable(@NotNull Project project, @NotNull Collection<? extends PsiElement> elements) {
    PsiElement[] psiElements = PsiUtilCore.toPsiElementArray(elements);
    return CommonRefactoringUtil.checkReadOnlyStatus(project, psiElements);
  }

  public void executeEx(final UsageInfo @NotNull [] usages) {
    execute(usages);
  }

  protected void execute(final UsageInfo @NotNull [] usages) {
    CommandProcessor.getInstance().executeCommand(myProject, () -> {
      Collection<UsageInfo> usageInfos = new LinkedHashSet<>(Arrays.asList(usages));
      doRefactoring(usageInfos);
      if (isGlobalUndoAction()) CommandProcessor.getInstance().markCurrentCommandAsGlobal(myProject);
      SuggestedRefactoringProvider.getInstance(myProject).reset();
    }, getCommandName(), null, getUndoConfirmationPolicy());
  }

  protected boolean isGlobalUndoAction() {
    return CommonDataKeys.EDITOR.getData(DataManager.getInstance().getDataContext()) == null;
  }

  @NotNull
  protected UndoConfirmationPolicy getUndoConfirmationPolicy() {
    return UndoConfirmationPolicy.DEFAULT;
  }

  @NotNull
  private static UsageViewPresentation createPresentation(@NotNull UsageViewDescriptor descriptor, Usage @NotNull [] usages) {
    UsageViewPresentation presentation = new UsageViewPresentation();
    presentation.setTabText(RefactoringBundle.message("usageView.tabText"));
    presentation.setTargetsNodeText(descriptor.getProcessedElementsHeader());
    presentation.setShowReadOnlyStatusAsRed(true);
    presentation.setShowCancelButton(true);
    presentation.setUsagesString(RefactoringBundle.message("usageView.usagesText"));
    int codeUsageCount = 0;
    int nonCodeUsageCount = 0;
    int dynamicUsagesCount = 0;
    Set<PsiFile> codeFiles = new HashSet<>();
    Set<PsiFile> nonCodeFiles = new HashSet<>();
    Set<PsiFile> dynamicUsagesCodeFiles = new HashSet<>();

    for (Usage usage : usages) {
      if (usage instanceof PsiElementUsage) {
        final PsiElementUsage elementUsage = (PsiElementUsage)usage;
        final PsiElement element = elementUsage.getElement();
        if (element == null) continue;
        final PsiFile containingFile = element.getContainingFile();
        if (usage instanceof UsageInfo2UsageAdapter && ((UsageInfo2UsageAdapter)usage).getUsageInfo().isDynamicUsage()) {
          dynamicUsagesCount++;
          dynamicUsagesCodeFiles.add(containingFile);
        }
        else if (elementUsage.isNonCodeUsage()) {
          nonCodeUsageCount++;
          nonCodeFiles.add(containingFile);
        }
        else {
          codeUsageCount++;
          codeFiles.add(containingFile);
        }
      }
    }
    codeFiles.remove(null);
    nonCodeFiles.remove(null);
    dynamicUsagesCodeFiles.remove(null);

    presentation.setCodeUsagesString(UsageViewBundle.message(
      "usage.view.results.node.prefix",
      UsageViewBundle.message("usage.view.results.node.code"),
      descriptor.getCodeReferencesText(codeUsageCount, codeFiles.size())
    ));
    presentation.setNonCodeUsagesString(UsageViewBundle.message(
      "usage.view.results.node.prefix",
      UsageViewBundle.message("usage.view.results.node.non.code"),
      descriptor.getCodeReferencesText(nonCodeUsageCount, nonCodeFiles.size())
    ));
    presentation.setDynamicUsagesString(UsageViewBundle.message(
      "usage.view.results.node.prefix",
      UsageViewBundle.message("usage.view.results.node.dynamic"),
      descriptor.getCodeReferencesText(dynamicUsagesCount, dynamicUsagesCodeFiles.size())
    ));
    return presentation;
  }

  /**
   * Processes conflicts (possibly shows UI). In case we're running in unit test mode this method will
   * throw {@link BaseRefactoringProcessor.ConflictsInTestsException} that can be handled inside a test.
   * Thrown exception would contain conflicts' messages.
   *
   * @param project   project
   * @param conflicts map with conflict messages and locations
   * @return true if refactoring could proceed or false if refactoring should be cancelled
   */
  public static boolean processConflicts(@NotNull Project project, @NotNull MultiMap<PsiElement, String> conflicts) {
    if (conflicts.isEmpty()) return true;

    if (ApplicationManager.getApplication().isUnitTestMode()) {
      if (BaseRefactoringProcessor.ConflictsInTestsException.isTestIgnore()) return true;
      throw new BaseRefactoringProcessor.ConflictsInTestsException(conflicts.values());
    }

    ConflictsDialog conflictsDialog = new ConflictsDialog(project, conflicts);
    return conflictsDialog.showAndGet();
  }

  private void showUsageView(@NotNull UsageViewDescriptor viewDescriptor,
                             @NotNull Factory<? extends UsageSearcher> factory,
                             UsageInfo @NotNull [] usageInfos) {
    UsageViewManager viewManager = UsageViewManager.getInstance(myProject);

    final PsiElement[] initialElements = viewDescriptor.getElements();
    final UsageTarget[] targets = PsiElement2UsageTargetAdapter.convert(initialElements);
    final Ref<Usage[]> convertUsagesRef = new Ref<>();
    if (!ProgressManager.getInstance().runProcessWithProgressSynchronously(
      () -> ApplicationManager.getApplication().runReadAction(
        () -> convertUsagesRef.set(UsageInfo2UsageAdapter.convert(usageInfos))),
      RefactoringBundle.message("refactoring.preprocess.usages.progress"), true, myProject)) return;

    if (convertUsagesRef.isNull()) return;

    final Usage[] usages = convertUsagesRef.get();

    final UsageViewPresentation presentation = createPresentation(viewDescriptor, usages);
    if (myUsageView == null) {
      myUsageView = viewManager.showUsages(targets, usages, presentation, factory);
      customizeUsagesView(viewDescriptor, myUsageView);
    } else {
      myUsageView.removeUsagesBulk(myUsageView.getUsages());
      ((UsageViewImpl)myUsageView).appendUsagesInBulk(Arrays.asList(usages));
    }
    Set<UnloadedModuleDescription> unloadedModules = computeUnloadedModulesFromUseScope(viewDescriptor);
    if (!unloadedModules.isEmpty()) {
      myUsageView.appendUsage(new UnknownUsagesInUnloadedModules(unloadedModules));
    }
  }

  protected void customizeUsagesView(@NotNull final UsageViewDescriptor viewDescriptor, @NotNull final UsageView usageView) {
    Runnable refactoringRunnable = () -> {
      Set<UsageInfo> usagesToRefactor = UsageViewUtil.getNotExcludedUsageInfos(usageView);
      final UsageInfo[] infos = usagesToRefactor.toArray(UsageInfo.EMPTY_ARRAY);
      if (ensureElementsWritable(infos, viewDescriptor)) {
        execute(infos);
      }
    };

    String canNotMakeString = RefactoringBundle.message("usageView.need.reRun");

    addDoRefactoringAction(usageView, refactoringRunnable, canNotMakeString);
    usageView.setRerunAction(new AbstractAction() {
      @Override
      public void actionPerformed(ActionEvent e) {
        doRun();
      }
    });
  }

  private void addDoRefactoringAction(@NotNull UsageView usageView, @NotNull Runnable refactoringRunnable, @NotNull String canNotMakeString) {
    usageView.addPerformOperationAction(refactoringRunnable, getCommandName(), canNotMakeString,
                                        RefactoringBundle.message("usageView.doAction"), false);
  }

  private void doRefactoring(@NotNull final Collection<UsageInfo> usageInfoSet) {
   for (Iterator<UsageInfo> iterator = usageInfoSet.iterator(); iterator.hasNext();) {
      UsageInfo usageInfo = iterator.next();
      final PsiElement element = usageInfo.getElement();
      if (element == null || !isToBeChanged(usageInfo)) {
        iterator.remove();
      }
    }

    String commandName = getCommandName();
    LocalHistoryAction action = LocalHistory.getInstance().startAction(commandName);

    final UsageInfo[] writableUsageInfos = usageInfoSet.toArray(UsageInfo.EMPTY_ARRAY);
    try {
      PsiDocumentManager.getInstance(myProject).commitAllDocuments();
      RefactoringListenerManagerImpl listenerManager = (RefactoringListenerManagerImpl)RefactoringListenerManager.getInstance(myProject);
      myTransaction = listenerManager.startTransaction();
      final Map<RefactoringHelper, Object> preparedData = new LinkedHashMap<>();
      final Runnable prepareHelpersRunnable = () -> {
        for (final RefactoringHelper helper : RefactoringHelper.EP_NAME.getExtensionList()) {
          Object operation = ReadAction.compute(() -> helper.prepareOperation(writableUsageInfos));
          preparedData.put(helper, operation);
        }
      };

      ProgressManager.getInstance().runProcessWithProgressSynchronously(prepareHelpersRunnable,
                                                                        RefactoringBundle.message("refactoring.prepare.progress"), false, myProject);

      ApplicationEx app = ApplicationManagerEx.getApplicationEx();
      boolean inBranch = Registry.is("run.refactorings.in.model.branch") && canPerformRefactoringInBranch();
      if (inBranch) {
        callPerformRefactoring(writableUsageInfos, () -> performInBranch(writableUsageInfos));
      }
      else if (Registry.is("run.refactorings.under.progress")) {
        app.runWriteActionWithNonCancellableProgressInDispatchThread(commandName, myProject, null,
                                                                     indicator -> callPerformRefactoring(writableUsageInfos,
                                                                                () -> performRefactoring(writableUsageInfos)));
      }
      else {
        app.runWriteAction(() -> callPerformRefactoring(writableUsageInfos, () -> performRefactoring(writableUsageInfos)));
      }

      DumbService.getInstance(myProject).completeJustSubmittedTasks();

      for(Map.Entry<RefactoringHelper, Object> e: preparedData.entrySet()) {
        //noinspection unchecked
        e.getKey().performOperation(myProject, e.getValue());
      }
      myTransaction.commit();
      if (!inBranch) {
        if (Registry.is("run.refactorings.under.progress")) {
          app.runWriteActionWithNonCancellableProgressInDispatchThread(commandName, myProject, null, indicator -> performPsiSpoilingRefactoring());
        }
        else {
          app.runWriteAction(this::performPsiSpoilingRefactoring);
        }
      }
    }
    finally {
      action.finish();
    }

    int count = writableUsageInfos.length;
    if (count > 0) {
      StatusBarUtil.setStatusBarInfo(myProject, RefactoringBundle.message("statusBar.refactoring.result", count));
    }
    else {
      if (!isPreviewUsages(writableUsageInfos)) {
        StatusBarUtil.setStatusBarInfo(myProject, RefactoringBundle.message("statusBar.noUsages"));
      }
    }
  }

  private void callPerformRefactoring(UsageInfo[] usageInfos, Runnable perform) {
    final String refactoringId = getRefactoringId();
    if (refactoringId != null) {
      RefactoringEventData data = getBeforeData();
      if (data != null) {
        data.addUsages(Arrays.asList(usageInfos));
      }
      myProject.getMessageBus().syncPublisher(RefactoringEventListener.REFACTORING_EVENT_TOPIC).refactoringStarted(refactoringId, data);
    }

    try {
      if (refactoringId != null) {
        UndoableAction action1 = new UndoRefactoringAction(myProject, refactoringId);
        UndoManager.getInstance(myProject).undoableActionPerformed(action1);
      }

      perform.run();
    }
    finally {
      if (refactoringId != null) {
        myProject.getMessageBus()
          .syncPublisher(RefactoringEventListener.REFACTORING_EVENT_TOPIC).refactoringDone(refactoringId, getAfterData(usageInfos));
      }
    }
  }

  private void performInBranch(UsageInfo[] usageInfos) {
    ThrowableComputable<ModelPatch, RuntimeException> computable = () -> ReadAction.compute(() -> {
      return ModelBranch.performInBranch(myProject, branch -> performRefactoringInBranch(usageInfos, branch));
    });
    ModelPatch patch = ProgressManager.getInstance().runProcessWithProgressSynchronously(
      computable, getCommandName(), true, myProject);

    if (!ApplicationManager.getApplication().isUnitTestMode() && isPreviewUsages()) {
      displayPreview(patch);
    }
    WriteAction.run(() -> patch.applyBranchChanges());
  }

  private void displayPreview(ModelPatch patch) throws ProcessCanceledException {
    JComponent preview = VcsFacade.getInstance().createPatchPreviewComponent(myProject, patch);
    if (preview != null) {
      DialogBuilder builder = new DialogBuilder(myProject).title(RefactoringBundle.message("usageView.tabText")).centerPanel(preview);
      if (builder.show() != DialogWrapper.OK_EXIT_CODE) {
        throw new ProcessCanceledException();
      }
    }
  }

  protected boolean isToBeChanged(@NotNull UsageInfo usageInfo) {
    return usageInfo.isWritable();
  }

  /**
   * Non-ModelBranch refactorings that spoil PSI (write something directly to documents etc.) should
   * do that in this method.<br>
   * This method is called immediately after
   * <code>{@link #performRefactoring(UsageInfo[])}</code>.
   * For branch-aware refactorings, please do this work inside {@link #performRefactoringInBranch}.
   */
  protected void performPsiSpoilingRefactoring() {
  }

  protected void prepareSuccessful() {
    if (myPrepareSuccessfulSwingThreadCallback != null) {
      // make sure that dialog is closed in swing thread
      try {
        ApplicationManager.getApplication().invokeAndWait(myPrepareSuccessfulSwingThreadCallback);
      }
      catch (RuntimeException e) {
        LOG.error(e);
      }
    }
  }

  @Override
  public final void run() {
    Runnable baseRunnable = () -> SlowOperations.allowSlowOperations(this::doRun);
    Runnable runnable = shouldDisableAccessChecks() ?
                        () -> NonProjectFileWritingAccessProvider.disableChecksDuring(baseRunnable) :
                        baseRunnable;
    if (ApplicationManager.getApplication().isUnitTestMode()) {
      ApplicationManager.getApplication().assertIsWriteThread();
      runnable.run();
      return;
    }
    if (ApplicationManager.getApplication().isWriteAccessAllowed()) {
      LOG.error("Refactorings should not be started inside write action\n because they start progress inside and any read action from the progress task would cause the deadlock", new Exception());
      DumbService.getInstance(myProject).smartInvokeLater(runnable);
    }
    else {
      runnable.run();
    }
  }

  protected boolean shouldDisableAccessChecks() {
    return false;
  }

  public static final class ConflictsInTestsException extends RuntimeException {
    private final Collection<? extends String> messages;

    private static boolean myTestIgnore;

    public ConflictsInTestsException(@NotNull Collection<? extends String> messages) {
      this.messages = messages;
    }

    public static boolean isTestIgnore() {
      return myTestIgnore;
    }

    @TestOnly
    public static <T extends Throwable> void withIgnoredConflicts(@NotNull ThrowableRunnable<T> r) throws T {
      try {
        myTestIgnore = true;
        r.run();
      }
      finally {
        myTestIgnore = false;
      }
    }

    @NotNull
    public Collection<String> getMessages() {
        List<String> result = new ArrayList<>(messages);
        for (int i = 0; i < messages.size(); i++) {
          result.set(i, result.get(i).replaceAll("<[^>]+>", ""));
        }
        return result;
      }

    @Override
    public String getMessage() {
      List<String> result = new ArrayList<>(messages);
      Collections.sort(result);
      return StringUtil.join(result, "\n");
    }
  }

  protected boolean showConflicts(@NotNull MultiMap<PsiElement, String> conflicts, final UsageInfo @Nullable [] usages) {
    if (!conflicts.isEmpty() && ApplicationManager.getApplication().isUnitTestMode()) {
      if (!ConflictsInTestsException.isTestIgnore()) throw new ConflictsInTestsException(conflicts.values());
      return true;
    }

    if (myPrepareSuccessfulSwingThreadCallback != null && !conflicts.isEmpty()) {
      final String refactoringId = getRefactoringId();
      if (refactoringId != null) {
        RefactoringEventData conflictUsages = new RefactoringEventData();
        conflictUsages.putUserData(RefactoringEventData.CONFLICTS_KEY, conflicts.values());
        myProject.getMessageBus().syncPublisher(RefactoringEventListener.REFACTORING_EVENT_TOPIC)
          .conflictsDetected(refactoringId, conflictUsages);
      }
      final ConflictsDialog conflictsDialog = prepareConflictsDialog(conflicts, usages);
      if (!conflictsDialog.showAndGet()) {
        if (conflictsDialog.isShowConflicts()) prepareSuccessful();
        return false;
      }
    }

    prepareSuccessful();
    return true;
  }

  @NotNull
  protected ConflictsDialog prepareConflictsDialog(@NotNull MultiMap<PsiElement, String> conflicts, final UsageInfo @Nullable [] usages) {
    final ConflictsDialog conflictsDialog = createConflictsDialog(conflicts, usages);
    conflictsDialog.setCommandName(getCommandName());
    return conflictsDialog;
  }

  @Nullable
  protected RefactoringEventData getBeforeData() {
    return null;
  }

  @Nullable
  protected RefactoringEventData getAfterData(UsageInfo @NotNull [] usages) {
    return null;
  }

  @NonNls
  @Nullable
  protected String getRefactoringId() {
    return null;
  }

  @NotNull
  protected ConflictsDialog createConflictsDialog(@NotNull MultiMap<PsiElement, String> conflicts, final UsageInfo @Nullable [] usages) {
    return new ConflictsDialog(myProject, conflicts, usages == null ? null : () -> execute(usages), false, true);
  }

  @NotNull
  protected Collection<? extends PsiElement> getElementsToWrite(@NotNull UsageViewDescriptor descriptor) {
    return Arrays.asList(descriptor.getElements());
  }

  public static class UnknownReferenceTypeException extends RuntimeException {
    private final Language myElementLanguage;

    public UnknownReferenceTypeException(@NotNull Language elementLanguage) {
      myElementLanguage = elementLanguage;
    }

    @NotNull
    Language getElementLanguage() {
      return myElementLanguage;
    }
  }

  private static class UndoRefactoringAction extends BasicUndoableAction {
    private final Project myProject;
    private final String myRefactoringId;

    UndoRefactoringAction(@NotNull Project project, @NotNull String refactoringId) {
      myProject = project;
      myRefactoringId = refactoringId;
    }

    @Override
    public void undo() {
      myProject.getMessageBus().syncPublisher(RefactoringEventListener.REFACTORING_EVENT_TOPIC).undoRefactoring(myRefactoringId);
    }

    @Override
    public void redo() {
    }
  }
}


Your ability to trust God hinges on what you know about His character. Today, learn about the redemptive names of God and who He wants to be in your life.
Your ability to trust God hinges on what you know about His character. Monday, learn about the redemptive names of God and who He wants to be in your life.
Because every girl deserves the chance to flourish, we're sharing stories of redemption and restoration. Be inspired to join a ministry movement focused on women and girls.
Do you want to experience more of God's power? Joyce shares how the name of Jesus can change your life!
Thursday and Friday, learn more about the redemptive names of God and who He wants to be in your life.
Why should I help others?
Each week on Everyday Answers, Joyce shares wisdom from God's Word to help answer your questions about living the Christian life. On this episode, Joyce shares how you can make an impact for Christ, even during busy seasons of your life.


Our shared spaces are increasingly connected by software. But legacy devices and outdated software have made successful infiltration of infrastructures dangerously easy. Cloakware by Irdeto protects connected devices over their lifecycle from hacking and tampering and provides a real-time application response with renewable software.


It's always great for us to hear your stories of how much you enjoy eating our tasty eggs with super yellow yokes. As the winter months draw near and the weather gets colder and damper the hens become less partial to laying. This may mean that less eggs are available at certain times of the year. We do knock the sign down at the top of the lane when the hens aren't laying so well. However, we may still have a box or two left over, so if there are none in the honesty box at the top of the lane, feel free to ask us if there are any elsewhere. Generally, however, there should be plenty to go around.
Our eggs are dated and boxed ready for you to collect any time you choose.
The tender, juicy and most delicious lamb reared here at Greatworth Hall reflects our hard work throughout the spring and summer months managing our sheep flock. Once the ewes have lambed we work with them on developing the lambs to the very best standard that we can, journeying through a detailed, law abiding process that helps maintain the best class of life a budding lamb can have, meaning that the quality within the meat is preserved.
We offer boxed lamb ideal for eating fresh and for home freezing. These boxes are available with either half of a lamb or with a whole lamb depending on your preference.
If you would like to get in contact with us regarding any of our produce then please don't hesitate to head down the page to find our Contact details where plenty of information is provided for you to get in touch.


text:
Q: Get creation time of file in milliseconds Is there a way to get the creation time of a file in windows in a higher accuracy? I want to get the creation time of an mp4-video in milliseconds. Is this possible?

A: Timestamp resolution
The creation timestamp of a file in windows depends on the file system:

*

*FAT/VFAT has a maximum resolution of 2s

*NTFS has a maximum resolution of 100 ns

wmic solution
You can use wmic to retrieve the file creation date to the nearest microsecond.
Example:
F:\test>wmic datafile where name="f:\\test\\test.txt" get creationdate | findstr /brc:[0-9]
20150329221650.080654+060

The creationdate 20150329221650.080654+060 is a timestamp, with the following format:
yyyymmddHHMMSS.xxxxxxsUUU

where:

*

*yyyy Four-digit year (0000 through 9999).

*mm Two-digit month (01 through 12).

*dd Two-digit day of the month (01 through 31).

*HH Two-digit hour of the day using the 24-hour clock (00 through 23).

*MM Two-digit minute in the hour (00 through 59).

*SS Two-digit number of seconds in the minute (00 through 59).

*xxxxxx Six-digit number of microseconds in the second (000000 through 999999)

*s Plus sign (+) or minus sign (-) to indicate a positive or negative offset from Coordinated Universal Times (UTC).

*UUU Three-digit offset indicating the number of minutes that the originating time zone deviates from UTC.

stat solution
You can also use stat (from a cygwin or mingw installation).
Example:
DavidPostill@Hal /f/test
$ stat test.txt | grep Birth
 Birth: 2015-03-29 22:16:50.080654200 +0100

dir output for comparison
F:\test>dir /t:c test.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test

29/03/2015  22:16                32 test.txt
               1 File(s)             32 bytes
               0 Dir(s)  1,798,546,849,792 bytes free

Further Reading

*

*wmic

*Working with Dates and Times using WMI

*An A-Z Index of the Windows CMD command line is an excellent reference for all things Windows cmd line related.

A: A clever way is demonstrated here: https://stackoverflow.com/questions/5180592/showing-ntfs-timestamp-with-100-nsec-granularity
It's using VBScript to query WMI's CIM database and return the FILETIME structure associated to a file.
There are also open source tools that can inspect a media file's metadata, such as EXIFtool which is geared towards managing the metadata of media created by digital cameras.

A: I found a way how to obtain this in Matlab:
You can use the GetFileTime function  written by Jan Simon. If you don't want to compile your own mex files, you can also download the compiled files here.
It is not as exact as using wmic (only ms) but for my purpose it is suitable.

A: It depends on the file system: FAT has 2 second resolution, NTFS theoretically has 100 ns resolution, but the actual resolution is 10 ms. That said, interrupts have higher priority than disk I/O, and I'm not sure the effect write-caching has on the time stamp. Multimedia timers are optimized for accuracy, so would be the preferred way to implement timing.
You can use an existing tool such as XYplorer to view high-resolution timestamps, or , you may prefer to write your own application. Use the File.GetCreationTime Method; it returns a DateTime Structure with Millisecond property.

redpajama_set_name: RedPajamaStackExchange


Audio Visual Techniques is your complete audio visual equipment rental and sales support provider.
video production, and equipment rental.
Audio Visual Techniques is right in the heart of Lexington's conference areas, with convenient proximity to both the Convention Center in downtown and the hotels of Newtown Pike.
Remaining on the cutting edge is a top priority, and we constantly upgrade and rotate our inventory to ensure total customer satisfaction. You'll really look and sound your best.
While some equipment can be picked up, other equipment needs to be delivered and installed. We serve as a true technical partner, ready to provide the right service every time.
With the knowledge accrued during our vast number of years in the business, we've encountered and solved most audio and video problems that are likely to arise during an event. Put our expertise to work for you!


On behalf of the Michigan Pest Management Association I would like to welcome you to our official web site. Please take a few minutes to look around to see what the Michigan Pest Management Association has to offer the pest control industry, homeowners, general public and online media information. We are working to post a complete list of member companies and their links for information in your area. We have also put together several informative pages about the association and links to other sites for other information. We hope you find this site helpful in your search for solutions to your pest control needs.


Welcome To Becker Motor Works, Over 40 years of combined experience in the Motor Trade Industry.
Our aim is to provide a enjoyable vehicle buying experience with reassurance, trust & honesty combined in today's transparent motoring industry.
*Note: Our Warranty Provider "Warranty Assist" strictly state that No Warranties are available on any vehicles under the selling price of £1500 or over 14 years of age or over 149,000 miles.
If the vehicle you are interested is under £1500 or over 14 years of age or over 149,000 miles then the probability of it breaking down in the near future will be very high.
We are giving you our honest opinion as there are too many people that think a low priced, older than 14 years old & high mileage car will be trouble free motoring.


text: ./fingerprints omnet4/*.csv -m wireless -m adhoc -m manet -m mobileipv6 -m WirelessDHCP


This Tuesday my daughter and I were extremely lucky enough to be able to attend the Wizard of Oz musical at the Cross Insurance Center in Bangor.
The Wizard of Oz has been one of m favorite movies for as long as I can remember. My first stuffed dog I received as a child I named Toto. I dressed up as Dorothy on more than on Halloween. I have bought every collector's anniversary set of the Wizard of Oz. When I found out Wizard of Oz was coming to Bangor I was hopeful. When I received tickets as a gift and we got to attend with family I was ecstatic.
So if Broadway's Best Wizard of Oz performance comes to your town should you see it?
The musical is well worth the price and your time. The performance was perfect. The characters all their own while sticking to the story. There are many new musical numbers that are incredibly enjoyable and fit in with the play perfectly. If you bring your kids (which you should) they will be sitting on the edge of their seats in awe the whole time. I did not see one kid there whose eyes were not glued to the performance.
Kalie Kaimann was a wonderful Dorothy. Exactly the Dorothy we all love and have grown up with. She portrayed Dorothy flawlessly and her singing voice is just absolutely beautiful.
Overall I was and still am beyond words on how wonderful Broadway's Best in Bangor the Wizard of Oz performance really is. The cast, every member was spot on and perfect. The play was engaging, very well performed, and the characters are all just as you love and remember. If this musical comes to your city jump o the opportunity and go enjoy it!
This review is of my own and no one else's. I was not asked or paid to give this review. I did not receive anything in exchange for a review.
← Yes, you can homeschool!