It feels like I've been gone forever, but I'm finally back! After I got back from my vacation, all sorts of things seemed to happen at once that put sewing at the back of my mind. However, I'm very ready to start posting about projects and things I have been working on. One of the things I have made recently and adore is this girls gingham dress. It has a button up back and a ribbon waist tie, and I just can't get over how it turned out! In this post I'll be writing about how I made it.
I started with the measurements of the girl it was made for, and made a two piece bodice pattern. This was cut out of lining and the gingham fabric. I used a plain purple cotton for lining.
I made the pattern out of cardboard, so it was sturdy enough to be used again, since it is such a versatile pattern.
Next, I sewed the pieces together, making the seams invisible. Excuse the puckering in the picture, I hadn't yet trimmed around the curves and ironed it!
After this, I marked out button holes and placement on the back opening of the dress. I decided on 5 buttons on the bodice, and one that would be on the skirt, so it could be opened up enough to easily get it on and off. First I sewed the button holes.
And then I sewed the buttons on by hand.
Finally, it was time for the skirt. I gathered a piece of gingham approximately two times the waist measurement of the girl. This is where I should mention that I have a love/hate relationship with this fabric – it's so light and easy to gather, but it frays so quickly and easily! It's more delicate than I originally expected. I pinned the gathered gingham onto the bodice.
After this was sewn , I flipped the fabric right side out and ironed down seams. Then, I did up the back seam and added in the last button and button hole.
Finally it looked like a dress! I then got a piece of white ribbon, cut it to length, and put Fray Stop on the ends so it wouldn't unravel. I hand sewed this onto the waist, and finally, it was done!
The final dress was very cute and I love how it turned out!
Hopefully my posts will regular again (once or twice a week), so you can expect to hear more from me soon.
Hi – this one is very cute – was it made to order for a customer?


Privacy and data is now entwined in the national discussion about gun control. Many people have seen the interactive map posted on website of the Journal News identifying the names and addresses of all gun owners in New York's Westchester and Rockland counties. In light of the mass murder in Newtown, Connecticut, the newspaper created the map using names of addresses listed in the New York public records. Designed to inform readers about the prevalence of gun ownership in their neighborhood, the newspaper's maps have disturbed gun owners who feel the website violated their privacy rights and leaves them vulnerable to attack.
Jeff Sonderman of the website Poynter.org recently wrote an article to further the discussion of journalistic ethics when working with big datasets. Titled Programmers Explain How to Turn Data into Journalism & Why that Matters, Sonderman's piece ends with a list of considerations people should contemplate before posting personal data. Below is a very simplified summary of his factors.
Do you have a reason for publishing the data, or are you doing it "because we can"?
Are you presenting the data in a way that maximizes the benefit and minimizes the harm?
The library invites you to participate in the discussion about big data by watching the symposium live online on Wednesday, January 30.
This entry was posted in 125th Anniversary, Big Data, Library Events, Privacy Law on January 18, 2013 by Kumar Jayasuriya.


Under the initial order, a total of 900 soldiers (90 infantry sections or squads) will be outfitted with the new equipment. German infantry units due to deploy to Afghanistan in 2013 and 2014 will be the first to be equipped with Gladius. Rhenmetall received the first contract in June and has awarded Thales a subcontract for the supply of 30 unit systems (with provisions 300 soldier systems) including 310 night vision goggles (Lucie II D and 16 IR modules) and 300 SOLAR 400 EG-E UHF soldier radios. The order also includes option for the second lot of remaining 600 goggles, 192 IR modules and 600 radios.
Lucie II D, a modular NVG is providing a standard night vision goggle of the Bundeswehr. In addition to the optical performance enhancement of the night vision component as compared to the base model, the newly developed goggle for the IdZ 2 has an integrated OLED technology based data and video display. The system has a wide field of vision covering 51 degrees. The new Lucie II DIR features an image overlay over the IR image, enhancing the reconnaissance performance and night-combat capabilities for the soldier's mission. It provides the interface to the soldier's "Body Net" in the IdZ 2, enabling the display of images, terrain layout, maps or map sections, in a full image or mixed-image modes, by superimposing night vision images with tactical and status information in the upper or lower display area.
Using an optimized antenna located behind the soldier's shoulder, ensuring optimal coverage at the maximum range while also adhering to applicable health regulations. The wave form is implemented by software, is adaptable to changing requirements and, if needed, can also be ported to SVFuA, the German Software Defined Radio.
Two Li-Ion batteries with integrated SM bus provide the central, uninterruptible power supply of the control and communications system on the soldier's body. The batteries are equipped with a charge status indicator, and can be exchanged during operation due to the redundant design.


Alnwick had previously handed in a transfer request, under the belief that his first team opportunities would be limited. However the stopper withdrew his request after Quinns arrival and has now committed his long-term future to the Mackems.
The goalkeeper joins fellow first teamers Grant Leadbitter, Dean Whitehead, Liam Lawrence and Daryl Murphy who have also signed new contracts with the club.


Today's highlighted deal comes via our Online Courses section of the Neowin Deals store, where for only a limited time, you can save 80% off* this Ultimate PHP Training Bundle. Learn to build powerful web applications regardless of your skill level.
This Ultimate PHP Training Bundle normally represents an overall recommended retail pricing* of $97, but it can be yours for just $19 for a limited time, a saving of $78 (80%).


