How To Build A Maze - <AUTHOR> http://mazeworks.com/mazegen/mazetut/index.htm <comment><USER2> In 1980, while working at Texas Instruments, I wrote a program to draw mazes one night. My first version started out quite simple and elegant, but the mazes it printed (on our departments line printer) weren't very difficult to solve. The next night I improved the mazes produced by the program, adding tweaks here and there in the code to make the mazes harder to solve. I added long winding dead ends, corridors with loops and so forth. The mazes caught on and soon many cubicles had the three page mazes with hand drawn solutions as decoration. Marketing folks headed to a trade show saw these mazes and wanted the program to run on a system on the trade show floor so that personalized mazes could be handed out as trade show swag.

Unfortunately, version two of program wasn't very pretty with all the little hacks and tweaks, but it did make fun mazes. Six or nine months later I got a call from someone wanting help with a Pascal program (I was one of the Pascal experts in the company at the time so I would get calls like this). As they described the program on the phone, I recognized it as my maze program. They said they got it off of the distribution tape for the TI Pascal compiler (I had programmed the program in Pascal). I was mortified that someone had made the ugly program a sample program for a TI product but at least it didn't have my name on it!

</comment><comment><USER3> If you want to create a maze on paper as a rainy day kind of activity, the process is basically the same but manual:

1\. Mark a start point and an end point, and draw the solution using yellow marker. A moderately windy path will do fine. Don't overdo it, or you'll actually make it too easy.

2\. Using the same yellow marker, draw branching paths off from the solution path, and make branches off the branches until the maze area is too cramped to draw more.

3\. Draw walls with black marker between and around the yellow paths.

4\. Amaze your friends.

</comment><comment><USER4> I actually had some fun reading about maze algorithms some time ago. Here are two good links:

