How ACH works: A developer perspective – Part 2 - <AUTHOR> http://engineering.zenpayroll.com/how-ach-works-a-developer-perspective-part-2/ <comment><USER2> If you find this interesting you may find the work Knox is doing pretty cool - we're able to verify funds before we make payments (so there no NSFs), get and verify account numbers without asking for the user to tell us them, and verify the identity of the payor all in one step - we just have them log into their online banking (like you do with Mint or Yodlee except faster). We've never had an ACH file returned ever, and all our payments are 100% guaranteed against everything but chargebacks as soon as they're made.

It takes away just about all these problems. We don't store usernames or passwords so there's no fraud risk there, but it does require some trust from the user to do something they're not used to, but it's super fast and easy for the user. I hope we can help solve some of these problems for developers! (Plus it's only $0.18 a payment).

If you want to try it you can donate to some cool non-profits using Knox on thesimpledifference.com - all three are worthy causes, but I think y'all will find HackCville particularly interesting. A note: the payment happens in an iFrame that is SSL secured, but thesimpledifference.com does not have SSL (currently pending). It doesn't matter really, but I know that can feel odd and 100% understand if that's offputting. Let me know if anyone has any questions!

<comment><USER3> You should fix the lack of SSL security on thesimpledifference.com

Why? iFrame SSL certificates aren't visible, and no, your VeriSign trusted doesn't count. This means users will find it offputting as you note.

Why else? Someone could hijack the HTTP page and point the iframe location somewhere else where they then intercept bank details.

Next knox only seems to support a limited number of banks, unlike ACH which I'm assuming supports alll banks.

Finally 'log into their online banking' worries me. I'd never hand over my online banking details to a third party (I suspect doing so would violate the T&Cs on my account!).

<comment><USER2> Agreed on the SSL bit - we ask all our businesses to use it but we didn't put it on our test site. That's embarrassing I'm putting it up now.

And yes, we serve the 30 banks that constitute 60% of banking volume in the US, and at least 60% of banking customers (although we suspect more, since many people who have a smaller account have a top 30 account too). We're increasing that number, but you can turn our system on so that when we don't integrate, you can still send account number and we do ACH the traditional way.

As for you not wanting to login to your online banking - you may be right! You may never do it. However, I've heard that before from a lot of people who turn right around and use Knox 30 seconds later and then become customers - so I hope you're in that group! There are some people who will be cautious, but it's actually smaller % of people than I initially thought it would be.

<comment><USER4> I don't have a US bank account so this doesn't affect me, but just speaking as "Joe Consumer" you may want to address parent's point about the bank's T&C, since that was the only part of his comment that jumped out at me and the only part you didn't address.

<comment><USER2> It doesn't. Thank you for pointing that out. Mint did a lot of the work for us here to be honest, they made it really easy to get this stuff out of the way.

</comment></comment></comment></comment></comment><comment><USER5> Planet money also did a podcast on this and went into a bit of how the ACH system works (not from a development point of view). It's a very strange system and honestly the episode raised more questions than it answered but it seems there is a lot of secrecy behind how it all works. Also why it all works... The fact that it can take 3-5 business days to transfer money electronically between different banks in the same country is difficult to grasp, but they make an effort to explain why...

[http://www.npr.org/blogs/money/2013/10/04/229224964/episode-...](http://www.npr.org/blogs/money/2013/10/04/229224964/episode-489-the- invisible-plumbing-of-our-economy)

</comment><comment><USER6> My first job out of college in 1987 was a COBOL programmer working on the Unisys version of the ACH system. There were two versions, IBM and Unisys, which were mandated to maintain 100% feature parity. The reason for two versions was that the Federal Reserve System preferred not to sole-source mainframes across its 12 districts.

To understand ACH it helps to understand that it's basically electronic checks. The FRB system was (and is) the nation's clearing house for physical checks. The people who created ACH took as their model the existing system of check processing.

By the time I started, a goodly portion of inbound files came over a wire, but many (if not most) still came on magnetic tapes delivered each day by couriers. A few years earlier all files had come as magnetic tapes and (I believe) before that, punch card decks.

The biggest risk, and the thing we lived in fear of -- and I suppose they still do -- is a "delayed file." If a file cannot be processed by the promised time because of an error in the ACH system, then the receiving accounts are not credited when they are due. This results in "float" \-- interest lost. This can reach into the millions, and when the Federal Reserve is at fault, they have to eat it.

The post talks a lot about rejections. In my day, the largest most complicated program was the "The Editor" which had only one job: to reject files. This beast took the form of a three inch thick green bar printout which I would remove from a hanging file folder each day. If memory serves, about 1 out of 10 lines was GO TO. I could wax on, but suffice to say, this drove me out of programming for 12 years.

When I saw this post, I had to wonder if any of the code I wrote so long ago is still running today.

<comment><USER7> Having worked with Unisys-based financial software in the early 2000's (A Series MCP-based stuff) I can only assume that code you wrote is probably still running. There is a serious commitment to legacy compatibility there (for better or for worse).

</comment></comment><comment><USER8> Please write part 3. That will be very helpful.

<comment><USER9> Seconded, this has been a great series so far.

</comment></comment><comment><USER10> Zen Payroll did a good presentation at Railsconf this year that touched on this: [http://www.confreaks.com/videos/3328-railsconf-too-big-to- fa...](http://www.confreaks.com/videos/3328-railsconf-too-big-to-fail)

Words I thought I would never hear but were in the presentation: "Fax based API"

</comment><comment><USER11> I have written exports from various payroll systems to produce NACHA compliant ACH files to upload to banks, every time there was a problem the bank would get back to us through the customer and we would get super weird or vague responses. In the future I am going to ask for the return codes ( [https://zenpayroll.com/ach_return_codes](https://zenpayroll.com/ach_return_codes)) listed in the article, very useful bit of info, thanks!

<comment><USER12> Writing NACHA exports for an online banking loan repayment system was the worst. Being a Junior Dev at the time, and having my _only_ guidance being a NACHA handbook, with no banking experts to actually explain things, knowing millions of dollars per year would go through the app... Man. Terrifying.

</comment></comment><comment><USER13> Very interesting, thanks! I would also be very interested in hearing some kind of ballpark figures for the fee structure.

There's one problem I've wanted to solve, and thought ACH might be able to help, but really didn't know where to start. This has been very helpful.

</comment><comment><USER14> HOLY COW. Please continue. Would love to hear about the timeline mitigation.

No sarcasm here at all.</comment>


Ellipsed: JavaScript library for multilined text ellipsis, looking for contributors - <AUTHOR> https://github.com/nzambello/ellipsed <comment><USER2> A small, useful library. Good job!</comment>


Darpa Is Researching Quantized Inertia, a Theory Many Think Is Pseudoscience - <AUTHOR> https://motherboard.vice.com/en_us/article/7x3ed9/darpa-is-researching-quantized-inertia-a-theory-of-physics-many-think-is-pseudoscience <comment><USER2> DARPA spending 1.3 million dollars on a fringe theory doesn't seem like that big of a problem; worst-case scenario we learn that it really was a silly idea and move on. Best-case scenario we learn something fundamental about the universe and get a pretty big head start on developing technologies that take advantage of it. In fact, this seems like the type of project that DARPA should be funding. Other research grant-writing agencies are less likely to gamble on something like this, so having DARPA around to occasionally throw a grant at ideas like this seems like a win overall.

</comment><comment><USER3> Reptiloids from DARPA just want to have a flight to Home.</comment>


Resistor color codes, directly in DuckDuckGo - <AUTHOR> http://duckduckgo.com/?q=4.7k+ohms

<comment><USER2> The first program I ever wrote was a resistor color band calculator program for the TI-83. Memories...

</comment><comment><USER3> Really useful, thanks Joe.</comment>


Mind Blowing 3D Optical Illusion [Just stare at it] - <AUTHOR> http://tomelders.com/face.jpg

<comment><USER2> I refer you to my earlier comments: <http://news.ycombinator.com/item?id=2395552>

</comment><comment><AUTHOR> April Fools.</comment>


Why it's a bad idea to put a CNAME record on your root domain - <AUTHOR> http://joshstrange.com/why-its-a-bad-idea-to-put-a-cname-record-on-your-root-domain/ <comment><USER2> Using AWS' A record ALIAS concept does away with this problem. It does mean you have to use Route 53 though.

Alternatively, use an ALIAS record for your apex (domain.com) that is an S3 bucket that redirects to www.domain.com (which you'd proxy through Cloudflare).

EDIT: The ALIASing that Amazon does are internal health checks that are abstracted away. In the event of a failure, Amazon will update the A record with a new functional IP route extremely quickly (or rather, that's how its supposed to work). Also, you aren't charged for ALIAS queries, while you are for CNAME queries (which can add up depending on your traffic).

<comment><AUTHOR> Yes, I don't go into detail in the blog but I link to the AWS Blog where they explain how to do just that. I didn't know about the health checks that's quite nice!

</comment></comment><comment><USER3> This actually makes sense, since the CNAME does not only replace A records, but any record. Not just MX but your NS and SOA records as well.

Much less intuitive is the fact that a MX record cannot refer to a record that is a CNAME itself. [http://www.exchangepedia.com/blog/2006/12/should-mx- record-p...](http://www.exchangepedia.com/blog/2006/12/should-mx-record-point- to-cname-records.html)

Many soho routers performing DNS forwarding give very weird and unpredictive results if you do this.

</comment><comment><USER4> Neat. I'd always filed the "CNAME screws with MX" away in my mind but I never knew the underlying reason beyond "because the RFC says so and it doesn't work IRL".

<comment><AUTHOR> Yeah, neither did I, I just assumed it was just a rule no one followed.... As you can see I was wrong. I'm just glad I finally tracked down the issue before it drove me crazy.

</comment></comment><comment><USER5> TLDR: CNAME doesn't just forward A records, but MX records and others as well.

<comment><USER6> Then couldn't you then add your MX records under 'www' and all will be well? Does this affect DKIM?

<comment><USER7> Except if you add the MX records with a hostname of "www", they'll be used for emails to "email@example.com", which is generally not the desired behavior.

And that still doesn't solve the issue with SOA/NS records, which need to exist at the root and thus will still conflict with the CNAME.

</comment></comment></comment><comment><USER8> As other people have noted, the solution to this is quite simple. Several DNS hosts support using an ALIAS record. The ALIAS record is then replaced with an A record when actually queried.

Not sure which other companies support it, but [http://dnsimple.com](http://dnsimple.com) does.

</comment><comment><USER9> Hi: I'm the co-founder and CEO of CloudFlare. This can be a problem with some mail servers (especially Exchange, in our experience). Good news is we have a solution. We have a feature called CNAME Flattening which dynamically turns a CNAME at the root into an IP address. This solves the issue. We've beta tested this for the last few months and it works great. We haven't exposed in our UI yet but if you write to our support team we'll enable it. We're offering it to all our customers, even as the free tier. We plan to roll it out in our UI soon. Functionally, it's very similar to services that have an "Alias" record without requiring users to learn a new, non-standard DNS record type.

Matthew Prince (@eastdakota) Co-founder & CEO, CloudFlare

<comment><USER10> The problem doesn't have much to do with particular mail servers, but rather with the order in which queries may be made. Let's say the following two records are allowed to co-exist:

        example.com 60 IN MX mail.example.com
        example.com 60 IN CNAME foo.example.org

and that the MX record takes precedence over the CNAME when queried. Imagine a client, C, behind resolver R, and it makes the following queries;

        1. C looks up qname=example.com qtype=MX, R returns the MX record
        2. C Looks up qname=example.com qtype=A, R follows the CNAME
        3. C looks up qname=example.com qtype=MX, R follows the CNAME

The resolver will first resolve the MX record, and cache that correctly, passing the result back to the client. The second query though will result in a CNAME, which will likely invalidate the cached MX record, and the resolver will then follow the CNAME and chase that. The third query may now also follow the CNAME, even though there may not be an MX record at the CNAME target (foo.example.org).

Any non-MX query behind resolver R effectively poisons R's cache, and the MX becomes unreachable. If R gets no queries other than MX queries, or if the MX and CNAME target answers are cacheable for identical periods of time, then it can sometimes work - but it's a tenuous and non-deterministic stroke of luck. If there's even one lookup behind R - from any of its clients for a non-MX, things break again. Some mail servers do perform an A lookup before an MX lookup (which is valid RFC822) and so things never work for those mail servers, as they always poison the cache, but that correlation isn't really the cause of the problem. The configuration is unreliable even in the best of circumstances.

Full disclosure: I work on Route 53.

<comment><USER11> I don't understand what you mean by cache poisoning. If a resolver was queried for a single record type, that doesn't mean that's the only record that resolver will return... That would break all kinds of things. Usually DNS servers return referrals to other record types if they don't find the one they're looking for, but in your example the correct record type always exists, so it should always be returned and cached properly. The mail server may decide to error out if it finds a CNAME where it expected only A and MX records.

 _edit_ Oh, I see, this is a DNS spec issue, not an MTA or resolver issue. According to DNS specification clarification RFC2128, if a CNAME exists, no other record should exist with that name - so in theory a DNS server or resolver could simply drop all other records if it found a CNAME. (That seems like very bad behavior, though!)

      10.1. CNAME resource records

       The DNS CNAME ("canonical name") record exists to provide the
       canonical name associated with an alias name.  There may be only one
       such canonical name for any one alias.  That name should generally be
       a name that exists elsewhere in the DNS, though there are some rare
       applications for aliases with the accompanying canonical name
       undefined in the DNS.  An alias name (label of a CNAME record) may,
       if DNSSEC is in use, have SIG, NXT, and KEY RRs, but may have no
       other data.  That is, for any label in the DNS (any domain name)
       exactly one of the following is true:

         + one CNAME record exists, optionally accompanied by SIG, NXT, and
           KEY RRs,
         + one or more records exist, none being CNAME records,
         + the name exists, but has no associated RRs of any type,
         + the name does not exist at all.

<comment><USER10> It is confusing, but the difference is that a CNAME is cacheable for queries all types. For example, let's say I query the resolver for qname=example.com qtype=AAAA. The resolver finds the CNAME from example.com to foo.example.org and caches that internally. It then descends a level in its recursion, and finds the answer for qname=foo.example.org qtype=AAAA.

But if the next query is say "qname=example.com qtype=MX", the CNAME is still cached and this knowledge can be used to skip straight to the qname=foo.example.org qtype=MX stage; there's no need to ask the nameservers for example.com anything, since R knows that that name is a CNAME to foo.example.org. But of course foo.example.org doesn't have an MX record, and so things break.

This is the why the order matters, and what I meant by cache poisoning.

<comment><USER11> So what you're saying is, resolvers will only look up and cache the one type they were asked to query, instead of caching all types associated with the label? While at the same time later dropping all record types if at some point it finally looks up and caches a CNAME? Sounds like a race condition to me!

<comment><USER10> In general resolvers look up one type and cache the result for that one type. CNAMEs are special; firstly clients never lookup CNAMEs, it's never the qtype. A CNAME is a special kind of answer that says "This name should be considered equivalent to this other name, go find out what that other name has" and as- such the CNAME is cacheable for queries of all types.

It is a race condition, but this race condition only exists if you ignore the DNS RFCs and try to get behavior that DNS just plain doesn't support. I don't mean to point fingers, but in this case that's what happened; CloudFlare's behavior ignores the RFCs [1] and leads to nondeterministic results.

[1] [http://blog.cloudflare.com/zone-apex-naked-domain-root- domai...](http://blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname- supp)

</comment></comment></comment></comment></comment></comment><comment><USER12> The correct way todo this is setup a load balancer, then use route 53 to manage the dns, set the root domain to your load balancer I'D then map the www cname to the root domain, this solves all problems and takes under 5 minutes to configure.

</comment><comment><USER13> www.domain.com and domain.com should not just silently duplicate the same content. If you want one to be "canonical", then the other should respond _301 Moved Permanently_ with the correct address. Duplicate content across domains is a mess for SEO.

</comment><comment><USER14> very happy client of DNSmadeeasy, imho the best DNS provider bar none, they were the first to have ANAME records:

[http://www.dnsmadeeasy.com/services/aname- records/](http://www.dnsmadeeasy.com/services/aname-records/)

<comment><USER15> I found them to be kinda expensive at moderate scale. But maybe I was doing something wrong.

</comment></comment><comment><USER16> We should not be using A records for websites. I'm hoping HTTP/2.0 will drag itself into this century and commit to using SRV records or something very like them instead, so that problems like this can go away with a general solution.

See: [https://github.com/http2/http2-spec/issues/381](https://github.com/http2/http2-spec/issues/381)

</comment><comment> workhere-io The article points to an AWS article on how to set up the whole thing correctly - but once you've done that, there's still another problem: You really shouldn't host public stuff with S3 at all, unless you use CloudFront in front of it. Try benchmarking it with Apache Bench: S3 is extremely slow, whereas CloudFront is fast and can take a large number of hits.

</comment><comment><USER17> DNSimple has a similar service that lets you create a CNAME-like record for your root domain.

<comment><USER18> I came here to add this exact statement. DnsMadeeasy is terrific and one of e few that support ANAME records

</comment></comment><comment><USER19> I'm a little confused by why this was even an issue.

Why couldn't he just setup an A record for both domain.com and www.domain.com, and in his apache/nginx/pick your server config file 301 redirect www.domain.com to domain.com.

Is that not the best practice?

<comment><USER20> Yes it is and has been for a long time. What this article really boils down to is a terribly poor understanding of how DNS works and why certain records are use for certain serivces. A CNAME doesn't "redirect" anything at any level outside of a resolver. In the case of www.example.com and example.com you use a web server to achieve the desired result. Even then it's not a redirect, it's a replacement the resolver determines the record is a CNAME, inserts the value the CNAME points to, then resolves the A record. In the case of the MX record for a domain a CNAME is a problem because in the absence of a MX record, the A RR record is used, in this case a CNAME. Would protocol specific SRV records be better? Yes, but since that change isn't happening quickly do what's right now and change in the future.

</comment></comment><comment><USER21> I'd love for CloudFlare to add the equivalent of an ALIAS record to their DNS service. To the best of my knowledge one cannot use Route 53 and also take advantage of CloudFlare's services.

<comment><AUTHOR> Yes, unfortunately I had to choose between the two. I like CloudFlare a lot but without that I was unable to stay.

</comment></comment><comment><USER22> I'm surprised that so many of the comments in this thread are about dns hosting services and not dns server software support for these so-called "alias records".

I was making a list of "why on Earth doesn't this simple software exist?" items the other day and "simple server-side CNAME support" was on the list. Does any common DNS server package provide this support easily out of the box? It seems like one of the most common uses cases possible.

<comment><USER23> Small warning: CNAME at apex is commonly used for pointing traffic to a CDN or load balancing kind of service. These services tend to use DNS for part of their traffic orchestration (e.g. different DNS response based on user region) which gets less than optimal or even plain wrong results if your DNS server software resolves the CNAME instead of the end-user.

If they weren't using DNS as part of their strategy they could've given you a simple IP instead of a CNAME, saving your clients some lookup time.

</comment></comment><comment><USER24> I've always used only one "A" record for main domain like "domain.com" then everything else goes throught "CNAME", like "www.domain.com" or any oher sub- domain like "blog.domain.com" then have sepeate "MX" record for email. In Nginx I redirect useless (www) to (non-www) using permanent redirect (301) Never had any problems both with CloudFlare and NameCheap ^_^

</comment><comment><USER25> Before Amazon introduced the ALIAS record the workaround I had in place was a cronjob which queried for the A records of our Amazon ELB and replicated those to the root of our domain, which at the time was hosted with DNS Made Easy. It was an easy decision to move to Route 53 once the ALIAS record was introduced and retire my hack.

</comment><comment><USER26> >I started to look for solutions and was expecting to have to start using my domain with the "www" until I stumbled across this AWS Blog on how to do exactly what I was wanted. The only "problem" was I would have to use Route 53 instead of CloudFlare for it to work.

This is why rewriting exists.

</comment><comment> dav- So, I have a question: Would the following be safe? Specifically the "* CNAME @" rule.

[https://gist.github.com/dav-/eaa487032588efc0b4a3](https://gist.github.com/dav-/eaa487032588efc0b4a3)

<comment><AUTHOR> I'm fairly certain that is fine, it's not "on the root" because it's *.root.com not root.com, you have an A record on the root which is expected and correct.

<comment> dav- Right, thanks. I'm always paranoid that I may be missing emails.

</comment></comment></comment><comment><USER27> Also it seems that some DNS resolvers with DNSSEC enabled will not resolve APEX on CNAME (returning a SERVFAIL). I've disabled DNSSEC on my home resolver (unbound) because of this (damn heroku).

</comment><comment> gore90- In my head I just think of 301'ing to the naked domain but that is only about web. What is the end goal of redirecting the domain with dns records like this? (Newbie)

</comment><comment><USER28> RFC anyone??

<comment><USER29> +1. Hosted services shouldn't let people create behaviour that's outside the spec - I know dnsimple actively prevents people who try and attempt this.

<comment><USER30> Not only that, but it trains people who don't read RFCs (or run DNS servers) to believe that configuration is even acceptable in the first place.

</comment></comment></comment><comment><USER31> A problem with heroku as well, not just Amazon.

<comment> workhere-io It's not an Amazon problem, it's a limitation in the DNS specs.

<comment><USER32> It's not really a limitation, per se. It's intentional behavior. Most people just use CNAMEs to as a sort of "A record redirect", but really they're for _all_ records. You're saying "the canonical name for foo.com is blah.bar.com", and that means for _everything_ : A, MX, NS, SOA, etc.

</comment></comment></comment><comment><USER33> exact same thing happened to me for sokratik.com and www.sokratik.com, i solved it using nginx root /usr/share/nginx/www; index index.html index.htm;

            server_name sokratik.com;
            return 301 $scheme://www.sokratik.com$request_uri;

<comment><AUTHOR> Yeah if I was running a server I would have done that in a heartbeat but I was using S3 so I was a little more limited.</comment></comment>


Ask HN: for feedback on the product we just launched - a Firefox addon - <AUTHOR>

This is the product I've been working on for a few months now. The company I work for have a small but knowledgeable dev team, and we really think this product is going to be a useful tool for our audience. We're also pretty convinced it's not been done before.
I'd like you to install it and let us know if you have any suggestions, bugs, ideas etc. We've "soft-launched" today to an invited audience, and I'd like to get feedback from fellow hackers before we do the full-on launch. Many thanks for your time.
Market: UK Horse Racing Gamblers
Scenario: You want to find the best price for a horse that you've just read about.
Problem: You have to open a new tab, find an odds comparison service, type the horse name in and compare odds from there. Or you have to open a bunch of bookmakers pages and compare odds from there - a lot of effort.
Solution: Odds Anywhere - a firefox add-on (IE coming soon) scans pages you're looking at and highlights horses that are running soon. When you hover, a bubble appears with the best odds for that horse.
Homepage: http://www.oddsanywhere.com/ - there's a live demo of the bubble on there.
Add-on: https://addons.mozilla.org/en-US/firefox/addon/241026/ - if you want to see it working on other pages.
PS: I'm really sorry about the EULA, our boss insisted on filling it with ugly scary stuff :( <comment><AUTHOR> Clickables:

<http://www.oddsanywhere.com/>

<https://addons.mozilla.org/en-US/firefox/addon/241026/>

</comment><comment><USER2> Where's the horse race stock photo?

<comment><AUTHOR> I'll get right on to the designer and ask him what he thinks he's doing ;)

edit: also we're planning to expand out to other sports, so we didn't want to make it too horsey!

<comment><USER2> Expansion -> More stock photos :-)

See <http://smarkets.com/>

<comment><AUTHOR> Yeah, I think adding something horsey wouldn't hurt - just to immediately express what the topic is, I'll mention that, thanks.</comment></comment></comment></comment>


Read a good dance lately? - <AUTHOR> http://dancenotation.org/lnbasics/frame0.html <comment><USER2> A while ago, I wanted to annotate martial arts movements so I asked to a professional dancer friend of mine. She didn't know any way to do it. That surprised me.

Seeing this, I can't avoid to think in formal languages. Maybe, even it's possible to define, formally, a particular dancing style as a grammar that doesn't admit movements from other styles.

<comment><USER3> Mostly for dance: [https://en.wikipedia.org/wiki/Benesh_Movement_Notation](https://en.wikipedia.org/wiki/Benesh_Movement_Notation) [https://en.wikipedia.org/wiki/Labanotation](https://en.wikipedia.org/wiki/Labanotation) [https://en.wikipedia.org/wiki/Eshkol- Wachman_movement_notati...](https://en.wikipedia.org/wiki/Eshkol- Wachman_movement_notation)

For sign language: [https://en.wikipedia.org/wiki/SignWriting](https://en.wikipedia.org/wiki/SignWriting)

Those systems, designed for different purposes, lack essential elements necessary for martial arts movements, like weight distribution, facing, weapons, footing, and opponents. You would probably have better luck examining the code for mocapped animations, particularly for 3-D fighting games and movies.

But you'll have to come up with your own abstraction. There are just too many degrees of freedom in a human body to have a one-size-fits-all kinetography system that is also easy to read and write. That's probably why some martial art systems have so many names for positions and movements. The periodic table for atomic martial art movements is huge, especially now that MMA has spurred so much cross-disciplinary study.

<comment><USER4> _You would probably have better luck examining the code for mocapped animations, particularly for 3-D fighting games and movies._

I think mocap has a lot of potential (though I'm biased here[1]).

For example, there have been some interesting experiments capturing performances by sportspeople of different levels and comparing them. These might be looking for patterns in what the better performers do differently, which might then give some ideas for how to train less experienced performers.

Some elite sports teams and athletes also use mocap technology to analyse their form and look for details that are difficult to see with human eyes in real time.

The challenge is that even state-of-the-art mocap technology is still a very long way from modelling the full complexity of the human musculoskeletal system. Remember that a lot of what you see in games, and particularly in big budget movies, was originally based on mocap data but then manually refined by skilled people for a considerable period of time. The mocap is certainly a useful starting point and it's getting better all the time, but there's a long way to go before it will get the fine details right.

That said, even with today's systems, the amount of data you get from a decent mocap set-up means there is a lot you can investigate, as long as you know what you want to look for. As you say, there are a lot of degrees of freedom in a human body, and coming up with the right abstractions to capture the important details is a challenge in itself.

[1] I help to run www.ballroomgenie.com, which is a training aid featuring animations of ballroom moves using mocap-driven CGI instead of traditional live video footage. This lets us show various useful effects that live footage can't, typically because of physics or because in our little niche market no- one can afford movie-level camera set-ups and editing to record the same action from many different perspectives simultaneously. On the other hand, even working with high calibre performers and studio as we do, it still takes a lot of work to get acceptable quality, and we're still a long way from being able to reproduce truly lifelike footage. This is partly because we don't have a Hollywood budget and a whole team of people to get each animation just right, but it's also because as far as I know the technology to model a human body accurately enough that things like contact and pressure are spot on simply doesn't exist yet.

<comment><USER5> I'd love to talk geek and marketing about this project of yours. I have ideas for a _very_ similar (but not competing) one, but was not ready to jump on it until I see some validation. Your link just did that. If you are interested, I am 'arafalov' pretty much everywhere.

</comment></comment></comment></comment><comment><USER6> Awesome, I didn't know such notation existed.

I dance and teach (Cuban) salsa, and I've been wanting to write down a "repertoire" of moves that I know and teach, to give it some structure. Here the system I'm inclined to use:

The space of patterns/figures you can do in salsa is really not very big. You can break each figure into a sequence of positions at which to be on beats 1, 3, 5, and 7 (I guess you can choose higher or lower granularity, but I think this level of granularity is just right for most people). Then, in my mind, a figure is merely a directed path through a graph where each node is a "known" position (~20?). Assuming you know how to get from one arbitrary position to another one (safe assumption for anyone in an intermediate level), then you can just read and write any figure you want.

I think this kind of structure would allow students to learn much much faster (and is basically the method I used to improve my own skill very quickly, except I used a spreadsheet instead of graph). You'll realize that most of the new stuff you learn is simply:

\- composite paths made out of other paths you already knew.

\- existing paths where you take detours and do something else in the middle. Those detours always start at a node, so now you can use the detour in any other path that goes through that node.

\- new ways of getting from one node to another. Similarly, now you can apply this new knowledge to any move that utilizes that node, not just the move that you're learning at the time.

Where I also think this shines is in developing the dancer's (esp. leader's) creativity, which I think is one of the hardest part for most people (technical stuff is easy, creative stuff is hard!). Having such paths laid out makes it really easy for someone to mix and match, and to create potentially endless combinations by simply choosing a different path forward once you get into a known shared position.

And for fun, I'm sure you could just draw out a random path and see if you can make it work into something that looks reasonably good :)

<comment><AUTHOR> You'll need to notate hands as well, I think.

While hand drops etc. may be more New York style, crossed hands (which arm on top) happen in lots of turns.

</comment></comment><comment><USER7> I found how it handles turns: [http://labanlab.osu.edu/Turnfolder/turns_expframe.html](http://labanlab.osu.edu/Turnfolder/turns_expframe.html)

I couldn't find notations for partner dances, however designing notations for contacts shouldn't be difficult. Notations for lead and follow more so.

<comment><USER4> _I couldn 't find notations for partner dances, however designing notations for contacts shouldn't be difficult. Notations for lead and follow more so._

It depends how far you want to go down the rabbit hole.

For example, in ballroom, there is also a well-established way that formal technique is documented in books. For each step within a figure, it specifies in considerable detail things like which part(s) of the foot you'll step on (heel then toe, for example), which way that foot will be pointing (roughly speaking using compass points), how the upper body will rotate relative to the lower body, and what kind of rise and fall you have through the legs and feet.

There is a whole system of teaching and examinations based on this technique, and consequently most teachers really will teach the same basic technique to a beginner learning the same figure in their classes. Of course, this is very useful for a social style where people might dance with someone else from another school the next day!

However, even in the standard technique books with all their detailed notation, that systematic approach doesn't tell the whole story. There are often notes on how to dance some figures that explain details not captured effectively by the formal notation. Then, once you go beyond the basic technique and standard syllabus figures that almost everyone learns, as with many activities you find that performers and teachers develop their own styles and their own personal ways of explaining more advanced technical points.

At that stage, even though the actions you're talking about are usually consistent with the traditional technique, there is still a lot of scope for interpretation. So, I doubt you could ever have a systematic notation that captures all the subtleties of the actions that set apart a world champion from a quarter-finalist. It would take more than a lifetime of study, and by then the art would have evolved anyway.

<comment><USER7> I'm not expecting the notation to catch every subtlety. That's not happening in music either, still one can write down very complicated musical pieces and it's still very helpful.

</comment></comment></comment><comment><USER8> Merce Cunningham famously used a choreography software called Life Forms [1]

[http://articles.latimes.com/1995-06-02/entertainment/ca-8554...](http://articles.latimes.com/1995-06-02/entertainment/ca-8554_1_merce- cunningham)

</comment><comment><USER9> My wife is a choreographer. She's more or less developed her own notation to communicate with her dancers. She works in a combination of bellydance and modern dance forms, so she has to notate both layered movement and expressions. It's an interesting challenge!</comment>


Open Letter from Feng-hsiung Hsu, one of the main programmers of Deep Blue - <AUTHOR> http://www.chesscenter.com/twic/feng.html

<comment><AUTHOR> Reply here: <http://www.chesscenter.com/twic/owenfeng.html>

<comment><USER2> Thank you for the reply - things make sense after reading it. I know a few people like Hsu - they usually are convinced that they are objective and are absolutely unable to grasp the fact that other people might have different values and goals. They are conviniently overlooking things they don't like. These people often do achieve much but are absolutely dreadful to deal with.

<comment><USER3> I don't know if I agree. Owen's letter seemed to pretend that Kasparov didn't lose the last match. Why would Hsu need to establish himself as a competitor when he won the last match? That doesn't make any sense to me. When he says things like, "All he had was a computer chip with no organization or sponsor behind him." it's ridiculous. That chip is the chip that contains the data and knowledge that beat Gary last time, and he can't get any sponsors because they won't commit to a match. Looking at both letters, it seems that all Hsu wanted to do was get another match and Kasparov didn't really want to do it. I certainly could be wrong, but it sounded like they were making excuses.

</comment></comment></comment><comment><USER4> Deep Blue '97, which beat Kasparov, was a: "RS/6000 SP Thin P2SC-based system with 30-nodes, with each node containing a 120 MHz P2SC microprocessor for a total of 30, enhanced with 480 special purpose VLSI chess chips." (from Wikipedia)

I'd be interested to know what exactly those VLSI chips contained ... My hunch is that a few dozen modern FPGAs should be able to match a few hundred ASICs from over a decade ago. Then it shouldn't cost more than ~$10K for enough hardware.

Hsu could easily bootstrap that sort of machine. Then, after winning a World Computer Chess Championship, he would be in a much better position to issue a challenge to Kasporov.

<comment><USER5> It depends. Having designed medium sized VLSI ASICs over a decade ago and worked with FPGAs recently, I'd have to say that it may still take several FPGAs to equal one ASIC.

</comment></comment><comment><USER6> I believe there is a consensus in the chess world that given any incentive, it would be easy for someone to put together a machine that can beat any human alive.

The algorithms at this point are well-known and tested; it's just a matter of having enough hardware to search deeply enough to match a world-champion player within the tournament time constraints.

edit: <http://www.chessgames.com/perl/chess.pl?tid=54499>

<comment><USER7> I do not think this is the case. If you follow chess and the matches where a top GM plays a computer you will find most of the time it is a draw. There was an article on chessbase many years ago that showed that chess program rating had stopped growing as fast and they were leveling out just as player ratings level out. <http://www.chessbase.com/newsdetail.asp?newsid=1292>

<comment><USER8> This is definitely the case. Check out Rybka - it has been rated 3200+. No human being comes close.

<comment><USER7> After further reflection I'm not sure my belief is wrong.

The match between GM Roman Dzindzichashvili and Rybka has finished with a somewhat surprising (at least to me) score of 4-4.

<http://www.chessville.com/Wall/DzindziRybka.htm>

<comment><USER9> From the article:

"the odds were changed to - Roman gets White every game, the computer offers up a different pawn each game."

So the computer gave Dzindzi an enormous handicap.

<comment><USER7> I failed to make my point...sorry. A human rated 3200 would win more than 4 games even given the restrictions against a GM rated ~2550. Ratings are not as as transferrable as one would think, especially when a computer is involved.

</comment></comment></comment></comment></comment></comment><comment><USER10> Pardon my ignorance, but why is it that Deep Blue can't be recreated on a reasonably fast modern PC in software? In fact, why is it that this sort of program would be considered difficult at all?

EDIT: answered my own question via wikipedia

"In a recent match, Deep Fritz vs. Vladimir Kramnik in November 2006, the program ran on a personal computer containing two Intel Core 2 Duo CPUs, capable of evaluating only 8 million positions per second, but searching to an average depth of 17 to 18 plies in the middlegame."

</comment><comment><USER11> Here's a link to the games from the 1997 match. The game logs (showing Deep Blue's actual output) are pretty fascinating.

<http://www.research.ibm.com/deepblue/watch/html/c.html></comment>


The Humble Indie Game Bundle - <AUTHOR> http://www.wolfire.com/humble

<comment><USER2> They probably shouldn't put the average amount paid so far on the website. The idea is to get people to pay what _they_ think the games are worth, not what other people think the games are worth.

<comment><USER3> Here's how I would have done it:

[http://images1.bingocardcreator.com/blog-images/hn/deep- disc...](http://images1.bingocardcreator.com/blog-images/hn/deep-discount- mockup.png)

Anyhow, the idea was to simplify the workflow and simultaneously abuse the power of defaults and user psychology. I also intentionally ditched some parts of the offer which I don't think add business value, such as fine-grained control on the split.

(I'd A/B test including "65% of people pay this much" on the #1 step, probably with a subtle yellow highlighting.)

<comment><USER4> Haha of course. I thought "wow this is great, who is this? they're worth talking to in the future" then see that it's you patrick. Every time..

</comment></comment></comment><comment><USER5> I don't usually buy things on the internet. Mainly because it requires money in a PayPal account or similar, and it's very hard for me to get that (I have some dollars from a freelancer work, but it's a hassle to transfer between my bank account and PayPal).

If I had heard only about a "indie game bundle" containing those titles, I would probably have run straight to The Pirate Bay. But this one caught my attention.

The devs are willing to give five high-quality games for whatever I want to pay. The guy even sang a song for the advertisement, for god's sake.

I loved the ad. I loved the bundle. I even loved the website.

This selfish pirate is reaching for his wallet. I will not pay the full $ 80 sum (though more than the average, for sure), but I'm one that would probably not have paid a penny otherwise.

</comment><comment><USER5> If you are worried about the process, don't. After filling the short form and login in my PayPal account, the email with the download page was sent instantaneously.

Their bandwidth is excellent and all downloads are direct (no login, download token, download code, wait time, bandwidth limit or whatever).

</comment><comment><USER6> Haha...on the "no middle man" logo is that a condom (as in don't get screwed by the man) or a bomb. Can't tell :)

Well executed idea!

<comment><USER5> That looks like a tie for me.

</comment></comment><comment><USER7> Maybe they should combine the old Shareware model with this one. And make it all very easy. Like you download the full game and in the end of the first level, this payment stuff pops up where you can just pay whatever you want to proceed (whatever you think it is worth).

The point is, I really don't know what these games are about and how much they are worth.

<comment><USER8> These games all have a demo version.

</comment></comment><comment><AUTHOR> The games are World of Goo, Aquaria, Gish, Lugaru HD, Penumbra Overture

edit: removed some incorrect info

<comment><USER9> EFF and Child's Play are actually charities that your payment is split with.

<comment><AUTHOR> you're right, i was just copying the bar across, my bad

</comment></comment></comment><comment><USER10> In a vacuum, the Humble Bundle can't really be called a success. As I'm writing this, assuming equal split, each developer and charity gets an average of $1.09/purchase - hardly a windfall, though I'm sure the actual numbers actually favors the charities more.

But it doesn't exist in a vacuum. I wonder how much attention the involved studios'll get for future projects as a direct result of this? Aquaria, especially, has been out for quite a while now - this can probably be more accurately considered a way of breaching access to any possible remaining audiences before launching their Next Big Things.

<comment><USER11> You are thinking about it wrong. Digital copy distribution is basically free. With your $1.09 each party gets 30000 dollars. How is getting 30000 dollars for a quick sale not a success?

Don't forget that these games are already "old" in terms of the normal gaming market. They already had their heyday.

</comment></comment><comment><USER12> This is such a great idea. I donate to charity regularly anyway and I'm a sucker for games. Now I can have both!

I ended up paying $100. Most of the money went to Child's Play but the devs still got $20 and the EFF $10.

</comment><comment><USER13> The video could have been a little better while showing the games. I had to rewind a lot of times to view all the 4 squares for each game. Nevertheless, awesome offer and rap song :)

</comment><comment><USER14> Average contribution of $8.64 for 5 games or $1.72 per game.

It's a nice PR move but that's just disgusting I'm sorry.

<comment><USER15> Well I just purchased it for $10 and I already own 2 of the games. And the other's I never would have considered buying if it wasn't for this bundle.

And I'm pleasantly surprised with gish so far; already checking out the developer's site to see what else that have on offer.

Other people might be paying that average and are only interested in 1 or 2 of the games in the bundle.

You can't just say a blanket "5 games or $1.72 is disgusting".

<comment><USER14> It's disgusting in the sense that it's a horribly poor valuation of their work by consumers - each of those games is worth approximately half a latte.

The sad part is it'll be celebrated as a victory because they'll gross a lot of money and it's "money they wouldn't otherwise have" ... unless they set their own price and reached a tiny fraction of the consumers that'll buy their games today.

<comment><USER16> It can't be a poor valuation of work, unless you subscribe to a labor theory of value. Our current economic system does not.

Things are only worth what people will pay for them.

<comment><USER14> That's true, except the bit where there's plenty of evidence to support the theory that people are willing to pay more than a dollar and change for a game.

<comment><USER16> But you don't know if these people would or not. Also, I've payed $50 for a game in the past, but I'm not sure that I would any more.

<comment><USER14> These people maybe not... but how does that matter? The 6,000 people that bought the pack are just a tiny portion of the gaming market.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I would have bought it, yet the Amazon checkout refuses to let me pay using my Amazon gift card balance. It seems to want me to buy via credit card. If there is a way to buy it using my gift card balance I don't see it.

Ah well, and I was willing to give the developers $20 or so.

</comment><comment><USER18> Seeing analogpixels.com being one of the top 10 donors made me wonder: How many people would donate more if the current top 10 paying people got a link to their website/product for the duration of the sale?

</comment><comment><USER19> Wonderful! I just bought them for 50$! I only know of Gish and World of goo since I've played the demos and never got around to buy them, but now I just can't miss this incredible offer!

</comment><comment><USER20> Watch the video! So worth 2 minutes of your time.

<comment><USER21> It rhymes!

</comment></comment><comment><USER22> Try submitting $0. Hilariousness ensues.

edit: Yes, I would have bought it for $0 if they let me.

</comment><comment><USER23> I know and love both World of Goo and Gish. Any reviews or recommendations on the others?

<comment><AUTHOR> to be honest they're all pretty cool. Aquaria is an Independent Games Festival winner. Lugaru is sick if you're into awesome fighting rabbits. Penumbra: Overture is highly rated across a bunch of gaming sites including metacritic.

</comment></comment><comment><USER24> I like this model. Surely the developers behind these games are going to get some new fans and customers.

As an anecdote, I played World of Goo at a friend's once. He copied it on my USB stick and I played more at home. A few months later there was a "pay what you want" promotion for just World of Goo. I bought it to support the developers, even though I had already finished the game and there was nothing new to play with. It's a great game and I recommend it for a few hours of fun.

<comment><USER3> I think they're going to get a huge influx of pathological users who mostly pay amounts which would amount to 80% off the face price of the cheapest game in the bundle.

<comment><USER25> ...who almost certainly wouldn't have bought the games anyway. The exposure that some of these sales bring is immense, partly because they're novel. Who cares if a large percentage of people get the games for really cheap? They could easily get it for free at The Pirate Bay.

The total is going up by over $300 a MINUTE right now.

<comment><USER26> This is by far the biggest argument in favor of the "pay-what-you-want" model. It's an efficient way to capture customers that would have been priced out of your product. The other edge of the sword is the tendency of customers with the cash to skimp.</comment></comment></comment></comment>


Cisco's second tablet runs Linux, manages home energy use -- Engadget - <AUTHOR> http://www.engadget.com/2010/06/29/ciscos-second-tablet-runs-linux-manages-home-energy-use/ <comment><USER2> No need to put the server in the title</comment>


Ask HN: What is the best place in Canada to live cheaply and work? - <AUTHOR>

Similar to the US / Europe threads. <comment><USER2> Full disclosure: I am an upper year UWaterloo Student so my opinion is likely biased.

If you are looking to work in tech in Canada, Kitchener/Waterloo is the place to be in my opinion. It has:

1\. A fast growing Startup community that has a lot of support from both the city and various tech organizations in the region.

2\. An excellent pool of talent with UWaterloo(excellent Engineering/CS programs with a focus on entrepreneurship), Laurier(Well respected business program), and Conestoga College (Well respected Graphic Design Program)

3\. Getting more recognition for the companies it has been producing in recent years with a couple high profile companies taking off (Thalmic Labs, BufferBox, Kik) and PG saying the region has produced some great companies ([http://www.techvibes.com/blog/paul-graham-y-combinator- water...](http://www.techvibes.com/blog/paul-graham-y-combinator- waterloo-2013-01-22)).

The cost of living in the city seems on par with a lot of the medium sized cities in Canada and as a student I know you can definitely live off of a pretty small budget. I think the benefits of working in region make it the place to be and can definitely be done for pretty cheap.

</comment><comment><USER3> Fredericton, New Brunswick, is a beautiful city with great cultural, government and academic facilities, and great business and communications infrastructure. Much cheaper to live in than Toronto or Montreal.

</comment><comment><USER4> London, Ontario. Good proximity to technology hubs such as K/W and Toronto, without the high costs of living.

Population of almost 400,000. A University with an excellent business school (entrepreneurs!). Unemployment is somewhat high currently in London (~10%), but if you're a skilled developer, you won't be without opportunities.

There is a small, but fast-growing startup community as well, supported by the city, educational institutions, and a great new co-working space.

</comment><comment><USER5> Saskatoon, Winnipeg, Regina, Halifax, Edmonton, Kelowna would all be places that are cheaper than the normal ones. Also, remember that the smaller towns you go to are usually more cheaper. It just depends how much snow you want!

<comment><USER4> Saskatoon and especially Edmonton, for what they are, are far from cheap. The amount of resource-based work is attracting workers in droves and driving up living costs.

</comment></comment><comment><USER6> Montreal has a very low cost of living, but taxes are high.

<comment><USER7> Another +1 for Montreal.

While it is not necessary to find tech work, speaking some French can be very helpful. Also be prepared for cold ;)

Here are a number of vibrant communities in the city:

\- Montreal Tech Watch: [http://montrealtechwatch.com/](http://montrealtechwatch.com/)

\- MTL New Tech: [http://mtlnewtech.tumblr.com/](http://mtlnewtech.tumblr.com/)

\- Notman House: [http://notman.org/en/](http://notman.org/en/)

\- Montreal.rb: [http://www.montrealrb.com/](http://www.montrealrb.com/)

\- Montreal Ruby Hacknight: [https://groups.google.com/forum/#!forum/montreal- ruby-hackni...](https://groups.google.com/forum/#!forum/montreal-ruby- hacknight)

\- Montreal Python: [http://montrealpython.org/](http://montrealpython.org/)

\- js-montreal: [http://js-montreal.org/](http://js-montreal.org/)

\- Google Montreal Tech Series: [http://www.meetup.com/googleMTL/](http://www.meetup.com/googleMTL/)

\- Foulab: [http://foulab.org/en/wiki/Index_Page](http://foulab.org/en/wiki/Index_Page)

\- Devops MTL: [http://www.devopsmtl.com/](http://www.devopsmtl.com/)</comment></comment>


The Last Line Effect - <AUTHOR> http://www.viva64.com/en/b/0260/

<comment><USER2> One useful thing I learned from this is by knowing where errors are commonly made, I can better proofread my own (and others) code.</comment>


Why Piketty isn't Marx - dnt404-1 http://mondediplo.com/2015/05/12piketty <comment><AUTHOR> Obviously going to be lots of "tl;dr" here, so I'll summarize:

Piketty's capitalism is all about numbers, Marx's was about social relations. Author preferred Marx. Author believes they have to be about the same thing because they have the same title.

I agree with the author in his critique, but like most critiques, they're more about the way the critic would have done it (but didn't) than about what is valuable within the work. Still, it's important to remember that beyond all the statistics, the social relations _mean_ something.

</comment><comment><USER2> The critique is well put, the author notes the Piketty ignores the workers movements that shaped capital.

The author is obviously of the Marxist left, the same Marx the predicted ever and ever more impoverished workers while today the capitalism Marx so reviled obviously has uplifted so many. This should not take away from this correct analysis of Piketty's ignorance of social movements and change.</comment>


New research says starting university classes at 11am would improve learning - <AUTHOR> https://qz.com/957858/let-them-sleep-in-university-students-learn-better-in-classes-starting-after-11am-neuroscience-research-shows/ <comment><USER2> I remember my freshman year at Clemson my dad suggested that I retake calculus even though I already had the AP credit because it would be an "easy A" for GPA sake. It was 8am 4 days a week.

After the first test was failed for not showing my work I dropped the class. My grades in every other class went up after that (next class was closer to 11am) and I never took another 8am class during college.

<comment><USER3> I don't remember why I took Calculus my first year, but I skipped every class after the first one, because it was painfully boring. I could pass the class with the final alone, and didn't care about the grade very much. Anyway, by skipping class I didn't know the final was rescheduled!

Luckily the professor let me take the final on my own later in the library, though he'd thought I had skipped it because I had a near-zero on the quizzes that were worth a few percentage points going into the final. However, there was a section on Taylor series which I hadn't seen before on the final, so I was certain that I had bombed it.

I wrote a long email talking about possible summer projects or something, so that I'd have the prerequisites for the next year. I got back a cheery email, "don't worry about it, you got an A, enjoy your summer!", and explaining that the Taylor series was kind of an extra to see if anyone could figure out the material that wasn't part of the course while taking the exam.

Obviously, I'd taken a lot of unwise risks, but I guess I got lucky with a professor who identified with an immature student who knew the material but had only taken a course because it was technically a prerequisite for something else.

<comment><USER4> I was an academic rockstar (the high school Physics lab was _named after me_ for 10 years because I aced the NYS Regents and got a 5 on the AP, first student in the school's history to do so) ...until I was sunk by Calc 192 at Cornell. (TWICE.) Taylor and Maclaurin series is what finally did me in. (They were not "optional" in calc 192.) That and the 8-hour-long problem sets. (Yes, 4 hard questions per problem set would take about 8 hours in total to work out. Buzzkiller.) Know how often I've seen Taylor or Maclaurin series needed in my CS career since? Fucking _never._ It's pure weed-out material, IMHO.

Also, you got an A in the most efficient way possible in that class, in my opinion. THAT is intelligence in a nutshell! At least on _my_ IQ ruler, lol

<comment><USER5> Obviously you've never done any fluid dynamics. I remember thinking Taylor series were stupid too, until I got into upper division meteorology courses. It's pretty much all we do, because hey, our initial conditions have most of the error. Taylor series are super important to numerical modeling. You may not have come across it in the wild, but I assure you many FORTRAN hackers have.

<comment><USER4> Sort of an "out there" question: Fluid dynamics sounds interesting. Is there any, eh, "fun, interactive" fluid dynamics simulation thing I could check out? Basically, playing with someone else's model instead of modeling things myself

<comment><USER5> Sorry, can't think of anything offhand. While I did go to graduate school for atmospheric science, I've been out of the field for ten years now.

<comment><USER4> What did you end up doing (so far)?

<comment><USER5> Lately, programming for a company that does online surveys. It's not glamorous, but it is data analysis and intellectually challenging enough. Other than that, I've worked on the Rakudo Perl 6 compiler. I help run a nonprofit wiki farm at miraheze.org, where I'm the security specialist. And I'm getting sidetracked in politics once again.

Too many side projects means I wasn't really focused enough to get a graduate degree, but hey, you have to live life as you want, and go after the things that make you happy.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> For a year I got up at 4:30am, rode a bike for 20mins, showered then spent 3-4 hours doing math proofs and watching lectures. The morning was the only time I could get this done since distractions are minimal, you don't have emails/phone calls/obligations to think about like you do after lunch when they start rolling in demanding your attention.

<comment><USER7> Funny, for me it's at night, for the same reasons you say. I'm a night owl, and I peak between midnight and 2 am

It has became really troublesome when I started working. If I was awake after midnight it became really hard to fall asleep. And I feel bad that I can't be at my top at my job because of the time difference.

<comment><USER8> I'm the same. Midnight to 2am is peak creativity for me. I just don't feel bad about not being at my top at my job, and can never make it into the office before 9.

<comment><USER9> Same here. It's not just work either, I always find music the most enjoyable at 1am and will often put off sleep to finish an album. I never feel like that at any other time of the day.

</comment></comment></comment></comment><comment><USER10> I highly suspect that is because most of the students do not go to bed early.

<comment><USER11> It's always funny to me when people assume that sleep works the same for everyone or that it is as simple as scheduling something on a calendar. Neither are true.

<comment><USER12> I think most people can change their sleeping habits. If you actually practice good sleep hygene and make consistent habits around sleep and you still can't get to sleep at a reasonable time, then you are not the norm and may have a medical condition.

<comment><USER13> Honest wuestion - what do you base this on? Anything besides personal experience?

<comment><USER14> Well, I can say for myself that the younger me adapted faster to timezone changes than I do now. That adaptation is presumably driven by the diurnal rhythms of the destination, but given that a fair amount of modern life is conducted under artificial light (and artificial darkness, for those who sleep in), it seems plausible that sleep patterns could be modified to some extent, through adjustment to the already-artificial diurnal cycle.

</comment></comment></comment></comment></comment><comment><USER15> A while back, I read an article that discussed the differences in people and how, during the hunter & gatherer era, some humans evolved to be night owls and some humans evolved to be early birds. It determined which person would keep watch at night.

In college, I remembered only signing up for 11am classes as a freshman before changing to 9am classes in sophomore and senior year. I think a lot of this has to do with staying up late in college.

There's probably a time where students can function properly, earlier than 11am, if they were to sleep by 12am.

<comment><USER16> If you could find that article, I'd be very interested in reading. I ask because I'm quite skeptical of the concept of humans "evolving" different time-preferences. Mostly because of 2 questions: "How was that selected for," and, "given that very little has changed about humans through evolution in the last 10,000 years, what sort of timeline did the article suggest this 'time- preference' evolution occured over?"

<comment><USER17> Boyd Eaton and his students did some of this work. Its touched on in The Paleolithic Prescription (popular book) with more details in papers before and since (search on book's authors' names for research papers. Sorry I don't have better for you now.) As I recall they identified three sleep patterns from anthropological studies of populations not influenced by modern technologies (eg. electric lighting) and from historical documents (ex. Victorian era doctors' notes mentioning what were considered normal sleep patterns at the time.) 1) Early to sleep + early to rise 2) Late to sleep + late to rise 3) Late to sleep + late to rise (with waking in the middle of the night)

A modern cartoon characterization of type three is Dagwood Bumstead from the comic strip Blondie. He would get up naturally for midnight snacks and over- sleep for work or snooze during work. Type three Victorians were noted by their physicials as naturally rising for midnight prayers or sex with spouses.

As to genetic selection, the postulated survival advantage relates to the military three watches of the night. With group members naturally awake throughout the night predators were better protected against, surprise attacks less likely, etc.. Hence, a mixed group consisting of all three types would have a survival advantage.

</comment></comment></comment><comment><USER18> Or maybe... students would just stay up even later.

I know my own sleep basically drifts later and later until I run into hard deadlines. I'd be surprised if most people don't work that way, in a vacuum.

<comment><USER19> What you're describing is Delayed Sleep Phase Disorder [0] or Non-24 Hour Sleep cycles [1]

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

[1] [https://en.m.wikipedia.org/wiki/Non-24-hour_sleep%E2%80%93wa...](https://en.m.wikipedia.org/wiki/Non-24-hour_sleep%E2%80%93wake_disorder)

</comment></comment><comment><USER20> In my first two years, i didn't even try going to 8am classes after 1st week. And i know alot of engineering classmates who were like this. But i did end up going to 8am classes in my 4th year. Is it because you mature or because courses are actually related to you? I don't know.

<comment><USER21> While I was like this, some engineering classes scheduled quizzes in the morning. Skipping these were detrimental to my grades. With the benefit of hindsight, my behaviour of skipping morning classes was incredibly stupid, but at the time made perfect sense from my limited worldview.

<comment><USER22> it's interesting that traditional hard subjects seem to have this tradition of early morning lectures, at least in my experience.

Flatmates doing Math, Chemistry and Physics and we all had early lectures.

Chap doing Philosophy would complain, quite a bit, about his Tuesdays as he had a 10:00 lecture.

<comment><USER23> Math and science classes in the morning so you can have labs in the afternoon/evenings.

</comment></comment></comment></comment><comment><USER24> It's not even an individual choice nor just "biology." When you have a dorm full of people making noise until 1 or 2 am. When you have all the social activity kicking off at 8 or 9 pm...

Unless your institution has a "quiet dorm" you can get a slot in, and you are sufficiently secure in your own, non-mainstream social status...

P.S. U.S. perspective.

<comment><USER25> Yeah, exactly. It's all well and good for people to rant about Personal Responsibility and those dang coddled snowflakes, but how are you supposed to control everyone around you?

You could always transform your university into a miserable oppressive environment which no one really wants to go to, enforcing early quiet hours in every single dorm...or you could just push the class schedule ahead by a couple hours.

</comment></comment><comment><USER26> I have no evidence to rebut the conclusion—indeed it aligns with similar research on high school students.

However, a big chokepoint at my current school (major state university) is the availability of classrooms. Classes are already booked in the old (and recently expanded!) building _and_ in the new graduate building for 12-plus hours each day.

There simply isn't enough space to put off scheduling courses until 11.

Besides, just because something is good for the average student doesn't mean it's good for all students. My classes certainly have a different flavor depending on whether they're in the early morning or late evening. Even if it's the same course, the differently timed sections have their own character and attract different sorts of students.

<comment><USER27> > just because something is good for the average student doesn't mean it's > good for all students.

Holy pi, if only the education system could understand this simple thing... >.<

</comment></comment><comment> charles-salvia I usually just rely on drugs like... um, caffeine, rather than trying to religiously stick to a particular sleep schedule.

<comment><USER28> Then you are fooling yourself, caffeine doesn't really enhance mental performance. You just feel that you are more awake, but your brains aren't. See e.g.: [https://www.ncbi.nlm.nih.gov/pubmed/20182035](https://www.ncbi.nlm.nih.gov/pubmed/20182035)

<comment><USER29> > In conclusion, it appears that caffeine cannot be considered a 'pure' > cognitive enhancer. Its indirect action on arousal, mood and concentration > contributes in large part to its cognitive enhancing properties.

Indirect cognitive enhancement is good enough for me.

<comment><USER30> There are reasons for the body to feel tired. Deriving yourself of that feeling could have malignant long term impacts.

</comment></comment></comment></comment><comment><USER31> So what should be the idea here: brainless work in the morning and brain- intense work in the afternoon? Yup, sounds like the advice a lot of people use and give others.

What is frustrating is the article does not give that great information where I can just take a few of my own theories and test them through here.

I remember having a routine in high school where I would wake up at 5 am, do some language deciphering intense reading for half an hour, read through some interesting non-fictions for another half, get ready for school, and become sharper than anytime I have been before by 8o'clock.

</comment><comment><USER32> Tbh, starting later would seem like a typical "doing things for the sake of doing things" thing to me. In my opinion, the majority of people who try to "fix" education are first and foremost just trying to leave a mark, letting everyone know that they were here (maybe without realizing it). Let's suppose you were given the chance to attend lectures by the most impressive person in the world. Don't you think that you'd soak it all in even when those talks were given at 6 am?

<comment><USER33> >Let's suppose you were given the chance to attend lectures by the most impressive person in the world. Don't you think that you'd soak it all in even when those talks were given at 6 am?

I can't speak for anyone else, but I physically wouldn't be able to. I'd try (most impressive in the world would require that I do my best), but at the end of the day circadian rhythms are really hard to tame.

</comment></comment><comment><USER34> > High school and college classes in the US can start as early as 7am.

Yikes, that seems cruel, given that might mean getting up at 5am or earlier.

<comment><USER35> For many students, this is a necessity, as they work after school.

What would be cruel would be depriving these students of work opportunities because some students don't need the income and can afford to sleep in.

<comment><USER36> I have a possibly dumb question. Wouldn't those students also be better off? They work the same number of hours, but later in the day. Unless it's the kind of thing that can't be one hour later?

<comment><USER37> The kinds of jobs available to typical high school students such as food service work and babysitting tend to start earlier in the day (in my experience). Food service jobs often start around 4:00 to beat the evening rush, and babysitting can start whenever the kids get out of school.

<comment><USER36> Well, then in the babysitting case, the solution is clearly to have school ALSO start later. Might be a bit impractical to coordinate that.

</comment></comment></comment></comment></comment><comment> vic-traill My view is that life rarely aligns to one's habits and/or inclination. This as as true in my teen years as it is in my fifth decade.

I won't project my experience on anyone else; I do however feel strongly that the learned ability to impose my sense of responsibility on my inclination has been a valuable skill in my life.

</comment><comment><USER38> I remember one year when the math classes I needed were only held at 8am. Combined with roommates who regularly made loud noises as late as 4 in the morning, a lease I could not afford to break, and myself being a very light sleeper... it was a major detriment to my academics.

</comment><comment><USER39> Why no discussion of the fact that people tend to wake up earlier as they age? A lot of professors are quite tired late in the day, and their lectures might not be too terrific. It seems we should multiply two functions, one increasing and the other decreasing, to find the best time. And then put all classes at that single best hour. Or, well, you know ... stick with the working hours that basically every other adult has to deal with.

</comment><comment><USER40> MIT (in the 1980s) almost never had early morning classes. In fact, notoriously, Unified Engineering (aero-astro core sequence) started at 9AM; on the first day of class they apologized to us for the 9AM start saying that they just couldn't schedule it any other way (all the AF ROTC kids were already up so maybe this was a fig leaf excuse).

On the other hand I had more than one undergraduate class start in the early evening.

</comment><comment><USER41> 18 years old I had to be at work at 545am in the military to learn how to become an air traffic controller. I completed my training in 50% of the allotted time, becoming a fully certified air traffic controller in a fairly complex airspace - White Sand Missile Range, NM when F-117s were still in service. Maybe college students just need to have better self-accountability and learn responsibility.

<comment><USER42> This comment makes me so goddamned angry.

Around the time I turned fourteen I lost my ability to fall asleep at night and wake up in the morning. I hung on to decent grades by "testing well," but never able to keep my head up during morning classes. All along people told me it was a discipline problem, and I followed their goddamned advice and got nowhere.

The last fifteen years of research in sleep and brain chemistry have validated my experience. It had _nothing_ to do with self-accountability and responsibility; some people are night owls, others are not.

Fuck you for thinking that your personal experiences are indicative of me having "poor character." Fuck you and your fucking career.

<comment><USER43> I went through basic training in open-floor barracks with a few folk who insisted they were 'night owls' and would play their music to 01:00 or later, falling asleep to the noise.

Initially the rest of us endured it and would turn-off the radio when they fell asleep, to then enjoy four hours sleep. After the second week, however, we managed to 'cure' the night owls.

I am sure many people suffer a medical condition that impairs sleeping. Most, however, do not.

<comment><USER42> Did you not read the bit where I said I spent years following the advice of sanctimonious pricks?

</comment></comment></comment></comment><comment><USER44> One year in college I had Calc III at 6 PM. That may have been the most engaged I have ever been in a lecture.

</comment><comment><USER45> What kind of university has the space to start classes at 11AM? Just the logistics of trying to fit that many more classes into your limited building space seems impossible. You'd either need a lot more buildings, or you'd need to be forcing other things to the early time slot.

<comment><USER9> At my university the last undergraduate classes were out by 5, but graduate classes would run as late as 9pm. I think a perception that undergraduate should be 8-5 is part of the problem.

</comment></comment><comment> enahs-sf My advisor told me that many of the prerequisites for engineering were deliberately set at 8AM as a way to weed out the less dedicated students. Don't know how much truth there is to that statement, but I do know I missed a lot of physics lectures freshman year for this reason.

</comment><comment><USER46> If you actually started the university day at 12pm, though, then evening classes would run later, and students would stay up later, creating a vicious cycle.

Plus, you'd have fewer daylight hours to walk home after class.

<comment><USER47> Yes, however your sleep scheduled isn't affected when you're late partying which is a big bonus.

</comment></comment><comment><USER48> I really don't understand the dependency on hours of the clock.

Would a student struggling in an 8am class in Pacific time suddenly excel if they moved to the East coast and went to 11am classes starting at the same moment?

Is there any variation between the east and west extremes of a given time zone?

Is 11am post daylight savings as effective as 11am before shifting the clocks?

Or is this more about the social habits of the people around the students than the height of the sun in the sky?

<comment><USER49> For healthy normal people, when you travel your circadian rhythms reset your body's internal clock and sleeping schedule based mostly on sunlight exposure. It takes between a few days and a week to adjust (this is exactly jet lag).

There is absolutely variation between time zones extremes. The Spanish, for instance, notoriously eat and stay up "late" compared to the Polish or Germans. All three countries are in the same time zone, despite the sun setting about 2 hours later in Spain.

Social habits do matter (the Spanish schedule is somewhat more delayed than the 2 hours you might expect from sunlight alone).

If you'd like to look up more on this topic, you can read about light therapy, sleep hygiene, shift worker syndrome (where normal people try to sleep later than natural), and delayed sleep phase syndrome (where night owls try to sleep earlier than natural).

</comment></comment><comment><USER50> I hate classes that start late. It just means I'll sleep till the time I need to leave for class. If the class is at 8, I'll get up at 730 and of the class is at 11, I'll wake up at 1030. So a later class just wastes my morning.

</comment><comment><USER51> I always preferred early classes. Usually in school I would be done by lunch MWF, and do 1-6 or 3-7 TuTh.

Most of the people I knew complaining about early classes were hung over. I only drank and carried on during the weekend to avoid that.

</comment><comment><USER52> I expect students would do better for a week or two. By then they'd be getting up at 10:30 and the 11:00 classes would seem early.

</comment><comment><USER53> 8AM Systems Analysis and Design and 8AM IT Project Management are the two biggest mistakes of my college career.

</comment><comment><USER54> The Nick (local dive bar) closed at 4a to keep from turning into a B&B. Saw RHCP there - good show.

</comment><comment><USER55> University students optimal learning time of the day varies person by person, common sense indicates.

</comment><comment><USER56> "University students go to sleep later than most people, neuroscience research shows"

\- the next mind-blowing revelation in this series of articles.

<comment><USER57> Honest question, did you read the article? While I haven't read this particular one, I'm familiar enough with the field to know that controlling for confounding factors is one of the most basic types of controls. Any half- decent article would control for the kind of thing you're suggesting.

That said, the article appears to have been published by Frontiers in Human Neuroscience, which does have a less than stellar reputation for rigorous peer-review and, as a result, article quality[0].

[0] [https://neuroconscience.com/2016/01/15/is-frontiers-in- troub...](https://neuroconscience.com/2016/01/15/is-frontiers-in-trouble/)

</comment></comment><comment><USER58> I know this has been proven for high school students as well. There have been some interesting studies about starting times and standardized testing as well. Check out the study "Examining the Impact of Later High School Start Times on the Health and Academic Performance of High School Students: A Multi- Site Study"

<comment><USER59> AFAIK the early hours classes are meant to build discipline, not to optimise for learning. A lot of school rituals seem to be built with the goal of making you used to a disciplined punctual life, rather than actually teaching you any knowledge.

<comment><USER26> My experience (as someone who was elected to public education administration) suggests it's often more about logistics. For example, adjusting how many bus drivers (and busses) are needed in a district to serve elementary, middle and high schools. Staggering start times reduces the need, but drives one of these options to be earlier than the others.

High school sports complicates logistics later in the day.

It's not just a question of learning; it's also a question of cost and resources.

</comment></comment></comment><comment><USER60> Today I learned, American students are lazy and ineffective before 11AM.

<comment><USER61> Please don't take threads in nationalistic directions.

</comment></comment><comment><USER62> That is about when the hangover starts to wear off...

</comment><comment><USER63> I understand completely that exhausted students are going to perform worse than if they were better-rested. I absolutely do, as I was one - a more naturally late-night person who had to make it to those 9am classes and exams.

But look at the opening photo folks.

We're being asked to give the younger generation later start times _because they 're going to stay out partying no matter what during school_, and we better compensate for this.

What a pathetic state of affairs. Higher education is not meant to be 4 years of partying. Or if it is, let me know which schools are selling this vision, so as an employer I can more carefully filter people's 'educational' experience.

<comment><USER64> The opening photo looks to be at a sporting event, during the day. Not sure how that is problematic.

A systemic change of college and young adult culture would be required to stop students from partying late at night, I don't think the colleges selling or not selling this vision is going to have much of an impact.

I am not sure why pushing back some starting times is such a terrible idea given what we know about college students habits.

It kind of reminds me about addicts and either attempting to punitively discourage them and deal with the consequences or give them clean needles and at least ameliorate some of the problems associated with usage.</comment></comment>


Ask HN: How to get back to Unix after a sales job? - <AUTHOR>

I am currently working in Marketing /Sales. I do have a bachelors in CS and how I got here is a whole different story. However, I do feel left out of the IT race, for the lack of better words. So to sum up I had an IT background wherein I had a month or so of UNIX admin mentoring/training. It was Solaris mostly and I loved it. But I moved on to seek a challenging opportunity. That being said I still want to do some Unix Admin on the side. What would be a good resource or who will be willing to hire me for remote work or something of that sort ? Please advise <comment><USER2> just do it? I'd suggest spinning up a few flavors of *nix on aws/linode or what not (which you can probably do at the free tier level) and just get to grips w/ the different package managers and what not. I'd also say brush up on your bash skills and probably pick up python and node js while you are at it.

<comment><AUTHOR> so when u say free tier level are you referring to linode or AWS ? because I do not see any free subscription on linode and I am still browsing AWS. Can you please let me know what you are referring to since what you suggested sounds like a good idea to me.

EDIT: I found it on AWS. This sounds good I am about to signup. Thanks again.</comment></comment>