text:
Share this Story: Tom Gross: Heda Margolius-Kovaly, the woman who survived Hitler and Stalin
Tom Gross: Heda Margolius-Kovaly, the woman who survived Hitler and Stalin
Dec 20, 2010 • 11 years ago • 3 minute read
Anglo-Australian writer Clive James, reviewing the memoir of Heda Margolius-Kovaly several years ago, wrote: "Given 30 seconds to recommend a single book that might start a serious student on the hard road to understanding the political tragedies of the 20th century, I would choose this one."
Tom Gross: Heda Margolius-Kovaly, the woman who survived Hitler and Stalin Back to video
I met Heda, who was born Heda Bloch into a prosperous Czech-Jewish family and who died this month in Prague aged 91, several times over the years. And despite all she had suffered, she remained a vivacious and incredibly resilient woman, charming, thoughtful, and with a sense of fun.
After surviving Auschwitz and a "death march" to Bergen-Belsen, Heda arrived back in Czechoslovakia in 1945 at the home of a friend who had promised to be "an anchor" for the Jews deported from her circle. He greeted her with the words: "For God's sake, what brings you here?" She then ventured into the countryside to visit her family's former home (her parents were gassed upon arrival in Auschwitz), where the Czech farmer who had been allocated her confiscated property slammed the door on her with the words: "So you've come back? Oh no. That's all we've needed."
Heda's first husband, Rudolf Margolius, was a survivor of Auschwitz and Dachau. Disgusted by Fascism, he joined the Communist party and rose to become deputy minister of foreign trade. But he was then murdered as part of the notorious anti-Semitic Slansky show trial that the Czechoslovak Communist party staged in 1952 at Stalin's instigation.
There is a Middle East connection to her story in the sense that her husband was accused of being a "Zionist agent," and of "aiding and abetting capitalist Jews trying to undermine Czechoslovak socialism." Of course, this was all completely without foundation.
Having been prevented from seeing her husband for 11 months after his arrest, and after he and other targetted Jews gave false confessions extracted by torture, Heda later learned that he had been hanged and his body cremated and given to security officials for disposal. In a final indignity, a few miles out of Prague, the officials' limousine began to skid on the icy road and Rudolf Margolius's ashes were thrown under the wheels to create traction.
Heda's persecution by the communist authorities continued for years after her husband was killed, on the grounds that she was "the widow of the Zionist capitalist Jew."
She and her four-year-old son, Ivan, were hounded by the secret police and shunned by former friends. She moved into an unheated shack in the mountains, where she struggled to support herself and her young child.
"Three forces carved the landscape of my life," she wrote in the opening lines of her memoir. "Two of them crushed half the world. The third was very small and weak and, actually, invisible. It was a shy little bird hidden in my rib cage an inch or two above my stomach."
"The first force was Adolf Hitler; the second, Iosif Vissarionovich Stalin," she wrote. "The little bird, the third force, kept me alive to tell the story."
Alfred Kazin, reviewing her memoir in The New York Times
, wrote: "This is an extraordinary memoir, so heartbreaking that I have reread it for months, unable to rise to the business of 'reviewing' less a book than a life repeatedly outraged by the worst totalitarians in Europe. Yet it is written with so much quiet respect for the minutiae of justice and truth that one does not know where and how to specify Heda Kovaly's splendidness as a human being."
She eventually managed to flee Czechoslovakia in 1968, making her way to America where she was granted asylum and worked as a librarian at Harvard Law School. She returned to live in Prague after the fall of communism.
Her memoir was first published in 1973 as The Victors and the Vanquished
, and later reissued in the United States under the title
Under a Cruel Star: A Life in Prague, 1941-1968,
and in Britain under the title
Prague Farewell
Peter Brod, one of the Czech intellectuals who knew Heda well, adds that she was also a truly outstanding translator into Czech of English literature, particularly of Raymond Chandler, William Golding, Muriel Spark, Saul Bellow and Philip Roth.
Her son Ivan, who lives in London, tells me (through a mutual friend) that "she absolutely didn't want any funeral or ceremony of any kind." Nevertheless, her many admirers will find their own private ways to remember the passing of this "shy, little bird." I can think of no better way than re-reading her memoir.
The writer, a Middle East expert, was formerly Prague correspondent for the London Daily Telegraph. His work appears at www.tomgrossmedia.com.

redpajama_set_name: RedPajamaCommonCrawl


