Shamir's Secret Sharing - <AUTHOR> https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing <comment><USER2> Vault([https://www.vaultproject.io/](https://www.vaultproject.io/)) and Phaistos KMS ([https://github.com/phaistos- networks/KMS](https://github.com/phaistos-networks/KMS)) both use SSD for sealing/unsealing, where a master key is created, 'divided' into multiple keys and a minimum number of such keys are required to unseal the service.

<comment><USER3> SSSS?

</comment></comment><comment><USER4> I'm not a mathematician but here is my ELI5 understanding of it based on linked wikipedia article.

If you know the coordinates of any 2 points on a line you can recover the equation for that line. The same is true for 3 points on a quadratic curve and 4 points on cubic curve, etc.

So if our secret is the number c we can put it in the equation for, say, a quadratic: ax^2 + bx + c = 0 We can then give any number of people the coordinates for different single points on this curve.

None of these people know the equation but if any 3 of them share their coordinates they can work out the equation and thus the value of c.

<comment><USER5> Just remember the caveat with the ELI5 explanation is that if I tell you the first two points on a parabola are (0,0) and (1,0) you will figure that the third point is more likely to be around (2,0) than, say, (2,2^30).

<comment><USER4> I could understand the _integer_ arithmetic example they gave and I think you are pointing out how this is flawed security-wise (its use lies in explaining the method). This flaw is addressed by using _finite field_ arithmetic but I did't understand that part too well.

<comment><USER5> Finite field arithmetic is basically what you would get if you were to reduce the integers to a set of finite size, but keep the arithmetic rules similar to what they were before. Using an infinite set like the integers is a bad idea because you can't have a uniform distribution over all the integers, and hence some members will be more likely than others, which leaks information. The special case of finite-field arithmetic we usually care about is GF(p), which is when the integers start at 0 and wrap around at _p_ , where _p_ is a prime number. We care about this because when _p_ is prime, then we can ensure numbers are uniformly random in the range 0..p-1, which is something we need in order to guarantee information-theoretic security.

</comment></comment></comment></comment><comment><USER6> Shamir's Secret Sharing is one of my favorite algorithm names. It sounds straight out of a D&D wizard spell list. Especially when you interpret it as "sharing in secret" instead of "sharing a secret".

<comment><USER4> It helps that Shamir as well as making the name alliterative also sounds like the stage name for some early 20th century magician

<comment><USER7> I think it's possible that his family name derives from [https://en.wikipedia.org/wiki/Solomon%27s_shamir](https://en.wikipedia.org/wiki/Solomon%27s_shamir).

