Quantcast
Channel: Hacker News
Viewing all 25817 articles
Browse latest View live

Chinese Man Sentenced to Prison for Selling VPN Software

$
0
0

A Chinese man running a small-scale website on which he sold VPN software has been sentenced to 9 months in prison. Weibo netizens take the man’s prosecution as another sign that authorities are stepping up their fight against software that allows people to browse websites that are blocked in China.

A 26-year-old man from the city of Dongguan, Guangdong province, has been sentenced to 9 months in prison for selling VPN software through his own website.

According to China’s Supreme People’s Court (SPC) database (China Judgments Online) Deng Jiewei was found guilty for the crime of “illegal control of a computer system”, contained in Article 285 of China’s Criminal Law.

The criminal law Article states:

“Whoever violates state regulations and intrudes into computer systems with information concerning state affairs, construction of defense facilities, and sophisticated science and technology is be sentenced to not more than three years of fixed-term imprisonment or criminal detention.”

The prosecution notice, issued online on an information disclosure platform of the People’s Procuratorate (人民检察院案件信息公开网), states that the man was arrested in October of 2016 for setting up a .com website earlier last year through which he offered two types of VPN software, making a total profit of approximately 2125 US$ (14000 RMB).

The notice clarifies that the .exe software sold by Deng allowed users to circumvent China’s web censorship and visit foreign websites.

“I am scared we could all be arrested now.”

Although the sentencing took place in January of this year, the news only surfaced on Chinese social media on September 3rd, soon gaining over 6000 shares on one Weibo post about the issue, and over 4000 shares of another post that reported the sentencing.

Many netizens questioned the severity of the punishment for selling a program to browse the Internet. “The crime of wanting to know the truth and selling a ladder,” one person said, referring to VPNs as a way to ‘climb over’ the Great Firewall of China. Another Weibo user posted an image of George Orwell’s 1984 in response to the news.

One commenter sarcastically wrote: “I suggest we now also bring back the crime of counter-revolution (反革命).”

Some netizens wondered how the man could have been prosecuted under Article 285: “How can using a VPN be defined as ‘intruding into computer systems’?”, one Weibo user asked.

Another person also noted that the law concerns the intrusion of computer systems relating to ‘state affairs’, but that the prosecuted man was only running a small-scale website selling VPN software. “According to this sentencing, I am also guilty for using a VPN,” he said. Another commenter shared similar worries: “I am scared we could all be arrested now.”

Chinese authorities have introduced numerous restrictions on virtual private networks (VPNs) this year. In January, China’s Ministry of Industry and Information Technology issued a notice that it will strictly contain the unapproved use of VPNs by Chinese firms.

In July, Bloomberg News reported that the Chinese government had instructed telecommunications carriers to block VPN access by all individuals in China by February 2018. Shortly thereafter, Apple removed all major VPN apps from the App Store in China.

On Weibo, some see the prison sentence for the VPN-seller in Guangdong as another sign that authorities are stepping up their fight against software that allows users to browse blocked websites. “The dark days are coming,” one man writes.

By Miranda Barnes& Manya Koetse

Featured image by paper.wenweipo.com

©2017 Whatsonweibo. All rights reserved. Do not reproduce our content without permission – you can contact us at info@whatsonweibo.com.


BitFunnel: Revisiting Signatures for Search [pdf]

Bitcoin Tumbles as PBOC Declares Initial Coin Offerings Illegal

$
0
0

Start your day with what's moving markets in Asia. Sign up here to receive our newsletter.

Bitcoin tumbled the most since July after China’s central bank said initial coin offerings are illegal and asked all related fundraising activity to be halted immediately, issuing the strongest regulatory challenge so far to the burgeoning market for digital token sales.

The People’s Bank of China said on its website Monday that it had completed investigations into ICOs, and will strictly punish offerings in the future while penalizing legal violations in ones already completed. The regulator said that those who have already raised money must provide refunds, though it didn’t specify how the money would be paid back to investors.

It also said digital token financing and trading platforms are prohibited from doing conversions of coins with fiat currencies. Digital tokens can’t be used as currency on the market and banks are forbidden from offering services to initial coin offerings.

“This is somewhat in step with, maybe not to the same extent, what we’re starting to see in other jurisdictions -- the short story is we all know regulations are coming,” said Jehan Chu, managing partner at Kenetic Capital Ltd. in Hong Kong, which invests in and advises on token sales. “China, due to its size and as one of the most speculative IPO markets, needed to take a firmer action.”

Bitcoin tumbled as much as 11.4 percent, the most since July, to $4,326.75. The ethereum cryptocurrency was down more than 16 percent Monday, according to data from Coindesk.

Read more: The Chinese ICO crackdown -- a Gadfly column

ICOs are digital token sales that have seen unchecked growth over the past year, raising $1.6 billion. They have been deemed a threat to China’s financial market stability as authorities struggle to tame financing channels that sprawl beyond the traditional banking system. Widely seen as a way to sidestep venture capital funds and investment banks, they have also increasingly captured the attention of central banks that see in the fledgling trend a threat to their reign.

The central bank’s Monday directive made no mention of cryptocurrencies such as ether or bitcoin.

There were 43 ICO platforms in China as of July 18, according to a report by the National Committee of Experts on the Internet Financial Security Technology. Sixty-five ICO projects had been completed, the committee said, raising 2.6 billion yuan ($398 million).

“This is a positive move given the rapid proliferation of low quality and possibly fraudulent coin sales promising the moon,” said Emad Mostaque, London-based co-chief investment officer at Capricorn Fund Managers Ltd. “There is tremendous value in the model but we need to see more separation of high quality, ethical offerings versus those seeking to circumvent securities law for a quick buck.”

A cross between crowdfunding and an initial public offering, ICOs involve the sale of virtual coins mostly based on the ethereum blockchain, similar to the technology that underpins bitcoin. But unlike a traditional IPO in which buyers get shares, getting behind a startup’s ICO nets virtual tokens -- like mini-cryptocurrencies -- unique to the issuing company or its network. That means they grow in value only if the startup’s business or network proves viable, attracting more people and boosting liquidity.

Greater Scrutiny

That’s a big if, and the profusion of untested concepts has spurred talk of a bubble. The U.S. Securities and Exchange Commission signaled greater scrutiny of the sector when it warned that ICOs may be considered securities, though it stopped short of suggesting a broader clampdown. The regulator reaffirmed its focus on protecting investors, however, and said issuers must register the deals with the government unless they have a valid excuse.

A Look Inside One of the World's Biggest Bitcoin Mines

The vast amount of money amassed in a short span of time has also attracted cyber criminals, with an estimated 10 percent of money intended for ICOs looted away by scams such as phishing this year, according to Chainalysis, a New York-based firm that analyzes transactions and provides anti-money laundering software. 

The wild swings in cryptocurrency investments

Source: Bloomberg

Chu of Kenetic Capital said he believes China will likely eventually allow token sales, but only on approved platforms, and may even vet projects individually.

“I think they will allow the sale of tokens in a format which they deem safe and more measured,” he said.

— With assistance by Jun Luo

A Japanese Pen Maker Anticipated the Fountain-Pen Renaissance

$
0
0

Here’s a fact you have to write down to believe: Over the past 10 years, during which the world has adopted smartphones and social media, sales of fountain pens have risen.

Retail sales, in particular, have grown consistently. In 2016 they were up 2.1 percent from the year before, making fountain pens a $1 billion market, according to a report by Euromonitor International. To compare, the overall market for personal luxury goods—watches, handbags, cars—was stagnant over the same period, suggesting that a good pen is a better investment than the bespoke suit in which it’s stowed.

These forces are even more pronounced in the Japanese market, where a study by Yano Research Institute Ltd. finds that fountain pen sales grew a remarkable 19.1 percent from 2014 to 2015, a leap attributed in part to an increased number of foreign buyers purchasing high-end Japanese products. In the Digital Age, it seems, the written word is the ultimate luxury.

The Nakaya Fountain Pen Co., in Tokyo, was one of the first pen makers to realize this, doubling down on individual craftsmanship even as the industry as a whole began trending toward mass production. What seemed like folly 20 years ago is starting to look more and more like smart business.

Nakaya is the brainchild of Toshiya Nakata, grandson of Platinum Pen Co. founder Shunichi Nakata. Toshiya’s father, Toshihiro, was president of Platinum in the mid-1990s when several of its most experienced craftsmen announced their retirement. For Toshiya, who’d left his banking job to learn the family business at the age of 29, the news came at a precarious time: The looming threat of email had fountain pen manufacturers worried that their product was doomed to obsolescence—or at least to a shift down-market.

Fearing that the workers’ departure represented an irreplaceable loss of skills, the youngest Nakata formed Nakaya, a line that would be a wholly owned subsidiary of Platinum but work independently. “There is a limit to the mass-produced fountain pen business,” says Nakata, a lean man in rimless glasses with a brusque, matter-of-fact manner, when we meet in Nakaya’s tiny but bustling headquarters in Taito City, Tokyo.

The retirees had occasionally been called upon to repair and adjust older pens, but that wasn’t enough for Nakata. “I thought, Why don’t we make some fountain pens?” In 1999 he signed up the pensioners to return to their familiar positions. Kohsuke Matsubara, a lathe master, went back to turning pen barrels from brownish-gray ebonite, a hard rubber material. (Matsubara still turns many of the Nakaya barrels himself.) Kazuo Maruyama, a metal-press specialist, fabricated nibs and pocket clips. Sadao Watanabe hand-adjusted all of the early Nakaya pens. In 2003 designer Shinichi Yoshida was hired away from Platinum to create models for the Nakaya line.

On the 17mm-diameter Long Cigar Chinkin Dragonflies fountain pen ($4,000), designs are carved into an urushi base using chisels, lacquer is inlaid in the grooves, then metal leaf and powder are added.

Photographer: Keirnan Monaghan for Bloomberg Businessweek; Prop stylist: Theo Vamvounakis

According to Nakata, as much as 75 percent of its sales come from outside Japan—even though the company has no presence on the trade show circuit, not even at the annual Collectible Fountain Pen Supershow in Washington, billed as the “largest pen event in the world.” Nor will it be attending the London Writing Equipment Show in October, one of the biggest gatherings of its kind in Europe.

Instead, news of Nakaya spreads mainly through word-of-mouth on message boards such as Fountain Pen Geeks and on blogs, where the pens are described as “smooth,” “glossy,” “glowing,” and “poetic.” The only U.S. distributor is the online shop Nibs.com, which always has some items in stock for immediate purchase and can make minor adjustments on the fly. A few used models can be found on EBay, as well.

The ideal way to experience a Nakaya, though, is to hold it and feel it in your hand. The best way to test the pens is at one of the many impressive fountain pen emporiums in Tokyo: the vast Maruzen bookstore, a few blocks from the Imperial Palace; the airy rooms of stationery superstore Itoya, hidden among Ginza’s luxury boutiques; or the well-stocked specialist shop Kingdom Note in bustling Shinjuku.

Cruising their display cabinets can make a visitor feel as if she’s seeing double, or perhaps even octuple. The pens from Japan’s three big manufacturers—Pilot, Platinum, and Sailor—tend to look awfully similar, and after a while, the rows of dark, somber objects with metal clips and center bands can start to run together.

But even a novice can identify products from Nakaya. The first clue is the color palette, which explodes in reds, greens, pinks, ochers, cornflower blues, even bright oranges, all so shiny the pens almost appear to be underwater.

Some feature small, gold-colored pocket clips, but most are unadorned—no branding, no hardware, just cylinders of glistening lacquer. They’re the sort of sparkly item tailor-made for the Instagram era, but good luck getting the pens’ biggest fans to define their exact appeal.

“I can’t explain it,” says Brad Dowdy. The fountain pen aficionado has devoted millions of words to the merits of analog writing tools during the past decade of producing his Pen Addict blog, but when it comes to the Nakaya Portable Cigar fountain pen—his personal favorite—he’s at a loss.

Sure, the nib is butter smooth, the weight perfectly distributed, and the blue-green finish, known as ao-tamenuri, spectacular. But the Nakaya is so distinctive, it throws him for a loop. “You can feel something when you hold a Nakaya that’s different from all other pens,” he says with an air of slightly exasperated admiration.

For Brian Anderson, a longtime collector, it’s the range of customization that separates a Nakaya from the rest of the market. Anderson, who with his wife, Lisa, operates the thriving online and brick-and-mortar operation Anderson Pens out of Appleton, Wis., says the brand “is intended to be bespoke. You can have whatever model you want, whatever finish, with whatever nib.”

As long as you’re willing to wait. The company makes only about 1,500 pens per year. And because many coats of lacquer are required to create the deep, even finish Nakaya is known for, the process takes about two months to complete.

Today, almost all the newly turned barrels are shipped to Wajima, a small peninsula six hours by train to the west of Tokyo. The area’s claim to fame, and its status in Japan as an “intangible cultural asset,” is the urushi lacquerware that artisans have been creating there since the 1500s.

The smooth, lustrous finish that has become Nakaya’s calling card begins its life as the milky white sap of the urushi tree. Although the trees still grow in Wajima, the region hasn’t been able to keep up with demand, and these days the sap is usually imported from China for the undercoating; the homegrown version is used for the top layers.

Urushi sap turns a light amber when exposed to air, but once it’s been filtered to remove impurities, more colorful pigments are added, and the resulting lacquer is then painted onto the pen barrels. After each coating, the urushi must be allowed to dry—or, more properly, to absorb moisture from the air, which causes it to solidify.

From left: Naka-ai Writer Jidai Nuri pen ($800) with a 14k-gold extra-broad nib and pink gold plating; Decapod Writer Kuro-tamenuri ($750) with a gold clip; Long Cigar Ascending Dragon Heki-tamenuri ($1,500); Writer Portable Chinkoku Housoge, Kikyo Platinum ($1,350) with a 14k-gold broad nib with ruthenium plating.

Photographer: Keirnan Monaghan for Bloomberg Businessweek; Prop stylist: Theo Vamvounakis

