The Shape of Ancient Dice Suggests Shifting Beliefs in Fate and Chance - <AUTHOR> https://www.theatlantic.com/science/archive/2018/02/dice-dice-baby/553742/?single_page=true <comment><USER2> Perhaps the Romans misunderstood probability, and thought that adding imperfections to dice would make them more random?

Also the "primes" configuration of faces could be an attempt to minimise bias. A weighted die is less useful if the high numbers are opposite each other.

<comment><USER3> As long as all players use the same dice, bias may not be that important.

<comment><USER4> This is a fair point, but I think it gets more complicated if betting becomes involved, because the players may use the same dice, but the player who understands how the dice work has a betting advantage.

Differing beliefs in how games of chance work may still be an arbitrage that works to the advantage of casinos and lotteries.

<comment><USER5> There was a post on here awhile ago[0] about using loaded dice to cheat at Settler of Catan. All the benefit goes to the person who knows the bias.

[0] [https://news.ycombinator.com/item?id=15921322](https://news.ycombinator.com/item?id=15921322)

<comment><USER6> This makes intuitive sense with just a basic level of understanding.

A biased dice may appear random, but over time youre bound to roll a given number or set of numbers more often. Over time, it adds up to a big advantage.

</comment></comment></comment></comment></comment><comment><USER7> This reminds me of observations some have when looking at the I Ching.

The I Ching is elegant from a modern binary/math perspective because it appears to be an ancient hierarchy of 1-bit symbols (yin/yang), stacked into 3-bit symbols (triagram=element), and finally stacked into 6-bit symbols (hexagram). These are, apparently, descriptions of situations at hand or situations to come. The arrangements of these 64 hexagrams make a modern math mind speculate about binary counting and the reason for a particular ordering [1] and it all seems very orderly and balanced and evenly distributed. Or so you would think.

Then one learns that the traditional methods of division _using_ those 64 hexagrams (e.g. the yarrow stalk method) is quite unevenly distributed. The dice are weighted, so to speak, to give some outcomes more often than others.[2]

Did the Chinese ancients _know_ this and design it this way? Did they care? Was it a mistake? ¯\\_(ツ)_/¯

[1] [https://www.biroco.com/yijing/sequence.htm](https://www.biroco.com/yijing/sequence.htm)

[2] [https://aleadeum.com/2013/07/12/the-i-ching-random- numbers-a...](https://aleadeum.com/2013/07/12/the-i-ching-random-numbers-and- why-you-are-doing-it-wrong/)

</comment><comment><USER8> I call BS. The romans (and earlier peoples) were just as cunning and you and me in those matters -- such beliefs didn't play a role in playing other games, and shouldn't play a role in dice.

Those artifacts could be sacrificial or similar special use dice, not something people would use on a game or bet on thinking that some god will even their odds.

<comment><USER9> That's possible, but it's also possible that they believed in supernatural intervention when playing dice games. It seems they did for other parts of their lives, why would this be different?

<comment><USER8> Because people in general weren't more stupid than us in everyday matters -- and you don't need a theoretical knowledge of combinatorics to know when you've been had.

<comment><USER10> Is it really just a matter of "being stupid"?

We _know_ that cleromancy (casting of lots) was practiced among Hebrew populations and in ancient Rome [0]. Under a worldview in which the knowledge and will of the divine is made manifest through natural acts, where things aren't just "happenstance" but are inherently infused with meaning, this makes complete sense.

This is also why trial by ordeal was a thing in many ancient societies, and why it was seen to be legitimate enough to have as part of a judicial system. The idea is that divine forces will show their favor based on the outcome of what would seem to us to be chance. Now there were probably some that were more cynical or less so about all this, and that may be part of how such systems actually gained legitimacy, because those in authority could tip the scales occasionally [1].

I don't think we can compartmentalize the beliefs and mindsets of people, especially ancient people, into "secular" and "religious" domains. It was all intertwined in a way that is hard for us to relate to in modern times, even among modern religious people.

[0] [https://en.wikipedia.org/wiki/Cleromancy](https://en.wikipedia.org/wiki/Cleromancy) [1] [https://aeon.co/ideas/why-the-trial-by-ordeal-was- actually-a...](https://aeon.co/ideas/why-the-trial-by-ordeal-was-actually-an- effective-test-of-guilt)

\---

EDIT: I did some more reading and found something interesting -- there is a mention of "loaded dice" in the Mahabharata: [2]

>Shakuni's dice were off course made of his father's thigh bone and is believed to possess that special power of giving the number according to Shakuni's will.

From this the idea that dice could be manipulated or used to cheat in various ways seems to have been known far in the past, but there is still an interesting connection between dice-rolling and supernatural influences, even in the case of loaded dice. One of these days I should learn more about the Mahabharata.

[2] [https://www.quora.com/Mahabharata-Hindu-epic-How-did- Shakuni...](https://www.quora.com/Mahabharata-Hindu-epic-How-did-Shakuni- cheat-in-the-game-of-dice)

</comment></comment></comment></comment><comment><USER11> I strongly recommend "Against The Gods: The Remarkable Story of Risk" (1996) [1] for a fascinating, historical perspective on people's growing understanding of probability and statistics over the last few millennia.

The author, Peter Bernstein [2], was brilliant and his other works also merit your attention if you are interested in economics and finance.

[1] [https://www.amazon.com/Against-Gods-Remarkable-Story- Risk/dp...](https://www.amazon.com/Against-Gods-Remarkable-Story- Risk/dp/0471295639)

[2] [https://en.wikipedia.org/wiki/Peter_L._Bernstein](https://en.wikipedia.org/wiki/Peter_L._Bernstein)

</comment><comment><USER12> If imperfect dice including one with an extra 3 were found in a big heap, mightn't that be because they were deemed inferior dice unworthy of play? Maybe the local constabulary went around to all the gambling dens, and confiscated & buried all the crooked dice.

</comment><comment><USER13> > If you thought that your prayers had more to do with a roll's outcome than > anything else, perhaps a perfect shape wasn't required.

As if someone would play dice (and have fun) with a completely rational mind...

<comment><USER8> There's nothing preventing someone to play dice and have fun with a "completely rational mind".

Don't confuse accepting small odds and the spending money with being "irrational".

</comment></comment><comment><USER14> It seems to me that some of the ancients had a better appreciation for chance than we do, especially in public affairs. Many of the speeches in Thucydides' History of the Peloponnesian War caution that though a warring party may be strong, luck is a huge part of war. We hardly have George Bush saying "we are pretty strong, but Iraq could go either way depending on luck." Our politicians speak with such certainty about the future.

</comment><comment><USER15> > including one cheater's die with an extra three

I can't imagine that going undetected for long. Which probably means the owner was also capable of sleight of hand.

<comment><USER16> One would notice on the first roll that the 3 and 4 weren't opposite. Perhaps it's just for a particular game.</comment></comment>


Stats Show the New England Patriots Became Nearly Fumble-Proof After 2006 - <AUTHOR> http://www.sharpfootballanalysis.com/blog/2015/the-new-england-patriots-mysteriously-became-fumble-proof-in-2007

<comment><USER2> It is interesting to read the various comments on that post. There is an incredibly strong correlation here which gives one pause. The remedy however is fairly straight forward, check every ball after it has been picked but before it goes out to play for proper inflation. If the Patriots fumble stats drop back in to the distribution that would be another good data point.</comment>


Lost in Space - <AUTHOR> http://www.forteantimes.com/features/articles/1302/lost_in_space.html <comment><USER2> My highlight:

"The Americans were due to put a man into space on 20 February 1962, 10 months after Gagarin. The Judica-Cordiglia brothers were desperate to listen in, but NASA kept the wavelength secret for fear of Soviet interference.

"We came across a photograph of an unmanned NASA Mercury capsule being recovered from the ocean," said Gian. John Glenn was going to fly in the same craft. In the photograph they could see the antenna. "If we could accurately determine the length of this antenna then we'd have the frequency." But the brothers lacked a scale.

They told their father, a lecturer in legal medicine at Milan University, who had a solution. In the picture, four frogmen were sitting in a boat. He used the bizygomatic index – the distance between the right and left cheek bones in proportion to the width of the face – to calculate what 1cm (0.4in) represented on the photograph.

"It seemed so simple but no one else had thought of it. Somehow, we'd managed to crack America's top secret!" Achille said. "

</comment><comment><USER3> Great article. I'd forgotten all about the Fortean Times which I used to read about 15 years ago. I always admired their ability to talk about wierd and wacky things without having to take sides and devolving into propaganda. They're kind of like "The Economist" of weird.

</comment><comment><USER4> see also: <http://skeptoid.com/episodes/4115> (Skeptoid Episode)

<comment><USER5> _Apparently, the brothers had just recorded evidence that a manned Soviet spacecraft somehow got off course and left Earth's orbit, permanently._ </quote>

This single sentence is enough to discredit the whole story.

It is technically impossible for manned spacecraft to leave Earth's gravity by accident.

<comment><USER6> It's unlikely, but far from impossible. The delta v to get to low-earth orbit is about 10 km/s (more depending on drag), while the delta vs from low earth orbit to the Lagrangian points, low lunar orbit, or even earth escape velocity are of the order of just 3-4 km/s.

Neat Wikipedia graphic that shows this: [http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Del...](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Deltavs.svg/590px- Deltavs.svg.png)</comment></comment></comment>


A simple method to prepare for an interview at Y Combinator - <AUTHOR> https://medium.com/@garethmacleod/a-simple-method-to-prepare-for-an-interview-at-ycombinator-39a3ed1dc220 <comment><USER2> Fantastic. Succinct and useful.</comment>


Ask HN: Just replace my DBA: painless db admin and scale without the cloud?  - <AUTHOR>

The recent launch of FathomDB is the latest of many articles on HN about databases, scalability, and the cloud.<p>What is the state of the art -- in terms of scalability, management, monitoring -- for people who need to keep their data in house? Maybe X where X:FathomDB as Xobni:Gmail? Or are we stuck hiring a DBA? <comment><USER2> There is no easy out, if you really need to scale, regardless of infrastructure you are going to need someone who understands databases. If you're lucky you might be able to find someone who can do more than one job. e.g. dba+sys admin. Just make sure that they really do know both things.

<comment><USER3> Yeah, this kind of question seems really close to "I'm a business guy, all I need is a tech guy to implement my idea", which implies there's some way to avoid having to know how to do something that is core to the business.

<comment><AUTHOR> I want to make it very clear that I'm not a business guy.

Think of it in the context of building a database-backed enterprise app that customers run in house. You don't want to ship a DBA to every customer...

<comment><USER3> For that you use an embedded database system. Many enterprise apps come with embedded database systems, or require a major database system to be installed in tandem, and these things are targeted at medium sized companies that don't have DBA specific to the the department that is using the app.

</comment></comment></comment></comment><comment><AUTHOR> If it helps, I asked a more concrete version of this question focusing on PostgreSQL on stackoverflow: [http://stackoverflow.com/questions/556325/postgresql- managem...](http://stackoverflow.com/questions/556325/postgresql-management- and-monitoring)

</comment><comment><USER4> The state of the art _is_ hiring a DBA. They get paid to be up on all the database monitoring, scaling, managing and management tools. This is why DB consultants charge $200+ an hour. It's pretty arcane knowledge, and for a business of any size, the database quickly becomes the lifeblood of the organization.

This is also the reason that databases like Couch DB or Amazon Simple DB or Google's App Engine are so appealing. They all have the promise of reducing db management headaches, at the cost of sacrificing features.

</comment><comment><USER5> Try a commerical database, such as Microsoft SQL Server (FD: I work there as a developer). To bring up a recent example, it can build indexes without locking the whole table so you wouldn't need to jump throught the hoops like the FriendFeed guys just did with MySQL. Unless your time is free it will cost you less to buy SQL Server than to write your own "online index thingie" on top of MySQL.

And if your time _is_ free, then you are probably a startup and you can get SQL Server and bunch of other MS tools for free via <http://www.microsoft.com/BizSpark/>

MySpace runs on SQL Server: [http://www.sqlservercentral.com/blogs/steve_jones/archive/20...](http://www.sqlservercentral.com/blogs/steve_jones/archive/2009/02/18/myspace.aspx) and if it's good enough for them it will likely be good enough for your site as well. I'm not sure if the scale-out story is any good (there are "partitioned views" which are basically "sharding" but I never used those), but scale-up story is as good as they come - it can efficiently utilize 64-cores of the HP superdome.

I don't know much about Oracle and IBM DB2, but I know that the latter has a free version without too many restrictions on it, so give them a spin as well. If ease of use is importnat to you, common wisdom has it that Microsoft's is the easiest to use among the top commercial vendors. NB: I did not verify the common wisdom, YMMV :-)

<comment><USER6> You're suggesting to use a commercial database but don't provide any reasons beyond what free databases can do.

PostgreSQL is pretty much on par in terms of features and performance with SQLServer and Oracle. So if you're looking for a free solution to roll your own then look no further.

The only reason I can see for going with a commercial DB is when you not only want commercial support (you can buy that for Postgres, too) but a shrinkwrapped "don't bother me"- solution with SLAs etc. Be prepared to pay through your nose for that, though.

In terms of usability there is no big difference between any of the commercial or non-commercial offerings. They all have their special peculiarities (which is why you always hire a DBA who is familar with _your_ RDBMS, not just with "any" RDBMS) and the shiny GUIs that some of them provide are not normally of interest in day-to-day work.

</comment></comment><comment><USER7> Managed hosting works for us (Engine Yard), it is significantly cheaper than hiring your own DBA.

<comment><USER2> having managed hosting doesn't mean you don't need to a dba. In my experience all the host does (worked for a managed hosting company) is set up the servers and keep them running, their help really can't help you with tweaking queries or tuning the db. I can't speak for on engine yard specifically. But I wouldn't bank on your host knowing anything beyond the basics of databases.

<comment><USER7> Engine Yard has several excellent DBAs on staff. They tell you what queries are slow and tune the db to optimize for your type of traffic. That's why they are worth the 30% premium on top of EC2.

<comment><USER2> engine yard may be an exceptional exception to the rule. I was generalizing, and speaking of managed hosting in general. Like I said, I can't speak of engine yard specifically, I haven't worked for or with them.</comment></comment></comment></comment>


Finding the right advice - <AUTHOR> https://blog.asmartbear.com/advice.html <comment><USER2> One of Jason's best posts! This really resonates with me.

So often, I seek advice without taking time to consider context. The context of why I asked _this_ person, _this_ question. The context of what experiences are shaping their answer. And the context of why I am hesitant to simply go with what my gut is telling me.</comment>


Marc Andreessen just offended 1B Indians with a single tweet - <AUTHOR> http://thenextweb.com/in/2016/02/10/marc-andreessen-just-offended-1-billion-indians-with-a-single-tweet/ <comment><AUTHOR> I have a great respect for Marc Andreessen who have invested in great tech companies at early stage and they are part of my daily life. I have learnt a lot by reading his essays and his bullet points in twitter about startups and building companies.

I'm not able to understand why he has to make this comment. He sits in Facebook board and recently TRAI had declined Facebook's Free Basics which violates Net Neutrality. Does this have anything to do with his comment?

India has been growing great in recent years and it's headed for enormous growth in next few decades. India has the largest youth population in the whole world and it can transform itself into a great super-power if it's run by great politicians and put India back in track.

\- The British East India Company was the original Free Basics. We all know how that ended.

</comment><comment><USER2> I was just having a chat with a few people in a few Indian villages which got connected to internet in last 1-2 years. A few of my observations:

1\. They think FB/Whatsapp is NOT internet. Internet is meant to be accessed through browser. So we already have an illusioned world.

2\. 'Internet' is only meant for the elite.

3\. Whatsapp/FB serve the same purpose that text messages did. They use FB/Whatsapp to save on cost of sending sms.

4\. Their biggest issue is that they don't have jobs. Cities are very far away. The ONLY employment opportunity available to young people (including college graduates) is farming!!

5\. I tried to quiz them on how FB/Whatsapp has helped in creating jobs/economic activity/improving farming. Couldn't get a lot of answers. (not saying FB cannot help)

6\. They can afford to pay for cheap data packs to get access to FB/Whatsapp (about $2-4 per month). All the young people in the villages have Whatsapp/smart phones. Although this may not stand for the poorest of the poor.

It is going to be very hard to decide if banning free basics is going to create more jobs for the poor or not. But I think the basic premise of the regulator's decision is giving Indian startups a fair chance. The regulator is only trying to create a fair battle field for startups. The poor need Indian entrepreneurs more than anything else. The regulator is only trying to help entrepreneurship in India.

But one thing is clear, FB isn't being entirely altruistic (for obvious reasons), but the same cannot be said for Indian regulators. I believe the regulators have ONLY the interest of the people in mind.

</comment><comment><USER3> Such an outrageous comment.kind of shows the mindset behind supporting such walled gardens in india compared to western countries because they think that we Indians are inferior and shud be content with what they give

</comment><comment><USER4> Facebook wants to be a modern day AOL? Prodigy? Compuserve? There was another, think it began with a G.

I'll never forget how astounded people were when I showed them how to minimize the AOL window and get on _the real_ internet.

</comment><comment><USER5> besides poor choice of words, it's also about how ill-informed he is about this entire debate. It's obvious, he has only read what Facebook has fed him with. I am a huge fan of his work and views and hence wouldn't assign motive to this, but yes, sure he did piss people off, including his fan base.

</comment><comment><USER6> Poorly phrased by pmarca, but seems certain he did not mean that India would be better off becoming a colony again. More likely he meant that some things associated with their successful anti-colonial efforts, such as "economic nationalism" and "license raj" have not worked out well for them. I don't know anything about Free Basics, so have no idea if it belongs in that category or not.

<comment><USER7> FWIW, TRAI has no jurisdiction over Facebook and so obviously has not passed any ruling on them. Free Basics has not been banned.

The only thing TRAI has done is banning telecom operators from offering different websites at different prices.

pmarca had no justification to use colonial rhetoric here.

</comment></comment><comment><USER8> Indian here. pmarca is correct.

That is all.

<comment><USER9> You mean to say this Abhimanyu Ghoshal doesn't actually speak for 1 billion Indians? You must be _offended_ that he presumed to know your opinion, based on your nationality, without asking you.</comment></comment>


Flash is dead, long live OpenFL - <AUTHOR> http://gamasutra.com/blogs/LarsDoucet/20140318/213407/Flash_is_dead_long_live_OpenFL.php <comment><USER2> For those not familiar with OpenFL, /u/larsiusprime posted a nice summary of how it's used:

"OpenFL is is a programming API that mirrors the Flash API, but in the Haxe language. So you take your old ActionScript code and port it over to Haxe (very similar language, but with additional features). Then you also take your Flash-vector-art SWF files, and you load it with the Haxe SWF library. OpenFL ensures you can still make all the same method calls to the Flash API, etc.

When you compile, you select one of many targets, kinda like unity: C++, JavaScript, etc. It conveniently packages those targets up into special configurations like "Android", "Windows", "HTML5", "Linux", etc.

So you can take your existing flash code and art, but get it running NATIVELY, in say, Linux desktop, with no need for the flash plugin or AIR runtime -- it's just a C++ app that does the same stuff (and much faster!)

You can also output to HTML5 so your players don't need the flash plugin anymore (the HTML5 target is still fairly new). As an end user, there's nothing for you to really do, except to wait for flash developers to switch over to it. From your perspective, all you'll really see is that instead of Flash apps on the web, there's more HTML5 apps. And instead of AIR apps for games on the desktop, they're natively compiled for Linux. What happened in these cases is that the developers were using Flash before but switched to OpenFL."

<comment><USER3> So basically, the open source community made a better flash than Adobe did? That is rather amazing considering the resources of the respective groups.

<comment><USER4> They've done it twice. MotionTwin did a lot of work in AS2 so they built a better compiler for it (MTASC), which compiled faster and made faster swfs (it's still used in production at the BBC).

Then when AS3 came out they seem to have thought "Oh come on!" given the quality of the compiler and language features so they built a better language. Again, faster and better compilation, as well as properly implemented things like generics (particularly compared to the awful implementation in AS3).

It's a lovely little language, and cross compiles to a vast range of platforms with ease. I built an android app which ran a webserver to control a TV app built in it (compiled to JS). I also had good success compiling it to PHP (cross-platform serialisation & deserialisation turned out to be easier and more performant than parsing XML on some low power devices).

MotionTwin made my working day so much better, not having to use the CS4 was wonderful.

<comment><USER5> Actually, HaXe, Neko, mtasc and MotionTwin projects of one person: Nicolas Cannasse. Dude is a legend, and community surrounding those projects is amazing.

</comment></comment></comment></comment><comment><USER6> > I could try HTML5, but that precludes releasing high-performance desktop- > ready games for Steam.

We develop Construct 2 ([https://www.scirra.com](https://www.scirra.com)) which is an HTML5 game engine. It can export to EXE via Node Webkit with very good performance, as well as the ability to export a multitude of mobile platforms as well.

One game we're excited to see released in the near future made in Construct 2 is "Penelope": [https://www.youtube.com/watch?v=ZaynOYy2O54](https://www.youtube.com/watch?v=ZaynOYy2O54)

The author is developing this game in Construct 2 for PC/Mac/Linux.

Some of our users have also submitted their games to Greenlight, here's a couple:

[http://steamcommunity.com/sharedfiles/filedetails/?id=184459...](http://steamcommunity.com/sharedfiles/filedetails/?id=184459148)

[http://steamcommunity.com/sharedfiles/filedetails/?id=929949...](http://steamcommunity.com/sharedfiles/filedetails/?id=92994975&searchtext=)

These are all HTML5 games!

<comment><USER7> Another example is ImpactJS, which allows you to write high-performance _mobile-ready_ games!

[http://impactjs.com/](http://impactjs.com/)

<comment><USER8> It always makes me happy to see my game engine mentioned here. Thank you! :)

Just to chime in, I believe that HTML5 currently is as "cross-platform" as it can get, especially for games. Two examples made with Impact:

\- Olympia Rising[1] - this game recently had a successful kickstarter campaign and will be released for various desktop platforms and maybe more later.

\- XType Plus[2] - my own game coming to the Nintendo Wii U, using the Nintendo Web Framework. It's a pimped up version of this XType[3], which you can play in your browser right now.

[1] [https://www.kickstarter.com/projects/paleozoic/olympia- risin...](https://www.kickstarter.com/projects/paleozoic/olympia-rising)

[2] [http://www.nintendolife.com/news/2014/02/developer_interview...](http://www.nintendolife.com/news/2014/02/developer_interview_phoboslab_on_xtype_plus_impact_and_why_the_nintendo_web_framework_matters)

[3] [http://phoboslab.org/xtype/](http://phoboslab.org/xtype/)

<comment><USER7> Actually, there's something I'd like to ask you re: that. Is there any chance of Ejecta being ported to other mobile platforms, Android in particular?

<comment><USER8> (Edit: for those unfamiliar with Ejecta: [http://impactjs.com/Ejecta](http://impactjs.com/Ejecta) )

I do have a toy project that aims to be a cross-platform Ejecta eventually. It's written in C and divided in an OpenGL Canvas drawing library (so you essentially get the HTML5 Canvas API in native code) and a host application that provides the JavaScript binding.

Currently, there's only a host application for iOS. I don't know much about Android and have yet to figure out how to best couple the C lib with the Java code... or if I even need Java code to begin with.

I wanted to have a working Android host app first, before putting it on github and then building up the feature set on both platforms to where Ejecta is now.

I also thought about doing a kickstarter for this, but I'm not sure what exactly I could "sell", because the I want to have it open source anyway. If anybody wants to sponsor the development, get in touch :)

tl;dr: yes.

<comment><USER9> I wouldn't bother - Crosswalk does the job great for Android:

[https://crosswalk-project.org/](https://crosswalk-project.org/)

It's based on Chrome for Android so you have a fully-featured browser engine available. iOS is the only platform where there isn't a good GPU-accelerated browser engine available that can run native apps, hence the use case. (P.S. we hope to support Ejecta in Construct 2 officially soon!)

<comment><USER7> Wait, Chrome? With its horribly slow 2D acceleration and aliasing? Why would you want that for your game?

<comment><USER9> Chrome for Android has GPU-accelerated 2D canvas and WebGL support now, and it's great for browser games! Probably the best mobile browser in fact.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I remember using OpenFL a year ago or so. Probably less. The coding environment itself was very nice. But it was horribly painful in practice. Sure, you can compile to multiple targets, but don't expect it to work. And if it does work, chances are your code is littered with platform-specific macros and reams of platform-specific code.

To make it worse, many parts of the Flash API weren't implemented, had different semantics, didn't work on some platforms, or worked differently on some platforms.

I like the idea of OpenFL and I like the Haxe programming language. When I tried it, it was clear that things were improving quickly. I hope it has improved a lot since then.

<comment><USER11> I've been working with Haxe and OpenFL for about a year and a half. A year ago I would've agreed with you, but the past year has seen some major advancement in all of these areas. The Flash API is more fleshed out at this point. Setup still has some quirks but I find that once that's taken care of, compiling for multiple platforms "just works" and is incredibly convenient. For example, OpenFL will actually download and install the Android SDK and NDK for you, then compile your application and sign the APK with a single command. The most popular game engines (HaxePunk or HaxeFlixel) are great at smoothing over some of the platform-specific differences in things like rendering. It's not a magic bullet and you still need to have a basic understanding of each platform you want to target, but Haxe and OpenFL make things so much easier.

</comment></comment><comment><USER12> > I've been a stalwart Flash developer for 15 years, so nothing bothers me > more than greatly exaggerated reports of Flash's premature demise.

...

> I've learned my lesson -- whatever my next platform is, no-one should be > able to take it away from me.

There's an interesting side discussion here. It seems to me that the rate of substantial changes in technology/frameworks/ui design/etc is increasing such that the expectation of finding a platform that you can hold on to for 15 years is becoming untenable.

I worked with Flash (via Flex) for several years and found it to be one of the best UI frameworks I've ever developed with. I have yet to find an web framework that matches the productivity of MXML and databinding for standard sorts of UI's.

I also use emacs daily, which is a piece of software that's older than I am and still going strong.

That said, when it comes to staying on top of technology rather than being made obsolete by it, I have yet to find a better strategy than to try to "ride the wave".

HTML5 addresses a lot of cross-platform issues and has a lot of attention today so it's worth learning, but I don't expect what I learn today to last forever. If/when VR takes off, we might all be focusing on 3D frameworks and a wealth of new UI primitives to support that ecosystem. Or, maybe some other technology will take the dev community by storm and it'll be worth going that direction.

In short: moving with the major paradigm shifts seems more tenable than trying to find/predict the stack that will last the longest. Very curious to hear if others have similar or alternative thoughts.

<comment><USER13> Flash did what any other technology is still unable to do (maybe with the exception of java)- offer a true cross platform solution. Look at webrtc. Its been over a year now since the hype and we still don't have support in half the browsers. Till date no technology does audio/video chat as well as Flash.

<comment><USER14> open platforms are a long term investment.

</comment></comment></comment><comment><USER15> It's not Flash that is dead, it's the whole concept of browser plugins. Too risky, too inconvenient, too often installed and then forgotten, never to receive security updates (or those that exist aren't installed because they prompt us about it far too often).

<comment><USER16> This is exactly why security conscious people don't use flash. Html is supposed to be a document and not an application. We created this Frankenstein with Flash, Java and JS to make HTML pages appear other than documents. The net result is that you need to install these plugins otherwise you can't get the full experience. The real question is why do we let people to abuse technology instead of using it well. I have disabled all of these plugins long time ago and also JS runs on very specific websites where it is an absolute must. You could install games through the browser, make it easier but to run through the browser, it is a bad idea.

<comment><USER17> > The real question is why do we let people to abuse technology instead of > using it well.

I am (still!) amazed by the gap between how I see a computer and how most non- geeks around me do. To them, it's like a set of different, often frustrating tools rather than, well, an amazing piece of technology that can be prodded to do whatever you want (to the point where an iPad with few to no apps can provide them with all they need).

To me, there's a joy to finding just the right framework, app, or library that can do what I need done. To the point where I might end up enjoying the process a bit too much and get nothing done. To them, it's all about getting stuff done as soon as possible, with whatever they're familiar with. And since they find computers often quite frustrating, they will abuse the hell out of the little bits they know.

And so, in the same way that we would use a lighter to open a bottle if there isn't an opener nearby, they 'abuse' technology by using Excel for everything, or storing their notes in an open notepad window without saving. And as long as that works most of the time, they feel absolutely no incentive to figure out a better way.

Until, of course, it all goes wrong. Then they call us to fix it :-).

<comment><USER18> Jobs had his famous 'computers as bicycles for the mind' metaphor (I guess this is the origin: [http://www.youtube.com/watch?v=DA_jypfKfAA](http://www.youtube.com/watch?v=DA_jypfKfAA)), and this is how we geeks see them.

The problems are that:

1\. computers today don't really look or feel like 'bicycles for the mind' to the average joe -- it's our job to make them look like what they really are instead of dressing them in pretty silky dresses (think all the iStuff...) OR, even worse, make them look like appliances (think the iOS devices that feel like a multi-tool, every app isolated by itself and very hard to move data from one to another) OR, even worse, cripple them on purpose (DRM, closed formats that are not cross-applicatin compatible etc.)

2\. most people's minds are really bad at 'learning to ride bicycles'... hell, even teaching a human being to properly read and write takes a few good years -- so it's our jobs to make the bicycles easier to ride, but we should not forget the danger here: the way to make a bicycle easier to ride is not to hide that it's a bike! (this is kind of what we do with most of our UI/X paradigms, and it makes it easier for people to use computers as appliances, but much harder for them to realize they are mind-bikes)

Now that we have "a computer in everyone's pocket" we should get our heads out of our asses and show people _what a computer really is!_

And about 'using Excel for everything': I'd take this as a good thing! Excel is almost a goddamn programming language after all (and a functional one, btw), and it'as close as most will ever be to real programming.

<comment><USER19> I see this kind of sentiment on Hacker News a lot. I kind of feel like, if you really want to express this thought process, I'd like you to suitably justify that this argument isn't just a smokescreen, disguising your resentment that more people than ever can learn to use and enjoy computers and you're not quite so special anymore.

So you make up this story that what they are doing is not _really_ using computers. It's not the same kind of wonderful magic that you can do. And while you say "Now that we have "a computer in everyone's pocket" we should get our heads out of our asses and show people what a computer really is!"

Well what if that actually happened! what if computer/coding/programming literacy really did become as widespread as reading,writing and arithmetic. There'd be nothing special about you anymore! So you fight the future. you fight the "Fancy UIs" while saying you're not!

Okay maybe none of this applies to YOU specifically. My point is, if you're going to embark along this argument, I think you should really make an effort to prove your true dedication to it. Prove it's not just an expression of a deeper insecurity.

</comment></comment></comment></comment></comment><comment><USER20> > OpenFL is an implementation of the Flash API written in the Haxe programming > language.

Other than "Papers Please," who is using Haxe for production (i.e., making money on products built with it), and for what?

<comment><USER21> 1) Nickelodeon (using Flambe) -- web/mobile games

2) Disney (using Flambe) -- web/mobile games

3) Flambe (Haxe game engine)

4) reach3DX (next-gen 3D engine by Gamebryo)

5) Defender's Quest 2 (me) (HaxeFlixel engine)

6) Even the Ocean (Anodyne devs) (HaxeFlixel engine)

7) Rymdkapsel (Grapefrukt games)

8) Cardinal Quest II -- web/mobile (HaxeFlixel engine)

9) TiVo -- interface stuff I guess?

10) Tizen

11) Firefox OS -- just partnered with Flambe

12) Stencyl (Haxe game engine)

13) Motion-Twin (game studio that created Haxe)

14) Shiro Games (EvoLand devs)

That's just off the top of my head. So anyone using HaxeFlixel/HaxePunk/reach3dx/Flambe/OpenFL/Stencyl are all using Haxe-based game engines.

<comment><USER22> We made a cross-platform (Flash, HTML5, Android, iOS) video player for TF1 (first French TV channel, considered the most viewed TV channel in Europe)

</comment></comment></comment><comment><USER23> Flash is the plateform and the IDE, and nothing will replace the IDE regarding how easy to create and organise animations.

Sure,you can code in a text editor, But a designer cant do precise and complex animations with a text editor.

Editing and creating animations are 50% of the value of Flash and that's why the IDE is still necessary to develop games, wether they are HTML5 or mobile ones. Yes there is Unity but Unity is 1/ more expensive than flash 2/ sucks at 2d asset creation.

So no, Flash isnt dead,by a long shot.

<comment><USER24> Did you even read the article? _you can keep using the Flash authoring tool and its native flash vector animations if you like_

And the "dead" from the title refers to support from Adobe. The entire post is about how you can still target flash using OpenFL, haxe, etc.

</comment></comment><comment><USER25> I must correct a minor error: "[Unity3D's] web browser target depends on a clunky plugin with a low install base."

This is no longer true. Unity3D can now (or very soon?) export to pure javascript and run in any WebGL-conformant browser without any plugins.

<comment><USER21> To be fair, they announced that a day after the article was written :) And the feature is not yet released. I can update the article in a bit.

</comment></comment><comment><USER26> If you would like to see how Mozilla's Shumway SWF player is coming along, you can preview Shumway-rendered Flash content without installing the Shumway add- on in this gallery. Even works in Chrome and Safari. :)

[http://www.areweflashyet.com/shumway/gallery/](http://www.areweflashyet.com/shumway/gallery/)

<comment><USER27> Well, this is new. This just logged me out of my Ubuntu session. It didn't restart, I just had to log in again.

<comment><USER28> Probably an X crash.

</comment></comment></comment><comment><USER29> I like haXe, I really do, but for me, it's seriously lacking in libraries. It's all well and good to have everything you need to make games and displace Flash (everywhere!), but for instance, I can't just clone a GPX parser ([https://github.com/tkrajina/gpxpy](https://github.com/tkrajina/gpxpy)), pull in some other Python mapping stuff ([http://sensitivecities.com/so-youd-like- to-make-a-map-using-...](http://sensitivecities.com/so-youd-like-to-make-a- map-using-python-EN.html)) and frontend it with another cross platform "language" ([http://kivy.org/](http://kivy.org/)).

Big thanks and congratulations to the haXe developers, and I'll keep an eye on it with high hopes the library will expand!

<comment><USER30> With Haxe/Java and Haxe/C# you can use any Java or C# library directly from haxe (with -net-lib and -java-lib)

</comment></comment><comment><USER31> I've been following OpenFL/NME for about a year, I was surprised when reading [http://www.openfl.org/blog/2014/03/18/flash-and- html5/](http://www.openfl.org/blog/2014/03/18/flash-and-html5/) that pixi.js is based off the Flash API.

</comment><comment><USER32> From the default linux install script for OpenFL ([http://www.openfl.org/haxe-3.1.1-linux- installer.tar.gz](http://www.openfl.org/haxe-3.1.1-linux-installer.tar.gz)):

# Set up haxelib

                    sudo mkdir -p /usr/lib/haxe/lib
                    sudo chmod -R 777 /usr/lib/haxe/lib
                    sudo haxelib setup /usr/lib/haxe/lib

This isn't as bad as I originally thought; I tested this, and only that directory itself is world-writable (the sub-directories from haxe install foo are universally readable and executable, but not writable). Still seems like someone could install a malicious 'dependency' ahead of someone else needing it.

<comment><USER33> Oh, I remember seeing this last time I looked at this. I generally don't like seeing sudo/su in a script like this at all -- and especially not something that goes an messes with LSB-locations like /usr/lib.

FWIW, the actual software is download by the script, eg: [http://haxe.org/file/haxe-3.1.1-linux64.tar.gz](http://haxe.org/file/haxe-3.1.1-linux64.tar.gz)

For something that is aimed at developers, one would think this stuff installed under /usr/local or /opt (benefit of /usr/local is that most(?) distributions set up PATH,MANPATH, various link/library paths etc to include /usr/local. Benefit of /opt is keeping the package well "out of the way".

World writeable directories without a sticky-bit is generally just wrong -- under /usr/lib it's pretty terrible.

</comment></comment><comment><USER34> Finally. I have loved using Flash for game development back when it was owned by Macromedia, and with AS3 it's still got a powerful API, but at the end of the day having an open-source implementation to work from is far nicer. It helps that Haxe is really cool, too.

</comment><comment><USER35> A link to a discussion including industry insiders. [1]

I made this [2] with Haxe/OpenFL (NME) a year ago (W.I.P. that's gathering dust now). Music's not mine, just stand-in from awesome Hotline: Miami. Didn't have much luck in trying to get this to run on mobiles.

[1] [http://forum.starling-framework.org/topic/flash-is-dead- long...](http://forum.starling-framework.org/topic/flash-is-dead-long-live- openfl)

[2] [https://dl.dropboxusercontent.com/u/48356497/vizard/index.ht...](https://dl.dropboxusercontent.com/u/48356497/vizard/index.html)

</comment><comment><USER36> Flash will be dead when web game companies (e.g. Zynga) stop using it.

It's still years away.

<comment><USER37> At least one major component is moving off of Flash: videos.

Now, if you opt to forgo Flash on your device, the most you seem to miss are some games and annoying banner ads.

<comment><USER38> Unfortunately, as far as I know there's still no decent solution to stream video without flash (I'm talking Twitch et al here). Twitch is the only reason I still have flash on my computer (and not actually for watching games being streamed, but for the annual Desertbus event).

Has the HTML5 video streaming improved at all over the past year?

<comment><USER39> I also kept Flash around mainly for this reason. It doesn't help people that want to make streaming video sites, but you don't need Flash to watch live video streams from sites like twitch.tv. You just need a media player capable of playing streaming video (mpc-hc, mpv, and vlc all work), and the livestreamer command line tool which extracts direct video stream URLs from twitch.tv pages.

[http://livestreamer.readthedocs.org/](http://livestreamer.readthedocs.org/)

This works perfectly for me, arguably better than the Flash-based player. I uninstalled Flash a few months ago and haven't felt the need since.

<comment><USER38> I am aware of the VLC workaround. But I like Twitch enough that I'll actually watch their ads, as I think they're reasonably placed etc. So until they're implementing a flash-free solution (and I'm sure they're interested in doing so), I'll just keep flash around for them.

</comment></comment></comment></comment></comment><comment><USER40> > _I could try HTML5, but that precludes releasing high-performance desktop- > ready games for Steam._

Oh Jesus Christ. _Do not do this._ "Flash" and "high-performance" do not ever belong in the same sentence. Binding of Isaac was a game that, visually, could have run on a Super Nintendo, but it chugged like a tired tortoise on a midrange 2010 laptop. I know Flash is popular, I know it's easy to develop with, but if you use it for "high-performance" game design you are cutting out a huge potential audience of low-end users, because it is miserably slow and inefficient. I should not need cutting-edge hardware to run a simple 2D game.

Edit: For vector games, at least. Raster games made with Flixel seem to run all right. But Flash's native vector implementation is Godawful and deserves to die.

<comment><USER21> Did you read the article?

<comment><USER40> I did. I may not have been clear, though. He says HTML5 is a poor substitute for Flash because it doesn't work for "high-performance desktop-ready games for Steam." I'm saying that Flash has _never_ been any good for "high- performance desktop-ready games," and devs really, really need to stop deluding themselves that it is.

Basically I'm saying I have trouble trusting anyone who thinks that Flash was ever a decent high-performance gaming engine.

<comment><USER21> I get that. (I wrote the article by the way).

"I have trouble trusting anyone who thinks that Flash was ever a decent high- performance gaming engine"

I never said it was -- just that if I have to switch to something anyways, performance is something I want to take into account.

And for what it's worth, flash wasn't _high_ performance, but with proper optimization you could get _acceptable_ performance -- and in the case of our game[1] locking ourselves to 800x600, we got way, way, better framerates and sprite counts than Binding of Isaac (which uses AS2 and unoptimized graphics).

Perhaps I should have been more clear in the article -- "As long as I'm leaving flash behind, I don't want to jump straight over to something else that might have the same performance concerns I've been fighting/hacking against all these years."

[1][http://store.steampowered.com/app/218410/](http://store.steampowered.com/app/218410/)

<comment><USER40> That makes more sense, then. I've been burned a couple of times buying games on Steam by devs who thought Flash was good enough for pro development. (IIRC, both of them either got or are getting a non-Flash remake.) And I've been frustrated by the slowness of Flash web games pretty much since it was launched, until just a few years ago when I was able to afford high-end gaming rigs. So it's a hot button for me.

</comment></comment></comment></comment></comment><comment><USER41> Every time I read an article about Haxe (and now, OpenFL), I get the itch to start working on a mobile game--just as a hobby project.

That said, does anyone know how well-suited these frameworks are for regular application development (or whether there exists alternatives)? I've been thinking about wipping up a mobile app, and while I could write the Android code, my knowledge of Objective-C is so limited at the moment that I'd like to avoid duplicating the same logic in another environment/language...

<comment><USER42> There are two UI libraries for openfl, HaxeUI and Stablex:

[http://haxeui.org/](http://haxeui.org/)

[https://github.com/RealyUniqueName/StablexUI](https://github.com/RealyUniqueName/StablexUI)

btw: There is Objective C target in haxe, so you can develop native apps for iOS in Haxe.

</comment></comment><comment><USER43> The problem with flash is the same problem as the .Net framework, Coldfusion and similar technologies.

You cannot have an entire ecosystem revolve around a single company and not have growth or compatibility problems. You simply can't.

What flourishes? Things like Linux, Python, etc because they can be flexible and adaptable. When you have a company in charge of a technology you will always be at the whim of that company and what they decide to do with it.

</comment><comment><USER44> Flash is _animation software_. That people write games in it is a function of its past ubiquity and a symptom of the dangers of Turing completeness. Actually coding in Flash is _unbelievably horrible_. This is like an announcement of a well-supported cross-platform Brainfuck kit.

<comment><USER45> Flash has not been able to decide if it's animation software or a software platform for pretty much the entire time I've used it. When I was doing web animation back in 2000, Macromedia's response to complaints about the editor crashing like crazy when dealing with the ~20M source files involved in making 3-4 minute cartoons was basically "don't use it for that, it's for making little interactive widgets".

Oh yeah, and animating in Flash is often pretty horrible too.

</comment></comment><comment><USER46> Awesome overview. It's fairly easy to start with. Especially for 2D game. It compiles to JS as well fairly painlessly. Some difficulties occur when your start using oldschool Flash stuff such as "BitmapData" etc. Or fonts. But other than that it's pretty great.

</comment><comment><USER47> Looks like Adobe are about to lose a key asset through management incompetence. The Xerox of our time?

</comment><comment><USER48> Wow! And no mention of scaleform - the Flash MiddleWare for consoles... humm... - [http://gameware.autodesk.com/scaleform](http://gameware.autodesk.com/scaleform)

</comment><comment><USER49> Chrome still has Flash Player built-in and that won't change any time soon. I think once Chrome and YouTube completely move on it'll be a major development in Flash taking a back seat.

</comment><comment><USER50> Well done larsiusprime. Great article. You have me very interested in trying out Haxe and Lime, maybe OpenFL as well.

</comment><comment><USER51> As an ex Flash developer all I can say is this: Stick with open source and find an up facing trend.

BTW fuck Adobe.

</comment><comment><USER52> "X is dead, long live Y" is dead, long live original headlines.

</comment><comment><USER53> So what I got from that is that Haxe is a statically typed javascript with actual honest-to-god macros. Married to a trivially simple 2D graphics and audio framework, that thousands of developers are already familiar with.

That's awesome!

<comment><USER54> I echo your enthusiasm, but haxe is not really statically typed javascript any more than java is. It's also not really married to any framework, OpenFl just happens to be one of the most popular ones right now. Most 2d apis are trivially simple these days. OpenFL doesn't leave anything out there at least. If you're interested in more sophisticated 3d support, OpenFL provides a surprising level of functionality there, including recently announced support for stereoscopic 3d.

<comment><USER21> There's also a bunch of other backends if you want something besides OpenFL -- there's h3d, kha engine, Flambe, etc.

</comment></comment></comment><comment><USER55> Well, the first half of the title is right.

</comment><comment><USER56> Hey, guy who wrote that article. The Web Platform is going to become the dominant platform for games and performance is going to be just fine. Wanna bet? :-P

<comment><USER21> I agree. Did you read the article?</comment></comment>


D&D on the Microsoft Surface - <AUTHOR> http://www.crunchgear.com/2010/02/10/hands-on-dd-on-the-microsoft-surface/

<comment><AUTHOR> Two more related links showing more:

<http://vimeo.com/7132858?hd=1>

and

<http://vimeo.com/7762030?hd=1></comment>


Ask HN: How Google maps detecting real time traffic? - <AUTHOR> I am curious how google maps retrieving real time traffic details so fluently over the globe. <comment><USER2> Years ago I made a "real time web based traffic map" for a USDOT/MODOT project. We used traffic sensors made by 3M that sent data to a local 911 center that was also setup under the same project.

The sensors sent traffic counts every few minutes and I used that data to draw greeen/yellow/red lines of the areas covered on a road map.

[http://multimedia.3m.com/mws/media/362275O/3-monitoring- traf...](http://multimedia.3m.com/mws/media/362275O/3-monitoring-traffic-on- bridges.pdf)

<comment><AUTHOR> Thanks man for justification. I'm curious about how currently it being captured.

Yesterday I was driving way home back and there were road blockages due to heavy rain and an accident. I just checked on map for traffic and it's nearly accurate to real traffic of vehicles. My commute routes does not consist of those type of devices/sensors per my understanding and observation. It's non metro city of India.

</comment></comment><comment><USER3> 1) Government data [https://opendata.stackexchange.com/questions/1767/data-of- ve...](https://opendata.stackexchange.com/questions/1767/data-of-vehicle- traffic)

2) Waze, Google Maps turn-by-turn</comment>


Banks vs Startups: The Tech Talent War heats up - <AUTHOR> http://blog.coderstack.co.uk/banks-vs-startups-the-tech-talent-war-heats-u

<comment><USER2> In my experience, banks need a lot more than competitive job postings to be places where talented developers want to go. Obviously YMMV, but it's red-tape hell, technologically dated, management heavy, non-creative, and a real daily grind. If it's the kind of job you want, you are much better off working for the Government.

This is exactly what working for a bank IS NOT: <http://www.youtube.com/watch?v=u6XAPnuFjJc>

<comment><AUTHOR> Finance is pretty much like any sector, there's a huge variety between firms and even between individual teams within firms.

There are lots of areas of finance where technology is what provides the competitive edge and they tend to be much more agile and use recent technologies, but there are also lots of areas where the code that was written 20 years ago in Fortran still works perfectly fine and does the job.

<comment><USER2> My understanding of technology as a competitive edge in finance is that:

1 - it's a relatively small part of the sector

2 - it happens in intervals

Specifically for #2, you can look at flash trading, where the edge exists for a while, but then everyone more or less catches up..and it's a couple years before the next innovation.

Some other complaints: -Bank incentives are almost purely monetary (which does not work). -They tend to hire within the industry (it's an extreme place to find technical and managerial inbreeding). -They are extremely arrogant and prideful (making corrective measures hard to implement, since they aren't identified)

<comment><AUTHOR> It's actually much broader than just flash trading, essentially you can divide it by which part of the bank it occurs in. Any front office tech (risk management, pricing, analytics, trading) app tends to be on the competitive edge as does anything it relies upon (infrastructure, feeds, tick databases, etc.)

Back-office technology (settlement, reconciliation, etc.) tends to move much slower.

It also depends on the asset class, more stagnant areas such a mortgages tend to have more stagnant codebases than "hot" areas like FX.

Competitive areas aren't the same across all firms either, while one firm might put a lot of money into it analytics technology another might ignore that area altogether and just buy in an off-the-shelf solution accepting that it's not going to compete in that area.

Essentially the only way you'll know about the quality of the tech you'll be working with is to be smart and ask questions at the interview stage (this is true for any firm).

<comment><USER3> > Essentially the only way you'll know about the quality of the tech you'll be > working with is to be smart and ask questions at the interview stage (this > is true for any firm).

Cannot emphasise how important this is. No one discusses how to navigate an interview from the perspective of a potential employee.

</comment></comment></comment></comment></comment><comment><USER4> > \- A PhD or MEng in Computer Science.

If this isn't for a research-orientated position or a very technical (mathematical) role - in which case, you probably want that to read PhD or MEng in Maths or Physics - then why bother with this particular bit of criteria? Since when does having a PhD or MEng make you a better software developer?

<comment><USER5> It's probably just a way of saying that they need more math and data mining skills than your average software engineer with a BS or no degree at all.

<comment><USER6> Can you _really_ be a Software Engineer without a degree? Developer, yes, but the term "engineer" has a certain level of professionalism associated with it that an autodidact computer programmer wouldn't necessarily have.

For point of reference, check out [http://en.wikipedia.org/wiki/Iron_Ring#The_Ritual_of_the_Cal...](http://en.wikipedia.org/wiki/Iron_Ring#The_Ritual_of_the_Calling_of_an_Engineer)

> It is a symbol that reflects the moral, ethical and professional commitment > made by the engineer who wears the ring.

I'm _not_ an engineer myself and I wouldn't presume to call myself one unless I'd gone through the engineering training.

Am I being too pedantic?

<comment><USER5> I'm going to go with yes you are being too pedantic. No one really knows what to call programmers so we make up things to say. I write code for my company so I'm the guy who makes things happen to some and to others I perform some sort of dark arts.

I'm pretty good at making things work and bringing a lot of knowledge to any situation requiring my skills.

Does that make me an engineer? Does my lack of degree disqualify me?</comment></comment></comment></comment>


CheckIO - a programming game - <AUTHOR> http://www.checkio.org/welcome/

<comment><USER3> The English needs a lot of work, but it's not incomprehensible.

Bigger problems: the first problem's instructions are unclear; the first example is burdened with lines so long that they have to wrap; the first example involves crufty type casting out the gate. This serves not only to confuse newbies, but to visually offend experienced programmers.

The prompt reads as follows: "Teach Sofia how to use an ATM. The ATM on their home island can give only 5F bills, which means that the machine will not give any bill not divisible by 5F. In addition to that, the commission for each cashing out is 0.5F + 1% from the taken out cash plus the robots cannot go beyond the card's balance."

The leading comments of the code do not seem to go with it: "# Withdraw without any incident ... # 120 - 10 - 0.5 - 1% = 109.4"

Neither says anything obvious enough about what sort of code you expect people to write such that the tests are passed. The major failing here isn't one of language, but of design.

</comment><comment><USER4> This is a great idea, but it needs some polish. A native speaker needs to proofread the English, and the problems are underspecified

<comment><USER5> Also some weird coding choices...

The first problem has a function 'prototyped' as:

      def checkio(data):
        balance, withdrawal = data

Where 'data' is a list, the first element being the initial balance, the second element being a list of withdrawals (plural... despite the fact that it's called 'withdrawal' when it's unpacked).

Why bother with the list unpacking?

Why not just define the function as:

      def checkio(balance, widthdrawals):
        pass

EDIT: Giving it some thought, I assume future problems will use the same 'checkio' function, so it has to have the same argument list...

Using __kwargs might be more Pythonic, if that's a design constraint...

</comment></comment><comment><USER6> Hmm, this looks interesting although I agree with jmathes that it needs polish.

I was really surprised to be thrown completely out of the game world when I clicked 'solve it' on the first problem. It might be nicer to at least open the console screen into a new tab, or have some kind of visual reference to the game world. It felt jarring.

It feels like there's not much guidance on how to start, if it's actually intended for beginning programmers. It might be helpful to add a hint system? I'll send it to my boyfriend who has been teaching himself python for a couple of months, see what he thinks.

I really appreciated having keyboard shortcuts to save and run the program though, good thinking :)

<comment><USER7> Actually we have a hints in CheckIO. They shows what each element means

<comment><USER6> hm. In that case, modify my feedback to say 'make the hints more obvious' - <USER2> didn't see them even when I looked for some. Where are they?

<comment><USER7> You right. Thank you. We will think about how to do it.

</comment></comment></comment></comment><comment><USER8> Interesting how similar this is to <http://www.brainworth.net/>. I wonder if they had some interaction?

<comment><USER9> That looks interesting yet unfunded and conceptual only?

</comment></comment><comment><USER10> Maybe I'm just tired, but I'm having a hard time figuring out how to start playing after I create an account.

</comment><comment><USER11> The image on the front page shows "python 3.3", but python 2.x syntax below it. (print statement)

<comment><USER7> Oh! Man! You right! Thanks. We will fix it!

</comment></comment><comment><USER12> Very cool. I am psyched to see games like this becoming popular. Heck, I would never have guessed my older sister to write a line of code in her life, but she saw Code Hero at PAX and started telling me about the cool programming stuff she learned!

</comment><comment><USER13> The captcha is nearly impossible to read. Can you switch to a more human parseable version?

<comment><USER14> Or replace it with another programming exercise.

<comment><USER15> Thanks for your feedback

</comment></comment></comment><comment><USER16> Very interesting. It's a shame that it has such a sexist background..

<comment><USER15> Can you help me please understand what did wrong. What particularly is making such impression? Thanks in advance.

<comment><USER16> Sorry for late answer.

In a game the protagonist is usually a representation of the target audience, both realistically (talking to nerds? create a nerd protagonist) and idealistic (talking to nerds? create a science man protagonist who get laid), not mutually exclusive.

What we see there is a nerd robot which competes for a sexy looking girl. Not for love, happiness or nothing. But for a nude-looking robot girl with a prominent breast. Not cool.

If I misjudged it and actually the female character is just a playable character for female players, well ok... it's sexist anyway. Why should the female chracters have such an irrealistic body? Is __that__ what we refer to with the term "girl"? Only a physical characteristic? That's pretty low.

<comment><USER7> Why do you think that nerd robot ( Nikola ) competes for a sexy looking girl ( Sofi ) ?

</comment></comment></comment></comment><comment><USER17> Is this just a concept or is it live?

<comment><USER18> It's live, you can "play" it now. It still needs a lot of polish though.</comment></comment>


U.S. Govt Will Grant $2B for the creation of CC-BY content - <AUTHOR> http://creativecommons.org/weblog/entry/26100

<comment><USER2> Full announcement is worth reading too: <http://www.doleta.gov/grants/pdf/SGA- DFA-PY-10-03.pdf> Besides the CC attribution, the basics are $500m/year for 4 years, 3 month window for grant submission proposals via educational institutions, with a heavy focus on marketable skills and also built in results tracking. Also, there's already a reference platform and test suite (SCORM, a DoD project), and a lot more besides.

 _Interactive software can tailor instruction and tutoring to individual students, while simulations and multimedia software offer experiential learning. With the creation of new online, open-source courses that can ultimately be shared and distributed nationwide, community colleges and other eligible institutions across the country can offer more classes without building more classrooms. New online courses can create new routes for workers and other students to gain knowledge, skills and credentials, and earn academic credit based upon achievement rather than class hours, all while providing continuous feedback to students and instructors._

This is a pretty big bet on computerized/distance learning education. I'm...impressed.</comment>


The Willful Blindness of Reactionary Liberalism - <AUTHOR> https://newrepublic.com/article/158346/willful-blindness-reactionary-liberalism <comment><AUTHOR> Honestly surprised HN wasn't mentioned by name in this article.

</comment><comment><USER2> TL;DR: "Any given vandal taking down a statue of Grant or Lincoln or Washington is more committed to the cardinal liberal principles than any of those leaders were"

<comment><USER3> That seems to me to be a fair TL;DR. (And wow, did it need one!) Whether that's a reasonable _position_ is a different question...</comment></comment>


Why I Love Haskell: An Example - <AUTHOR> http://thenewsh.blogspot.com/2015/04/why-i-love-haskell-example.html <comment><USER2> Providing type signatures on all top-level functions would've been nicer for teaching purposes

<comment><USER3> Absolutely. One of the nice things about Haskell and its type system in general is being able to look at a function's type and induce roughly what it does. Or, vice-versa, the ability to find pieces of functionality on hoogle by giving a reasonable type signature for your desired code.

Skipping out on that visibility when showing how Haskell is expressive seems like a missed opportunity.

<comment><USER4> Is hoogle a special search engine for Haskell code or was that an unintentional typo?

<comment><USER5> Yes, it's a special search engine: [https://www.haskell.org/hoogle/](https://www.haskell.org/hoogle/)

You don't search for words in the documentation etc., but enter the type of the function you want. This often works pretty well.

<comment><USER6> FPComplete's Hoogle is a bit more complete: [https://www.fpcomplete.com/hoogle](https://www.fpcomplete.com/hoogle)

<comment><USER7> It's good overall but sometimes the ranking is weird. For example, if you search for "ByteString", what you'd expect is only the #3 hit.

For beginners who are likely to be searching for core libraries, the other Hoogle might be more useful.

</comment></comment></comment></comment></comment></comment><comment><USER8> Took 10 mins to hack a silly, inefficient version.

[https://play.golang.org/p/UPlzWR5OCO](https://play.golang.org/p/UPlzWR5OCO)

Gives the same result as [https://www.ietf.org/mail- archive/web/tls/current/msg03416.h...](https://www.ietf.org/mail- archive/web/tls/current/msg03416.html) SHA256 test vector.

Looks easier to understand, to me...

<comment><USER9> It actually looked much more difficult to understand to me because golang just really has no structure.

Anyways, it probably is simpler, because it doesn't solve the same problem that the Haskell code solves. The Haskell code allows you to generate some bytes from the infinite stream even if you don't yet know how many you need; your go version must know how many you need before you start.

In order to do the same thing in go you're going to need to use an iterator or a goroutine + channel. Try doing that as cleanly as the Haskell version.

<comment><USER10> This can be done very easily using an unbounded io.Reader instead of channels or iterators.

Here's a slightly modified version of bluefox's code where the prf function returns an unbounded io.Reader: [https://play.golang.org/p/ZAj8q4eXEi](https://play.golang.org/p/ZAj8q4eXEi)

And here's a version that's modified a bit more, but still essentially the same, to trade LOC for matching the spec very cleanly: [https://play.golang.org/p/Rpy0yIwVN1](https://play.golang.org/p/Rpy0yIwVN1)

<comment><USER11> I don't see any kind of error handling, but if I understand correctly, in some cases in Go it is not necessary to check for errors directly (an errorneous output stream would do-nothing on write, for example). Do you think your versions are fault-tolerant or is there anything you should add to gracefully handle errors?

<comment><USER10> A Hash's Write method can't return an errors.

Writing and Reading to a pipe only errors if the pipe has been closed. We return an io.Reader, instead of an io.ReadCloser, so consumers can't close the Read side. Internally, the Write side is never closed either. So, in practice, Reading and Writing also won't ever error.

</comment></comment></comment></comment></comment><comment><USER12> Why would this be difficult in other languages, especially other modern languages? I wish the author expanded on it as I don't see anything special about the use of Haskell here.

<comment><USER13> Did he not?

> Haskell provided a very light-weight syntax.

> Haskell allows partial-application of functions.

> Haskell allows definitions of unbounded data structures...

> Higher-order functions like "iterate" and "map"...

> Monads allowed me to avoid having to explicitly track side effects ... > [also] purity and strong type checking.

> Libraries of higher order functions for monads allowed me to limit the > syntactic cost of using monads.

<comment><USER12> That just tells me he did it the Haskell way. That doesn't answer the question of why it would be more difficult in other (modern) languages.

If you're going to make an audacious claim then we need to see evidence to support that claim. The author didn't do this. All the author did was show us a Haskell implementation.

<comment><USER14> No, but he did say "beware, herein lies advocacy." Which is a tongue-in-cheek version of saying "ok, I know, I didn't do my due dilligence, but it's my blog and I love Haskell and I'm excited about this one thing I just built."

Not everything is a paper in Nature. I understand your point but he's honest about it just being a propaganda piece.

And, frankly, what's wrong with that?

Thanks to the author for taking the time to share.

<comment><USER15> > _And, frankly, what 's wrong with that?_

That it doesn't solve OUR problem, which is "help us chose if Haskell if better", even though it pretends to?

<comment><USER13> I don't see how it doesn't help. It might not help as much as could be asked, but it's a cute example of "real world" Haskell use and he described the parts of it he rather liked.

<comment><USER2> Here's a follow up post from a different author, that continues on this subject, and also explains some of the benefits of the haskell approach: [http://nikita-volkov.github.io/a-taste-of-state-parsers- are-...](http://nikita-volkov.github.io/a-taste-of-state-parsers-are-easy/)

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> I salute you if you understood anything in "The Problem" section.

<comment><USER17> This is my problem with everything I encounter when trying to learn about Haskell. I find almost everything I come across to be completely unapproachable. If I cant understand the problem you're solving in the blog post then the solution makes even less sense. I don't say this as a criticism of this author at all. It's just something I've noticed with Haskell.

<comment> jon-wood I'm glad I'm not the only one who feels that way. I find that with many articles on functional languages, which leaves me wondering if they attract a certain type of person, or if they're just not well suited to the problems I work on.

Is there anything good on doing web development in a functional style? I keep hearing about Om and Clojurescript in relation to React, but I have no idea where to start.

<comment><USER18> This website is written in a Lisp dialect.

<comment> jon-wood I'm aware of that, so clearly its possible, I just have no real idea how I'd approach that myself.

</comment></comment></comment></comment></comment><comment> Pirate-of-SV I like Haskell because of some of the related tools.

\- HLint, a very helpful linter for ideomatic Haskell

\- QuickCheck, Fuzz-testing function's properties

\- hpc, Pretty code coverage

<comment><USER19> I find the Haskell tooling ecosystem surprisingly terrible, given how rich the information content of the code is. There's virtually no equivalent of most functions from e.g. Intellij for Haskell that I know of (although I haven't tried FPComplete's tools yet and hear good things).

The libraries you mentioned though are indeed all really fantastic, and after learning how to use them you'll miss them dearly when they're unavailable.

<comment><USER2> There are all sorts of tools, even for refactoring. Maybe not to the degree of Java, no. Although, haskell code tends to have less boilerplate, so there is less toolig for manipulating boilerplate. (Not to say there are other tools that could be improved). But the situation is far from dire.

\-- Vim:

haskellmode-vim for show type and insert type, among other things.

ghcmod-vim for HLint and HCheck, also used by Syntastic and NeoComplCache.

neco-ghc uses ghcmod-vim for nifty Haskell completion, powered by neocomplcache.

Syntastic automatic syntax checking for vim.

\--Emacs:

structured-haskell-mode: [https://github.com/chrisdone/structured-haskell- mode](https://github.com/chrisdone/structured-haskell-mode)

haskell-emacs: [http://chrisdone.com/posts/haskell- emacs](http://chrisdone.com/posts/haskell-emacs)

</comment></comment></comment><comment><USER20> Then your Haskell expert leaves and then you learn why I hate Haskell(or insert any fringe programming language here).

<comment><USER19> Learning Haskell isn't beyond any programmers though, and is likely to pay off long-term. I agree that other fringe languages might have less payoff though - Erlang/elixir, Clojure, F#/OCaml, Idris/Coq/Agda (although who would write production code in these?) are all more likely to impart fundamental understandings than e.g. Coffeescript, Wisp, etc.

<comment><USER20> Learning kung fu or the violin isn't beyond most people either, but I'd rather not have that be the prerequisite for being able to be productive on my team.

Most companies don't prioritize paying a potentially highly compensated worker to learn an obscure language when the job can just as effectively be solved using standard skills and languages that are much easier to acquire(hire).

Also, despite the passionate defence that many functional-first language advocates give, I have never seen any conclusive evidence that these languages, in general, produce better results than the standard suspects.

<comment><USER21> This. We're still waiting for Haskell's killer app.

<comment><USER22> Can you give some examples of killer apps in other languages, so I know what sort of example you're looking for?

</comment></comment></comment></comment></comment><comment><USER23> Why I Love My Left Arrow

When pressed in combination with the alt button, it can navigate back to the previous page I was viewing. But not when someone captures onkeypress and cancels it.

<comment><USER21> That's because you didn't use the IO monad.</comment></comment>


AR Startup Magic Leap Raises $793.5M Series C at $4.5B Valuation Led by Alibaba - <AUTHOR> http://techcrunch.com/2016/02/02/ar-startup-magic-leap-raises-793-5m-series-c-at-4-5b-valuation-led-by-alibaba/?ncid=rss <comment><USER2> They must have a very persuasive pitch. They've raised nearly $1.4B without publicly revealing any kind of product.</comment>


Ask HN: What do you think are the most future-proof skills in software? - <AUTHOR> I'm a 29 year old UX developer (truly full stack, I do everything from Ruby to JavaScript to typography and user research studies) with a background in C#/Java and databases.<p>Of that, I really like tackling things related to UX and performance, but I'm not sure how future-proof that is. I've got an itch to scratch with Haskell, Go, Scala, Swift, Phoenix/Elixir and Node, and have made pet projects (or worked freelance) in all of them but nothing has really drawn me yet. It's like I have programmer ADD, and if anyone could provide advice on which skills would be the most future-proof to hone, that would be great! <comment><USER2> Specialization (in anything) sets you up well in the future. Here's an example: Let's say you starting specializing in Go. One of two things will happen:

1\. Go increases in popularity. You're then the go-to-guy for many projects and startups. You can consult like crazy and make a lot of money.

2\. Go decreases in popularity. Many many projects still exist that are written in Go. Other programmers move on to the next flavor-of-the-month, and so Go skills become harder to come by. But these projects still need to be maintained and worked on. Businesses look for specialists to help them with this rare skill. You can consult like crazy and make a lot of money. This has been the surprising arc of languages like COBOL. COBOL programmers make serious cash these days, because the rest of the world has moved on.

So I'd say: Pick anything. Truly, just pick whatever you like the most, and try to be the best at _that_. Being a generalist just lumps you in with all the bootcamp grads and hobbyists. Being a specialist lets you offer skills/services that other's cannot. That kind of scarcity is future proof.

<comment><USER3> Somehow the reality demonstrates the opposite:

>> 1\. Go increases in popularity.

Lots of people rush into the market with the newly learned Go skills and the salaries take a dive.

>> 2\. Go decreases in popularity. Many many projects still exist that are written in Go.

These need to be maintained. Maintenance jobs pay poorly and do not advance one's skill set, leaving one with the outdated skills after a while. New shiny things are developed in new languages and those who quickly learn them before everybody else get to earn some good money.

Specialization gives you an edge... for a brief while until this skill becomes a commodity and is eventually outsourced.

Lesson to take: focus on some skill which cannot be easily learned by a vast army of outsourced workers. Everyone can learn some Java or Go or whatever. Not everybody can run a consultancy. Not everybody can talk to humans and translate their needs into software solutions. Not everybody can found a company. These are the skills that provide the highest ROI in the long run.

<comment><USER4> _Maintenance jobs pay poorly_

I would call this an inaccurate generalization. It all comes down to supply and demand. What and who needs maintaining? How many people out there are capable of maintaining it? Price is set from these variables. Example: Cobol and Fortran developers during Y2K.

<comment><USER3> Agreed. I should have been more specific and said "maintenance jobs from a mainstream market". COBOL is different in that it was used to develop niche software for rather prosperous organizations. Naturally, they didn't mind paying extra to get the necessary skills. Somehow I doubt many of the currently hot web frameworks will enjoy the same fate. Some might last longer than the others but for the most part these are the commodities with a relatively short life span.

</comment></comment></comment></comment><comment><USER3> Being able to deliver, seeing the big picture and recognizing the opportunities. Turning ideas into products. Becoming your own boss.

Technology-wise, nothing will guarantee you a safe future. Tools change all the time, every few years the names of the instruments you see in job ads get [almost] completely replaced. Every year more and more people go into IT attracted by high salaries, hence the competition always grows.

You're just a few years away from realizing technologies will always change and you won't be able to keep up for long. You will also realize soon the tools are not that important compared to the problems you're trying to solve.

Focus on preparing yourself for a leadership role and an independent future. Should pay off more than any next programming language you can learn (and then discard a few years later).

<comment><USER5> > _Focus on preparing yourself for a leadership role and an independent > future_

as someone who's entry-level, what's the best way to "prepare for leadership role"? thanks!

<comment><USER3> This is a complex question and not the one I can answer in five minutes. But I'll give you some pointers.

1) Focus on broadening your skill set, not deepening it. If you like some tool and wish to explore it to the depth, that's fine, but do not stay there for a decade. Learn a full stack. Get things done from start to finish single- handedly. Several times over.

2) Adopt a certain mental state and attitude. Consider your job just a temporary assignment, an instrument for you to acquire valuable skills and meet important people. Know it can end at at any time, so can the next job, such that you will just be buying your time until your ship comes. Don't become a slacker though, do your job well, just don't expect it to secure your future till the retirement.

3) Adopt a critical view of the things. Get to form your own opinion and view on a variety of matters. Don't take anything for granted, check and verify things, try to guess problems and prepare for them so that they don't catch you by surprise. Learn to be in control. The trick is not to overdo it and not to start doing it too soon before you have acquired sufficient experience, otherwise your run the risk of turning into an arrogant all-knowing jerk impossible to work with. Be careful here.

4) Actively look for opportunities to try things on your own, be it taking a charge of a small project, helping a customer or building your own thing. Learn to feel being "one against the entire world". Don't let it scare you but instead excite you.

5) Invest in social skills just as much as you invest in technical proficiency. From a certain point of your professional growth your work becomes more social than technical. Learn to communicate well with various people.

There is more to it of course but this should get you started. I'll add to this post if anything else crosses my mind.

<comment><USER5> that's very helpful, thanks!

</comment></comment></comment></comment><comment><USER6> People will give you abstract answers to a question like this.

For something concrete, I suggest sticking to C syntax like languages like c#/js/java and even python to some extent. As history would show, the most popular languages seem to follow this syntax and it's fairly easy to pick up new languages based off experience. I went from c++->delphi->c#->js relatively easily.

My personal opinion as well is that now is the time to start getting into security software, pentesting etc. The proliferation of new languages, frameworks and api's is a pandoras box waiting to be opened by the security community. We've barely scratched the surface, as today's security community is really, really far behind. Once they catch up, and more automated tools and exploits start showing up that target these newer applications, these hipster startup companies will be forced to start spending. Right now it's mostly financial institutions, and companies using legacy stacks like php, wordpress, drupal that are being attacked.

That or data science/parallel programming.

</comment><comment><USER7> Everything other than the programming language: first principles, requirements engineering, formal analysis, estimation, project management, quality assurance, communication skills (lay and technical), etc.

<comment><USER8> Couldn't muster up a mental model for formal analysis so thought I'd give google a try... first result is a very interesting resource.

[http://www.getty.edu/education/teachers/building_lessons/for...](http://www.getty.edu/education/teachers/building_lessons/formal_analysis.html)

</comment></comment><comment><USER9> Understanding the fundamentals and the science behind them, and being able to communicate well.

</comment><comment><USER10> Domain expertise in something, almost anything really. The world is full of decent programmers and their numbers will only grow. If all you have to offer is that your're really quite good at programming then you'll be competing against a huge pool of equally qualified people and you'll have a harder time proving your unique value.

If on the other hand you understand the specific problems faced in field X and are really good at programming solutions to those problems, you'll be competing against a much smaller group, and it will be much easier for you to prove your value since everybody in the field knows how much of pain X is and the monetary value of making X go away.

</comment><comment><USER11> Whatever tools/technologies/systems large enterprises are using is usually very slow to be decommissioned or to become obsolete.

These often could be more boring but longer lasting entities.

On a side note communication and good personality skills will never go out of fashion.

</comment><comment><USER12> UX skills with full knowledge of all the latest software tools and concepts. I think programers can come and go, are found in every country, in every language, and can be had for little or a lot of money. All day long. However a good UX designer, who is familiar with all of the textbook concepts, real world experience, and intuitive thinking, is invaluable.

Knowing that a button should be a certain type of button, text should be a certain way, and understanding deeply the best way for a user to interact with the software is truly invaluable.

</comment><comment><USER13> It doesn't seem aligned to you having read the body of your text, but something I had a knee-jerk reaction to as an answer to 'future-proof' is Mainframe, COBOL, DB2. Yes, even today. Backed by a strong business understanding, these are great skills.

</comment><comment><USER14> I guess social skills? Like ability to sell yourself, project yourself as someone who is easy to get along with and work with. Being good at that earns you more money than any particular technical skill you can think of.

</comment><comment><USER15> A side comment: any university/college teaching CS or Software Engineering should be able to answer your question. But I'm not sure they are.

</comment><comment><USER16> Combination of functional and OO programming (i.e. Swift)

<comment><USER17> Swift is so not "future-proof." At this point it is barely even accepted in the marketplace as a valid option.

</comment></comment><comment><USER18> Touch typing.

</comment><comment><USER19> Technical skills: vim, bash, postgresql, git, redis, ansible, docker

But the most important skills: domain expertise, marketing, being able to go independent.

Most future-proof: be the one who hires, not the one who is hired.</comment>


Zappos Exodus Continues After a Radical Management Experiment - <AUTHOR> http://bits.blogs.nytimes.com/2016/01/13/after-a-radical-management-experiment-the-zappos-exodus-continues/ <comment><USER2> _In a post on the company's website, Arun Rajan, the chief operating officer, said 18 percent of the company, or some 260 people, had left the company since March._

 _The exodus began after the chief executive, Tony Hsieh, announced that the company was going to adopt Holacracy, which is supposed to promote collaboration and abolish hierarchy. Anyone who did not accept the change could take a generous buyout, Mr. Hsieh said at the time. Within weeks, about 14 percent of the company, or 210 employees, had left the company, an Amazon subsidiary known for its playful corporate culture, convivial atmosphere and ample perks._

So fifty people or 4% have left since the initial buyout period. For a company with a 1000 employees that doesn't seem particularly high.

On the other hand, it is interesting that attrition was particularly high in the IT department. Not sure what it says though.</comment>


Four hours upfront and then reevaluate - (37signals) - <AUTHOR> http://www.37signals.com/svn/posts/469-four-hours-upfront-and-then-reevaluate <comment><USER2> I really like this idea. I think every developer falls into the trap and I find myself often hammering away at something for way too long.</comment>


Ask HN: Stock image as website logo: any side effect? - backend-dev-33 I'm building a website. It is bigger than just a side project. Found an image on one of the stock image sites, bought it for $20. I use this image as site a logo. I contacted the artist. Asked him to make few illustrations for my website in the same style. He did. Everything fine so far.
No I'm thinking about uniqueness of this logo image. The picture was sold for a long time on this (and few others) stock image sites. It is still available there.
Should I get (buy) some exclusive rights ? If I do this — what happens to the people who bought this image before? Should I just add the unregistered trademark™ symbol somewhere near this image and site name? Should I ask the artist to modify the image to make it unique? (something like adding one or two letters from the site name, "pied piper" style, you know)) <comment><AUTHOR> > _" what happens to the people who bought this image before"_

The people who bought it before still have a valid contract that allows them to use the image, so there's no way you can get exclusive rights to an image that others have already been granted rights to use.

If you want exclusive rights to an image, you'll need to get a unique image created for you, which will probably cost you much more than licensing a stock image (since the creator will only be able to get money for their work once).

> _Should I just add the unregistered trademark™ symbol somewhere near this > image and site name?_

I doubt that you can claim an image that you don't own as your trademark.

<comment> backend-dev-33 You are right. I'm talking to artist about modifying or creating a new image</comment></comment>