text:
Apple Quietly Drops $99 Mac Data Migration Fee
On April 2, Apple decided to drop the $99 charge for handling the transfer of all your documents, apps, user accounts, and settings to a new Mac.
https://www.pcmag.com/news/apple-quietly-drops-99-mac-data-migration-fee
Visiting an Apple Store to purchase a new Mac got $99 cheaper this month if part of that purchase required store staff perform a data migration for you. That's because Apple has quietly dropped the charge.
As TidBits reports, it used to be the case that if you took an old Mac in for repair, or purchased a new Mac and wanted the files from your old one transferring over, Apple would charge $99 to do it for you. However, tech consultant David Price discovered this month that the charge he expected to pay had been removed.
On contacting an Apple Store Operations Specialist, TidBits confirmed the charge has been dropped, with the official line being, "Beginning April 2, there will be no cost for Data Migrations with the purchase of a new Mac or Data Transfers with a repair."
It's unclear why Apple decided to stop charging for this service, but it may be because it's both a set-and-forget process and likely much less popular now due to the alternatives available including iCloud and Migration Assistant, which can be handled by the owner alone.
Moving content from one Mac ($3,149.95 at Walmart) to another has been made simple thanks to Apple's Migration Assistant, which handles transferring all of your documents, apps, user accounts, and settings. Simply open the Migration Assistant, follow the on-screen instructions, and let the software do the rest. iCloud is also available for storing all your important documents and information securely online with Apple.
Having the option for an Apple Store employee to handle the data migration for you is welcome, though, especially if you're trading in an old Mac for a new one. The fact it's now a free service could encourage more old Mac owners to recycle them through Apple as part of the purchase process.
Despite Chip Shortage, 2021 Was a Surprisingly Good Year for PC Shipments
YouTuber Makes Giant Raspberry Pi, and it Actually Works
The Best Gaming Desktops for 2022
By Matthew Buzzi
The Best Windows Mini PCs for 2022
By John Burek
About Matthew Humphries
Alongside writing for PCMag, Matthew is a video game designer and co-wrote the book Make Your Own Pixel Art (available at all good book shops). Before joining PCMag, he spent 14 years writing and editing for Geek.com, and before that, nearly founded a social network while Mark Zuckerberg was still struggling through puberty. He can probably fix your PC and will grab any opportunity to build a new one.
Read the latest from Matthew Humphries
Google Buys London Office Building for $1B
Nintendo Releases 13-Minute Pokemon Legends: Arceus Gameplay Video
Teenage Hacker Gains Remote Control of 25 Teslas in 13 Countries
Microsoft Stopped Making Xbox One Consoles in 2020
More from Matthew Humphries