Between layers, the urushi is painstakingly buffed to a high sheen, and on many Nakaya pens, multiple layers of a second color are applied and then polished so the first color is barely visible—where the cap meets the barrel, on the threads, or on the lip right above the nib. Nakaya’s popular 10-sided Decapod model highlights this particular effect: Where the edges meet, reds, oranges, and greens show through the darker top coats.

Given the handmade quality of the pens, the entry-level models are surprisingly affordable, starting at $650. Sailor, Nakaya’s closest competitor, starts its urushi line at $1,900; the mass-produced black-resin Montblanc 149, a classic status-symbol gift, costs about $950.

The Yano study also notes that the increasing availability of high-quality, low-cost models for entry-level users is creating brand-new fountain pen fans. The finding hints at a virtuous connection between Nakaya’s prestige line and Platinum’s full range, which includes the Preppy, a $2 refillable fountain pen for the Japanese market.

Although some partisans of Pelikan International Corp., Montblanc, and other European brands complain that Nakayas lack heft, that lightness is a boon for the people who use them. Dowdy, the Pen Addict, describes his Nakaya as “disappearing” into his hand.

Lightheartedness is also part of the Nakaya spirit. Starting in 2003, the company released a line of converters—devices that allow a pen to use bottled ink as well as a cartridge—that are hand-painted with images of seaweed, tadpoles, cherry blossoms, and maple leaves. The converters aren’t visible through the pens’ opaque barrels, making them the equivalent of Mickey Mouse boxers worn under a bespoke business suit, a hidden bit of whimsy that leaves the stylish facade intact.

In the fountain pen world there is something of a tension between collectors, people who like to play Noah and buy two of each item, and users, those who take pleasure in putting the pens through their paces. Nakayas appeal to both. They are indisputably works of art, masterpieces crafted by hand using skills refined over a lifetime. And yet a pen with a nib this good—sexy, responsive, fine-tuned to the owner’s hand—deserves to be used. It would be a crime against writing to keep it locked away in a display case.

Perfection is a modern heresy

$
0
0

Words are weird.

A Cappadocian saint, returning from theological debate in Greece, was grateful upon returning home that certain Greek heresies couldn’t even be expressed in his native language.

I got exasperated with someone this week and said:

You don’t have enough free time to get it perfect. In Latin, ‘perfect’ just means done. So get me the finished draft so we can move this to the next phase.

It made me think of the saint. I have no idea if I’m right about this Latin word, but language and the world of ideas gives us strange abstract targets to aim for.

The modern meaning of perfect, ‘ideal’, isn’t a physical object. It’s not something you can point to. And it’s not a property you can measure when you’re finished. (i.e. ‘watertight’ – we have a falsifiable test for that one).

Then why are we perfectionists?

Were we perfectionists before we had the word or was the word invented to point at someone who persists in trying to improve something that’s fine?

Chicken & egg questions aside:

If you’ve crewed a sailboat you may know the word ‘pinching’, which means that small adjustments cost you speed and you can lose a race by making too many adjustments, especially in light winds.

It’s tempting to believe we can do better than our first draft. And of course we revise, test and correct our initial work. Once that revision is done, unless you have clear ideas for how to proceed, you have to release, or you’ll be chained to this project forever.

Deliver something, anything

An intangible skill I learned in my late 20s was to deliver something, anything, and not invest ego in making it good before dropping it in the envelope. Teams (a) make things better and (b) change them for arbitrary reasons, so don’t invest in delivering something that’s ‘finished’ unless you want to watch it get ‘un-finished’ by the tender ministrations of a kitchen full of cooks.

Even in the case of solo projects, like writing a book, some writers separate drafting from editing. Most recently I heard David McCullough (the pop history writer) describe his editing self as a different person whose job is to make crappy first drafts acceptable.

People say ‘the perfect is the enemy of the good’. I prefer ‘the ego is the enemy of the done’. Having a measurable line for final product lets you move on to the next thing.

I know people who are horrified by the idea of measuring completion objectively (500 words) rather than via art or intuition. I don’t agree, at least not where deadlines are involved. We need to be very clear about what, when & how much we’re delivering or we’ll never hit those targets.

Lego instructions

Being able to say what you’re going to do and then do it, rather than figuring it out as you go along, is a big part of expertise. I spent this weekend with a pre-kindergarten relative whose brain is just starting to turn on. He can do every step of lego assembly by himself but can’t chain the steps together on his own yet, and knows that and asks for help. This sounds absurd, but I think it’s normal: the only help he needs is a 5-minute reminder to turn the page.

People talk about executive functioning like it’s a general thing, but I’m just as helpless as my nephew when digging into a new codebase or project. Spending all your energy on details means having no attention left over to plan. Each problem you solve becomes an all-consuming distraction.

Software estimation

I’ve experienced the tug of war between perfection and deliverability (deliverance?) directly in software estimation. It’s hard to see more than a week out because anything that takes more than a week to build involves R&D (or at least some tuning).

You’ve probably heard the line ‘no plan of action survives first contact with the enemy’ but I just read the whole quote and really like it:

The tactical result of an engagement forms the base for new strategic decisions because victory or defeat in a battle changes the situation to such a degree that no human acumen is able to see beyond the first battle. In this sense one should understand Napoleon’s saying: “I have never had a plan of operations.”

Therefore no plan of operations extends with any certainty beyond the first contact with the main hostile force.

(That’s Helmut von Moltke, a military leader in 19th-century germany.)

Mike Tyson said it even more concisely:

Everyone has a fight plan til they get punched in the face.

To me that means we should plan to do as little as possible to win. Not because we’re lazy, but because our eyes are bigger than our stomachs when it comes to planning for the future. Setting conservative goals that can be achieved under difficult condition is as big a factor in success as setting smart goals.

Notes

Fish are eating lots of plastic

$
0
0

As you bite down into a delicious piece of fish, you probably don’t think about what the fish itself ate — but perhaps you should. More than 50 species of fish have been found to consume plastic trash at sea. This is bad news, not only for fish but potentially also for humans who rely on fish for sustenance.

Fish don’t usually die as a direct result of feeding on the enormous quantities of plastic trash floating in the oceans. But that doesn’t mean it’s not harmful for them. Some negative effects that scientists have discovered when fish consume plastic include reduced activity rates and weakened schooling behavior, as well as compromised liver function.

Most distressingly for people, toxic compounds that are associated with plastic transfer to and bioaccumulate in fish tissues. This is troubling because these substances could further bio­accumulate in people who consume fish that have eaten plastic. Numerous species sold for human consumption, including mackerel, striped bass and Pacific oysters, have been found with these toxic plastics in their stomachs.

It is well known that plastic trash poses a serious threat to marine animals, but we are still trying to understand why animals eat it. Typically, research has concluded that marine animals visually mistake plastic for food.

While this may be true, the full story is probably more complex. For example, colleagues at the University of California at Davis and I showed in a recent study that plastic debris may smell attractive to marine organisms. That study focused on seabirds, but now my co-authors and I have found that plastic trash has a similar effect on anchovies— a critical part of ocean food chains.

Sniffing out the role of smell

Olfaction (smell) is a very important sense for marine animals, including fish. Sharks can smell minute quantities of blood over long distances, which helps them find prey. And scientists believe that salmon’s sense of smell helps them navigate up rivers to spawn in the specific tributaries where they were born. Fish may use their sense of smell in behavioral contexts including mating, homing, migrating and foraging.

We tested the idea that plastic debris might smell attractive to the northern anchovy (Engraulis mordax), a common schooling fish found off the west coast of North America. Known as forage fish, anchovies are critically important species ecologically and economically. Unfortunately, they have also been found to eat plastic in the wild.

Working with anchovies is challenging because they require very specific water conditions and school size to behave normally. They need to be in cold, fast-flowing water in schools of at least 100 individuals. When that happens, the anchovies display their contentment by swimming slowly and directly into the flow of water, a behavior known as positive rheotaxis. Luckily, we were able to collaborate with the Aquarium of the Bay in San Francisco, where they have expertise in keeping these fish happy and healthy.

Our olfactory experiment

When we started the experiment, we did not know whether adult anchovies used their sense of smell to find food at all, let alone whether smell might lead them to consume plastic. To test our hypothesis that it would, we soaked krill (tiny, shrimplike crustaceans that anchovies eat) or plastic debris and clean plastic in seawater for several hours, allowing the water to take on the smell of the material steeping in it. We then filtered our krill and plastic “tea,” presented it to the anchovy schools, and observed their behavior.

When fish are searching for food in groups, their behavior changes in predictable ways: They clump together near the interesting stimulus and dart around, altering their body position relative to the water current. To compare how anchovies responded to the scents of krill and plastic, we hung a specially designed apparatus with a GoPro camera attached over their tank to film the school’s behavior from above.

In addition to analyzing what anchovies did when they detected these odors, we filmed the anchovies’ behavior while feeding on krill and when they were presented with control treatments of unscented seawater. This gave us baseline information about the schools’ behavior, which we could compare to their responses when they were presented with the different odors.

Using a combination of automated computer analyses and diligent observer scoring, we evaluated how tightly the schools clumped together and how each fish’s body positioning relative to the direction of water flow changed before and after adding an odor solution to the tank. As we predicted, when the anchovies were feeding, schools became more densely clumped and changed their body positioning so that instead of all fish facing directly into the oncoming current, their bodies aligned more haphazardly as they searched for food morsels. In the control treatments, with no food or food odors present, we did not observe these changes.

When we injected seawater scented with krill into the tank, the anchovies responded as if they were searching for food — which in this case was not there. When we presented them with seawater scented with odors of plastic debris, the schools responded in nearly the same way, clumping together and moving erratically as they would if they were searching for food. This reaction provided the first behavioral evidence that a marine vertebrate may be tricked into consuming plastic because of the way it smells.

Reducing plastic pollution

This research confirms several things. First, we showed that northern anchovies use odors to locate food. This may sound intuitive, but before we did this study there was scant behavioral evidence that adult forage fish such as anchovies, sardines and herring used smell to find food.

Our main finding was that plastic debris is probably confusing for marine consumers because of both its appearance and its smell. That’s a problem, because if plastic looks and smells interesting to fish, it will be very hard for them to discern that it is not food.

This study also suggests that our consume-and-dispose culture is coming back to haunt us via the fish we eat. The next big question that it raises is whether plastic-derived contaminants can be transferred from plastic-eating fish to fish-eating humans.

One way to mitigate the problem is to figure out why animals confuse plastic for prey so frequently, and our research has helped to do that. However, everyone can do something right now about ocean-plastic pollution by avoiding single-use plastic items and recycling plastic upon disposal. There is more work to be done, but we know enough now to make substantial headway on this global environmental issue.

This article was originally published on theconversation.com.

The N-Queens completion problem is NP-hard

$
0
0
The problem may not be intrinsically challenging by nature, but increasing the size of the board pushes it from complex to nigh impossible.
The problem may not be intrinsically challenging by nature, but increasing the size of the board pushes it from complex to nigh impossible. Public Domain

Faced with seemingly unsolvable problems, historically, people get creative, whether a sword through the Gordian Knot or the threat of one through a disputed baby. But a seemingly “simple” chess problem will require a sharper solution—so sharp, in fact, that researchers at the University of St. Andrews in Scotland are offering a $1 million reward.

The riddle, known as the Queens Puzzle, was devised in 1850. Eight queens must be placed on a standard chessboard so that no two pieces can take one another. According to a release from the university, “This means putting one queen each row, so that no two queens are in the same column, and no two queens in the same diagonal.” Solutions are not hard to imagine, but the problem becomes more complex when the chessboard grows—say 100 queens on a 100-by-100 chessboard. When the numbers start getting really large, computer solutions are unable to solve it.

Any program that could do so will be far more powerful than anything we currently have, said Professor Ian Gent, a computer scientist at the university. “If you could write a computer program that could solve the problem really fast, you could adapt it to solve many of the most important problems that affect us all daily.” This program, he said, would be able to decrypt even the toughest online security, something that would take current software thousands of years to unravel, by scrolling through and then discarding an almost infinite number of solutions until one works. His colleague, Peter Nightingale, questioned whether this is even be possible. “What our research has shown is that—for all practical purposes—it can’t be done,” he says. Hence the massive prize offer.

Although it’s hard to prove definitively, historians believe chess was invented in around the year 570, in what is now northeastern India. There is no shortage of famous chess puzzles, many of which remain unsolved to this day. A more recent development, however, has come in the writing of programs that create or solve problems too difficult or time-consuming for humans to do unassisted.

Some of these programs are so complicated that even their designers don’t fully understand how they work. Chesthetica, a program written by the computer scientist Azlan Iqbal, generates hundreds of problems, using digital synaptic neural substrate (DSNS) technology. “One might ask where does Chesthetica ‘get its ideas’?” writes Iqbal in Chess News. “I do not know. How or why should a computer be able to compose chess problems like these at all? Can computers autonomously do this sort of thing? These are also good questions and I believe the answer lies with the DSNS technology.” Why it works, he explained, remained an open question—but, somehow, it does. Maybe the large Queens puzzle–solving program will be similarly inscrutable.

Tell me what your company does

$
0
0

Meltwater is a company with a simple product: A database of media contacts. These contacts are otherwise hard to find, as most reporters don’t want every “disruptive” startup out there calling them to beg for a story. Yet for a few thousand dollars a year, Meltwater will give you reporters’ emails and phone numbers — placing you one step closer to that elusive “Featured On:” banner.

It’s a simple product. It has a simple value proposition. It should not be difficult to explain to potential customers.

And yet, the first thing you see on Meltwater’s Web 20.17 parallax-ed bootstrap-ed responsive home page is the title card confidently declaring “Welcome to Outside Insight”. Behind it, a video plays, showing, in order: A laptop being placed on a desk. A globe resting on a shelf. A coffee cup being set down. A clock ticking.

What?

