Ask HN: How to ace exams? - <AUTHOR>

In terms of high school as well as university exams, what are some tips in tricks in order to ace (not perfect, but do exceptionally well) exams with minimal study time?
I assume the best way would be to study a little bit over a long term prior to the exam, but how would one go about successfully cramming the few days before, especially when the exam is focused on problem solving (not just memorization and BSing, more math problems).
PS In case you can't tell, I have a math exam tomorrow, and have barely studied (it's high school so it doesn't matter that much). <comment><USER2> For math, I find it's all practice. You have to do lots of problems, which isn't really possible in a short period of time. Always do all your homework, spreads your studying through the year and exam/test questions will be similar to ones you have seen already. I also don't like to study last minute, better to get a good night's sleep.

For everything else, I would say write a cheat sheet (not to use). The act of writing forces the information through your brain and out your hand.

EDIT: should add, when you're actually writing the exam, read all the questions first. Then start with the the ones you know right away. If you have to think, come back to it later.

</comment><comment><USER3> Sorry to say that if your exam is tomorrow you've probably left if too late to guarantee doing exceptionally well. Personally I always preferred intense study over one or two weeks to prepare for an exam, but I think that is a personal preference.

Here are some things that I learnt from doing exams. This is aimed at university exams more than high school - the difference being that at (my) university exams typically consisted of a small number of long questions on a particular area, whereas high school was often a large number of small questions.

\- Make sure you have good exam technique: work out roughly how long you can spend on each question and still finish the exam. Stick to that timing leaving questions unfinished if necessary (unless you are writing essays, probably better to submit 2 complete essays than 4 incomplete essays). Read the paper through at the start to work out which questions you think you can do well on. Do those questions first. If you get to a hard part on a question don't waste time, skip to the next question and come back to it. You don't have to do the questions in the order that they are given to you. It's a game - score as many points as you can by tackling the easy bits first.

\- If it's a math type paper then you might be able to pick up the odd mark here and there by explaining what method you would have used if only you had the time.

\- Past papers are the best study tool. If you have them or can get them then do so and work through the questions. Ideally work through one or two past papers with your study materials, then do one or two under exam conditions.

\- If you're really out of time to study then you can gamble: pick the bits of the syllabus that you already know well and focus on mastering those bits, ignore the rest. Then hope like hell that the questions that come up on the day are on the bit that you studied. This can work really well or can turn into an utter disaster.

</comment><comment><USER4> Here's what worked for me, and this echos more than one other commentator:

Write down contemporaneous notes from the lectures. For me, like "what", this commits it to memory, I hardly ever referred back to them.

For math based subjects, do the problem sets as they are due. In these subjects, things tend to build upon themselves, so this is not something you can do at the last moment. Even if there are no formally due problem sets, do enough work so that you _really_ understand the material; if you don't, you're just fooling yourself.

I never "crammed" at the last minute (although one disaster marred term had me learning the last of the material in one subject in my normal fashion and pace the night before the exam, which I then aced), but be as sure as you can to get a good night's sleep before the day of the exam.

Anyway, as you note, in high school it may not matter so much, but you do have to get your foundations one way or another if you're going to go on to college in a math based major. So get serious about establishing your foundation before then. There were a few gaps in mine (I went to a low quality high school where my last math teacher simply refused to teach his class) and they caused quite a bit of suffering when I got to college.

</comment><comment><USER5> Practice answering questions under time pressure. Time management can be a big problem in exam situations.</comment>


On Wages - <AUTHOR> http://measuringmeasures.blogspot.com/2010/01/on-wages.html <comment><USER2> Adam Smith wrote, in _The Wealth of Nations_ , Chap. XI, Part III, "Rent of Land: Conclusion":

"The plans and projects of the employers of stock regulate and direct all the most important operations of labor, and profit is the end proposed by all those plans and projects. But the rate of profit does not, like rent and wages, rise with the prosperity, and fall with the declension, of the society. On the contrary, it is naturally low in rich, and high in poor countries, and it is always highest in the countries which are going fastest to ruin."

Seems like Henry Ford was on the same page.

<comment><USER3> Does the above idea bear similarity to internet sales in that they both try to sell to more people for a lower price? I'm not sure I completely understood the excerpt.

<comment><USER2> Smith is looking at the socio-economic health of the nation in aggregate. His overall project with _The Wealth of Nations_ is to try and redefine what people thought of as 'wealth.'

Part of his book is a sustained critique of the mercantilist view of national wealth, which thought that increasing the stock of money (in this case, gold & silver bullion) was the measure of increasing national wealth. Wealthy nations had a positive balance of trade and increasing stores of wealth, according to mercantilists.

Smith wants to get away from the idea that money = wealth. In his view, increasing production and increasing wages are the signs of national wealth. So, state intervention into production and trade with the object of increasing the stock of bullion controlled by the state is actually counterproductive in terms of increasing national wealth, according to Smith.

In Smith's view, the state should have a mostly _laissez-faire_ role. Setting high tariffs on imports and intervening in the market actually decrease national productivity and hurt wage levels. By decreasing competition they also allow for profit levels to rise. For both Smith (and David Ricardo later) the key effect of competition was to kill profit margins, whereas competition to increase production would raise wage levels by making the labor market competitive.

I think the linked article and Smith's ideas are both taken from a macro perspective, viewing the economy as a whole. From the national point of view, low profits and high wages and low prices are a good thing. For the individual firm, the opposite is the best: low wages, high profits, high price points.

Smith notes this contradiction between the individual capitalist businessman and the overall capitalist economy later in the same section I quoted above:

"Their superiority over the country gentleman is, not so much in their knowledge of the public interest, as in their having a better knowledge of their own interest than he has of his. It is by this superior knowledge of their own interest that they have frequently imposed upon his generosity, and persuaded him to give up both his own interest and that of the public, from a very simple but honest conviction, that their interest, and not his, was the interest of the public. The interest of the dealers, however, in any particular branch of trade or manufactures, is always in some respects different from, and even opposite to, that of the public. To widen the market and to narrow the competition, is always in the interest of the dealers...

"The proposal of any new law or regulation of commerce which comes from this order, ought always to be listened to with great precaution, and ought never to be adopted till after having been long and carefully examined, not only with the most scrupulous, but with the most suspicious attention. It comes from an order or men, whose interest is never exactly the same with that of the public, who have generally an interest to deceive and even to oppress the public, and who accordingly have, upon many occasions, both deceived and oppressed it."

<comment><USER3> The conflict between what's good for individual businesses and the national economy sounds like the prisoner's dilemma.

<comment><USER4> cf. tragedy of the commons.

</comment></comment></comment></comment></comment><comment><USER5> This is a little strange. The essay says:

1) Paying workers as little as possible isn't the best way to maxmize business profits.

2) Paying workers way above market rates doesn't attract the best talent.

3) You should pay the fabled 10X productive engineer 10 times the salary.

So... I don't know, I think the author was trying to say to pay in the middle somewhere, but got lost on the way to the point?

<comment><USER6> It's okay. Sometimes the stuff you find when you're lost is more interesting than where you were trying to end up anyway.

<comment><USER3> Agreed; however, that's what editing is for: to make it look like you never _got_ lost.

</comment></comment></comment><comment><USER7> Michael Lewis talks about the mismatch between salary and value for offensive lineman in his book "The Blind Side", which is similar to how great hackers are underpaid according to their value. Once the NFL shifted to a free market, the salaries of offensive lineman sky-rocketed 10x in some cases.

The problem for most hackers as I see it is that you can't know someone's value until you've worked with them for awhile. Since your value isn't "public information", your salary won't get driven up through a bidding war.

</comment><comment><USER8> How does the possibility of employees becoming independently wealthy factor in to determining compensation for star performers? Let's say that I have personally determined that $3-5 MM of assets properly invested would earn me enough to live off of for the rest of my life.

If I earn $2 MM a year in salary, then in a short period of time, I could quit, retire, and work on whatever (open source, nonprofit) technical projects interest me. Companies vest stock for this reason, and I think Google does an admirable job of creating a college atmosphere full of world-class talent to retain passionate employees.

But not every company can employ Vint Cerf and Guido van Rossum and prepare gourmet meals.

Should a company try to keep their star employees under such an "independently wealthy" threshold? I imagine that Henry Ford, even paying twice the prevailing wages, didn't need to worry about this issue. 2x the average wage probably wasn't enough to quickly retire back then.

<comment><USER9> This is actually similar to a well-known concept in economics, called the backwards bending supply curve.

Most things have a straight supply curve: if you pay more for a bushel of apples, more people are going to sell apples to you and you will get more apples. So price and quantity supplied are positively related--higher price, more quantity supplied.

Labor, however, has a backwards-bending supply curve. If you offer more and more money, you'll get more and more labor up to a point. At that point, however, increasing the price of labor further will actually _reduce_ the quantity supplied due to laborers having diminishing returns on making more money. Normally, it's couched in terms of an hourly wage: you'll get more people willing to work more hours for $60/hr compared to $40/hr, but at $6000/hr, people will just put in half a day and then go shopping to add to their BMW collection or something.

A similar concept could, as you point out, be applied to salaries. Offering $200,000 a year over $100,000 a year will sure get you more salaried employee- years, but offering $20,000,000 will start you on the backwards-bending supply curve since people will start to retire early. At least in theory--in practice, a surprising number of people who earn millions of dollars a year keep working while they can. You never hear about a star athlete earning like 50 million in a year from salary and endorsements for two years and just saying, "I got all the money I need, to hell with football". Not even Fortune 500 CEO's seem to retire after a year or two, and god knows they can afford to. Maybe it's just that fun to have a job like that, maybe people _want_ to work, maybe people who have those kinds of jobs can't exactly do the same thing for free and they don't know what else to do with their time, and maybe people just get used to living on that kind of salary so they have to keep working to keep up their lifestyle. But the concept does seem to apply to hourly wages, even if it doesn't apply as well to salaries.

