CentOS 7 potential release - <AUTHOR> http://seven.centos.org/2014/07/seeding-for-potential-release/ <comment><USER2> Even this article title says "POTENTIAL" release. I am not even sure it is signed?

They are still doing QA, it will be a week or two before GA

Before you rush to 7.0 after 6.5 - things you are going to have to learn because they change everything:

       systemd replaces init.d
       grub2 replaces grub
       xfs is now default over ext4 filesystem

( _many, many people dislike systemd, it is somewhat anti-linux in nature_ )

No more easy editing/understanding grub.conf

No more easy to edit/understand /etc/init.d (systemctl instead)

No more text log files for system log (journalctl instead)

Watch out for default XFS filesystem instead of EXT4 because it is slower in real world use for databases, etc.

Red Hat claims RHEL7 is 11-25% faster than RHEL6, I am not convinced at all, I think they are referencing a stock setup for 6 vs 7, but I don't know anyone that runs things stock without tuning. Wait for independent benchmarks.

CentOS 6.x will be supported until 2020

If you want a 3.x kernel for CentOS 6.x, try the ELrepo repository, they do builds for both mainline and longterm 3.x kernel releases. [http://elrepo.org/tiki/kernel-lt](http://elrepo.org/tiki/kernel-lt)

If you want newest GCC for CentOS 6.x try the CERN repo for devtoolset [http://linux.web.cern.ch/linux/devtoolset/](http://linux.web.cern.ch/linux/devtoolset/)

ps. there is currently no way to upgrade a 6.x install "in place" to 7.x, though Red Hat has migration tool and CentOS folks say they will look at doing the same - but like I said, don't be in a rush to early adopt 7.x

pps. RHEL7 notes are a way to explore what else is new: [https://access.redhat.com/documentation/en- US/Red_Hat_Enterp...](https://access.redhat.com/documentation/en- US/Red_Hat_Enterprise_Linux/7/)

<comment><USER3> _No more easy editing /understanding grub.conf_

True, the grub2 config is horrible.

 _No more easy to understand /etc/init.d_

It's a bit more complicated, but not too bad:

Instead of "/etc/init.d/thing restart" you type "systemctl restart thing"

Instead of chkconfig --list, you type "systemctl list-dependencies"

Writing the equivalent script with systemd is much cleaner with less hacks, particularly for launching as different users and doing locking.

 _No more text log files for system log (journalctl instead)_

By default. It's fine once you get the hang of the new syntax:

journalctl --since=today --follow

 _Watch out for default XFS filesystem instead of EXT4 because it is slower in real world use for databases, etc._

Depends on the workload. Speed is only one part of it. For some benchmarks by phoronix see [http://www.phoronix.com/scan.php?page=article&item=linux_315...](http://www.phoronix.com/scan.php?page=article&item=linux_315_hddfs&num=1)

<comment><USER2> I'll wait for more benchmarks to be certain but this database test of the 3.10 kernel (which 7 uses) of XFS vs EXT4 is not promising:

[http://openbenchmarking.org/prospect/1305166-UT- FILESYSTE20/...](http://openbenchmarking.org/prospect/1305166-UT- FILESYSTE20/fd501a41a2adcc643acc832de94444f9fd7d9678)

<comment><USER4> A 160 GB disk is not a real comparison for enterprises. XFS really starts to perform better on disks 1Tb as well as 8 cores and above. EXT4 really starts to creak when moving to filesystems that are 16TB and above. Something that is going to be common in the 7 years that Cent-OS 7 is around.

Of course with the amount of backports of patches that any RedHat kernel has the comparison to mainline version numbers is almost useless :(

For my workload the performance difference is 15% better for XFS than EXT4 on the same 3Tb of SSD with the same workload.

</comment></comment></comment></comment><comment><USER3> Site seems down, but an aggregator has a mirror (see the second entry): [http://planet.centos.org/](http://planet.centos.org/)

\----

copy/paste if that goes down too:

hi,

At this point we have a set of images that we consider release grade, pending final testing, we will move to release these unless a major blocker is reported.

folks with bandwidth to spare are encouraged to help seed these images via torrents, here are the urls to hit:

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.torrent)

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-GnomeLive.torrent)

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-KdeLive.torrent)

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-livecd.torrent)

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-NetInstall.torrent)

[http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-140...](http://mirror.centos.org/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-Everything.torrent)

\- KB

<comment><USER5> It's quite sad, in my opinion, that this is halfway down the page while yet another beating of the dead horse that is the systemd flam^H^H^H^H discussion is the most visible comment thread. Thank you for posting this.

</comment></comment><comment><USER6> If I were a large enterprise I'd reconsider CentOS. RedHat's lack of a commitment to the customer's experience in favor of RH's personal design preferences smacks of Oracle-ism. Anything they develop they immediately force on their users, and you have to just accept it rather than use it optionally. It's less easy to get away from those kind of changes versus something more open like ubuntu/debian (and I have no love for debian). And then there's the whole secret kernel patches and backported "features"... Then again i'm a dirty hippie who prefers Slackware, so maybe i'm too Linux-libertarian for today's enterprises.

<comment><USER7> Care to elaborate?

Systemd has a few nice features that I (as a systems admin of thousands of servers) really like such as:

        - simple "init script" like upstart, so magical or crappy shell scripts from vendors are a thing of the past. A standardized unit file

        - Ulimit support natively as part of the format

        - Limiting via memory/disk/cpu cgroups to contain buggy apps (hello mysql!)

        - Process restarting so tools like supervisord, monit, runit, etc are no longer necessary

        - It can _always_ stop an errant daemon as it uses control groups to do so, sysv init was sometimes buggy in this regard

        - Private /tmp (via filesystem namespaces), limiting system calls a service can run, tcp wrappers, read only parts of the filesystem (like /etc) are all trivial to add to any legacy service such as bind or sendmail and a supported part of the systemd unit file definition.

RHEL/CentOS 7 also include some super nice things like the new abrtd for centrally reporting any application coredump/kernel issue, pacemaker/crm for high availability clusters, and just a lot newer linux userspace. (yay for du -hsc | sort -h | tail)

As an _actual_ user who uses RHEL/Debian/etc on bare metal at scale, I really see nothing but awesome in RHEL7. It is just like I see awesome in Fedora 20 or in the latest Ubuntu/Debian. The Linux ecosystem has massively grown. Now we have a serious engineering company putting a lot of resources into supporting a new operating system. I'd love to see some of the technical reasons you have the opinion you do.

<comment><USER6> I'm not going to turn this thread into a debate over the merits of individual contributions to CentOS. All i'm saying is whatever RH develops gets shoved into their distro with seemingly no regard to the customer. It's not just that they're adding new tools, they're also forcing you to use them.

The nice thing to do for your customers is to make new technology _optional_ , and provide alternatives for people who have 10+ year old infrastructure that they don't want to spend 2 years upgrading because it's now full of legacy systems. But RH not only shoves anything they want down your throat, half the time they're not transparent about the changes taking place, and you just have to hope nothing breaks your apps (kernel as an example, but userland package changes are similar).

<comment><USER7> RHEL6 is supported until 2020[1]

[1] [https://access.redhat.com/support/policy/updates/errata/](https://access.redhat.com/support/policy/updates/errata/)

</comment></comment></comment></comment><comment><USER8> Looks like a release candidate.

> At this point we have a set of images that we consider release grade, > pending final testing, we will move to release these unless a major blocker > is reported.

<comment><USER9> the site is not loading what's new besides upgrades?

<comment><USER8> That page was just a list of links to download the images for testing.

</comment></comment></comment><comment><USER10> looking forward to trying systemd, hope it isn't too much of a learning curve.

Looking at: [http://tecadmin.net/red-hat-enterprise- linux-7/#](http://tecadmin.net/red-hat-enterprise-linux-7/#) \- will HAProxy come with centos 7?

<comment><USER7> It honestly isn't. The documentation is really good if you know how to use google.

<comment><USER11> Until its your network gatewayb appliance that is down and then you're fucked...

NEVER rely on Google for documentation or GNU info as that's probably not installed on your server.

This sort of scenario is where *BSD win every time.

<comment><USER7> The man pages are also available for every systemd app.

<comment><USER11> Ok my bad there. Last time I looked there were no manpages.

<comment><USER7> No worries, upvoted. Knowlege ++

</comment></comment></comment></comment></comment></comment><comment><USER12> A few mirrors already have the full version, so if the site is offline, you can - for instance - grab one from a Belgian hoster; [http://centos.mirror.nucleus.be/7/](http://centos.mirror.nucleus.be/7/)

</comment><comment><USER13> I guess the server is getting slammed, as I cannot get to the main page.

</comment><comment><USER14> Where is the ARM version? Anyone knows?

</comment><comment><AUTHOR> Title updated.</comment>


Temporal trends in sperm count: a systematic review and meta-regression analysis - <AUTHOR> https://academic.oup.com/humupd/article-abstract/23/6/646/4035689 <comment><AUTHOR> tl,dr

> This comprehensive meta-regression analysis reports a significant decline in > sperm counts (as measured by SC and TSC) between 1973 and 2011, driven by a > 50–60% decline among men unselected by fertility from North America, Europe, > Australia and New Zealand. Because of the significant public health > implications of these results, research on the causes of this continuing > decline is urgently needed.</comment>


Dropbox is stealing my space - <AUTHOR> I had an account using DropBox Pro. I have changed job and do not need this anymore, but want to keep what I have and use it. I have earned in total 10.25 GB, by inviting various friends to use DropBox. I am using 8.2 GB today - there should be plenty of space left for a basic account, correct? But downgrading to DropBox Basic leave me with only 7 GB and a useless account. DropBox amswer: "when you upgrade or downgrade, the extra space you got via making referrals will be worth different values, depending on your plan. So it does look like you will have 7 GB as storage space".
The result is that I am loosing 3.25 GB = DropBox is stealing my rightful earned space and remains with a useless account.
Rich <comment><USER2> Seems like it's documented here that there's a difference in referral bonus between the Basic and Pro accounts ([https://www.dropbox.com/en/help/200](https://www.dropbox.com/en/help/200)). Maybe you had earned 6.5GB in referrals on your Pro account, which has now been reduced by 3.25GB. It's frustrating that they're taking away the benefits you earned while paying for the Pro account, but it's not unusual.

</comment><comment><USER3> > _DropBox is stealing my rightful earned space_

It wasn't as much "rightful earned" as "handed down".

And on their terms.</comment>


"1945-1998", a chronology of nuclear detonations (2003) [video] - <AUTHOR> https://www.youtube.com/watch?v=cjAqR1zICA0 <comment><AUTHOR> More information about the video here:

[https://www.ctbto.org/specials/1945-1998-by-isao- hashimoto/](https://www.ctbto.org/specials/1945-1998-by-isao-hashimoto/)</comment>


How Americans pretend to love 'ethnic food' - <AUTHOR> https://www.washingtonpost.com/news/wonk/wp/2016/04/22/the-great-ethnic-food-lie/ <comment><USER2> This article is such utter bu11sh*t.

American food is gloppy, untasty shiat made by those incapable of flavoring beyond salty and sweet.

I say this as an American living in the US. Give me a nice Japanese chef any day of the week, and I'll happily eat that every day for the rest of my life.</comment>


Ask HN: Joke on CV? - <AUTHOR>

I've just updated my CV (with thanks to some awesome feedback from HNer's) and added "Crushing it since 1993", in reference to HBO's Silicon Valley. Will startups and trendy big techs appreciate this? Or is this just a bad idea?<p>The CV: https://www.dropbox.com/s/41n6g530impvhni/CV_v2.7.pdf?dl=0 <comment><USER3> I am starting the process of hiring now and a resume with that particular phrase would leave a really bad first impression.

It might not put you out of the running altogether, but I would see you in a different light: as someone who is not entirely serious and is still in the post college party phase, will come to work late or skip altogether, will leave the position within a short period of time to chase the next shiny ball, etc.

That might not stop me from hiring you, but then I would wait to see if my intuition is correct, if you are in any way different from what I expected, etc. That would determine how much I will invest in you as an employee.

So you see, it won't prevent you from being hired, but it will change the way I perceive you as a candidate and future employee.

</comment><comment><USER4> It's probably a bad idea. Your CV is a piece of professional communication. You probably want to keep it formal as much as possible.

You also don't have "a CV"; you have a template that you adjust as required for each company. Some places may like "crushing it", so add it for them.

Remember that some companies have a vicious pre-filter. You misaddressed the envelope? Bin. Used "sincerely" instead of "faithfully"? Bin.

(But please do test this and write a blog post with the results!)

EDIT: your age is irrelevant information in the UK. By law they are not allowed to consider it so you should not have it on your cv.

<comment><USER5> > Used "sincerely" instead of "faithfully"? Bin.

Unless you named the recipient.

I prefer "yours hopefully" for job applications.

</comment></comment><comment><USER6> I've done a bit of hiring and, to add to what others have said, I would leave it out. I have had some CVs cross my desk in which the author had taken some liberties with more casual phrasing and they were generally poorly received by the entire interview team.

To be honest, it doesn't really add anything of value and you're banking on someone understanding the reference (I didn't at first) and getting a laugh out of it.

For the small amount of value it _could_ add you're taking too much of a risk of evoking a negative reaction.

</comment><comment><USER7> I think it is perfectly fine. Not pushing but adds a little human touch.

EDIT: Apparently, it doesn't mean you've been programming since '93, but notes the year you were born. Then it's just plain silly.

</comment><comment><USER8> If they like you, this won't stop them from hiring you.

If they don't like you, this won't get them to hire you.

So non-issue, really. Enjoy yourself.

</comment><comment><USER9> I've no idea what you're on about, so for me it would just make you seem a little odd (sorry) -- and an overall negative impression.

You have to explain the reference in the question too, so I think you get that. After all, the best jokes are the ones that need explaining, right?!

</comment><comment><USER10> Just my opinion but even if I wanted somebody with a good sense of humour, if they can't be serious at the appropriate time I'd write them off. I'd say no. But good luck & you know your audience better so try it, you can always change it :)

</comment><comment><USER5> Bad idea IMO. To me that particular phrase is quite meaningless (like rockstar, unicorn, *10 programmer etc.) and arrogant sounding at the same time.

Might as well say "I'm the dog's bollocks"

If 1993 is your year of birth then it is even worse!

</comment><comment><USER11> My 2p worth: if there's a chance, however slim, that it won't go down well then I'd say leave it out. It's not worth the risk of some grouch binning your CV, which looks great by the way. All the best.

</comment><comment><USER12> Is there a reason you keep emphasizing your age? 22 and the "Crushing it since 1993" thing?

</comment><comment><USER13> I think it's hilarious and not a big deal.

</comment><comment><USER14> 1993 - <USER2>

Self

Crushing It.</comment>


Plasma 5.11 Release Announcement - <AUTHOR> https://www.kde.org/announcements/plasma-5.11.0.php <comment><USER2> Love how the improving plasma with every release.

The responsive design seems to be very cool and controlling starters from the app menu is cool, too.</comment>


Don't use the greater-than sign in programming (2016) - <AUTHOR> http://llewellynfalco.blogspot.com/2016/02/dont-use-greater-than-sign-in.html <comment><USER2> I really think this is just bikeshedding over style.

If we were optimizing for readability and predictability, we'd standardize on the most commonly used format.

``if (x > 5 && x < 10)``

Putting a rule that variables should always be on the left hand side of a comparison also gives you only 2 ways to write any conditional, so it's just as good as getting rid of ``>``. It also has the advantage of being by far the most widespread way that people already write conditionals, so you don't need to hold a team meeting where you explain to a bunch of grumpy senior programmers why even though they _think_ their coding style is easier to read it actually isn't.

But by far the best option is to not have a meeting at all and to not care about things like this. In the absence of real, tangible data that conditional styles are causing bugs, these kinds of debates are very often a pre- optimization, and pre-optimization should be avoided.

When I put the effort into tracking and ordering the root causes of the majority of bugs in my software (both in personal projects and in large corporate environments) I am often surprised at the results. Very rarely are they consistent with the causes I would have predicted.

That's why I call things like this bikeshedding. In a large organization, it is probably more productive for you to hold another meeting about encapsulation and code reviews than it is for you to start up a Slack discussion about what style people use on their conditionals.

<comment><USER3> _But by far the best option is to not have a meeting at all and to not care about things like this._

Indeed. This article reads like someone who doesn't understand inequalities, and proposes a quite possibly hazardous shortcut to it instead. To not understand such basic maths is baffling (this is primary-school stuff), and I wonder at the state of maths education these days to see adults struggling with these concepts.

I have never _in over 3 decades_ of programming ever had to ask myself the question of how to write conditional expressions --- it's something that comes naturally, and in this specific case I would also write it with the variables on the left.

<comment><USER4> Agreed.

That said, I've come across code where the variable is _always_ on the right. This often seems to be a throwback for some devs to alleviate the problem of mixing up equality and assignment.

That is, it seems that some people have been taught to use this expression (& stick to it religiously):

if (5 == x) ...

simply so that if they make a mistake and type

if (5 = x) ...

the (C/C++) compiler will reject it. So, these people always write the slightly more awkward case (imho) of:

if (5 < x && 10 > x) ...

but to me it doesn't read as cleanly, because we don't _say_ it that way.

Of course, there's the problem of understanding the meaning of 'between' which can be inclusive of the end points, or exclusive...and you really can't tell from the english. In every case, it needs to be clarified. (eg 'pick a number between 1 and 10'):

if (x>=1 && x<=10)...

</comment></comment></comment><comment><USER5> Qualification: Don't use the greater sign when doing range checks.

Counter-point: When checking if a variable is greater than a constant, using the less than is very confusing since we read left to right.

if(x > LIMIT) {

Read "If x exceeds LIMIT, then"

The opposite reads like "If the LIMIT is less than x", which sounds strange and emphasizes the wrong thing, implying LIMIT changed, not x.

<comment><USER6> Yeah, I think the article has a point for complex/chained expressions.

But if the way you think about the domain is "if x is larger than LIMIT..." you should write it `if (x > LIMIT)`!

</comment></comment><comment><USER7> This is incredibly poorly thought out. You don't only use conditionals while iterating. Even if you did, wanting to have a math like notation isn't necessarily reasonable. When reading a simple multi-part inequality like 5 < x < 10 I don't think "when 5 is less than x", I still think about it in terms of the variable. The benefit of arranging things in a simple inequality like above is the shorthand notation. You don't get that with:

5 < x && x < 10 vs. x > 5 && x < 10

</comment><comment><USER8> Clojure has a nice way of achieving

      (5 < x && x < 10)
      This is a nice way of expressing "x is between 5 and 10"
      because it is literally between 5 and 10.

which is that the < function can take any number of arguments:

      (< 5 x 10)

[https://clojuredocs.org/clojure.core/%3C](https://clojuredocs.org/clojure.core/%3C)

</comment><comment><USER9> Ah, [https://en.wikipedia.org/wiki/Yoda_conditions](https://en.wikipedia.org/wiki/Yoda_conditions)

<comment><USER10> Should I be worried that such a trivial thing has a name and a Wikipedia entry? What is the actual relevance here?

<comment><USER11> > Should I be worried that such a trivial thing has a name and a Wikipedia > entry?

It has non-trivial advantages and drawbacks, which are interesting to document.

</comment></comment></comment><comment><USER12> I use this. I can read lines reading left to right with only </<= _very_ quickly now, because of the visualization of a numberline in my head. Any other arrangement, and I have to slow down to my old, normal processing, and reason _very_ carefully about the code, lest a subtle bug slip by.

For similar reasons, I find this notation helps me prevent errors, because they become visually detectable.

<comment><USER13> Sure if you have

        5 < x && x < 10

you can use the number line visualization very quickly, but it breaks down if the code is in fact

        x < 10 && 5 < x

It means the same thing. But it's not obvious.

So the number line analogy is incomplete and even when there is only </<= you still need careful reasoning.

</comment></comment><comment><USER14> I had to write a scripting language for a personal project. Since I could create whatever syntax I wanted, I used this:

'if x==4' was written as 'x[4]'

'if x>2 && x<4' was written as 'x(2,4)'

'if x>=2 && x<4' was written as 'x[2,4)'

Etc.

It was very easy to read and write... at least for me.

<comment><USER15> What if you wanted 'if x>2 || x < -2'?

<comment><USER16> That's not exactly a challenge for the syntax...

        if-not x[-2,2]

Just like you'd write x ∉ [-2,2] with pen and paper.

</comment></comment></comment><comment><USER17> Ha, I've been using this trick for a while, though I wouldn't go so far as to say "don't use the greater-than-sign." Honestly I just wish languages had a cleaner way to write "x is within this range," e.g. "if x in [2,4)"

<comment><USER18> In Python we have if 2 <= x < 4.

<comment><USER19> There's also `if x in range(2,4)`, which translates to `if x in the interval [2, 4)`.

<comment><USER11> Is this efficient? I was under the impression (which is likely inaccurate, because I'm no expert on Python) that range returned a generator or a list outright, making this an O(n) operation.

<comment><USER19> You're correct. It returns a list from from [a, b), but it's just another example of some expressive (albeit computationally inefficient) notation Python has.

Edit: I take that back. Here's a section from Python's range() documentation:

> The advantage of the range type over a regular list or tuple is that a range > object will always take the same (small) amount of memory, no matter the > size of the range it represents (as it only stores the start, stop and step > values, calculating individual items and subranges as needed).

So it may be a O(1) operation under the hood.

<comment><USER20> No, what the docs say is that range is a generator. It never stores the entire list of values, but it _does_ iterate through all the numbers, spitting them out one by one (hence it uses O(1) memory, but O(n) computation).

Equivalent pseudocode:

      function in_range(x, a, b):
        for i=a; i<b; i++:
          if x == i return true
        return false

</comment></comment></comment></comment></comment></comment><comment><USER21> Another article along the lines of "I personally prefer to use a syntax in a certain case, therefore everybody should use the same syntax in every case, and really I do not understand why the language creators even allowed for the other syntax".

No, your are not smarter than everybody else. You just have different tastes, and you are not even covering all possible use cases (I would say that most people find "x > 0" more legible than "0 < x").

A lot of "Don't do" or "X considered harmful" article writers should really be a bit more careful before generalizing from "I like" to "everybody should" so quickly.

</comment><comment><USER22> This just seems like an argument against putting the variable on the right hand side of the comparator.

You _also_ only end up with two options, in the same way, and IMO (x > 5 && x < 10) is much more readable than (5 < x && x < 10) .

</comment><comment><USER23> as a CS major im sure this has academic value. as someone who is just learning python outside of a trade job as an engine mechanic, this idea makes me want to glass someone and im not sure why.

(5 < x && x < 10)

if we're talking about X, whats wrong with defining the parameters of its constraints in terms of X instead of dancing around the numbers? 5 < X makes it sound like im setting constraints on the number 5.

<comment><USER24> In python you can just do 5 < x < 10

<comment><USER25> which is also the proper way you would read in any scientific paper, and very easy to read imho.

5 < x && x < 10 is the attempt to replicate this in other languages but falls a bit short

<comment><USER11> > 5 < x && x < 10 is the attempt to replicate this in other languages but > falls a bit short

On the contrary, it's Python that added the shorthand, mathematical-looking notation because the longer "desugared" form wasn't great.

<comment><USER20> That's not the contrary, it is exactly what the other comment said ;). "To fall short" == "to not be great"

</comment></comment></comment></comment></comment><comment><USER26> This article is too basic.

> (x < 10 && 5 < x) which is a stupid option because it implies 10 < 5

What? no it doesn't!

> (5 < x && x < 10)

It's already very obvious that one can take 5 < x < 10 and split it into 5 < x && x < 10 right off the bat. Loads of examples of that out there.

</comment><comment><USER27> [http://4.bp.blogspot.com/-vglPHDBuUgI/VsniES7XnKI/AAAAAAAAD9...](http://4.bp.blogspot.com/-vglPHDBuUgI/VsniES7XnKI/AAAAAAAAD9k/7Evjten2ujI/s1600/Screen%2BShot%2B2016-02-21%2Bat%2B11.11.06%2BAM.png)

The number line representation is incorrect. (5 < x && x < 10) represents x has possible values of 6,7,8,9 (assuming x is int), whereas the number line shows that 5 and 10 are inclusive, but that's not the case as per the provided example.

<comment><USER11> Because all of the author's number line representations are consistent, I think you can consider them placing an implicit "open circle" on the bounds of all those ranges on the number line.

</comment></comment><comment><USER28> "Go ahead and find out which one, I'll wait" ... As if it required herculean effort.

"which is a stupid option because it implies 10 < 5" No it doesn't.

And I stopped reading.

<comment><USER29> Eventually, cognitive decline will win the day and I will be confused by simple use of conditional operators. Until then, I'm with you pal.

</comment></comment><comment><USER3> The bigger problem here is that if you say...

 _Let 's say that I want to check that something is between 5 and 10._

...you did not specify explicitly whether the ends are inclusive/exclusive, and IMHO that (and the off-by-one errors it causes) is far more important.

Related: I've more than once had to ask someone whether "I will be away from 23 to 27" was inclusive or exclusive for the 27, because e.g. "meeting from 10 to 11" usually is _exclusive_ at the upper end.

</comment><comment><USER30> Removing something doesn't necessarily make it more convenient to use. I'd find it bizarre if some language won't provide > using this logic.

</comment><comment><USER31> I prefer to use the "5 < x && x < 10" style as well.

I've arrived to the same general conclusion independently, which is reassuring.

<comment><USER32> Same with me, although I feel that putting the variable last is a form of Yoda programming. [https://en.m.wikipedia.org/wiki/Yoda_conditions](https://en.m.wikipedia.org/wiki/Yoda_conditions)

</comment></comment><comment><USER33> Lately, I am enamored of Ruby

      x.between?(6,9)

or very explicitly

      x.between?(5.0.next_float, 10.0.prev_float)

<comment><USER34> But you have to know if the boundaries are inclusive or exclusive, which leaves you with four different possibilities. You and everyone who reads your code needs to know this.

Ruby is my main language and I would have to look up the boundaries of this function.

Your "explicit" statement is also so much worse than using `x < 5.0` or `x <= 5.0`, depending on what you want. This is terrible advice imho.

<comment><USER33> I am lately enamored of Ruby because it helps me write code that makes me happy. Calling methods on numbers is one of those things that does.

Anyway, ranges are another way of expressing the concepts in Ruby:

      (5.0.next_float..10.0.prev_float).include?(x)

or

      (5.0.next_float...10).include?(x)

if I don't mean

      (5..10).include?(x)

None of which is advice. Just remarks about why I am enamored of Ruby, lately. If I wanted to write C, I'd use Go.

</comment></comment></comment><comment><USER35> This all looks good to me until I'm unwrapping an optional and checking it's length in Swift, which normally looks like:

        guard let array = obj.someArray,
              array.count > 0 else {
            throw SomeError
        }

<comment><USER11> A somewhat stupid way to solve this issue (of what is likely poorly-designed API, given what you're trying to do here; optional Arrays are generally a code smell) is to abuse the nil coalescing operator:

      guard !(obj.someArray?.isEmpty ?? true)

<comment><USER35> Well sure, except if the array is optional (and I agree it's code smell, but that's what you get when you use other peoples' libraries, I guess) that statement doesn't unwrap the array for me to use; I'll either need to do it manually on a second line (waste of effort) or every time I try accessing that variable. If I access it a lot, this is inefficient duplication.

Plus, I don't like abusing the nil coalescing operator. Once you're abusing anything, you're adding signal to noise and making the intent of a statement less clear than necessarily, I feel.

+1 for isEmpty, though. According to the docs, count iterates over collections that don't conform to RandomAccessCollection, so best to avoid unnecessary overhead by adopting good practice! Thanks for that.

<comment><USER11> In your specific example, it didn't look like you wanted to use that array, so I thought I could save you a variable. If you are planning to use it, then by all means bind it to a variable for reuse.

<comment><USER35> What other use is there for a conditional let?

<comment><USER11> I thought your only use for the array was to check its count. Now that I think about it, that was probably a stupid assumption.

</comment></comment></comment></comment></comment></comment><comment><USER36> For normal scalars any are fine and I can see the number line merit of the post. Where I find much greater value is when dealing with points in time. Write x.isBefore(y) rather than y.isAfter(x) especially in compound contions.

</comment><comment><USER37> Discussed at the time: [https://news.ycombinator.com/item?id=11148903](https://news.ycombinator.com/item?id=11148903)

</comment><comment><USER38> Claiming you shouldn't use the greater than sign in conditionals because sometimes it's confusing is going too far.

Also in python you can just do `if 5 < x < 10` :)

</comment><comment><USER39> ..but the greater than sign is still being used?

<comment><USER12> Where is the article using a >, aside from examples of what it is advocating against?

<comment><USER39> is there really a naming distinction between '>' and '<'? Is only one really _the_ 'greater' than sign? Interesting if so! I always assumed it was context dependent (i.e x < 10 could be said 10 is greater than x, so it's still acting as a greater than sign - but I see why I'm probably wrong here). I was interested in seeing an arguement like another poster made, where notation be like x = [0,1] might be proposed.

<comment><USER12> If you read

      Pull the lever when x < 0

aloud, you must read it as "Pull the lever when x is less than zero." Thus, "<" is "less than", and ">" is "greater than", for that reason specifically.

Also, Unicode calls it U+003C LESS-THAN SIGN and U+003E GREATER-THAN SIGN.

At least, that's the terms that the article is using, and I think there's sufficient context to identify that, and go along w/ it.

<comment><USER39> Well, and I don't mean to be strictly pebdabtic, but you could read it as "when 0 is greater than x", but of course it takes more overhead and I see why I was wrong. Thanks, it's getting late today so I'm glad I managed to learn something before the days up.</comment></comment></comment></comment></comment>


Smarter Parts Make Collective Systems Too Stubborn - <AUTHOR> https://www.quantamagazine.org/smarter-parts-make-collective-systems-too-stubborn-20190226/ <comment><USER2> The non-intuitive result, where more memory hurts, reminds a bit of two interesting games linked off of cryptographer Wei Dai's homepage ([http://www.weidai.com/](http://www.weidai.com/)), under "social costs of intelligence":

 _• Why good memory could be bad for you: game theoretic analysis of a monopolist with memory.[http://www.weidai.com/monopoly- memory.txt](http://www.weidai.com/monopoly-memory.txt)

• Why cleverness could be bad for you: a game where the smarter players lose. [http://www.weidai.com/smart-losers.txt](http://www.weidai.com/smart- losers.txt) _

<comment><USER3> In the first link, memory-less case, the seller's expected profit should be 0.25, not 0.5: he sells its product for 0.5 half of the times.

<comment><USER4> Both the seller's expected profit and the buyer's surplus are summed over two periods. The buyer has an expected surplus of 0.25 when the sale is made, but the sale is only made 50% of the time.

</comment></comment></comment><comment><USER5> Interesting paper and results, but this patently does not extrapolate to "smarter parts make collective systems too stubborn."

Try: "simulated, independent agents exclusively with left/right movements collectively begin to perform worse after they are able to remember beyond 7 prior moves."

<comment><USER6> I think maybe the author extrapolated a moral opinion ("too stubborn"), and then edited out everything that supported that opinion until left with just the confusing title.

</comment></comment><comment><USER7> Hah, I feel like this explains faculty meetings right in one sentence.

</comment><comment><USER8> "Over the past few years, he and others have found that medium-size groups of animals or humans are optimal for decision-making"

As someone intrigued by the mechanics of politics, this really struck home. Autocracies are bad for a variety of reasons - and so too are true democracies (where everybody can vote on many issues...see the CA ballot initiative chaos in public policy).

Representative democracy strikes this "goldilocks" balance with fewer actors than full representation, but far more than a restrictive oligarchy.

</comment><comment><USER9> It's a nice video but I don't understand how one would assign a numerical goodness measure to the starlings collective behavior. If the starlings were smarter the flock might behave differently but what would make us say that the change in behavior had a beneficial or adverse effect?</comment>


How We Measure Customer Happiness - <AUTHOR> https://flightfox.com/business/how-we-measure-customer-happiness

<comment><USER2> Gallup recommends a 3 question version. Net promoter, how likely are you to keep using services in the future and overall happiness. I like that balance. Happy doesn't matter unless you will keep buying. Keeping buying doesn't matter if the reason you are only one providing, but customer actually not happy, etc.

<comment><USER3> That does sound like a nice balance, but there's also value in having a single number. We noticed this going to our current two question system.

For example, with only one question, you can get anyone to rate at any time with a single click of a link (e.g. in an email). As soon as you have more than one question, customers have to visit a form with multiple fields and click a submit button.

This may not sound like a big deal, but it is. Also, having a single, easy to understand number helps us engrain the NPS in everything we do. Everyone on our team knows our NPS. Our experts even have their own NPS. They can recite each others' most recent scores. It's not easy to get an obscure metric like NPS engrained into everything like that.

That said, I do particularly like the question about repeat custom. We can measure it from our data, but intent to repeat sounds interesting.

</comment></comment><comment><USER4> Great article Todd! Thank you for sharing your experience. Would be good to hear more about how you engaged with your customers post-survey which is one of the most important aspects of Net Promoter. Driving to that direct engagement (to either ask for referrals/recommendations from Promoters or recover Detractors).

We're very excited to have recently launched Promoter.io (www.promoter.io), a platform built specifically to help companies not only measure and track their NPS, but drive more valuable/actionable insights out of the data and open- ended feedback. We also heavily streamline the process of customer engagement post-survey.

We don't allow customers to change (or "break") the survey. Standard single question with an open-ended follow-up about the score.

One important aspect to keep in mind about Net Promoter is that you're attempting to identify what is causing the most loyal customers to feel that strongly about your brand, and who WOULD (not just who is) recommend/refer your brand. Once you know who would you can directly engage those Promoters to drive referral business you might otherwise never see. It's there.

</comment><comment><USER5> David Skok wrote a great article about measuring customer engagement here: [http://www.forentrepreneurs.com/customer- engagement/](http://www.forentrepreneurs.com/customer-engagement/)

HubSpot's CHI is a great metric too.

<comment><USER3> It's interesting you mention this because a lot of typical SaaS metrics don't apply to us. Or at least they're not primary concerns. In many cases we try to minimize user engagement. Engagement is time and time is money.

Similarly, when we talk about NPS to SaaS founders, they seem less interested (for good reasons I imagine). But NPS still does seem quite universal.</comment></comment>


Getting Past Viral Marketing: Stop Spreading Viruses and Start Giving Gifts - <AUTHOR> http://www.bigspaceship.com/blog/think/getting-past-viral/

<comment><AUTHOR> Concluding remarks:

       Rather than spending another misguided year trying to "engineer" viral
       campaigns that will propagate themselves, regardless of consumer intentions,
       it's time to refocus our marketing efforts to align with the way that people
       actually behave.

       It's time to accept that all of our marketing efforts should start with
       an understanding of the needs and motives that guide consumer decisions
       and social behaviors, and not clever creative executions. We
       need to stop thinking about a mass audience that can be influenced and
       guided, and start thinking about the individual people we want to engage,
       as well as the people they want to engage. And we need to understand
       that effective marketing is no longer about making consumers serve
       our agenda, but finding meaningful opportunities to serve theirs.</comment>


Ballmer: Piracy costs Microsoft 95% of potential Chinese revenue - <AUTHOR> http://arstechnica.com/microsoft/news/2011/05/ballmer-piracy-costs-microsoft-95-percent-of-potential-chinese-revenue.ars

<comment><USER2> Oh please. They could've done something about this years ago if they really wanted. I'm sure they'd rather have 90% of the world on Windows, even if half of those have it pirated, than to only have 45% market share, and the other 45% to use a free OS like Linux.

Plus, claims like "potential sales" are always bogus. Piracy happens there for a reason. Windows costs more than most people's monthly salaries. If Windows cost $5 there, we'd probably see a lot more buy it. Not all countries can pay the same price for the products. It's something the music industry doesn't seem to get either.

EDIT: I just noticed Rebecca Black's Friday video here and I saw it had 150 million views on Youtube. I suppose that's 150 million lost sales right there, too.

<comment><USER3> And yet, they can afford the hardware, which costs a minimum 5x as much as the software. It's not that they can't afford it. They choose not to. It's easy enough to obtain pirated copies of Windows in China. It's harder in countries with developed business environments and legal systems.

The salary argument doesn't work, either. Chinese PC penetration is something like 15%, so you really need to look at the average salary of the top 20% when considering affordability, not the country as a whole.

It's better to look at this as your usual supply / demand curve. If the price of the hardware and software combination were $100 higher (about the cost of Windows 7 Home Premium in China), then fewer people would buy PC's, but Microsoft would make a ton more across all PC sales.

I believe the lost revenue argument, but it's not 100% and it certainly isn't 0.

EDIT: Missed a 'the'.

</comment></comment><comment><USER4> The majority of PCs sold run in the world runs windows. They are pretty much complementary. So the amount of PC sold should be similar to the amount of OS sold.

If they are not similar then you got to look at substitute OS that these PC users are using, ie linux, pirated software, etc. I highly doubt these Chinese consumers know anything about Linux being a viable option. Linux hasn't even deeply penetrated the desktop OS market here in America. There could be higher density of usage in areas like the Silicon Valley, but as a whole the average joe shmo American who are more enlightened consumers than the Chinese won't be using Linux as a alternative in mass.

So what are these PCs running on? It's pirated copies of different distributions of Windows.

This is because the IP laws aren't being enforced, Chinese consumers don't see the value of buying the real windows version (ie: updates) or the consumer is not educated and doesn't know if they are buying real or a pirated copy of windows.

Microsoft is getting jipped in china because they should be getting $ on almost every PC sold in that country.

</comment><comment><USER5> Utter bullshit. Microsoft chooses to price Windows high in China, knowing that most people will therefore make a private copy, because Microsoft is afraid that if they price it low, it will undercut sales in western nations (people will import legitimate Chinese copies of Windows to the U.S.).

That's their business decision and a perfectly acceptable tradeoff. But you don't get to make that decision, profit from it, and also whine about it.</comment>


Why I chose Windows 7 over Snow Leopard (and you should, too) - <AUTHOR> http://www.betanews.com/joewilcox/article/Why-I-chose-Windows-7-over-Snow-Leopard-and-you-should-too/1253136981

<comment><USER2> I think he lost me somewhere around "Microsoft is finally doing good user interface design."

If all you're using your OS for is some kind of browser hosting facility, then you can judge your OS by the chrome.

I think Windows 7 has some appeal here only because it's shiny and new and OS X is boring and old.

In the unlikely event Windows ever gets serious about their command line, then maybe it will be a viable development platform. Until then it's some kind of hilarious joke.

<comment><USER3> I wonder whether "powershell" will go anywhere. For many I get the impression that command line means Unix. However Microsoft's ability to partner with hardware vendors could lead to a new way of seeing the command-line. Although I have my doubts.

<comment><USER4> Generally, "command line" means Unix because it refers to the whole ecosystem of pipelines and composable utilities such as grep and gzip. Unix provides support (spawning new processes is cheap, buffering stdin/stdout between a whole chain of programs is handled once at the OS level, etc.) that Windows programs are stuck without or forced to re-implement themselves in userland. Since Windows doesn't provide that kind of infrastructure, programs tend to become large and centralized, with one GUI interface and (maaaaybe) a secondary command-line interface, rather than a set of smaller utilities that interface primarily via the command line, and (sometimes) have a GUI frontend.

While Windows could get a useful command line interface, the whole design of the OS works against it.

<comment><USER3> I think it is all too easy to be dismissive. Powershell could just be another VBScript, but it is clear that it is Microsoft's response to the proven usefulness of a decent command-line on OS X.

Being Unix is not a prerequisite for the command-line being decent either. What makes a good command-line is consistency and power. For example the command-line on some cira 1980's lisp machines the command-line was the operating system. Then there is the command-line on OpenVMS.

I think Microsoft intends to get round some of the limitations you list by building commands into the shell and making the shell itself extensible. Parts of it look very unix/perl like: <http://blogs.msdn.com/arulk/archive/2005/02/24/379732.aspx>

Although I am skeptical, I'd welcome any move to make windows more usable and Microsoft has changed the game before in the past.

Market share is not always given to the best technology.

</comment></comment></comment></comment><comment><USER5> I was pretty interested to read this, but there's no content here. The author doesn't explain _why_ he switched to windows 7, besides that it's "more fun". No specifics.

<comment><USER6> right. I took the time to read the full article, and just wasted 5 minutes. he doesn't even try to list some arguments. it's plain dumb.</comment></comment>


Minimal Consent - <AUTHOR> https://www.minimal-consent.com/ <comment><USER2> A browser extention to block all but what is needed for the site to work. seems better than clicking temporarily allow all every day.</comment>


Emacspeak 43.0 (SoundDog) Unleashed - <AUTHOR> http://emacspeak.blogspot.com/2015/11/emacspeak-430-sounddog-unleashed.html <comment><USER2> As a blind programmer I'd love to use this. Unfortunately none of the Linux packages are kept up to date and in the passed I've had issues building from source. There is now a Windows version but I can't get emacs-eclim to work under Windows. Other then emacs-eclim it does not look like there is a good solution for integrating with JAVA and Maven that is kept up to date. If anyone has any ideas I'd like to hear them.

</comment><comment><USER3> Can't really read the whole thing at work as I feel self-conscious reading a page tiled in labradors on work time.

<comment><USER4> I'm just going to come out and say it, you are complaining about the look of a website created by a blind man.

FWIW, the lab background is not there on my phone.

</comment></comment><comment><USER5> Here's an interesting article about the history and features of Emacspeak, written about a year ago:

[http://emacspeak.sourceforge.net/turning- twenty.html](http://emacspeak.sourceforge.net/turning-twenty.html)

The text-to-speech engine he said he was still using in that article (Eloquence) is the one you can hear in the videos referenced in another comment.

</comment><comment><USER6> Anyone got a video of this in action?

<comment><USER7> [http://tvraman.github.io/emacspeak/videos/](http://tvraman.github.io/emacspeak/videos/)

I think they're from 2007 though.</comment></comment>


The complexity of storage and caching layers - <AUTHOR> http://sytse.com/post/the-complexity-of-storage-and-caching-layers

<comment><AUTHOR> Repost because the old article had a spelling error in the url.</comment>


The Manila Galleons: Cruel Ships of Prosperity (2016) - <AUTHOR> https://aeon.co/essays/the-manila-galleons-that-oceaneered-for-plague-and-profit <comment><USER2> "Disease was exacerbated by a primitive view of cleanliness among Europeans of the age. Though latrines that cantilevered over the ocean were available on some galleons, many sailors didn't use them, instead shitting into the ship's bilge, or even in the general hold. In part, Careri tells us, that was because of the incessant, brutal cold. But this indifference was widespread. The French sailor François Pyrard de Laval wrote in 1610 that typical Portuguese ships around India were 'mighty foul and stink withal; the most men not troubling themselves to go on deck for their necessities'.

The lack of basic hygiene on ships illustrates the vast gap between early modern knowledge of geography and sailing on the one hand, and of the internal frontiers of the human body on the other. It was well-known that the world was round, part of the basis for the galleons' amazing navigational leap. But few educated Europeans of the 16th and 17th century had more than the vaguest concepts of nutrition, infection, germs or the role of cleanliness in health. Most ships, even as late as the 18th century, relied for rudimentary medical help on a multitasking barber whose most effective tools were his enema syringe and tooth-puller."

Given my upbringing with 20th Century American standards of fresh water, toilet and bathing facilities, I could not imagine the sheer amount of filth experienced by these sailors and travelers. What an immune system the survivors must have had.

<comment><USER3> Now imagine being the cargo on a slave ship, which had similar if not worse conditions, but you're shackled by hands and/or feet and you can't even move for months on end.

[https://www.bl.uk/learning/timeline/large106661.html](https://www.bl.uk/learning/timeline/large106661.html)

The diagram above shows how they were _supposed_ to be packed: as the text explains, the ship actually had twice as many, so they were fitted in lying on their sides or double-stacked. The "flux" mentioned in the text is dysentery (bloody diarrhea), which coated the decks they slept on.

</comment></comment><comment><USER4> Reminds me of this excellent article:

[https://multimedia.scmp.com/culture/article/spanish- galleon/...](https://multimedia.scmp.com/culture/article/spanish- galleon/chapter_01.html)</comment>


Ask HN: Where are the Windows Phone Marketplace Millionaires? - <AUTHOR>

We've all heard or read stories of financial success from developers targeting Apple's iOS platform. Microsoft recently started the first round of payouts for developers from the Windows Phone Marketplace, but I haven't heard any great success stories. Has anyone heard different? <comment><AUTHOR> I found the following AppHub forum posts where some developers talk about their sales/download/trial numbers <http://forums.create.msdn.com/forums/t/69061.aspx> (in early to mid Dec most devs were posting numbers < 100\. The highest I saw was the Farseer games guy(s) that had ~1K). Some free games were > 10K.

</comment><comment><USER2> with < 2 million devices sold at this point, I doubt you're going to see millionaires yet.

Assuming you'd need 1 million downloads to make $1 million, check back when WP has 20 million+ devices in use.

<comment><USER3> I agree that the number of available devices is not sufficient in order to make solid conclusions about the marketplace potential. When do think Windows Phone will have 20+ million devices in use ?

<comment><USER2> I have no way of knowing when, but lets try to extrapolate a bit.

In Dec we heard the figure of 1.5 million devices sold to Carriers. A month later we hear that 2 million devices have been sold to carriers.

Not all of those devices were sold to customers, so we can't say they are running 500k activations/month, so lets take that down to say 300k activations/month after being on the market for 4 months. Assuming they sold 200k in the first month, that's 10% growth/month. A nice comfortable number.

If they are able to continue on that growth cycle it is 24 months to 20 million devices. However, with the explosive growth that Android saw, 300k handsets activated per day, I suspect we'd see WP7 reach 1/4 of that within the first year. So let's say at 16 months they are activating 2 million devices a month.

Either metric, you're looking at 1.5-2 years to reach 20 million devices.

Thoughts?

<comment><USER3> In case the rumors related to NOKIA using WP7 as the OS for some of their devices come true , I think the number of 20 million devices will happen sooner. Especially if they manage to launch WP7 devices within 2011 to China ,where Nokia has a very strong position.

</comment></comment></comment></comment><comment><USER4> I am just one data point but I have not heard any. I would not be posting that if I was not sure that this would resonate with many HNers here.</comment>


Ask HN: Should I pursue an ML career with good pay or a dream to teach abroad? - <AUTHOR> Alright, so here's the low-down. (25M) I'm currently a first year phd student in the sciences (programming-oriented) at an R1 university, but I'm leaving at the end of summer because a PhD was not the right track for me. In the meantime, I'm working on boosting my programming skills, since I have a connection that's getting me a foot-in-the-door over at an alexa top 10 website for a junior ML position. Basically, if I go for this, I stand a good chance at getting a position with a base salary of ~70k+
That's option one.
Option two is I pursue a dream Ive had for about a decade to go live in Japan for 1-2 years or so. Probably would start off just teaching English, since I dont think my Japanese is good enough yet for me to be able to compete for jobs I'm more qualified for. My current financial situation is pretty much in the shitter, and I have loan payments and bills that make it effectively impossible to save anything.
Here's the thing though. I'm young now. and I know that that won't last forever. If I go for the career opportunity, yeah, sure I'll almost certainly be financially stable, but it will almost certainly also lock me into a particular location for years. And realistically speaking, life will happen, and the chances that I'll ever actually pursue the dream of living abroad will diminish greatly. On the other hand, if I go, I most likely will not be very financially stable, but I will be pursuing exactly what I want to do. I already know that I love teaching, since from my PhD program, I've been doing it for a year now, and it's literally the best part of my day.
So, if I go, I would be liquidating the vast majority of my personal belongings in order to afford the move. And of course theres also the logistics of getting a job/housing/etc. <comment><USER2> > My current financial situation is pretty much in the shitter, and I have > loan payments and bills that make it effectively impossible to save > anything.

This cements it. Take the paying job. You can always pursue your dreams in the future, _and_ it's more likely to work out when you are more financially stable.

<comment><AUTHOR> Well to be fair, they are both paying jobs, one would just pay significantly less. As for pursuing dreams, my concern is that by the time I am financially stable, I will not be willing to drop the entire life I have created at that point. Whereas right now I'm in a transitory phase in my life, where I am not particularly tied down.

Does that make sense?

<comment><USER2> You're only 25 years old. Even if you spent 5 years at your ML job, you'd only be 30. Contrary to popular belief, your life isn't over at 30! If you still have the desire to teach overseas then, it's not going to be too late. And by then, you'd probably be in a stronger position financially to make that switch.

Think about the reverse situation. You go overseas, and you realize things are not as rosy as you'd hope. What are your options then? Because I can tell you from first-hand experience, moving to another country is a lot costlier than you'd think. Especially to a country where you don't even speak the language.

If you want to take a big risk at life, that's great. Don't let a random Internet stranger stop you. Please just make sure the odds are stacked in your favour.

<comment><AUTHOR> I definitely appreciate the input. After all, thats what I came here for. As for moving expenses, the sort of teaching jobs I'm looking at usually come with compensation specifically for moving. And I've also studied the language for about a year and a half, so although I'm a bit rusty right now, I'm pretty sure I could get some pretty simplistic communication done, even if I didn't decide to go back to studying it full-force as I almost certainly would.

My concern with waiting is that I will be a different person then, and I'll be less able to experience it in the way that I want to. That is, if I am even able to go. For example, if I am in a relationship at that point, most people dont take well to their partner up and telling them that they want to go live on the other side of the world for a year or two.

All that said, I really am taking all of this advice to heart. I'm just arguing my side because well....I cant get to intimately know the strengths and weaknesses of both sides unless theres a lively debate. I hope you know what I mean. I appreciate the input.

<comment><USER3> Random internet stranger here

A relationship, a mortgage and even kids happen if you take the job route. As someone who took the job route and now have a mortgage, I vote Japan, though you prolly wanna talk with some folks who have done it first just for confirmation...or have a backup plan if for some reason it actually did suck.

On the flip side my girlfriend would be stoked if I said I wanted to move to Japan, so you never know who you might end up with if you stick around and pay down some debt.

Routines and inertia are hard to fight tho once you get on a path.

Edit-spelling

</comment></comment></comment></comment></comment><comment><USER4> You'll always be able to teach oversea. I assume age isn't a factor for this type of job. On the other hand, you probably won't be able to earn money in software engineering 10 years from now if you leave this path. Without skills in 10 years, it's likely to be much harder to make money than now. It's always good to have a safety net.

But you can also be a gambler and listen to your heart and leave tomorrow!

Now that I think about it, right after I graduated (from a top school in my country), I had several options to earn a very good salary. 20 years later, those options simply aren't there anymore! I'm too old for a beginner position, and don't have the experience for a more qualified job.

</comment><comment><AUTHOR> As for support, I do have some from my family in case of an emergency, but its certainly not infinite. I feel like in life, I've consistently taken the safe route. Now, I'm really tempted to take a huge chance. I know that taking a year or two off to teach English would generally detract from my career, but I also am very self-motivated, and I would probably spend a good amount of that time building my programming skills even more.

tl;dr: Should I take a mid-pay job with high potential for future salary, but be locked into a particular location, or pursue a life-long dream and teach abroad for a low salary with low potential for future salary?

<comment><USER5> Do you want to be happy? Don't settle, pursue your goals. Just don't fuck up your life.

<comment><AUTHOR> Of course, who doesn't. But I suppose the question here is whether pursuing my goals would indeed fuck up my life or not.

There's also the option of trying to find a similar such ML position in japan also, but i still need to look into that.

</comment></comment></comment><comment><USER6> Would your earnings teaching English in Japan cover living expenses and debt? If it would, the go for it. If it wouldn't, figure something else out.

If you do go for it, and don't want to make this a permanent change, make sure to stay current with technology. Build a public portfolio showing that even though you aren't working in tech, you are still working with it.

Another option would be to slowly transition away from teaching English to becoming a freelancer so that you could travel while still earning mid-high pay.

<comment><AUTHOR> yes, they almost certainly would cover living expenses and debt, and id probably be able to save on top of that. I've already done some number crunching along those lines.

Yeah, honestly I was already thinking about teaching english as a means of full-time pay, and then doing ML freelance work to build my skills and portfolio

</comment></comment><comment><USER7> The skills and money you get in the ML career could enable you to pursue your dreams with a clear head once your debts have been settled. And maybe you could find a similar role out there?

If you are comfortable in the ML career and want to stay there, then I don't think you'll kick yourself for not leaving, as you might be happy there. You can always go once your in a more settling situation financially, and if you still have the itch, you can scratch it.

<comment><AUTHOR> I understand what you mean. But my concern is that by the time its perfectly comfortable for me to pursue this dream, I'll already be in a position where I cant live the dream. If that makes any sense.

Like yes, I could wait another 5 years until I am settled and have decent savings. But then I'll be settled, and just be left to wonder at what could have been.

</comment></comment><comment><USER8> I think your post gives away the answer and you're only looking for confirmation.

Honestly, I can't give you advice financially as I am roughly your age, but if I were in your position I would follow my dream without any hesitation.

Perhaps considering lacking which of the pursuits would hurt you the most in 10 years can make your decision easier.

</comment><comment><USER9> This is where I turn for any career advice. It serves me well so far.

[https://sivers.org/scares-excites-do-it](https://sivers.org/scares-excites- do-it)

</comment><comment><USER10> maybe you can get a bachelor degree from diplomascenters.com. so as to get a good start for your career.</comment>


Write Yourself a Scheme in 48 Hours - <AUTHOR> https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours <comment><USER2> I tried using this book to learn functional programming and Haskell. It didn't work for me, due to the learning curve and topic progression. I recommend instead reading "Programming Language Concepts" by Sestoft. It's F#, but it helped me understand the Haskell bits of this tutorial much better.</comment>


Launching the Startup Studio Playbook – To make startup building easier - <AUTHOR> https://www.producthunt.com/posts/startup-studio-playbook <comment><AUTHOR> Hi there,

Please have a look - and get a free sample, or a big discount through the Product Hunt page - of my new book, which is about startup studios, a.k.a. venture builders, startup factories...

Almost two years ago we decided to transform our development agency (Drukka) into a startup studio, an organization that build innovative new companies with internal resources in a sustainable and repeatable way. But we didn't know how.

So I started to research the topic, and interviewed some of the most exciting examples - Science, Betaworks, eFounders and many more. And I put all this knowledge into this book, to make the startup studio model more transparent, and to enable entrepreneurs to build and grow new studios.

Now, interestingly the startup studio model is not yet that popular in the Bay Area, with few exceptions like Expa. I think that's because the whole Bay Area is like a giant startup studio, where you have critical mass of talent, money and ideas. But the rest of the world is like a desert, where these three things are scarce. And in such an underdeveloped startup ecosystem a studio is like an oasis.

Either way, looking at the trends we see that nr of startup studios is doubling - tripling in the recent years. So I hope you will find some value in the book and discover how the startup studio model can benefit you.

Here's the longer story of the book: [https://medium.com/@aszig/launching-the- startup-studio-playb...](https://medium.com/@aszig/launching-the-startup- studio-playbook-69d1685c7657#.70jj5x2kj)

If you have any question, thought about the topic, please share.

Thank you, Attila

</comment><comment><USER2> Very insightful; many think of Startup Studios as a recent phenomenon, however (as illustrated in this book) they've been around for a while :)

<comment><AUTHOR> Thank you for the kind comment!

And yes, you are right! Best example is Idealab - creating amazing ventures and exits since 1996. But even before them, some large companies were creating new ventures for new products and grew them much like startups. :)

</comment></comment><comment><USER3> Awesome thanks for sharing! Thumbs up, mate!</comment>


Ask HN: How do you work? - <AUTHOR> http://money.cnn.com/2006/03/02/news/newsmakers/howiwork_fortune_032006/index.htm I came across this old article about how successful people work - http://snurl.com/26lrf. But I did start wondering if there was some gap between how these guys worked and how you work?
My question to you is: How do you guys work?
p.s: I am pretty sure there are a whole bunch of HNers who will consider themselves fairly successful to answer this question. <comment><AUTHOR> I came across this old article about how successful people work just recently. And I started wondering if there was some gap between how these guys work and how you guys work your time?

My question is to you HNers: How do you guys work?

Thanks!

p.s: I am pretty a whole bunch of HNers will consider themselves fairly successful to answer this question.

</comment><comment><USER2> I'm chained to an 8-5 shift currently.

I do my "real" work (or at least interesting work) when I get home and work on my own projects.

Generally, I pick one task to focus on and pound away on it for a few hours. I am assisted in the process by an eclectic variety of background music depending on the focus and the tempo of progress being made.

If I begin feeling that no more progress can be made or that a different approach is necessary, I'll take a break or work on something else and let my brain stew on the previous project in the subconscious.

</comment><comment><USER3> "How is managing a team of techies different from managing other kinds of office workers? Technical people are motivated by interesting work. They will put up with abominable working conditions if they get to work on something that interests them. I've managed people who had to be sent home at night. But technical people without interesting work are very difficult to manage. Their active minds tend to get them into trouble. A happy team is a group that is busy and too intrigued with their project to get mired down with internal politics. In contrast, I find office workers to be more interested in the overall job than the task at hand. Environment, recognition and security are more important to them.

I've also found that technical people need to have adequate playtime. Ideas are exchanged and expanded while they play ping-pong or walk around the parking lot. Allowing people the freedom to wander when they need to returns high rewards that far offset the apparent lack of focus. Technical workers work all the time. Their minds are constantly mulling over problems and possible solutions. What looks like slacking off may be the most productive time they spend. Give them the freedom to work. "

[http://www.computerworld.com/action/article.do?command=viewA...](http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=300537)

</comment><comment><USER4> _A dozen accomplished people tell what works for them._

If having a life like those folks is what's called "accomplished", I want to be a failure.

To answer the question though, I do my best (most productive & efficient) work when I'm working 6 to 9 hours a day in an office with a few other smart caring coworkers, no travel, a good amount of sleep, and doing nearly no email / IM / etc.

My best ideas come from the shower and sleep.

I think the number of people I have a discussion with in a day has an odd relationship with the quality of my work. The peak is somewhere between 2 and 9. I think that's even true when I'm managing large numbers of people.

</comment><comment><USER5> Having worked as a programmer and spending time at B-school, I'm about to tell you the secret that explains all the conflicts between managers and programmers.

Many is the programmer who's said "I get more done after midnight than most people do the rest of the day."

But at B-school the saying goes "I get more done before 8 AM than most people do the rest of the day."

And therein lies the problem. ;-)

<comment><USER6> Well if they'd let the programmer come in at midnight, then his productive time would be tapering off right about the time the MBA shows up at 6am to get all his work done. It would be perfect.

But no, programmers must pretend to be generic office cogs. 9-5 just doesn't make sense for a creative profession. Working hours should be whenever the person happens to be working, and managers should be good enough at knowing whether things are getting done that they don't have to watch all their employees (pretend to) work on a set schedule.</comment></comment>


Running GlusterFS in AWS: Installing, tuning and performance tips - <AUTHOR> http://blog.celingest.com/en/2013/03/21/glusterfs-in-aws/

<comment><USER2> A good intro to GlusterFS: pros and cons and performance tips... a must-read!

<comment><USER3> I like the ant

</comment></comment><comment><USER4> Good post, thank you for your work, I wait for the next one!

</comment><comment><USER5> +1! But.. how it compares with xtreemfs?</comment>


The Secret Feature of EM-DOSBOX on Internet Archive - <AUTHOR> http://ascii.textfiles.com/archives/4924 <comment><USER3> Em-DOSBox is incredible. I'd previously wondered if it might be possible to run DOSBox in the browser with emscripten, but there seemed to be nothing working out there. Then the Internet Archive started hosting DOS games, and I wondered what they were using, thus I found Em-DOSBox.

At the same time, I was getting a bit of nostalgia for Windows 95, the first upgrade to Windows I ever used. And it turns out with a bit of fiddling you can run Windows 95 in DOSBox and have it mostly work.

Thus [http://win95.ajf.me/](http://win95.ajf.me/) was born. Windows 95 running in the browser. It's still rather unbelievable. You can listen to CANYON.MID on an emulated Sound Blaster 16!

(Unlike the Internet Archive's games, this doesn't do any saving to local storage, sorry. I'm not sure it practically could, because it's not using a fake filesystem mapped to fopen() calls by intercepting DOS system calls, as DOSBox typically does, but rather DOSBox is giving Windows 95 a real disk image, so you'd have to stuff 131MB into localStorage.)

<comment><USER4> Things like this just make my mind spin when contemplating the number of layers invoked to get it working.

an OS running inside DOSBOX compiled to JS deliver over HTTP/TCP/IP to be interpreted by a browser (at this point perhaps a OS in its own right) running on top of a OS on top of a CPU.

It really feels like we are back in the leased terminal era...

<comment><USER3> Yep! And you can even run DOS apps inside Windows 95, so you can have Virtual 8086 Mode inside your virtual x86 CPU (DOSBox) inside your JavaScript virtual machine, inside a sandbox...

Disk access here is fun through the sheer number of layers. Consider a DOS prompt inside 95. When a DOS application tries to perform an I/O operation, it will make a DOS system call. DOS, in turn, will call the BIOS. This BIOS call will be intercepted by Windows 95 which, since it has no 32-bit disk driver (DOSBox doesn't simulate a real disk controller), will pass it on to DOS (the one underlying 95), which in turn will make a BIOS call. Everything before this point has been under DOSBox's x86 emulation. We then go through to the C++ fake BIOS of DOSBox, which handles the BIOS call by calling the C standard library I/O functions. However, those have been replaced by emscripten's shims, which will grab that data from the asm.js heap somewhere (or does it ferry it out to JS? I'm not sure.)

And DOSBox itself has been compiled to asm.js (which your browser may compile to machine code through JIT) and is running in your browser's JS VM. Which, if the browser you're using is on Windows, may be a 32-bit version, which is running under Windows's WOW64 (Windows 32-bit on Windows 64-bit)...

The layers never end!

[http://i.imgur.com/lcZZ5YU.png](http://i.imgur.com/lcZZ5YU.png)

<comment><USER5> Reminds me of The Birth and Death of Javascript: [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

</comment></comment></comment></comment><comment><USER6> Something that most emulators have failed to achieve (and that the Start9 project[1] aims to fix) is the user experience. It's great to have a working emulator, but it's even better to have an emulator that doesn't have a learning curve bigger than the everest. It won't work if we ask our users to download things from the internet (often from third-party websites), especially if they're shipped with adwares (as it happens with some official emulators), or require third-party plugins (remember EPSX?), or don't have any easy screen sharing features, or ... Things like what the article is about are a small step in the right direction.

[1] [http://start9.io](http://start9.io)

<comment><USER3> There's a free service called Console Classix where you can download their app, and it gives you a large library of games for retro consoles you can just click and play straightaway:

[http://www.consoleclassix.com/](http://www.consoleclassix.com/)

I've used it before, it's a pretty good experience. You have to pay to be able to play non-NES and Colecovision games, though.

They justify the obvious copyright violation by only letting you play games they have physical copies of, and not letting more people play concurrently than they have cartridges. This... doesn't really avoid the copyright issues, but they do it anyway.

<comment><USER6> > They justify the obvious copyright violation by only letting you play games > they have physical copies of, and not letting more people play concurrently > than they have cartridges. This... doesn't really avoid the copyright > issues, but they do it anyway.

We found this service before creating Start9, and considered using the same thing. We talked to a lawyer before, who advised us not to do it, and fallbacked on letting people upload games that they are able to according to their local regulation (usually, games they dumped themselves), and forbidding them to lend their accounts to their friends.

It's 100% legal, but unfortunately it's still hard for some users to understand why this limitation exists. What I would love to do would be to have kind of a deal with game publishers, but as a single man currently working on the project, I don't the time to contact these studios (especially since most of them have closed since the games have been released, or are under Nintendo's copybag, which won't be ever available to third-parties such as ourselves).

</comment></comment></comment><comment><USER7> >Of course you can't save your games! They're not some actual thing playing on your operating system. They live inside a window...But we got a lot of complaints about it...So we fixed it.

Great example of usability winning out over technical purity here. Just because something is behaving as we expect it to doesn't mean it can't be changed to make the experience better for everyone.

<comment><USER8> Your point isn't wrong, but there was no "technical purity" motivation for not implementing it from the start. It's just difficult to do well, so we only implemented the easy case (DosBox), and only the easiest of the easy cases (only one saved filesystem, no disk swapping, no ui, etc).

It's the same as printing. Everyone writes hilarious complaints in the comments on the word processors about how printing didn't work. Of course you can't print! It's an emulator running in JS in your browser!!!1! But we have ideas for how to implement it, so maybe one day it will work after all.

Saved games and networking are higher priority and are further along though.

<comment><USER7> Ah, I was assuming there would be a kludgy hack to bridge between the emulator's filesystem and localStorage on the browser.

<comment><USER8> Fear not, there are in fact some kludgy hacks in there. The BrowserFS stuff is really clean though, and since DosBox is written in C and uses the normal POSIX file api (DosBox thinks it was compiled for Linux), plugging the two together was pretty easy.

</comment></comment></comment></comment><comment><USER9> Can the LocalStorage API be used to store supercookies and thus track users?

<comment><USER3> It's a persistent storage API, so yes. Browsers usually offer the option to clear localStorage alongside cookies, though.

<comment><USER8> Since you can clear it it's not a supercookie.

</comment></comment></comment><comment><USER10> Maybe I'm not enough into the details, but from my perspective it seems as it should be very normal to save things in an emulator. It should not just be possible by default it should be much better than in the original, since we control how we set up the emulator. E.g. I would expect a game that had 3 saving slots to have 1 mio now. I would expect that these files would be stored in my host file system in a way that I can back it up and sync it via dropbox and github. Is that really that uncommon?

I mean, there are people who hack games that should not be modified and change the userinterface etc. We should have enough control over our virtual machines to let them do anything.

</comment><comment><USER11> The comment in TFA about exporting the saved game data via URL is a great idea. Imagine being able to send someone to a specific point in a videogame by URL or share an old Wordperfect document, including the content, via a huge URL.

<comment><USER6> It wouldn't work. Most browsers have a limit of about 2000 characters. Assuming a base64 encoding, it means you have about 1K of available data (since most saves have a power-of-2 size), far from being enough for any real game (especially if you want a save state, instead of an actual save - <USER2> would require to store the entire emulator state, which are at least a few megabytes tall).

<comment><USER12> State could be stored to something like Amazon S3 and referenced using a unique ID, which would then become part of the URL given to the user.

<comment><USER13> BrowserFS actually supports Dropbox integration already... so you could do the same with a Dropbox shared folder.

(Sidenote: I'm the author of BrowserFS, and helped implement this feature.)</comment></comment></comment></comment>


Cellphones might be best way to get health info to inner-city pregnant women - <AUTHOR> http://hub.jhu.edu/2015/07/24/cellphones-pregnant-women

<comment><AUTHOR> Link to study in Journal of Medical Internet Research, [http://www.jmir.org/2015/7/e163/](http://www.jmir.org/2015/7/e163/)</comment>


Ask HN: Do you know what your ML systems are doing? - <AUTHOR> Dear ML developers, data scientists and ML DevOps: How do you track your ML systems in production and which metrics do you monitor? How do you make sure your models do what they're supposed to do when confronted with new data? Do you worry about security and robustness of your models? Can you debug problems in your ML pipeline as effectively as in your software pipeline? <comment><USER2> Great question !

Monitoring models in production is actually quite tricky, especially when the ground truth label is either not available or has a long delay to it (for example if you are prediction the sales forecast for next quarter, you will have a 3 month delay between your prediction and the ground truth label).

 _Monitoring:_

What I have found to work is to track data distributions instead. You can then compare your training distribution to the distribution in real time using the Wasserstein distance [1].

I've also heard of people training auto-encoders on the training data and then tracking the reconstruction error in production. If the data changes substantially, the reconstruction error should increase.

 _Debugging:_

Debugging ML pipelines can be difficult but what I have found to work is to log all input and output features (with a correlation Id so that you can link it to the other systems). A dashboard where you can enter a correlation Id and can see for that request the values for each features overlayed on top of the distribution for that feature in the training set is very valuable.

Hopefully this provides at least some answers ! But it's a very broad topic so could continue talking about this for hours !

When deploying ML models in the past, I've encounter exactly the issues you are talking about and didn't find monitoring solutions .. So I created a Stakion [2] to do just this ! It tracks ML models in realtime and requires just a few lines to integrate no matter how you deploy your models.

[1] [https://towardsdatascience.com/life-of-a-model-after- deploym...](https://towardsdatascience.com/life-of-a-model-after-deployment- bae52eb83b75)

[2] [https://stakion.io](https://stakion.io)</comment>


Ming Mecca, the jazz instrument for videogame improvisation - <AUTHOR> http://killscreendaily.com/articles/ming-mecca-jazz-instrument-videogame-improvisation/ <comment><USER2> Holy shit, the trailer video is an amazing nostalgia fest, even if I still have no idea what the product does: [https://www.youtube.com/watch?v=3nxfcsPiwcw](https://www.youtube.com/watch?v=3nxfcsPiwcw)

</comment><comment><AUTHOR> Better suited video to explain the features of this analog module: [https://www.youtube.com/watch?v=63ay74S34XI](https://www.youtube.com/watch?v=63ay74S34XI)

</comment><comment><USER3> I should probably save my observation for reddit, but I'm surprised how well this soundtrack [https://youtu.be/VVOwhNg25GQ](https://youtu.be/VVOwhNg25GQ) goes with the trailer [https://youtu.be/3nxfcsPiwcw](https://youtu.be/3nxfcsPiwcw). It's from the right era I think.

</comment><comment><USER4> Oh god if you have any sensitivity to rapid flashing lights and colors do not watch that trailer

</comment><comment><USER5> I really want to want one of these but I have no idea what I'd use it for, and not enough space in my euro rack to risk on it.

I'm so glad that we live in a universe where this exists, though.

</comment><comment><USER6> Wasn't Ming Mecca the name of that high end CPU from Pi? Is this an explicit reference or just a coincidence?

<comment><USER7> explicit reference! I thought it was a good parallel since in the film Max uses the chip to help him uncover the mathematical algorithms driving the world. My system sort of does exactly the same but in reverse, allowing people to construct algorithms and see the resulting world rendered on the display.

Also I'm just a huge fan of the film.

<comment><USER6> Thanks for the answer!

It is a great film!</comment></comment></comment>