Perhaps we’ll see what this company does, what their product is, if we scroll past the first fold…“See how you can use media intelligence to inform strategy, connect with your audience, and measure success.” A button invites us to try a demo, but doesn’t bother to mention what this might be a demo of — clicking it takes us to a contact form, which seduces us with the promise,“Learn how to take your PR and social media marketing programs to the next level”.

At this point, I’ve given up. I’m back to Google, back to searching for a database of media contacts, because even though I came to the Meltwater page knowing exactly what I wanted, I have no idea what they offer.

The New Normal

In reality, when I first encountered Meltwater a year ago, I ended up purchasing their product. I eventually blasted through the confusion of the first page to a phone number near its bottom, and soon was speaking with a human about what the company’s product was. The human told me things that could’ve been explained in five sentences on a landing page, but hey, at least they got a commission out of it.

I barely noticed the Kafkaesque horror of that landing page. I wasn’t fazed that I couldn’t decipher whether Meltwater was a global logistics firm or an office feng shui consultancy. I didn’t mind: Because this was what I’d come to expect from this decade’s websites.

More and more often, upon discovering a new company or product, I visit their website hoping to find out what it is they do, but instead get fed a mash of buzzwords about their “team” and “values”. And this isn’t a side dish — this is the main entrée of these sites, with a coherent explanation of the company’s products or services rarely occupying more than a footnote on the menu.

The examples are countless, and Meltwater only came to mind because I had an email from them in my inbox when I began writing this piece. But, oh, I’ve wanted to talk about this for such a long time, let’s just look at another two of the more… acute cases.

Optimizely

“Good afternoon! Innovation is all around you. Ready to tap into it?”

When my good friend called to say he’d landed a job at this fast-growing company, I wanted to see what on earth they did. The greeting in the first fold made me think, pyramid scheme, probably.

The second fold was a relief: “Be bold. Let your whole team play. Experiment everywhere”, with subheadings “Make your digital channels work harder”, “Deliver exceptional customer experiences”, and “Turn a one-time ‘like’ into long-term ‘love”. Ah yes, no multi-level marketing here. Just another useless analytics tool with nothing of substance to provide.

84.51˚

“We believe in making people’s lives easier”

Probably a pharmaceutical firm, the background image of a laughing father and daughter imply some sort of life-saving drug.

“Our unique, long-term approach to data analytics helps us provide a whole new depth of understanding and a higher level of insight for our customers.”

Aha so you make charts because you work with data sets that can’t fit into Excel. But what kind of data sets? Let me just click on “01: Who we are”…

“We make people’s lives easier. Simple idea, right? Not exactly.”

You know what’s a simple idea? Telling me what your company does.

“We define ‘people’ as our associates, customers, clients and the communities we serve, and we work hard to achieve a deep, personal understanding about all of them. Implementing the learnings — to make their lives easier — is the hard part. Whether it’s shown through offering unparalleled workplace culture and benefits, providing targeted and useful content or using data to help retail strategies come to life, we have the tools to ensure that, depending on which people we’re serving, we can make it work.”

…and I’m out.

I actually came to this site because I was looking for a very specific database: Sales of consumer goods, per item, per week, in all Kroger stores. Numerous blogs had told me that 84.51 was a company co-owned by Kroger, and initially set up to provide this very product. Yet after spending 15 minutes on a site that looks like it belongs in the MoMA, I gave up and turned to Nielsen, which offers a similar product (and is antiquated enough as a company to feature “content” and “product explanations” on their website).

What’s Going On?

I’m not writing this piece for lack of emails to answer or work to do, I’m writing it because today, I finally snapped. I’ve been putting up with these websites more and more in the past few years. Especially so after founding Carpe Lotion three years ago, and seeing, for the first time, the world of B2B services.

I’m confident that most people in the day-to-day of business will agree — the more expensive the service a B2B company provides, the more incomprehensible its website. When you’re getting your first domain, GoDaddy and NameCheap will tell you that, yeah, that’s what they do: They will sell you a domain. When you’re looking to host it, the marketing copy becomes a bit more flowery (what’s the ‘app dependency matrix’?), but you still know what you’re buying. Need online accounting software for your small business? Xero’s home page says “Online accounting software for your small business”.

This is what websites should be, this is when you think — oh this is nice, I know what’s going on.

But then you start looking for a marketing firm, maybe to help you buy some TV commercial spots. “Creativity. Measurability. Accountability.”, TandemROI’s home page creatively states.

Or you’re looking for a broker to take your products to retail, and Niche Products Inc.’s home page tells you their function is “Serving companies from around the world”. Hopefully not with subpoenas.

You persist, though, and those websites eventually relent, telling you what it is their companies do.

And then you get to the level where, even when you’re referred to a company, even if a friend or an article tells you exactly what they do, you get to their website and you start doubting everything. This is the level Meltwater is on, the level Optimizely is on, and the level 84.51 is on.

This is the level where persistence is useless, and resistance is futile.

Why do the big companies with the big products do it? Do they lack self-awareness? Do they have nothing of value to provide, and hide behind flowery marketing babble that’s as empty as their offering? Maybe, but I think this is unlikely. These are big companies, and they’re smart companies.

I think the big companies do it to get you on the phone — so they can upsell. Meltwater’s reps nearly talked me into paying thousands of dollars more per year for a few extra features. I haven’t spoken with the folks at Optimizely and 84.51, but I assume they have a similar strategy. After all, when all the products are laid out in a nice table online, with a few scary X’s and some nice green checkmarks, it’s easy to make a reasonable choice. When you’re talking with a salesperson who really knows how to play up those X’s, you’re likely to give up a lot more money.

So for the big companies, I truly believe these confusing websites, these websites that avoid at all costs telling you what the company actually does, are a deliberate tactic. Not to get leads, because I’m sure they realize they’ll lose a few in their artistic mess of a homepage. But to turn the leads they’d get anyway into overpaying customers.

And while I do my best to vote with my wallet and avoid companies that follow this tactic when I can, the big boys doing this stuff doesn’t surprise me. The real tragedy is when this standard of newspeak homepages trickles down to startups.

storytelling.io

When kids like me start companies, we don’t know what we’re doing — so we learn by imitation. There’s so much that needs to be written, so many things that need to be established: Customer service numbers, letterheads, financial projections — things we’ve never made before but need to crank out just to get started. With a few of these mandatories, we have a strong idea of how we’ll be “different” and “unique”. But with most things, whether we realize it or not, we copy what we see out there — so that we look legitimate.

Unfortunately, with the proliferation of high-profile obfuscation homepages, more and more entrepreneurs are seeing these as models to emulate. That, or they think the Free Responsive Parallax Template they downloaded was made just for them, and that “Our Team Works Wonders” isn’t simply this decade’s “Lorem ipsum”.

And maybe there are a few people out there who see yet another website which opens with “Simple, elegant solutions for your most challenging needs”, and think oh these guys are legit, but I guarantee you that the tide is turning, and more and more people see that and think oh these guys make nothing of substance.

And look, if your startup’s beautiful, award-winning homepage opens with a rotating box that says “We are: innovative — excited — intense — passionate”, I’m not saying you’re a bad person. We’ve all made far worse mistakes with our companies.

But please, for your sake and for the sake of everybody who’ll ever come across your website, realize it’s a mistake. Learn from it. “A one-stop shop for finding media contacts”. “The simplest website A-B testing tool on the market”. “A comprehensive and analytical insight to retail sales”. “A treatment for sweaty hands and feet”. These are what titles used to be, and this is what they should be. They should tell people who you are, what you do, and maybe even why they should be interested.

But they should not look to dazzle with style over substance. They should not make vague promises that can neither be kept nor broken. They should not be applicable to every company that can afford marketing consultants.

So please, when you’re building your homepage, unless you’re Meltwater or Optimizely and trying to badger me into picking up the phone and calling your salespeople and telling everybody I know to avoid your company — please, for the love of God, please just tell me what your company does.

*TandemROI and Niche Products are both great companies that I love working with — sorry for picking on you guys!


Ask HN: Resources for building a programming language?

$
0
0

I'd probably start by using Racket (Racket is a scheme is a lisp) which has a whole toolkit for language building. Arc is written this way, for instance. Often these are lispy languages but there is no reason they have to be. A starting point: http://beautifulracket.com/stacker/ or https://www.hashcollision.org/brainfudge/

That will get you started rediculously quickly and give you things like GC and JIT for free. You can always implement it outside of racket once it starts to take further shape


There are tons of resources on implementing languages (interpreters, JITs, and normal compilers), but I haven't seen that many good resources on PL design. Something like recently discussed Graydon Hoares post[1], but bit more approachable for an outsider and maybe less focused on the very bleeding edge.

[1] https://news.ycombinator.com/item?id=15051645


I would recommend keeping your hands clean and using ANTLR [1]. ANTLR4 is powerful lexer/parser generator. LL(*) is ridiculously powerful. Also, ANTLR is well documented and the his book [2] is quite readable.

[1] www.antlr.org

[2] https://pragprog.com/book/tpantlr2/the-definitive-antlr-4-re...

Also, if you're really only interested in the language then you should think about targeting LLVM IR or the JVM.


Most of the responses so far are about implementing. My favorite intro to programming languages was http://www.eopl3.com/ (though the first edition was more fun and not quite so focused on being a classroom textbook). Working through it, you write interpreters, but that's to make the ideas concrete and testable, not to replace a compilers class. There are newer books that may be better -- I hope someone who's studied them will bring them up.

http://wiki.c2.com/?ProgrammingLanguagesAnInterpreterBasedAp... was very fun and surveys a wider variety of languages, though it's also very dated now.