<comment><USER10> > _You never hear about a star athlete earning like 50 million in a year from > salary and endorsements for two years and just saying, "I got all the money > I need, to hell with football"._

I think you do.

The problem with these sorts of "jobs" is that the athlete would probably still do it if they were working in a factory for a living. Playing football is a fun pastime.

</comment></comment></comment><comment><USER11> I have yet to encounter a company that doesn't follow the "pay as little as we can get away with" policy.

<comment><USER12> Do you mean that they chronically underpay people (and thus that you could predict success by looking at companies that pay their employees a lot)? Or are you just observing that all else being equal, companies want to pay less, and workers want to make more, and they either meet at a mutually acceptable value or refuse to do business with one another.

<comment><USER11> The second.

Could be that my experience is not representative, but after asking what my salary expectations were, every company I ever worked for wanted to pay me a bit less than that.

I am also sure they would have done so regardless of how much I asked for, it's standard haggling practice as far as I can tell.

<comment><USER12> Well, yeah. Unless your negotiating tactic is to name the lowest price you would ever accept, they have to assume that they can offer you less than you originally said.

</comment></comment></comment></comment><comment><USER13> So.. I guess we should watch and see if the Flightcaster devs start driving to work in Porsches and Aston Martins, right? (In other words, this is something that's easy to say and people have been saying it for some time; but nobody seems to have implemented it.)

</comment><comment><USER14> The advice is to hire the best workers. But by definition, not everyone can be the best. So, say all the firms are bidding up the best talent to their true 10-20x values (and giving them interesting projects), as the author suggests. The market adjusts, and it becomes economical again to higher a massive team of average workers with management and space. You might have to set your goals lower, if you can no longer expect leaping innovation that only a genius could make. But it's way easier to find and replace average talent. If they can actually do the job, and your business is expanding, then you can raise compensation to at least maintain morale.

</comment><comment><USER15> The pay isn't exactly the most important thing though, in software development I think you can get away with paying market rates and pitching at incentives.

So think I'd rather work at a company that gave a top of the line machine to develop on, used a good development stack, had a good working environment with plenty of space, had talented coworkers and interesting projects to work on.

I'd certainly take a pay cut for that instead of working in a cramped space on an old workstation at a megacorp pushing out some small part of a massive product.

<comment><USER16> The interesting thing is that nothing you name is expensive (relative to your salary).

Do you have a theory why employers don't take you up on your offer? (I understand there must not be too many, given your "I'd take...")

<comment><USER15> More in a general way, being a uni student I've just noticed that the only real workplace I've worked at in development is kind of lacking in quality development systems, comparing it to freelance developing on a decent system at home you realize how much more productive you can be on a decent system.

</comment></comment></comment><comment><USER17> Spoken like an engineer who thinks engineers are undervalued, not like a project manager who understands that the 10x productive engineer is incredibly, incredibly rare, and that all businesses must ultimately seek to maximize their profits.

Seriously, I've never heard of a company paying a single engineer (that is working as an individual contributor, and not in a leadership role) 10 times the salary of a "typical" engineer. If we take the salary of a typical engineer as merely $60,000 (probably an underestimate in most regions) that would imply a $600,000 salary for a "rock star" programmer.

</comment><comment><USER18> So, anyone know any companies that subscribe to the above article? :P

</comment><comment><USER19> How much should a new engineer hired on at an investment bank with 10 years of experience expect to receive in salary and bonus?

<comment> daniel-cussen Seeing as they get payed in base salary plus bonus, with the bonus being as big as the firm wants it to be, it varies. If, for instance, he turns everyone's excel macros into lisp macros and makes half the firm redundant, all in the space of one year, and the boss miraculously not only forgives but praises him for it, he can get...yeah, a few million, really. But I'm making no guarantees.

</comment></comment><comment><USER20> "Naturally, some members of the enterprise are better at leadership and strategic thinking than others. It is natural for these members of the enterprise to spend their time thinking more strategically. Others will be executing more tactically. Some will be involved both strategically and tactically."

And some will be working. </cheap jab>

He does claim that some employees are 10x more productive, but later on says there is anecdotal evidence that some are 10x more productive. Maybe the reason firms aren't paying 10x more is not because they're unable to measure the difference, or because they're mean, but what if the 10x productivity is only possible in certain sets of circumstances which don't manifest in typical large business work?

e.g. when the employee has some kind of cross-department authority to make decisions and affect large chunks of a product which they would have in a startup but which would be proxied via some other people in a larger business?

<comment><USER21> I've heard the story where there was a 10x difference in the time it took CS students to complete a series of system programming assignments, but are there other anecdotes out there? I'm very suspicious of this story, and think that a lot of this fabled 10x multiple can be explained by extrinsic circumstances or luck. At least that's what I've observed in science where easy experiments in a field that is new and fashionable can yield lots of interesting papers, where taking on more difficult projects in established fields can require much more work to achieve incremental results.

<comment><USER22> That page gives an overview over the (dead tree) literature on the topic: [http://forums.construx.com/blogs/stevemcc/archive/2008/03/27...](http://forums.construx.com/blogs/stevemcc/archive/2008/03/27/productivity- variations-among-software-developers-and-teams-the-origin-of- quot-10x-quot.aspx)

An interesting data point he cites is the comparision between Lotus 123 version 3 and Excel 3.0: "Excel took 50 staff years to produce 649,000 lines of code. Lotus 123 took 260 staff years to produce 400,000 lines of code. [...] The difference in productivity between the two teams was more than a factor of 8." But then it will probably not be too difficult to find people who will tell you that 123 was still the better product.

[Edit: Another important point is that the these factors are between the best and the worst. The difference between the best and the median can be considerably smaller, so it is not that surprising not to see any programmers paid ten times the average.]

<comment><USER23> The Lotus vs. Excel thing is more likely showing the fact that smaller teams can outproduce larger teams, since with smaller teams there is less coordination needed.

</comment></comment></comment></comment><comment><USER24> > If employers and employees trade vale-for-value, then what is there to hide? > Doesn't it make sense to compensate people relative to the relative value of > their productive achievements and capabilities? If it does make sense, then > why distort the relative scale through secretive compensation practices > cloaked behind a veil of low integrity?

Ego and morale. For instance, I overpaid a contractor once to take on a role at my company that was killing me. I overpaid by like 50-70%, but I got him to drop everything he was doing and turn out amazing results for me. If one of my long term staff knew what I was paying, it would've destroyed morale. "You pay him _what_? I'm here all the time, and you pay him for 10 hours of work half what I make all month?"

So yeah, people with me always got pretty good compensation and a hell of an enjoyable work environment, but I didn't make a habit of posting everyone's salary and expenses publicly. Also, people tend to be uncomfortable with that. I think sometimes people who have never managed people have an idea that could be easily tested or talked about with someone, but they advance their idea before doing so. There's a reason most companies don't talk pay with people - if somebody else makes more, it's going to bruise feelings and ruffle feathers and screw up morale.

<comment><USER25> > There's a reason most companies don't talk pay with people - if somebody > else makes more, it's going to bruise feelings and ruffle feathers and screw > up morale.

I don't think thats quite right... The reason most companies don't talk pay with people is because most companies fall into the "pay as little as we can get away with" category. In that category, some people are bound to be getting paid unfairly when compared to others, so its not surprising that feelings would be hurt and feathers would be ruffled if the truth came out. If everyone is paid fairly to begin with (regardless of whether or not pay is usually public), then by definition no-one should get upset if they do find out the pay of others since it would be fair.

The real difficulty is getting everyone to agree with the same idea of "fair." For example, software engineers should be able to fairly evaluate their relative pay against other software engineers doing similar work, but they may have a difficult time fairly evaluating their pay relative to sales people.

<comment><USER26> You won't even get developers agreeing, most people think they're worth more than they are and better than they are. Pay could be perfectly fair and people will still be insulted because they don't believe developer X is really better than they are even if everyone else believes so.

The only thing I've ever seen that makes people not feel this way is an objective ranking system and pay scale, such as the military. You pass text X and have Y years in service you get Z dollars, with the test generally meaning more than years in service so as not to prevent stars from rising but still allowing lesser talent to earn rank with time in service. Such an atmosphere ends up divorcing pay from the job in such a way that people tend to do work for pride rather than money.</comment></comment></comment>


Programming Music: The Applications of Algorithmic Composition [pdf] - <AUTHOR> https://getinspired.mit.edu/sites/default/files/documents/MU208_Report.pdf <comment> purple-dragon I hesitate to be contrarian because I don't want to discourage what I perceive to be an innocent enough exploratory effort by curious and creative students... but as a long time drummer and computer scientist, this document was underwhelming and surprisingly unscientific (I guess my expectations were set high once I saw the mit.edu domain).

A related idea that may be interesting to explore are approaches to identify and classify hip-hop beat cliches across different genres and time periods (and accordingly to generate new beats that approximate the respective genres or time periods' aesthetics).

</comment><comment><USER2> If you are interested in this, I would recommend looking up the Extempore programming language/environment and some of Andrew Sorensen's live coding performances. Even if live coding is not your thing, it's definitely interesting.

<comment><USER3> Also check out supercollider and csound.

<comment><USER4> We've had a bunch of really good threads, when i have time i'll stick them in pinboard.in:

Faust: [https://news.ycombinator.com/item?id=13012880](https://news.ycombinator.com/item?id=13012880)

audioKit: [https://news.ycombinator.com/item?id=9903760](https://news.ycombinator.com/item?id=9903760)

pure data: very difficult to search for

common lisp et al: [https://news.ycombinator.com/item?id=12518768](https://news.ycombinator.com/item?id=12518768)

</comment></comment></comment><comment><USER5> Bjork (I think) said that electronic music has no soul cause no one bothered to put one in it. As a long time listener of mainly electronic music, I agree. Among the various genres and artists of electro music there is a ratio of computer/human input to each piece. I find the pieces were the human input is minimal, boring and dry. In a way the human in these sorts of music is the necessary ghost in the machine that makes the piece worth its salt.

I would be very impressed if a fully computer synthesized piece would actually strike a cord in humans. I'm not talking about brutal bam-bam-bam techno pieces that evoke no emotions whatsoever.

<comment><USER6> Electronic music lowers the barrier of entry, so you get LOTS of crap, whether it's just uninspired but well intentioned, or freakishly aggressive 1000bpm avante garde nonsense.

That said, if you're a long time listener and you've never found any producers with soul, look again. Popular example: Daft Punk.

</comment></comment><comment><USER7> Generative hip-hop beats, looks nice. As I see it, the sequencing isn't the hardest part in hip-hop beats, though: a lot of the magic is in the timbre. Sampling, mixing, etc. are often what captivates me the most. Imagine doing that algorithmically - foraging through a collection of samples, processing them, chopping them up and making beats out of it. A similar constraint-based approach might work well, though probably a lot more work.

Anyways, who are the authors? Nowhere to be found! Sure it's a class project but that's no excuse! And they should publish the BeatOven source, would love to play around with it.

<comment><USER8> There is one absolute classic work in that field that I know of. It's called Designing Sound, by Andy Farnell: [https://mitpress.mit.edu/books/designing- sound](https://mitpress.mit.edu/books/designing-sound)

<comment><USER4> There's other classics by Martin Russ, Miller Puckette, Curtis Roads, Allen Strange, Perry Cook.

</comment></comment></comment><comment><USER9> I have added a randomize feature to the Acid Machine web app. It works by chopping up the pattern into blocks, then goes through the steps in the block and selects a random note (or silence) from the currently selected scale.

Then it moves to the next block and randomly decides whether to re-use the previous block or create a new one. This stops it from sounding completely random in a bad way.

Selecting the Arabic scale creates some interesting patterns.

[http://www.errozero.co.uk/acid-machine](http://www.errozero.co.uk/acid- machine)

</comment><comment><USER10> I have noticed gcode for cnc / 3D printing spits out melodies via the stepper motors.

Seems like music might even be a more pragmatic means of communication than numbers.

</comment><comment><USER11> That's some atrocious type setting.

<comment><USER12> word</comment></comment>


Hardware Wanted by OpenBSD developers - <AUTHOR> https://www.openbsd.org/want.html <comment><USER2> Why the OpenBSD project is still begging for hardware in 2017 is a mystery to me.

With all the IP they're sitting on, the OpenBSD Foundation should find a way to monetize at least one. OpenSSH alone is worth tons of money.

<comment><USER3> Monetizing open source and free code will cause immense ill-will from developers and users, which would cost more reputation loss than just asking for hardware.

<comment><USER4> No it won't. MANY successful open source projects have monetization strategies. Open Source!=Charity. It's just another way to build software. It's also likely that a successfully monetized ope-source software lasts and succeeds longer by most metrics. Cases in point - Android, most Apache foundation projects (including Hadoop) ...</comment></comment></comment>


"We will stop updating and distributing the Flash Player at the end of 2020" - <AUTHOR> https://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html <comment><USER2> End of an era.

We built the FarmVille-engine using AS3 and I still think it's one of the best programming languages I've ever used. Static typing, access modifiers, and performant. Low friction for new users (most people had the plugin, we could stream the main binary and assets)

0% chance we could have built the game using any other client-side tech stack available at the time.

<comment><USER3> Well, I used AS3 and Flex while it occupied a useful niche and at the time it was SO much better than the web platform.

BUT, AS3 was not a great language. The VM was pretty slow (that GC! I'm sure you game devs optimized the hell out of it with object pools and all, but still, modern JS VMs could run circles around Flash's), the static typing was extremely limited: you could only type "Function", not the actual arg and return value types; type inference was non existant, Vector was invariant, etc. Let's face it, Adobe wasn't the best at language design. Typescript is today so much better than AS3 ever was.

<comment><USER4> God Typescript is glorious after dealing with JS for so long.

Just needed to say that.

<comment><USER5> I tried TypeScript yesterday and while I really love the language, the tooling was wayyyy too complicated and confusing. All I wanted was to make a dead simple hello-world node app that let me write it in VS Code, and recompile the TS to JS every time I saved. Suddenly I had to learn about tsconfig.json, had to install nodemon and have a process running in the background that I'm sure to forget to kill later, and I have no idea how either tsc or ts-node plays into any of this... in the end I just decided to go with ES2016 and be done with it. Too bad, because I really like having type information available, especially for catching bugs. I enabled VS's "pretend JS is TS" setting so it catches some errors, but it's pretty hacky and not thorough, and I don't get to specify types in my program. Really wish I could get a dead simple TS app figured out.

<comment><USER6> 1) tsc --init # creates a tsconfig.json, no need to edit it

2) tsc --watch # rebuilds every .ts file on save

There is no step 3.

<comment><USER5> Hey this is pretty great, thanks! Dunno why I didn't consider it to be that simple. But it really is working. Well, along with `npm install @types/node --save` which I found somewhere else, so it quits complaining about 'require' not being found.

<comment><USER6> Glad it worked! I think it's a failure by the TypeScript team to not make this flow more front and center.

You are right, I forgot about installing typings. Instead of require you should use ES6 "import" (which TS compiles to require anyway) to get more type checking. But when you do that you'll see more of my missed step, which is `npm install @types/XYZ` for each XYZ package you use.

As soon as you start introducing a separate build tool (like gulp or whatever) things get super messy super fast but not for any interesting reason. Using `tsc --watch` also means it does caching across builds so it's faster than using gulp unless you're careful to configure it.

<comment><USER5> This advice is gold, thanks. But what I'm finding is that it's too painful to create a TypeScript project that has both a front-end and a back-end by incrementally building it like this, unless the front-end is just a set of static files with no compilation steps.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I say this every time someone brings up Flash's failure, but ... It's a tragic failure on Adobe's part. The tools for 2D animations and games in Flash are far beyond anything else out there from a creative standpoint. There isn't a product on the market that comes even close. Everything now is too technical, too specialized.

There are lots and lots of artists and developers out there who learned Flash's toolset and got good at it -- and now all that knowledge is useless. And there aren't even better tools to replace it.

It could have been different. Too bad they let it fail.

<comment><USER8> A lot went downhill after Adobe bought Macromedia. Flash use to be light weight, small and incredibly good for displaying vector graphics. You can scale up older Flash content to 1080p and it still looks great. You can't do that with YouTube videos of older flash content.

Many animation studios still use Flash .. to make their YouTube videos.

It ran on three platforms (Mac, Linux, Win) and was a much better portable web app platform than Java applets.

Sure a lot of newer stuff uses cool Javascript frameworks for making games and vector graphics, but there are a lot of old games people won't be able to play anymore. There's a lot we'll lose once Flash goes away forever, in a way that can't be archived like old Geocities pages (unless someone makes a Flash player in Javascript O_o)

<comment><USER9> I don't know about Linux, but back when Flash was relevant the Mac version always felt like an inefficient crashy dumpster fire to me. I don't have a source to back this up, but I always assumed that was a big part of why Jobs was so uninterested in supporting it on iOS.

<comment><USER10> Exactly, and the Linux version was similarly bad and unmaintained. I don't think they released a 64-bit x86 version until 2008/2009 when Linux on amd64 had been common since 2005 if not before. I remember having to either keep a 32-bit browser around just for Flash or use (impressive) hacks like nspluginwrapper.

I suspect the crappiness of the Mac/Linux versions was not because of developer incompetence, but a severe lack of developers/resources for those teams. Hopefully there are some managers at Adobe who realize that, if they hadn't shipped a crappy product for so many years used by _every_ Mac user, they could have made an actual case for their ability to support high-quality Flash on iOS.

<comment><USER11> I could not agree more.

The Linux version was really badly maintained for ages.

Circa 2014, I had to do weird stuff like sed on the .so flash plugin to bump artificially its version string from 11 to 12

This was to work around a requirement for VMware VCenter UI which required flash versions newer that the one available for Firefox at that time (11.2 IIRC).

I hope that at some points, Adobe will release the Flash source code. It's probably not the most beautiful code in the world, but at least, it would provide a reference implementation and help other implementations a lot.

<comment><USER12> Flash on Linux was discontinued in 2012: [http://www.pcworld.com/article/250784/for_flash_on_linux_the...](http://www.pcworld.com/article/250784/for_flash_on_linux_there_are_open_player_alternatives.html)

Even back then you had to do hacks to get it to work. But after that it became very hard to get anything to work. Eventually someone came out with a service called pipelight that I used to use that would allow you to use windows only plugins in Firefox: [https://wiki.archlinux.org/index.php/Pipelight](https://wiki.archlinux.org/index.php/Pipelight). It worked great until I didn't need it anymore.

<comment><USER13> They still have it today (it was never truly "discontinued").

<comment><USER14> The NPAPI version (i.e. all browsers but Chrome) was discontinued, but it was un-discontinued last year (after four years of no updates). [http://blogs.adobe.com/flashplayer/2016/08/beta-news- flash-p...](http://blogs.adobe.com/flashplayer/2016/08/beta-news-flash-player- npapi-for-linux.html)

<comment><USER13> Yea, and they still had to do security updates for it in the meantime. I guess that is part of why they "un-discontinued" it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Flash will die 10 years after this -- [https://www.apple.com/hotnews/thoughts- on-flash/](https://www.apple.com/hotnews/thoughts-on-flash/)

<comment><USER16> I hadn't read this. The security and battery life arguments are the best imho. The last part about the apps make Apple look like they only want to protect their financial interests in a sort of sketchy monopolistic way.

<comment><USER17> Yeah, that last justification is one with which I wholeheartedly disagree. Cross-platform done right is a good thing, and yet here we have Apple explicitly describing how it wants app developers to not use cross-platform technologies and instead rely on Apple-specific interfaces. In other words: "screw developer productivity, if you're not exclusively targeting our platforms, you're doing it wrong".

<comment><USER18> What's a good cross-platform toolkit that exists today?

<comment><USER19> Depends on your end goal. But I'd say Tk/Tcl and Qt have done alright for themselves. They'll never be confused for native, but for a solid GUI app, they're quite solid.

Then there's always Unity ...

<comment><USER20> I'm a Qt programmer. It's very very good because it attempts to look as much as possible like a native app rather than forcing a "cross-platform look and feel" like Google has been doing lately.

But it still feels wrong on the Mac. Little UI details which just "aren't done" on the Mac. Plus Qt is always a year or two behind on everything means that when MacOS alters or refines a UI element that Qt apps will still be doing things the old way.

</comment></comment></comment></comment></comment></comment><comment><USER21> This makes me sad.

The internet used to be less "flat". Every website was interactive, animated, had sound, had dimensions to it. Everything was a theme park. Maybe you had to learn a new UI every time but I was amazed a lot back then.

I learned a lot of programming with Action Script, it wasn't the best, but it was easy to get into.

I did my fare share of animating, just because it was so easy to get into. Xiaoxiao was just amazing to me ([https://www.youtube.com/watch?v=hw4wzwYeZ0Y](https://www.youtube.com/watch?v=hw4wzwYeZ0Y)).

I did my fair share of games as well, there were so many of them and publishing a game on internet had never been so easy. Orisinal is beautiful ([http://www.ferryhalim.com/orisinal/](http://www.ferryhalim.com/orisinal/)).

Now where do people find such mini games? On mobile. The big mini-game market has shifted and we now have to pay, we now have to download each game individually.

I understand Flash has had a bad track of security vulnerability, but the internet used to be magical, it's the end of an era.

As methodover says it here:

> The tools for 2D animations and games in Flash are far beyond anything else > out there from a creative standpoint. There isn't a product on the market > that comes even close. Everything now is too technical, too specialized.

<comment><USER22> > interactive, animated, had sound, had dimensions

Interaction, animation, sound, and dimensions have their place in the web. That place is in a small percentage of websites. Very small. Flash was possibly a better tool for that small percentage of websites (games and something else I guess?).

I, for one, am glad I can read a fucking blog article these days without it being rendered through an animated page flip which makes the shrill sound of paper tearing each time a page is "turned" with no way to mute.

Yes, flat text suits me just fine.

<comment> GuB-42 Well, the new trend is to hijack your scrollbar. You scroll down and things start go left and right. Not much better.

There will always be some retarded "UX" designers for breaking things that work.

</comment></comment></comment><comment><USER23> > will be phased out by the end of 2020. At that point, Adobe will stop > updating and distributing Flash.

Adobes stance on backwards compatibility in Flash has always been "Don't break the web". Where does this leave all the existing flash content that still exists around the web after 2020? As far as I know, those JS emulators are way to slow for most content.

<comment><USER24> I assume they're giving everyone 2.5yrs advanced notice to port anything considered important to something else.

<comment><USER25> Important to what? Individuals? Digital historians? Those concerned with abandonware? Companies that want people to pay for new porting work?

The majority of content that is still in flash and active use probably won't get ported... the iPhone 10 years ago set that trend.

<comment><USER26> The flash player won't stop working when Adobe declare it EOL....

</comment></comment></comment></comment><comment><USER27> Is there any attempt to save all the classic Flash animations and games like they did with old arcade games? Any "emulators" which can be used to preserve them?

<comment><USER28> There are a lot of serious attempts underway, I've been involved with some of those discussions.

Nothing perfect and turn key exists at the moment, but all the necessary pieces are basically there.

It depends on what sort of preservation strategy you're going after.

1) "Emulation" style:

\-- Open source flash player (a la Shumway)

2) "Automated Conversion" style:

\-- Load-time conversion to a different format (ie, HTML5)-- Ahead-of-time conversion to a different format

3) Convert by hand

\-- Rewrite in JS/HTML5

\-- Rewrite in Haxe using a library like OpenFL (Haxe compiles to JS/HTML5, C++, also Flash)

There's a lot of options available, and a lot of useful primitives. Parsing and rendering Flash (SWF) content is basically solved (OpenFL has made particular strong strides in this area, Shumway is impressive too).

The really big missing piece is ActionScript execution. There are in fact various open source ActionScript VM's out there, and there are ways to parse ABC (Action Script Byte Code) and convert it -- either ahead of time or at load-time -- to something else, whether that's directly to JS, or something like Haxe (which then compiles it to JS or C++ or whatever), but to my knowledge nobody has a working solution that as of today combines Rendering + ActionScript Execution + RigorouslyTestedConvenientUX.

But all the pieces are there. You just need someone motivated enough and well funded enough to put it all together. Hopefully this news spurs that fire.

<comment><USER29> There's nothing stopping you from just running Flash itself… even in a Windows XP VM if necessary.

<comment><USER30> Some kind of conversion is needed to help hosts keep their flash content alive - visitors will ignore what is not accessible.

<comment><USER29> Yes, but that's not the problem the GP was addressing.

</comment></comment></comment></comment></comment><comment><USER31> The Flash player (which is really what's being killed here) was piece of crap, but the Flash ecosystem was amazing.

There is nothing today that offers a similar level of accessible crossplatform development like Adobe Air. Qt is the only thing that comes close.

Sadly Adobe decided to kill the Flash platform. I wrote a long rant here a couple of years back: [https://medium.com/@Pier/why-im-finally-breaking-up- with-fla...](https://medium.com/@Pier/why-im-finally-breaking-up-with-flash- for-good-cea84fe32393)

<comment><USER32> Exactly! The type of stuff I built with Flex and Adobe Air was so great. I was able to solve so many problems that I just couldn't have (easily) without it. And for that brief moment when I could turn Flex code into iOS/Android apps? Awesome.

<comment><USER33> You still can turn Flex and Adobe AIR code into iOS / Android app...

<comment><USER32> Really?

Once Flex went to Apache and FlexDeveloper was killed, I just stopped paying attention.

<comment><USER33> Yes, really. Adobe AIR has had supported for iOS and Android, practically since the beginning.

There was a big stink around Jobs "Letters from Flash" and all AIR applications were put on indefinite hold in the app store review queue with no explanation. Adobe stopped development of their iOS stuff. Then after a few months all the apps were approved, Adobe resumed development, and no one had a problem since.

What is FlexDeveloper? Do you mean Flex Builder [now Flash Builder]? It wasn't really killed, just abandoned, if there is a difference.

</comment></comment></comment></comment></comment><comment><USER34> Adobe abandonment of Flex has to be one of the most perplexing acts of corporate self harm I have witnessed ( and been affected by).

Dominating the Rich Internet Application space and poised to storm corporate apps by levaraging all those Flex Devs via Adobe Air and they... just knife them all in the back and abandon Flex totally.

Just jaw dropping. Inexplicable.

<comment><USER35> _> Adobe abandonment of Flex has to be one of the most perplexing acts of corporate self harm I have witnessed ( and been affected by)._

Flex is now an Apache open source project. It still has an active developer community, some of whom are Adobe employees, and appear to work on Flex full- time.

Unfortunately, it seems the developer community is focusing most of their efforts on FlexJS, an HTML/JavaScript version of Flex. I could be wrong, but I don't see them making a very big splash in the crowded JS app framework space.

<comment><USER34> If this had been Adobe's focus rather than chucking it at Apache then Adobe would be world leaders in JavaScript app development and we'd all be using their tools.

</comment></comment></comment><comment><USER36> As much as I want people to stop using Flash for new projects, I'm worried what this means for preservation. There are a lot of old Flash games and other stuff out there that has never been ported to HTML5 and have been abandoned by their creators. A decade from now, we're probably going to need to run an old OS in a VM just to run this old content.

We're at risk of a digital dark age already, and this is just going to make it worse.

<comment><USER37> It's actually pretty weird that would stop distributing it, especially since they still distribute a Shockwave Player, and well, Shockwave has been completely dead for long time now.

<comment><USER38> Shockwave Player is still supported. The latest version was released ~40 days ago[1]

[1] - [https://helpx.adobe.com/shockwave/release-note/release- notes...](https://helpx.adobe.com/shockwave/release-note/release-notes- shockwave-12.html)

</comment></comment></comment><comment><USER39> This is exactly why we shouldn't rely on closed standards and closed viewers: at some point they stop to exist, and there will be content out there that we can't view any longer.

</comment><comment><USER40> > Specifically, we will stop updating and distributing the Flash Player at the > end of 2020 and encourage content creators to migrate any existing Flash > content to these new open formats.

Why not open source it and make Flash the open format instead?

<comment><USER41> That'd encourage people to use flash, which is the opposite of what most everyone in web development (and possibly on the web, period) wants.

<comment><USER17> People mainly want Flash to die _because_ it's a closed standard/platform that can't be improved by third parties and has lagged behind modern web standards as a result. Opening up Flash would address that problem and make the idea of Flash on a modern website significantly less horrid.

<comment><USER42> Whatever flash is, it's the opposite of "lagged behind modern web standards". If anything that was the one thing it didn't do in its lifespan since it enabled apps that are only now html5 achieving parity.

It enabled a consistent cross platform interpreter for javascript and xml based apps.

</comment></comment></comment></comment><comment><USER43> > Where a format didn't exist, we invented one – such as with Flash and > Shockwave.

Cringe!

Adobe bought Flash and Shockwave along with Macromedia that invented them 10 year earlier.

<comment><USER44> But surely "we" includes Macromedia, if Adobe itself included Macromedia after the acquisition?

<comment><USER45> That's disingenuous. Adobe didn't invent Flash, they bought the company that did. Adobe's strategy is based on them having resources to acquire, not create.

<comment><USER21> This letter might have been written by one of the guy in the original Macromedia team.

</comment></comment></comment></comment><comment><USER46> I wonder how long will browsers keep Flash around though? I doubt sites like Homestar Runner will just convert everything to HTML/CSS/JS.

<comment><USER47> All of the browsers have published roadmap updates. Basically Flash will be disabled by default in mid-2019:

Firefox: [https://blog.mozilla.org/futurereleases/2017/07/25/firefox-r...](https://blog.mozilla.org/futurereleases/2017/07/25/firefox- roadmap-flash-end-life/) and [https://developer.mozilla.org/en- US/docs/Plugins/Roadmap](https://developer.mozilla.org/en- US/docs/Plugins/Roadmap) Google: [https://www.blog.google/products/chrome/saying-goodbye- flash...](https://www.blog.google/products/chrome/saying-goodbye-flash- chrome/) and [https://sites.google.com/a/chromium.org/dev/flash- roadmap](https://sites.google.com/a/chromium.org/dev/flash-roadmap) Microsoft (Edge+IE): [https://blogs.windows.com/msedgedev/2017/07/25/flash-on- wind...](https://blogs.windows.com/msedgedev/2017/07/25/flash-on-windows- timeline/)

<comment><USER48> That's not "all of the browsers", that's just most of them.

<comment><USER49> The only real* browser I can think of that isn't listed there is Opera, and they're only barely hanging on. The numbers I've seen peg them at roughly 1% of desktop browsers, mostly in Europe.

*: That is, one that isn't just a reskin of another browser on the list.

<comment><USER48> How about Safari?

<comment><USER49> Whoops, I totally didn't notice that was missing from the list.

That being said, while Apple hasn't explicitly _said_ they plan to remove Flash from desktop Safari, they've implicitly signalled it -- they've already got features in place which make it often only load on demand.

<comment><USER50> There's not much to remove. You install Flash on macOS separately and Safari will load that in as a plugin. It seems obvious that Safari will remove that plugin functionality on or before 2020.

</comment></comment></comment></comment></comment></comment></comment><comment><USER51> I disabled flash on my browsers in 2014, and I have had to manually reenable it exactly twice in the last three years to get content I needed. Both times were for restaurant menus, of all things.

I have fond memories of newgrounds and the real early explosion of browser games, but I'm not going to miss the lag, memory overhead, and security hell one iota.

<comment><USER52> Obligatory The Oatmeal: [https://theoatmeal.com/comics/restaurant_website](https://theoatmeal.com/comics/restaurant_website)

</comment></comment><comment><USER53> What about Adobe Connect? They have been talking about moving to HTML5 for years, but nothing seems to happen. Then recently they announce that if you don't have Flash you can instead download an executable:

[https://blogs.adobe.com/adobeconnect/2016/02/add- in.html](https://blogs.adobe.com/adobeconnect/2016/02/add-in.html)

Could this be the end of AC, or will they pull something out of a hat at the last minute?

<comment><USER54> Connect is not going to die, is my understanding.

<comment><USER53> Two options seem to be:

\- go to a downloadable .exe

\- move to HTML5

They appear to be moving towards the .exe path at the moment, which seems like a bad idea.

<comment><USER53> Update here:

[http://blogs.adobe.com/adobeconnect/2017/07/adobe-connect- on...](http://blogs.adobe.com/adobeconnect/2017/07/adobe-connect-on-web- conferencing-open-standards-and-the-end-of-the-flash- player.html?scid=social_20170725_73428777&adbid=889951279211880452&adbpl=tw&adbpr=18230864)

</comment></comment></comment></comment><comment><USER55> I wonder what the major use cases are for Flash Player these days?

I assume some of the 'Farm Ville' style web games are probably in Flash still these days.

<comment><USER56> VMware vCenter's Web UI by default runs in Flash, even on the newest vCenter 6.5. There's an option for an HTML5 interface, but it's not feature-complete and is far buggier and laggier than the already buggy Flash client. ESXi 6.5's web interface is HTML5, and it appears to have a lot of common codebase with vCenter's HTML5 interface, but is far more mature and accessible. I hope that this gives VMware the kick in the pants to finally lose the Flash vCenter client and finish up the HTML5 version.

<comment><USER57> Just a couple of years ago, someone from EMC came to our data storage team and proudly announced their brand new interface, written in Flash. I laughed in his face when he said that.

I guess it's a step up from java?

<comment><USER56> That's amazing, I haven't used EMC much and didn't realize they used Flash for their interface also.

I (with protest) use Java UIs so much for configuring various networking gear (old Cisco MDS switches still in use, etc) that I have to have three Win7 VMs with different Java versions and settings to make sure I can access them all. At least using Flash for the UI makes it so I can access it on just about any machine with Flash enabled so I don't have to have crazy configs to get things working.

<comment><USER58> Ah yes, good old Java. Write once, run everywhere, but only on the exact same version of Java.

</comment></comment></comment></comment></comment><comment><USER59> End of an era...

I did my first project, when I was 14, with Flash, simple animated cartoon. Was super easy and fun.

Today I read we would have Iron Man style UI if Steve Jobs didn't shot down Flash with the iPhone. The reasoning was, nothing we have today had such easy 2D/3D animation features, yes WebGL can do everything Flash can, but it's waaay more complicated.

When I started programming, I liked the idea of Flex, but somehow that never cached on. Later in 2011, when I finished my CS degree, I moved to JavaScript because it was open and rapidly catching up.

I liked the whole openness of JavaScript much more and like I said, the Web platform can theoretically do everything Flash can, but we need better tools. I can do rather much, because I'm a developer, but when I look at me 18 years ago, I didn't know anything about programming and still got things done with Flash.

I also met a few people who build their whole career on Flash. Some media degrees here were basically 80% Flash content creation and I'm still working with people who got into IT by doing Flash, they miss it pretty much...

</comment><comment><USER60> I remember in 1993-1994 playing Cosmic Osmo on a Mac. All the old pre-Myst Cyan games (Manhole, Osmo, Spelunx) were basically HyperCard stacks, which didn't directly allow for any but the crudest animation. But Cyan had integrated MacroMind VideoWorks, which later became Macromedia Director, into Osmo. The effect over other HyperCard stacks was striking. You could actually play little minigames in the Osmo world.

Then I went off to college the next year and found out about the whole "web" thing, and again everything was flat and mostly static. Then Macromedia Shockwave and Flash and Java came along, and it was just like Osmo vs. Manhole, only more so. For a long time, your browser install wasn't complete till you had Java, RealPlayer, Shockwave and Flash installed (and later, QuickTime).

(For nostalgia purposes, Steam has all the Cyan games from Manhole on up as a bundle; you can also play the original Manhole/Osmo/Spelunx in the SheepShaver emulator if you can get hold of firmware plus OS and game discs.)

</comment><comment><USER61> I have seen a massive downtrend in flash use already. Is there anyone building building new and serious projects in it now?

<comment><USER62> Sadly yes...

VMWare is one large one.

I know of a very large company that has been over the last couple of years moving from Java to Flash, so it will be amusing to what their reaction will be to this news.

<comment><USER63> Supposedly upgrading the vSphere web interface to HTML5 is on the roadmap, but I'm not sure when. I'm just happy that they give you an external console app now.

<comment><USER64> We've been working on it publicly for over a year now. Have you had a chance to try the new HTML5 based #vsphereclient? 6.5.0b: [https://blogs.vmware.com/vsphere/2017/03/first-vsphere- clien...](https://blogs.vmware.com/vsphere/2017/03/first-vsphere-client- html5-update-vsphere-6-5-b.html) or the Fling: [https://labs.vmware.com/flings/vsphere-html5-web- client](https://labs.vmware.com/flings/vsphere-html5-web-client)

</comment></comment></comment></comment><comment><USER65> There seems to be more discussion here:

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

</comment><comment><USER66> Most actual developers currently using Adobe's products will only want to know whether Adobe AIR is safe. It is.

[https://forums.adobe.com/message/9723772](https://forums.adobe.com/message/9723772)

</comment><comment><USER67> What an epic case study.

How hard it is to EOL anything. How non-standard standards can play a giant role. How important deign/dev tools can be. How hard it is to get designers to accept limits (there were all flash websites just for minor design capabilities)..

<comment><USER68> Yes and no. I agree that standards make things easier, but standards probably make it harder or at least not easier to really come to an EOL for dated technology.

See how browsers still have to support non CSS styling and similar.

What I meant with standards making it harder to EOL technologies is that a standard leads to more implementations, which is a good thing, but certainly not for EOLing a technology.

</comment></comment><comment><USER69> This is Adobe's fault. They could have open-sourced the player anytime they wanted, they didn't. I don't blame Apple, or Flash-haters or anybody else but Adobe and all its stupid policies. Adobe killed Flash. Nobody else did.

<comment><USER52> I bet there's lots of third party tech in Flash that prevents them from open sourcing it.

</comment></comment><comment><USER70> I installed Adobe Animate last week, it looks really similar to flash, they even use very similar concepts. I didn't try to write some code yet, but it looks like they use some kind of an action script.

<comment><USER71> It's basically Flash, it just exports differently. Same program, different name to avoid confusion with the Flash platform. Basically the only thing that's going away for the typical Animate user is the swf, everything else will remain as Animate exports to html5 and js while using as3.

</comment></comment><comment><USER72> I wonder what will happen to large Flash games sites like Kongregate.

<comment><USER73> Here's a recent Kongregate blog post about the topic. HTML5 game uploads have been growing steadily, and there are now more new HTML5 games uploaded than Flash games:

[http://blog.kongregate.com/html5-is- here/](http://blog.kongregate.com/html5-is-here/)

<comment><USER72> I should have done some more research before commenting. Also, there is the new effort to open source Flash.

</comment></comment></comment><comment><USER74> It would be cool to see the Adobe Flash 2D vector graphics engine opensourced, to perform comparisons with similar engine all around: Agg, AmanithVG, Blend2d, Cairo, NanoVg, Skia, ...

</comment><comment><USER75> I still don't understand why don't adobe open source the flash player, so that security team and browser teams can look into it and maintain a secure runtime.

</comment><comment><USER76> While Flash Player is meeting it's end, the transferability of existing investments in AS3 to a new endpoint is tough not to imagine due to the kinship of ECMAscript with both JS and AS3.

If AS3 could compile to HTML5/JS endpoints, existing, or archival can in some part live on or be repurposed. The question will be how close it can get compared to existing solutions. There is likely several billions of dollars (likely more) of content that will need to be recreated, and not all of it will, or can be.

With Flash Professional becoming Adobe Animate CC, it wouldn't be surprising if this transferability becomes more of a prominent format. Adobe has been at the core of a lot of rich media formats both online and files with PDF and Flash, and I expect them not to disappear in the world of the tooling to create such experiences.

There is some stewardship and timing on this announcement from Adobe that says the right things to those those who are quietly very excited by WebAssembly, and now have Adobe and others starting to look at it the same way.

</comment><comment><USER77> I have a bad experience every time I have to declare taxes because the interface was built on top of Flash; many parts of the platform are broken (missing images, inconsistent styling in sub-pages, JavaScript exceptions) and I wonder what the government will do to overcome this change, three years is not much time by government standards.

</comment><comment><USER78> Flash Player is not Flash. Flash was the name of the media creation software. Flash Player is not end-of-life because it sucks (which it does) but because in the days of HTML 5, CSS 3, ECMAScript 6/7, Canvas, WebGL, etc a plugin to show that sort of media is redundant to the browser.

The creation tool lives on, although rebranded.

</comment><comment><USER79> I would wager flash can still be used to develop movie set UIs, and other internalized use cases. However those can also be utilized outside the realm of web browsers.

It's benefit is a powerful full featured scripting language, in conjunction with a canvas that is easy to achieve pixel accuracy.

</comment><comment><USER80> Funny how they spruik their Creative Cloud applications in a message about EOL Flash. I'm guessing their marketing managers signed off on the message... "End with a positive note about how awesome we are, and how everyone can subscribe to our products and give us money on a regular basis no matter how infrequently they use the product."

Adobe are so... creepy. I won't miss the pre-ticked "you want McAfee fries with that" box when updating Flash. I wonder how many people didn't see the checkbox and ended up installing McAfee unintentionally.

I still use a browser extension to force Flash player on Youtube simply because it performs better than the HTML player, and provides more flexibility.

</comment><comment><USER20> I feel so bad for the Scratch language, which converted to Flash at exactly the wrong time.

<comment><USER81> Scratch is in the process of a HTML5 rewrite with the help of Google, which makes sense given that it's the key component of their CS First program.

[https://wiki.scratch.mit.edu/wiki/Scratch_3.0](https://wiki.scratch.mit.edu/wiki/Scratch_3.0)

Sounds like it should be ready by 2020!

<comment><USER82> Honestly, I need it now. I tried to pull up Scratch for my child, and the "create" link went to a blank page without even an error message. Given that _no_ browsers on my platform still support NSAPI plugins, there is literally no way for my child to use Scratch, and they are the perfect age for it.

</comment></comment></comment><comment><USER83> For fun, here's the famous letter from Jobs himself on Flash - [https://www.apple.com/hotnews/thoughts-on- flash/](https://www.apple.com/hotnews/thoughts-on-flash/)

</comment><comment><USER84> That's quite a commitment for a company, to maintain a piece of software for 25-ish years.

I have fond memories of using Macromedia Flash 4 and 5 many years ago to create animations and simple scripted pages. I loved how well integrated everything was. But I still believe that things are better as they are today: we have more choices in frameworks, better standards, and some great web services which work well on both mobile and desktop.

That being said today I uninstalled the Flash plugin preemptively on my machines just because I am not needing it for any website I commonly use.

</comment><comment><USER85> This is absolutely awful. There are thousands of great games on ArmorGames and Kongregate that are in Flash. I they consider open sourcing it or at least allowing open source alternatives to grow.

</comment><comment><USER86> Rather than blaming Adobe, I hope some of you will be inspired to go out and build the next vector animation format/authoring tool for the web.

</comment><comment><USER87> I miss Flash; it was nice to be able to browse the web normally, with Flash disabled, and then to enable it only for a single function on a single page. It was relatively rare, and it didn't destroy the web.

With JavaScript, I basically have to enable it everywhere, as the web has been destroyed and I must now grant practically every site execute permissions on my computer in order to read content.

<comment><USER88> This.

That and HTML5 autoplay is super annoying and there doesn't seem to be a bulletproof way to stop it (at least the various plugins I've tried).

</comment></comment><comment><USER89> I remember the Nike website being all flash even as late as 2009-2010. I'm glad this abomination is finally done with

</comment><comment><USER90> Does this mean an end of all things related to Flash ecosystem or just Flash itself? I still have Adobe Air apps (as rare as it may seem) that I use regularly. Does anybody know the best way to migrate Adobe Air apps to HTML5? My guess is to use Adobe Animate CC, but it is not free..

</comment><comment><USER91> It seems like instead of programming for flash player you have to program for each browsers HTML/JS quirks. People trash flash, but these browsers also have security holes. Its hard to make any really complex piece of software completely secure.

</comment><comment><USER92> Anyone know of any command line tools available out there that can convert Flash assets to PNG assets? I have a large number of Flash assets that I will eventually need to (finally) convert over. Hoping there are some easy tools out there available.

<comment><USER93> swfextract from the swftools package should be able to do it.

`swfextract file.swf` should list resources in it, then `swfextract -p 12 file.swf` will get the PNG with id 12.

</comment></comment><comment><USER94> Does anybody know if this includes Adobe Air? There is nothing said in the press release.

</comment><comment><USER95> Too bad. Mozzilla will not ask me to update flash player as it is literally gone now. I must there are too much memories with flash player as there was a time when you couldn't play a video on youtube without it. #ripadobeflashplayer

</comment><comment><USER96> The only people who care about the life of this product are those who invested in buying and learning how to use it. I can understand why they care, but I don't.

I decided not to invest in it back when Macromedia bought it because I knew it would be expensive and subjected me to their whims. I thought "Futuresplash" was great and had high hopes for it but I'd already been burned by Adobe's planned obsolescence and I hated the way Macromedia designed their UIs and thought they charged way too much for their products.

I stopped using Adobe's plug-in on my Mac even before Jobs came out and complained about Flash. I considered it a form "spyware" and even if it wasn't it was constantly pestering me to update it and I seldom ever visited a site that used it. As I recall it was a bit of a pain to get rid of it too.

<comment><USER97> >The only people who care about the life of this product are those who invested in buying and learning how to use it.

And the ones that have content currently deployed on the platform. A few of my clients still have sites in Flash that I wrote for them in the early 2000s. Every year I try to convince them that they need to switch, but they can't justify the cost.

<comment><USER98> Nobody "learned" Flash. You opened it up and you already knew what to do.

That's the real value it provided.

<comment><USER96> That's a pretty big leap to make.

</comment></comment></comment></comment><comment><USER99> As things like Flash and Silverlight due i can't help but think that there will be another one of these in-browser techs that is just bound to come back around. What's new is old and what's old is new :D

</comment><comment><USER100> I made a living with Flash. In fact, I first made Flash before making HTML, CSS.

</comment><comment><USER101> Of course not. It was planed originally in 2012 to happen in 2015. HTML5 is STILL not ready. And it STILL won't be in 2025. All you haters can downvote me to oblivion new for saying THE TRUTH (drops mic)

</comment><comment><USER102> >Adobe also notes that it plans to be more aggressive about ending support for Flash "in certain geographies where unlicensed and outdated versions of Flash Player are being distributed."

What did they mean by this line?

<comment><USER103> China.

<comment><USER102> Why would China be interested in distributing out of date versions of Flash? And how would Adobe more aggressively ending life for these regions affect them if they're already out of date and unlicensed anyway?

</comment></comment></comment><comment><USER104> Thumbs up if you have jaw-dropping memories of this: [https://www.youtube.com/watch?v=9Y-ESJS911c](https://www.youtube.com/watch?v=9Y-ESJS911c)

</comment><comment><USER105> RIP Steve Jobs [https://www.apple.com/hotnews/thoughts-on- flash/](https://www.apple.com/hotnews/thoughts-on-flash/)

</comment><comment><USER106> Flash ads were terrible, a blight on the web. But Flex is so much more structured than any JS framework I've used. It wasn't super pretty but it did the job.

RIP a major Flex project I support :(

</comment><comment><USER107> I'm foreseeing someone finding a hole in flash security around 2022 forcing adobe to update it again anyway, sorta like wannadecryptor

but rip all the flashgame websites (if there even is any left)

</comment><comment><USER108> Interesting, that it will still survive in browsers till 2020. Co- incidentally, today at A+E Networks, we finally migrated all our web properties to HTML5 video playback.

</comment><comment><USER109> The cross platform apps arguments can easily being applied to all the {"React native", "Xamarin", etc} bullshit. IMHO.

</comment><comment><USER110> I wonder if WebAssembly is facing a similar fate. Somehow, I always have a "flashy" feeling when reading about it.

</comment><comment><USER111> Flash is not dead, only the browser plug in is going away. AIR is still alive and well, for both desktop and Mobile

</comment><comment><USER112> What a shame. Not installing flash used to be an excellent way of blocking shitty websites and annoying ads.

</comment><comment><USER113> What about Flash proper? I imagine sunsetting that would be devastating for the animation industry.

</comment><comment><USER114> Noooo, whats next? The real player?

</comment><comment><USER115> Since Flash and MS-Paint are going to be dumped, why not open source them?

<comment><USER116> I don't know about MS-Paint, but there are a number of licensing issues with simply open sourcing Flash.

<comment><USER115> If the product is dead, that means the licencors are likely to no longer make any money off it it. This means they will likely be open to open sourcing the code for free or next to free.

Open sourcing dead projects do have advantages for the licencors:

1\. nobody likes the code they worked hard on to be dead

2\. it's valuable free marketing for their brand name

3\. they can charge for support

<comment><USER117> Flash player might be dead, but that doesn't mean $THIRD_PARTY_LIBRARY that it uses isn't still being profitably licensed by its original developers. Or maybe the player uses a library that Adobe have a perpetual binary license to, but the original company that owned that library went bust a decade ago and nobody knows who owns the copyright on it now to allow a relicense. Open sourcing things does have a cost, and a big chunk of that is in running down these legalities.

</comment></comment></comment></comment><comment><USER118> Long live Homestar Runner!

</comment><comment><USER119> Now if only there were not a war of streaming protocols going on...

</comment><comment><USER120> up in heaven, Steve Jobs is smiling a bit more than usual today :)

</comment><comment><USER121> The irony is that AS3 felt more Java-esque than JavaScript.

</comment><comment><USER122> How is Shumway doing?

<comment><USER47> Shumway is not under active development. The actionscript runtime itself is pretty good, but getting compatibility with the Flash API surface turned out to be practically unachievable.

</comment></comment><comment><USER123> I see, you already have Animate CC.

</comment><comment><USER124> And there was much rejoicing.

</comment><comment><USER125> somebody still using this outdated pos? can they kill pdf too?

</comment><comment><USER126> It was EOL in 2010

</comment><comment><USER127> Hate flash however much you want. I learned to program with old ActionScript and wrote my first game as a kid (that actually taught me OOP and laid good foundations for JavaScript which is almost identical). To this day, all the applications I wrote still work perfectly. That's an _achievement_. Not to mention, Macromedia (later: Adobe) Flash was a fantastic environment for minigames and I haven't yet seen anything replace it properly. I weep for today's children, is there a good alternative? I mean, a program where you can scribble, make a movie clip out of it and make it move with code, just like that. And then publish it on the internet effortlessly.

<comment><USER43> Same here. "I learned to program with old ActionScript and wrote my first game as a kid (that actually taught me OOP and laid good foundations for JavaScript which" ... was way inferior to AS3. AS3 was based on ECMAScript 4 that was later abandoned by JS vendors. Until TypeScript came along JS was horribly inferior to AS3.

I will be forever glad for AS3 and the Flash ecosystem.

<comment><USER127> I started to learn AS3 but quickly transitioned to other technologies because even back then, the end of flash was forseeable. I liked AS3 but it was time to move on for a variety of reasons, among them a desire to have more control over hardware accelerated rendering and general performance concerns.

Fun fact: At university, a teaching assistant at "Introduction to programming" asked in which languages we've programmed before and I said ActionScript and he said that is not a programming language :)

</comment></comment></comment><comment><USER128> Yes! HBO's lazy ass will finally be forced to get rid of their horrible Flash web player

</comment><comment><USER129> Good thing I spent so much time learning and using Flash. Never again, Adobe.

<comment><USER76> Actionscript is nearly identical to forms of Javascript, so I'm not sure what you find about learning your time with Flash that wouldn't be transferrable.

Adobe Animate CC is the new version of Flash Pro that builds for HTML5, and if that doesn't float your boat, there's a wealth of JS libraries like pixi and p5.js that look extremely inviting.

</comment></comment><comment><USER130> Good riddance.

</comment><comment><USER131> Good.

</comment><comment><USER132> heh -- I read that as "Flash ___memory_ __will be EOL by 2020 "

</comment><comment><USER133> I had my 10 seconds of panic today with this title as I misread Flash into Flask. Anywy, now I that I know it's Flash I am perfectly fine.

</comment><comment><USER134> I made a celebration post! [https://medium.com/@theroccob/in-honor-of-the-end- of-flash-8...](https://medium.com/@theroccob/in-honor-of-the-end-of- flash-8a683767607f)

</comment><comment><USER135> What about homestarrunner? Will somebody think about homestarrunner!?

</comment><comment><USER136> Without Flash live streams on Youtube cannot be played in Firefox 45 on Windows XP. So Flash is still useful.

And by the way videos in Twitter and Vimeo don't work in both Chromium and Firefox on Windows XP. Because HTML5 video cross-platform compatibility is not perfect and developers have chosen not to encode videos in formats supported on this platform.

<comment><USER137> Anyone who still uses XP doesn't deserve to have compatibility. The time to move on was years ago.

<comment><USER136> XP is still more popular than many Linux distributions. Should Youtube stop supporting them too?

<comment><USER138> Important difference: you will get support for most of those Linux distributions "for free" just by targeting modern web standards.</comment></comment></comment></comment>


We have a pretty good idea of when humans will go extinct - <AUTHOR> https://www.washingtonpost.com/news/wonk/wp/2017/10/06/we-have-a-pretty-good-idea-of-when-humans-will-go-extinct/ <comment><USER2> "It's all enough to make a reasonable person ask: How much longer can things go on this way?"

This is what I think when I read articles like this anymore.</comment>


Putin Slams Geoengineering as Uneducated and Against Nature - a-smith http://yournewswire.com/putin-slams-geoengineering/ <comment><AUTHOR> Perhaps, the reason to be concerned in this case, is one nation's ability to alter the atmosphere of another nation. For example, should US be able to deploy persistent array of clouds that block sunlight, that can significantly impact a nation's ability to exist. What if this cloud can stop vegetables from growing, drop your temperature by 10 degrees, suck out vitamin D from your system and get your really depressed? Possibilities are endless, and as much as it sounds futuristic, it's not. Short-term alterations to the atmosphere are a perfect weapon.</comment>


Ask YC: how to do market research? - <AUTHOR>

When somebody asks you "Who are your competitors?", how do you find the answer?<p>Some are obvious - Yahoo vs. Google, Emacs vs vi, etc. But if I'm making a "website that does X", and X is pretty narrow, how do I find the competition? (Beating them is no problem...  :-) <comment><USER2> We recently launched HeavyInk.com (a mashup of a comic book retailer, collection management, social networking, etc.) competing in a somewhat crowded market of comic book retailers.

Before we did this, I did a lot of competitive research.

I searched on all the relevant keywords. I ended up finding a ton of comic book retails, plus a lot of other related sites that had excellent ideas (collection management, social networking, pull list management, etc., etc., etc.). So: right there, by digging deep into the search results, I found a lot of things that I didn't even know existed, and this let me expand my concept of what we wanted to deliver, and it also let me get a much better handle on what the market is like.

After identifying the big names in the space, I went off to Alexa and other sites, and measured the traffic of each of these competitors.

I also got some information via backchannels on the likely revenue of 2 or so of the 10 big competitors, and then verified it through another backchannel. I then did some curve fitting to come up with an algorithm that predicts the revenue of an online comic book store, based on their Alexa rank and traffic.

I then went through the top 10 or 20 sites, and took notes. After I saw the commonalities between them, I created a spreadsheet, and listed all of the salient details of each competitor.

At this point I had a good handle on (a) what price point we wanted to aim for during our growth stage; (b) what features we might want to offer.

Then I set up a survey on Wufoo (I ran the survey past a survey designer first to get her imprimatur on it), and sent email to the top 10 or 20 comic bloggers. Two or three of them linked to the survey, and we ended up getting around 500 people to take the survey.

I wrote a script that imported the CSV data from Wufoo into our database, and then wrote a bit of Ruby code that did a mediocre version of cluster analysis. This let me find out which groups of customers would be most profitable, and in turn let me find out what features these customers would be interested in.

Then we wrote up some design documents and started coding.

We coded for three months, and went live in a "quiet beta" two weeks ago. We've been hunting bugs, and will announce to our list of 500 or so survey takers on Monday or so.

That's how I do market research.

\-- Travis Corcoran, president HeavyInk.com

"Your comics are here."

<comment><USER3> All of that is nonsense. Just build it and launch it. Then the market will tell you what it thinks.

<comment><USER4> what if what you're doing takes more than a weekend to build?

there are more cost effective ways of seeing what the market thinks besides disappearing into a hole and coding.

<comment><USER3> There really is no excuse to build anything that takes a great deal of time. There is not a shortage of good, simple ideas. You are forfeiting many of the advantages of being an internet company if you are building something that can't be prototyped in weeks rather than months.

<comment><USER4> ok, but how many online to-do lists does the world need? assuming you're a hacker, if your 'good, simple idea' is easy to develop, expect to get your ass kicked by someone smarter than you in business and marketing who can pay a few code monkeys to pump it out.

good hackers get leverage and sustainable competitive advantage by solving hard problems, or at least creating software that is difficult to write. saying it's not worth building anything that takes time doesn't make any sense.

<comment><USER3> First of all, an online to-do list probably does not qualify as a good idea.

And secondly, good hackers can be hired too; it is possible to replicate most things.

I think that valuable web entrepreneurs are, in general, good hackers and good businessmen. A lot of hackers think the business end isn't important and a lot of businessmen think the technology isn't important. They are wrong. You will probably have serious competition and you need to be prepared to compete.

This isn't a kind industry. A lot of teams get crushed. Your team ought to be able to compete on both the business and technical fronts.

edit: I noticed you are one of the founders of DropBox. I don't know a great deal about your product. But, as far as I can tell we agree. DropBox seems like a straightforward, simple, focused application.

</comment></comment></comment></comment></comment></comment><comment><USER5> My rule number one: if you don't know your competition right off the bat, don't simply assume they don't exist, look hard to find them ... (and if you end up finding them, ask yourself why they couldn't make it to a point that you would know about them without doing so much search, and how your product would be any different than theirs and same thing wont happen to you)

If you have direct competitors then it won't be too hard to tell who they are, you do some basic searches and you will find them.

But I think you should look at indirect competition as well... look at all those companies that if they intend to come in they can crush you over night (and I don't mean Google, Yahoo and the other big guys necessarily, I mean all those other companies that their business models allows them to do the same thing as you do, if they like to do so, but they never thought about it or had the intention to do it... sometimes they might have some strengths that would make them more successful than you.)

Also, I would keep in mind that if your product differentiates from the competition by just a few features you don't have a huge advantage

And if you ever intend to compete with any business that has any social aspects to it (i.e. web 2.0 businesses) never forget the network effects they could have just for being out there before you

</comment><comment><USER4> well, how do you expect your customers to find you (or your competitors)? search? forums? trade shows? word of mouth?

then search, look on forums, go to trade shows and ask potential customers what they do to solve the problem you want to fix and how they would find you.

</comment><comment><USER6> I generally looked for keywords in a Lexis-Nexis search, Google search, and then just looked around for anyone who was doing what we were already doing.</comment>


Simple coroutines for games in C++ - <AUTHOR> http://www.ilikebigbits.com/blog/2016/3/20/coroutines-for-games <comment><USER2> Re: coroutines in games more generally, you can look to older console games (NES/SNES-era) for some good examples. Earlier games on the C64 et al were—as is commonly explained—purely event-loop based; but by the mid-1980s, the paradigm had switched to using a hardcoded coroutine-scheduled actor model.

If you've never read it, the Super Mario Bros 1 disassembly[1] is extremely enlightening. It feels a lot like Erlang, with individual parallel "process" actors being responsible for updating the physics of each sprite on screen—but instead of a "process" being an abstraction handled by a scheduler, it's just an entry-point function that calls a finite-state-machine-state function, then either calls a hardwired next "process" function, or a trampoline function that calls whatever is left to run in that game state. Effectively, it's a "direct-threaded next-jmp-prefetched" implementation of scheduling.

[1] [https://gist.github.com/1wErt3r/4048722](https://gist.github.com/1wErt3r/4048722)

</comment><comment><USER3> Short version:

The coroutines are regular threads. The library provides an interface for syncing which makes them behave as if they were "real" coroutines. This avoids common problems you run into when making coroutines in C++ which by itself does not support coroutines natively - but it supports threads very well.

Pros: Very easy to implement and use. Will likely work very well anywhere without much thought.

Cons: Resource hungry. Not really designed for thousands of simultaneous coroutines.

<comment><USER4> Question: couldn't you use OS fibers to do "coroutines" without being resource intensive? I know all major OS kernels have supported fibers for some time...

<comment><USER5> Linux for one doesn't unless you count the obsolete (and slow) swapcontext.

<comment><USER6> Google implemented fibers. Hopefully they'll get upstreamed.

[https://www.youtube.com/watch?v=KXuZi9aeGTw](https://www.youtube.com/watch?v=KXuZi9aeGTw)

<comment><USER5> If I remember correctly, that's an additional interface for usermode initiated, cooperative scheduling of kernel threads (basically a variant of pthread_yield that allows specifying which thread is going to get the timeslice we are relinquishing).

It still requites a syscall and the entities being scheduled are proper kernel level threads.

So not really fibers. Pretty cool though.

Edit: autocorrect

</comment></comment></comment></comment></comment><comment><USER7> Directed graphs are also a great way to create scripted dialogues and quests for games. Visually, a DG for your game dev is quite powerful and makes it very easy to reason about what's going on in the game story. I don't think the same can be said for coroutines hard coded in c++. In addition, it's easy to find a cycle in a graph, I'm not sure the same can be said for a coroutine. Here's a site to give some interest: [http://twinery.org/](http://twinery.org/)

<comment><USER8> Very interesting. I can add Inform 7 and rule-based programming of text-based fiction:

[http://eblong.com/zarf/essays/rule-based- if/](http://eblong.com/zarf/essays/rule-based-if/)

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

</comment></comment><comment><USER9> One big problem with using coroutines for "scripting" long running events in games I don't often see mentioned is what to do - if anything - about saving their state. For cutscenes this can be ignored for sure, but what if you tie something like a long conversation tree into a coroutine?

For this example library if your making some sort of traditional adventure game and you wanted the player to be able to save the game you'd have to restrict saving to checkpoints, use a loop with a switch (practically moving back to the state machine approach), or just split the conversation up into multiple coroutines as it progresses.

And of course, there's the whole "what to do when you need to patch the game" problem on top of all that.

<comment><USER10> There was a discussion in the /r/haskell subreddit about serialisable coroutines a week back: [https://www.reddit.com/r/haskell/comments/4a8wr8/how_to_get_...](https://www.reddit.com/r/haskell/comments/4a8wr8/how_to_get_serializable_coroutines/)

Perhaps it helps

</comment></comment><comment><USER11> Some time ago (10 years) we implemented this as 'continuations' into our own game engine. E.g. see [https://felipec.wordpress.com/2008/09/28/continuations- in-c-...](https://felipec.wordpress.com/2008/09/28/continuations-in-c-easy- asynchronous-stuff/) and [http://c2.com/cgi/wiki?ContinuationImplementation](http://c2.com/cgi/wiki?ContinuationImplementation)

</comment><comment><USER12> Lightweight abstractions for control flow are a good idea. Animation control using threading primitives is not a good idea.

</comment><comment><USER13> I recommend having a look at the source code for ScummVM. The original SCUMM engine, first used in Maniac Mansion, implemented its own VM with cooperative multithreading, way back on the C64.

Basically, the game ran "scripts" (containing custom bytecode), each given its own "slot" with space for locals. Each script is run in turn, and each script must voluntarily relinquish control when appropriate.

Of course, this is a bit more advanced than simple coroutines. If you're going to the effort of creating your own embedded scripting language, you may as well an existing language like Lua.

Example code: [https://github.com/scummvm/scummvm/blob/master/engines/scumm...](https://github.com/scummvm/scummvm/blob/master/engines/scumm/script.cpp)

</comment><comment><USER14> Quick question for you C++ gurus: Why doesn't C++ have native generators? Is there some technical reason that makes it hard to compile such a feature, or is there a political reason?

<comment><USER15> Plenty of lightweight thread systems exist for C++. You're thinking about the problem the wrong way. You don't really want _generators_ : you want _fibers_. Once you have fibers, generators are trivial to implement. One implementation of fibers for unixlike systems is GNU nPth.

<comment><USER14> Not exactly. I'm not familiar with nPth specifically, but it appears it uses swapcontext, which is a _lot_ slower than doing it in an event loop the proper way. Like, 1000 times slower (on Linux)[1]. Having proper generators and extendable event loops is a far cleaner solution to the problem, in my humble opinion. Python's asyncio is perhaps the best implementation of such an event loop I've seen.

1: [http://www.crystalclearsoftware.com/soc/coroutine/coroutine/...](http://www.crystalclearsoftware.com/soc/coroutine/coroutine/fibers.html)

<comment><USER5> nPth can use swapcontext if everything else fails, but its preferred portable switching strategy is the so called sigaltstack trick witch is usually significantly faster.

BTW, I'm the author of the above page. Coroutine libraries have been my personal hobby since forever.

<comment><USER16> In that case you might enjoy taking a look at

[http://felix-lang.org/](http://felix-lang.org/)

[http://felix- lang.org/$/usr/local/lib/felix/felix-2016.01.04...](http://felix- lang.org/$/usr/local/lib/felix/felix-2016.01.04-rc2/share/src/web//tut/fibres_index.fdoc)

I am not involved in its development.

</comment></comment></comment></comment></comment><comment><USER17> Behaviour Tree's would be easier to model and write with existing libraries that implement the decorators (wait for, etc)</comment>


A Momentous Shift for Sonic Levitation - <AUTHOR> http://news.sciencemag.org/sciencenow/2013/07/a-momentous-shift-for-sonic-levi.html?ref=hp

<comment><USER2> First thing I thought of: maybe we can use it to study liquid tungsten. [http://what-if.xkcd.com/50/](http://what-if.xkcd.com/50/). Lift a tiny piece, then heat it with lasers?

</comment><comment><USER3> How does such a system work with very hot matter, e.g. plasma in a fusion chamber?

I assume some sort of medium (i.e. not vacuum) is needed to propagate the waves, and that at the temperatures necessary for fusion the medium would turn to plasma and the vibrating plates would melt. But I'd certainly like to be wrong.

</comment><comment><USER4> Additional videos from source:

[http://www.pnas.org/content/suppl/2013/07/10/1301860110.DCSu...](http://www.pnas.org/content/suppl/2013/07/10/1301860110.DCSupplemental)

</comment><comment><USER5> Is this the prerequisite tech for a sonic screwdriver?

</comment><comment><USER6> Hah. Try as I might, I can't resist commenting that I read on some BBS .txt file way back in the early '90s that some monks in the Himalayas used to sit in specific positions (in a semicircle or something?) when large rocks needed to be moved. They would chant and drum and the things would be rendered far easier to shift. Specific reference was made to levitation, and the text was from a western observer's account. I'm not a physicist or saying this is true, just that I read the above 20+ years ago and it stuck in my head as an oddity. Reading this article, it came to the fore. Personally I wouldn't be half surprised if eventually it comes out that the careful use of human or percussion-producible frequencies can facilitate a similar effect to that described in this article.</comment>