</comment></comment></comment><comment><USER8> Greg Maxwell has suggested that quite a few implementations of SSS are broken: "FWIW, virtually every SSS thing I've seen out there is just wrong in at least some less serious way. In general I've found secret sharing to be part of a pretextual security practice that seldom helps users against realistic threats, and the thoughtlessness of using it is usually reflected in the implementation." \- [https://np.reddit.com/r/Bitcoin/comments/72dfy1/armory_walle...](https://np.reddit.com/r/Bitcoin/comments/72dfy1/armory_wallet_fragmented_backups_may_be/dnho2w6/)

Here is one seriously broken implementation he discovered: [https://bitcointalk.org/index.php?topic=2199659.0](https://bitcointalk.org/index.php?topic=2199659.0)

</comment><comment><USER9> Suppose I asked if there's a practical example of merkle trees in the wild. Someone answers, "of course: git." Then 7 troglodyte friends and I jump on github/gitlab/whatever (which is super easy because everyone already uses one of these user-friendly services that wrap around git) and immediately see how git helps us develop by leveraging merkle trees. We realize that the merkle trees are leveraged so that we can ensure (most of the time) data integrity in the history of our source code. Thanks, git!

Now suppose I asked if there's a practical example of SSS in the wild. Someone answers, "of course: ___." Then 7 troglodyte friends and I jump on ___ (which is super easy because everyone already uses one of these user-friendly services that wrap around ___)and immediately see how ___ helps us develop by leveraging SSS. We realize that SSS is leveraged so that we can ensure ___. Thanks, ___!

Fill in the blanks.

<comment><USER10> I won't follow your script, but here's a nodejs implementation of SSS [https://github.com/grempe/secrets.js](https://github.com/grempe/secrets.js)

I've seen SSS used in Ethereum smart-contracts before. Grid+ [https://blog.gridplus.io/simple-security-with-shamir- secret-...](https://blog.gridplus.io/simple-security-with-shamir-secret- sharing-15704166b8be) and Blockstack: [https://github.com/blockstack/secret- sharing](https://github.com/blockstack/secret-sharing) and uPort: [https://github.com/uport-project/sss-wasm](https://github.com/uport- project/sss-wasm) come to mind.

<comment><USER11> `poly_utils.py` in [https://github.com/ethereum/research/tree/master/mimc_stark](https://github.com/ethereum/research/tree/master/mimc_stark) is a fairly simple one-file general-purpose library for arithmetic over prime fields, including multi-point evaluation and Lagrange interpolation; secret sharing and erasure coding are quite easy to implement with these primitives.

<comment><USER10> Thanks for the link, I'll have a look!

</comment></comment></comment></comment><comment><USER12> It's amazing how this is a practical piece of math that can be understood with little more than a basic familiarity with polynomials. This is the kind of stuff I'd loved to have learned in middle school!

<comment><USER13> It was used in my college Discrete Math class (a version specifically aimed at Computer Science students) as an exercise in formally proving the properties of a real-life system. That was a fun lecture :-D

</comment></comment><comment><USER14> One of my favorite Shamir implementations:

[https://github.com/codahale/shamir](https://github.com/codahale/shamir)

</comment><comment><USER15> Reminds me a lot of my usenet newsgroup file sharing days and the PAR parity format. A file is split into say 200 pieces to fit within the limitations of a newsgroup post. Those 200 posts may or may not all make it to your usenet server, but an additional 10-20 parity files are also created such that you need to only find 200 total unique pieces to recreate the data.

It's different in that the data is totally readable other than the missing pieces (although practically unusable). The thing that blew my mind was just how a single parity file can fill a single gap regardless of where in the sequence of original files.

<comment><USER16> Many storage media formats and network protocols use closely related schemes to transparently handle minor defects and disruptions [1].

The more general theoretical category is the erasure code [2].

[1] [https://www.cs.cmu.edu/~guyb/realworld/reedsolomon/reed_solo...](https://www.cs.cmu.edu/~guyb/realworld/reedsolomon/reed_solomon_codes.html)

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

</comment></comment><comment><USER17> This is one of the most elegant things, ever.

<comment><USER18> Polynomials are special

</comment></comment><comment><USER19> Ever since learning about this I've wanted to use it for something, but I've never had the opportunity.

<comment><USER20> Consider you want to share the passwords to your bank accounts with your family after you die.

You take a list of those passwords, and encrypt it using SSSS with 4 of 7 keys needed to decrypt.

You then share these 7 keys with your 7 relatives.

After your death, they get together and unlock your passwords.

<comment><USER9> They can access the bank accounts, but can they _legally_ perform any meaningful transaction with the data/money they access?

For example-- suppose that person dies and these 7 relatives access the account and wire themselves some money. With no other arrangements made, doesn't that constitute bank fraud?

On the flip side-- if the relatives also have to go through the time-consuming processes of meetings with an estate lawyer and bank managers in order to fulfill the wishes of the deceased, what function does the cryptography perform in this case?

<comment><USER20> Maybe your bank accounts are held in nominee officer shelf corps in offshore companies. I used an arbitrary example as a vehicle to show how the m of n could access info.

</comment></comment></comment></comment><comment><USER21> I came across Shamir's Secret Sharing recently when thinking about how a partial password scheme might best be implemented. I even went as far as writing up an implementation of the cryptographic aspects.

[https://jonathanstreet.com/blog/partial- passwords/](https://jonathanstreet.com/blog/partial-passwords/)

</comment><comment><USER22> Somewhat interesting article on secret sharing being used to store Hardware private keys [https://medium.com/@markstar/backup-your-trezor-ledger- using...](https://medium.com/@markstar/backup-your-trezor-ledger-using- shamirs-secret-sharing-972e98101839)

</comment><comment><USER23> [http://web.archive.org/web/20031002050746/http://atrey.karli...](http://web.archive.org/web/20031002050746/http://atrey.karlin.mff.cuni.cz:80/~clock/twibright/schizzors/index.html)

</comment><comment><USER24> NuCypher uses this on our proxy re-encryption scheme. You don't want a re- encryption key to be all together in one place, so we split it up using SSS and distribute the fragments. For cryptography beginners, this scheme is relatively easy to understand, describe, and prove.

</comment><comment><USER25> Popular implementations:

[http://point-at-infinity.org/ssss/](http://point-at-infinity.org/ssss/)

[https://git.gitano.org.uk/libgfshare.git/](https://git.gitano.org.uk/libgfshare.git/)

</comment><comment><USER26> In my undergraduate final year project, we used a "variation" of SSS called Thien-Lin Secret Sharing to enable bank locker security! Glad to see SSS being shared here!

</comment><comment><USER27> secret sharing for javascript, [https://github.com/grempe/secrets.js](https://github.com/grempe/secrets.js)

</comment><comment><USER28> DNS root server keys?

Wonder if this has been used in any commercial transaction escrow systems.</comment>


Proposal to remove the iconic HTTP 418 I'm a Teapot status code from frameworks - <AUTHOR> https://github.com/nodejs/node/issues/14644 <comment><AUTHOR> Vote on Twitter: [https://twitter.com/raulvk/status/896058762913488896](https://twitter.com/raulvk/status/896058762913488896)

</comment><comment><AUTHOR> node.js: [https://github.com/nodejs/node/issues/14644](https://github.com/nodejs/node/issues/14644)

golang: [https://github.com/golang/go/issues/21326](https://github.com/golang/go/issues/21326)

ASP.NET: [https://github.com/aspnet/HttpAbstractions/issues/915](https://github.com/aspnet/HttpAbstractions/issues/915)</comment>


Cisco Tetration – The Death of Meaning - <AUTHOR> A review of Google searches shows Cisco's new IoP platform Tetration appears to be a big thing. But as a mathematician who has hosted http://tetration.org for twenty years and keeps tetration researchers socially organized, the continued appropriation of the word tetration is a surprise. First it was Joshua Cohen's "Book of Numbers" where "Tetration" is the largest company in the world." Then a new company named "Tetration" began appearing in Google searches for "tetration". And then the references to tetration as a part of mathematics disappeared under the flood of results on "Cisco Tetration".
Big call out to the person at Google that provided disambiguation of the topic. Otherwise I've been unable to connect with anyone at Cisco Tetration. I'm disapointed that the meaning of "tetration" is being redefined from numbers that are incredibly large to meaning incredibly large amounts of bullshit. <comment><USER2> They will move on to Pentation and Hexation soon enough.

<comment><USER3> I think OP is hoping they will go more towards titration, in the medical sense of weening off the (ab)use.

Imagine searching for "alphabet" and only finding Google's pseudo-parent. That isn't so different.</comment></comment>


One entrepreneur's review of Seedcamp 2009 - <AUTHOR> http://emigal.com/2009/09/28/how-to-put-your-startup-on-steroids/

<comment><AUTHOR> I thought this might help explain what kind of value teams can derive from the events Seedcamp puts on _before even picking any winners to fund_ , which are an important part of its model and a distinction to other micro seed programs.

For more context, some confusion but definitely also some valid criticism see the recent thread at <http://news.ycombinator.com/item?id=844105></comment>


Android-x86 Project – Run Android on Your PC - <AUTHOR> http://www.android-x86.org/ <comment><USER3> If you are one of those die-hard Linux fans who, like me, have been eagerly expecting each new Linux video driver release from AMD and/or nVidia, to be able to finally show our employer and everyone else that we _can_ use Linux as our main machine, then these times are like living in a dream. (I don't really care that this Linux is labelled "Android" and has a Java "GUI", and I like many of the design decisions, e.g. for creating Apps.)

Needless to say, while the old proverbial "elephant in the room" (in the form of absolutely needing Microsoft Office on your Linux machine, or another Windows-only program) has been defeated[1], the new elephant in the room seems to be the necessity to be able to create native iOS apps on your machine, which is only practically possible on a true Mac system. I wonder if this is something that we tackle along the way as well.

[1]It is not entirely clear to me whether the Microsoft Office "tax" went away more because of the advent of Google Docs, or because people started to migrate their tasks to specialized web apps.

<comment><USER4> Personally, I've been scratching my head for a while at why Google is so dead- set on their "Chromebook" idea when they would have a great chance at killing off Microsoft for good if they put in some effort to create a great desktop version of Android.

<comment><USER5> I got the impression is an internal thing of Google. ChromeOS seems to have won many political battles there.

As a Linux fan I prefer they stick to ChromeOS. It's just a custom Gentoo. Many of their devices support Coreboot, which makes them excellent machines to run my favorite Linux distro.

</comment></comment></comment><comment><USER6> Doesn't Android itself support x86? There are phones [1] and tablets [2] base on Intel chips, after all, and they run Android.

[1] [http://www.intel.com/content/www/us/en/smartphones/smartphon...](http://www.intel.com/content/www/us/en/smartphones/smartphones.html)

[2] [http://www.intel.com/content/www/us/en/tablets/shop- tablets....](http://www.intel.com/content/www/us/en/tablets/shop-tablets.html)

<comment><USER7> Intel officially supports Android on x86 (for development, not daily use) via Android-IA: [https://01.org/android-ia](https://01.org/android-ia)

They used to have an FAQ which acknowledged the unofficial Android-x86 project: [https://web.archive.org/web/20140331192152/https://01.org/an...](https://web.archive.org/web/20140331192152/https://01.org/android- ia/documentation/faq)

</comment></comment><comment><USER8> ConsoleOS[1], a similar solution, got successfully funded on Kickstarter[2] last year.

[1]: [http://consoleos.com](http://consoleos.com) [2]: [https://www.kickstarter.com/projects/mmv/console-os-dual- boo...](https://www.kickstarter.com/projects/mmv/console-os-dual-boot-android- remastered-for-the-pc/description)

<comment><USER9> Or Remix, "the first true android PC" which just finished its run at Kickstarter 2 days ago. I went in for 1 for testing, they deliver in Oct 2015: [http://www.jide.com/en/mini](http://www.jide.com/en/mini) [https://www.kickstarter.com/projects/1123481999/remix- mini-t...](https://www.kickstarter.com/projects/1123481999/remix-mini-the- worlds-first-true-android-pc)

<comment><USER8> Yes, I got to know about it from a comment below. The price point is super tempting! How much of their software customisations are currently implemented in the os (anyone using their ultratablet or nex9 rom?)

But, I think both ConsoleOS and Remix have their place (if at all this space picks up). One is trying to leverage the desktop hardware to run more powerful Android apps and the other is interested in using cheap and affordable hardware (lower end arm chips) to give an experience / solution as close to a desktop as possible

</comment></comment></comment><comment><USER10> Note that the project focuses on eee-pc. Latest 4.4 release still works on mine but the landscape/portrait mode is unnerving at time.

It's way faster than any ARM flagship tablet of the day though, except for HD video. I don't think it's brings enough on the table when compared to a `real' desktop OS such as Windows or Debian because it's not designed for keyboard at all.

</comment><comment><USER11> This seemed pointless to me until I saw that they tested on this platform:

"ASUS Eee PCs/Laptops"

This reminded me that I have a 5 year old Eee laptop that I haven't used in years and throwing Android on there could be a fun weekend-afternoon project.

</comment><comment><USER12> I thought mainline Android had x86 support? What am I missing?

<comment><USER13> This is the AOSP version for x86, there are commercial builds for x86 like there are builds for any other platform but if you want to have your own android is you gotta build it from the AOSP source which might lack quite a few things such as drivers for example.

</comment></comment><comment><USER14> Perhaps Android in a VM will replace wine for running unported stuff on a Linux desktop.

<comment><USER15> If only Google considered Android for its desktop OS. It could be something like this (or better, if they are actually serious about it):

[http://www.jide.com/en/remixos](http://www.jide.com/en/remixos)

But as long as Google and now Sundar Pichai consider ChromeOS to be the one and only Google desktop OS ever, unfortunately that won't happen. Of course such a desktop OS would also have to be more like Android Wear than "AOSP" \- as in only Google would ever control the interface and only Google would be in charge of updates.

<comment><USER16> That's really pretty. I like it.

I suspect Google actually wants Android to be more like Chrome OS. But they know Android's too important and popular to risk by outright replacing it with Chrome OS. That's why they are slowing mixing them together.

Chrome on Android is now integrated in the taskbar while they are pushing things like Web Manifests, Web Workers and Web Push Notifications. On the other hand it is now possible to run Android apps on Chrome OS via App Runtime for Chrome (ARC).

</comment></comment></comment><comment><USER17> If this is what you want - Android on your PC, you might as well use Genymotion ([https://www.genymotion.com/](https://www.genymotion.com/)) - essentially a well packaged version that uses VirtualBox. Free for non- commercial use, $100/year for commercial use. Have new OS versions fast and easy to install Google apps/services on.

<comment><USER18> Genymotion's free edition has too many limitations. It's not just free for non-commercial usage. Some examples are: multi-touch and accelerometer, which are not supported in the free edition.

Comparison can be found here: [https://www.genymotion.com/#!/store](https://www.genymotion.com/#!/store)

<comment><USER17> Sure, if you develop some sort of special app or specific game, or want to play something specific it won't work. But for 90% of use cases, Genymotion will work better than barebones Android-x86.

</comment></comment></comment><comment><USER19> I've been thinking about trying something like this as my main system, with Linux chroot and possibly X11 server to fill in the gaps in apps. I like the idea of sandboxing everything like Android does. Some of the things that have held me back are lack of time to tinker and wondering if I would end up using a terminal emulator and GNU/Linux command line tools for everything, which sort of nullifies the sandbox. Maybe it's still worth it if, e.g., a browser compromise can't access the emails from my email client (which is possible on my current desktop with both running under the same uid and no special access controls.)

<comment><USER20> if you want a secure sandboxed OS android is the wrong place to look

<comment><USER19> Well, I know it's not uber-secure, but if I wanted that I would set up SELinux or something. I'm looking for something I'm familiar with and will offer better sandboxing than I have now without much work. Why won't Android do that? Is it Android's permissions system for apps? I would revoke unneeded permissions. Do you know of unpatched sandbox escape bugs that would allow a compromised browser to upload other apps' data?

</comment></comment></comment><comment><AUTHOR> I think it is in an early stage. My test inside a VirtualBox was not really satisfying. Slow and not really smooth. maybe on dedicated hardware it might run better.

<comment><USER21> I've run it on an old Centrino laptop. It runs quite well, all things considered (wireless and so on and so forth.

<comment><AUTHOR> sounds quite nice. I am still running around looking for my power supply for my old lifebook here. I have a MacbOk G4 and a PowerBook G4 lying around. Not quite sure if I can install it on those machines.

<comment><USER22> No you cannot as this is an x86 version of Android, not a powerpc one.

Sounds like the lifebook might work though.

I installed this image about a month ago on a VMware virtual machine. Not sure if I did something wrong, but didn't really get far and after a couple of tries to install it, eventually I gave up and figured to spent my time on something else.

</comment></comment></comment></comment><comment><USER23> So they are still working on 4.4.3. I assume this is a daunting task, but are they always playing catch up?

I do not say that dismissively. It is mind-blowing to me that they can port this to x86 (whether or not the toolchain supports it at this stage) and iron everything out with every major and minor release.

I see no mention of Lollipop or Marshmallow, but I am really curious.

<comment><USER7> No, it's 4.4.4:

[http://www.android-x86.org/releases/releasenote-4-4-r3](http://www.android-x86.org/releases/releasenote-4-4-r3)

> _The 4.4-r3 release is based on the Android 4.4.4_r2.0.1 (KTU84Q) release._

Their "What is new?" section on the front page says development on the Lollipop branch had started by 2014-11-06 (just two days after Google released the source) and that lollipop-x86 was updated to 5.1 on 2015-03-18.

I'm guessing part of the reason there isn't a stable Lollipop build yet is the switch from Dalvik to ART.

</comment></comment><comment><USER24> I will be really happy when other Linux Distros can run APK files. I mean, really really happy. It would be like Christmas.

</comment><comment><USER25> Is this faster than the android emulator set to use intel instructions?

</comment><comment><USER26> But android is horrible, HORRIBLE, OS. Why would you want it on your PC. Only reason I can see is to run it in VM for development purposes. Should be faster than emulation.

<comment><USER27> It's pretty good for a phone, but definately bad for a desktop.

By the way, x86 VMs for development have been there for many years. It runs way better than their ARM counter-parts of course.

</comment></comment><comment><USER28> Would be cool if anyone tried this with Cocos2d-X :)

</comment><comment><USER29> Great, let's introduce java-esq vulnerabilities to my desktop.

<comment><USER30> Because there are so many on the mobile, huh?

<comment><USER20> it's not like android has been a paragon of os security

<comment><USER31> And iOS is? Or how about Windows? And then there's Linux. Let me guess - <USER2> paragon of OS security are those OS's that no one uses, right?</comment></comment></comment></comment>


70 percent of Kindle owners over 40? - <AUTHOR> http://news.cnet.com/8301-17938_105-10230969-1.html <comment><USER2> Older people also read books more. And read more books. This is the reader market, not the blog market.

</comment><comment><USER3> Also, a nice feature for older people is that the text can be made large for easier reading.</comment>


How to parse a sentence and decide if to answer "that's what she said"? - <AUTHOR> http://www.quora.com/How-would-you-programmatically-parse-a-sentence-and-decide-whether-to-answer-thats-what-she-said <comment><USER2> This submission reminded me why I love HN: On Reddit, there would have been a flowchart (at best) if I followed the link. Here, there's an engineering solution, with practical tips for machine-learning.

Now I want to build a "that's what she said" bot for Twitter, which will parse new tweets and reply accordingly. (Maybe I will, as a learning exercise.)

<comment><USER3> [http://www.reddit.com/r/programming/comments/gyook/how_would...](http://www.reddit.com/r/programming/comments/gyook/how_would_you_programmatically_parse_a_sentence/)

Actually, a fair part of the links about programming are just the same both here and on Reddit.

<comment><USER2> I don't think so, considering that the 1st comment thread on Reddit is a series of "that's what she said" jokes.

Edit: All the same, I'll try giving /r/programming a chance. As a whole, Reddit looks less civil than HN, but maybe I haven't been fair. People tend to criticize subjects that they don't know about or have never experienced 1st hand, and I'm guilty of that here.

<comment><USER4> On a programming topic, on HN, maybe 20% of the comments are interesting, or at least informative. On a programming topic, on Reddit, maybe 2% of the comments are interesting or informative, but there are 10 times as many comments, the interesting ones are voted to near the top (not necessarily right up there), and some of the interesting Reddit comments don't have an analogue on HN.

<comment><USER5> /agree SNR on reddit mebbe 5%, slashdot %1 here, I don't know 50%? I see some less than useful posts (like this one), but almost no outright trolling/patently wrong posts.

HN makes my daily read list, even if it is a quick glance. Great community.

</comment></comment></comment></comment></comment><comment><USER6> Slightly OT, but I was really intrigued to read about the "Switchboard" Corpus ([http://www.ldc.upenn.edu/Catalog/readme_files/switchboard.re...](http://www.ldc.upenn.edu/Catalog/readme_files/switchboard.readme.html)), especially given they were from audio recordings.

It seems, unfortunately, that the recordings aren't publicly available, although archive.org seems to have small sample of the transcripts: <http://www.archive.org/details/SwitchboardCorpusSample>

One particularly interesting section of the above readme was the section on technical issues ([http://www.ldc.upenn.edu/Catalog/readme_files/switchboard.re...](http://www.ldc.upenn.edu/Catalog/readme_files/switchboard.readme.html#technical)) including this example:

"ii.) The third problem was small changes in synchrony between A and B, due to a pseudorandom dropping of 2 ms chunks of data on either side. Over the course of a 10 minute conversation, these could accumulate to a differential of 30 or 40 msec between sides--enough to change a cross-channel echo from inaudible to audible, for example, or from barely audible to very noticeable, for a human listener.

When this bug was finally run down, it turned out to be a piece of code in the utility which extracts conversations ('messages') from the Robotoperator message master file. The code performed a check at each data block boundary to see if the first two bytes had the values 'FF FF'; if so, these were interpreted as header information, and the 16 bytes beginning with "FF FF" were discarded as not part of the speech data. This code was a relic from an earlier version of the Robotoperator which did not deal with mu-law values, and thus never encountered FF in data. In mu-law data, FF is one of two ways of representing zero signal level ('minus zero'). The offending lines of code were removed and the problem ceased."

<comment><USER7> That corpus was frequently used some time ago for performing automatic speaker recognition tests/system evaluations. Today, however, there are more challenging corpora, like those provided by NIST for its bi-annual speaker recognition evaluations (<http://www.nist.gov/itl/iad/mig/sre10.cfm>). These provide more mismatch conditions which require more advanced channel compensation mechanisms.

</comment></comment><comment><USER8> One of the commenters on Quora linked to an academic paper providing a solution to this problem. It was apparently published in ACL-HLT this year.

[http://www.cs.washington.edu/homes/brun/pubs/pubs/Kiddon11.p...](http://www.cs.washington.edu/homes/brun/pubs/pubs/Kiddon11.pdf)

Enjoy. It's easily the most hilarious academic paper I've read.

<comment><USER9> I've seen several better ones, but it's an interesting read nonetheless :) ("applying a novel approach - Double Entendre via Noun Transfer (DEviaNT) ")

As an example of other funny articles, this legal one on the word "fuck" is one of the best I've read recently (found it linked here on HN previously):

<http://moritzlaw.osu.edu/faculty/articles/fairman_fuck>

Of course, the annals of improbable research and Ig Nobel prizes yield several other examples :)

</comment></comment><comment><USER10> "Explaining a joke is like dissecting a frog. You understand it better but the frog dies in the process." — E. B. White

I think that answer at Quora, while awesome, should sufficiently kill TWSS.

</comment><comment><USER11> It's a lot harder than I was expecting.

<comment><USER12> That's what she said.

<comment><USER13> I scanned through this page looking to see if this exact comment would appear here. Now when I see it I realize that it is less funny than I imagined. Maybe because the comment you replied to was a trap you fell for.

</comment></comment></comment><comment><USER14> "Pre-trained That's-What-She-Said (TWSS) classifier in Ruby":

<https://github.com/bvandenbos/twss>

</comment><comment><USER15> Here's my algorithm: Return false

<comment><USER16> Probably a pretty good baseline.

</comment></comment><comment><USER17> I would gem install twss

<http://rubygems.org/gems/twss>

</comment><comment><USER18> Answer ignores a very public and growing corpus of data: IRC channels.

<comment><USER19> The author makes a great point, however, about the ability to link those two together. I'm sure you'd end up with a lot of false positives from IRC as even if it's attributed (ircuser: TWSS!) the flow of IRC conversations is such that it's not always the last thing _ircuser_ said that is being replied to (because of network lag and just general reply lag in IRC).

Although now that I think about it... twitter probably often suffers from the exact same issue, although somewhat mitigated as people often include the original tweet in their reply.

<comment><USER20> Unless I'm missing something, this only occurs if someone sends two messages to someone and the receiving user responds to the first message but gets the second message before sending his.

Using average read/write times for a message - taking its length into account - it should be fairly easy to check if someone could have read and written a response to a message. Assuming it is a response if he could have written one in time should be fairly accurate.

You could probably even cheat and use a constant time while still getting good results.

</comment></comment></comment><comment><USER21> Working on this, if anyone wants a corpus (positive examples from twssstories.com, negative from fmylife.com)

<https://gist.github.com/945614>

</comment><comment><USER22> A British equivalent to 'that's what she said', would probably be 'said the actress to the bishop'.

</comment><comment><USER23> 2 suggestions:

1) Ask people in mechanical turk to write those sentences. Then you can ask others to verify them - you get far with few dollars

2) Include higher level features - for example bi-grams, there is more information in them

Also: corpus at <http://thatswhatshesaid.com/> (I have no relation with this site)

</comment><comment><USER24> Hey, let's see Google's prediction API take on this challenge, if it's so general. Just find a decent corpus and pop it into a GAE app.

In any case, I think most of us are now primed to try out some implementation or another now. It would be a lot of fun regardless of the quality. Actually, the false positives are probably funnier.

</comment><comment><USER25> I would be very surprised if a simple bag-of-words approach works in this case. Intuitively, it's not the presence of certain groups of words that's important, it's something much more subtle and structural. Something that might be promising (and I'm being very handwavy here) is to discover 'template' sentence structures, as well as the particular words that populate those templates that result in TWSS.

<comment><USER26> I don't believe templates would work very well. The variations of sentences are too great such that you will result in very low recall.

An alternative solution is to attack the problem backward, training on terms (words or phrase) from sex-related conversations (such as adult chatroom transcripts). Then, from general corpus (Twitter or generic chats) identify terms that highly cooccur with those sex-terms. I would still use a Bayesian classifier, with strong prior against labelling something as a TWSS.

</comment></comment><comment><USER27> If this were to emulate some of my friends then it could respond to just about anything with "that's what she said."

</comment><comment><USER28> I think this is marvelous but overthought. Here's my Python code (2.7 and 3.2-compatible):

twss = lambda sentence: True

</comment><comment><USER29> Nice try Skynet.

<comment><USER30> Skynet? Who's heard anything of skynet? I'm GLADoS.

Now, will you stand over.... there?</comment></comment>


How my planned books are organised. You're welcome to try it - <AUTHOR> https://www.dropbox.com/s/x8fti7fkojxpmwf/Screenshot%202018-06-18%2013.13.57.png?dl=0 <comment><AUTHOR> For anyone who's interested to try it out, feel free to join [https://www.candlapp.com/](https://www.candlapp.com/)</comment>


Ask HN: Questions from a self-taught (UK) intern - <AUTHOR> Hi,
I'm currently an intern developer for Coca-Cola European Partners and I'm in a slightly unusual position for an intern because I'm completely self-taught (as opposed to being a university student).
My responsibilities are mostly frontend stuff in HTML + CSS and some work with Saleforce, but I'm the only programmer on my current team so I'm doing bits and pieces all over the place. I've also got free reign to teach myself anything reasonably relevant when I'm not directly working on a project, which has enabled me to solidify my understanding of Javascript and start learning Haskell.
Currently I'm a month in (with an expected duration of three months, but the possibility that it'll be extended to six months). My eventual goal is to get into backend web development and move to London.
General advice from people who've been in a similar position would be great, but I also have a few specific questions:
- How much value is there (if any) in having worked for a relatively 'prestigious' company like Coca-Cola for development roles?
 - I often read about how getting your first job as a self-taught programmer is the hardest part of the process. To what extent does having previously interned somewhere help with this?
 - Is it reasonable for me to be looking/applying to jobs now with the expectation that I've got two months left, or should I wait until closer to when I finish to start applying?
 - I'm planning to apply to both Junior dev positions and other internships (if the latter is closer to what I want to be doing in role), but I'm under the impression I was pretty lucky to get my current role as a non-student - how true is that? <comment> ix-hispana Hi, I work on web in London. The prestige of the company isn't as important as having proved you can work and learn. In fact you should probably ask that on interviews - what will you team be like and what kind of opportunities will you have to learn and grow as a dev? It's never good for a dev to work alone, but it's especially harmful for junior devs.

I don't know the market for Haskell. If you want to get into backend for web, you can't go wrong with Node.js. Agencies using those services usually prefer the backend written in Javascript or Typescript so more devs can, in principle, work on both ends. Moreover, you can get into cloud services like AWS and Azure easily if you know Node. I reckon it will be easier to start as generic "web developer" or "junior developer" and then gradually evolve into backend. Specialists tend to be mid to senior.

You should start sending applications on your last month. I don't think it will take you more than that to land a junior role in London (there are many more junior openings than internships). But you can create a Linkedin account today if you don't have one.

<comment><AUTHOR> Thanks for taking the time to advise me. It's good to know that having been the only dev on the team is a potential red flag; I'll make sure to de- emphasize that on my resume.

Based on searching Indeed/Whoishiring etc. the market for Haskell developers is fairly small, but London has relatively high demand for developers with Functional Programming experience (since Fintechs tend to like it). My main goal in learning Haskell is just to broaden my programming horizons, but I'm quite enjoying it thus far so FP is a career niche I might explore. With luck I'll be able to get some Node experience doing one of the projects my bosses are discussing as well.

I do have a Linkedin, but it's relatively basic so I'll make sure to update that and my resume before I'm in my final month. In the event that I reach the point where I've not much to learn from my team/projects here by the end of my first three months, is it still worth continuing the internship (assuming I get offered an extension) or is all the value in what I learn as opposed to being able to say I've 'worked' x months?</comment></comment>


The Trouble with Silicon Valley - <AUTHOR> https://www.theatlantic.com/magazine/archive/2020/01/wheres-my-flying-car/603025/ <comment><USER2> I think the worst part of Silicon Valley is this idea that everything is a technical problem.

Traffic issue? Let's not solve the political problems to make public infrastructure, uber, self driving cars, (even tunnels underground) will save the day!

Education? we need iPads in schools delivering "personalized" education.

Every issue across the board is like this.

Its all B.S. and somehow they have convinced "educated" people that their vision is only correct one. They have co-opted the imagination of elite Americans and that is their biggest crime.

<comment> spaced-out >Traffic issue? Let's not solve the political problems to make public infrastructure, uber, self driving cars, (even tunnels underground) will save the day!

If you follow the politics of the Bay Area, you would know that tech companies do lobby for infrastructure and housing improvements, and are even willing to put up their own money to fund it.

These proposals are generally DOA because the most powerful voting block, property owners, will aggressively oppose anything that may threaten the appreciation of their "investment".

<comment><USER3> It's time for Georgism. We're all victims, even the corporations and the mega- rich. Capitalists and socialists alike ought to be able to get behind it at least as a vast improvement over the status quo.

<comment><USER4> I love the idea of a land value tax, but it has about as much chance of being approved by the landed gentry (let's call them what they really are) as any of the other measures that threaten their "investment."

<comment><USER5> I also like the idea and there should be a way to phase it in slowly so that it does not tank property values. Referendums that increase property taxes do get passed regularly.

A big issue with LVT is that it seems it can easily result in displacement of residents. Long-time homeowners, especially those on fixed income may not be able to keep up with the increasing tax and will be forced to sell.

</comment></comment></comment></comment></comment><comment><USER6> I think one of the problems is that software developers are focused on domains that you can do with _just_ software (and just expertise in software). Domains where something can be prototyped in a weekend, with no research or regulatory hurdles or real-world knowledge. Something you can just put on the internet and let it go. This leads to a huge number of business ideas that are either a) for developers, or b) really superficial like "X but with software".

I think there's a huge market opportunity for programmers who are willing to dive deep into other fields, and coordinate closely with people who don't work or think the same way that they do. Domains where _the point isn 't the software_. Governance, energy, industrial design, scientific research, etc. These are areas that seem ripe for software-based improvements, but have gotten orders of magnitude less attention than, say, cloud hosting.

I don't think the blame lies with a single party: software developers are biased by a desire for agility and being in control, but members of the above domains are probably also not taking the initiative they should be to solicit these kinds of solutions.

What if there were a conference that specifically paired software developers with these other hard-to-penetrate industries, as a cross-pollenation exercise? I wonder what would come of it.

<comment> non-entity I've seen positions for "scientific programmers" that seem pretty interesting and I imagine a lot of those fields could be helped with software, but always want a PhD in the domain field.

<comment><USER6> That sounds like more of a "you're a scientist but you write bespoke code as an effort-multiplier". What I'm talking about is, you go and talk with people in those fields and figure out what they waste their time doing, and build generalized tools that can amplify effort and improve process at a much grander scale.

<comment> spaced-out At one time I thought that would be my dream job, which is why I got a minor in Physics. I ultimately went and got a job at a normal tech company because I realized:

1\. Working in that field, funding is often tied to government grants, so I would have been making a lot less money, and likely working harder.

2\. Little to no opportunities for advancement, or even having your ideas heard, because you'll be the only one in the room without a PhD, in an industry where those 3 letters are literally everything that matters.

3\. Even people with PhD are treated like crap in the hard sciences. I have a friend that has a PhD in biology, makes less than 1/3rd of what I do, and works longer hours.

If we as a society want the best minds to go into those fields, we need to pay those people more.

<comment><USER6> What if people started software companies tailored to those segments and sold to them as customers, instead of trying to get hired there?

<comment> spaced-out I haven't looked into that, but in my anecdotal experience the problems are:

1\. There is simply less money in that line of work because it's tied to government grants.

2\. The Physics field (which I have direct experience in) is dominated by old people with PhDs. They're very smart people, but also tend to be stubborn, and (again generalizing) are not too keen on listening to the opinions of people who don't have a PhD.

</comment></comment></comment></comment></comment></comment><comment><USER7> > _We could focus, as journalists tend to do, on the depredations of the > connected life. As Facebook, Twitter, and YouTube have devoured the online > world, they have undermined traditional media, empowered propagandists, and > widened America's political divides._

At least they lead with this so you know that it's going to be another mainstream media piece lamenting their lack of influence in the world.

</comment><comment><USER8> what if the extrapolations from the past are wrong? Perhaps people don't work on faster airplanes because they don't need faster airplanes, but instead they want to avoid traveling altogether. sci fi ideas from the past are nice, but they were based on linear extrapolations from their contemporary reality -- faster horses indeed. imho the primary focus of innovation at this time should be biotech for life extension , eradication of disease and hunger.

Faster roads in an increasingly remotely-connected world does not seem very forward-looking, instead the world needs faster networks , cleaner cities, the ability to become independent from megacorps, and decent communities that can be enjoyable to live in. economists or technologists often claim to know what people want, but maybe they 're not being observant of what makes people unhappy

</comment><comment><USER9> While there are plenty of problems with Silicon Valley, I'm not sure that we should lay slow growth and widening inequality in the US at tech's doorstep. For one, the timelines don't even align: inequality has been growing (and growth slowing) since the 70s and 80s, not only in the United States but also in most other developed countries. Neither is the author particularly well- versed on the economics of inequality - during much of the 19th century (i.e., the Industrial Revolution), inequality continued to increase even though there was an upturn in certain indicators such as real wage growth and health outcomes. The author even seems to admit this at one point, so at the end of the day the piece simply boils down to "Tech is bad, so we should figure out a higher-growth industry to make bets on."

</comment><comment><USER10> > they have undermined traditional media, empowered propagandists, and widened > America's political divides.

An incredible statement from the Atlantic. The lack of self awareness is astonishing.</comment>


K programming language (2005) - <AUTHOR> http://archive.vector.org.uk/art10010830 <comment><USER2> This concise article describes K2 (version 2 of the K language), and, at the level it describes, little has changed, so it is still a good introduction to the language 12 years later.

However, beyond the basics, a lot has changed since (current commercial version is K4, current dev is K6 AFAIK): Dictionaries have become better integrated in the language, the database layer was rolled into the language, the integrated (bare bones and milspec-looking but ultra effective) electric GUI was dropped, http and web (as both client and server) were added to the core, 64-bit integers, nanosecond timestamps, GUIDs were added as core types, and probably a few more things I forgot.

If you find this article interesting, you may want to experiment with JohnEarnest's ok [0], which provides graphical playground (implemented in JS and runs everywhere) and also read Q for mortals[1] - Q is a syntactic-sugar version of K4, though still the same language underneath.

[0] [https://github.com/JohnEarnest/ok](https://github.com/JohnEarnest/ok)

[1] [http://code.kx.com/q4m3/](http://code.kx.com/q4m3/)

<comment><USER3> Why remove the GUI stuff?

<comment><USER4> No commercial demand.

The K2 GUI was very handy for programmers, for rapid prototyping, but it is impractical to use it for making visually polished UIs you would give to a customer.

If a feature of K doesn't pull its weight, it is removed.

<comment><USER3> Gotcha...I would assume to leave it in for use in interactive data analysis, but if you REALLY want to keep things small...

<comment><USER4> Arthur starts over completely from scratch with each major release, and abhors drawing in dependencies. It's a good strategy for traveling light.

</comment></comment></comment></comment></comment><comment><USER5> If you want to try out K, you can either go to Kx and download the 32bit version of kdb+. \ at the prompt (on its own) will enter K mode. This uses K4.

Alternatively, there's the free and open source Kona, which is an implementation of K3, the preceding version.

[https://kx.com/download](https://kx.com/download)

[https://github.com/kevinlawler/kona](https://github.com/kevinlawler/kona)

<comment><USER6> I think my favorite way of trying K is John Earnest's JS-based interpreter Ok:

[http://johnearnest.github.io/ok/index.html](http://johnearnest.github.io/ok/index.html)

</comment></comment><comment><USER7> Arthur Whitney seems to have been developing this stuff pretty steadily. There's a sparse-but-quite-informative website at [http://kparc.com/](http://kparc.com/) where you could follow the development of the K5 and K6 dialects. It's been pretty quiet the last year or so, but there was a comment on HN a month or two back which suggests that K7 could be on its way.

For playing around with the basic constructs, [https://github.com/JohnEarnest/ok](https://github.com/JohnEarnest/ok) is nice (and itself pleasingly concise). Currently targeting the K6 dialect, I think. It doesn't really have any of the "database" side of things, though.

<comment><USER3> Any news on kOS? I'd love to build a barebones high performance computer with K running on bare metal.

<comment><USER7> Nothing I've seen recently. Seemed to be tied to K5, and there's been at least one re-write since then.

<comment><USER8> Pretty sure the idea is done; Art's working on other things at the moment.

</comment></comment></comment></comment><comment><USER9> Does anyone know of a good description of which parts of K's implementation makes it so fast? I have heard the interpreter itself is quite small, and easily fits in L1 CPU cache, which helps of course. Are the primitives further implemented using vector instructions or multi-threading? Does the K interpreter pattern-recognize compositions of constructs and dispatch to an optimized implementation, like with APL "idioms"?

<comment><USER10> > I have heard the interpreter itself is quite small which helps of course

It helps a lot more than a lot: Small is everything.

"Main memory" is something like 1000x slower than "L1 CPU cache", so if your whole program lives in L1 you only pay to receive data, which streams in as fast as main memory can. How can you possibly go any faster than that?

The interpreter looks a lot like this[1], scan a character, do something with it. There's no scanning phase, or AST, or very much analysis at all. Being simple helps keep it small. Writing dense makes it easy to see (without scrolling) similar code which can be refactored into less space. This is how small (dense) source code can also help make small object code. This is how small (dense) source code is fast!

[1]: nsl.com/papers/origins.htm

Once you've done all that, vector instructions and multi-threading can help eke out a little bit more speed. Recognising a couple characters at a time and treating them specially can sometimes help as well, but it also can cost a lot of object size quickly, so there needs to be some balance.

<comment><USER9> You can "go faster" than memory bandwidth by accessing memory more intelligently (that is, by reducing the amount of memory traffic, possibly by improving cache behaviour). The classic example is loop tiling for matrix multiplication. Here you write significantly more code, but reduce accesses to main memory by a good constant factor. Sadly, with modern architectures, just keeping things small and simple is rarely the way to peak performance. My experience from doing high-performance programming (mostly on GPUs) is that you have a very generous budget when it comes to how large your code can be, but you have an extremely tight budget when it comes to how large your data is. (Of course, in absolute terms you access significantly more data than code, but you generally mostly worry about data size, not so much code size.)

</comment></comment></comment><comment><USER3> I wish there was a way to use this at my company without the monstrous price tag. I also wish kdb+ came with much better dashboard support kinda like Tableau...I want to retrieve and mold my data quickly with kdb+'s query language and once it is in the proper form, play with several chart types.

<comment><USER11> The 32-bit edition is free

<comment><USER5> Can't be used commercially.

<comment><USER12> You can build a PoC/argument for why your organization should use it commercially

<comment><USER3> Very difficult with large IT departments to get something unusual like this since you need hardware, a way to transfer data from your main database into an SSD to really take advantage of kdb+. Doing that would step on the toes of several departments and would require a large project to happen. Then you have the problem where many people aren't array language savvy. If kOS had a better way to build real time dashboards I would pay more attention. I really wish I could get a personal setup at work to do this (on the cheap), but classic IT really hates things outside their cotrol.

<comment><USER11> _classic IT really hates things outside their cotrol._

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

The author of that article has a very biased view tho'. An organisation that finds a lot of shadow IT happening probably ought to replace the head of the IT department since he or she is clearly not delivering what the users actually need.

From the link: _Shadow IT can act as a brake on the adoption of new technology_

LOL!!!

<comment><USER3> IT should exist to help the domain users, but after a point they get too big and start to dictate what gets used even if nobody wants it. Like choosing the data analytics technology for the data analytics team when it is what they don't want/need. So then your data analytics team eventually goes outside budget to get what they actually wanted and you have two products. Very dysfunctional and common.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Is there a variant of this family of language that has readable syntax?

<comment><USER3> Yea it's actually the most readable in the family to those who haven't put the effort into learning the array paradigm. Dyalog APL & J are the two other main languages in the family that have the largest user bases. Both are pretty awesome.

<comment><USER14> +1 to J. It is open source, has lots of libraries, documentation, examples, and runs on most mainstream desktop platforms.

</comment></comment></comment><comment><USER15> I still use k2 in addition to k4. Being able to see which things change and which stay the same between versions helps in the slow, thorough type of learning process. (I am not a fast learner. I am a thorough learner.) I would love to get a copy of k5 or greater but I am not a programmer by trade and doubt I would pass the audition.

Although I stopped using Windows, X11 and Mac a long time ago, I have tried k2 on Windows and it is _extremley fast_ , irrespective of whether the computer is old and "underpowered". I used it to instantaneously generate plots and charts from the command line, instead of driving Excel with some scripting language. This is software from the late 1990s early 2000s.

RosettaCode wiki needs to fix its k entries or turn off the silly Cloudflare email protection or whatever is causing the problem. The "@" symbol and subsequent characters are being replaced by "[email protected]".

[https://rosettcode.org/wiki/Category:K](https://rosettcode.org/wiki/Category:K)

k4 can be integrated into daily use in UNIX-like OS for text processing.

Professional example: [https://github.com/adavies42/qist/blob/master/lib/awq.k](https://github.com/adavies42/qist/blob/master/lib/awq.k)

Amateur example: (remove all duplicate lines)

       AWK
       #!/bin/sh
       awk '!a[$0]++' < $1 > $1.tmp;
       exec mv -v $1.tmp $1;

       k4
       #!/bin/sh
       exec echo "k).Q.fs[l:0::\`:$1];l:?:l;\`:$1 0:l"|exec q >&2;

Experiment: keep increasing the size of the file passed as $1 until the AWK version fails.

</comment><comment><USER15> [https://github.com/JohnEarnest/ok/blob/gh- pages/docs/Fromk5T...](https://github.com/JohnEarnest/ok/blob/gh- pages/docs/Fromk5Tok6.md):

Padding Can Truncate (Done)

In k5, padding was treated as a minimum size for the output string:

      2$"abcde"
     "ab"
      6$"abcde"
     "abcde "

In k6, as in older Ks, padding will produce a string with an exact length, truncating if necessary:

      2$"abcde"
     "ab"
      6$"abcde"
     "abcde "

Is this correct?

       / k4
       6$"abcde"
      "abcde "
       2$"abcde"
      "ab"

       / k2
       6$"abcde"
      " abcde"
       2$"abcde"
      "de"</comment>


Reddit is down - <AUTHOR> http://www.reddit.com/

<comment><USER2> Seems to be back up now (at least for me in Ireland).</comment>


AOL to disable third-party app access to AIM - <AUTHOR> https://arstechnica.com/business/2017/02/aol-will-cut-off-third-party-app-access-to-aim/ <comment><USER2> This makes me so remarkably sad. There are so many people from my younger years online this cuts me off from. People whose names I never knew.

They haven't been online in years, but the potential was still there that maybe one day they'd pop on. Alas, no more.

</comment><comment><USER3> AOL Instant Messenger still exists???</comment>


Show HN: Mavericks Login Panel In CSS (after one week of Codeacademy) - <AUTHOR> http://jsbin.com/ITepEQoG/3

<comment><USER2> Keep going at it if you're enjoying your progress. It's good to see that you're getting the hang of things like border-radius and the display property after only a week.

The biggest issue I have with this right now is that the background image is around 3.4mb, which is just way too heavy for a web asset. A good exercise would be to figure out how you can bring that down. Compression can help, but sacrifices quality if you take it too far. Downscaling would be a reasonable thing to do, given that there will be very few screens that use a 5120px width. There are strategies you can use in cases where the screen is unusually large, like fading the edges of the image to a solid color, or fading the edges to transparent and placing the non-repeating background over an element with a repeating background.

<comment><AUTHOR> Thanks for the support! I'm also learning jQuery, so I can create a complete version with the animation after clicking on a specific user. I'll include your observations :)</comment></comment>


New emojis turn into aliens when sent to iPhones running earlier iOS - <AUTHOR> http://venturebeat.com/2015/04/08/new-iphone-emojis-turn-into-aliens-when-sent-to-iphones-running-earlier-versions-of-ios/

<comment><USER2> Not all that surprising. That's what Apple's Unicode placeholder symbols look like. The alien is a kind of cute choice for "unknown emoji".

Would we prefer they looked like [01F 574] in a rectangle?</comment>


DreamHost, web host of controversial sites, hit by DDoS attack - <AUTHOR> http://www.zdnet.com/article/dreamhost-web-host-of-controversial-sites-hit-by-ddos-attack/ <comment><USER2> Thanks, zdnet, for the clickbait headline /s

It's not like "controversial" sites aren't hosted elsewhere .. or that DreamHost is the dominant host of said "controversial" sites</comment>


Adventure Games Deserved to Die - <AUTHOR> http://whatgamesare.com/2011/09/adventure-games-deserved-to-die-narrativism.html

<comment><USER2> No, they deserved to get better.

Some were riddles, yes. (I'd have said they were jokes, actually.) But the good ones were puzzles. Puzzles are a lot harder to write than jokes.

I'd argue that the Myst series was the best of the genre. There were no riddles or jokes there. Every single challenge was a puzzle, with clues that were either obvious or hidden. Never were they absent, like a lot of adventure games.

What we're seeing now is FPSs that have adventure elements. Very few of them, but they're coming along. I even saw a hidden object game that was half adventure game! It got my 9 year old niece interested in adventure games, and she had quite a lot of fun with the copy of the original Myst that I bought her. (Her grandmother and mother helped her with it, some, but she was pretty good at it.)

So no, they didn't deserve to die. The good ones were amazing, and the bad ones were horrible, just like every other genre.

</comment><comment><USER3> At least they _had_ a story.

Anyway, what kind of games does the author propose as better?

The article really seems to boil down to "I don't like them."

</comment><comment><USER4> I don't understand how this article was any better than, say, this Old Man Murray post, written over a decade ago:

<http://www.oldmanmurray.com/features/77.html>

What ended up happening was that adventure games stopped being commercially viable as an industry. And that's fine. So what?

<comment><USER5> "adventure games stopped being commercially viable" for some is not exactly a secondary detail

</comment></comment><comment><USER6> I enjoyed Rise of the Dragon immensely. I'd play a comparably intricate and engaging 'point and click' game today.

This blogger doesn't know what they are talking about.

<comment><USER7> Yeah. Not to mention the photo captioning the piece is from Grim Fandango, another one of the best point-and-click adventure games ever made.

</comment></comment><comment><USER8> Sword and Sworcery is an adventure game and it's awesome. Came out for iOS in 2011. <http://www.swordandsworcery.com/></comment>


Ask HN: What Are Your New Years Resolutions or 2018 Goals? - <AUTHOR> <comment><USER2> I decided to note on a daily basis what I learned over the day. To commit to it, rather than being a note in a note book, I made it as a blog[1] on which I post daily. It is badly written and really incomplete but as it is mostly for myself, I have no issue with it.

The ultimate goal is to see what I learned over a year so I can better appreciate the progress I made, rather than only base my retrospective on feelings. It might also be useful to find what I learned but can't put the name on it, or find links to interesting things I found several months ago.

To help staying focused, I decided to fix goals and rewards. The first reward is on January 1st if I haven't skipped a single day from when I started.

[1] [https://today-i.netlify.com/](https://today-i.netlify.com/)

<comment><USER3> I need something like this. Maybe I'll whip something up in rails to get a blog template started.

What did you use to set your blog up (language/framework/web-builder)? How long did it take you? It looks nice.

<comment><USER2> It took me about an hour. I used hugo [1] with netlify [2] to publish and forestry [3] to edit, and everything is on github [4].

[1] [https://gohugo.io/](https://gohugo.io/)

[2] [https://netlify.com/](https://netlify.com/)

[3] [https://forestry.io/](https://forestry.io/)

[4] [https://github.com/GuillaumeRochat/today-i](https://github.com/GuillaumeRochat/today-i)

</comment></comment></comment><comment><USER4> I'll skip the usual suspects. I successfully made several positive changes this year. I'm going to improve upon it further next year.

\- Launch the webapp that I'm working on. I plan to do it in January.

\- Be mindful, especially of how I spend my day. I made [https://crushentropy.com/](https://crushentropy.com/) to make this easier. It has been working out great. I can see that my productivity has gone up, my attention isn't scattered, and I feel more content by the end of each day. I'll do more of this in 2018 and add more related habits and routines.

\- I read 33+ books so far this year: [https://kirubakaran.com/bookshelf/](https://kirubakaran.com/bookshelf/) This is my current personal best and I'll try to beat this in 2018. Most of the time for this came from cutting back on Hacker News and Reddit, which don't relax me as well as reading a book for 30min does.

\- I couldn't travel as much as I wanted to in 2017. I plan to compensate for this in 2018 ;-) I also plan to hike, snowboard, and play racquetball more than I did in 2017.

</comment><comment><USER5> I've found that committing to a single meaningful word for the year works better than resolutions.

Two years ago the word was "space". I made more room in my life for growth and change that year.

This year the word was "presence". I went on quite a personal development journey and being more present, particularly with my emotions and physical body, was definitely a strong element of that journey.

For next year I'm thinking of breaking my rule and having two words, because it feels like they will work best together: "patience" and "flow".

I'm curious if anyone else can think of a word that seems to be calling to them this coming year.

<comment><USER2> Given what I started and how I've been thinking, maybe "aware". Being aware of what's happening around me, of the thoughts I have, of the progress I make, doing the mental process of noting things rather than being passive about what's going on. Does that make sens?

<comment><USER5> Yep, definitely makes sense! I guess it's similar in meaning to if you chose "conscious" or "present"...?

<comment><USER2> Maybe, but I see "aware" as noticing things external to myself as opposed to "conscious" or "present" where it has a more spiritual, intra-personal meaning.

Or maybe I'm not understanding the terms the right way as I'm not a native English speaker and may put concepts and meanings from my native language into these terms.

</comment></comment></comment></comment><comment><USER6> 1\. Read a book a week. This is doable if i dedicate an hour a day to reading and I pick books that end up being page turners.

2\. Play my electric guitar for an hour at least every other day.

3\. Put $1000 a month away in my savings account.

4\. Learn to implement some basic computer science algorithms in JavaScript. I don't know how to do binary trees or hash tables and I'd like to be able to teach them at the Javascript fundamentals meetup I run once a month.

<comment><USER7> >3\. Put $1000 a month away in my savings account.

I don't want to assume your financial goals but you might want to talk to a financial planner before just sticking it in a savings account. Unless this is a repository for cash you need short term and with immediate access this is the worst place to put it.

<comment><USER6> My boss just recommended a tax person to a bunch of us new hires- we're all 1099 contractors. He said basically the same thing as you. I want to start doing things like maxing out Roth and Sep IRAs, or whatever will end up making sense for my position.

</comment></comment></comment><comment><USER8> This is the year I'm finally going to learn front end, just enough to prototype. Don't roast me alive, but I'm thinking of starting with jQuery. It seems much more learnable for a web stack beginner, and probably serviceable for a long time to come for someone who mainly prototypes ideas that need an elemental gui.

<comment><USER9> I would learn react or angular first. I think the barrier to entry is the same (depending on your background) and you will get much more out of it.

Beyond that, I would suggest learning how to take a psd website design and turn it into HTML. This is a great skills to have. Adding functionality on top of the HTML with react or angular is easy once you know how to break a website down into digestible pieces.

That being said, it is your resolution. I'm not trying to force you into anything. Just giving advice from my experience.

<comment><USER10> I think jQuery is better for a beginner because there's less stuff there. It's closer to learning raw HTML/CSS/JS, which will serve you well in the future, once the next thing replaces react/angular.

You can also just drop a single CDN URL into your web page without worrying about a JS dev environment, which is not simple to set up these days. That stuff is useful eventually, but I think it's distracting at first and obscures the fundamentals of how the web works.

<comment><USER8> Thanks. These observations confirm my asssumptions.

</comment></comment></comment></comment><comment><USER11> Mine is to write at least two articles per month on my blog [http://mez.cl/a](http://mez.cl/a)

<comment><USER12> Do you know you have 99/100 Google Page Speed score? Fix "Compressing [http://mez.cl/a/](http://mez.cl/a/) could save 1.4KiB (59% reduction)." and you're good.

Due to a personal project I've been quite obsessed with Google Page Speed lately and this could be the 2nd website I've come across in the wild to have a 100/100\. Shoutouts to [https://principles.design/](https://principles.design/) being the first one.

<comment><USER11> Thanks for the tip, this is indeed something I'd be proud of :)

I decided arbitrarily to make every post self-contained inside a single HTTP request, and it's nice to see this single decision is already 99% of the job.

</comment></comment></comment><comment><USER13> Get my personal finances in order. I have no debt, a good savings going, and a decent chunk in a 401k from a previous company. Other than that, I have done basically no investing and I know I'm leaving money on the table.

<comment><USER14> s&p 500 + real estate if you can.

<comment><USER15> Real estate is not a passive investment and not something to get into casually because you have money and want to grow it.

<comment><USER16> You can passively expose yourself to real estate if you wish - there are plenty of real estate ETFs for example.

</comment></comment></comment></comment><comment><USER17> Shift focus from building products to building the people who build the products.

I've found that as your leadership/management scope increases, there just isn't enough of yourself to tackle all the big/complex technical problems. You can't scale as a person. At first you try to throw technology at the problem, and then process. Finally you realize that the basic building block you need to work with is the person. Get that right and everything else will fall into place. Only problem: coming from an engineering background, this doesn't come naturally to me. So I plan to devote the coming year to master that aspect.

</comment><comment><USER18> Graduate my PhD and get hired in industry. Hopefully in a job that affords me enough leisure time to work on personal projects, of which I have many cooked up but undeveloped at this stage. Exercise more regularly.

</comment><comment><USER3> No...

... soda, red meat, ice cream

... alcohol/cigarettes (even though I don't drink or smoke often anyway, there is just no good reason to do them at all)

... sleeping in on weekends

... computer for first and last 60 minutes of the day

Yes:

\- Meditate >10 min/day

\- Exercise >5 days/wk

\- Run 3-4 day/wk

\- Better-learn and practice good nutrition

\- Work >80 hours per week (job + take action on personal startup project)

\- Write (morning): My definite goal and detailed plan as per rules of "Think and Grow Rich"

\- Write (morning): Anything of importance that may come to mind (and/or possible subconscious breakthroughs from sleep)

\- Write (night): What I learned/did that day

\- Write (night): the next day's 3 major tasks

</comment><comment><USER19> Wake up earlier. Get to the gym before 7AM instead of at night. have an investment plan and stick to it.

</comment><comment><USER20> My goals: do everything in this thread :)

But seriously, nothing major. I just want to incrementally improve my writing, coding and health and reading.

</comment><comment><USER21> I have had a couple of techs I've been wanting to try out and now I finally have the time and drive to do it.

For starters, I'm in the middle of a complete blog rewrite (running away from WordPress), using: Hugo and Bulma.

I'm also upgrading my fullstack tech-stack to: Elixir, Phoenix, Vue.js, Ansible. Used to do: Ruby, Rails, Angular.

</comment><comment><USER22> Spend less time on the computer. Everything else will follow!

</comment><comment><USER10> Keep on making releases of my shell, to the point where people actually use it. Right now I see that there are some downloads, and a lot of people read my blog, but there's not a whole lot of usage.

Latest release: [http://www.oilshell.org/blog/2017/12/22.html](http://www.oilshell.org/blog/2017/12/22.html)

A few people have asked me what it is, and I answered with some links and comments here:

[https://www.reddit.com/r/linux/comments/7lsajn/oil_shell_03_...](https://www.reddit.com/r/linux/comments/7lsajn/oil_shell_03_release/)

tl;dr It's a bash-compatible shell that treats shell as a real programming language.

</comment><comment><USER23> \- reduce reddit intake (and don't just replace with HN)

\- read 2 books a month, I hit my goal of 1 book/month this year!

\- become more present and mindful

\- more physical exercise!

Also stop visiting /r/conspiracy and /r/collapse. It has taken a toll on my mental health and always puts me in pessimistic mood.

</comment><comment><USER24> Adhere to a filesystem... Right now all my files are a mess — often getting saved in random places... I know I can find them with a quick spotlight search, but it tends to bite me a bit when I need to locate a document from several months ago.

That, and keeping a journal of some kind.

<comment><USER7> You should do it! I just looked at mine and I've been keeping notes since June 2007, so earlier this year was 10 years. Hard to believe. I just set a calendar reminder and each sunday I jot down a few things from the week. It really forces me to look back and reflect on the week and helps everything seem like less of a blur. I'd just write what happened at work, or health/fitness updates, what I was listening to or watching, how my relationships were going, that kind of stuff.

Anyway I'd highly recommend it, it's not only cathartic in the moment but it's also a lot of fun to be able to look back on ten years of it. What a different person I was 10 years ago!

<comment><USER24> Thank you for the inspiration :) I think the Sunday-alarm is a great idea.

I always try and do daily-notes and end up getting demotivated after missing a few days... that and all my notes ending up as a stream-of-conciousness...

Will try that system out!

</comment></comment></comment><comment><USER25> I developed some good habits over the last few months such as a more balanced savings/investment plan, quitting Facebook and practicing yoga three to five times per week, so I'd like to continue those consistently for the whole year.

These changes (plus others that I had already made within the last year or two) have left me feeling the healthiest that I have felt in years, both mentally and physically. I feel so much less anxious and more in control of my life, my asthma no longer troubles me and I have lost ten pounds.

</comment><comment><USER26> Building my current project into a profitable business. I've been pushing myself completely out of my comfort zone with this one, can't wait to see how far I can take it.

</comment><comment><USER27> I'm hoping to make a concerted effort to both meditate and journal every day. I began meditating this past year, and it has been a surprising boon to my overall well-being.

<comment><USER28> +1, hoping to somehow fit meditation in my life in 2018

</comment></comment><comment><USER29> I have a few: complete my transition to management, help my wife double the revenue of her side business, be consistent about my workout routine and lose another 50 pounds.

</comment><comment><USER30> I decided to stop caring so much about the world and others, and pay more attention to my needs and desires.

I will start drinking daily and become an alcoholic, want to see how far can I go while still functioning in society. The moment my drinking becomes too much, I will just quit society and disappear.

To show I mean business, I started today.

</comment><comment><USER31> 2017 was a great year for me professionally, where I shipped a few initiatives that I'm proud of. I now work in elixir full-time, which was a goal of mine.

For 2018, I plan on branching out into new hobbies. I'm in danger of becoming a one dimensional person. I think about code most of my waking hours and most of my friends are engineers too. I plan on picking up biking, taking dance classes, or improv classes to meet new people.

</comment><comment><USER32> These will probably be my 2018 goals:

1\. No sugar foods in Jan/Feb 2018 (and limited sugar afterwards; one dessert per week?)

2\. Exercise for 10 minutes, 6 times/week

3\. Medidate for 10 minutes, 6 times/week

4\. Write a journal for 10 minutes, 6 times/week

5\. Walk for 60 minutes, in the morning, 3 times/week

6\. Eat well

7\. Sleep well (at least 7 hours/night, possibly 8 - 6 times/week)

8\. Every month, write a summary of the month just passed.

</comment><comment><USER9> Build a profitable side business. I have a couple started and in a couple months I plan on picking one or two that have the most potential.

</comment><comment><USER33> Live in a tent the whole year, camping and trekking

<comment><USER34> Where do you plan to camp?

<comment><USER33> I'headiamin the south coast of Brazil now (Florianópolis) heading northeast coast

<comment><USER34> Sounds awesome! Any stories to share already?

</comment></comment></comment></comment><comment><USER35> I want to have the goal "be more accepting of things I can't change", but I'm not sure how to make it actionable or measurable. How will I know if I'm achieving it?

In past years I've had very measurable goals and have generally achieved them; things like "have a conversation in japanese with someone in japan" or "get a new job".

</comment><comment><USER36> My 2018 goals are intentionally vague. "Be more of the kind of guy who..."

In early 2017 I set these very specific goals that all revolved around some kind of measured productivity: Learning, doing, making. Then, (my theory is it's because I was on vacation at the time, feeling rested), I set and almost immediately _increased_ the expected output. Memorize a word a day in German? No problem! That's only 365 words...let's ramp that up to, say, five words a day? I can do that with mnemonics...

Well, I gave up on that goal within 10 days, after returning to my normal hectic life. I couldn't even let myself dial it back; I had to quit it entirely (so idealistic, so brittle an approach).

Fortunately, I had also calendared monthly check-ins on my resolutions. I analyzed my progress and realized:

\- I should just trust myself to make up little goals as I go along. My interests changed enough throughout the year that a few single, hard commitments were more like a distraction from my normal, fluid mode.

\- I achieve a _lot_ even excluding any resolutions. I decided to track my accomplishments starting this year (and backfill previous years as best I could remember) in a milestones.txt file. So in 2017 I finished 10+ different personal web projects, completed my 15+ year-delayed university bachelor's degree, started a new business, became an Extra class ham radio operator after starting in the hobby 2 months previous, bought crypto for the first time, learned to use a transceiver and had my first QSOs, got into AMSAT and (attempted to communicate with the pileup that is) Fox-1B, downloaded Russian SSTV images from the ISS, invested in individual stocks for the first time, became a certified handwriting analyst, joined the National Space Society, and finished two other certifications. So with all this, exactly why did I think I needed any new year's resolutions?

\- Any resolutions I have should probably be general directions. This will hopefully prompt me to be more flexible and make needed course corrections along the way, rather than heading toward some fixed point.

Finally, the huge outcome for me was realizing that all of this productivity results in higher anxiety and higher chances for depression (just based on my journals). So I pay a price for achievement. It should be obvious, perhaps, but like a moron I just thought that to achieve big things meant to become happy. A risky thought! There's much more to it.

</comment><comment><USER37> Create more tiny habits that pair onto activities I already do. Mostly Exercise, sit ups every time after I brush my teeth, stretching every time I press snooze on the alarm clock.

A TED talk by BJ Fogg on the subject. [https://www.youtube.com/watch?v=AdKUJxjn-R8](https://www.youtube.com/watch?v=AdKUJxjn-R8)

<comment><USER25> I've wanted to improve my yoga practice (especially balance) for awhile, so I started doing trees and other one-legged balance moves every time I brush my teeth. I don't remember when I started, but it has made a big difference! I can now hold poses that were impossible for me to perform at the beginning of the year.

</comment></comment><comment><USER38> "What Are Your New Years Resolutions or 2018 Goals?" Too not have a new year resolution. I don't need the start of a new year to make goals that I am already working on. I enjoy being flexible and free. However I am committed to learning every day. I have a plan to keep track of and hopefully I will achieve my dreams one day.

</comment><comment><USER39> I _love_ making resolutions.

• In 2014 my headline resolution was "have a pint in all 48 ceremonial counties of England"

• In 2016 it was "go/be abroad at least once each month"

• In 2017, "be under 90kg on Dec 1st, or drink no alcohol in 2018"  (phew!)

For 2018 it's "do something 'cultural' in every borough of London".

<comment><USER40> >"go/be abroad at least once each month"

This is such a dramatic departure from my experience as an American. I'm almost 30 and have left the country once.

</comment></comment><comment><USER41> More exercise

Get back to drawing something every day. Preferably the big comics projects. But anything is far better than nothing.

</comment><comment><USER42> More intermittent fasting. The health benefits are well documented.

[https://www.healthline.com/nutrition/10-health-benefits- of-i...](https://www.healthline.com/nutrition/10-health-benefits-of- intermittent-fasting)

</comment><comment><USER43> Run a 5k, help flip Washington's 5th and 8th congressional districts, get better at baking.

</comment><comment><USER44> I'd love to get a job in NY writing React, I'm currently employed in Philadelphia and a move to the NY area would push me out of my comfort zone drastically. Hopefully I'll be able to achieve it by June.

</comment><comment><USER45> Sleep.

I feel much of the difficulties that I face in life are due to not getting enough sleep. Sleep deprivation has made me less productive, less healthy, and most importantly, less happy.

</comment><comment><USER46> Take more risks - I feel like I've been far too careful with my life choices recently.

Spend way more time outdoors, especially in the mountains.

Start posting regularly to my blog.

Learn a bit of Rust.

</comment><comment><USER47> I'd like to have slightly shorter hair I think.

</comment><comment><USER48> Rehab - after slowly burning myself out over two back-to-back startups, I'm taking a year or two break.

</comment><comment><USER49> Less social media

More cooking

Less apps on phone

More foosball

Less angst (jealousy)

More sharing (Polyamory)

Less work

More toying with locks (lockpicking)

Less flying

More camping

Less beer

More wine

Be less frugal

Support more people with (financial) needs

Weed out the car collection

Do one or two plastic surgeries

Less coding

Collect more art

Less different accounts

More krav maga

Less phones on me

More using different languages

Correct a wrong

</comment><comment><USER14> o continue to grow my meditation practice o pickup an aws cert o close 5x new projects o travel 3x

</comment><comment><USER50> my resolutions are

\- exercise 10 mins every day.

\- reduce sugar intake to 1 tbsp/day

\- start a blog

\- generate 10k in profits with saas.

\- learn swimming

</comment><comment><USER51> I plan to finally get in great shape in 2018 with fitness.

Despite being already 30 years old...</comment>


The Git Parable (building a Git-like system from the ground up) - <AUTHOR> http://tom.preston-werner.com/2009/05/19/the-git-parable.html <comment><USER2> A few issues where "The Git Parable" diverges from real git history and real git behavior:

1\. From the beginning it was known that simple numbering system for snapshot (commit) names would not work without constant access to single central 'numbering authority'. So the history of git is without this meandering; on the other hand git had example in Monotone, existing distributed version control system. But this is certainly minor issue.

2\. The staging area was not created to be able to split changes into more than one commit or keep dirty files in working area (with changes which do not go into snapshot). This is side benefit, and something you should not abuse. The main reason behind staging area is _merging_. This is IMHO fairly important didactic issue.

3\. Git calculates SHA1 of _uncompressed_ object, and then uzes zlib compression on it, not vice versa as it is said at the end of "The Git Parable". It used to be the way described (first compress, then SHA1 of compressed contents) for a very short time and was abandoned; current way allow to transparently improve compression.

<comment><AUTHOR> These points are all true, though I'd like to point out that the post is not intended to be an accurate description of history or implementation. It is meant as a teaching tool, hence the label "parable."

<comment><USER2> Even taking into account the fact that its is "parable" and not recount of the history of Git (which you can find in some detail on Git Wiki, by the way), one point stays: it is IMVHO bad practice to explain staging area in the terms of splitting changes into more than one commit and/or comitting with dity tree, i.e. with some changes uncomitted. Staging area main strength (besides being explicit version of other SCMs implicit to-be-added area) is dealing with CONFLICTED MERGE, and that is how it should be explained, I think.

</comment></comment></comment><comment><USER3> This is a wonderful way to teach. Inspired.

<comment><USER4> I guess. But in this particular case, the early development of git looks almost _exactly_ like what's described. You can go back and read Linus's early descriptions and the traffic in the early days on the mailing list and see the design as it actually unfolded.

Why use a parable when you can use history instead?

<comment><AUTHOR> It takes a lot more time and effort to sift through mountains of emails than it does to read a single post whose sole purpose is to distill all that information into one, easy to consume piece.

<comment><USER5> Here's a couple of interesting posts Linus wrote a few years ago summarizing some aspects of Git's history and design.

[http://firstname.lastname@example.com...](http://email@example.com) [http://email@example.com...](http://email@example.com)

</comment></comment></comment></comment><comment><USER6> This is very nice. It has helped to make the storage mechanism in particular clearer to me, but also some of the nomenclature used when working with Git — tree, blob etc.

</comment><comment><USER7> Enjoyed reading, followed along for most of it, but as the post wound on it became increasingly more dense to make sense of.

Some simple pictures or diagrams would make it perfect.

</comment><comment><USER8> Teaching people more than a few commands would be made a lot easier if there was a proper GUI for git. I find the current GUI to be severely lacking.

<comment><USER9> Which gui? TortoiseGit looks like it is making progress: <http://code.google.com/p/tortoisegit/>

The Porcelain command line interface is quite nice itself. Gitk isn't pretty (not Apple-style pretty at least) but perfectly functional for viewing logs.

<comment><USER10> GitX is pretty awesome for Mac. <http://gitx.frim.nl/>

</comment></comment></comment><comment><USER11> very awesome, should be a part of the official documentation, because it provides a great introduction to the concepts, and the thinking behind them

</comment><comment><USER12> truely awesome article</comment>


Keeping older muscles strong - <AUTHOR> http://now.uiowa.edu/2015/09/keeping-older-muscles-strong <comment><AUTHOR> Interesting page from the company that was founded by one of the researchers as well: [http://www.emmyon.com/research/](http://www.emmyon.com/research/) Looks like they have linked AF4 transcription with age related muscle atrophy and have discovered two small molecules from Green Tomatos and Apple peal that inhibit AF4 activity and reverse age related atrophy in mice. Very exciting.</comment>


Frighteningly Ambitious Startup Ideas - The Redux - <AUTHOR> https://medium.com/on-startups/55d6e81717a2

<comment><USER2> I read 'replacing email as' improving b2b communication tools, not 'replacing email'. Consumer email consumption works (aside from the spam problem) but its business emails that lead to sucky todo lists being passed around. That's a solvable and profitable problem.

<comment><AUTHOR> You could look to replace either it's all about what you see as the problem. Does your spouse email you your shopping list? Do you email yourself a to do list or do you write it down in something like Remember The Milk?

<comment> D-Train I email myself my shopping list. I also email myself "Great Websites" that are now archived forever, and I can just go back to Gmail and search for it. I think I'm inefficient.

</comment></comment></comment><comment><USER3> > The world doesn't need another Social Network or a better project management > tool

Couldn't you replace social network and project management tool with search engine and email app?

<comment><AUTHOR> Yes, I believe that you could but founders are still going to try for both.

</comment></comment><comment><USER4> "Replacing Email in the next two years is going to be the "it" category with everyone scrambling to capitalize on the zero inbox zealots."

How big of a market are the "zero inbox zealots"?

<comment><AUTHOR> Good question, would seem there are enough to warrant the creation of quite a few email products that are supposed to help you get to this "zen" like state.

One of Mailbox App's pitch points is even along these lines: "Inbox zero. Daily.".

<comment><USER5> I've been using Mailbox for a while and the only thing it's really helping me with is the ability to either archive-or-delete, which none of the other clients can easily do.

My main problem is that with my style of thinking, I'll get an email that will make me think, "Yeah, I want to do something about that... later." But _not_ "later" in terms of a calendar date - "later" in terms of when I am enabled to work on it, as in when a blocking dependency disappears. I can't find an easy way to make those emails disappear until they are triggered by me completing other things I care about.

<comment><USER6> just create a label and archive it. deal with the label when enabled

<comment><USER5> Sure, but it doesn't scale well when you're looking at reviewing fifty labels every day to decide whether you're enabled for any of them. Cognitive load. Better for them to disappear and then automatically reappear when you've completed the blocking project.

<comment><USER6> The issue is only you know when you are enabled.

>Better for them to disappear and then automatically reappear

No amount of technology will do this magic.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> I am impressed that is actually on the front page. I wish I had written the post a bit better but I have been away from writing for a long while.</comment>


Yoshimoto Cube - <AUTHOR> http://boingboing.net/2009/01/19/fun-with-the-yoshimo.html

<comment><USER2> Microsoft handed those (well, not the 'double' one) out a couple of years ago as Silverlight/Expression swag, pretty sweet toy and fun to play with.

You can make a continuous folding 2d variant with paper fairly easily as well, though I don't know for the life of me how it's called.

</comment><comment><AUTHOR> Buy one ($65!):

[http://www.momastore.org/museum/moma/ProductDisplay?catalogI...](http://www.momastore.org/museum/moma/ProductDisplay?catalogId=10451&storeId=10001&parent_category_rn=11480&categoryId=11482&partNumber=67866)

<comment><USER3> ha! I just googled for it after I saw it, same link. However cool it might be, I'm not paying 65$ + s&h for it!

<comment><USER4> I feel the same way about a Gomboc (self righting shape) <http://www.gomboc- shop.com/>

I'd love to play with one and leave it on my desk as a fidget toy but it's not worth 99 euro to me for just that.

<comment><USER5> But at least there is a reasonable reason for the Gomboc's high price: the exacting tolerances on the shape.

</comment></comment></comment></comment><comment><USER6> I remember getting a Taco Bell Star Wars toy just like this when the special edition came out.

<http://www.listia.com/auction/20297>

It does the infinite folding thing but doesn't split into two stars.

</comment><comment><USER7> reminds me of disassembling a sphere and reassembling into two spheres. damn topologists.

<comment><USER8> You're thinking of the Banach-Tarski Theorem, sometimes called a paradox. Mentioned here several times.

<http://searchyc.com/banach+tarski>

Same connection was made last time: <http://news.ycombinator.com/item?id=416765>

<comment><USER9> The actual article (linked and quoted in the BoingBoing one) goes into the connection in much more depth, pulling quantum mechanics and the Big Bang into the mix:

[http://forgetomori.com/2009/science/folding-the-yoshimoto- cu...](http://forgetomori.com/2009/science/folding-the-yoshimoto-cube- feeding-5000/)

<comment><USER8> Interesting. When I get back to a fast connection I'll track that down. Thanks.

</comment></comment></comment></comment><comment><USER10> Make one yourself from colored paper. Video showing how it's done at [http://www.metacafe.com/watch/1014711/crazy_star_cube_nice_p...](http://www.metacafe.com/watch/1014711/crazy_star_cube_nice_paper/)

<comment><USER11> I made one out of wooden cubes and two colors of duct tape.

<comment><USER12> Can you post a how-to? This would make a pretty great present.

<comment><USER11> Should mention that I wasn't extremely happy with the result, although it's still kinda neat. The fibers in the tape kind of hang off the edge (perhaps a sharper knife would help with that), and the whole thing is rather sticky, since the edges start peeling up a little. Perhaps something like gaffer's tape would work better.

Not sure I'll get around to posting a full how-to, but the idea is that I took 1 or 1.25" square dowel and cut it into 8 cubes with a hand saw & miter box (table saw with a fence would give more consistent cuts though). Taping involved putting down a piece of tape sticky-side-up, setting down the cubes adjacent to each other, and then cutting off the excess with an x-acto knife.

You should be able to follow a video of one of these to get the joints and proper colors figured out.

</comment></comment></comment></comment><comment><USER8> Some discussion from a year ago, and a link to another video.

<http://news.ycombinator.com/item?id=416514></comment>


Ask HN: How to get started at being a programmer - <AUTHOR>

Hello, I'm currently a rising sophomore at college and I was wondering how would I go about perfecting my skills as a programmer. Is there anything I can do during my spare time I.E. projects that would help? <comment><USER2> Well, I personally just read a lot of stuff over this summer and found certain things that interested me. When I found something cool, I read more about it, and tried to think of some stuff to build in that language/framework/toolkit.

You should do the same. Just read about what's out there, and you'll find something that you really think is awesome. Then you'll be motivated to do some coding!

There's tangible benefits to this too - for me, I reached out to a professor to help out with his research in an area that I found particularly interesting (computer graphics). Just ask around!

</comment><comment><USER3> The first rule of programming is there are a thousand kinds of programming.

All of the great programmers I know got that way by repeatedly thinking up a cool idea they had, researching how to do it, and winging the rest. All you need is Google these days.

Though, of course, schooling can accelerate the learning by teaching you the mistakes of your elders so you can conveniently bypass them.

<comment><USER4> Totally second this comment. The best advice for this sort of thing: hop in. I started by trying to read a few books. I don't think I learned nearly as fast as when I just tried to think of something I wanted to make, and devoted a few hours/days to building it.</comment></comment>