Understanding Computation by Tom Stuart [0]. While not soley dedicated to creating a language, the first couple of chapters deal with building semantics of a simple language using Ruby as the implementation language (but easily done in any other language you're familiar with). Implementing the virtual-machine the language runs upon in a language you already know provides some really wonderful insights.

[0] http://a.co/7MI5j7h


Using Forth as a substrate lets you focus on the more interesting aspects to an even higher degree than Lisp. The last thing you want is detailed instructions; unless you're just building another whatever, which never really made sense to me. Build the most simple and naive thing possible that works the way you want it to, and go from there. That's how Snabel was born:

https://github.com/andreas-gone-wild/snackis/blob/master/sna...


What do you want to do? You could write a LISP interpreter in a high level language in an hour, you could target the JVM/CLR/whatever and get fairly high performance and GC without too much work, you could spend months/years writing a quality language runtime + native compiler, etc.

http://www.craftinginterpreters.com/ is coming along really nicely.

Reading academic papers can give you some excellent ideas once you get into the weeds (e.g. garbage collection, compiler optimization).


Here's a cool programming language in a live-coding environment that I developed with my interns two summers ago. It enables natural language programming which is great for introducing young kids to computer science.

It is built in Java and uses a recursive descent parser to parse sentences like "draw a red circle at 300, 300", and is well commented because the intention was for advanced students at my education program to be able to easily extend and hack on it.

https://github.com/techlabeducation/pseudocode


https://interpreterbook.com is a pretty good resource to hit the ground running, with unit tests and little magic.

Once you've gone through it, you'll probably want to use the magic tools as they're well tested at this point, and make your life easier. Still, understanding what they're doing for you is a massive boon.

I should note, it uses Go but not in an idiomatic way. Strings instead of using an error type, etc. This is theoretically for the purpose of making it easier to follow along in another language, but I still wasn't a fan of that aspect.


I would suggest you focus a lot on the design, research the history and design of other languages. Try to understand how they evolved and try to figure out their bad decisions on the way.

Eg.

Pythons PEP, PHP’s RFC, Mailinglists

Building the language itself is the easy part...

Automated Crowdturfing Attacks and Defenses in Online Review Systems

$
0
0

(Submitted on 27 Aug 2017)

Abstract: Malicious crowdsourcing forums are gaining traction as sources of spreading misinformation online, but are limited by the costs of hiring and managing human workers. In this paper, we identify a new class of attacks that leverage deep learning language models (Recurrent Neural Networks or RNNs) to automate the generation of fake online reviews for products and services. Not only are these attacks cheap and therefore more scalable, but they can control rate of content output to eliminate the signature burstiness that makes crowdsourced campaigns easy to detect.
Using Yelp reviews as an example platform, we show how a two phased review generation and customization attack can produce reviews that are indistinguishable by state-of-the-art statistical detectors. We conduct a survey-based user study to show these reviews not only evade human detection, but also score high on "usefulness" metrics by users. Finally, we develop novel automated defenses against these attacks, by leveraging the lossy transformation introduced by the RNN training and generation cycle. We consider countermeasures against our mechanisms, show that they produce unattractive cost-benefit tradeoffs for attackers, and that they can be further curtailed by simple constraints imposed by online service providers.
Subjects:Cryptography and Security (cs.CR); Social and Information Networks (cs.SI)
Cite as: arXiv:1708.08151 [cs.CR]
 (or arXiv:1708.08151v1 [cs.CR] for this version)
From: Yuanshun Yao [view email]
[v1] Sun, 27 Aug 2017 23:00:27 GMT (5005kb,D)

The Story of Joy Division's Unknown Pleasures Album Cover (2015)

$
0
0

Sure, I was familiar with the graphic–and I’m not alone. Drop this image (right) on someone’s desk and chances are they’ll reflexively blurt, “Joy Division.” The band’s 1979 Unknown Pleasures album cover leaned entirely on a small mysterious data display, printed in white on black. No band name, album title or other identifiers. An interesting move for a debut studio album.

The cover image became an icon but remained mysterious. Even as knowledge spread about the band’s inspiration point–a preexisting pulsar data visualization (more on this below)–the true origin of that visualization continued to be a bit of a riddle. Somewhere along the way, I became obsessed with the narratives behind pulsar discovery and stacked plots, along with a growing desire to learn all that I could about the image and the research it was connected to. What follows is an abridged story borne of that obsession, starting with a video screened at a data visualization conference and ending with an interview with Harold (Hal) Craft, the radio astronomer who created the plot from data collected at the Arecibo Radio Observatory.

* * *

In late 2012 I saw the Unknown Pleasures album cover in a new light. VISUALIZED conference attendees were treated to a screening of Data Visualization, Reinterpreted: The Story of Joy Division’s Unknown Pleasures Album (directed by Eric Klotz and Volkert Besseling). Check out the video below for an interview with the album cover designer, Peter Saville.

As Saville explains, the cover is directly linked to a figure in The Cambridge Encyclopaedia of Astronomy (1977 edition)–a stacked plot of radio signals from a pulsar. My interest was piqued. I’m far from a music and album art expert but visualizing astronomical phenomena is part of my job description. Although I jotted down notes, my intention to look further into things faded.

Then, nearly two years later, when chatting with artist Philippe Decrauzat about his influences, my jaw hit the floor. His collection of favorite 1960s and 1970s Scientific American graphics included the stacked plot. It had been printed as a full-page figure in the January 1971 issue; white radio pulses on a field of cyan. My interest was piqued anew, to say the least.

When folks refer to the Unknown Pleasures cover, they generally just say that it shows a series of radio frequency periods from the first pulsar discovered. But what does that really mean? How does the physicality of a pulsar result in radio frequencies that translate into the famous stacked plot? What produced the data, how was it collected, who created the plot and what is its significance?

First, a short pulsar primer (keep an eye on this blog in the coming months for a more in-depth discussion on the history of pulsar visualization and explanatory graphics). From Jacob Shaham’s February 1987 Scientific American article “The Oldest Pulsars in the Universe:

“[Radio pulsars] are thought to be rotating neutron stars: huge, spinning ‘nuclei’ that contain some 1057 protons and neutrons…. The large clump of nuclear matter, which has a mass about equal to that of the sun, is compressed into a sphere with a radius on the order of 10 kilometers. Consequently, the density of the star is enormous, slightly greater than the density of ordinary nuclear matter, which is itself some 10 trillion times denser than a lead brick. Currents of protons and electrons moving within the star generate a magnetic field. As the star rotates, a radio beacon, ignited by the combined effect of the magnetic field and the rotation, emanates from it and sweeps periodically through the surrounding space, rather like a lighthouse beam. Once per revolution the beacon cuts past the earth, giving rise to the beeping detected by radio telescopes.”

Although the image on the cover is largely cited correctly as depicting the first pulsar discovered (CP 1919), it’s not the first isolated plot of that pulsar, which was made in 1967. That honor goes to Jocelyn Bell Burnell from the Mullard Radio Astronomy Observatory in Cambridge, England, as published in Nature on February 24, 1968. (Scientific American is part of Nature Publishing Group.)

I quickly learned that I’m not the first to jump down the rabbit hole in search of the creator of the stacked plot. Adam Capriola has documented his search with regular updates, and notes three key pre-album occurrences of the figure. I checked out those three artifacts to see if they would lead to more information about the creator of the plot and/or its significance. In reverse order of printing:

1. The Cambridge Encyclopaedia of Astronomy, edited by Simon Mitton. Prentice-Hall of Canada, by Terwin Copplestone Publishing, 1977. No source credit for the plot can be found in the text, other than a general book-wide “diagrams and graphs by Michael Robinson” nod. There’s a great four-page summary about pulsars and several diagrams but not much detail about the stacked plot itself, beyond the figure caption.

“Successive pulses from the first pulsar discovered, CP 1919, are here superimposed vertically. The pulses occur every 1.337 seconds. They are caused by rapidly spinning neutron star.” From The Cambridge Encyclopaedia of Astronomy.

2. Graphis Diagrams: The Graphic Visualization of Abstract Data, edited by Walter Herdeg, The Graphis Press, Zurich, 1974. Included in a catalogue of data visualizations on scientific topics, attributed on the credits page to the Arecibo Radio Observatory.

“Von einem Computer erzeugte illustration von achtzig aufeinanderfolgenden Pulsperioden des ersten Pulsars, der beobachtet wurde. Die Durchschnittsbreite der Pulse ist weniger als eine 50tausendstel-Sekunde. Das Diagramm wurde vom Arecibo Radio-Observatorium in Puerto Rico hergestellt. Aus Scientific American, 'The Nature of Pulsars,' von J. P. Ostriker (U.S.A.).” From Graphis Diagrams: The Graphic Visualization of Abstract Data

3. “The Nature of Pulsars” by Jeremiah P. Ostriker, Scientific American, January 1971 (pages 48-60); Credited to Arecibo Radio Observatory in the issue’s illustration credit box on page 4. I’m clearly biased, but this article provides a neat and accessible view into the early days of pulsar data collection and theory (particularly when paired with “Pulsars,” by Antony Hewish, Scientific American, October 1968). It highlights the significance of the plot in the caption and hints to the nature of the research it was connected to (pulse shape and irregularity) but, sadly, doesn’t directly name the plot creator as part of the Arecibo credit line.

“EIGHTY SUCCESSIVE PERIODS of the first pulsar observed, CP1919 (Cambridge pulsar at 19 hours 19 minutes right ascension), are stacked on top of one another using the average period of 1.33730 seconds in this computer-generated illustration produced at the Arecibo Radio Observatory in Puerto Rico. Although the leading edges of the radio pulses occur within a few thousandths of a second of the predicted times, the shape of the pulses is quite irregular. Some of this irregularity in radio reception is caused by the effects of transmission through the interstellar medium. The average pulse width is less than 50 thousandths of a second.” From “The Nature of Pulsars,” by Jeremiah P. Ostriker, Scientific American, January 1971.

By now I had also combed through early discovery articles in scientific journals and every book anthology on pulsars I could get my hands on to learn more about early pulsar visualizations. The more I learned, the more this descriptor in the 1971 Ostriker caption began to feel significant; “computer-generated illustration.” The charts from Bell at Mullard were output in real time, using analogue plotting tools. A transition in technology from analogue to digital seemed to have been taking place between the discovery of pulsars in 1967 to the work being conducting at Arecibo in 1968 through the early 1970′s. A cohort of doctoral students from Cornell University seemed to be embracing that shift, working on the cutting edge of digital analysis and pulsar data output. One PhD thesis title from that group in particular caught my attention, “Radio Observations of the Pulse Profiles and Dispersion Measures of Twelve Pulsars,” by Harold D. Craft, Jr. (September 1970).

A trip to Cornell’s rare book room confirmed a hunch. Sure enough, there was the image in Craft’s thesis, along with two other stacked plots.

From “Radio Observations of the Pulse Profiles and Dispersion Measures of Twelve Pulsars,” by Harold D. Craft, Jr. (September 1970).

On February 16, 2015, I sat down with Craft just outside of Ithaca, N.Y., and asked him about his recollections of Arecibo, the data visualizations in his thesis and the Unknown Pleasures album cover.

Craft on pulsar research at the Arecibo Radio Observatory in the late 1960s:

Well, there were a number of graduate students who were down there at the time. Most of them were graduate students of Frank Drake. I was one of those, John Comella was another, Dave Richards was a third, I think Gus Zeissig might have been a fourth. As I recall, we were all together in one big room in the administrative building at Arecibo. And we were all actually pursuing a PhD thesis, experimental thesis in different stuff. And I, at the time, was doing radiometric temperature measurements of the surface of Venus, which didn’t seem to be going anywhere in particular. I was working also on a new design for the line feeds for Arecibo, and that also didn’t seem to be going anywhere. And then pulsars were discovered – not at Arecibo, obviously – by Jocelyn Bell at Cambridge. Arecibo, it turned out, was the perfect instrument to measure these things, because it had enormous sensitivity – easily the most sensitive instrument in the world at that time. It also had the rudiments of digital technology there, because it was a radar observatory, and the radar folks were using digital technology. Radio astronomy folks, including myself at the time, were primarily using – would you believe it – chart recorders, or very slow analogue to digital converters. So anyway, the instrumentation was all set up to make measurements on these things, and so a number of us turned immediately, saying, “hey, you know, this looks like an interesting thing to do.” Besides, Frank Drake encouraged us to focus on these, obviously a major scientific issue at the time, which we did. So all four of us focused on these, in different ways. And we just took off from there. It was an exciting time then. We were young graduate students, we didn’t know squat. But, here’s something new in astronomy that hadn’t been seen before, and we were at the best instrument in the world to look at them, and what better opportunity was there than that? So we just hopped on it.

Craft on stacked pulsar plots, leading up to the CP 1919 data visualization:

This plotting of sequences like this, it started just a little bit earlier when we were looking at potentially drifting subpulses within the major pulse itself. So, the thought was, well, is there something like this peak here, which on the next pulse moves over here, and then moves over here, and over there. Actually, would be moving this way in that case – either way. I think Frank Drake and I published a paper in Science Magazine on exactly that issue – suggesting there might be drifting subpulses within the major pulse, which would then get back to the physics of what was causing the emission in the first place. So, then the thought was, well let’s plot out a whole array of pulses, and see if we can see particular patterns in there. So that’s why, this one was the first I did – CP1919 – and you can pick out patterns in there if you really work at it. But I think the answer is, there weren’t any that were real obvious anyway. I don’t really recall, but my bet is that the first one of these that I did, I didn’t bother to block out the stuff, and I found that it was just too confusing. So then, I wrote the program so that I would block out when a hill here was high enough, then the stuff behind it would stay hidden. And it was pretty easy to do from a computer perspective. I also wrote a program that, instead of having these lined up vertically like this, I tilted them off at a slight angle like that so that it would look like you were looking up a hillside – which was aesthetically interesting and pleasing, but on the other hand, it just confused the whole issue.

Craft on preparing the original computer plots for thesis publication:

So what happened, just in the process of putting together the thesis, I would give this [see image below] to a woman draftsperson in the space sciences building at Cornell, and she would then trace this stuff with india ink, and make a much darker image of it, so that it could be printed basically.
Detail of original Calcomp plotter output. Courtesy of Harold Craft.

Craft on the Unknown Pleasures album cover:

It was a complete surprise. In fact, I didn’t know anything about it, and a colleague in the space sciences department, who is now a professor of astronomy at Cornell, Jim Cordes, saw me on the street – he’s been a long time friend – and he said, “oh, by the way, did you know that your image is on the cover of Joy Division?” And, I said no, I had no clue. So I went to the record store and, son of a gun, there it was. So I bought an album, and then there was a poster that I had of it, so I bought one of those too, just for no particular reason, except that it’s my image, and I ought to have a copy of it.

Z3 – The Zork CPU

$
0
0

Details

Name: z3
Created: Nov 28, 2014
Updated: Nov 30, 2014
SVN Updated: Nov 30, 2014
SVN: Browse
Latest version: download
Statistics: View

Other project properties

Category: Processor
Language: Verilog
Development status: Stable
Additional info:none
WishBone compliant: No
WishBone version: n/a
License: BSD

Description

A Verilog implementation of the Infocom Z-Machine V3. The spec the Z3 follows is http://inform-fiction.org/zmachine/standards/z1point0/index.html. Specifically version 3, the so called "Standard" games. These were released between 1982 and 1987 and covers most Infocom games. Z3 passes the "CZECH - Comprehensive Z-machine Emulation CHecker" by Amir Karger. And is known to run at least Zork I, Hitchhiker's Guide to the Galaxy, Planetfall and Curses (by Graham Nelson).

The following YouTube video shows it in action: http://www.youtube.com/watch?v=HuQZq6DQQDY

To provide the input/output a terminal is implemented in a BIOS (in Z-machine code) which exists in the ROM above 120Kb. The IO related opcodes (like @print) vector into the BIOS which provides the terminal. A small number of extra op codes were added so the BIOS could interface with an LCD touchscreen and access the top 64Kb of RAM (which shadows the ROM).

Save/Restore isn't currently supported (as my hardware hasn't any storage) and is the only notable omission.

Wind Energy Is One of the Cheapest, and It's Getting Cheaper

$
0
0

Earlier this month, the U.S. Department of Energy (DOE) released the latest iteration of its annual Wind Technologies Market Report, which pulls together a wealth of data to track trends in the cost, performance, and growth of wind energy.

The report found that U.S. wind energy will continue to be one of the lowest cost electricity generation technologies available, with the long-term wind electricity price available through a power purchase agreement coming in at about half the expected cost of just running a natural gas power plant.

Furthermore, stiff competition from both natural gas and solar energy are poised to push the wind industry to achieve even lower prices and higher performance through the development of bigger turbines tailored to maximize their output even in regions with less than optimal wind speeds.

This post will review a few of the major U.S. wind energy trends tracked in the DOE report. For a full rundown, I suggest you check out the full report and associated slide deck.

Wind Energy Is One of the Cheapest Sources of Electricity in the United States

While the all-in price of wind energy directly depends on the wind speeds at a particular site, examining national trends in the installed cost of wind energy definitively shows that wind energy has become an extremely inexpensive source of electricity.

The average U.S. consumer pays about 12 cents per kilowatt-hour for electricity. That price includes the cost of generating power, the wires that deliver it from generators to our homes, and the cost of running the utility business. The actual cost of electricity generation alone is something like 2 to 4 cents per kilowatt-hour — that’s the price that wind energy has to compete with to be successful.

Based on data compiled in the Wind Technologies Market Report, wind energy consistently comes in at or below the going market rate for electricity. Wind energy is often purchased in large blocks through a long-term contract called a power purchase agreement (PPA). The figure below shows the historic price of wind energy PPA contracts since 1996. The diameter of each circle is the size of the wind farm built in megawatts, and the height of the circle on the y-axis is the contract price in dollars per megawatt-hour (or dollars per 1000 kilowatt-hours).

In recent years, an enormous amount of wind energy has been procured at or below a price of 20 dollars per megawatt-hour — or just 2 cents per kilowatt-hour. That is competitive with typical wholesale electricity market prices by any measure.

But it’s important to note that the price of wind energy offered through a PPA is an all-in price that includes the effect of subsidies such as the federal wind production tax credit, which provides a tax subsidy of 18 to 23 dollars per megawatt hour of energy produced. When you exclude the production tax credit and look at the levelized cost of energy (LCOE) from interior wind, it still comes in at an extremely competitive cost of less than 50 dollars per megawatt-hour (5 cents per kilowatt-hour). For comparison, the Energy Information Administration estimates a best-in-class combined cycle natural gas power plant has an LCOE of about 54 dollars per megawatt-hour (5.4 cents per kilowatt-hour). So even when you account for the effect of the federal wind production tax credit, wind energy remains an extremely competitive generating resource.