[http://www.astrolog.org/labyrnth/algrithm.htm](http://www.astrolog.org/labyrnth/algrithm.htm)

[http://weblog.jamisbuck.org/2011/2/7/maze-generation- algorit...](http://weblog.jamisbuck.org/2011/2/7/maze-generation-algorithm- recap)

The first link is interesting because it describes some maze toponomy (types and characteristics of mazes) The second has a lot of algorithm implementations with nice demos.

Fun stuff :)

</comment><comment><USER5> My favorite presentation ever, by Jamie Buck at RubyConf2011, is a great interactive survey of maze generation algorithms -- _" Algorithm" is Not a Four-Letter Word_:

[http://www.jamisbuck.org/presentations/rubyconf2011/](http://www.jamisbuck.org/presentations/rubyconf2011/)

<comment><USER6> Found the youtube video where he's presenting this:

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

Good stuff.

<comment><USER7> That presentation was recorded by Confreaks [1] who let you download the video (and audio!) at different resolutions.

The Ruby community is really well-served by Confreaks [2] - they record and provide videos from many different Ruby conferences and have (over the years) expanded their remit to include Javascript, Scala and more.

[1] [http://confreaks.com/videos/662-rubyconf2011-algorithms- is-n...](http://confreaks.com/videos/662-rubyconf2011-algorithms-is-not-a- four-letter-word)

[2] [http://confreaks.com/events](http://confreaks.com/events)

</comment></comment></comment><comment><USER8> A one-liner maze builder for the C64:

        10 PRINT CHR$(205.5+RND(1)); : GOTO 10

[http://10print.org/](http://10print.org/)

[http://retroplay.co/c64/](http://retroplay.co/c64/) (click the play button for a C64 emulator)

<comment><USER9> I used to type an equivalent of this into C64s in stores. I even had a few of these printed out. It does tend to have a lot of short loops but sometimes you get an amazingly complex path for such a simple method.

</comment></comment><comment><USER10> Jamis Buck has a fantastic series of blog posts about maze generation[1]. It looks like he's no longer updating the blog, but all of the entries are still up. Start at the bottom and work up.

[1] [http://weblog.jamisbuck.org/under-the- hood](http://weblog.jamisbuck.org/under-the-hood)

</comment><comment><USER11> Something interesting about this type of maze is that you can use a flood-fill algorithm on the walls to find a solution. This is because there's exactly one path between the start and finish, and that path divides the the maze into two parts.

There are some examples at the bottom of this page: [http://www.brian- gordon.name/portfolio/maze.html](http://www.brian- gordon.name/portfolio/maze.html)

</comment><comment><USER12> There are lots of different ways to build mazes [1]. My favorite is Prim's Algorithm, which "grows" a maze.

[1] [http://en.wikipedia.org/wiki/Maze_generation_algorithm](http://en.wikipedia.org/wiki/Maze_generation_algorithm)

<comment><USER13> A few weeks ago I was fooling around implementing algorithms from that page and Prim's Algorithm looked really cool, so I implemented a version with randomized colors on my homepage: [http://jeff.is/](http://jeff.is/)

</comment></comment><comment><USER14> I always recall this one from 1981 Compute Magazine

[https://archive.org/stream/1981-12-compute- magazine/Compute_...](https://archive.org/stream/1981-12-compute- magazine/Compute_Issue_019_1981_Dec#page/n55/mode/2up)

No stack, just generated the mazed directly in screen memory.

</comment><comment><USER15> One cool way to make a maze is how the old Windows OpenGL maze screensaver did it, starting with every square having full walls, starting somewhere, and making sure every room has at least one broken wall and they're all connected, traversing it. I forget how exactly it picked the end point. I used that when I wrote a Javascript game about that maze but it was hosted on nyhacker and it's gone now. Might still have it around somewhere on a hard drive though.

</comment><comment><USER16> If you want to see one of these working and in action you can check out one of our demos at [https://www.algorithmia.com/demo/pathplan](https://www.algorithmia.com/demo/pathplan)

</comment><comment><USER17> I don't have time to read all the links in this thread but I used to draw mazes all the time in school. My approach was to start with an "in" tube and start branching it, so long as I kept one branch open I could split and recombine all the others and know that I still had a valid maze. After I had filled up most of the page I would stop and declare the end position. It might not be clear from my description but I kept adding paths to the maze by doubling back on what was already there and building it out so it looked like a brain. The main point is that I kept one path open, never closing all my paths in a dead end. That way I knew there was a solution but since I did them so fast I wouldn't know the solution myself.

</comment><comment><USER18> I implemented this in JS some time ago to get into JS. I visualized the carving of the maze and still think it's pretty cool to look at it.

Here's the link: [https://googledrive.com/host/0Bzr7EVRN_St0UkhIdUdrQ3o4T0E/in...](https://googledrive.com/host/0Bzr7EVRN_St0UkhIdUdrQ3o4T0E/index.html) (might load slowly in the beginning, give it a bit of time)

Source: [https://github.com/arya-s/A1/blob/master/js/A1Maze.js](https://github.com/arya-s/A1/blob/master/js/A1Maze.js)

</comment><comment><USER19> Looks amazing similar to my sophomore data struct project: [http://ezekiel.vancouver.wsu.edu/~cs223/projects/mazegen/maz...](http://ezekiel.vancouver.wsu.edu/~cs223/projects/mazegen/mazegen.pdf)

</comment><comment><USER20> Mazes are certainly fun. Here's a javascript maze solver I wrote a while back, including a REST url for building your own maze. [http://www.primaryobjects.com/maze](http://www.primaryobjects.com/maze)

</comment><comment><USER21> My favorite way to generate a maze (imperfect, but fun): [http://www.conwaylife.com/wiki/Maze](http://www.conwaylife.com/wiki/Maze)

quickstart: [https://github.com/thearn/game-of- life/blob/master/rule_stri...](https://github.com/thearn/game-of- life/blob/master/rule_string.py)

</comment><comment><USER22> If you want to play around with a maze then there are examples in many languages at Rosetta Code, the python one is nice [http://rosettacode.org/wiki/Maze_generation#Python](http://rosettacode.org/wiki/Maze_generation#Python)

</comment><comment><USER23> Disjoint sets.

1) Each cell in the maze is a set. 2) Randomize walls. Check if wall to be removed are already in the same set. Merge the set if wall is removed. 3) Repeat until entire maze is in one set.

DFS seems a bit odd for generation. For generating a solution, it would be what I would do.

<comment><USER24> I'm told DFS tends to produce easier mazes in the sense that after you've made a bit of progress, false paths typically end more and more quickly.

</comment></comment><comment><USER25> Also of note, Eller's Algorithm for mazes:

[http://weblog.jamisbuck.org/2010/12/29/maze-generation- eller...](http://weblog.jamisbuck.org/2010/12/29/maze-generation-eller-s- algorithm)</comment>


Intel heavy support to LibreOffice. Is Microsoft threatened? - <AUTHOR> http://blog.documentfoundation.org/2012/02/23/the-document-foundation-announces-libreoffice-for-windows-from-suse-is-now-available-in-intel-appupsm-center/ <comment><USER2> In the short term, until enhancements like 38262 Outline view (née 3959 under OO) are taken seriously I very much doubt that office's core market of document creators will be threatened by LibreOffice.

For casual/light _consumers_ of office documents, however, I think that Libre/Open office has very much arrived. I'm starting to see it in the default-install on my customers' machines.

In the longer term perhaps that will prove to be the thin end of the wedge.

</comment><comment><USER3> I suspect by the time LibreOffice threatens Microsoft, everyone will have moved to Google Docs, or a similar service provided by other companies. I still don't know anyone who uses LibreOffice who isn't a geek.

<comment><USER4> The cloud "hipness" seems to be already fading in some circles, due to privacy and concerns about who owns the data. Non-geeks creeped out about ads following them around based on what they type in a document, or their data being accessed by people that guess their password.

And remember that thin client/thick client has always been a cycle. A linear prediction toward everyone using services such as Google Docs is probably wrong.

Also, open source software for non-geeks seems to be on the rise as its usability has improved surprisingly in the last 5 years. I wouldn't say it's a direct threat for Microsoft though as their important customers are big enterprises...

<comment><USER5> It's not about being hip. For small businesses with a few branches, Google Docs and other cloud-based services like Trello are god-send. Even though we have Microsoft Office, cloud-based collaborative and real-time update features are the most important criteria. We decided to use Google Docs instead of MS Office for more and more documents over time as their feature set matures and wireless infrastructure becomes widespread.

<comment><USER4> "hip" was probably the wrong word. It's more like "having the temporary advantage". I expect desktop office programs will also support real-time collaboration in the near future. It's indeed an incredibly useful feature, so there is no reason why it would remain limited to third-party hosted web programs.

(and desktop programs could implement security features such as encryption, and/or use peer-to-peer protocols, preventing third-party privacy issues)

</comment></comment></comment></comment><comment><USER6> After 10+ years of seeing such headlines, I'm growing tired of "Microsoft threatened" kind of stuff. It's not Intel's AppUp store including LibreOffice that will bring MS in the problems....

</comment><comment><USER7> Microsoft is threatened. Selling Office (and Windows) licenses is the backbone of Microsoft and that's what's financing all the other adventures. Large companies have to buy Office licenses for every workstation. Even with large customer discount they still pay millions on license fees. With LibreOffice now being independent of a large company it becomes a viable alternative for those large corporations. It's much cheaper to hire a LibreOffice developer or get a company like SuSE for contract work on it to do all the required customizations than buying MSOffice licenses.

People complain a lot about the GUI of LibreOffice. But in fact it can be an advantage because it is much closer to Office 2003 than the new Office versions. And it seems that Office 2003 is still the de-facto standard in a lot of corporations. So moving to LibreOffice might in fact require less training than new versions of Microsoft Office.

There are other alternatives like Google Docs etc.

Therefore it is a threat to Microsoft. Will LibreOffice/Google Docs etc. kill MSOffice in the next Years/Month/Hours? Of course not. But it will have an impact on Office sales and MS would be stupid not to consider it a threat.

And of course there are still some technical issues. E.g. a missing alternative to MS Exchange. I know that there are some commercial open source alternatives. But there is not the one true alternative on the horizon. Another problem of course is backward compatibility, SharePoint, etc. But all of that can be fixed in the long run and will be with more support from companies like Intel.

<comment><USER8> Its not just things like the GUI, its interoperability between MS formats, common "advanced" features like track changes, the lack of enterprise support, and of course the political will for organizations to switch away from the de facto standard to something a little hairier for the sake of saving $300 per employee, which is peanuts in all the places I've worked at.

When people discuss Windows or Office, we often dismiss the natural monopoly aspect of these products. There's a real level of momentum here because people don't want to bothered with things rendering funny or not having the same feature-set as their colleagues and clients. Every IT guy knows this because half the helpdesk tickets are "How can I open this .pages thing?" "They sent us the powerpoints but all the audio files are missing exentions!" etc thats common with basic OSX to Windows office issues, let alone a entirely different office suite. Sure hackers and computer nerds can do this stuff with ease, but remember, offices are all about the lowest common denominator.

OO and LO are nice for basic tasks and when interoperability isn't very important. Once you enter the realm of business, suddenly track changes needs to work and images not being aligned properly is suddenly a big deal.

LO and OO are almost identical products. OO has been at the stage its at now for 5 years. If it hasn't hurt Office by now it probably never will. I suspect OO is yet another "year of the linux desktop" that always 2 or 3 years away.

/ITguy

<comment><USER9> > offices are all about the lowest common denominator.

This is so true. Office IT is driven around 96% case of their users... the bottom 96% I believe. Power users are not the segment office IT cares about (or likes caring about IME). I wrote to the hg mailing list recently about a particular feature set, and I want to snip a certain statement I made, which is generalizable out to other tools besides hg.

""" Do note that any time someone has to consciously do something, e.g., hg push -B, pull -B, a large segment of users will _not_ do that, even though (1) man pages say to, (2) their boss says to, (3), the program itself suggests it - in red letters, (4) training materials say to. This means that hg bookmarks will not work as a workflow for these users out of the box, because errors will constantly come up. """

</comment></comment></comment><comment><USER10> Yes they are. But only from new businesses looking to cut costs. In older businesses, Office is entrenched and there's no getting away from it.

<comment><USER11> This. It's not even older businesses--Office is THE standard in so many offices around the U.S. Talk to the IT department in a company that has more than 50 employees (and where processes can be document-heavy)--asking employees to switch to a new platform would be a massive undertaking. Folks that barely understand how to surf the web can compose documents in Word or fiddle with numbers in Excel.

</comment></comment><comment><USER12> Nah, Microsoft shouldn't feel threatened. It's not like a hardware company (like IBM) is building an IDE (like Eclipse). Oh wait...

</comment><comment><USER13> Is LibreOffice still desktop based?

Edit: looks like there's a web version coming out, based on the web version of GTK: [http://www.omgubuntu.co.uk/2011/10/libreoffice-coming-to- the...](http://www.omgubuntu.co.uk/2011/10/libreoffice-coming-to-the-web- android-and-ios/)

<comment><USER14> So is its competitor. Do you know of any _plans_ by the maintainers to do away with the desktop version of either one?

</comment></comment><comment><USER15> As with almost all headlines with a question mark the answer is "No." I've tried to get used to Open/LibreOffice but it was unbearable every time. I no longer try. Luckily I don't need to deal with office documents much, so iWorks/Google docs is enough for me.

</comment><comment><USER16> The keyword (for some users and the enterprise) is Outlook (part of MS Office). I don't think LibreOffice will be a threat to Microsoft, but sure is nice to have alternatives.

</comment><comment><AUTHOR> 1) Add LibreOffice to its AppUp store. 2) Contributes to the code. 3) Financial support to The Document Foundation.

</comment><comment><USER17> As for all news title containing a question, the answer is "no".

</comment><comment><USER18> I'm a little confused as to the exact involvement of SUSE. Is SUSE just acting as some sort of official steward for LibreOffice-in-AppUp? Is there any particular reason TDF couldn't take on that role?

<comment><AUTHOR> SUSE has made optimizations in the compilation, it is why their version was chosen for AppUp.

<comment><USER18> That may sort-of answer my question, but it presents another obvious one: Why haven't SUSE's optimizations been merged into mainline LibreOffice?</comment></comment></comment>


Stock Futures Hit Limit Down as Market Waits for Senate Aid Package - <AUTHOR> https://www.nasdaq.com/articles/stock-futures-hit-limit-down-as-market-waits-for-senate-aid-package-2020-03-22 <comment><USER2> As a small business owner, I don't know what democrats are thinking. If you let businesses and companies fail because they don't want to bailout companies, all their individual social policies and $1,000 checks won't matter one bit. Meanwhile they are tanking the stock market and people's retirement, pensions, and savings.

<comment><USER3> As a small business owner you are probably going to have to take loans to get you through the next 6-months. If economic activity doesn't come back whatever you borrowed against is going to be seized by the bank. So most likely we see foreclosures. I hate being bearish but Friday's close was ridiculous and shows we have room for a downside move in the markets. It really appears that there is nothing the government can do right now.

I hope I am wrong but I am switching to buying puts this week.

<comment><USER2> Also thinking of buying some downside $SPY PUT protection. How far out in terms of expiration are you thinking?

<comment><USER3> I'm going to get $LVS if it drops under $40 and $DIS below $84 for Apr 17 near the money.

</comment></comment></comment></comment><comment><USER4> Echoes of 2008:

> The fate of the government's $700 billion financial bailout plan was thrown > into doubt Monday as the House rejected the controversial measure.

>...

> Stock markets reacted violently. Investors who had been counting on the > rescue plan's passage sent the Dow Jones industrial average down well over > 700 points. The stock gauge closed 778 points lower - nearly 7%.

[https://money.cnn.com/2008/09/29/news/economy/bailout/](https://money.cnn.com/2008/09/29/news/economy/bailout/)

That bailout passed with flying colors on the second vote.

</comment><comment><USER5> Is there a place that shows the discrepancy between the parties?</comment>


Yubikey guide for Git Signing, SSH Auth, U2F 2FA, and 1Password (2017) - <AUTHOR> http://www.engineerbetter.com/blog/yubikey-all-the-things/ <comment><USER2> (Title needs the year since the article is from 2017.)

For keeping SSH keys, the PIV module seems a bit simpler than GPG. I just went through the process myself.[1]

They should also mention FIDO U2F, which already works well with Google, AWS and Github among others. Implementing it for your own site also seems doable.

1: [https://blog.snapdragon.cc/2019/04/27/using-a-yubikey-to- sec...](https://blog.snapdragon.cc/2019/04/27/using-a-yubikey-to-secure-ssh- on-macos/)

<comment><USER3> Agreed - in particular because PIV doesn't prevent other apps subsequently using the device as gpg-agent does (necessitating unplugging and replacing it in the USB port).

On the flip side, with PIV there's no way I've seen to have it allow access for a short period of time (eg the way gpg can cache the pin for a set number of seconds) instead of per request which can get a bit annoying if you are invoking ssh repeatedly (which I seem to do a fair bit).

Would also reference the excellent yubioath tool for adding TOTP passwords on sites which don't support FIDO/U2F - it's very very easy to use and if you have an Android phone and an NFC enabled yubikey you can use there too.

[https://developers.yubico.com/yubioath- desktop/](https://developers.yubico.com/yubioath-desktop/)

<comment><USER4> You can configure "\--touch-policy=cached" when importing/generating a private key using the cli PIV management utility which will cache touches for 10 seconds Not sure why it's not exposed in the GUI though

[https://developers.yubico.com/yubico-piv- tool/Manuals/yubico...](https://developers.yubico.com/yubico-piv- tool/Manuals/yubico-piv-tool.1.html)

</comment></comment></comment><comment><USER5> I wish Yubikeys supported hardware AES encryption _on the device_ , and a hardware entropy source (vibration, rf, probably couldn't fit atomic-decay- mesurement in a usb key, but something).

My personal tinfoil headwear has me believing that AES on any of the Big-2 CPU's is compromised, probably via key logging deep in the bowels of the die. And the RNG could have a similar backdoor.

<comment><USER6> _> hardware AES encryption on the device

> AES on any of the Big-2 CPU's is compromised_

In that case, which CPU could the Yubikey use?

<comment><USER5> FPGA or stock embedded CPU. I didn't mean literally _any_ Big-2 CPU, I was thinking of desktop CPU's when I wrote that. I doubt the 8051's that you can buy by the spindle from electronics suppliers are backdoored, though its technically possible.

<comment><USER7> 8051s also seem pretty under-powered for a task like that.

One thing with encryption on a USB-connected security dongle is that your scp / rsync / git pull invocation is going to go through it, and _through its crypto engine_. To make it not painfully slow, the crypto engine has to be pretty fast. It's likely not very cheap, either using a (fast) general purpose CPU core, or using custom / specialized circuitry.

Paying extra for high security at high speed may make complete sense in some cases. For a cheap mass-market product, it's less likely.

</comment></comment></comment></comment><comment><USER8> I've got two Yubikeys already (a Neo, and an older barebones Yubikey that I got as a gift for getting an Ars Technica subscription), but so far Gmail is the only account of mine that is protected by it.

One repeated problem I've run into so far is that Firefox can read the Yubikey when it's inserted but it can't _add_ the Yubikey as a new device yet. I have to pull up Chrome/Chromium to do so. After my most recent laptop reformat I vowed never to install Chromium again, even temporarily, so, out of luck until Mozilla gets that fixed, I suppose.

<comment><USER9> If I understand correctly the problem you're seeing it's not a Mozilla bug

Although Google's site says "Your current browser doesn't support adding security keys" what they mean is "We don't care about any browsers except Chrome, it works in Chrome, just get Chrome". They don't implement the actual standard, even though they helped write it, because after all it works in Chrome™ as it is.

On sites that are built by somebody who actually cares about more than one browser, Firefox works just fine.

<comment><USER8> I wouldn't doubt that, although I ran into the same problem trying to register my Yubikey on GitHub as well. Could well be another "Built to Chrome spec, not the standard spec," I suppose.

<comment><USER9> Ah, for sites using U2F rather than WebAuthn you may (depending on Firefox version) need to explicitly tell Firefox to emulate the old U2F APIs.

[https://support.yubico.com/support/solutions/articles/150000...](https://support.yubico.com/support/solutions/articles/15000017511-enabling-u2f-support- in-mozilla-firefox)

[https://blog.mozilla.org/security/2019/04/04/shipping- fido-u...](https://blog.mozilla.org/security/2019/04/04/shipping-fido-u2f-api- support-in-firefox/)

My GitHub has two Security Keys registered via Firefox this way.

</comment></comment></comment></comment><comment><USER10> Apple: Please support U2F, because "Privacy is a basic human right" [per your EULA], which requires security.

<comment><USER11> [https://appleinsider.com/articles/18/12/05/apple-testing- usb...](https://appleinsider.com/articles/18/12/05/apple-testing-usb-security- key-support-for-safari)

</comment></comment><comment><USER12> Shameless plug for a library that I wrote (still developing) for storing AWS API keys on a Yubikey (and signing API requests from the Yubikey): [https://github.com/pyauth/exile](https://github.com/pyauth/exile)

</comment><comment><USER13> Has anyone actually seen personal SSH or Git signing keys get stolen and used in attacks (not counting servers sitting on the internet with ssh open) ? It seems like the only really useful purpose for these tokens is as an MFA token, because passwords just suck. At the same time, it seems like long random bits that can't be remembered by humans just aren't so vulnerable that we need to carry around something to unlock them.

Maybe the issue is just that it's so easy to attack password-protected systems that nobody even needs to attack keys.

<comment><USER14> I personally don't see the point in them at all, in implementation and reality you get basically zero use out of the things.

Services that support them either have them locked down so hard that if you lose a single Yubikey (there's often no backup second key option), you're very screwed. Others go the other option, and have too easy to reset systems, SMS fallbacks, or other total bypasses of the security tokens.

For SSH and GPG, authentication keys are generally the least of your concern. The content you're controlling are much more valuable than the authentication itself. Can an attacker just wait until you SSH somewhere, and leverage that access? Can they wait until you'd press the button for another benign purpose and use that authentication in a malicious way? The answer is almost always yes, which reduces the value of these sort of devices substantially. They don't protect against local compromise, in which case a keyfile sitting on your local host is just as secure and a lot more convenient.

<comment><USER13> Well their main use is to mitigate remote compromise. But I suppose if for some reason someone compromises a private key _remotely_ (???), they don't have your physical 2nd key to complete auth. Or if you want encryption at rest with something stronger than a passphrase. For weird cases like "disk backup was compromised" it also helps, because most people don't encrypt backups at the client. But in general, actual protection seems vanishingly small past remote attacks.

So I think in general private keys aren't improved with a token, since a compromised private key is supposed to be a local compromise.

<comment><USER14> I don't really see a situation in which someone has local file read access on your machine, but doesn't otherwise have you completely owned.

<comment><USER15> A regular keylogger won't no longer work with a hardware token for example. Yes, having your PC compromised is bad but it would be even worse if the keys can be stolen and used elsewhere, it just rises the bar significantly for getting persistent access (re-establishment without the token is really hard) in my opinion.

</comment></comment></comment></comment></comment><comment><USER16> I like the added security of yubikeys, I use it for Google account and Facebook. Sadly it won't easily work everywhere, I seem to always have issues with my smartphone (missing adapter or rfid not working well), but my biggest pain is it doesn't work on PS4, my youtube account always gets unlinked randomly, than I need to go my computer, disable 2FA, sign-in on the ps4, and reenable 2FA.

I like the idea of SSH'ing with it, ill give that a shot.

<comment><USER17> Yubikey 5 supports NFC for mobile, might work for your use case (smartphone challenges).

<comment><USER3> Indeed, though for SSH only on Android, not iOS, and only with GPG keys not PIV. ConnectBot and OpenKeychain are the apps you need to do this.

Also on Android (but again not on iOS), Chrome (but sadly not Firefox as far as I know yet) can use the google authenticator app (again sadly I think no alternatives to this yet) to speak FIDO with an NFC yubikey.

</comment></comment></comment><comment><USER18> Storing your 1Password Master Password on a yubikey seems like a really bad idea for most threat models. This means that anybody in physical possession of the Yubikey can immediately and permanently steal your master password. Additionally, for shared computers, anyone who can run code on that system can log static creds, the same as if the user typed it.

<comment><USER19> You can store your 1Password master password (or any other static password) on your yubikey with a few of the last characters missing. You'll plug the yubikey in, press the button and manually type the missing characters to complete the password. This way if you lose it, however finds it has an incomplete password and no idea where it belongs to.

</comment></comment><comment><USER20> I've been using a Trezor crypto wallet for most of these things; it has password manager features but I haven't switched from LastPass for that yet.

I've even enabled U2F 2FA on my work desktop for log in, and use it as 1FA to unlock the screenlock, and it automatically locks when I unplug it. Very slick. You could do similar with YubiKey.

</comment><comment><USER21> Does anyone use a Yubikey for personal rather than business/employment situations? Would a Yubikey ring make any sense for personal use (for example, you have Yubikey ring that connects via NFC with your device (phone, computer) and is require for auth'ing financial transactions?

<comment><USER22> That is sort of the idea. It's a relatively cheap authenticator that can be bought to provide 2FA for added security for your services. You can integrate it with Gmail, Mac Logins, etc.

<comment><USER21> Yes, I'm interested in general adoption and whether general populous would adopt such a 2nd-auth if presented as a fashion item (i.e. make the authenticator more accessible).

<comment><USER23> In the UK Barclays and NatWest (maybe others) offer a card reader for 2FA for banking transactions, I assume based on something like HOTP.

</comment></comment></comment></comment><comment><AUTHOR> It's worth pointing out that AWS does now support U2F, which isn't reflected in the posts.

<comment><USER9> I had this set for my old AWS work account, but unlike a good WebAuthn implementation I'm pretty sure AWS only allowed me to a set a single key.

I tolerated that because a work account administrator can let me back in if I lose the key, but this is very much a second class implementation and I think AWS ought to do better.

<comment><USER24> It's true. You can only set one 2FA factor on an IAM account. As a work around, I ended up making myself two IAM accounts: one tied to primary Yubikey and another to my backup. Certainly not ideal.</comment></comment></comment>


Controlling robots with brainwaves and hand gestures - <AUTHOR> http://news.mit.edu/2018/how-to-control-robots-with-brainwaves-hand-gestures-mit-csail-0620 <comment><USER2> Brain-computer interfaces are futuristic sounding, but you're still pretty limited to 1D or 2D control. I can see why they have fallback to EMG.

Without something invasive like implanted trans-cranial electrodes or non- portable like fMRI, you're never going to get anything past unreliable 1D control with the noise you get from trying to capture highly-attenuated microvolt potentials from the scalp.

I built a brainwave-controlled Pong game using EEG for fun for my university project back in 2012:

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

<comment><USER3> _Without something invasive like implanted trans-cranial electrodes or non- portable like fMRI, you 're never going to get anything past unreliable_

The time resolution of any existing fMRI implementation would be way to low for driving anythin mechanical reliably. The implanted electrodes though are being used already (lookup 'Obama handshake robot') and further researched. Very, very interesting stuff. Also depending on the implantation location one can theoretically get around the problem of EEG where people first have to learn to control the robot by randomly trying some thoughts to see what they do (because EEG just picks up everything): e.g. implant in the higher level motor action planning areas directly (well, if functional in the patient) is a better starting point.

<comment><USER4> The electrodes also have the benefit that you can stimulate the neurones as well potentially creating a full feedback loop.

It would be interesting to see if the brain could adapt to a new input and learn how to interpret it.

Rat experiments seem promising: [http://www.sciencemag.org/news/2015/10/brain- implant-lets-ra...](http://www.sciencemag.org/news/2015/10/brain-implant-lets- rats-see-infrared-light)

<comment><USER5> The delay between inputs of reading every neuron, reading and actually performing a task will be the problem to solve until it opens up totally new and fastest growing sphere for the science.

<comment><USER3> Imo there are more pertinent problems than delay. When the delays are sufficiently small, say < 10mSec between neural signal and initiation of movement of the robot, which is already possible to achieve now, you get something which is really usable already and feels close enough to actually making a decision and moving your own hand for instance.

On the other hand there's longevity of electrodes, making hardware smaller etc. And then, probably biggest thing for now, the software side: developing (possibly self-learning) accurate algorithms for decoding of the signals (both single-neuron spikes + low frequency spectrum of the surrounding area) is just hard. Also because a lot of things about the brain are in essence still rather unknown it's sometimes a bit of programming in the dark.

</comment></comment></comment></comment></comment><comment><USER6> France does that before 8-P [https://www.industrie-techno.com/portraits-de- jeunes-innovat...](https://www.industrie-techno.com/portraits-de-jeunes- innovateurs-elle-controle-des-robots-par-la-pensee.50413)</comment>


Are you going to buy the new macbook pro (2013) and why? - <AUTHOR>

Apple is about to release a new mac-book pro, i myself have been waiting for it . Do you think it will be a good investment if i purchase the new mac-book pro 2013? <comment><USER2> Yes - been over 3 years since last laptop - way over due

<comment><AUTHOR> Great :)</comment></comment>


Microsoft Has It All—Almost (1985) - <AUTHOR> http://www.nytimes.com/1985/09/04/business/microsoft-has-it-all-almost.html <comment><USER2> _> But selling software to consumers is different from selling highly technical operating systems directly to computer companies. To compete against sophisticated marketers like Lotus,_

The really young techies won't remember this since it was over 30 years ago but what Microsoft did during the 1980s in the software space was astounding.

The 1970s Microsoft was originally a "programming languages" company. They sold MS BASIC and MS COBOL.

In the 1980s, they added _productivity apps_ like word processors and spreadsheets (Word and Excel). What's amazing is that they didn't acquire those from a competitor (like the later acquisitions of Spyglass for IE or Vermeer for MS Frontpage). Word & Excel were homegrown at Microsoft and Bill Gates hired Charles Simonyi to lead their development.

They added _operating systems_ like MS-DOS and later MS Windows & Window NT. MS-DOS was an acquisition but Windows NT was homegrown by hiring Dave Cutler.

Nobody else replicated Microsoft's successful diversity in software. That included Lotus, Ashton-Tate, Computer Associates, Adobe, etc.

That's 3 very different areas of software : programming + MS Office + operating systems. All 3 were huge profit machines.

In the 1990s, they continued success with server-side software like SQL Server and MS Exchange.

To give a modern analogy, imagine Jetbrains just selling programming IDEs like IntelliJ and PHPStorm. And then Samsung comes along and says, _" we need an operating system for the millions of smartphones we're going to sell"_ so Jetbrains hires Andy Ruben[1] to write the Android os for Samsung. And then Jetbrains decides that Android also needs a picture sharing app and hires Kevin Systrom[2] to develop Instagram. That absurd combination from _one_ company is what Microsoft did in the 1980s and in that alternate universe, the Jetbrains owners would be multi-billionaires.

Compare that to Google where it's almost 20 years old and its major revenue is still AdWords. Diversifying revenue is not easy.

A comparable (and possibly more astounding diversification) in modern times would be Amazon's origins from selling books & CDs to selling AWS computation resources.

[1] [https://en.wikipedia.org/wiki/Android_(operating_system)#His...](https://en.wikipedia.org/wiki/Android_\(operating_system\)#History)

[2] [https://en.wikipedia.org/wiki/Instagram#History](https://en.wikipedia.org/wiki/Instagram#History)

<comment><USER3> Visual Capitalist has a set of pie charts that show the breakdown of revenue streams for 5 of the top tech giants, including MS, Google, Amazon, etc. that illustrate exactly what you're talking about: [http://www.visualcapitalist.com/chart-5-tech-giants-make- bil...](http://www.visualcapitalist.com/chart-5-tech-giants-make-billions/)

Google is poorly diversified and even Amazon is not as well diversified as one might think.

<comment><USER4> The link is an eye opener. Xbox contributes to 11% of MS revenue, and Window 9%. The world of personal computing has truly changed and Microsoft has really diverse revenue streams.

<comment><USER5> Keep in mind that that is consumer Windows. Active Directory and Exchange run on Windows Server and I'm sure every large business has a fleet of those (or has decided to ditch them in favour of Azure).

I wonder what falls in the "other" bucket. Visual Studio / MSDN come to mind. Perhaps Enterprise Services is split out from Azure & Windows Server. It looks like Dynamics might be reported separately from Office although I'd normally expect it to be grouped with it instead.

</comment></comment></comment></comment><comment><USER6> > But what is spoiling the party is that the company was eclipsed last year as > the largest personal computer software concern by the Lotus Development > Corporation, creator of the highly successful 1-2-3 spreadsheet program. > Lotus's revenues totaled $200 million for the 12 months ended June 30. > Microsoft's revenues came to $140 million in that period.

Between the fact that it was in '85 (long before the days of windows 95/98 and microsoft really "taking over the world"), the revenue total that wouldn't even register as a margin error for today's dominating tech companies, the fact that a deal with IBM meant they had "won it", or that their main competitor is a company so that they utterly destroyed a decade later ... What a blast from the past.

<comment><USER7> That's the thing: good ideas seem unlikely, otherwise everyone would be doing them. IBM certainly didn't expect the DOS deal to be world-changing.

Someone should write a book, "100 Decisive Tech Battles: From Ancient Times to the Present," a tongue in cheek reference to [https://www.amazon.com/100-Decisive-Battles-Ancient- Present/...](https://www.amazon.com/100-Decisive-Battles-Ancient- Present/dp/0195143663)

The book is excellent, and analyzes battles with a clinical detachment not really found in most history texts.

But each battle is _decisive_ : it shaped the world. There are many skirmishes that would be interesting to analyze but out of scope for the book. That's what makes it a fascinating collection.

If we had to think of 100 technology "battles" that reshaped the world, I wonder what they would be? There is so much freedom in the criteria that it's hard to know where to constrain it: Electricity, plumbing, grocery stores, etc have all shaped the world. Many had a "decisive" effect in that it was technology vs technology, and one tech came out the winner.

I think computing alone could fill a book of 100 tech battles, and it would be interesting to try. Which stories were decisive? It would take months to decide, but it would be enjoyable work.

<comment><USER8> I'd put the literal Battle of Crécy up there. An army of commoners being able to murder armored nobles with the aid of the longbow certainly changed the world.

[https://en.m.wikipedia.org/wiki/Battle_of_Cr%C3%A9cy](https://en.m.wikipedia.org/wiki/Battle_of_Cr%C3%A9cy)

<comment><USER9> English eventually lost Hundred's year war so this battle wasn't world changing. But not seeing Battle of Tours 732 or Vienna 1683 was certainly a surprise.

</comment></comment></comment></comment><comment><USER10> It's interesting to see this in the context of their later success, but one bit of trivia stood out:

> Microsoft is now unleashing a barrage of programs, including ... Access, a > communications package for the I.B.M. computer.

This is the 'other' MS Access - the one that predates the database.

<comment><USER11> Has Microsoft been naming things confusingly forever, then? One recalls the Microsoft Surface from 2008 - A big touchsceen table.

</comment></comment><comment><USER12> "Microsoft and its 29-year-old chairman, William H. Gates, clearly want to be No. 1 again."

Really amazing what he had done by 29. As someone older than that, I'm really starting to feel like I'm hitting the "older tier" of tech ages.

<comment><USER13> The majority of tech companies that have acquired significant size, were founded by people in the 30s (or older). Gates is an extreme outlier.

I made a large compilation list of famous founders a while back. You might be surprised at how not particularly young most of them are. I won't repost it here, but here's a link to that thread:

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

<comment><USER14> But four out of the current big five were founded by people in their early/mid-20s (only exception is Bezos who just turned 30 when he founded Amazon).

</comment></comment></comment><comment><USER15> > Microsoft was also hurt by its reputation for bringing products to market > behind schedule and full of ''bugs'' or errors. In a letter in the latest > issue of Macworld magazine, for instance, a reader gripes about finding ''15 > bugs and 7 shortcomings'' in the initial Macintosh version of Microsoft > Word. ''Word is typical untested Microsoft software,'' he said.

Very interesting

</comment><comment><USER13> For reference. Microsoft's growth history:

1980 | $8m sales (40 employees)

1981 | $17m sales

1982 | $24.4m sales (220 employees)

1983 | $55m sales

1984 | $97.4m sales

1985 | $140m sales

1986 | $197m sales

1987 | $345m sales

1988 | $590m sales

1989 | $804m sales

1990 | $1.18b sales | 5,635 employees

1991 | $1.84b sales

1992 | $2.76b sales

1993 | $3.78b sales | $953m profit

1994 | $4.7b sales | $1.1b profit

1995 | $6.1b sales | $1.45b profit

1996 | $8.67b sales | $2.19b profit | 20,561 employees

1997 | $11.4b sales | $3.45b profit

1998 | $14.5b sales | $4.5b profit

1999 | $19.7b sales | $7.78b profit

2000 | $22.9b sales | $9.4b profit

<comment><USER16> It looks better as a graph ;-)

</comment></comment><comment><USER17> I remember the agressiv commercial technics, the troll-like litigations and how easy it was to copy their software (no copy protection) compared to the concurrents.

Before microsoft, software was expensive. Many people were programming their own games or software with the language of their computer (a mix of proprietary basic and assembly).

After, everybody had pirated copies of Win3.1 and Office and were coding excel macros :-(

For me, there was an explosion of creativity between 1983 and 1992 where people were empowered to program. After, programming was for "specialists". I have hated a lot Microsoft at that time.

<comment><USER18> _how easy it was to copy their software (no copy protection) compared to the concurrents._

That's an important point that I forgot about until you mentioned it: I bought Microsoft software _because_ it was easy to copy, or more accurately, lacked copy protection. This was in the days of having to shove the original disk in the drive even if you had it copied to the hard drive. It'd be one thing if floppies were more reliable, but $DEITY help you if that master disk went bad, because Lotus would be...less than helpful. So I rewarded the "good guy" by buying their unprotected software. Hey, if they trust me enough to not copy- protect it, the least I can do is pay for a copy.

And when Windows NT went out, I remember big debate about whether Microsoft could do enterprise software, given that all they'd really done to that point was put out applications and dev tools, and a cute little graphical shell that went on top of their cute little toy operating system.

</comment></comment><comment><USER19> About having it all: [https://www.theonion.com/microsoft-patents-ones- zeroes-18195...](https://www.theonion.com/microsoft-patents-ones- zeroes-1819564663)

</comment><comment><USER20> Bookmarked this to read when I / others doubt me. Very interesting and funny to look back with what we know today.

<comment><USER21> Amazing book that goes up to 1994 or so is Hard Drive: Bill Gates and the Making of the microsoft Empire.

It's writing and editing certainly leave a lot to be desired but from a historical standpoint about Microsoft, it's a fantastic read.

<comment><USER16> Gates by Stephen Manes and Paul Andrews is a much better book. Bigger, better researched, better written, and a lot more accurate.

(Paul Andrews worked for the Seattle Times and Microsoft was his beat. I guess he just had more and better contacts.)

Hard Drive did well because it came out first and filled a big hole in the market. However, Gates was sufficiently better to become a best seller.

</comment></comment></comment><comment><USER22> "Microsoft was also hurt by its reputation for bringing products to market behind schedule and full of ''bugs'' or errors."

I guess some things never change.

<comment><USER16> The number of bugs found reflects the number of users and the range of equipment they are using.

There are probably more bugs in most non-Microsoft applications, it's just that they don't have enough users to find them....

</comment></comment><comment><USER23> Windows ain't done 'til Lotus won't run! Just a little "friendly competition" in the words of 1985 NYT.

<comment><USER10> Lotus did a good job shooting itself in the foot. It's easy to second guess in hindsight, but it always amazed me that they didn't have any Windows story at all for their one major product, Lotus 1-2-3, until 1991 or 92. (And even then it was amazingly buggy.)

(And they did have multiple text-mode PC versions, VMS, Unix, Improv for NeXTStep...)

<comment><USER24> It shouldn't be forgotten though that the original Lotus 1-2-3 was a masterpiece. Fast, easy to use, with a polished UI, a useful help system and tutorial. Almost all PC apps were amateur hour by comparison and that includes pre-Word MS.

<comment><USER21> Word was a joke in the 80s/90s. Everyone used WordPerfect. By the end of the 90s though the MS Office addon had overtaken most places productivity software of choice. Primarily due to companies like Dell, Gateway 2000, AST, HP, Compaq, etc. including Office as an option when you purchased.

I loved WP and 123. Begrudgingly switched to MS Office in 97.

<comment><USER18> _Primarily due to companies like Dell, Gateway 2000, AST, HP, Compaq, etc. including Office as an option when you purchased._

I would posit that it was due to WP screwing the pooch at every turn. They held out until they couldn't on releasing a Windows version, and it was as buggy and unreliable as you would expect from a rushed product designed to check a marketing checkbox. WP also bet on OS/2, and they did it by porting what was already a poor product, so the OS/2 version ended up being a poor, buggy product that had the added bonus (due to an interpretation layer) of being dog slow.

So maybe Microsoft's success can be attributed somewhat to bundling, but much of it can also be laid at the feet of competitors like WP and Lotus.

<comment><USER25> Was there something special about OS/2 that suggested it would be the winner of this war or did WP and Lotus just make the same bad bet at the same time?

<comment><USER18> Remember the state of Microsoft's operating systems in 1992, when OS/2 2.0 was released: DOS, a purchased operating system that was barely worthy of the name, and a graphical shell on top of it. In other words, a house of cards and just as reliable. Cooperative, not pre-emptive, multitasking. 16-bits when 32-bit CPUs were standard. Contrast to OS/2 that had a 32-bit API, pre-emptive multitasking, and a more robust file system, all with the backing of IBM. That might not be a sure bet, but it was a good one. Turns out it wasn't, but it might have looked like it at the time given that it was inarguably technically superior to Windows 3.x and DOS.

As it turned out, IBM refused to effectively market OS/2 and Microsoft was busy cutting bundling deals with manufacturers while releasing their "munchkins" (look it up, it's well documented) on Compuserve and Usenet. And then Windows NT came out, giving Microsoft a much less laughable operating system in their quiver, and that was pretty much it for OS/2.

<comment><USER16> Unfortunately, OS/2 could barely load on the PCs of the day (it started swapping while loading), it had very little software, and cost a ridiculous price (from memory, something around $500).

You had to vape your PC to run it.

By contrast, you could pick up a copy of Windows for $40 and run it on top of DOS without losing your DOS software. If you didn't like it, it hadn't cost you much time or money.

And there was a boom in Windows software with lots of cheap programs to try.

Seriously, how would anyone expect OS/2 to win that battle?

<comment><USER26> Eh, sorry, which Windows version are you on about?

I remember our Pentium 1 75 MHz being shipped with OS/2 Warp. It was dogshit slow (and on top of that, I was an impatient kid). I was used to DOS (which could be fired up from OS/2 but then it didn't work well, and DOS 6.x was known to work better than that version). I was sitting more in DOS 6.x (booted from a floppy) than OS/2 Warp.

Eventually, we bought a Windows 95 pirated copy for about 50 Dutch guilders (not sure how that translates to current currency due to Euro and inflation). It was a low risk deal indeed for the reason you suggested (cheap) however the real deal was expensive and we already paid for an OS, and we had a contact who would press thousands of these (in hindsight, probably related to Twilight CDs etc as both sourced from the infamous TUe network). So we went with that.

We ended up not using it much either because we were used to DOS and didn't find Windows 95 stable. Not that DOS was super stable, it (6.x) was just more stable.

The first Windows version I've ever used which was reasonably stable, was Windows 2000 (yes, I used NT 3.5x and NT 4.x and Windows 2.0 and Windows 3.1). Arguably, it was even more stable than XP which is probably the first version the general consumer used which was reasonably stable.

Now, how much did a copy of Windows 95 cost back in the days? Well, I'd love to read some other sources but the fact we bought a pirated one for 50 Dutch guilders plus the source I found which says Microsoft suggested a retail price of 210 USD suggest a different price than 40 USD for Windows 95 [1]. Which leads me asking which Windows version you're referring to. No offense, btw.

[1] [http://community.seattletimes.nwsource.com/archive/?date=199...](http://community.seattletimes.nwsource.com/archive/?date=19950607&slug=2125167)

<comment><USER16> Sorry, my mistake. I was inadvertently thinking of what Microsoft charged PC manufacturers for pre-installation. The retail copies included extra charges to cover boxes, discs, distribution, the retailer's margin, support, returns etc.

Unfortunately I can't find a list of Windows retail prices, but originally Windows was sold much like an application. That is, it assumed you already had DOS installed.

From what I recall, the official retail was something like $99 and you could pick up a copy for around $80 or so. (Some programs came bundled with a run- time copy of Windows, though you couldn't used that copy with a different application.)

Windows 95 upped the price because Microsoft was charging for both DOS and Windows at the same time. On that basis, something like $200 doesn't sound wrong, and that's around the price Windows has sold at ever since. (Unless, of course, you buy a pre-launch offer.)

Software and hardware prices were generally much higher in the old days, of course.

On stability, I found both NT4 and Windows 2000 to be very stable. With other versions, they were stable if they were correctly set up on decent hardware, you only used Microsoft drivers, you were pretty careful, and you restarted every day.

I could usably run Win98-XP for about week. I would never find out how long I could run NT4 because I was dual-booting it ;-)

Eggs are fragile, but they generally don't break if you handle them carefully. It was much the same with Windows...

<comment><USER26> Thanks for your comment. I don't agree with a lot you wrote, so I'll have to mostly agree to disagree.

You get 2 OS with Windows 9x? Really? Or is it that Windows 9x is just a GUI on top of DOS? At the very least its product tying.

One thing which stood out was how you excused the terrible stability of Windows 9x. For me the fragility of Windows 9x is unacceptable. What's worse is that a lot of people thought this was normal, acceptable behavior for computers. Millions of work hours have been wasted thanks to this instability. Back then Linux desktop had its fair share of issues which were also unacceptable, but instability wasn't one of them.

<comment><USER10> > You get 2 OS with Windows 9x? Really? Or is it that Windows 9x is just a GUI > on top of DOS? At the very least its product tying.

This is an interesting question...

Windows started out (early-mid 1980's) as a graphical layer on top of DOS (Sold separately). To DOS, Windows added memory management, device independent graphics, windowing, multiple processes, and a cooperative multitasking scheme that let the multiple processes run at the same time.

The next 10 years of history (through to Windows 95, 98, and Me) are then largely about Windows taking over more and more functionality from DOS.... but never quite supplanting it. If a Windows 3.1 system launched Windows at the end of DOS's autoexec.bat, Windows 95 did essentially the same thing, but internally and not in a script. (In fact, Andrew Schulman got Windows 95 running as DOS 7.0.)

So the way to view it is that this lineage of Windows is really a hybrid design, with elements of both DOS and Windows.

The Windows NT kernel and OS/2 >=2.0 are both totally different... to the extent they run DOS, they run it as a child process under a native 32-bit OS. (Not 64-bit because x86-64 doesn't support the V86 mode necessary to make virtual DOS machines run.)</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Privately-issued preloaded Drachma cards? - <AUTHOR> http://worthwhile.typepad.com/worthwhile_canadian_initi/2015/07/privately-issued-preloaded-drachma-cards.html

<comment><USER2> Thank you for sharing this great information. [http://www.essayscouncil.com](http://www.essayscouncil.com)</comment>


How to design a CS curriculum for middle/high school? - <AUTHOR>

I want to help my hometown high school develop a CS course, because I want to give something back and as a fun side project. The main challenge I see is delivering the message that CS can be fun, useful, and allow one to build incredible things. I took my first true CS class at Harvard's Summer School when I was in high school, and it was this really fun, mixed up collection of programming, history, cryptography, design, GUIs, algorithms, etc. It was weak in the department of giving me tools to do something myself, but that was probably it because it was the first in a series of courses. However, it equipped me with the interest to actually pursue the subject, and I also believe strongly, especially for CS, in learning how to learn and loving curiosity. I think showing the breadth of CS will both appeal to cynical teenagers and also engender a feeling of unity with the other subjects and teachers. Does anyone have any leads or ideas on some really good curriculum ideas? <comment><USER2> I'd probably just use Zed Shaw's _Learn Python The Hard Way_ as a model: <http://learnpythonthehardway.org/> at least for the programming parts.

 _Ruby For Kids_ is interesting too, but I think it's a little too advanced for an intro course: <http://ruby4kids.com>

I agree that history is important too. Some of the more applied CS can be interesting (graphics) but I wouldn't delve too deeply into the more difficult stuff (crypto, algorithms) if this is just an introductory course for kids.

Every year, I speak to local middle school kids (7th or 8th grade) at their "career day". They are all totally fascinated with what I do, because kids nowadays (yes I know I sound old) live their whole lives online and surrounded by technology.

The school where I visit is really average, some rich kids some poor kids, all kinds of backgrounds. The format of this career day is that each class period somebody will come and talk to the class that is somewhat related to the subject - so I usually end up speaking to a math or computer class. In a class of 25, there are probably one or two kids who already know some limited programming (or have made a website). Almost everybody that age is online (all Facebook, a handful of Twitter and MySpace) and plays console video games. Probably about half have cell phones.

When they ask me questions, it's usually about how to steal their friends' Facebook passwords, conceal their browsing history, or build their own video game. I do spend some time talking about privacy, reminding them that their behavior online can stay around forever and that they should be careful who they are talking to online.

Good luck with your class, I'm sure it will be a rewarding experience for both you and the kids..

<comment><AUTHOR> That anecdote is really helpful. It's good to know that kids already think that technology is going to benefit them in the social zoo of school! I am interested to know if anyone approaches CS from this more holistic point of view that I want to express. It's like English class where those few kids that are obsessed with it become writers or what not. These kids in my class would be the developers or what not, but at least everyone else would be interested enough to understand how tech affects their lives, much like how English class allows one to better understand pop culture. I want to capture the attention of that broader audience, but also show kids they can nerd out about the other parts of CS, like the math, design, science, or psych sides, not just coding.

</comment></comment><comment><USER3> How well do you know the Alice project?

<http://www.alice.org/>

I know programmers in my town who have used that for learners in the same age range you are considering.

My son had a distance learning course (which, alas, seems no longer to be offered) based on the book Approaching Precalculus Mathematics Discretely

[http://www.amazon.com/Approaching-Precalculus-Mathematics- Di...](http://www.amazon.com/Approaching-Precalculus-Mathematics-Discretely- Explorations/dp/0262121387)

that was a good example of using functional programming (in Logo) to investigate mathematics. The book appears to not be in print anymore, but still available from some booksellers, and is a good glimpse at what some high schoolers can learn if they have enough mathematical background.

The local programmers I know who teach classes for that age group are now mostly doing Python courses, as there seem to be quite a few good introductory texts on Python, or else teaching Ruby.

</comment><comment><AUTHOR> Thanks for the pointers, but the language issue isn't really a concern for me or is getting involved kids who like to game. It's more of how to explain all the other wonderful things CS has to offer. College really helped me understand that there were so many interesting questions in designing fun interfaces and gamification techniques that delve closer to psychology. Graph theory was really fun because it seemed so exotic from lame calculus and geometry, and the fact that basics could be taught visually was intriguing. Learning that I could explore places like stack overflow and read APIs made it less intimidating to learn even more. Seeing that technology could better the lives of the less fortunate and that is was an important leveling force appealed to my pinko caring heart ;) These are the messages I'm concerned with sending.

</comment><comment><USER4> I see no reason why an interested high schooler couldn't make it through a CS 101 course that introduced them to programming and gave them a base level of skill in a language. If you want to add breadth, you could either assign presentations from a list of topics (e.g. compilers, operating systems, AI) or you could take the bull by the horns and do these presentations yourself as part of the instruction.

I think it's a good idea, and if I ever came into a situation where that would be possible, I'd gladly teach high school CS.

</comment><comment><USER5> Please, don't start them off in Visual Basic or Java. I learned those 2 back when I was in high school, and when I taught myself Python, I was overjoyed at how much less annoying bits there were to deal with. I'm not that great of a programmer, but Python just felt so much easier to just pick up and go.

As for actual course material, I'm not quite sure. Python does include a turtle module, and that's pretty classic for teaching programming at least.

Good luck!

</comment><comment><USER6> Power through sedgewick's Algorithms in C++: [http://www.amazon.com/Algorithms-C-Robert- Sedgewick/dp/02015...](http://www.amazon.com/Algorithms-C-Robert- Sedgewick/dp/0201510596)

Although, tbh, the code coverage is kinda weak, so I would supplement it with a C or C++ discussion (K&R is tough to understand, but I think for younger kids it's better to start with the fundamentals)

</comment><comment><USER7> The best way to teach programming to middle/high school students is to teach them programming. Forget things like alice and scratch. Just hand them a python prompt and a book or tutorial, or perhaps Hackety Hack. Middle school students are a lot more intelligent than those programs give them credit for and are completely capable of learning actual computer science.

+1 for bhousel's suggestion for LPTHW.

<comment><AUTHOR> The problem is that you couched this in teaching kids programming, but I what I really want to teach is computer science. It's really more about answering the "why" question for the kids and showing something that stimulates curiosity. Granted for some people this is programming, but for others it's about showing the effect of computer science and how to be a part of that effect.

<comment><USER7> I see, i read your question too fast. Using scratch/alice/nxt/what-have-you as a tool to show what compsci is and how it can be exciting is fantastic, i just wouldn't use it as a method for teaching programming. My bad.

Another thing to look at is the Lego NXT robot, which uses very Scratch-like software (drag and drop action and control flow elements) to control a real robot that they can put together with Lego pieces.

I wouldn't downplay the importance of having a python prompt or a c compiler available, though. It may not seem as exciting as drag and drop programs, but to some kids it _is_ more exciting (it was to me when i started programming, certainly).

</comment></comment></comment><comment><USER8> Sadly I don't know about a curriculum, but if you were interested in getting them to learn logic, perhaps you could try using GameSalad (gamesalad.com). It's surprisingly easy to get things up and running for just about anyone, and it's free.

<comment><USER9> I would also highly recommend either Python or Flash. Back in my high school days, the biggest motivation for kids to learn programming was really so that we could design our own games since we had no concept of what the programming industry was all about. Flash was a great tool because it gave us the flexibility to be creative artistically but the power to learn some applications of programming. Learning reasons to use IFs and FOR loops for the purpose of making certain events in our game occur were more helpful in allowing us to grasp the programming concepts instead of presenting the dry material.

Python would be another great alternative to introducing programming games for kids particularly if you use PyGame. We used Turing in high school, but I think it would be a better service to the kids that they learn a language used in the real world and that has some capabilities. If you can teach Turing to students, you can certainly teach Python.

<comment><USER10> > Back in my high school days, the biggest motivation for kids to learn > programming was really so that we could design our own games since we had no > concept of what the programming industry was all about.

+1 on this -- my first attempts at programming were with ZZT and it got me hooked.

<http://en.wikipedia.org/wiki/ZZT></comment></comment></comment>


Why is Golang popular in China? - <AUTHOR> http://herman.asia/why-is-go-popular-in-china <comment><USER2> The anwser is ECUG[1]: formerly Erlang China User Group to promoting Erlang programming, now days changed itself to 'Effective Cloud User Group' for a border definition.

ECUG is a online community also it host an annual ECUG conference. Golang was first presented in ECUGConf2011 by xushiwei[2], he was building a dropbox clone(qbox.com) in Golang, now qbox become qiniu.com which is the most successful S3 clone in China.

In all the tech & media hype, those success stories, and the most important reason: the Golang community itself, Golang passed its breaking point in China and getting really popular.

[1] [http://www.ecug.org/](http://www.ecug.org/)

[2] [http://ecug.googlecode.com/svn/trunk/ecug- con/2011/xushiwei/](http://ecug.googlecode.com/svn/trunk/ecug- con/2011/xushiwei/)

<comment><USER3> upvote.

</comment></comment><comment><USER4> Come from china, a golang user, for 2 years now.

golang.org and Google is blocked in china by government, so, Google trends and golang.org traffic from China maybe miss leading.

Go is quite popular in china, the reasons can be:

1\. A few companies is based on Golang, like qiniu.com. 2\. More and more companies are adopting Golang, since it's very powerful for writing network servers. These companies are facing very fast traffic growth. Golang's efficiency and expressiveness are well known. It just fills the gap. 3\. China has many software developers spread in a few cities(Beijing, Shanhai, Hangzhou, etc). News spread quite effective among them.

<comment><USER5> Ah, interesting! The rapid increase in traffic for Chinese sites easily makes a lot of sense, when thinking about it!

With 1 billion users in a single language/culture, I guess successful sites might indeed grow quite fast, right?

... and there, a compiled fast language is paramount, no? :)

<comment><USER4> compiled fast is quite helpful. The standard lib is a also +1, very useful for network services.

</comment></comment></comment><comment><USER6> I live in China, I think Go is becoming popular in China. Many Coders are talking about it and compare Go with Erlang or C++. In fact there are lots of debates in Chinese community about Go and Erlang such as this link [http://www.zhihu.com/question/27465406](http://www.zhihu.com/question/27465406). Also many programmers are talking about Go and Erlang in weibo -- a chinese website that is similar to twitter. Finally, because of the Great Fire Wall has blocked Google in China, we can't direct visit websites related to Google include [http://golang.org](http://golang.org). So many programmers are tend to visit the chinese version Go communities.

<comment><USER3> 是的。

<comment><USER7> It means "Yes it is." according to Google Translate.

</comment></comment></comment><comment><USER8> Whoa wait a second, I feel like this is burying the lead: _you can write native android apps in go_ [1]. I feel like that's a very big deal, especially for game companies wanting native speed, and a 'modern' language and toolkit.

[1] E.g. [http://talks.golang.org/2014/gothamgo- android.slide#1](http://talks.golang.org/2014/gothamgo-android.slide#1)

<comment><USER9> Thought it might interest you that the term is "burying the lede". One of those weird terms like "champing at the bit" or "eke out a living" that uses a word that sounds like a modern English word but is actually a slightly arcane word. In this case lede is "the introductory section of a news story that is intended to entice the reader to read the full story".

<comment><USER10> Now I'm curious. I've got 'lede' -> 'lead' and 'champing' -> 'chomping'.

What's the "modern" term in "eke out a living"?

<comment><USER10> Okay, I found it myself. Apparently the word confused for "eke" is "eek". But their meanings are so different to me that I'm having trouble seeing it!

<comment><USER9> Well I always get a chuckle when I see people talking about 'eek'ing out a living, but I kind of get it. Eek! can be an exclamation of alarm, so eeking out a living would be just barely making it in a constant state of alarm. It changes the meaning of the term but lets you use it in a contextually similar way.

</comment></comment></comment></comment></comment><comment><USER11> Maybe github is more convinced, search _Go_ in github and filter by language use go: [https://github.com/search?l=Go&o=desc&q=go&s=stars&type=Repo...](https://github.com/search?l=Go&o=desc&q=go&s=stars&type=Repositories&utf8=%E2%9C%93) . You will find half of popular repos (stars>3000) are created by Chinese developer. And most of popular Go related project's document has complete Chinese translation.

</comment><comment><USER12> Could it be because golang supports unicode identifiers? For non-native English speakers, it must be more difficult to program in ASCII-based languages, right?

<comment><USER13> Certainly not for that reason. Actually, as a non-native English speaker, I consider unicode identifiers one of the most useless features for a language.

There are reasons why unicode identifiers have never been widely used, and probably will never be, even though they've been around for more than a decade:

1\. You're unlikely to be allowed to use them. Unicode identifiers stagger international collaboration. Do you want your Chinese colleague to commit some hieroglyphical identifiers into your code, and then an Arabic colleague to add right-to-left curvatures? I doubt that :) They are unwanted in outsourcing, freelancing, open-source, any company which does foreign hire, they are a problem when asking on StackOverflow, etc.

2\. There is just no problem to use English in the first place. Programmers already use English every day. 80-100% of information (documentation, QA, discussion forums) on any programming topic is in English; native-language sources are lacking at best, often nonexistent. If person is a professional programmer, it's way too late for them to have a couple of words translated.

3\. They are not as appealing as you might think. Many languages don't work the same way as English. For example, in expression `print(line)` the word `line` may have to have different morphological form than in `var line = ...`, and yet another form for `if '_' in line`; one form for all uses is very unnatural and requires getting used to (and if you're going to adjust anyway, why not adjust to English then).

4\. Mixed-language text is simply harder to type when second alphabet is not latin. It's like 3x harder when foreign words need to be inserted. I have even seen colleagues discussing code in chat using English just for that reason. And since at least language keywords and standard libraries are already using English, mixed is what it gonna be. A person must have some real serious trouble with English to tolerate that.

Even in strictly local projects where all comments are in native language, unicode identifiers are rarely used.

P.S. When I was reading Swift book about unicode identifiers, I immediately thought: "first paragraph of every Swift coding conventions on the planet is going to be, don't use unicode identifiers".

<comment><USER14> I agree, but I think we live in an idealist bubble on Hacker News. Some of my freelancing clients maintain a bit of (Unicode free) English-German code.

What would you do if you had to write one of the gazillion business software systems we never see here on HN, and you had to codify boring terms like Boolean rightToGiveExtraordinaryNoticeOfTermination (in any other language)? The client/superior has not provided you with an English translation, and your English is mediocre. I can see how non-English code is the least evil in this situation.

I have also inherited outsourced code from Russia once and it had Russian (cyrillic) comments above every English identifier, so apparently some people don't mind switching between keyboard layouts while typing :)

<comment><USER15> There exist a lot of line-of-business Japanese applications which have methods like getKamokuList and getKogaishaList, either because the company didn't have a blessed translation for the noun or, in more than one instance in my career, because two concepts which were distinct in Japanese would have caused a hash collision when translated.

For example, if you do Japanese entrance exams, there exist two ways to say "academic subject": 教科 and 科目. Both of them are most readily translated as "subject", but the first is subject like mathematics is a subject, and the second is a subject like Algebra II is a subject. Make sense? Great.

Rather than littering our code with getSubject and getSubSubject, which was the cleanest English option available, we just went with the transliterations straight in the source code, and said "Look, if we pay your salary, you're going to learn the difference between kamoku and kyouka."

</comment></comment></comment></comment><comment><USER16> Previous discussion on Reddit: [http://www.reddit.com/r/golang/comments/23c7y0/why_is_golang...](http://www.reddit.com/r/golang/comments/23c7y0/why_is_golang_popular_in_china/)

</comment><comment><USER17> I live in china, and haven't heard anything about go being particularly popular. It hasn't shown up on any intern resumes for systems research positions yet.

</comment><comment><USER18> It was mentioned at GopherCon that many developers use Windows in China. Golang's ability to compile on Windows makes it a natural choice.

Most Chinese websites are built on the Windows platform [1]. Windows XP and Windows 7 have a 60.7 percent and 33.4 percent market share respectively (94% of the Chinese market) as of May 2014 [2].

[1] [https://www.quora.com/Why-do-so-many-Chinese-developers- pref...](https://www.quora.com/Why-do-so-many-Chinese-developers-prefer- Microsoft-Visual-C++-even-when-writing-non-Windows-specific-code)

[2] [http://www.zdnet.com/article/windows-os-replaceable-by- chine...](http://www.zdnet.com/article/windows-os-replaceable-by-chinese- counterparts/)

<comment><USER19> If it was primarily about Windows, wouldn't .Net or C++/Win32 be of more interest? Microsoft has no official Go support as far as I know.

</comment></comment><comment><USER20> > Dave Cheney pointed out on Reddit that he is under the impression that Go is > popular in China for its usefulness in writing programs for rooted Android > phones.

Interesting. It seems Go really is preferred to Java, if given the choice. I hope Google seriously considers making Go the main programming language for Android in the next few years. Other than having to rewrite all the old _and new_ APIs (in parallel with the new releases) I assume it shouldn't cause too many backwards compatibility issues now that they made apps compile to the platform natively anyway, which I think should allow to rip out Java, once 95+ percent of the Android users are on Android 5 or later.

<comment><USER21> >Go 1.4 is released [0]

>10 December 2014

>Today we announce Go 1.4, the fifth major stable release of Go...

>The most notable new feature in this release is official support for Android. Using the support in the core and the libraries in the golang.org/x/mobile repository, it is now possible to write simple Android apps using only Go code. At this stage, the support libraries are _still nascent_ and _under heavy development_. Early adopters should expect a bumpy ride, but we welcome the community to get involved.

Emphasis mine.

I really don't think a beta feature that was released a month ago could have affected the statistics.

[0] [https://blog.golang.org/go1.4](https://blog.golang.org/go1.4)

<comment><USER22> Well, they do _make_ the hardware over there -- maybe they're pretty comfortable with beta software.

And besides, there was already some Android integration even before Google announced it.

</comment></comment></comment><comment><USER23> It could be that 'golang' is not popular enough for statistical comparisons to be insightful. For a chuckle, look up 'golang' on Google Trends and then add the second term 'perl'.

<comment><USER24> Sure, and you can draw the conclusion that Perl is declining and Go is rising.

[http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...](http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%2Fm%2F05zrn&cmpt=q&tz=)

<comment><USER25> Or you can conclude that the topics trends beta has a ton of work left to do on it. For instance there's no way golang has more interest than Objective C _and_ Swift put together, but that's what trends beta claims.

<comment><USER24> How can you be so sure about it. First of all, Go is not generating more interest than Obj-C[1]. Secondly, most searches regarding language still happens inside the GFW(like on Baidu). So ya, trend search certainly doesn't tell you the whole story about total usage, yet it still tells you part of the story, which is the "trend" IMO.

1\. [http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%...](http://www.google.com/trends/explore#q=%2Fm%2F09gbxjr%2C%20%2Fm%2F05q31&cmpt=q&tz=)

</comment></comment></comment></comment><comment><USER26> I recall reading a similar post about Node.js a few years ago. For what it's worth, it might just be that China's programming community is growing (and interacting more with the West). The Alexa map is actually not too dissimilar from a population by country map.

If I had to hypothesise about golang in particular, I'd say it might have something with Docker (Baidu is using Docker for its PaaS for example) although it's difficult to say if the relationship is the other way around.

</comment><comment><USER27> Perhaps the large number of new graduates each year has something to do with this. Also, internet is the industry that is on fire these years, which attracts more and more young people. New workforce is always looking to a better position to enter the market. That means they may focus on new techs on upward trend more to try to have some kind of extra bonus to get into the job market.

</comment><comment><USER3> 文章还是没有解释为什么,只说了是什么。

<comment><USER28> Why are you speaking Chinese on an English newsboard?

It's not very polite to respond in a different language as the question, especially when it cannot be presumed everyone will understand you.

<comment><USER29> I think in times of google translate that's not true anymore. Anyway it might be the only way for him to respond. If you feel uncomfortable communicating in Chinese I can completely understand that (I spend a year in China without many previous Chinese skills) but it's not a huge problem if it just happens here and there. Let him communicate to us this way. There are people here who can speak Chinese to him back. And he seems to be able to read English, so you don't have to use Chinese. :)

<comment><USER28> Et donc moi aussie je peux utiliser n'importe quelle langue? /s

Si on vas tous utiliser Google Translate, on va commencer à parler comme des logiciels. Moi en faite je préfère parler avec des humains. On fait tous l'effort.

<comment><USER30> At least get the grammar right, please!

<comment><USER29> I think he might have just Google translated that and thereby ignored the point that I wanted the reader to translate, not the writer.

</comment></comment></comment></comment></comment></comment><comment><USER31> Wow, I saw India after US and China. Seriously, India? Never expected that they would be so interested in Go Lang.

</comment><comment><USER32> golang.org is blocked by GFW in china, people must visit it through proxy server outside china, so I think the visit statistic is not accurate.

</comment><comment><USER33> I really wish the main findings had been summarised in one paragraph at the top of the article, instead of towards the end. All things considered it could have been written a lot shorter and a lot clearer.

</comment><comment><USER34> Perhaps, because China doesn't have "enterprise" sweatshop industry and "Java mass hysteria" and Golang is, well, actually good enough?

</comment><comment><USER35> One possible explanation would be that China has such a gigantic population. Basically everything that is a niche there is a big community by our standards.

</comment><comment><USER36> Because chinese tends to use their stuff rather than what world shares!

</comment><comment><USER37> people in china cannot visit google related site, include golang.org.LOL

<comment><USER29> And still they form one of the biggest user groups. Quite interesting, right? If you have some Chinese programming friends it's probably not hard to get an interpreter binary and the documentation in Chinese for your system of choice. It's a good example that the public image and what actually happens is not even expected to be the same in China.

</comment></comment><comment><USER38> Because they do not understand erlang

<comment><USER3> 呵呵。

<comment><USER39> Translation: laugh

<comment><USER29> Actual translation: haha ;)

<comment><USER40> alibaba has a group of people user erlang.

</comment></comment></comment></comment></comment><comment><USER41> I have a theory that it might be because of the Chinese game "go" that it started to become popular in China.

<comment><USER42> "Go" is actually the Japanese name for the game. In Chinese, it's called "weiqi".

<comment><USER41> Oh right... Well you just killed my theory.

<comment><USER29> If you just search for "go" it might still be true what you say. At least Google is able to understand synonyms. So searching "go" and something in Chinese might yield results with "weiqi" in it.

What really kills your theory is that "golang" is certainly not easy to confuse with the board game.</comment></comment></comment></comment>


Bitcoin is eating itself - <AUTHOR> https://hackernoon.com/bitcoin-is-eating-itself-bda69493c938 <comment><USER2> On a related note, I wonder how much value is orphaned due to lost keys. If people forget their passwords, they can forget their keys/passphrases. Myself, I just had a hard drive failure. Of course, I have backups, but how many non tech savvy people are diligent about backups?

Considering the total amount of bitcoins is limited by design, this will eventually be a problem. I really dont think bitcoin is a viable currency for mainstream use.

<comment><USER3> I had about 100 bitcoins mined in the extreme early days and weeks, but I wasn't really a believer and just did it to see what it was about, and never thought it would be worth money per se.

Wish I had kept the details, but it's nearing a decade ago, and that harddrive is long gone, unfortunately.

<comment><USER4> I still have them! ;-)

</comment></comment></comment><comment><USER5> I'm no bitcoin expert, but would it not be possible to cash out the below-fee- value coins by making a multiple-input transaction consisting of many wallets with <0.0004btc held, paying it all to one wallet, selling the contents of that wallet and returning the sale price back to the wallet holders?

Obviously that's pointless at the current fee level (<$1) but if the fee grows high enough, or if there's a way to reach these wallet holders en-masse and convince them of the value this would provide to the network (or get them to short btc in advance of a large sell-off of the gathered coins). Notwithstanding the legality/morality of any of this, it's not my field.

<comment><USER6> Each input of the transaction requires a signature, which makes the transaction larger and therefore increases the required fee. Here is a random example from a recent block of such a transaction with many inputs, it pays about $52 in fees:

[https://blockchain.info/tx/ef29f862f3ceee10ed3e1f04585e18cc2...](https://blockchain.info/tx/ef29f862f3ceee10ed3e1f04585e18cc28a7915e2e62419e714549a4185fbdc5)

So it is more accurate to think of the cost as a fee _per byte_ instead of a fee per transaction. And there's a minimum amount of bytes that's needed to consume any hitherto unspent transaction output.

Interestingly, if bitcoins were to support Schnorr signatures, then the signatures could be combined and then your idea would work. Though this would not be able to salvage the existing unspent transaction outputs that are already secured with ECDSA signatures.

</comment></comment><comment><USER7> How can you say they are worthless, if all it would take is one miner to include all of those unsigned transactions in a block for them to have worth again?

It's one thing to say miners aren't incentivized to include them today. It's another thing to say no miner will ever have an incentive on any day in the future.

</comment><comment><USER8> How many millions around the world are lost in the form of dropped pennies no one will ever bother to pick up? Is cash eating itself?

<comment><USER9> Do you think that's a fair comment on the article?

<comment><USER10> Hang around in a place like r/bitcoin, and you'll find that criticism is often met with redirection toward fiat rather than having a legitimate discussion about how to address shortcomings.

<comment><USER4> Shortcomings should be addressed by forking bitcoin into yet another altcoin and demonstrate the proposed improvement over there. We now have 700+ alternative "altcoins" in circulation, most of them demonstrating pretty much nothing at all. Real breakthroughs are once in a blue moon, while all kinds of useless criticisms are plentiful. In that sense, we do not want to have a "legitimate discussion" but to observe legitimate altcoins embodying improvements, while they are performing in the real world.</comment></comment></comment></comment>


Methodological and Statistical Issues in Adult Nutritional Research - <AUTHOR> http://www.csicop.org/specialarticles/nutrition/

<comment><AUTHOR> It's interesting how very few randomized studies of nutrition there have ever been. I remember one study from the 1970s, reported on by my town's TV news channel, in which students and other persons who could stay out of society for a while were literally confined to the laboratory and fed only by the researchers, with no opportunity to eat at liberty. But I don't recall any report of clear results from that study.</comment>


I Know True Is This Much: A Few Python Koans - <AUTHOR> https://github.com/RLuckom/i-know-true-is-this-much

<comment><USER2> Coincidentally I was listening to Spandau Ballet when I spotted this.</comment>


Ask HN: Experience with pen names or aliases? - <AUTHOR>

I've just been discharged from a government job, however my problem is within the terms of the contract I am not allowed to have any online presence using my real name for the next five years (I was working in digital intelligence, it's complicated). So I am now online using a pen name of sorts and am looking to start my own company, my only issue is I don't want a split identity I don't want to have to be one person offline and one person online. I want to start the company now as I need to sustain an income. Does anyone have any experience trading under a pen name, how do you introduce yourself etc and what do you do when it comes to invoicing etc.<p>I realise this is a bit of an odd question but you guys seem to be one of the more rational sources on the internet that could help me out with this predicament. <comment><USER2> IANAL.

I think we'll actually see more and more pen names and aliases as people try to brand themselves.

Basically, just pick a name and go with it. I have mrnoahc.com and noahc.net. I want to brand my self as one of those two. I think mrnoahc is better, because it's almost always available as compared to noahc.

Either way, buy the domain ending in .com that you want and you'll probably end up towards the top of search results. It shouldn't be too hard to get the top result for mrnoahc or technologysteve.com or something of that effect.

Not sure what 'online presence' means, but once you brand your self as something just run with it and introduce your self as Noah of MrNoahC fame if you want people to know your first name before a speech or something. I would suggest staying away from names like floppyRabbitLover and HairyLemonBalls for branding purposes, but depending on your purposes it might work.

</comment><comment><USER3> It's an aside, but I hope they were paying you a huge amount of money to restrict your activities so severely, for such a long time.

</comment><comment><USER4> _I am not allowed to have any online presence using my real name for the next five years (I was working in digital intelligence, it's complicated)._

This confuses and intrigues me. What does an "online presence" mean? Can you have a personal website? A Facebook account? An e-mail address? Did you accept these terms when you started or were you given the restriction when leaving? Are the consequences of breaking the contract civil or criminal? If you legally change your name, can you use that new name online before the 5 years are up?

It doesn't make any sense. How do they expect to recruit talented people with such a restriction? The mind boggles.

</comment><comment><USER5> Ask a lawyer (if you haven't). Perhaps these restrictions aren't actually binding/enforceable. Definitely worth double checking.

</comment><comment><USER6> I have a friend who had the same name as his boss, so he would have to use an alias whenever he spoke with customers, so customers wouldn't get mixed up with who they are talking to.

Its probably easier than you think to get used to an alias, but I don't know how it would work in terms of the legal name to use on your corp. papers.

</comment><comment><USER7> Would incorporating - or alternately getting a DBA - satisfy those terms?

<http://en.wikipedia.org/wiki/Doing_business_as>

</comment><comment><USER8> I've heard there are issues with regard to copyright (I seem to recall advice to register a pen name with the U.S. Copyright Office,with respect to the more traditional "ink on bound paper" environment), but I don't know the details.

Would any of our more legal minded folks have a comment on this?</comment>


Announcing Trigger.io v2.0 - <AUTHOR> http://trigger.io/cross-platform-application-development-blog/2013/07/29/trigger-2-0-build-mobile-apps-using-the-best-of-html5-and-our-new-native-module-ecosystem/

<comment><USER2> Trigger looks really cool, but the thing still holding me back is the lack of an escape route. If PhoneGap goes belly-up, I've got the source, no big deal. If the same happens to Trigger, I'm stuck having to rewrite major portions of the app from scratch.

<comment><USER3> If Adobe decided to discontinue PhoneGap, you could just go straight Cordova :D

I'm trying to figure out what benefit Trigger gives you over phonegap/cordova.

<comment><USER3> Reload is awesome... beyond that ??

</comment></comment></comment><comment><USER4> The Fetchnotes team is really excited about this new approach to native mobile modules! We have a whole suite of them we'll be publishing in the coming weeks and months - it's great we can share them so easily now. Awesome job guys.

</comment><comment><USER5> I'm not really an expert on this, so this might be a silly question.

How is this better / different than frameworks such as Phonegap and Titanium ?

<comment><AUTHOR> It's a reasonably common question and we think we have some quite good answers - you can see a summary on our homepage.

Our customers tell us they choose us vs alternatives for: \- the efficiency of our build / test cycle \- the broader API out of the box including native UI components and integrations with 3rd party SDKs like Facebook, Flurry and Parse \- the ability to push updates to the app without going through the App Store approval process using our Reload feature: [https://trigger.io/reload](https://trigger.io/reload)

<comment><USER5> Thanks, very helpful. Congratulations on shipping 2.0 !

</comment></comment></comment><comment><USER6> Having spent a fair amount of time in PhoneGap, I recall one of the tricky bits of using stringByEvaluatingJavaScriptFromString to call into JS land was that it could block, leading Apple to impose a 5 second timeout on that particular API call. Is that still the case? I recall that making loading large objects created/fetched via native code more complicated.

Congratulations on 2.0, regardless!

<comment><USER7> stringByEvaluatingJavaScriptFromString calls are still capped, at 10MB and 10 seconds - that might be up from the 5 seconds you experienced.

Our approach to that is two-fold:

We try not to send big chunks of data through the bridge (we pass file around by reference, for example): in our initial prototypes a couple of years ago we passed image data base64 encoded and that definitely didn't scale!

Secondly, stringByEvaluatingJavaScriptFromString just gets data into the JS engine's scope - the processing of those received messages is done in a separate thread of execution. By that I mean started by an event, not true multi-threading of course!

<comment><USER6> Thanks for clarifying! Makes sense.

</comment></comment></comment><comment><USER8> So you're making it easier to make Android apps that look like iOS apps. Great...</comment>