text:
Your Source for Venture Capital and Private Equity Financings
Massinvestor/VC News Daily
VC DATABASE / MOBILE APP / CELEBRITY VCs / VENTURE TRACKR / ARCHIVE / ABOUT US
IM Therapeutics Raises $10M in Series A
AURORA, CO, ImmunoMolecular Therapeutics has raised $10 million in Series A financing.
Click here for more funding data on IM Therapeutics
To export IM Therapeutics funding data to PDF and Excel, click here
ImmunoMolecular Therapeutics ("IM Therapeutics"), a clinical stage company developing personalized therapies for autoimmune disease, today announced that it has raised $10 million in Series A financing to advance its novel HLA-targeted discovery platform and develop its lead drug candidate in type 1 diabetes (T1D). The funding was co-led by the JDRF T1D Fund and Morningside Ventures, with participation from the Colorado University Healthcare Innovation Fund.
IM Therapeutics was founded by world-class physician scientists at the Barbara Davis Center for Diabetes, University of Colorado. Their seminal research showed that blocking action of certain human leukocyte antigen (HLA) gene variants known to be high risk factors blocks the corresponding autoimmune response. As the first such personalized therapy approach in autoimmunity, the Company demonstrated this in a Phase 1b human study in patients recently diagnosed type 1 diabetes who were positive for the HLA DQ8 variant. The study was funded in part by JDRF. The Company is advancing its lead oral drug, IMT-002, through IND development for type 1 diabetes and expanding its core therapeutic platform of HLA blockade to other targets of autoimmune disorders including celiac disease.
"Our value has been clear since day one - getting to the root cause of autoimmunity with a targeted therapy approach and making an impact on diseases such as type 1 diabetes," said Nandan Padukone, Ph.D., CEO of IM Therapeutics. "We believe the expertise brought by the JDRF T1D Fund and Morningside Ventures will help us build a broad portfolio in autoimmune disease." Dr. Padukone worked with the T1D Fund team as an Entrepreneur-in-Residence and with IM Therapeutics founders, Drs. Peter Gottlieb and Aaron Michels, to launch the Company's platform and advance its clinical pipeline.
"We are excited to be a lead investor in IM Therapeutics and are encouraged by the early results of their lead drug in T1D," said Katie Ellias, Managing Director, at the JDRF T1D Fund. "We believe the company's platform could be a game-changer not only for T1D but also for other autoimmune diseases."
IM Therapeutics' innovative therapeutic approach is currently directed at HLA-DQ8 and DQ2 variants known to predispose individuals to both T1D and Celiac disease. HLA-DQ8 is present in about 60% of T1D patients and in 10% of Celiac disease, while nearly 100% of Celiac patients have DQ2 and/or DQ8 with DQ2 present in about 90% of Celiac disease. The Company has been the first to demonstrate in a clinical study that treating patients based on HLA DQ8 can inhibit the autoimmune response in T1D. With a robust technology platform in place that combines computational chemistry, bioassays, and rational drug design, IM Therapeutics is developing a pipeline against HLA targets in various autoimmune diseases.
Sean Doherty, Executive Chairman, JDRF T1D Fund and Dr. Jason Dinges, Investment Advisor, Morningside Ventures, have joined the IM Therapeutics Board of Directors.
About IM Therapeutics
IM Therapeutics is developing personalized medicines for autoimmune diseases by building oral drug therapies against human leukocyte antigen (HLA) variants that confer high risk of disease. The Company platform screens millions of compounds for optimal docking within HLA proteins together with rational drug design and bioassays to develop targeted therapeutic candidates. Its lead drug, IMT-002, is directed at HLA DQ8 activity for treatment of type 1 diabetes. The Company is building a broad pipeline of drugs against HLA targets in autoimmune disorders including celiac disease. http://imtherapeutics.com/
JDRF T1D Fund
The JDRF T1D Fund (https://t1dfund.org/) is a venture philanthropy fund accelerating life-changing solutions to cure, prevent and treat type 1 diabetes (T1D) through catalytic commercial investments. Through its investments in partnership with private capital, including venture capital, corporations and foundations, the T1D Fund seeks to attract the private investment necessary to advance drugs, devices, diagnostics, and vaccines into the hands of those living with T1D. The T1D Fund invests in areas strategically aligned with JDRF, the leading global organization funding T1D research, with an exclusive focus on supporting the best commercial opportunities. The T1D Fund will reinvest any realized gains into new investments to further its mission.
Morningside Ventures
Morningside Group was founded in 1986, by the Chan family of Hong Kong, to make private equity and venture capital investments. The group is managed by investment professionals who are entrepreneurial, have deep industry knowledge and are effective in the local environment in which they operate. In addition to its investment activities, Morningside Group is strongly committed to social responsibility. For more information, visit http://www.morningside.com/
(c)2011-2018 by Massinvestor, Inc. For contact info, please check out our about page.
>> Click here for in-depth research on 4,000 VC firms
© 2018 Massinvestor, Inc.
VC Database
Celebrity VCs
VentureTrackr
Funded Companies


Consumers trust word-of-mouth advertising from friends and family more than advertised content directly from brands, making influencer marketing to be the hottest, most active influencer marketing strategy on the market.
Influencer marketing is more about building honest relationships between your brand, your ideal customer, who they are already visiting online and LESS about paid advertising and direct ads.
Influencer marketing is about the relationships you build, not the number of transactions you can make.
Consumers are looking for a trusted voice in their online community, and marketers who work with influencers have the advantage to build relationships with the influencers audience and their brand.
Influencer Marketing is a form of marketing in which places focus on influential people rather than the target market as a whole. It identifies the individuals that influence potential buyers and orients marketing activities around these influencers.
Influencer marketing is a hybrid between old and new content marketing strategies that are placed into a modern-day content-driven influencer marketing campaign.
Influencer marketing is more about showing consumers your authority, credibility, and thought-leadership within your industry.
It uses a combination of online marketing influencers, celebrities (who we already know and trust), word-of-mouth marketing and other user-generated content to market and promote products and services to consumers, instead of using old, cheesy traditional advertising that continually pushes unwanted products in-front of consumers.
A person or group who has the ability or influence the behavior or opinions of others: The influencer is the individual whose effect on the purchase decision is in some way significant or authoritative.
Social media influencers are the people who have built their audience one loyal, organic follower at a time.
Marketers should only work with social media influencers who have highly engaged audiences on their social networks. This marketing influencer may have a considerable following, but you want to make sure the audience they have participates in the content they share, or it could be a total flop.
Have You Ever Heard Of Being Too Popular?
One would think that having a large following would mean higher amounts of engagement from fans and more reach, right? Actually, that's incorrect.
When a social media influencer reaches a high number of followers (<1 million), audience engagement has proven to decrease drastically.
According to Digiday, more than 55% of agency partners have incorporated micro influencers into their current Instagram marketing campaign. They also said micro influencers get an average of 2-5 times more organic engagement per Instagram post, compared to those with more than 100,000 followers.
Micro influencers tend to feel more authentic. They can connect more with their following and grow and build trust within them. Authenticity is what seems to keep followers engaged, what will continue to keep them engaged.
In the Instagram post above, this micro influencer uses her post to share a story and build a relationship with her audience.
Social influencers help create positive brand awareness, increase reach, followers, and ROI, which makes marketers want to use those people to promote their brands and marketing campaigns.
Instagram influencers have earned and became experts in their respected niches, whether it is fashion, marketing, health or lifestyle.
Instagram seems to be the most favored platform for social media influencers to use. 87.1% of influencers chose it as their number one platform for 2018, with YouTube coming in second.
Marketers have found that it's easier to target a consumers favorite influencer(s) (who they already follow and trust on social media platforms) to promote their marketing campaigns and endorse their brands.
Link to our other blog, How To Do Influencer Marketing to find tips and strategies on how to find the right social influencers for your brand.
"When using influencer marketing, the key to success is a commitment to authenticity, transparency and long-term equity building."
It's not the massive number of followers that qualifies an individual as a social media influencer, but the ability to get a response or action from an audience is what makes someone genuinely influential.
That is the most significant quality that marketers and brands are looking for in a social influencer when they are trying to expand their reach and grow their business online.
We would love to hear from you! What results have you received from using influencer marketing? Do you think influencer marketing is a success? Leave us a comment.


When photographing a starry night with a fixed tripod, use the 500 Rule to guesstimate the slowest possible shutter speed to avoid star trails.
The lone pine tree on the cliff makes a strong foreground for a classic star trail centred on Polaris.
The rule is part of a larger family of empirical rules that have been developed, mostly in the days of film photography. These help photographers quickly setup their cameras for the most common situations.
With film, in fact, the pressure was on to get it right in camera as much as possible. You could only see the results once you've developed the film.
In the digital era, however, we can check the results in real time. We can afford to be a bit sloppy and to adjust settings on the fly. Nonetheless, by learning those rules we can work better and faster even when shooting digitally.
Notable examples of such empirical rules are the sunny-16, overcast-8 and sunset-4 rules. These deal with setting a proper exposure in specific daylight conditions. And for your night time photography ,the looney-11 rule will help you to properly expose the Moon.
The idea behind the 500 rule is to provide you with an easy-to-remember formula to freeze the stars movement and to get star trails free images.
Of course, if your goal is to do star trails, you should ignore this rule. Otherwise you need to use it so that you can capture clean images of the Milky Way and the starry sky in general.
If you have a fisheye, it is worth spending a few hours under the starry sky, to capture the Milky Way. I took this on a fixed tripod by using the 500 rule to prevent star trails.
But why are you getting star trails in the first place? That's because the Earth is rotating on itself once every day. This rotation creates the rather fast 15º/hour apparent motion of stars.
The gif shows how stars move around the North celestial pole, roughly indicated by Polaris, the North Star.
In astrophotography, we make a big deal out of freezing the stars. To be rigorous, the length (in mm) of a star trail on your image will depend on the field of view of your camera-lens combination, the sensor size, the image resolution, the exposure time and the star angular speed and declination.
While this is not rocket science, the formula that links all those variables together is not the simplest one to remember and to use in the field.
If you are an occasional star shooter, knowing how to use the much simpler 500 rule will let you capture reasonably trail free starry skies.
SS is the shutter speed in seconds, FL the focal length expressed in mm and CF is your sensor's crop factor, i.e., the ratio between the size of a full frame sensor and yours.
2.7 or higher for compact cameras with a 1″-type sensor or smaller.
As far as I know, while it can be loosely related to image resolution and field of view at a specified focal length, the use of the number "500" doesn't have an actual meaning. It is an arbitrary constant chosen so that the rule will work decently in most cases.
Let's consider my Olympus OM-D EM-5 Mk II micro four thirds camera, which has a crop factor equal to 2. Now let's see how this rule works.
The image below shows how much stars are trailing when I use a shutter speed of 3 minutes with my 50mm lens on my Olympus. This exposure time is much longer than that the rule suggests.
Star trails from a 3-minute long exposure with 50mm lens on Olympus OM-D 10.
By using the 500 rule you can even get decent results when photographing bright deep sky objects such M42 (The Great Orion Nebula) using a telephoto lenses, particularly if you allow stars to trail a bit more than usual.
While the level of details will not be impressive, it will be a very satisfying experience and I would recommend you give it a try.
M42 on fix tripod. Olympus OM-D EM-10, 150mm, f/4, 3.2 seconds, stack of 50 images.
There are two common variants of the 500 rule; the 400- and 600-Rule, respectively.
In the 400-Rule, the number 500 in the formula above is replaced by 400. This results in an even shorter exposure time. With the 600-rule, the number 600 is used instead, resulting in slightly slower shutter speeds, i.e., longer exposure times.
If you want better results, you should switch to other rules, such as the NPF rule. These are more accurate and rigorous than the 500 rule.
Nowadays, you can find many star trail calculators online, as well as smartphone apps such PhotoPills. These can help you choose the best exposure time for your camera-lens combination.
The first thing to do to improve your images is to use RAW instead of JPEG. This will ensure you have the maximum flexibility when you need to edit your images.
If you are not tracking the sky movement with a tracking head, the stars will always move across the sensor. The light you can collect for each pixel depends solely on how long the star will stay over the same pixel.
You may be tempted to bump up your ISO, but this will only increase image noise, with no extra benefits.
Allowing stars to trail a bit more by using longer exposures will not help either, as the time a star will excite the same pixel will not change. You will just record a trail.
The solution is called image stacking.
By taking many photos at a fairly low ISO, each exposed according to the 500 rule, you can then combine (stack) them later on and this will dramatically improve the amount of details in the final image.
The process involves masking and aligning the sky among all the exposures, but software like Deep Sky Stacker, Sequator (windows, free) and Starry Landscape Stacker (Mac OS X, commercial) will make the whole procedure faster.
Sony RX100 Mk ii on a tripod and set to ISO 6400, 15″, 28mm EFL (equivalent focal length), f/1.8. Single RAW.
… and the final image, obtained but staking 8 different exposures. You can see how stacking has boosted details and enriched the sky.
Stack of 8 different exposures.
You can read more about image stacking in this article about editing techniques for astrophotography.
The idea behind the 500 rule is to provide an easy way to guesstimate the longest exposure time for which the stars' movement is not noticeable.
The sky rotates 360 degrees in 24 hours, or 0.0042 arc degrees per second. A full frame camera with a 24mm lens, will have an horizontal view of about a 73.7 degree.
Let's assume we have a 24 Mpx sensor (6000px X 4000px). Those 73.7 degrees are projected onto 6000 horizontal pixels, giving 81.4 pixels per degree.
Assuming a 24mm lens, the "rule of 500" gives you an exposure time of about 21 seconds (500/24).
In 21 seconds the sky will move about 0.09 degrees (0.0042*21).
For our 24 Mpx full frame camera with a 24mm lens, 0.1 degrees translates to 7.3 pixels (81.4*0.1).
Those 7.3 pixels represent the maximum acceptable movement blur before point-like stars will turn into star trails. But is this movement really acceptable?
We are used to looking at our images on a computer screen. If you blow up your full resolution image to 100%, you will see that the star is not a dot.
It turns out that if you print your image in 30x45cm format, those 7 pixels will make up a trail on your print only 0.5mm long!
If you find yourself struggling to capture that starry night sky photography, using the 500 rule (together with image stacking) will dramatically improve your results, at no extra cost.
And with the holiday season upon us, this rule is something you should remember when you find yourself under that dark, exotic sky with the Milky Way Galaxy shining strong through the night.
For more low light photography tips check out our twilight portrait or night street photography posts! Enthusiastic astrophotographers should check out our SkyWatcher Star Adventurer Review.


Luke is the boy from the wrong side of the tracks turned billionaire bodyguard CEO. Madison is his first love—and now a country superstar—who broke his heart. When Madison hires Luke for her two-week Nashville concert stop, old feelings are re-ignited. With a stalker threatening Madison's safety, can Luke protect her and reclaim their second-chance love?
A clean standalone romance in Her Billionaire CEO Series. These billionaire CEOs are good at what they do. Can they succeed in love, too?


If you've purchased an in-dash DVD player and wish to do the installation yourself to save money, here's a step-by-step guide that'll help you along the way. An item you'll need before you begin is an installation kit for your specific car. You can find one at an electronic store or a any car audio shop. Also, there are plenty of websites that are sure to have the exact installation kit you need if the selection locally is scarce. You'll need screws and a screwdriver to fit the DVD player into the installation kit. If you're a handyman but don't already have one, a multi-bit ratcheting screwdriver will make the job a lot easier. Finally, you'll need a pair of removal tools to be able to slide the head unit out. They can be called Ford removal tools or Radio removal tools, but as long as they have that horseshoe shape, they should do the job just fine. I've seen some from 4 dollars all the way up to 17 bucks. If this is only a one-time job, it's probably best to go with the cheaper model, but if you install in-dash DVD players frequently, then go with the more reliable, expensive brand.
Steps on installing a radio DVD player can vary depending on your vehicle. This guide should cover Ford, Mercury, Audi and other cars with the miniature holes used by the removal tools. So before proceeding, make sure those are present. Additionally, some Ford Focus models you just pry the CD player out with prying tools. Now that you're equipped, we're ready to begin.
With the Radio (or Ford) removal tools, slide the prongs into the available slots on the head unit. These are easy to find and are small; practical yet not diminishing the design of your dash. Once in, pull the removal tools away from each other. This action retracts the springs that hold the head unit into place inside the dash. Now just slide head unit out, exposing the wire harness and antenna cable on the back of the CD player.
Remove all the connectors from behind the CD player. There maybe buttons that you can push making it easier to disconnect each connector. After you've removed them, remove the antenna cable as well.
Slide the new radio DVD player into the installation kit designed for your specific vehicle. This is where the ratcheting screwdriver will come handy. On each side, screw in at least three screws to make a secure fit.
Connect the wiring harness to the new DVD player and then connect the antenna cable. Making sure every connection is secure, insert the DVD player into the dash. Once in, turn the vehicle on and make sure the head unit turns on as well. It's a little less work than if you were installing an overhead DVD player, but still gives you something to watch if parked.
Again, ensure that the head unit you wish to install is compatible with your vehicle. If not, you may need to do a bit more work customizing the dash so the device can fit in securely. It'd be easier to find out what size DIN your car has and find a matching DVD player. There are single DIN DVD players with motorized screens that come out when you're ready to watch a movie, and double DIN DVD players have screens that stay displayed permanently.
Adding quality dual-screen DVD players to the headrests for the people in the back is a good way to share the entertainment. Plus many in-dash DVD players have A/V inputs so you can let the people in the back view a movie playing in the front with external monitors. You can even hook up a game console.


Lend a streetwear lean to your look with this classy shorts set from Stealth. A retro but relevant layer in jersey fabric with Red & white stripes, this slim Shorts set from Stealth is track-inspired for athletic credibility and sports cool. The rough edges keeps it formal enough to continue the urban theme with high-top sneakers and a belt bag or just with a pair of sliders ! Model is wearing a Medium.


Gene Ruark Obituary, Albany, OR :: Fisher Funeral Home Inc.
1 tree0 trees planted in memory of Gene Ruark.
Gene Ruark, 73, of Albany passed away Wednesday at his home. He was born in Pomeroy, Washington to Lester and Ida (Abel) Ruark. His family moved to Albany where he attended school and graduated from Albany Union High School in 1958.
Gene served in the US Army during the Vietnam War. Gene's career was spent in banking, and he retired as a vice president of Citizens Valley Bank in 1986.
Gene married Karan Norman on July 26th, 1980 in Albany.
He is survived by his wife Karan, son Kent and wife Karla, daughter Angela (Levitt) and husband Tim, son Jaymy, five grandchildren, three great grandchildren, sister June Slaton and several nieces and nephews. During his life he was an avid hunter and loved the outdoors. He especially enjoyed going to his special spot near Roseburg for deer hunting and campfires with his sons. He was preceded in death by son Kevin, daughter Trisha, brother Verle and sister Janice Lauinger.
To plant a tree in memory of Gene Ruark, please visit our Tribute Store.


text:
Q: Laravel One to one relationship not working I am trying to get Store details,  belong to a specific user in blade template
getting this error:
 "ErrorException Trying to get property 'name' of non-object"

I can get all details in User table, error comes when i am trying to get store table data.
@forelse ($users as  $user)
<span class="col-span-1 px-2 py-1 border">{{ $user->store->name }} </span>
@endforeach

User Model
public function store()
{
      return $this->hasOne('App\Models\store');
}

store Model
public function user()
{
      return $this->belongsTo('App\Models\User' );
}

A: It works when i added below code to the livewire component class
use Illuminate\Database\Eloquent\Model;

redpajama_set_name: RedPajamaStackExchange


text:
var path = require('path')
var fs = require('fs-extra')
var assign = require('object-assign')
var browserify = require('browserify')
var babelify = require('babelify')
var glob = require('glob')
var mustache = require('mustache')
var reactDocGen = require('react-docgen')
var watchify = require('watchify')

/**
 * React Styleguide Generator
 *
 * @class
 * @param {string} input
 * @param {Object} opts
 * @param {string=} opts.output
 * @param {string=} opts.title
 * @param {string=|Object} opts.config
 * @param {string=} opts.root
 * @param {boolean=} opts.pushstate
 * @param {string[]=} opts.files
 * @param {Object=} opts.babelConfig
 * @param {Object=} opts.browserifyConfig
 * @param {Object=} opts.reactDocgen
 * @param {Object=} opts.typekit
 */
function RSG (input, opts) {
  opts = opts || {}

  this.log = require('./logger')('rsg-lib', { debug: opts.verbose || false })

  var config

  // If feeding in a direct config object
  if (opts.config !== null && typeof opts.config === 'object') {
    config = opts.config
  } else {
    config = this.readConfig(opts.config)
  }

  opts = assign(config, opts)

  opts.output = path.resolve(process.cwd(), (opts.output || 'styleguide').replace(/\/+$/, ''))
  opts.title = opts.title || 'Style Guide'
  opts.root = opts.root ? path.normalize('/' + opts.root.replace(/\/+$/, '')) : null
  opts.pushstate = opts.pushstate || false
  opts.files = opts.files || []
  opts.babelConfig = opts.babelConfig || { stage: 0 }
  opts.browserifyConfig = assign({ debug: true }, opts.browserifyConfig, {
    cache: {},
    packageCache: {},
    standalone: 'Contents'
  })

  this.input = glob.sync(input, { realpath: true })

  opts['reactDocgen'] = opts['reactDocgen'] || {}

  if (!opts['reactDocgen'].files) {
    opts['reactDocgen'].files = [input]
  }

  this.opts = opts
  this.reactVersion = require('react').version

  // stores prop documentation generated from react-docgen
  this.reactPropMetas = {}

  // files to parse for react-docgen
  this.reactDocGenFiles = this.getReactPropDocFiles()

  // Cache of file modification times so we're not re-parsing
  // files that have not changed in react-docgen for perf
  this.reactDocGenCache = {}

  // has the first-pass of parsing happened?
  this.reactDocGenInit = false

  // Cached files to include into the styleguide app
  this.cssFiles = this.extractFiles('.css')
  this.jsFiles = this.extractFiles('.js')

  this.appTemplate = fs.readFileSync(path.resolve(__dirname, './fixtures/index.html.mustache'), 'utf-8')
}

RSG.prototype.readConfig = function (file) {
  file = file === undefined ? 'styleguide.json' : file

  if (!file) { return {} }

  var src = process.cwd() + '/' + file

  this.log.info({ configFile: src }, 'Reading config file')

  return fs.existsSync(src) ? fs.readJsonSync(src) : {}
}

RSG.prototype.getReactPropDocFiles = function () {
  var files = this.opts['reactDocgen'].files
  var fileList = []

  files.forEach(function (file) {
    fileList = fileList.concat(glob.sync(file, { realpath: true }))
  })

  // remove dupes
  return fileList.filter(function (elem, pos) {
    return fileList.indexOf(elem) === pos
  })
}

RSG.prototype.genReactPropDoc = function () {
  var self = this

  return new Promise(function (resolve, reject) {

    self.reactDocGenFiles.forEach(function (file) {
      try {

        var fileStat = fs.statSync(file)

        // If we do not have the file in our cache, or the mod time has changed, parse the file
        if (!self.reactDocGenCache[file] || self.reactDocGenCache[file] && self.reactDocGenCache[file] !== fileStat.mtime) {
          var srcData = fs.readFileSync(file)

          var propMetadata = reactDocGen.parse(srcData)

          var displayName = propMetadata.displayName

          if (displayName) {
            // only check for duplicate displayNames on the first pass
            // subsequent passes, we can assume we're regenerating the prop information
            if (self.reactPropMetas[displayName] && !self.reactDocGenInit) {
              reject(new Error('displayName already exists: ' + displayName))
            } else {
              self.reactPropMetas[displayName] = propMetadata
            }
          }

          self.reactDocGenCache[file] = fileStat.mtime
        }

      } catch (e) {
        // self.log.error(e, 'react-docgen error processing: %s', file)
      }

    })

    self.reactDocGenInit = true

    resolve()
  })
}

RSG.prototype.copy = function (src, dest) {
  return new Promise(function (resolve, reject) {
    fs.copy(src, dest, function (err) {
      if (err) { return reject(err) }
      resolve()
    })
  })
}

RSG.prototype.copyAppFiles = function () {
  var src = path.resolve(__dirname, '../dist')
  var dest = this.opts.output + '/src'

  return this.copy(src, dest)
}

RSG.prototype.extractFiles = function (ext) {
  return this.opts.files
    .filter(function (file) { return path.extname(file) === ext });
 }

RSG.prototype.createHtmlFile = function () {
  this.genReactPropDoc().then(function () {
    var data = assign({}, this.opts, {
      hashbang: this.opts.pushstate ? 'false' : 'true',
      reactVersion: this.reactVersion,
      cssFils: this.cssFiles,
      jsFils: this.jsFiles,
      propMetas: JSON.stringify(this.reactPropMetas),
      typekit: this.opts.typekit
    })

    var dest = this.opts.output + '/index.html'
    var rendered = mustache.render(this.appTemplate, data)

    return new Promise(function (resolve, reject) {
      fs.outputFile(dest, rendered, function (err) {
        if (err) { return reject(err) }
        resolve()
      })
    })
  }.bind(this))
}

RSG.prototype.createReactFile = function () {
  var dest = this.opts.output + '/src/react_' + this.reactVersion + '.js'

  if (fs.existsSync(dest)) { return Promise.resolve() }

  var b = browserify({ debug: true })
    .require('react')
    .require('react-dom')

  return new Promise(function (resolve, reject) {
    b.bundle(function (err, buffer) {
      if (err) { return reject(err) }

      fs.outputFile(dest, buffer, function (outputFileErr) {
        if (outputFileErr) { return reject(outputFileErr) }
        resolve()
      })
    })
  })
}

RSG.prototype.createContentsFile = function () {
  var self = this
  var contentsInter = this.opts.output + '/src/contents-inter.js'
  var dest = this.opts.output + '/src/contents.js'
  var data = this.input.map(function (file) {
      self.log.debug({ file: file }, 'styleguide input file')
      return "require('" + file + "')"
    }
  )

  data = 'module.exports = [' + data.join(',') + ']'
  fs.outputFileSync(contentsInter, data)

  var bundle = browserify(contentsInter, self.opts.browserifyConfig)

  bundle.transform(babelify.configure(self.opts.babelConfig))
    .external('react')
    .external('react-dom')

  function distContentsFile () {
    return new Promise(function (resolve, reject) {
      bundle.bundle(function (err, buffer) {
        if (err) { return reject(err) }

        fs.outputFile(dest, buffer, function (outputFileErr) {
          if (outputFileErr) { return reject(outputFileErr) }
          resolve()
        })

      })
    })
  }

  function watchedContentsFile () {
    self.log.info('styleguide watch mode enabled')
    bundle = watchify(bundle)

    return new Promise(function (resolve, reject) {
      bundle.bundle(function(err, buffer) {
        if (err) { return reject(err) }

        fs.outputFile(dest, buffer, function (outputFileErr) {
          if (outputFileErr) { return reject(outputFileErr) }
          resolve()
        })

      }).on('data', function() {});

      bundle.on('update', function () {
        self.log.info('styleguide updating')

        Promise.all([
          self.createHtmlFile(),
          distContentsFile()
        ]).then(function () {
        }).catch(function (err) {
          self.log.error(err, 'browserify update error')
        })
      })

      bundle.on('error', function (err) {
        self.log.error(err, 'browserify error')
      })

      bundle.on('time', function (time) {
        self.log.info('styleguide rebundled in ' + time + 'ms')
      })
    })
  }

  if (self.opts.watch) {
    return watchedContentsFile();
  } else {
    return distContentsFile()
  }

}

RSG.prototype.generate = function (cb) {
  cb = cb ? cb.bind(this) : function () {}

  return Promise
    .all([
      this.copyAppFiles(),
      this.createHtmlFile(),
      this.createReactFile(),
      this.createContentsFile()
    ])
    .then(function () { cb() })
    .catch(function (err) {
      this.log.error(err)
      cb(err)
    }.bind(this))
}

module.exports = function (input, opts) {
  return new RSG(input, opts)
}

redpajama_set_name: RedPajamaGithub


text:
Trump's son-in-law set to resign as CEO of real estate biz for role in White House
Kushner, who is married to Trump's daughter Ivanka, must clear a series of hurdles before he takes any post in Washington.TNN | January 09, 2017, 08:21 IST
NEW YORK: Jared Kushner, President-elect Donald Tru- mp's son-in-law and one of his closest advisers, is taking steps to distance himself from his sprawling New York real estate business in what is the clearest sign yet he is planning to take a position in the new administration.
Kushner, who is married to Trump's daughter Ivanka, must clear a series of hurdles before he takes any post in Washington. He will need to argue that a federal anti-nepotism law that bars officials from appointing relatives to government positions does not apply to him as well as eliminate potential conflicts of interest between his family's multi-billion dollar real estate empire and his government duties.
So me Trump advisers have argued that the law does not apply to the White House, only Cabinet agencies. "The anti-nepotism law apparently has an exception if you want to work in the West Wing, because the president is able to appoint his own staff," Trump adviser Kellyanne Conway said in December.
But if Trump finds White House roles for his daughter and son-in-law, he's walking an ethical tightrope that could set a precedent for future presidents, said Norm Eisen, who served as President Obama's chief ethics counselor.
Kushner, who often has the last word with the president-elect before a major decision is made, has explored stepping away from his role as CEO of the real estate business and has consulted with federal officials about resolving potential conflicts, according to his lawyer.
"Kushner is committed to complying with federal ethics laws and we have been consulting with the Office of Government Ethics regarding the steps he would take," said Jamie Gorelick, a partner at the law firm of WilmerHale, in a statement. "Although plans are not finalised, Kushner would resign from his position at Kushner Companies and divest substantial assets in accordance with federal guidelines."
Gorelick said that Kushner "would recuse from particular matters that would have a direct and predictable effect on his remaining financial interests. He would abide by federal rules requiring impartiality in particular matters involving specific parties."
Kushner's challenges highlight a notable pattern of the incoming administration. While some government officials will be forced to divest and rearrange their financial portfolios to comply with federal ethics laws, their boss will not be required to do the same. As president, Trump is exempt from laws aimed at ensuring federal employees' personal financial interests do not influence their decisions.
Tags : Industry, trends, New York, Jared Kushner, Ivanka Trump, Donald Trump