Competition Is Driving Wind to Be Cheaper, Bigger, and Better

One of the benefits of wind energy becoming fully competitive with conventional fossil-fuel electricity generation is that it places significant pressure on the wind industry to continually improve the cost and performance of their wind turbines to stay one step ahead of the competition.

Industry data show that wind turbines deployed in 2016 has larger diameter rotors, which allow them to capture more wind overall, and higher hub heights, which allow them to capture the more-steady winds available at higher altitudes. The average rotor diameter in 2016 was 108 meters, a 13 percent increase over the previous 5-year average, while the average hub height in 2016 was 83 meters, up 1 percent over the previous 5-year average. As a result, the average generating capacity of newly installed wind turbines in the United States in 2016 was 2.15 megawatts, up 11 percent from the average over the previous 5 years.

Improvements in wind turbine design have not only helped to increase the maximum power they can produce (or their generating capacity), but also their capacity factor, a measure of how often they actually produce energy. The average capacity factor of projects installed in 2014 and 2015 was over 40 percent — meaning they produced 40 percent of the maximum possible energy they could produce if it were very windy 24 hours a day, 365 days a year.

What About Integration Costs Associated with Wind Variability?

At this point you might be asking, what about all the costs associated with wind variability? Don’t we need storage to manage fluctuations in wind energy output? Unfortunately, there are no short answers to what the costs of integrating a variable source of electricity like wind are. The answer is a definitive “it depends.”

One thing we can do is look at how the amount of wind forcibly turned down, or curtailed, by grid operators has changed as the amount of wind energy on the grid has increased. The figure below shows both wind penetration rates and wind curtailment rates between 2008 and 2016 for seven U.S. independent system operators (ISOs) (map of U.S. ISOs here).

When you look at the total change in wind penetration and wind curtailment across all seven ISOs, curtailment has actually decreased even though wind penetration has significantly increased. This doesn’t mean that the costs of integrating wind are not significant. In fact, a big reason curtailment has decreased since its peak is 2009 is that regions have been investing in large-scale transmission lines to pipe wind power from the plains to the cities, and better balance wind power output with demand. In the Electric Reliability Council of Texas (ERCOT) region, for example, utilities invested $7 billion in transmission lines linking windy West Texas to the eastern and central cities — significantly reducing curtailment. Like all investments in transmission lines, those costs were spread throughout the entire customer base, so they are not reflected in the cost of wind energy shown in the charts above. But when you spread a billion-dollar investment across millions of customers, the cost incurred per customer is relatively modest.

As the exceptionally low price of U.S. wind energy drives further wind farm installations, it will be interesting to see how U.S. grid operators manage the challenge of integrating wind energy with the rest of the grid. So far, at least, they’ve been successful. But policymakers and regulators should be cognizant of the need for new transmission capacity and other grid upgrades to integrate wind as more turbines are installed in more places. Identifying the lowest cost investments to integrate the most renewable energy is not a simple task — but it will become increasingly vital as renewables throw off the "alternative energy" label and become a major contributor to the U.S. electricity supply.

The sudden death and eternal life of Solaris

$
0
0

As had been rumored for a while, Oracle effectively killed Solaris on Friday. When I first saw this, I had assumed that this was merely a deep cut, but in talking to Solaris engineers still at Oracle, it is clearly much more than that. It is a cut so deep as to be fatal: the core Solaris engineering organization lost on the order of 90% of its people, including essentially all management.

Of note, among the engineers I have spoken with, I heard two things repeatedly: “this is the end” and (from those who managed to survive Friday) “I wish I had been laid off.” Gone is any of the optimism (however tepid) that I have heard over the years — and embarrassed apologies for Oracle’s behavior have been replaced with dismay about the clumsiness, ineptitude and callousness with which this final cut was handled. In particular, that employees who had given their careers to the company were told of their termination via a pre-recorded call — “robo-RIF’d” in the words of one employee — is both despicable and cowardly. To their credit, the engineers affected saw themselves as Sun to the end: they stayed to solve hard, interesting problems and out of allegiance to one another — not out of any loyalty to the broader Oracle. Oracle didn’t deserve them and now it doesn’t have them — they have been liberated, if in a depraved act of corporate violence.

Assuming that this is indeed the end of Solaris (and it certainly looks that way), it offers a time for reflection. Certainly, the demise of Solaris is at one level not surprising, but on the other hand, its very suddenness highlights the degree to which proprietary software can suffer by the vicissitudes of corporate capriciousness. Vulnerable to executive whims, shareholder demands, and a fickle public, organizations can simply change direction by fiat. And because — in the words of the late, great Roger Faulkner— “it is easier to destroy than to create,” these changes in direction can have lasting effect when they mean stopping (or even suspending!) work on a project. Indeed, any engineer in any domain with sufficient longevity will have one (or many!) stories of exciting projects being cancelled by foolhardy and myopic management. For software, though, these cancellations can be particularly gutting because (in the proprietary world, anyway) so many of the details of software are carefully hidden from the users of the product — and much of the innovation of a cancelled software project will likely die with the project, living only in the oral tradition of the engineers who knew it. Worse, in the long run — to paraphrase Keynes — proprietary software projects are all dead. However ubiquitous at their height, this lonely fate awaits all proprietary software.

There is, of course, another way — and befitting its idiosyncratic life and death, Solaris shows us this path too: software can be open source. In stark contrast to proprietary software, open source does not — cannot, even — die. Yes, it can be disused or rusty or fusty, but as long as anyone is interested in it at all, it lives and breathes. Even should the interest wane to nothing, open source software survives still: its life as machine may be suspended, but it becomes as literature, waiting to be discovered by a future generation. That is, while proprietary software can die in an instant, open source software perpetually endures by its nature — and thrives by the strength of its communities. Just as the existence of proprietary software can be surprisingly brittle, open source communities can be crazily robust: they can survive neglect, derision, dissent — even sabotage.

In this regard, I speak from experience: from when Solaris was open sourced in 2005, the OpenSolaris community survived all of these things. By the time Oracle bought Sun five years later in 2010, the community had decided that it needed true independence — illumos was born. And, it turns out, illumos was born at exactly the right moment: shortly after illumos was announced, Oracle — in what remains to me a singularly loathsome and cowardly act — silently re-proprietarized Solaris on August 13, 2010. We in illumos were indisputably on our own, and while many outsiders gave us no chance of survival, we ourselves had reason for confidence: after all, open source communities are robust because they are often united not only by circumstance, but by values, and in our case, we as a community never lost our belief in ZFS, Zones, DTrace and myriad other technologies like MDB, FMA and Crossbow.

Indeed, since 2010, illumos has thrived; illumos is not only the repository of record for technologies that have become cross-platform like OpenZFS, but we have also advanced our core technologies considerably, while still maintaining highest standards of quality. Learning some of the mistakes of OpenSolaris, we have a model that allows for downstream innovation, experimentation and differentiation. For example, Joyent’s SmartOS has always been focused on our need for a cloud hypervisor (causing us to develop big features like hardware virtualization and Linux binary compatibility), and it is now at the heart of a massive buildout for Samsung (who acquired Joyent a little over a year ago). For us at Joyent, the Solaris/illumos/SmartOS saga has been formative in that we have seen both the ill effects of proprietary software and the amazing resilience of open source software — and it very much informed our decision to open source our entire stack in 2014.

Judging merely by its tombstone, the life of Solaris can be viewed as tragic: born out of wedlock between Sun and AT&T and dying at the hands of a remorseless corporate sociopath a quarter century later. And even that may be overstating its longevity: Solaris may not have been truly born until it was made open source, and — certainly to me, anyway — it died the moment it was again made proprietary. But in that shorter life, Solaris achieved the singular: immortality for its revolutionary technologies. So while we can mourn the loss of the proprietary embodiment of Solaris (and we can certainly lament the coarse way in which its technologists were treated!), we can rejoice in the eternal life of its technologies — in illumos and beyond!


Show HN: A simple, tiny Vim and kilo-inspired editor

$
0
0

README.md

Braindead editor. Feels like Vim, only simpler. Inspired bykilo, of course, and a large swath of the code is similar.

It can be scripted through Lua.

asciicast

Features

  • Scripting through intuitive Lua interface
  • Incremental search (and replace)
  • Multiple modi (similar to Vim)
  • Mnemonic movement (feels like Vim, just different enough for you to be frustrated)
  • Limitless Undo (until memory runs out)
  • Extensible syntax highlighting
  • No global state in the library part (just in main.c)
  • Can be used as a library
  • Ships with syntax highlighting for
    • C/C++ (stable)
    • Python (experimental)
    • JavaScript (experimental)
    • Go (experimental)
    • Haskell (experimental)
    • Markdown (unfinished)

Installation

git clone https://github.com/hellerve/e
cd e
make install # install_lua for Lua support

Usage

There are two major modes, init and edit. edit mode works like a normal text editor would. init mode enables the user to navigate and do meta work, such as saving the file, searching, and replacing.

init mode mnemonics

Use wasd or the arrow keys for movement. Editing (backspace, etc.) works normally.

  • n: insert a line below the cursor and start editing (next)
  • p: insert a line above the cursor and start editing (previous)
  • b: jump to the beginning of the line and start editing
  • t: jump to the end of the line and start editing (terminus)
  • h: hide a line (delete it) and add it to the system clipboard (clipboard only on Windows and OS X)
  • c: copy a line to the system clipboard (only on Windows and OS X)
  • v: view (i.e. paste) the contents of the system clipboard (only on Windows and OS X)
  • /: incremental highlighted search
  • r: search and replace first occurrence
  • R: search and replace all occurrences
  • Space: quick save (might be prompted for a file name)

In meta mode (reachable by pressing the colon character :), there are the following commands:

  • s: save and quit (might be prompted for a file name)
  • q: exit (will abort if the file has unsaved content)
  • !: force exit
  • Number n: jump to line n

Writing syntax files

By default, e creates a directory called .estx in the user's home directory (the location is overridable by providing STXDIR to make install). There, e will search for syntax files on startup. Their grammar is very minimal, see the C file below:

displayname: c
extensions: .*\.cpp$
            .*\.hpp$
            .*\.c$
            .*\.h$
comment|no_sep: //.*$
keyword:(restrict|switch|if|while|for|break|continue|return|else|try|catch|else|struct|union|class|typedef|static|enum|case|asm|default|delete|do|explicit|export|extern|inline|namespace|new|public|private|protected|sizeof|template|this|typedef|typeid|typename|using|virtual|friend|goto)
type: (auto|bool|char|const|double|float|inline|int|mutable|register|short|unsigned|volatile|void|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|size_t|ssize_t|time_t)
comment|no_sep: /\*([^(\*/)]*)?
                 (.*)?\*/
pragma: #(include|pragma|define|undef) .*$
predefined: (NULL|stdout|stderr)
pragma: #(ifdef|ifndef|if) .*$
             #endif\w*$

displayname is the string displayed at the bottom of e. extensions is a list of regexes to match the filenames. Highlighting keys are comment,keyword, type, pragma, string, number, and predefined. By appending|no_sep, the user signals to e that no separator is needed, i.e. highlighting works even if the matched string is part of a longer word. The values are regexes.

If you provide a second regex (must by divided by a newline), e assumes that everything between the two matches should be colored (useful for e.g. multiline comments).

Scripting through Lua

The editor has scripting capabilities in Lua. Thus far I've only documented them in a blog post, but this post should give you a good overview of how to write Lua scripts for e. There is also an example .erc file in the repository that you can look at for inspiration.

That's it!


Have fun!


Data science tips and tricks from the developer community

$
0
0

Recently I gave a talk at PyData Seattle about how to ramp up your data science skills by borrowing tips and tricks from the developer community. These suggestions will help you become a more proficient data scientist who is loved by your team members and stakeholders.

This post is broken up into five parts including:


Also, if you want to watch the original talk in its entirety check it out here.


A 10x developer is someone who is literally 10 times more productive than the average developer.

A 10x developer is someone who not only produces more code per hour than the average developer, but they debug like a boss, they introduce less bugs because they test their code, they mentor junior developers, write their own documentation, and have a lot of other broad skills that go beyond knowing how to code.


A 1968 experiment by H. Sackman, W. J. Erikson, and E. E. Grant called the “Exploratory experimental studies comparing online and offline programming performance” discovered that there were a wide range of times it took programmers to accomplish coding tasks.

The study focused on programmers who had an average of 7 years experience and discovered that there was a 20:1 difference between programmers. 

Although there were flaws found in the experiment such as combining programmers writing in low-level languages and others in high-level languages , later there were more studies done finding similar results.

While there has been extensive debate regarding whether or not 10x developers exist, this article will instead focus on what you can do to be a more productive data scientist by taking tips and tricks from seasoned developers who others consider remarkably faster than their counterparts.


Get to Know the Business

It doesn’t matter if you work for an education, biotech or finance company, you should have at least a high-level understanding of the business you’re solving problems for. 

In order to effectively communicate the story behind your data analysis, you should find out what drives the business and understand the business’s goals.

For instance if you were focusing on optimizing for food truck locations you would want to understand foot traffic, competition, events happening in the area, and even weather. You’d want to understand why the business is optimizing for locations. It might be to increase sales for current trucks or maybe they are looking to add trucks.

Even though you might be a data scientist at a job search site today and at a financial firm tomorrow, you should know what makes the business tick in order to make your analysis relevant to stakeholders.

You should also have an understanding of what the business processes are for your project such as knowing who needs to sign off on the end results, who the data model will get passed on to once your part is complete and what the expected timeframe is.

And finally, you should make sure you know who the stakeholders are and introduce realistic expectations to non-technical stakeholders. Expect to be an educator and teach non-technical stakeholders why reaching their goals might take more time or resources than they thought.

