MicroPython running "bare metal" in the browser via unicorn.js - <AUTHOR> https://forum.micropython.org/viewtopic.php?f=8&t=3402 <comment><USER2> "Bare metal" meaning that instructions run "natively" on a simulated Cortex-M3 microprocessor via an emscripten-compiled stripped-down version of QEMU.

It's a cool way to quickly test out performance and iterate on micropython scripts built for microcontrollers; not a python engine in the browser, sandboxed and running instructions directly.

<comment><USER3> What's the german word for the mixed feeling of incredulity, disgust, awe and respect that I'm getting right now?

<comment><USER4> Schädengurken

<comment><USER5> Google Translate translates that (DE->EN) as "damage cucumber".

<comment><USER6> ... yeah that about sums it up.

</comment></comment></comment></comment></comment><comment><USER7> This is a neat demo, but its real value for me was learning about MicroPython. Whenever I've asked friends about a small, fast, embeddable scripting language the answer has been Lua. I favor Python much more than Lua so this project is attractive.

Some bits on how eLua compares with MicroPython from their comparison page[1]:

> eLua, with LTR patch, boasts only 5.42K RAM usage after book, down from ~25K > with unpatched Lua. (ref: > [http://www.eluaproject.net/doc/v0.9/en_arch_ltr.html](http://www.eluaproject.net/doc/v0.9/en_arch_ltr.html)). > uPy offers ~540 bytes usage after boot (10 times less than patched eLua), > and truly can boot and accept commands with 2K heap.

[1]: [https://github.com/micropython/micropython/wiki/MicroPythonV...](https://github.com/micropython/micropython/wiki/MicroPythonVsELua)

</comment><comment><USER8> > We have recently developed the ability to run MicroPython "bare metal" in a > web browser. This is acomplished using unicorn.js, which is an Emscripted > version of unicorn, which is a stripped-down version of QEMU.

I don't think "bare metal" means what you think it means.

<comment><USER9> I don't think ""bare metal"" means what you think it means.

<comment><USER10> yeah, he misread ""bare metal"" for "bare metal".

I tried to the whole thing in a VM, so I can attest that it works on """bare metal""", as well.

</comment></comment></comment><comment><USER11> Related:

[http://pypyjs.org/](http://pypyjs.org/) , [https://github.com/pypyjs/pypyjs](https://github.com/pypyjs/pypyjs)

Sadly, current implementation is buggy and has not been updated for 2 years.

</comment><comment><USER12> The Cortex-M3 emulator in browser is extremely useful without the MicroPython part --- a C++ toolchain can equally take advantage of it.

<comment><USER13> If you are interested, here's the emulator they use: [https://alexaltea.github.io/unicorn.js/](https://alexaltea.github.io/unicorn.js/)

</comment></comment><comment><USER14> This is cool! It's sad that front-end technologies are dominating. No browsers have added any back-end languages to the front-end, and instead, javascript is starting the dominate the back-end (i.e. node.js).

<comment><USER15> Take a look at WebAssembly: [http://webassembly.org/docs/use- cases/](http://webassembly.org/docs/use-cases/)

</comment></comment><comment><USER16> I wish n-gate.com took requests...

<comment><USER17> I would be surprised if this doesn't get a nod.

</comment></comment><comment><USER18> Bare metal in this case is far from being 'Bare' or 'Metal' for that matter. Impressive none the less.

</comment><comment><USER19> For a completely different approach, Grok Learning exposes MicroPython to the browser via a WebSocket: [https://groklearning.com/microbit/](https://groklearning.com/microbit/)

We find this approach works fine, assuming you have a stable internet connection.

</comment><comment><USER20> I'd be curious about performance vs raw javascript. I mean it's obviously going to be slower in a VM but by how much?

<comment><USER21> lots

>>> sum(x for x in range(100000))

did not complete even after several minutes.

<comment><USER10> Mind that the "clockspeed" is noted as 100khz.

</comment></comment></comment><comment><USER22> Kind of a neat project, but I'm not sure if it is very useful. Maybe emulating for testing reasons.

<comment><USER23> A very useful project for anyone learning python & coding micro controllers eg. students.

<comment><USER22> Wouldn't it be better to have students learn on hardware itself? I guess if the chips are write only or are too hard to flash it would make since. Or if cost was a limiting factor.

<comment><USER24> Generally speaking, yes, it would. Micropython runs on both esp8266 (a couple of dollars for a board) and micro:bit (designed for education); so cost isn't a factor. Uploading/flashing code is annoying on the esp8266 (though decent tooling would assist with that). I think for students real hardware is much more useful - this is probably going to be more useful for people actually trying to build something (not that students should be excluded from that, but the target is different)

<comment><USER25> > Uploading/flashing code is annoying [...]

A nice thing about MicroPython is that you only need to flash the chip once - at least if it has enough flash storage to support a file system. Once flashed, you can work on a REPL (over either UART or WLAN) and write files.

<comment><USER24> Indeed; although tooling to easily get files on there is still pretty immature (way too hard for beginners)</comment></comment></comment></comment></comment></comment>


Windows metro tiles with js/css3 - <AUTHOR> http://tholman.com/experiments/css3/metro-tiles/

<comment><USER2> umm, it's supposed to be doing something?

<comment><AUTHOR> Its subtle, (and webkit only) - but the tiles tilt back based on where you click/tap them -- just like the windows devices. Try clicking on the corner one?

<comment><USER3> Yeah, clicking the corners is key. I was clicking in the middle, or close to it and wondering why nothing was happening.</comment></comment></comment>


Exploit Linux Machines Through Fun Challenges - <AUTHOR> http://exploit-exercises.com/

<comment><USER2> * I haven't played with exploit-exercises yet (definitely will when I get some downtime), but I've had a blast solving the challenges at <http://io.smashthestack.org:84>. They are hosted so no need to download VMs. They have a several more here that I haven't played with: <http://smashthestack.org/>

* I recently came across a computer security course which used CTF virtual machines for an assignment (you can download the VM and see how you do against Tufts University students): <http://www.cs.tufts.edu/comp/116/assignments/a04.php>

* Offensive Security's "Penetration Testing with BackTrack" (PWB) course uses a series of CTF challenges as the final exam.

* Any recommendations on any encryption challenges in this style?

We are seeing a return to the old guild system of masterpieces as proof of ability and learning aid. I couldn't be happier. I'd love to see a mash up between stackoverflow's gamification and Offensive Security certification/teaching process.

<comment><USER3> upvote for the smashthestack.org link. really interesting place.

</comment></comment><comment><USER4> I've never really had much luck with stuff like this.

Whenever I have tried to write code in the C to be deliberately vulnerable and have tried to overwrite memory etc it never seems to work in the way I expect.

For example I will have two arrays that are contiguous in memory (checking this with gdb) and I will then write a big set of values into one array that should overflow into the other. Then try and do something like print the values that should have been overflowed into but I often find I either get a segfault or that the values that are printed are actually the correct values assigned the the array that should be overwritten.

I haven't tried these specific puzzles with the VMs though. I always do -fno- stack-protector when compiling but I don't know if there is some other security mechanism that could be stopping it from working?

<comment><USER5> -fno-stack-protector does a number of things that interfere with "standard" smashing of the stack, You'll learn a lot if you keep stack protections in place!

Also, be sure to turn off Write^Execute memory pages and ASLR as another commenter has suggested.

Alternatively, you could try your hand at defeating these protection mechanisms yourself with a number of (relatively) newfangled techniques.

JITSpray - <http://dsecrg.com/pages/pub/show.php?id=22> ROP - <http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html>

and more!

</comment></comment><comment><USER6> This looks awesome. I've taken a large interest in security over the last couple years and am always looking for ways to increase my knowledge in this space (FWIW, the Stanford crypto course has been great so far). This will be a good follow-on to that.

</comment><comment><USER7> What exactly does the getflag command do? I seems like I can do all the levels anyway, so it doesn't seem to enable the next level.

</comment><comment><USER8> Awesome! I was always jealous of people who had problem sets like this in their CS curriculum.

<comment> why-el I think the curricula you are talking about are surprisingly few. In fact I think this website offers more interesting things than my Security class did. :)

</comment></comment><comment><USER9> I am _really_ digging the uptick in CTF related posts! Keep 'em coming!

</comment><comment><USER10> it's down :/

<comment><USER11> Works for me. Anyways, the torrent for the beginner VM is magnet:?xt=urn:btih:77cfd777dd287da30dcdc5c82aa72f0ffb6c67eb</comment></comment>


Select Wat from SQL - <AUTHOR> https://scattered-thoughts.net/writing/select-wat-from-sql/ <comment><USER2> Is this one real?

        jamie=# create table users ("user" text, "password" text);
        CREATE TABLE
        jamie=# insert into users values ('bob', 'whatever');
        INSERT 0 1
        jamie=# select user, password from users;
         user  | password
        </comment><comment>-+</comment><comment>----
         jamie | whatever
        (1 row)

<comment><USER3> Yes, user is a reserved word and `SELECT user` gives you the current database user. Notice how in the create table "user" is quoted, because it would be a syntax error otherwise. If you quote the same way in the select it will give you the user column, not the user reserved word:

        select "user", password from users;</comment></comment>


When To Chat: Reconcile Time Zone Differences - <AUTHOR> https://whentochat.co/ <comment><USER2> This very simple tool helps:

[https://www.timeanddate.com/worldclock/meeting.html](https://www.timeanddate.com/worldclock/meeting.html)

It rocks with Daylight Saving time transitions too (UK one coming up soon)

<comment><USER3> I really like [https://everytimezone.com](https://everytimezone.com)

It's what I've been using for years.

<comment><USER4> It's not perfect. For example March 29 is a 23 hour day in the UK but we don't see that reflected in the app.

</comment></comment></comment><comment><USER5> I tried some major cities around the world and it's hit or miss. E.g. Beijing, Shanghai, Seoul and Sidney are all missing.

Edit: Okay, the locations are fetched from Google Map's auto complete service, with only the top five results, so when I enter say Beijing I get unhelpful results like some Beijing Pie House in Alhambra, CA. Probably want to limit to cities if possible, no one is entering local street/establishment names here.

<comment><USER6> Weird.. It even found my hometown, which is a random town of 15k people in Germany.

<comment><USER5> That's because it's much less likely to have restaurants named after a random town than Beijing or Seoul.

</comment></comment></comment><comment><USER7> I've used [https://worldtimebuddy.com](https://worldtimebuddy.com) for this purpose for years.

<comment><USER8> Same here, more features and less waste of space than this submission. Even though this submission has more modern design I'd still prefer worldtimebuddy, especially because you can have more people than just two.

</comment></comment><comment><USER9> Seems to be lots of negative comments in this thread :(

I think this is a great, super simple little tool, nice work! And slack integration is the real killer feature here

</comment><comment><USER10> Nice idea, but it's buggy! If you try more than one pair of cities (with different time differences), the table below the displayed time zone difference will _not_ update.

<comment><USER11> Had a similar issue, I had to hit the 12/24 hour button to get the table to update.

</comment></comment><comment><USER11> For those on macOS, I use the app Clocker[0]. It lives in your menu bar, allows you to input your own desired cities/time zones/locations, has a bunch of different customization options, and also has a "future slider" that allows you to see what time it is in different locations at different times.

[0]([https://apps.apple.com/us/app/clocker/id1056643111?mt=12](https://apps.apple.com/us/app/clocker/id1056643111?mt=12))

</comment><comment><USER12> Doesn't seem to work at all for me. Seeing the error below in the console

> You have exceeded your rate-limit for this API. For more information on > usage limits and the Google Maps JavaScript API services please see: > [https://developers.google.com/maps/documentation/javascript/...](https://developers.google.com/maps/documentation/javascript/usage)

</comment><comment><USER13> Any way to just input GMT/UTC timezones directly? Seems more practical that way.

<comment><USER14> I think this works well, I live in Eastern US and I'm interested in talking to somebody in Hokkaido, Japan... I just instinctively typed "New York" and "Toyko" time.

<comment><USER15> Well Japan is one timezone, and you know how US timezones work because you live in it. I wonder what would be your mental process if you see an online event with time specified in MSK+3.

</comment></comment></comment><comment><USER16> Reminds me of a postmortem of I think it was Carmageddon, some game anyway. In it they mentioned that the programmers were all in Australia, and the management and the rest were in the UK, and that arrangement was just perfect because they'd all be online at the same time.

</comment><comment><USER17> I like this one -

[https://everytimezone.com](https://everytimezone.com)

</comment><comment><USER18> Great tool. May I suggest putting the date when you'd like to chat? Considering that in Europe the clock change comes next Sunday 29th, this could confuse some people if they'd like to chat sometime in a few days.

</comment><comment><USER19> I wrote a similar PWA site when I was doing long distance with my now wife! [https://canicall.info/](https://canicall.info/)

</comment><comment><USER20> The user interface seems to assume someone isn't awake across midnight, which doesn't make much sense to me; like, if you want to try to coordinate a meeting with me, and you expect me to be functional during it, it really needs to be scheduled between 2pm and 4am, but I can't enter that time range due to how this slider works :(. (Speaking of which, it is nearing 5am, so I should probably start heading to sleep.)

<comment><USER21> I know what you mean! I'm always awake through midnight. The slider range should turn "inside-out" when you drag the end time to the left of the start time.

</comment></comment><comment><USER22> There is one crucial feature missing. There should be an option for "multiple" other locations. Since we are all practicing social distancing, I have scheduled a call with 5-10 of my friends over the weekend and they are spread over 5 different time zones and countries. We ultimately found one time that works for all of us using iOS world clock.

<comment><USER23> …

Before clicking I was fully expecting that you could input basically as many dates as you need to. Just two is not even sufficient to handle my cousins…

</comment></comment><comment><USER24> Google Calendar has a World Clock functionality built-in.

When scheduling events, it will show times in the time zones that you have added under World Clock in settings.

The world clock will display on your left sidebar.

[https://support.google.com/calendar/answer/37064](https://support.google.com/calendar/answer/37064)

</comment><comment><USER25> My home and my office are not on different continents, so I'm not sure why this is handy of WFH specifically. :)

<comment><USER26> Mine sometimes are. ;)

</comment></comment><comment><USER27> Feature request: support for multiple cities, could be handy for scheduling group calls in distributed teams.

</comment><comment><USER28> Nice idea! Bonus points for the 24h toggle.

Note: It doesn't work in Edge. I select places and times and nothing happens.

</comment><comment><USER29> For those using Google Calendar, there's a feature for showing people's working hours: [https://support.google.com/calendar/answer/7638168?hl=en](https://support.google.com/calendar/answer/7638168?hl=en)

</comment><comment><USER30> This is a great tool! I really like it. Do you have an option for a different color scheme though? Even just a white / black? Don't know why but this color is pretty difficult for me to look at for some reason.

</comment><comment><USER31> Meeting planner for multiple locations: [https://www.worldtimeserver.com/meeting- planner.aspx](https://www.worldtimeserver.com/meeting-planner.aspx)

</comment><comment><USER32> Google _2AM in New York_ (reports local equivalent time) or _4PM in New York in Shanghai_ (specify the timezone you want conversion to using another place name).

</comment><comment><USER33> This doesn't seem to work correctly for say London and Theran as the difference is not a round number of hours.

Otherwise looks useful.

Support for comparing with more than two parties would be nice

<comment><USER21> I thought Warsaw was the last country with a non-hourly time zone, UTC+01:24, which they wisely abandoned ages ago, in 1915. Why on Earth would Tehran use such an arbitrary time zone offset? At least they're off by a half hour, instead of 24 minutes. But what possible reason could there be to do something like that, anyway?

[https://en.wikipedia.org/wiki/UTC%2B01:24](https://en.wikipedia.org/wiki/UTC%2B01:24)

>On 5 August 1915, Warsaw switched to Central European Time, and the rest of Poland quickly followed suit.

Edit: Apparently Dublin Mean Time was even weirder than Warsaw's time zone, weighing in at UTC-00:25:21.

[https://en.wikipedia.org/wiki/UTC%E2%88%9200:25:21](https://en.wikipedia.org/wiki/UTC%E2%88%9200:25:21)

>UTC−00:25:21 was used in Ireland as Dublin Mean Time.

>Dublin Mean Time was introduced by the Statutes (Definition of Time) Act, 1880,[1] which also defined Greenwich Mean Time (GMT) as legal time in Great Britain. This Act replaced local mean time, which had been held to be the legal time since Curtis v. March in 1858, throughout the United Kingdom of Great Britain and Ireland.

>From 3:00 am Dublin Summer Time on Sunday 1 October 1916, the Time (Ireland) Act, 1916[2] changed the time used in Ireland to be the same as that used in the UK, both during daylight saving time and at other times.

[https://en.wikipedia.org/wiki/Time_in_the_Republic_of_Irelan...](https://en.wikipedia.org/wiki/Time_in_the_Republic_of_Ireland)

>John Dillon opposed the first reading of the Time (Ireland) Bill for having been introduced without consultation of the Irish Parliamentary Party; he said the different time in Ireland "reminds us that we are coming into a strange country".

<comment><USER34> You should look up Nepal if you want to be really ticked off.

<comment><USER35> How about Higgins time...

[https://mm.icann.org/pipermail/tz/2018-August/026774.html](https://mm.icann.org/pipermail/tz/2018-August/026774.html)

I'd link to JWZ's blog where I read about this, but he blocks HN referrals.

</comment></comment></comment></comment><comment><USER36> Wow, I had exactly this idea when I moved to the Netherlands!

My friends and distant family members would call at weird times without checking if it's early morning or night here.

</comment><comment><USER37> Also worth noting is that in windows 10 you can add two additional clocks to the main one.

Very helpful when you are usually focused on just a few timezones in particular.

<comment><USER21> Would it be more space efficient to just add more hands to the same clock face?

<comment><USER38> Can you even get Windows 10 to show an analog clock?

More importantly, that doesn't show you AM/PM, or the differences in days, both of which are important.

(And there are edge cases where just another hour hand wouldn't be enough)

<comment><USER21> When I was at Sun, somebody hacked up a version of Michael Power's classic NeWS "Glass Clock" tool (that shaped the window so that it only showed the hands and the 12 tick marks, so its face was transparent and mouse clicks passed through it), so it ran setuid root in order to call stime() to set the operating system's time, which it let you easily do by simply dragging the hands around the face, just like a real clock! ("Temporal Direct Manipulation"!)

This is the original version, without that hack:

[https://www.donhopkins.com/home/archive/news- tape/utilities/...](https://www.donhopkins.com/home/archive/news- tape/utilities/clocks/glass/)

        %    Glass is an implementation of a NeWS clock that I wrote to
        % experiment with shaped canvases. The clock is shaped like the
        % the hands and tick marks thereby allowing you to "see through'
        % the face to whatever lies behind. Because of the bug concerning
        % stroking a canvas path the face must redraw every time it is
        % updated (gross).

As it turns out, it REALLY SUCKS to have a clock that made it so easy to accidentally change the time on your workstation! The way the glass clock could float unobtrusively above your other windows, it was really easy to accidentally hit the hour or minute hand with the mouse and move it without noticing, then you'd miss meetings because your entire workstation would have the wrong time! Unless you were running it over the network on a different server, then you'd change the time for everybody else using that server, so they would miss their meetings too!

</comment></comment></comment></comment><comment><USER39> I've always liked the design of this one.

[https://everytimezone.com/](https://everytimezone.com/)

</comment><comment><USER40> Nice tool.

I personally use [https://spacetime.am](https://spacetime.am) (no affiliation, just like it).

</comment><comment><USER41> My company seems to block this website so now I'll never know when to chat.

</comment><comment><USER42> Love it!

Had been needing this forever... I used to use time.is, but this is _decent_ :)

</comment><comment><USER43> As I keep saying, we'll all move to UTC in 1-3 decades.

<comment><USER34> How is that going to help anything? This is an issue with human circadian rhythms, not with conventions of keeping time.

<comment><USER43> It helps with agreeing to do something together online at a certain time. Including announcing online events.

Nothing else. But that's enough.

<comment><USER35> "Let's set the meeting at 16:00 [UTC is implied]."

"Sorry Bob, we in Sydney will be asleep at that time."

<comment><USER43> You probably meant that as a counterargument, but to me it shows how simple UTC makes things.

<comment><USER35> I edited my comment and it turned to nonsense. What if the Sydneysiders aren't in the call?

I'm in Central European Time right now. If I want to set a meeting with New Yorkers, I have to know what time the NYers wake up in my time zone (14:00 here is 9:00 New York - although this might change in 2 days as we'll both be in Summer Time).

If I use UTC, I still have to know what time (in UTC) the New Yorkers wake up...

<comment><USER43> Yeah. We have no disagreements about that.

> _If I use UTC, I still have to know what time (in UTC) the New Yorkers wake > up..._

This is also true under the current system.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Thanks for the feedback everyone.

</comment><comment><USER44> This website doesn't work at all in chrome

</comment><comment><USER45> Great little tool. I love the retro design too.

</comment><comment><USER46> Tried in Safari and Chrome. Doesn't work.

</comment><comment><USER47> Didn't work for Barcelona

</comment><comment><USER48> Nice tool!

Better guy that wrote it!</comment>


Show HN: An open-source, online implementation of the card game Literature - <AUTHOR> http://ducksmash.com/ <comment><AUTHOR> Hi everyone, I implemented this card game called Literature: [https://en.wikipedia.org/wiki/Literature_(card_game)](https://en.wikipedia.org/wiki/Literature_\(card_game\))

I trained a neural net to play against me last summer, but the application was only available through the command line. Now I've built an online version. The bots aren't the ones that I trained over the summer because it was too expensive to run the neural net for free on Heroku.

The web app is built with React in the frontend and Flask in the backend.

The game engine and neural net bots are here: [https://github.com/neelsomani/literature](https://github.com/neelsomani/literature)

The game server is here: [https://github.com/neelsomani/literature- server](https://github.com/neelsomani/literature-server)

Maybe give it a try if you're looking for a new game to play with friends / coworkers!</comment>


It Flies: Da Vinci's Dream Comes True - <AUTHOR> http://www.npr.org/blogs/krulwich/2011/04/11/135300971/it-flies-davincis-dream-comes-true <comment><USER2> Festo is well known in the industry for making very elegant and graceful demos like that:

<http://www.youtube.com/watch?v=F_citFkSNtk>

<http://www.youtube.com/watch?v=nhfFnEQM1aU>

<http://www.youtube.com/watch?v=Zih1lB5-GZg>

<http://www.youtube.com/watch?v=VG82USg5mtE>

</comment><comment><USER3> Funny how Festo's SmartBird has been posted to HN multiple times over the past few months, but never voted up: [http://www.google.com/search?q=site:news.ycombinator.com+sma...](http://www.google.com/search?q=site:news.ycombinator.com+smartbird)

Proof that having a good HN headline matters!

<comment><USER4> I believe its because there was a TED talk about the Smart Bird posted a few days ago [1]. So now all the US media talks about it.

[1] [http://www.youtube.com/watch?v=Fg_JcKSHUtQ&feature=chann...](http://www.youtube.com/watch?v=Fg_JcKSHUtQ&feature=channel_video_title)

</comment></comment><comment><USER5> Hello DoD? Yes, we've built the most revolutionary battlefield surveillance tool since the airplane. You want 4500 of them? Sweet.

Talk about hiding in plain sight.

<comment><USER6> Have you checked the wingspan (6 feet) and the weight (17 ounces; IIRC, that is about a pound)?

Exaggerating: this thing almost floats in air. I think you can forget about adding any load to it, or about deploying it in rain or wind.

It is a great technological accomplishment, but I think it needs quite some improvements before it will be of practical use.

<comment><USER7> Even if it can't carry cargo one day, it could still be outfitted with a tiny camera, some sort of radio, and maybe a little onboard storage. Paint it like a bird, and boom — a sneaky surveillance system.

[Somebody's already said this, huh?]

<comment><USER6> I do not think that would prevent this from being blown away (maybe even to pieces) on almost any day of the year.

Birds its size weigh roughly ten times as much.

Also, I did not notice them publish top speed or range. I guess is those still leave something to be desired.

<comment><USER8> _I do not think that would prevent this from being blown away (maybe even to pieces) on almost any day of the year_

Maybe, but make 'em cheap enough and at least you've forced the enemy to waste time and bullets shooting at birds.

Battery life is no doubt an issue though.

</comment></comment></comment></comment></comment><comment><AUTHOR> I am always fascinated with flying like superman (who hasn't been), and this gives me confidence that one day humans can fly with a similar bird-like mechanical device, not a jetpack or massive engine on our backs.

I always thought if we copy nature, we will be very successul in engineering a device to allow humans to fly gracefully and safely.

<comment><USER9> The problem is that compared to birds humans are very heavy in relation to any of their cross sections. Thus we can not produce enough lift in air. We would require enormous wings. Big birds tend to glide more than they flutter. Fixed wings aren't a bad approximation for birds our size.

<comment><AUTHOR> Sure thing, but we are smart enough to do better than piston engines and gas turbines used in aircrafts.

I am confident we will one day discover another form of energy, so we can build aircrafts that do not require jet propulsion engines and induction engines. In fact, such a new form of energy will be necessary for us to fly at and possibly beyond the speed of light. And this will allow us to go deep into outer space and other galaxies.

I always thought if we can somehow ride photons, like hop on and go for a ride, then we can move at the speed of light. But right now I am only a programmer, I leave that to the Rocket Scientists to figure out :)

<comment><USER10> Current scientific knowledge says that going faster than light is impossible.

<comment><USER11> I like Larry Niven's response to this: maybe [they] have different theories.

To be fair, OP was talking about the future.

<comment><USER12> Where do people get this idea that future science disproves past science? It really doesn't work that way. We're not going to suddenly discover all of modern physics is wrong and oh hey look, it's easy to travel faster than light; that just isn't going to happen.

<comment><USER13> More like the following:

Newton discovered that F = ma, and that acceleration was the amount of speed gained per second. When he said this people were all like "man, if we could only find a vacuum we could take a small amount of mass and a large amount of force and move something faster than the speed of light!" (Which they semi knew due to some sort of cosmological event.) But Einstein came by and said "hold up, Newton is right for slow moving things, but as you approach C most of the force goes into increasing the mass of the object."

Imagine it goes the other way, in a few years some guy says "Einstein was right, but he didn't take into account the fact that we can effect the Plank constant within a certain radius of an horizon-tangle-event, so we can actually build something that will change the relative size of space around us and effectively move faster than the speed of light."

And back and forth all day.

<comment><USER14> You are of course referring to <http://en.wikipedia.org/wiki/Alcubierre_drive>

Which does not actually break Einsteins limit, although it does work like a Star Trek warp-drive. Of course the energy requirements are virtually impossible to satisfy in addition to all of the other problems.

<comment><USER15> > Of course the energy requirements are virtually impossible to satisfy in > addition to all of the other problems.

That's what they used to say about powered flight ;)

<comment><USER14> Perhaps, but you are comparing Jupiters to raisins.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> The making of the bird:

<http://www.festo.com/cms/en_corp/11369_11468.htm#id_11468>

</comment><comment><USER17> When you can add the the total wing tuck, it will greatly increase the mobility.

</comment><comment><USER18> _The breakthrough here was to design wings that torque and twist differently in many different places giving this machine more of the lift, propulsion and flight options a real bird would have._

You know who else designed wings that twisted? The Wright Brothers. Think about how different air travel would be if they weren't so greedy with their patent.

<comment><USER19> The primary advantage of the Wright brothers' "wing warping" was low-speed maneuverability. The smaller the control surface, the more airspeed you need. For the Wright brothers, virtually the entire wing was a control surface, so they were able to control their aircraft; Richard Pearse [0] used ailerons for his flights earlier in the year, and had only minimal control.

The reason wing warping isn't used much has little to do with the Wright's patent. While many pre-WWI aircraft used wing warping (such as the Etrich Taube [1]), as airspeeds increased, smaller control surfaces became adequate, and the lower strength of warpable wings doomed them to obsolescence. The F-22 Raptor [2], a modern highly-maneuverable aircraft, has control surfaces all over its wings, giving it all the advantages of wing warping without the disadvantage of reduced wing strength.

[0] <http://en.wikipedia.org/wiki/Richard_Pearse> [1] <http://en.wikipedia.org/wiki/Etrich_Taube> [2] <http://en.wikipedia.org/wiki/F22_Raptor>

<comment><USER18> The particular UAV in the article is a plane shaped like a seagull. I doubt speed was requirement. The fact is aircraft have gotten faster since the Wright brothers and airframes have also gotten much stronger. Ailerons with ailerons you gained high-speed maneuverability at the cost of low-speed.

Since then, engineers have been trying to find more elaborate ways of regaining lowspeed flight maneuverability by adding more control surfaces. Flaps, for example extend the wing to increase the chamber. It might not be warping in the traditional context but they have definitely warped the airflow to the same effect.

</comment></comment></comment><comment><USER20> It's Orwellian that the name given to a mechanical bird that is inferior in nearly every way to the real thing is "Smart." Its sole redeeming quality is the ability to be put to use by the military.

The author of the article claims that these machines are "celebrations of life," but to me they seem much more like celebrations of human control.

<comment><USER21> Only military applications? Really?

Consider: mass produced smart birds serving as open wifi access points, providing a network mesh that could span entire continents and is nearly impossible for any organization or government to censor or destroy.

<comment><USER20> Why is it nearly impossible for an organization to censor or destroy such a network? How is using fake birds such a big difference from using stationary access points?

Who is going to pay to build such a thing?

<comment><USER21> You'd have to seek out and destroy nearly every node to disable it, otherwise it could just route around any damage or sabotage. And destroying so many flying things that are difficult to distinguish from birds would be no easy task.

Who would pay? Individuals. Buy a node, let it fly often, charge it otherwise, help create an open, uncensored communication network (such things are hardly unprecedented).

</comment></comment></comment></comment><comment><USER22> I, for one, welcome our new avioid overlords.

Seriously though, the elegance is just breathtaking, i'd love to get myself one of those.

<comment><USER23> I know you were joking from your first line, and maybe I'm being too much of a hardass, but please don't start saying memes in comments. Its the kind of thing that I would expect on Reddit or Digg, but not here.

<comment><USER22> My apologies, I mistakenly thought my correct use of the 'oid' suffix would allow me to bypass the normal aversion to such things.</comment></comment></comment>


New Ways into the Brain's 'Music Room' - <AUTHOR> http://www.nytimes.com/2016/02/09/science/new-ways-into-the-brains-music-room.html?hp&action=click&pgtype=Homepage&clickSource=story-heading&module=mini-moth&region=top-stories-below&WT.nav=top-stories-below&mtrref=www.nytimes.com <comment><USER2> I have a theory very similar to Schmidhuber's theory of creativity: [http://people.idsia.ch/~juergen/creativity.html](http://people.idsia.ch/~juergen/creativity.html)

Music that is predictable is boring. Or music you've listened to a lot and have learned to predict. Music that's too random isn't pleasurable to listen to either. Otherwise you could just listen to white noise. Music seems to teeter in the balance between predictable and random. What could explain that?

The theory is that the brain seeks "novelty" and gets pleasure from it. If your brain tries to predict the next note and fails, synapses adjust slightly and it learns. It gets better at predicting its inputs. Learning these new patterns gives you reward, and encourages you to seek novelty like that in the future. Randomness doesn't cause new learning, neither does predictable patterns you already know.

<comment><USER3> > Music that is predictable is boring. Or music you've listened to a lot and > have learned to predict.

You just haven't learned to pay proper attention. I can listen to the same piece of music over and over and over again and not get bored. I stop usually not because I'm bored of it, but because I've had my fill of that kind of experience at that time. I might return to listening to that piece later. The piece falls into a 'rut' in my head and becomes a platform on which I can have all kinds of related thoughts and experiences.

When I'm of a mind to do so, I might listen to a particular piece of music hundreds of times over the course of a week or two.

Here is an article that describes a similar kind of practice:

[http://www.theguardian.com/books/2015/feb/09/centireading- fo...](http://www.theguardian.com/books/2015/feb/09/centireading-force- reading-book-100-times-great-idea)

Just because you can predict what's happening next doesn't make it boring. You just chose to make it boring.

<comment><USER4> This comment is outrageously pretentious and I respectfully disagree with your ridiculous conclusion.

<comment><USER3> Hard to accept that you're being respectful when you're calling me pretentious.

Would you mind explaining exactly what you're disagreeing with and why?

</comment></comment></comment></comment><comment><USER5> > Importantly, the M.I.T. team demonstrated that the speech and music circuits > are in different parts of the brain's sprawling auditory cortex, where all > sound signals are interpreted, and that each is largely deaf to the other's > sonic cues, although there is some overlap when it comes to responding to > songs with lyrics.

I've long had a pet-theory that music with voices in it interrupts my train of thought (especially while programming) in a way that instrumental/electronic music avoids.

Of course, if unnamed scientists discover that listening to voices is completely separate from writing text, that'd be evidence against it.

<comment><USER6> "Very few drums or vocals" is one of the qualities valued by the Music for Programming podcast: [http://musicforprogramming.net/?about](http://musicforprogramming.net/?about)

</comment></comment><comment><USER7> In 2015 I developed a theory that the human response to music is a mutated copy of an evolutionary pre-cursor, and the most likely pre-cursor is a response to speech-like sounds, where this response plays a role in the initial learning of language. I have documented the development of my theory in my "What is Music?" blog at [http://whatismusic.info/blog/](http://whatismusic.info/blog/).

In their analysis of the human auditory cortex, Norman-Haignere et al found six distinct functional groups of neurons. One of those groups is identified as a "music area". Another one of the groups is a close match for the evolutionary pre-cursor that I predicted - a group of neurons that respond to speech sounds, whether or not those sounds belong to the listener's native language.

The initial assumption of my theory is that the primary function of music is to temporarily alter mood. Evidence for this function comes from the strong effect that music has on some people who are "addicted" to daydreaming.

My theory suggests that the response to speech-like sounds also induces an altered mood, when an infant is learning language for the first time. This alteration in mood helps the infant to identify language as a special stimulus which is important and which needs to be processed and understood as something that follows its own peculiar and complex set of rules which are not particularly related to the rules that describe all the other aspects of reality that the infant is learning about. The altered mood may also help the infant to learn that the meaning attached to some language utterances relates to things beyond immediate reality, ie things that other people are thinking about which are not in the "here and "now". (This would relate to the similar effect that music has on our emotional reactions to things we are thinking about that are not in the "here and now".)

</comment><comment><USER8> Very cool stuff. I remember my first year of high school - in our first music class, we were taught: "what is music?". According to the teachers, and the dictionary, "music is organised sound".

Never seemed like a satisfactory answer to me. And finally I have confirmation: the world's brightest scientific minds, at MIT, in 2016, are only just now cracking the surface of this complex question.

The word "music" has been in the human vocabulary forever. But how does the brain actually define music, and classify it as "not noise", at a neurological / chemical / acoustic level? This field has been little more than guesswork until now. Very exciting times.

</comment><comment><USER9> Interesting read. Though my comment is on a benign technical detail. There were links in the article to other articles that I expected to work given how recently the article was published. For example, I was interested in reading about the 40k year old flutes - [http://www.nytimes.com/2012/05/29/science/oldest-%20musical-...](http://www.nytimes.com/2012/05/29/science/oldest-%20musical- instruments-are-even-older-than-first-thought.html) Curious that the link would appear at all. I'd think there would be constraints on this during publication?

</comment><comment><USER10> Link to the paper: [http://web.mit.edu/svnh/www/homepage/Publications_files/Norm...](http://web.mit.edu/svnh/www/homepage/Publications_files/Norman- Haignere_Kanwisher_McDermott_2015.pdf)

</comment><comment><USER11> Key quote from the article: "By mathematically analyzing scans of the auditory cortex and grouping clusters of brain cells with similar activation patterns, the scientists have identified neural pathways that react almost exclusively to the sound of music — any music."

<comment> xkcd-sucks www.ncbi.nlm.nih.gov/pubmed/26687225</comment></comment>


Just thinking about money can make you more evil, researchers say - <AUTHOR> http://qz.com/94189/just-thinking-about-money-can-make-you-more-evil-researchers-say/

<comment><USER2> Thinking of anything that would lead to giving you more 'power' or access to what you desire / didn't have before could lead to 'evil' thoughts and actions.</comment>


How Apple Should've Made the Dock Connector Adapter (IMO) - <AUTHOR> https://dl.dropbox.com/u/1948243/lightning_adapter.jpg

<comment><USER2> This idea seems OK for iPhone 5, but it would require an special adapter for every other ipod or gadget with that conector. The actual Apple adapter is universal in that sense.</comment>


Git solves all your problems....Almost - <AUTHOR> http://codeclimber.blogspot.com/2009/05/git-solves-all-your-branching-and.html

<comment><USER2> Stories like the above are way too common.

Despite how fantastic the tool is, git's biggest weakness is it's own opacity and steep learning curve. github's real magic is in indirectly getting git out of the way of the common coder. Sometimes it's through the GUI, and sometimes it's with helpful guides.

I suppose, when the core audience and developers are linux kernel hackers, usability is not going to be a priority.

<comment><USER3> The git commands, etc. are actually pretty straightforward. What usually causes the issues is thinking about branches. That can be a little hard to wrap your head around especially when you throw in remote repositories.

BTW, here's what they should have done:

      git checkout -b last_good_version [commit]
      git push --force origin last_good_version:master

Preserves the local history but fixes the issue on GitHub.

They probably should also do a few things like:

      git branch -m master master_merge_v2
      git branch -m last_good_version master

to avoid messing things up with the next push

<comment><USER4> Since I've never had to do this, what happens to the downstream repos that have already pulled the bad merge? Can they do a similar git pull --force to sync up?

<comment><USER5> Nope. If they're not careful (or don't know), they'll just merge in the bad commits on the next pull. They'll have to know in advance, and do some manual resetting or use a rebase call.

<comment><USER3> This is one of problems with changing history in a "master" repository. In this case, it's necessary in order to fix a problem.

Odds are since they're reverting back to an earlier commit on the master branch, anyone who does a pull might not notice the change since they're "ahead" in their history which is okay from the standpoint of the pull (using merge). This will cause a problem for any later push since they'll place the bad commits right back into the GitHub repo. [I'd like to put together a test scenario for this to be 100% but I'm not set up for that at the moment.]

Doing a rebase will lead to the "unmerging" conflicts that they had encountered and caused all their frustration.

Everyone needs to be notified to move (rename) their current master and recreate a master tracking branch:

      git fetch origin
      git branch -m master master_merge_v2
      git checkout -b --track master origin/master

This just solves the problem with the master branch. Any local development branch based directly off the master will need to be rebased. Or they can create a new development branch and cherry-pick.

</comment></comment></comment></comment></comment><comment><USER6> You can't undo history like he wanted to in a distributed version control system like git. Rather, you have to revert the content/data while moving the history forward. Resets and rebasing will only work locally if the commits haven't been pushed out to remote branches. If you could just "undo" history, how would git know?

Had Ethan read about git-revert he might have stumbled into this link [http://www.kernel.org/pub/software/scm/git/docs/v22.214.171.124/how...](http://www.kernel.org/pub/software/scm/git/docs/v22.214.171.124/howto/revert- a-faulty-merge.txt) that explains in more detail.

To Ethan's credit, Git is pretty difficult to use until you understand the model behind trees, commits, and blobs. I've been in his shoes where I blew away a bunch of work and screwed up everybody's remote branches :)</comment>


Why won't IV answers questions about its relationship with Lodsys? - <AUTHOR> http://www.guardian.co.uk/technology/2011/jul/27/intellectual-ventures-myrhvold-patent-lodsys

<comment><USER2> "we want to build a portfolio just like those companies have, with licensing approaches broadly like they have ... I want to achieve what IBM has achieved [getting $1bn per year from licensing patents]."

The difference between IV, Lodsys and IBM is that IBM isn't a patent troll and doesn't threaten small businesses with ludicrous IP lawsuits. If anything, they've _donated_ patents in the past to open source projects to strengthen those against IP lawsuits.</comment>


Show HN: CodeQuality for Jira Quantify Code Quality - <AUTHOR> https://codequality.diligences.com <comment><AUTHOR> Hello, Community

We've launched CodeQuality for Jira.

All-in-one toolkit to manage code quality for your JIRA project. Track personal performance of your team members, set expectations, have a better quality of the codebase. The solution is hosted on our side providing an extremely easy start.

Web version is coming soon!

</comment><comment><USER2> A technical debt of my Git repo inside Jira? Hmm, sounds interesting.

Could I see which problems exactly have my repo? Or is it just general calculation?

</comment><comment><USER3> Congratulations and thanks for sharing.

</comment><comment><USER4> hmm not bad!

</comment><comment><USER5> wow!</comment>


Dealing With Doctors Who Accept Only Cash - <AUTHOR> http://www.nytimes.com/2012/11/24/your-money/dealing-with-doctors-who-accept-only-cash.html?pagewanted=all&_r=0

<comment><USER3> This is very good. I used to have a doctor who worked "cash-only" with her patients. Eventually she had to change over to billing insurance, and then had to hire people just to manage insurance billing.

She quit general practice, and became a cosmetic surgeon, with a cool-ass laser. Insurance doesn't cover cosmetic procedures, so she doesn't have to deal with them any more.

The world lost a fantastic Family Doctor because of how insurance handles billing and payment.

</comment><comment><USER4> Worth reiterating - because I've seen this conversation here before - <USER2> 1,000 patients @ $38/ month != "earns $38,000/ month".

There are still salaries (well, singular in this example - the receptionist) plus overheads, training, insurance etc. Sure, the margins are much better in medicine, but buying a $10 book off Amazon != $10 income to Jeff Bezos, and the same principle applies.

<comment><USER3> I'd rather let my doctor make the money.

</comment></comment><comment><USER3> It is also worth noting that is some states, doctors who switch to a monthly fee billing have been sued for illegally operating an unlicensed insurance company.

</comment><comment><USER3> It is worth noting, it that even if your Family Doctor works this way, most people want insurance against medical catastrophes, not just well care.

</comment><comment><USER5> When we were looking for a new doctor, we asked two friends, both MDs, who they used. Both used doctors who don't take insurance.

</comment><comment><USER6> When a market becomes untenable the market will move. The American Insurance cartels are stepping over the line and finally patients AND doctors are realizing it's detrimental to their health.</comment>


Free Book: An Introduction to Programming in Go - <AUTHOR> http://www.golang-book.com/ <comment><USER2> Thanks, I really want to get serious with that language seeing all the praise from people around. I have began to do some small things with it and it feels like a great language ( I love the no makefile idea !)

My only regret is that this format makes it really hard to print in one motion. Could you provide a link for a PDF version?

The animal on the cover looks really hilarious too!

<comment><USER3> yes, please provide a pdf version (free or paid, doesn't matter for me) ... oftentimes authors will make a kindle version of the book for sale on Amazon and forget to put out a pdf.

<comment><USER4> I am an author (not of this book) and I very occasionally get an email asking for PDFs. Maybe one in a thousand sales are PDF. Since it doesn't come up that often I've never bothered with setting up a paid system; I just send them a link and ask nicely for a few bucks via PayPal.

Where do most people go to buy PDFs? Is it really a large-enough market to worry about?

<comment><USER5> Lulu? At least that's the only place I've specifically bought a PDF - then I found out that it's wrapped in some horrible Adobe DRM (if there are any ways to remove this, I'd love to know). I don't begrudge the money, I just wish I could read it in Preview.app rather than Adobe Digital Reader or what ever it's called - it doesn't scroll smoothly, only page wise which is a massive pain when there's lots of diagrams.

Other than that, all the ebooks I've bought from individual storefronts, often from having seen them on HN, have come as a PDF/epub/mobi bundle to work on any device.

<comment><USER6> Install Calibre and then follow the instructions here: <http://apprenticealf.wordpress.com/>

If it's not DRM protected, but rather a "secure" PDF, you'll need some other tools that can remove the owner password. About.com has a list here: [http://pcsupport.about.com/od/toolsofthetrade/tp/pdf- passwor...](http://pcsupport.about.com/od/toolsofthetrade/tp/pdf-password- remover.htm)

<comment><USER7> Please don't password protect PDFs for books. It makes it a huge pain in the ass to actually read. I'd much rather you do what the Pragmatic Bookshelf does and just embed our name into the PDF.

<comment><USER8> As far as I can tell, O'Reilly doesn't even do that. I've even strings(1)'d them and found nothing.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Another great resource is "A Tour of Go": <http://tour.golang.org/>

You can also install a local version, I've been working through it, and it's great for fiddling with on the plane.

<comment><USER10> Going through the source code for that tour is also a very good way of getting familiar with the http package and a good introduction to channels.

</comment></comment><comment><USER11> @cdoxsey - Nice work, but you might link to an installer that doesn't include a text editor. I'd be willing to bet that the majority of the target audience already has their preferred text editor installed.

Edit: After reading the first few chapters, I made a false assumption. It looks like the book is aimed at people new to computing (or, at least, it doesn't make the assumption that the reader has programmed before).

<comment><USER12> <http://golang.org/doc/install>

I guess the target audience is programming novices who have never written anything like source code before. Go seems like a strange choice for a first language, being neither foundational (C, Assembler, Scheme/Lisp) nor front-end scripty (JS, Logo, Scratch).

<comment><USER13> I don't know much about the US, but in Europe the majority of colleges is now teaching either java or C++ as the first language, and only a minority is teaching scripting languages as PHP. I guess it's easier for students to understand higher-level languages and to transport their knowledge to other languages (or, at least, it was easy for me).

<comment><USER14> More that it is easier for a classroom to teach an old stable language than invest in new things that might not last. It is rare to see an accomplished programmer who started writing any code in Java... most started with JS (younger folks) or educational environments like Logo/Scratch or super simple envs like Basic.

<comment><USER15> "It is rare to see an accomplished programmer who started writing any code in Java" are you serious? I know a lot [here in DC]. I personally started with Pascal->C->Java->(all the scripts)->C#

<comment><USER16> That's not starting in Java.

</comment></comment></comment></comment></comment></comment><comment><USER17> The book is now on Amazon, available for Kindle and in paperback:

Kindle: [http://www.amazon.com/An-Introduction-Programming-Go- ebook/d...](http://www.amazon.com/An-Introduction-Programming-Go- ebook/dp/B0095MCNAO/)

Paperback: [http://www.amazon.com/An-Introduction-Programming-Caleb- Doxs...](http://www.amazon.com/An-Introduction-Programming-Caleb- Doxsey/dp/1478355824)

<comment><USER18> @cdoxsey - you should link the two versions so that people landing on one know that the other format is available.

What did you use to write it? Nice job!

<comment><AUTHOR> Should be linked now... Amazon hadn't put them up yet. I wrote the book using Libre Office.

</comment></comment></comment><comment><USER19> See also another nice book, which can be downloaded as PDF: <http://www.miek.nl/projects/learninggo/index.html>

</comment><comment><USER20> I'm kinda bummed that it doesn't cover installing to linux.

Not that installing Linux is difficult, just that A. I suspect we'll see a lot more people on Linux computers, especially in the developing world, and B. beginning programmers should be introduced to the concept of Linux as a programming environment

<comment><USER21> There's really not much point in covering that in a book beyond pointing you to <http://golang.org/doc/install>

Go is dead simple to install to Linux via either binary or source. Even building it from scratch on non-standard Linux systems like embedded armv5 systems is easy. Basically if you have a non-broken gcc already, go will build just by invoking one single shell script they provide.

<comment><USER10> I have been really impressed with Go's portability. I recently cross compiled a binary from a Linux machine for an ARM target and had it running from scratch in less than 15 minutes. Go could become a serious option for embedded Linux targets.

<comment><USER21> I agree. My current spare-time project involves programming in Go for ARMv5-based boards (old chumby devices).

I write the code in Windows (Sublime Text 2), compile in Windows, but target GOOS=linux, GOARCH=ARM, GOARM=5 and end up with an executable that I can easily rsync and run over on the ARM device. The cross-compiling available in Go is much easier to setup initially than the usual situation of having to build an entire toolchain for your target.

</comment></comment></comment></comment><comment><USER22> Thanks for this. I scanned the document and the language seems pretty straight forward, should be easy to learn. I did a search for classes and object oriented in the document (pdf) and it returned no results.

I did a web search and came up with this [https://sites.google.com/site/gopatterns/object- oriented/cla...](https://sites.google.com/site/gopatterns/object- oriented/classes), maybe the book should reference that somewhere early (maybe not because the intro seems to touch on computer programming in general so I would assume that it was for first-time programmers).

<comment><AUTHOR> Go doesn't have classes. I agree that it'd make sense to talk about them in a book aimed at C# or Java programmers, but this book is written for people who are new to programming.

</comment></comment><comment><USER23> Love the format (especially reading from mobile). Thanks for the free book!

</comment><comment><USER24> The TIOBE programming community index rates Go as not being in the top fifty languages used today. That seems strange since it was the "language of the year" in 2009.

[http://www.tiobe.com/index.php/content/paperinfo/tpci/index....](http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html)

I like Go, and it gets a lot of good press. Is TIOBE not accurately portraying Go's popularity?, or is there some other explanation as to why few people use it?

Sorry, not related to the book (which looks cool, btw).

<comment><USER12> TIOBE has always been a joke, and only even attempt to manage language chatter, not usage. It is based off job boards and internet search trends, and is highly susceptible to homonym confusion, which is especially harmul in the case of "go".

<comment><USER18> A better index is <http://LangPop.com>, which I recently sold on to a new owner, who hopefully will be working hard to spruce it up some, and add some new languages like Go, although Go is always going to be problematic in search engines.

<comment><USER25> Another option is Github, which ranks Go as the 27th most popular language. <https://github.com/languages/Go>

<comment><USER18> That's a data source I considered adding for LangPop, but back in the day, was too much of a Ruby hangout. I think these days it's probably suitable.

<comment><USER26> Any reason you wouldn't use StackOverflow tag volume/activity as a signal?

<comment><USER27> If more questions are asked about a particular language I don't think it would mean that language is being used more in the real world. Just more people are confused about it.

Not sure if stackoverflow tags are a great indicator. TIOBE tries to use job listings and google trends. Searching job listings/search engines for 'go' probably wouldn't return much results (because of the ambiguous name) which is why its a lot lower than it should be.

<comment><USER26> > I don't think it would mean that language is being used more in the real > world. Just more people are confused about it.

The two are not mutually exclusive. Rather, I'd think they're directly proportional. A very straightforward and simple yet popular language should have very few questions, which doesn't seem to be the case; conversely, brainfuck is particularly cryptic and should have many questions, yet it does not.

StackOverflow is admittedly .NET heavy, but since SV is somewhat anti- Microsoft, perhaps this will balance things out.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> I really like the structure of this, very readable and a great intro. I have some confusion on <http://www.golang-book.com/6>

It says:

 _Go also provides a shorter syntax for creating arrays:

x := [5]float64{ 98, 93, 77, 82, 83 }

We no longer need to specify the type because Go can figure it out. Sometimes arrays like this can get too long to fit on one line, so Go allows you to break it up like this:_

However the type is specified as `float64`

<comment><AUTHOR> I meant you didn't need this:

var x [5]float64 = [5]float64{ 98, 93, 77, 82, 83 }

But I explained ":=" earlier so I can see how that would be confusing.

</comment></comment><comment><USER29> It's nice, but I wish there was a summary page of the syntax. As an experienced coder, I don't really need to understand the concept of a map, only how it's done in go, and maybe restrictions.

<comment><USER30> This book isn't for you, then. I understood it as an introduction to programming, using Go.

The official Go website <http://golang.org> has everything you need, including the spec [1] and the insightful Effective Go [2].

[1] <http://golang.org/ref/spec>

[2] <http://golang.org/doc/effective_go.html>

</comment></comment><comment><USER31> The website says that the book will be for sale on Amazon soon. Anyone know if it will be Kindle friendly? The text looks like it would convert easily from the web pages, if not.

<comment><AUTHOR> It's available now:

[http://www.amazon.com/An-Introduction-Programming-Go- ebook/d...](http://www.amazon.com/An-Introduction-Programming-Go- ebook/dp/B0095MCNAO/)

</comment></comment><comment><USER32> Can't help it, but it needs some more padding:

        #container { padding:60px }

Btw, great resource, the more the merrier.

</comment><comment><USER33> What's the best way to install Go on Linux (Ubuntu in particular)?

Build from source? Any caveats?

<comment><USER34> Building Go from source is trivial if you want to do that (two commands, one of which just grabs the Hg repo iirc. building only takes a few minutes on my underpowered eeepc.), but you may as well just use the binary distributions of it.

</comment></comment><comment><USER35> I'm worried about Gordon the Gopher. He can't reach the pedals. :)

</comment><comment><USER36> I would have named the book "Go Learn Yourself"

<comment><USER36> Or "Go Code Yourself"

</comment></comment><comment><USER37> Any chance of providing an ePub version?

</comment><comment><USER38> Is there a web framework? Go on Rails?

<comment><AUTHOR> Go has a great built-in web server in net/http. Not as feature-rich as Rails, it's more akin to a micro framework like bottle.py. I ate my own dog food and the book's site is written in Go.</comment></comment>


GNU gold developer on linker basics (2007) - <AUTHOR> http://www.airs.com/blog/archives/38

<comment><USER2> I find that one of the subjects with the rarest of documentation is linkers. I often run into linking problems and all I have is the gnu linker manual.

Partly the problem is that linker people are unaware that the new generation of software engineers have no knowledge of linkers. I hope he goes one step further and makes a book out of it.

<comment><USER3> We have a book by John Levine, but it's too outdated.

<http://www.iecc.com/linker/>

Anyone interested in an up-to-date version of such a book?

</comment></comment><comment><AUTHOR> The subsequent blog entries on linker basics can simply be reached by increasing the number in the link (i.e., /39, /40, and so on).

<comment><USER4> Thanks! I was thinking it was a little lacking in depth with just that one part :)

For the lazy:

Part 1 - <http://www.airs.com/blog/archives/38>

Part 2 - <http://www.airs.com/blog/archives/39>

Part 3 - <http://www.airs.com/blog/archives/40>

Part 4 - <http://www.airs.com/blog/archives/41>

Part 5 - <http://www.airs.com/blog/archives/42>

Part 6 - <http://www.airs.com/blog/archives/43>

Part 7 - <http://www.airs.com/blog/archives/44>

Part 8 - <http://www.airs.com/blog/archives/45>

Part 9 - <http://www.airs.com/blog/archives/46>

Part 10 - <http://www.airs.com/blog/archives/47>

Part 11 - <http://www.airs.com/blog/archives/48>

Part 12 - <http://www.airs.com/blog/archives/49>

Part 13 - <http://www.airs.com/blog/archives/50>

Part 14 - <http://www.airs.com/blog/archives/51>

Part 15 - <http://www.airs.com/blog/archives/52>

Part 16 - <http://www.airs.com/blog/archives/53>

Part 17 - <http://www.airs.com/blog/archives/54>

Part 18 - <http://www.airs.com/blog/archives/55>

Part 19 - <http://www.airs.com/blog/archives/56>

Part 20 - <http://www.airs.com/blog/archives/57>

<comment><USER5> I just did this and was about to post it in a comment here. :)</comment></comment></comment>


Netflix to Raise Price from $11 to $13 a Month - <AUTHOR> https://thestreamable.com/guides/live-tv-streaming/news/breaking-news-netflix-raising-prices-to-13-a-month <comment><USER2> Previous discussion: [https://news.ycombinator.com/item?id=18911296](https://news.ycombinator.com/item?id=18911296)

</comment><comment><USER3> > We change pricing from time to time as we continue investing in great > entertainment and improving the overall Netflix experience."

Is it improving though? It used to be better, had more quality content, easier to navigate, user ratings, reviews etc.

I feel it is one of those cases where to get the real meaning behind the corporate PR message you have to invert it. Then it would be something like: "We change pricing from time to time as we continue investing in subpar entertainment and worsening the overall Netflix experience."

I had canceled it a few years back as I ended up spending more time looking for something to watch than actually watching anything. To be fair their original shows were not too bad. I enjoyed Stranger Things, House of Cards and a few others. But it just wasn't worth the price overall.

<comment><USER4> When you say "had more quality content", do you mean that some content was removed ? Or that the rate over which great content is produced has decreased ?

<comment><USER5> > When you say "had more quality content", do you mean that some content was > removed ?

Yes, once Netflix proved that streaming was commercially viable, they rapidly got competition bidding for exclusive streaming licenses and then content owners pulling content for their own exclusive streaming services.

So, yes, a lot of content was lost and more is being lost. OTOH, they've ramped up exclusive acquisitions and content development.

<comment><USER6> Personally, I think that if you have cosmopolitan tastes, Netflix is actually continuing to produce a lot of interesting content. In India, Sacred Games is a fresh breath, as is Devilman Crybaby to anime.

</comment></comment></comment></comment><comment><USER7> Honestly, if it means more quality content, I'm for paying even $15+.

Netflix has a ton of content, but I feel like at least 70% (and I'm being generous here) is very much 'meh'. There are some people who are happy to watch 'meh', and that's awesome, but I find myself re-watching old (but good) TV series, because the good TV show I watched has ended and I haven't found anything good yet.

So, Friends it is, I guess...

<comment><USER8> Since they have tons of mediocre content, I think having more money will just lead to more of that.

If they had the ability to create good content but were lacking the finances, they could take it from the mediocre content.

<comment><USER9> Everyone's take on "mediocre content" is different. My wife loves a lot of the low-rated Netflix shows. In the same way our dishes might not get washed as quick if I didn't have my favorite podcasts, I don't know if our laundry would get done as quick if she didn't have Fuller House or that mermaid show.

</comment></comment></comment><comment><USER10> From a previous thread:

I've been wondering if the last Great Unbundling will be followed by another Great Rebundling. I'm no expert in any of this, but it seems unlikely that the new "channels" of Netflix et al. will prevent their programming and delivery methods from be bundled until it becomes disadvantageous to their growth (ie monthly subscriptions can't generate enough revenue).

It seems to me there is an explosion of content that will be able to be monetized far beyond just subscription lock-in. I wonder what the method of monetization will be after the gold-rush of building subscriber bases? Netflix's original proposition and value was one of convenience (and price), but I wonder how long that will last. Will households juggle 4+ subscriptions of $15/mo? I'm not sure that is why cord-cutters originally cancelled their cable subscriptions.

My off-the-top-of-my-head list of current and coming soon subscription services (that also produce content) is: Netflix, Amazon Prime, Hulu, HBO, YouTube, CBS, Disney/Fox, NBC, Apple. Technologically, it seems like there are some serious hurdles to "bundling" these together.

I wonder if the future "bundle" will actually be a service that manages subscriptions for you, with things like highlighting newly available shows since the last time you subscribed.

<comment><USER11> I'm still irked that CBS, Warner, CW and the DC subscriptions aren't a single service. Talk about milking it. I did a year of DC and didn't look at it before the preview was up... I mean, Titans was meh, and I'm happy Young Justice is back, but totally not worth the price of admission for how many DC things are missing...

</comment></comment><comment><USER12> Number of subscribers who won't renew because of this? Zero. Netflix delivers the most hours-of-entertainment-per-dollar of anything in the world that isn't free, it's not even close.

<comment><USER13> Yeah, this will almost certainly have a negligible effect on their subscriber base. I won't say it's zero, but damn close. $2 monthly increase means $24 a year, or ... less than a single meal for a family of four at Wendy's or KFC.

<comment><USER14> Wendy's can get you 4 four for four meals at only $16. I say that is a marvel of the modern world

<comment><USER11> I'd say it's a marvel of soy and starch filled "chicken" patties and nuggets loaded with extra sugar to boot. I'm just guessing that in one of those meals (not including the soda) you get a over full day's worth of sugar (100g, medical standard max recommended) which is way higher than what people should probably limit sugar intake to (20g).

</comment></comment></comment></comment><comment><USER15> I don't mind. Netflix is a steal of a deal IMHO. Their media is so satisfying to consume. I'll take it over a nice entree at a restaurant any day.

<comment><USER16> Where do you live that you can get a "nice" entrée for $13? That's what McDonalds costs here...

<comment><USER17> Do you live in Europe? I don't know of anywhere that McDonald's costs that much in the US. Maybe the Times Square one if you get a full combo.

$13 gets you a nice entree in most any US city. Not white table cloth service of course, but you can find good and healthy food. Especially if we are talking just about the entree.

<comment><USER11> A lot of California, NYC, and other areas would be that much for a meal plus taxes. Also airports large college towns and some downtown areas for larger cities.

I usually don't spend less than $15-20 at fast food. But often it's multiple burgers without a bun, and a couple of side salads.

<comment><USER17> ok, multiple burgers and multiple side salads is not a normal meal at a fast food restaurant.

</comment></comment></comment></comment></comment><comment><USER18> Are they being greedy or is this just inflation? $7.99 was the original DVD rental fee in 1997 → which is $12.51 in 2019 dollars. I wish I had a better mental tool for working with inflation in my "get-mad-o-meter", haha.

<comment><USER19> Wasn't $7.99 for the one-at-a-time plan? I also recall it being more like $10 or $12, but I wasn't paying for it at the time so I'm not an authority.

I felt like my family was lucky to get through 7 DVDs a month with one-at-a- time. We had a pretty good 3-4 day turnaround, but no matter how hard you tried to watch every movie the day you received it, we always managed to end up holding onto a disc for a few days. We eventually switched to 2-at-a-time so we could have one in-flight and one at home, that helped smooth out the gaps.

But even counting 2 or 3 at a time subscriptions, with unlimited streaming I am able to consume more content in a week and a half then I could in an entire month with DVDs, so in terms of content viewed per dollar I still think I'm getting a good deal. Streaming is especially a boon to anyone binging on a TV show. DVDs would have 3, maybe 4 episodes per DVD, so going through a show could monopolize your subscription for weeks at a time. Today I pop the show I want on and it just goes and goes.

<comment><USER10> The big advantage of the DVD plan is selection. That is inherent in the media, and the license structure of it.

Another big change is BluRay, which I've found has _far and away_ higher quality than streaming of any type.

<comment><USER5> > Another big change is BluRay, which I've found has far and away higher > quality than streaming of any type.

Standard Blu-ray (As opposed to UHD Blu-ray) doesn't have, to me, subjectively better (or even as good) quality than either 4K and/or HDR content available from YouTube, with the particular data connection I have at home, and with the screen I use. (I'm not currently paying for the 4K service from Netflix.)

I haven't actually compared UHD BluRay to 4K/HDR streaming. But a lot of this is going to vary by streaming provider, codec, data connection, and display hardware.

</comment></comment></comment></comment><comment><USER20> What are you all actually using Netflix for anymore?

I keep a subscription for my kids, and will watch a documentary maybe once a month, but their in-house content seems to be the primary offering now and my impression has been that it's mostly terrible.

$13 isn't a deal breaker, but it's definitely creeping toward breaking point for me. I think I would probably drop it somewhere between $15 and $20.

<comment><USER21> I do not get the bizarre cynicism that appears in every discussion regarding Netflix.

The service has loads of _fantastic_ content covering every gamut.

<comment><USER20> That's what I was trying to get at with the question about what people are using the service for. I guess better phrase would be "what are people watching". Once or twice a month I'll open Netflix, browse around, try to watch something and turn it off. It seems like most of what it suggests is their in-house content, which I've had very little luck with. I don't remember the last time I found something I enjoyed by browsing Netflix, as opposed to knowing exactly what I was looking for ahead of time.

Are they just really bad at suggesting content? How do you go about discovering the fantastic content?

<comment><USER21> Traditionally it was by browsing around "More Like This" on something you liked, delving down the rabbit hole. For instance I watched a few European captioned shows, and each of those led to more that I have loved (Dark, Borderliner, Bordertown, Hotel Beau Sejour, River, among many others).

Unfortunately many of their interfaces don't support More Like This.

Netflix has very poor discoverability, and it has gotten worse, but they have an enormous trove of extraordinary content.

</comment></comment></comment></comment><comment><USER22> Frankly, I find so much netflix-shows on netflix, but rarely good movies not produced by them.

I wanted to show my GF Star Wars... but it wasn't on it. Same for James Bond, Die hard 4, Oblivion, MI1, etc. It's a shame, really. I would gladly pay 20$/month, but in this case, I want ALL available movies, not just some cherry-picked ones.

<comment><USER23> Netflix still has its classic DVDs by mail business, which is still a great deal when you think about what it used to be like renting movies. Or you could rent movies via streaming. Netflix isn't trying to kill Blockbuster anymore. It's trying to kill cable/network TV, where they have their own content, but also air reruns and a few movies.

<comment><USER22> I could rent, on go on other service, but you have to agree that it's way simpler to go on a pirate site and download a movie.

</comment></comment></comment><comment><USER24> The main problem with it is that its hard to navigate. Why isn't the show I watched last right there visible for me to click when I revisit the page ? Instead its buried two page lengths down.

</comment><comment><USER25> Thank God there's Kodi

<comment><USER26> you will probably get down voted on HN for that comment but I think you bring in a good point. How are they going to compete with the likes of kodi which is something even my parents can manage to use. They keep adding cost while lowering quality in my opinion. Yes they may have added a few things but the user end experience is just bad and I can't see how they can win me back.

<comment><USER11> I'm not sure about the ability for your parents to manage to use it... Either you're configuring a media app and a paid service for better streaming options and a vpn on top of that if you're careful. Alternatively you want to go through a handful of torrent options, download to a seedbox, then download to a local file share then watch on TV.

I mean, I'm willing to do this for some thing (often because a new release on a streaming service breaks 3 episodes in because of capacity issues), but not everyone is willing to do so.

I'd be willing to pay $25/month if they got all the content that is no longer available back and included the disc at a time service back. Right now, you can't even watch most of the entire line of movies they do have (like all the MCU movies, or all the die hards, etc). Most of their original content I don't care for, a lot of the rest isn't great. And the dropped the handful of shows I really fired up the netflix app for.

</comment></comment></comment><comment><USER27> Off topic, but I really wish Netflix had an open API again. Or heck, even one I could pay for, for a small fee. There is so many cool things I'd love to do with my user data on there, but it's all so closed off. Unless that changed of course, and there is something available again?

</comment><comment><USER28> I hope they improve the content. Most of it is useless. Ah, I was expecting they reduce the price for HD content!

</comment><comment><USER29> I bet the price elasticity on Netflix is pretty high. They should try changing it to $19.99 and see what happens.

</comment><comment><USER11> After the Marvel implosion, I already cancelled. Not the only reason but enough for me to finally walk out.

</comment><comment><USER30> If only it didn't suck outside of Murica.

</comment><comment><USER31> and still not have an option to hide things that I don't want to see</comment>


Show HN: Parachuting robots – a programming puzzle - <AUTHOR> http://david-peter.de/parachuting-robots/ <comment><USER2> Here's my best implementation:

      start: left
             skipNext
             goto start
      fast:  left
             goto fast

Red and Blue must take three cycles to move one space until Blue hits Red's parachute. Then, Red take three cycles to move one space while Blue takes two cycles to move one space where Blue then catches Red shortly after.

<comment><USER3> "It seems to originate from a Microsoft interview question."

Using inefficiency to solve problems, I'm not surprised.

<comment><USER4> This problem was posed to me for real in a Microsoft interview in the late 90s. At first I was like "How hard could this be?" but quickly discovered that it wasn't so obvious. If I hadn't already seen the famous circular-list detection method, there's no way I would've gotten it, not during the interview at least.

</comment></comment></comment><comment><USER5> Wow, great puzzle.

Also great implementation and beautiful site.

Though, IMHO there could be a button named "parse & run", my eyes have missed a "parse" button, and I thought that something was broken.

<comment><AUTHOR> Thank you, I'm glad you liked it!

I see, the disabled play button in the beginning is not optimal. Replacing "parse" with "parse & run" is an interesting option. I'm not sure yet, how it would affect the other buttons, though. I somehow like the debugging-style "Step" feature. Would it be better to have the example program parsed already such that "Play" is enabled on page load?

<comment><USER5> Answering your question, maybe a popover with text "Your program is not parsed" would help?

Also somehow I am used to "build" (instead of "parse") terminology, so my eyes just have not caught "parse" keyword. Though, I guess here nothing is built, only parsed. ;)

All in all some information, about parsing before running would add extra points to the UX.

<comment><AUTHOR> Great suggestion, thanks! I added (state-dependent) mouse-over tooltips for all buttons.

</comment></comment></comment></comment><comment><USER6> Is the goal to create a short programm (less lines) or an efficient programm (fast)?

Spoiler!

      start: left
        skipNext
        goto start
      speedup: left
        goto speedup

</comment><comment><USER7> That interview question seems related to the "how to detect loops in a potentially infinite list" question which I was asked at least once.

<comment><USER8> Did you solve it?

<comment><USER7> The interview question back then, no. But I remember the solution so I could solve this robot problem quickly :-)

</comment></comment></comment><comment><USER9> I kept thinking,how would robots know when to switch directions? That is when I realized that robots do not have to crash head on but overtaking is sufficient.

This is one case where I am glad that I did not read HN comments before solving. My solution is the same as moftz and other left leaners. :) First iteration I made the speed be four times the slow robot but of course double speed is fine.

<comment><USER10> Is it possible to make them go inward to each other instead of chasing?

<comment><USER11> I don't think there is without a counter and an if statement. I had this question once and came up with the two robots oscillating around their parachute until they came across another parachute at which point it would stop and wait for the other to return.

</comment></comment></comment><comment><USER12> My solution: [http://pastebin.com/FqgCAXKA](http://pastebin.com/FqgCAXKA)

<comment><USER13> That can be cleaned up considerably.

2 labels, and 5 statements

<comment><USER12> 2 labels and 6 statments. I don't know how to get 5 statments.

[http://pastebin.com/ZcLdJhzN](http://pastebin.com/ZcLdJhzN)

<comment><USER13> remove one "left" from the speed label :D

<comment><USER14> Yes. Because the left in "loop" will have already been executed by the time it gets to "speed".

Also "loop" is not a good label. They are both loops.

</comment></comment></comment></comment></comment><comment><USER15> Fantastic puzzle.

Took me ages to realise the twist though, because I was somehow set on making them oscillate further on every iteration and couldn't understand how I was to remember how far I went without a stack.

Basically what I wanted to do was: x left, if its not there, return. Next time x * 2 left, return to base if its not there, ...

</comment><comment><USER16> At first I thought there couldn't be a solution, since both robots always do the same thing. You can imagine the "duh!" in my head after seeing the comments here…

</comment><comment><USER13> I'm not sure I would have gotten the puzzle without the great visualization. Very cool!

Much appreciated entertainment on a lazy friday at work :)

</comment><comment><USER17> Took me about 2 minutes to come up with:

start: left left right skipNext goto start continue: left goto continue

<comment><USER18> And this is the right way. If you consider that left and right are mechanic robot movements taking considerable time then

      start: left skipNext goto start continue: left goto continue

might not gain any appreciable speedup.

</comment></comment><comment><USER19> Here is slight twist on the problem: the new robot has multiple cores with shared cache and very accurate branch prediction so branching instructions do not waste any cycles. So "left, skipNext, goto" loop performs exactly as efficiently as "left, left, goto" loop. Can you still solve this?

<comment><USER18> Timing of the left command would depend on robot mechanics, not the processor clock.

</comment></comment><comment><USER20> How many labels you need to solve this? I have four, but I wonder if it can be simplified.

Suggestion: Add ability to share the code.

<comment><USER21> Additional suggestion: ability to grade code. I see solutions that are a lot shorter than mine in code (2 labels, 5 instructions), but they take about 87 instruction cycles to get there whereas without labels you can do it in about 30 cycles.

<comment><USER13> ... Without labels? Can you show that solution? Are you sure it works for robots placed on an infinite line?

<comment><USER21> Yeah, I was about to delete my comment (but now someone already replied) because I discovered the randomize button. My bad!

The solution with a "speeding label" is the only solution I see. I also recognize the parallel with infinite loop detection now, like sugarcube commented already: [https://news.ycombinator.com/item?id=10477109](https://news.ycombinator.com/item?id=10477109)

</comment></comment></comment></comment><comment><USER22> This works too, at least on the site because the robots don't get too far apart:

        left
        left
        left
        left
        left
        left
        left
        r: right
        skipNext
        goto r

<comment><USER21> With your code they end up right where they started? I see 'random locations' in the text above but the location is always the same here. Adding a couple of 'left's works, though, and is the same as my solution.

Edit: randomize button. I see. It also makes this no solution because they could start anywhere.

<comment><USER23> I think they meant:

        left x 6 # but that should probably be 7? as maxRange in the randomize routine is 8.
        scan: skipNext
        right
        goto scan

Which works but only because the unit test is deficient!

That's as far as I got in 5 mins [but I'm not a coder].

</comment></comment></comment><comment><USER24> Wondering why all the developers are left leaning! ;) Here is a right leaning solution -

      walk:right
         skipNext
         goto walk
      run:right
        goto run

<comment><USER25> I have an answer for that: The example program is left leaning and we iterated from it to the actual solution. :)

</comment></comment><comment><USER26> How will you code it if "goto" took zero cpu-cycle ?

Clue - You will need to use both "left" and "right" movement.

<comment><USER27> Yeah, I'm assuming the interviewers either tell you how many cycles each instruction takes, or expect you to ask them. I had to tinker a bit to figure out which instructions cost a cycle and which didn't. Would certainly be much harder under pressure and without a cycle accurate simulator.

</comment></comment><comment><USER28> i did this in about 30 seconds because this remedial challenge was no match for my highly superior brain. jk it took me and 2 other people about 30 minutes to complete this using efficient code. much fun 10/10 would recommend too a friend. if i had any

</comment><comment><USER29> # Useless example program start: left skipNext goto start goto hell

hell:left left goto hell

</comment><comment><USER17> I wonder what you need to do to make the language and the associated VM Turing Complete.

<comment><USER30> Add an instruction that drops or picks up a parachute(i. e. it flips the state).

Then you should get something that is equivalent to boolfuck (1-bit brainfuck) which is Turing complete.

</comment></comment><comment><USER31> Great puzzle, took me some time to get it.</comment>


Adults Spend 8 Hours a Day in Front of a Screen, Study Finds - <AUTHOR> http://www.nytimes.com/2009/03/27/business/media/27adco.html

<comment><USER2> Only 8?

<comment><USER3> For a typical adult, it's high enough. In fact, it's one full working day. HN members and techies are a different story.

</comment></comment><comment><USER4> According to rescuetime, thats about the amount of time I spend a day in textmate. Then there's also time spend in Eclipse, flex builder..etc and of couse HN.

I have no life...

</comment><comment><USER5> Some days, I don't spend 8 hours _not_ in front of a screen... go figure.

</comment><comment><USER6> I spend probably close to 12 hours a day in front of computer. My mom, about zero. Where's the link to the study? Where's the standard deviation?

</comment><comment><USER7> I spend more. 8 seems a minimum. Now, can they just perfect the Retinal projection stuff?

<comment><USER8> Not being able to turn away or and look out of the window! Sounds even worse.

</comment></comment><comment><USER9> what about a start-up that aims to make those 8 hours more comfortable and productive.</comment>


The Truth About the Drug Companies - <AUTHOR> http://www.nybooks.com/articles/17244

<comment><USER2> "Of the seventy-eight drugs approved by the FDA in 2002, only seventeen contained new active ingredients, and only seven of these were classified by the FDA as improvements over older drugs. The other seventy-one drugs approved that year were variations of old drugs or deemed no better than drugs already on the market. In other words, they were me-too drugs. Seven of seventy-eight is not much of a yield. Furthermore, of those seven, not one came from a major US drug company."

This is an interesting observation if the claim by drug companies is that they innovate, while the claim by critics of the companies is that they don't innovate much. The source cited in the submitted article appears to be the most reliable source for such an observation. I wonder what a longer time series would look like: was 2002 chosen because it is the most recently reported year (could it be, in 2009?) or because it was an unusual year? What would a longer span of years look like in this regard?</comment>


NYC sets $17 an hour minimum wage for Uber and Lyft drivers - <AUTHOR> https://www.cbsnews.com/news/nyc-sets-17-an-hour-minimum-wage-for-uber-and-lyft-ride-hail-drivers/ <comment><USER2> How does an hourly minimum wage work given that Uber and Lyft drivers get paid for doing trips, not for idling in their car waiting for rides? Does this minimum wage only apply to times when I have a fare? That would mean the real hourly minimum wage is less because I wouldn't have a fare 100% of the time. If it applies when I don't have a fare too, how much idle time between fares can I have before the minimum wage stops applying? What happens if I'm driving for both Uber and Lyft, and alternate services on each ride, so my "fare density" on each service is no more than 50% of each hour?

Edit: Why am I being downvoted? These are legitimate questions. I'm not criticizing the minimum wage. I'm genuinely curious as to how it actually works.

<comment><USER3> It's a fair question. IMHO it absolutely should include if you're sitting idle. One of the biggest scams these companies are taking part in wrt labeling their workers as "contractors" is you have to work the worst hours to hit metrics. You can't just go drive 40 hours a week when you want - it has to fall on busy times and nights. If this doesn't make them responsible for all the hours they want people out and available, it doesn't have much teeth.

<comment><USER2> If a driver accepts every ride the service offers them, then I agree they should be paid for the idle time in between being offered rides. If they don't accept every ride offered them (as is their right, as independent contractors), how do you determine how much idleness is ok? Saying "if you reject a single ride you lose your minimum wage" doesn't seem ok, because that punishes them for exercising their right as an independent contractor.

This also still runs into the question of what happens if the driver is driving for multiple services? They may have relatively little idle time, but each independent service sees the driver as having a lot of idle time (any time they're on a competitor's job).

<comment><USER4> I would put it this way: They must be paid for all idle time. If they're on the app they're considered to be working. It's like the person working at the McDonalds drive through - if no one pulls up to the drive through that doesn't mean the person shouldn't be paid. It's then down to Uber or Lyft or whoever to determine whether they want to engage a contractor whose previous behaviour includes spending long periods not accepting jobs.

<comment><USER2> The person at a McDonald's drive-thru is an actual employee though, they're paid for all their time on the job, and they can't just refuse to serve a given customer. A Lyft or Uber driver is a contractor, and is legally allowed to refuse any individual ride.

If they couldn't refuse rides, then saying "pay them for all the time they're in the app" makes sense, but that's not the case. Since they can refuse rides, it doesn't make sense to say "you must pay them for all the time they're in the app", especially since a single driver can be active on both Uber and Lyft at the same time.

One could argue that drivers should be turned into part-time or full-time employees, at which point yes they'd have to be paid for their idle time, but that's a different argument.

</comment></comment></comment></comment></comment><comment><USER5> This is just the process of NYC trying to drive Uber and Lyft out of the city and to force them to be expensive and bad like the taxis that existed before them.

After a few years when they get bad enough they can start to blame the poor quality on "private corporations" and people will eat it up. Then they'll outright ban them and they'll be back to taxis.

<comment><USER6> Put me in the screencap, because this is how NYC rolls.

If people consume it privately, regulate it until it's so unusable that the government version is adopted.

</comment></comment><comment><USER7> Why are these industries separate from the standard minimum wage? Honest question. Is it to include the cost of business?

<comment><USER8> I would assume it's exactly that. A passage from the article below:

"The equivalent wage for drivers, who are considered independent contractors and have to cover their own expenses, is $17.22."

It's up from 15$ baseline so I assume 2.22$/hr is what they benchmark fuel/maintenance to cost.

<comment><USER9> I've seen some other sources mention that the new minimum wage is actually "$27.86 an hour, which translates to $17.22 after expenses". [1]

What they consider "expenses" there isn't specified, but that would put their estimate for driver costs at over $10/hour. Which actually seems more reasonable, given the cost of fuel.

[1]: [https://www.theverge.com/2018/12/4/18125818/uber-lyft- ride-s...](https://www.theverge.com/2018/12/4/18125818/uber-lyft-ride-share- new-york-wage-increase-minimum)

</comment></comment></comment><comment><USER10> Bureaucracy to solve a problem created by bureaucracy in the first place.

They should really have let the free market play its hand here. To take the pressure off medallion owners, add some 0.5% tax per ride and use the collections to buy out some medallions.

Setting a min wage is the wrong way to go about it. The whole point of progress is to make things cheaper.

<comment><USER11> Why should medallion owners be protected for their investment decisions? I thought that was the gripe about the banks to (albeit - the banks are far less deserving of sympathy).

<comment><USER12> The medallion system was a bargain: we protect you from competition, and you agree to price controls and other regulations. Taxis can't do surge pricing, for example, because the rate regulations don't allow it. So if the government is going to back out of its end of the bargain, it's not unreasonable to compensate medallion owners.

<comment><USER11> Fair.</comment></comment></comment></comment>


The PhD Octopus - <AUTHOR> http://philip.greenspun.com/careers/octopus.html

<comment><USER2> Excellent submission. I found his use of the phrase "the Mandarin disease" really intriguing, and it turns out so did other people; if you Google the phrase there is a lot of really good commentary on this piece.

<comment><USER3> oddly enough, same here. I wondered about writing papers on metaphysics...then I saw the article was dated 1903.

</comment></comment><comment><USER4> Any guess as to who the brilliant student was (whose published thesis was a "most brilliant contribution to metaphysics")?</comment>


The usefulness of dread - <AUTHOR> https://aeon.co/essays/dread-accompanies-me-through-life-but-it-is-not-without-consolation <comment><USER2> Anxieties, pain, boredom, and fear are all useful.

<comment><USER3> Useful to an extent.</comment></comment>