When you understand the stakeholder’s goals and make sure you communicate the technology, expertise, and time it would take to build out their solution then you will become an even more valuable asset to your company.


Know the Data

While it’s important to understand the business, it’s more important to understand the data. You’ll need to know how the data was extracted, when it was extracted, who is responsible for quality control, why there might be gaps in the data (for instance a change in vendors or a change in extraction methods), what might be missing and what other data sources could potentially be added to create a more accurate model.

It really comes down to talking to different teams and asking a lot of questions. Don’t be afraid to ask what people are working on and discuss what you’re working on too because you never know when people are doing duplicate work or if they have a cleaner version of data that you need access to. It’ll save you a ton of time being able to query a database versus making multiple API calls to SiteCatalyst for example.


Why does taking time and care during project design make you a 10x data scientist?

  • You’ll only do the work that needs to be done (think before you code) so you’re faster at getting a project done because you’ll do less work!
  • By finding misunderstandings between what customers/users think they need versus what they really need you’ll position yourself as the expert and a consensus builder.
  • You’ll solidify your own understanding of what the ask is so you won’t make costly errors.

While there are many best practices when designing your code, there are a few that stand out which will increase your x-value considerably.

The first time I heard the idea that clarity or clearness beats cleverness was in my writing classes in college. It’s easy to get caught up on your own cleverness and use the latest word of the day to get your ideas across, but like programming you’ll not only likely confuse yourself, you’ll confuse others.


In the above Scala example, the first line shows the sortBy method using a shorthand syntax. While it’s concise, it’s hard to think through what the underscore stands for. Even though this is a common pattern that many people use as an argument name in an anonymous function, for less advanced developers (or when you haven’t looked at your code for a while), it becomes tedious to figure out what the code does. 

In the second example we at least use an argument name, plus it’s showing assignment and we can see that it’s sorting by the next to last element in the sequence x. 

When code is less abstracted, it’s easier to debug later so in the third example I’m going to explicitly name my argument so it’s representative of the data.

When your brain has to go through each step and either look up or recall what the shorthand code does, it takes longer to debug and longer to add a new feature so even though using shorthand such as the examples above are concise and faster to type initially, in the long run it will benefit both you and others to avoid being too clever. 


While we won’t go over caching, we will cover the importance of naming things. Imagine you’re looking through some old code and you see a sequence being sorted like in the Scala example:

.sortBy(x => -x._2)

Using a single letter to name a sequence doesn’t provide useful information at all because likely you are pulling your data from somewhere like an API, a database or a data stream in Spark where you’d have to run your code to see what “x” is.

So keeping with the Scala example from before:

sortBy(clothesCount => -clothesCount._2)

You can tell what we are sorting without even running the code.

However, sometimes there are perfectly good reasons to use X as a variable name. For example X is often used in machine learning libraries where X is known to mean the observed data while y is the variable that is trying to be predicted for. In this case it’s preferable to use the conventions of your field where “model”, “fit”, “predicted”, and “x” and “y” mean the same thing to everyone in that field.

Outside of data science you would be expected to follow the programming language’s conventions of the language your are using. For example, I recommend you checking out the docs such as PEP for Python to learn best practices or 

By being careful of your naming conventions and by being clear instead of clever with your code, it will make refactoring and debugging both easier and faster. By following these two tenants of code design, you’ll be well on your way to becoming a 10x data scientist.


Being consistent with your code style is just as important as following naming conventions. To gain some basic style points you should stick to the same case, don’t mix camel and snake case together in the same script. It quickly becomes hard to read and navigate your code. Another way you should be consistent is to stick with the same method of accomplishing a task. For instance if you want to remove duplicates from a dictionary and you need to do it in a couple of spots in your code, don’t get creative and use a different way to do it just because you saw it on Stack Overflow. Use the clearest and least clever method that is consistent across your code and across scripts. Again, the purpose of consistency is to avoid confusing yourself and others which will allow you to debug faster! (Notice a debugging theme here).


Remember how we just talked about having to remove duplicates in a dictionary in multiple places in your code? Use functions so you don’t have to rewrite that code multiple times. Even if you aren’t reusing the code, it’s a crucial best practice to wrap your code in functions. Your functions should be small and only do one thing so they can be reused. 

When you don’t use functions, then you’ll have global variables that result in name collisions, non-testable code, and code that repeats itself often.

By utilizing functions, your code is composable and easy to write unit tests for.

But don’t just stop at writing small functions that only do one thing, make sure to abstract your functions so you can reuse them – this lends itself to the DRY mentality and will speed up your development time which will at least make you a 2xer.


Less common, but important to code design is using code stubs. Code stubs are simply mock classes and functions that show inputs, outputs and comments that provide an outline for your code. Using code stubs before you actually start to write the real meat of your code will force you to think through your code first and will help you avoid monstrous spaghetti code. You’ll notice what areas you are repeating code in before you write it and will think through what data structures are most appropriate.

The above code sample brings us to writing both comments and documentation. To truly become beloved by your coworkers and increase your own efficiency as a data scientist is to write helpful concise comments. Not only should you include comments about what the piece of code does, but its inputs and outputs as well.

Also, probably the coolest thing about docstrings is that they can be turned into documentation via libraries in most languages. For instance Python has a library called Sphinx that allows you to turn your docstrings into full blown documentation.

You might know what your code does now, but down the line when you are trying to debug or add a feature you and others will be glad for the comments.


No matter what language you’re coding in, please use exception handling and leave a helpful error message for yourself, your coworkers, and end users. The code above is showing a stop function passing in the error message from the API that’s being called. 

If the data isn’t what the API expects, then it throws a helpful error message. In your own code you could write a message within the stop function that helps the user such as:

stop(paste0(“Make sure all your inputs are strings: ”, e))


This example above is from the Hitchhikers Guide to Python and it uses the Python testing library Pytest.

While writing unit tests are fairly common for developers, they are rarely used in the data science world. Sure you are validating your model using cross validation, a confusion matrix, and other methods. But are you testing the queries that are getting your data for you? How about the various methods you are using to clean and transform the data the way you need it for your model? These areas are crucial in safekeeping against “Garbage In, Garbage out”. When you test your code you are both future proofing it against changes that might introduce bugs, but when you are your own QA, everyone will think you’re a rockstar due to the lack of bugs in your code once it goes to production.


Using version control for your projects is an important step in becoming a 10x data scientist. Obvious benefits are saving different versions of your model, and easily working across teams, but also by using version control with a back up in a repository you safeguard against losing work in case of a stolen laptop or crashed hard drive.

In beta, there is an open source data version control project called Data Version Control which looks promising for data science workflows. It relies on Git and allows projects to be reproducible across teams by building a data dependency graph. Your data is saved separately from your model and it works like other version control allowing you to roll back to previously saved snapshots.


10x developers know to use the right tool for the job, whether it’s using a library to save time, switching languages for performance, or using an API instead of building out the solution themselves.

Say you have Twitter or other social data and need a sentiment analysis. One option is to label that data yourself & train your own model or you could utilize a pre-trained model. It’s ok to not reinvent the wheel by building every data model yourself. Use the tools that are best suited for the job even if that means using ones that you didn’t build.


We’ve all written a Bash script paired with a Cron job to automate some reports right? But after you spend some time trying to debug a report written by someone else that’s automated by a Cron job without even knowing where it was running from, you realize there has to be a better way. Using an automation tool like Puppet, Chef, Ansible, or any of the other popular automation tools you can run your jobs from a centralized location so debugging someone else’s (or your own) job is a lot faster.


Sometimes you’re not going to have a team to hand your pickled model to so you might need to know how to deploy your model yourself.

While there are many differences between these providers, they range from incredibly easy-to-use to requiring much more setup and knowledge. This section could be a talk in itself. If you want more details about model hosting, check out a couple of different talks we covered about intro to deploying your model and deploying and scaling your deep learning model.

Things that could be deal breakers:

  • Ease of use
  • Cost (including add-ons and hidden costs such as hosting data)
  • Vender lock-in
  • Languages available

How does it make you a 10x data scientist:

By knowing how to deploy your model you take yourself from being able to tell a story with your data to easily sharing it with team-members (no matter what language they write) or deploying it to a production environment to share with thousands of users. This will help you become a 10x-er because once you understand this you can create more performant models that will make users happy. And when users are happy, business owners are happy.


To round out this post, here are some favorite tips on how to become a 10x data scientist:

  • Pattern Matching. This comes from hard-earned experience of running into a similar problem before and realizing that you could reuse or modify a solution to your current problem.
  • Learn how to explain your code – to yourself and others. This means whiteboarding, doing/getting code reviews and even pair programming. Get used to talking about your code and your thought process.
  • Learn how/when to quit and start over. Don’t be afraid to start over if you realize there is a better way to solve the problem. It’s better to start over and do it a better way versus sticking out something that isn’t optimal or performant.
  • Create your own stock of Gists or organize code snippets through a repository on GitHub or other hosting service. 


Lastly all throughout the post, the same theme has cropped up to becoming a 10x data scientist and that one tenant is debugging. Every 10x developer is a master debugger because the rule is however long you code for, you can multiply that by 10 and get the time it will take you to debug it. A few tips to becoming a great debugger is that you use exception handling, you utilize the debugger in your IDE, you talk through your code looking for errors in your logic, and you check the source code of the library involving the error to make sure you are passing in what the code expects.

Even if you only take a few points away from this post, you’ll be on the path to becoming a 10x Data Scientist. Good luck on your journey and feel free to share your tips and tricks to being a 10X Data Scientist with us @Algorithmia.

No Man’s Sky One Year Later

$
0
0

It’s been a year since I last played the captivating, frustrating, and ultimately disappointing No Man’s Sky. There have been some large updates since then, and so I thought now would be a good time to come back and see how the game has evolved. These columns are going to run through September, so you’re basically getting TWO long-form analysis series at the same time. (This and Borderlands.) So I hope you like words.

Speaking of words, a year ago I said:

In fact, I’m hoping [Hello Games] made enough on this game that they can give it another try. I really do think that they have something special here. Imagine if the first iteration of Minecraft had been really awkward, frustrating, had a terrible building interface, and was constantly limiting and undermining your creative abilities because the developer thought the game should be focused on combat. I wouldn’t want the idea of a cube world to die on the vine. I’d want it to get another chance to become the creative, engaging, meme-spawning classic that was embraced as a hobby by millions worldwide.

I am less confident of this now. I really do think you can make a fantastic game using the No Man’s Sky technology. I think there’s a game in here that could create levels of engagement to rival titans like Minecraft or The Sims. There’s a reason those early trailers caused such a sensation. Some people really do have an intergalactic wanderlust. They have a clear desire to see strange new worlds, seek out new life and new civilizations, and to boldly loot everything that isn’t nailed down.

But at this point I’m not all that eager to see what Hello Games comes up with. I have no idea what’s wrong inside this company, but their approach to designing game mechanics and interface falls somewhere between madness and sadism. In the last year they’ve doubled down on all the worst flaws of the core game. At this point I don’t think anyone at Hello Games is equipped to design a coherent set of gameplay mechanics. They’ve got great technology and a solid art team, but gameplay is a mess and I don’t see how they can change that. The first step to fixing a problem is admitting you have one, and after a year they still haven’t reached that point. It’s not impossible for Hello Games to turn things around, but from the standpoint of momentum and company culture I don’t think it’s likely. This is a company doomed to make very pretty but very shallow and irritating games.

Not Evil, Just Bungling

Spoiler: The game NEVER looked this good, on any hardware.

Spoiler: The game NEVER looked this good, on any hardware.

People were accusing Hello Games – particularly lead programmer Sean Murray – of “fraud” and calling the over-promised features of No Man’s Sky “lies”. I can certainly understand where these accusations come from. The dude said stuff was going to be in the game. Then it wasn’t. He was in charge of putting that stuff in the game, so therefore he was deceiving us, right?

But the more I read about development and the more I see how the game is shaping up, the more I’m convinced these “lies” were actually the promises by a young programmer with intense enthusiasm, who was under tremendous pressure from a publisher, and who had been thrust into the media spotlight while having no expertise in dealing with the media. I think people have been far too hard on Murray and not nearly critical enough on publisher Sony. Like I said last September:

It looks like Sony was all too happy to let this indie developer run around making promises they knew he couldn’t keep. I wouldn’t blame the distributor for the sins of the developer, except they did step in when it suited them. They shut him up when it served their business interests and let him run his mouth when he was over-promising the game. Sure, the developer was making outrageous promises, but Sony put his ass on prime-time television. They were happy to soak up their cut of the sales and let him take the blame for the hype storm they created. And now that fans are angry, Sony is trying to play it off like they had NO IDEA what the developer had said or what was in the game they were distributing.

I think the changes in the last year support this reading of events. If Murray really was a charlatan and a liar, then he would have walked away from No Man’s Sky after release. Or perhaps he would have done some minimal patching before moving on to No Man’s Sky 2 or whatever. Instead, his team has worked to add new content and new gameplay, fix bugs, and figure out ways to fix the existing gameplay systems that didn’t work at launch. I don’t think they were successful on that last point, but the effort is clearly there.

Spoiler: This is what the game REALLY looked like. At least, some planets did.

Spoiler: This is what the game REALLY looked like. At least, some planets did.

Also, Murray gave a talk at GDC. You can read about some of the highlights here.

“I just wanted to sit down and write something completely different. Mainly, selfishly, because I just thought of the things I wanted to learn about, and then I started to write an engine that had those things in, I guess. […] Then we showed it, we showed the first trailer, and from then on it was like, it was like we were building a rocketship on the way up, like, to the sun, being fired into the sun with the skin burning from our faces, right?”

This really resonates with me. You start out doing something for fun, but then suddenly people perceive value in your work and now there’s tons of pressure on you. When people ask you, “Will we be able to do X?” it’s easy to say “yes” because you already wanted to have X and you’ve already thought about how you’d go about making it happen. People love you, your work is valuable, and you don’t want to say no. People smile with delight when you say “yes” and when you say “no” they look disappointed and ask annoying technical questions that would – if you took the time to answer them accurately – being incredibly boring and hard to follow. In the short term, saying “yes” is always the path of least resistance.

I know exactly how that feels and I know I’ve trapped myself in situations where I needed to crunch in order to meet my promises. Not because I wanted to work overtime, but because saying yes just feels so much better than saying no. I’m really thankful I made those mistakes in private meetings as part of a small company on not in front of international media. If Stephen Colbert had me on his show in March of 2016 and asked with delight if Good Robot was going to have different character classes, it would have been very tempting to say yes. After all, it was something I’d wanted to put in the game and maybe I’d be able to find time to squeeze it in before release. And if that interview happened to me when I was a young man and more easily dazzled by the limelight? Shit. I’m sure I’d make the exact same mistake.

As I’ve said before, scheduling is really hard. That’s not a big deal when you’re a bedroom developer and you can set your own pace and decide for yourself when a game is “done”, but it can kill you when you find yourself suddenly working in the AAA world. I think Murray made reckless promises and then found himself trapped between those promises and an unmovable ship date, and he’s spent the last year trying to make it right.

I’m not saying that what Murray did was okay, and I’m not trying to get you to feel sorry for him. I’m just unhappy that frustrations with the game turned into a campaign of public shaming against one person, and I’m really unhappy that campaign took the form of calling him a liar.

To be fair: While not as pretty as the pre-release trailer, some places DO look pretty good, even on middling graphics hardware.

To be fair: While not as pretty as the pre-release trailer, some places DO look pretty good, even on middling graphics hardware.

We’ve seen how media liars behave. We know what that looks like by now. If he was a liar by nature then he would have spent the last year shifting blame, downplaying the backlash, and making new promises. Instead he’s stopped talking to the press and he’s being extremely guarded with his remarks. To me it looks less like a charlatan and more like a young guy who learned a hard lesson.

The problem with No Man’s Sky isn’t that Sean Murray is a mountebank. The problems with No Man’s Sky actually come from two causes:

  1. Murray lacked the ability to adapt his indie company culture to AAA standards when his passion project wound up in the hands of Sony.
  2. There doesn’t seem to be anyone at Hello Games to handle the Narrative and Gameplay aspects of design, and the engineers and artists don’t seem to realize how deficient their team is.

I can’t prove any of this, of course. But I find this a much more plausible reading of events compared to, “Sean Murray lied to the world to get rich!”

Regardless of the cause, nothing changes the fact that No Man’s Sky doesn’t really work or make sense as a videogame. It’s filled with strange design decisions, dead-end mechanics, and systems vigorously working against the core gameplay loop.

What is This Game Supposed To Be?

You can`t claim I didn`t give the game a chance. I`ve put in the time.

You can`t claim I didn`t give the game a chance. I`ve put in the time.

Roger Ebert used to say “It’s not what a movie is about, it’s how it is about it.” He would (try to) judge a movie based on how well it said whatever it was trying to say more than if he agreed with what it said. If a movie was gross, stupid, lowbrow schlock on purpose, that was (in theory) better than if the movie wound up that way while aiming for something else.

I try to do this myself, although it’s slightly more difficult with videogames. With gameplay, videogames have another entire dimension to worry about and sometimes it’s hard to tell if the gameplay is flawed or if the designer was just making something you don’t like. Dark Souls is a pretty good example of a game that’s really good, even if I don’t personally enjoy playing it. And Mass Effect 1 is a mess from a mechanical standpoint, even if I enjoy the story.

I have a very hard time doing this with No Man’s Sky, because after more than 100 hours I still can’t tell what this game is trying to be. Some mechanics work against each other, others lead nowhere, nothing leverages the core technology, the interface is insane, and the scraps of story are unevenly written, largely incoherent, and disconnected from everything else.

After spending some time with the game, I decided that the thing that worked – the part of the game seemed most like a “game” to me – was landing on a planet, gathering up some loot, fending off trouble, and getting back to civilization to trade your loot in for upgrades. This would be a bit like the sandbox bits of Skyrim: Wander around, do a dungeon, get some loot, go back to town. No Man’s Sky doesn’t really succeed at this, but that’s the closest thing it has to a gameplay loop and that gameplay style would actually make sense with this “infinite worlds” engine everything is built on.

Now, if you want to insist that No Man’s Sky isn’t trying to be that then I can’t really prove you wrong. If you want to insist it’s trying and failing to be some other kind of game, then fine. But I needed to have some frame of reference when judging it. I’m not going to review the game against every possible thing it could possibly be compared to.

Why Are We Doing This Again?

Visually, this is my favorite star system so far. The game managed to procedurally generate a super-saturated orange and blue motif. Also, the screenshot feature in this game is REALLY good.

Visually, this is my favorite star system so far. The game managed to procedurally generate a super-saturated orange and blue motif. Also, the screenshot feature in this game is REALLY good.

So why am I bothering to come back and heap more criticism on a game I already panned a year ago? Well, aside from the few people who have prodded me and asked what I thought of the updates, I’m back because I really was hoping the game we got would be a little closer to the game we’d dreamed of. It’s not, and I think it’s worth studying why.

Also, No Man’s Sky inhabits this frustrating space alongside games like the nu Deus Ex games, the original X-Com, or the Mass Effect series. It offers something you just can’t get anywhere else, but it does so in a deeply flawed and annoying way. It’s one thing if you decide you don’t care for the new Tomb Raider, because you’ve still got Nathan Drake. But if you love the idea of flying through space, landing on a planet, having a look around, and harvesting some of the resources but you hate being pestered by inventory problems every 30 seconds, then where else can you go?

I’m going to spend the next few weeks looking at No Man’s Sky 2017 and pointing out where the updates have gone wrong. The week after that, I’ll try to say something nice and make note of where things seem to be headed in the right direction.

Enjoyed this post? Please share!

Rust 2017 Survey Results

$
0
0

It’s that time of the year, where we take a good look at how things are going by asking the community at large – both Rust users and non-users. And wow, did you respond!

This year we had 5,368 responses. That’s more than 2,000 responses than we had last year!

The scale of the feedback was both inspiring and humbling, and we’ve worked hard to read through all of your comments and suggestions. There were so many helpful ideas and experiences that people shared, and we truly do appreciate it. Without further ado, let’s take a look.

Chart: 66.9% Rust users, 9.9% stopped using, 23.2% never used

Just as we saw last year, 2/3rds of responses are from Rust users and the remainder from non-users. This year, we separated out the “don’t use Rust” to capture those who used Rust and stopped from those who never used Rust. It’s inspiring to see so many developers wanting to help us make Rust better (even if they don’t use it!) so that it can reach even more people.

We’ll talk more about Rust non-users later in this report, but first let’s look at the responses from Rust users.

Chart: 0.5% less than a day, 4.2% less than a week, 13.1% less than a month, 39.7% less than a year, 42.5% over a year(hover for more info)

This year, we’re seeing a growing amount of experienced users sticking with Rust, with the “more than a year” users growing to over 42% (up from 30% from last year). The beginners are also an impressively large set, with the “less than a month” crowd at just about 18%, meaning we’re currently attracting nearly a 1/5th of our user base size, even as it grows larger, every month.

Chart: 36.5% less 1000 lines, 46.3% 1000 to 10000 lines, 14.2% 10000 to 100000 lines, 2.1% over 100000, 0.9% don't know(hover for more info)

People are working with ever-larger amounts of Rust, with medium- and large-scale lines of code totals both nearly doubling since last year as a percentage of the whole, now making up 16% of respondents (up from last year’s 8.9%). This shows a growing interest in using Rust in ever-larger projects, and a growing need for tools to support this growth.

Chart: 17.5% daily, 43.3% weekly, 24.4% monthly, 14.9% rarely

Despite the rising amount of code developers are working with, we’re seeing a small downtick in both daily and weekly users. Daily users have fallen from 19% to 17.5%, and weekly users have fallen from 48.8% to 43.3%. This could be a natural transition in this stage of our growth, as a broader range of developers begin using Rust.

Chart: 92.5% no, 7.5% yes

In the last year, we made big strides in breakages caused by releases of the compiler. Last year, 16.2% respondents said that upgrading to a new stable Rust compiler broke their code. This year, that number has fallen to 7.5% of respondents. This is a huge improvement, and one we’re proud of, though we’ll continue working to push this down even further.

Chart show strong support for nightly and current stable releases

Developers have largely opted to move to nightly or a recent stable (with some on beta), showing that developers are eager to upgrade and do so quickly. This simplifies the support structure a bit from last year, where developers were on a wider range of versions.

Stable users now make up 77.9% of Rust users. Unfortunately, despite our efforts with procedural macros and helping move crates like Serde to stable, we still have work to do to promote people moving away from the nightly Rust compiler. This year shows an increase in nightly users, now at 1,852 votes it represents 51.6% of respondents using nightly, up from 48.8% of last year.

Chart: 90.2% rustup, 18.9% linux distros, 5% homebrew, 4.7% official .msi, 3.1% official tarball, 1.4% official mac pkg(hover for more info)

One of the big success stories with Rust tooling was rustup, the Rust toolchain installer. Last year, we saw a wide diversity in ways people were installing Rust. This year, many of these have moved to using rustup as their main way of installing Rust, totalling now 3,205 of the responses, which moves it from last year’s 52.8% to 90.2%.

Chart: 80.9% Linux, 35.5% macOS, 31.5% Windows, 3.2% BSD-variant

Linux still features prominently as one of the main platforms Rust developers choose. Of note, we also saw a rise in the use of Windows as a developer platform at 1,130 of the 3,588 total respondents, putting it at 31.5% of respondents, up from 27.6% of last year.

Chart: 91.5% Linux, 46.7% Windows, 38.2% macOS, 16.8% embedded, 13.2% WebAssembly and asm.js, 9.9% Android, 8.9% BSD-variant, 5.3% Apple iOS

Next, we asked what platforms people were targeting with their Rust projects. While we see a similar representation of desktop OSes here, we also see a growing range of other targets. Android and iOS are at healthy 9.9% and 5.3% respectively, both almost 10x larger than last year’s percentages. Embedded also has had substantial growth since last year’s single-digit percentage. As a whole, cross-compilation has grown considerably since this time last year.

Chart: 45.8% vim, 33.8% vscode, 16.1% intellij, 15.7% atom, 15.4% emacs, 12.2% sublime, 1.5% eclipse, 1.5% visual studio

Among editors, vim remains king, though we see healthy growth in VSCode adoption at 34.1% (up from last year’s 3.8%). This growth no doubt has been helped by VSCode being one of the first platforms to get support for the Rust Language Server.

Chart: 4.4% full-time, 16.6% part-time, 2.9% no but company uses Rust, 57.6% no, 2.4% not sure, 16.1% not applicable(hover for more info)

Rust in the workplace has also continued to grow. This year’s 4.4% full-time and 16.6% part-time Rust workers show a tick up from last year’s 3.7% full-time and 16.1% part-time.

Two charts part-time: 2016: 29.6% less than 1000 lines, 55.3% 1000 to 10000 lines, 14.5% 10000 to 100000 lines, 0.6% 100000 lines. 2017: 18.9% less than 1000 lines, 56% 1000 to 10000 lines, 23.1% 10000 to 100000 lines, 2% more than 100000 lines

Users who use Rust part-time in their companies showed a growth in larger projects since last year, with the medium- and large-scale projects taking up more percentage of total projects this time around.

Two charts full-time: 2016: 4.4% less than 1000 lines, 42.6% 1000 to 10000 lines, 39.7% 10000 to 100000 lines, 13.2% more than 100000 lines. 2017: 1.9% less than 1000 lines, 27.9% 1000 to 10000 lines, 52.6% 10000 to 100000 lines, 17.5% more than 100000 lines

Likewise, full-time Rust commercial users saw medium- and large-scale projects grow to taking a larger part of the pie, with projects over 100,000 lines of code making up almost 18% of the all full-time commercial respondents, and a large shift in the 10,000-100,000 lines range from 39.7% up to 52.6%.

chart: 75.1% feel welcome, 1.3% don't feel welcome, 23.6% don't know(hover for more info)

An important piece of the Rust community is to be one that is welcoming to new users, whether they are current users or potential users in the future. We’re pleased to see that over 3/4th of all respondents said they feel welcome in the Rust community, with 23.6% not sure.

chart showing 81.4% not underrepresented, and a variety of underrepresented, with no category above 5%

The demographics of respondents stayed about the same year over year. Diversity and inclusiveness continue to be vital goals for the Rust project at all levels. The Rust Bridge initiative aims for diversity at the entry level. The Rust Reach project, launched this year, brings in a wide range of expertise from people underrepresented in the Rust world, and pairs them with Rust team members to make Rust more accessible to a wider audience.

New this year, we separated out the people who had stopped using Rust from those who had never used Rust to better understand why they stopped. Let’s take a look first at when they stopped.

chart: 3.2% less than a day, 18.5% less than a week, 43.1% less than a month, 30.2% less than a year, 4.9% more than a year(hover for more info)

The first surprise we had here was how long people gave Rust a try before they stopped. Our initial hunch was that people would give up using Rust in the first day, or possibly the first week, if it didn’t suit them or their project. Instead, what we see is that people tried Rust for a much longer time on average than that.

Themes from people who stopped using Rust:

  • 23% responded that Rust is too difficult to use.
  • 20% responded that they didn’t have enough time to learn and use Rust effectively.
  • 10% responded that tools aren’t use mature enough.
  • 5% responded they needed better IDE support.
  • The rest of users mentioned the need for support for Rust in their jobs, they’d finished the project they need to use Rust in, were turned away by Rust’s syntax, couldn’t think of a project to build, or had a bad interaction with the Rust community.

chart: 666 company doesn't use Rust, 425 Rust is too intimidating hard to learn or too complicated, 295 Rust doesn't solve a problem for me, 255 Rust doesn't have good IDE support, 209 Rust doesn't have libraries I need, 161 Rust seems too risky for production, 89 Rust doesn't support platforms I need, 73 Rust doesn't have tools I need

While the learning curve and language complexity still played a role in preventing people from picking up Rust, one aspect that resonated with many people is that there just simply aren’t enough active commercial projects in Rust for people to be a part of. For some, they could surmount the learning curve if there was strong incentive to do so.

Finally, at the end of the survey we we provided a free-form area to talk about where Rust could improve. Before we get to the themes we saw, we wanted to give a big “thank you!” to everyone who posted thoughtful comments. There are many, many good ideas, which we will be making available to the respective sub-teams for future planning. With that, let’s look at the themes that were important this year:

  • 17% of responses underscored the need for better ergonomics in the language. People had many suggestions about how to improve Rust for day-to-day use, to allow for easier prototyping, to work with async programming more easily, and to be more flexible with more data structure types. Just as before, the need for a much easier and smoother experience with the borrow checker and how to work with lifetimes was a popular request.
  • 16% of responses talk about the importance of creating better documentation. These covered a topics from helping users transition from other languages, creating more examples and sample projects, helping people get started with various tasks or crates, and creating video resources to facilitate learning.
  • 15% of responses point out that library support needs to improve. People mention the need for a strong support set of core libraries, of the difficulty finding high quality crates, the general maturity of the crates and the crate ecosystem, the need for libraries to cover a wide range of areas (eg web, GUIs, networking, databases, etc). Additionally, people mentioned that libraries can be hard to get started with depending on their API design and amount of documentation.
  • 9% of the responses encouraged us to continue to build our IDE support. Again, this year underscored that there are a sizeable section of developers that need support for Rust in their IDEs and tools. The Rust Language Server, the on-going effort to support IDEs broadly, was mentioned as one of the top items people are looking forward to this year, and comments pointed to these efforts needing to reach stable and grow support into other IDEs as well as continuing to grow the number of available features.
  • 8% of responses mention learning curve specifically. As more developers try to pick up Rust or teach it to coworkers and friends, they’re finding that there aren’t sufficient resources to do so effectively and that Rust itself resists a smooth learning experience.
  • Other strong themes included the need for: faster compile times, more corporate support of Rust (including jobs), better language interop, improved tooling, better error messages, more marketing, less marketing, and improved support for web assembly.

We’re blown away by the response this year. Not only is this a much larger number of responses than we had last year, but we’re also seeing a growing diversity in what people are using Rust for. Thank you so much for your thoughtful replies. We look forward to using your feedback, your suggestions, and your experience to help us plan for next year.

Go Assembly by Example

$
0
0
Go Assembly by Example

Go is an open source programming language designed for building simple, fast, and reliable software.

Go Assembly by Example is a hands-on introduction to Go's Assembly language using annotated example programs. Check out the first example or browse the full list below.

How Seth Godin would launch a business on a $1,000 budget

$
0
0

Most of the so-called marketing "influencers" out there are celebrities.

They've made it. They're not in the trenches anymore. 

They forgot how to "do" marketing; their employees promote their new books for them, build their new websites, launch their new products... all they have to do is sign their name under whatever new projects and Ka Ching! the money starts rolling in their bank accounts.

That's what I thought when I was preparing my interview with Seth Godin for my podcast called Everyone Hates Marketers (how I managed to get him on the show is another story).

Seth has published 18 books and is regarded as one the best marketing minds alongside Ogilvy or Tim Ferris, so he doesn't need to be in the trenches anymore.

I chose to challenge him to take him out of his comfort zone and see if he still "got it".

I asked him to:

  • come up with a business idea on the fly
  • explain EXACTLY how he would launch this new business,
  • describe how he would find his first customers,
  • Etc…

There was one catch though: he couldn't use his name to promote it, he had only a budget of $1,000 and 90 days to be successful.

What follows is the exact process Seth Godin uses to launch a new business (from scratch) with only $1,000 in the bank and 90 days to spare.

1) Market WITH people, not AT them

"We, marketers, are selfish, lying, short-term thinking scum. We believe that our job is to manipulate people as we market to them." - Seth Godin

The time of scammy, in-your-face marketing is over. 

20 years ago, you could come up with an average product, invest a few thousand euros in TV Ads saying that your product was the best ever, and sell 10,000 units of it

Not anymore.

People are immune to bad marketing. 

Don't believe me?

When was the last time you bought SEO services from a cold email? When was the last time you subscribed to a new marketing software from an automated direct message on Twitter? 

That's right: never.

We expect to sell using those shady techniques, yet we HATE it when it happens to us.

The first step towards a launching a new business according to Seth Godin is to change your mindset. You can't come up with a product or service and THEN decide to market it.

You have to involve people in the process.

Your customers are humans just like you. 

They're not just a number on Google Analytics.

Treat them as such.

2) Focus on the tiniest audience possible

In 2004, Mark Zuckerberg launched a social network for Harvard students only. 

Look where Facebook is now.

In 1970, Yvon Chouinard, co-Founder of Patagonia, was selling "homemade gear out of the back of his car, supplementing his income by diving into trash cans and redeeming bottles for cash". 

Patagonia is now worth $209M.

I had the same dilemma when I started my podcast Everyone Hates Marketers. I wanted to reach ALL the marketers on the planet.

I realized that I would stretch myself too thin if I was going down this road.

So I trimmed my audience to the bone: I would focus only on digital marketers working in tech who are sick of shady, aggressive marketing.

This was the audience I knew the best: I am a tech marketer sick of shady, aggressive marketing.

By focusing on this small audience I have an edge over the generalist digital marketing podcasts out there.

I can address their biggest, most specific pains. This is what remarkable marketing is all about.

This probably goes against everything you learned about business. That's because this is the ugly, unsexy part. 

No, you're not going to become a millionaire this year, or even next year. It might take 9 years, 18 years, 25 years, who knows? 

So, how do you pick a tiny audience?

This part takes discipline.

You probably have an idea of a product or service you want to offer; now it's time to select the bullseye: who are the people who will benefit the most from using your product or service?

When I asked Seth Godin to come up with a business idea on the fly, he came up with a concierge service to help tourists find an Airbnb in Paris.

But "tourists" could be anybody: are we serving a Japanese family looking to go to Versailles for the first time or a Brazilian businessman who want a place to stay near Bercy for a seminar? 

So, Seth trimmed down his audience: he would help Californian families with young kids to find the best place to stay in Paris for their holidays. 

This is much more specific, and, all of a sudden, the problems they face and the solutions we can offer become much more specific, too. 

Californian families want high-speed internet to talk with their relatives who stayed in San Diego. They want to see the Eiffel Tower from their balcony just like in the movies. They want to taste the best croissants Paris has to offer since they can't find any in San Diego.

See what I mean?

You might fear that the audience you're thinking of is too small.

Here's a tip I got from Philip Morgan (an expert in marketing positioning): if there's a conference especially organized for it, then your audience is big enough.

For example, did you know that there's a conference for handcrafted soap makers?

The next one is in Atlanta, Georgia, and 450 attendees are expected. If the handcrafted soap maker conference organizers managed to make money from such a tiny audience, so can you!

3) Create a remarkable product

Ok, ok, this might sound cliché but hear me out first.

Remarkable marketing starts with a remarkable product. 

But, what's a remarkable product you ask? 

It's a product that your customers simply CAN'T live without; they love it so much that they tell their friends, who tell their friends, who tell their friends. 

You get the drill.

The problem is that most of us try to sell average products to average people.

Because the products are average, customers are not raving about them.

They don't talk about them to their friends.

As a consequence, we have to use shady, aggressive marketing to compensate for the loss in business.

Do you think Slack had to use in-your-face marketing to sell their product?

Nope.

Anybody can use their product for free - there is no string attached. The product is so good that it IS their marketing. They went from 16,000 Daily Active Users to 2.7 Million in 2 years.

As Seth Godin mentioned in the episode: did you start using Facebook because you saw their ads on a lifestyle magazine? Nope. Your friends told you about it.

Have you heard of MailChimp because they sponsored a conference you went to?

Nope.

Their email tool was so good that you started to receive newsletters from businesses and people you knew, sent from MailChimp. You checked out their site, tried their email software for free, and loved the experience.

Now here's the hard truth: you're not going to launch the next Facebook, MailChimp, or Slack. They're solving big problems for millions of people.

But, to start with, you can create a remarkable product for a small audience.

It’s time to get out of the building and talk to people:

  • Identify one of their most painful, unsolved problems
  • Work your ass off to help them solve it
  • Give a sample of your product or service for free
  • Do they rave about it and offer to share it with their friends straight away? You have a winner.
  • If not, collect their feedback and start again.

This is why Hotjar, the all-in-one analytics and feedback solution for your website, wanted to build a remarkable product. It took them only 4 weeks to come up with the first version of the product, built a very simple landing page, let 1,500 people use it straight away, and gathered feedback.

The product was so good that those 1,500 early adopters referred an additional 17,500 people in less than a month. At this point, the Hotjar co-founders knew they had a winner.

There is no silver bullet in building a remarkable product and it might take you months or even years to find the right recipe, but, if you start with a small audience and gather feedback on the way, your chance of coming up with a remarkable product or service will get much, much, higher.

4) Create an abundance of confidence

How do you get the word out about your product or service if you have only $1,000 in the bank?

In the words of Seth Godin, "by giving people an abundance of confidence which will create an abundance of value and all I’m asking in return is to be trusted."

Let's get back to the example mentioned earlier: a concierge service for Californian families who want to get to Paris on holidays and find a place to stay.

To get the word out, Seth proposes to select the best 50 Airbnbs in Paris, take pictures, and create an amazing 50-page guide of where our potential customers should stay when going to Paris.

This guide would be available for free, on Medium, for everybody to see.

He would then contact 10 people he knows who fit the description of his ideal audience and see if they get any value out of it. 

If they do, they're probably going to share this guide to their friends, who will then share it with their friends and so on...

If they don't, he would improve the guide until they do.

Here's the catch: he would leave his email address at the bottom of the guide, and expect readers to contact with questions.

He'd give great free advice, engaging with 100 to 1000 people a day back and forth, back and forth, until he'd the indispensable middle man. 

Airbnb owners would pay him to write a review about their place, while American families will reach out to find the best Airbnb apartment in the city center of Paris for less than 250$ a night.

This concept can be applied to any type of products to services: to be trusted you must first give value for free.

This requires patience.

At the end of 2016, Unbounce, a landing page software, had more than 16,000 paying customers.

How did they get there?

They started blogging six months before their first product release (in 2010), but, what really helped them to become the most popular landing page software on the planet, was a guest post on Moz.com called "The Noob Guide to Online Marketing"; a giant guide and infographic containing TONS of value.

They turned this post into an ebook which got downloaded 150,000 times.

Unbounce got trusted as the go-to online marketing experts, and the rest is history.

Can YOU do the same in your niche?

5) Make a spinner and spin the wheel

You might feel overwhelmed by all of the above, and that's ok.

You might not know where to focus on: there are so many things you could do, so many channels you could use, so many ideas running in your head.

How do you choose which project to focus on first?

Simple.

Just pick one, or as Seth Godin would say: "Make a spinner and spin the wheel".

Do a thing and stick to it.

I used to act like a headless chicken when I started my career: I was impatient, switching from one project to another in a blink of an eye.

7 years ago, I launched a blog about marketing (in French), wrote 9 articles, and stopped because there weren't enough people reading them.

4 years ago, I wanted to create a community for cystic fibrosis patients to connect with each other (my younger brother has cystic fibrosis). I pitched the idea at a Startup Weekend, worked on it for two weeks, and quit.

It is when I started interviewing no-nonsense marketers a few months that I had an epiphany: every one of my guests, in their own words, mentioned the virtue of tranquility. 

In stoicism, tranquility is defined by: “believing in yourself and trusting that you are on the right path, and not being in doubt by following myriad footpaths of those wandering in every direction”.

I stopped checking my mentions on Twitter every 30 minutes, I stopped checking my website stats on Google Analytics every day, I stopped looking at my podcast downloads every Tuesday (when I publish a new episode on Everyone Hates Marketers).

Instead, I've decided to make a spinner and spin the wheel. I've decided to deliver value every week and to stop expecting success to knock on my door tomorrow. 

I know that success will come; I just don't know when.

It’s such a liberating feeling.

Success is a byproduct of helping people solve their biggest most painful problems.

Key takeaways:

  • Market WITH people, not AT them. Your customers are human beings, just like you.
  • Focus on the smallest audience possible. You can always expand later.
  • Create a remarkable product. If your first 10 customers spread the word about it, you have a winner. If not, collect feedback and start again.
  • Create an abundance of confidence. Give away a huge amount of value for free so people trust you in return.
  • Make a spinner and spin the wheel. There will never be a perfect time to do anything: do something and stick to it.

Recommended Resources

  • Seth Godin’s Marketing Secrets to Launching a New Business, podcast episode with Seth Godin:https://everyonehatesmarketers.com/seth-godin-marketing-secrets/
  • Purple Cow by Seth Godin: https://www.amazon.com/Purple-Cow-New-Transform-Remarkable/dp/1591843170
  • Permission Marketing by Seth Godin: https://www.amazon.com/Permission-Marketing-Turning-Strangers-Customers/dp/0684856360
  • Ogilvy on Advertising by David Ogilvy: https://www.amazon.com/Ogilvy-Advertising-David/dp/039472903X
  • Scientific Advertising by Claude Hopkins: http://www.scientificadvertising.com/ScientificAdvertising.pdf
  • The 22 Immutable Laws of Marketing by Al Ries and Jack Trout: https://www.amazon.com/22-Immutable-Laws-Marketing-Violate/dp/0887306667
  • Avoid best practices at all costs, podcast episode with David Darmanin, CEO of Hotjar: https://everyonehatesmarketers.com/david-darmanin-avoid-marketing-best-practices/
  • Rand Fishkin's guide to inbound marketing, podcast episode with Rand Fishkin: https://everyonehatesmarketers.com/rand-fishkin-guide-to-inbound-marketing/
Viewing all 25817 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>