Xonsh: Python-powered, cross-platform, Unix-gazing shell - <AUTHOR> https://xon.sh/ <comment><USER2> XonSH has been my main shell for a solid two years now. The concept is awesome, but unfortunately it has many flaws.

* Nesting bash and python scripts makes performance terrible compared to using python's subprocess module directly. I have a xonsh script at [0], with an equivalent written in straight bash. The python scripts ends in less than a second, the xonsh script takes ages.

      - As a sub-problem of the above: You can't ctrl+c while in a python function in xonsh. That stinks.

* $(program) returns a string that ends with a \n. In bash, when the program returns a single line, the \n gets stripped.

* It sometimes has problems with certain interactive programs. My last experience with this was sudoedit starting neovim in xonsh caused neovim to crash. XonSH -> Neovim works. Bash -> Sudoedit -> neovim works. but Xonsh -> Sudoedit -> Neovim doesn't.

And that's just a small list of my biggest gripes that I keep running into. I really hope to see the project improve though! Despite all the bugs, it's still my favorite shell by a mile.

[0] [https://gist.github.com/roblabla/d82c440908d08c8a232ac483e6b...](https://gist.github.com/roblabla/d82c440908d08c8a232ac483e6be7202)

<comment><USER3> I use zsh daily but type `xonsh` any time I do something in the shell that would normally require a google.

"Uh ok so I have this JSON file. When I pipe this to `jq` I forget: to pivot an array of objects to an object keyed by array[x].id is it like `to_entries` then chain it to `map`? Uhh let's look at the docs..."

However in Python I can write that function at the speed of thought. It may be a couple more lines of code but I'm also 100% confident in the output.

Like I understand some people can legitimately program in bash [0]. But I just can't bring myself to practice. Why would anyone inflict this language on themselves?

[0] [https://github.com/docker- library/python/blob/master/update....](https://github.com/docker- library/python/blob/master/update.sh)

<comment><USER4> > Like I understand some people can legitimately program in bash [0]. But I > just can't bring myself to practice. Why would anyone inflict this language > on themselves?

Bash has a lot of pitfalls, but once you learn how to deal with them, it can also be quite superb for some tasks. Piping the output of a complex set of loops into GNU parallel and watching your computer process stuff at blazing speed is a very nice experience. Doing the same in python would be many time more verbose.

</comment></comment></comment><comment><USER5> Sounds neat. However, the fact that `ls -l` either subtracts two numbers or calls a shell command, depending on whether there exist valriables 'ls' and 'l' in the Pythom environment, looks like a security nightmare waiting to happen. What if I create a python object 'ls' deep inside a script that does Evil when subtracted from?

<comment><USER6> What's stopping a Bash script from doing something similar? You could alias ls to a malicious actor for example.

<comment><USER7> Well, aliases are ignored in scripts usually, but you could prepend something to the PATH so your script/exe gets found before built-ins, no? I agree, I don't see that this is a problem unique to Xonsh.

</comment></comment></comment><comment><USER8> Sometimes I wonder which languages people use for system tools. I mean, it is hard enough that C programs (with dynamic linking) break sometimes, but building a shell on top of Python seems like a particualar bad choice to me (similar to building a package manager with python).

In my opinion, such few-dependency, high-importance tools should linked statically.

<comment><USER9> I think that anyone who is trying to imagine "the next shell" owes it to themselves to try PowerShell.

It's .NET based and very, very different from the sh lineage, but I absolutely love its ability to use objects instead of strings as the underlying transmission medium between "processes". E.g. ls gives you file descriptors, ps gives you process descriptors, etc.

<comment><USER8> I was just about to ask if it is available for Linux, but then I saw that the official page advertises its cross-platform properties [1] :D

I know about the different concept of Powershell for quite a while now, but since it is MS tech I didn't expect it to be available for Linux. Maybe I will try someday how it feels, but I am sceptical as the thing I like most about POSIX shells is that everything is just text and I wonder how Powershell will integrate with other *nix tools.

[1]: [https://github.com/powershell/powershell](https://github.com/powershell/powershell)

<comment><USER9> The boundary layer between text and object is definitely a weak spot in the abstraction for PowerShell. That's the main reason why I don't consider PowerShell strictly superior.

That said, the way the language is designed makes calling into compiled .NET code seamless, which in turn makes doing really sophisticated shell scripting a breeze. When I saw what xonsh was trying to do, I recognized a lot of "PowerShell solves this problem a bit more gracefully".

</comment></comment></comment></comment><comment><USER10> Love xonsh!! And gets more and more stable with every release.

it's the shell I always wanted. And cross platform to boot.

Alias ls -l?

aliases['ls'] = "ls -l"

Oops no I don't want that any more:

del aliases['ls']

Add dir to path:

$PATH.append('/foo/bar')

Just the awesome python syntax sugar and readbility right in the

May I never right a bash script again.

<comment><USER11> del aliases['ls'] seems like a step back from unalias ls.

<comment><USER12> Only if you're coming from a different shell.

For me, it's easier to remember that aliases acts like a dictionary, so I can treat it like any other dictionary. With "unalias" I have to remember the command. As I rarely use unalias (a few times over a period of years), I typically have to search the web on how to remove an alias.

And if it really bothers you, I'm pretty sure it's trivial to define an unalias function in Xonsh that will act as you expect (without needing parentheses).

It's part of the beauty of Xonsh - many such commands you're used to can be brought into it by writing fairly simple Python code.

</comment></comment></comment><comment><USER13> So I just tried it and it's surprisingly usable (I am always somehow skeptical about non-Bash shells). It even takes into account my ~/.inputrc, so kudos.

However, I struggled a little bit with

$ time ls

where the output of `time` is mangled in-between the output of `ls` - this may be related to STDOUT and STDERR buffering?

</comment><comment><USER14> I've always been thinking there can be a better shell like having a split pane to show the list of command options with descriptions as you start typing in the command or show snippets of a preset of command options that does task X as in search by use case instead of going to stackoverflow every time.

I think the way people handle shell, as in typing commands on a dumb shell, has not improved for decades and I don't know why. The only thing they help without explicitly asking is with autocompletion.

<comment><USER15> I really like fish. It doesn't open a split pane, but it can show lists of command switches in tab complete based on man pages.

I'm really tempted to try xnosh again as my daily driver for a few weeks though. I like the idea of typing out arbitrary Python code without spawning up IPython.

The problems people seem to be stating about xonsh were similar to a lot of the early bugs with Fish, but those things tend to go away once more people start using the shell and reporting issues.

I hope we got a whole new generation of usable shells with xonsh, oil and fish.

</comment></comment><comment><USER16> I love the concept, and I am generally happy with how it works. I think it should catch on.

Except the damned name. _Come on guys_ , there are already enough crazily named things out there, you didn't have to be another one :(

<comment><USER15> ehh.. I keep wanting to call it "nosh" or spell it "xnosh" but I'm sure if it catches on people will remember. Plus it's easy to use with a search engine, unlike "Go" or "Rust."

I will say I prefer names that can be searched for on their own (e.g. with Go people typically search for "Go lang").

And as much as I love Void Linux, it's better named than all the xbps-* package manager commands.

<comment><USER17> [http://jdebp.eu./Softwares/nosh/](http://jdebp.eu./Softwares/nosh/)

[http://jdebp.eu./Softwares/nosh/guide/nosh.html](http://jdebp.eu./Softwares/nosh/guide/nosh.html)

(-:

<comment><USER15> oh yes! I forgot about nosh, the process manager/supervisor.

:)

<comment><USER17> nosh is the non-shell script processor.

pen2l will be reassured to learn that the process supervisor is straightforwardly named. (-:

* [http://jdebp.eu./Softwares/nosh/guide/service-manager.html](http://jdebp.eu./Softwares/nosh/guide/service-manager.html)

</comment></comment></comment></comment></comment><comment><USER18> A better URL is [https://xon.sh/](https://xon.sh/)

<comment><USER19> Also previous [https://hn.algolia.com/?query=xonsh%20&sort=byPopularity&pre...](https://hn.algolia.com/?query=xonsh%20&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

<comment><USER20> Note a couple of those use the .org tld. That is not a legitimate site, do not use that.

Ref: [https://github.com/xonsh/xonsh/issues/1077](https://github.com/xonsh/xonsh/issues/1077)

</comment></comment></comment><comment><USER21> Note, while you should feel free to use any interactive shell you like, you should only write scripts with POSIX sh. A friend of mine is working on another shell, mrsh, which aims to be POSIX-sh-as-a-library and will serve as the basis for building more sophisticated interactive shells on a POSIX base, if anyone is interested in that:

[https://git.sr.ht/~emersion/mrsh](https://git.sr.ht/~emersion/mrsh)

<comment><USER2> I have a better idea: don't write scripts in shell language at all. They're terrible at basically everything. Instead, use a scripting language, like Python, Ruby, or Perl. They have control flow that make sense, are not riddled with subtle bugs due to legacy and compatibility reasons, and are simply easier to wield.

Shell scripts are a maintenance nightmare - even when used for personal scripts. They should be avoided at all cost.

<comment><USER22> Ruby and Python are pretty unwieldy for the kind of situations that are well- suited to shell scripts. It's a pain to spawn a command, a pain to make sure you get the process's output in the right place, and just far more overhead than necessary.

I agree, however, that classic shells are worse, because they lack many of the niceties expected in modern languages and have opaque, sensitive syntax.

fish shell has made me pretty happy. It's a great middle ground. It makes no pretense at POSIX compatibility. Truly a shell for the 90s.

<comment><USER14> Agreed.

There's definitely a good demand for a modern shell scripting language but fish is an existing solution that is saner than bash/zsh.

I don't use fish as a shell but for shell scripts only as it acted a bit weird on me, though it's possible I didn't search enough but zsh can cover pretty much all I want from fish with plugins.

</comment></comment></comment></comment><comment><USER23> Sounds amazing. If it ever gets a relatively active plugin ecosystem like zsh or fish, I'd definitely switch. Being able to write shell functions in Python would be very refreshing.

If they want bigger adoption, dedicating a bunch of people who do nothing but port zsh and fish plugins would probably go a long way.

<comment><USER12> Curious: What zsh/fish plugins do you think are missing from xonsh?

<comment><USER24> Is there a plug-in for fzf searching your command history?

<comment><USER12> Since I've not used fzf, I don't know how good this is, but there is a "xontrib" (i.e. plugin) for some of fzf capabilities in Xonsh:

[https://github.com/shahinism/xontrib-fzf- widgets](https://github.com/shahinism/xontrib-fzf-widgets)

You can get a list of (known) xontribs here:

[https://xon.sh/xontribs.html](https://xon.sh/xontribs.html)

</comment></comment></comment></comment><comment><USER25> what exactly does "Unix-gazing" mean?

<comment><USER26> Since the start of the project there has been a desire to point out that most things that work in Bash also work in Xonsh.

The motto started out as "BASHwards-compatible", but that was unsatisfactory because on one hand it sounds like nonsense, and on the other hand, it's not actually compatible with Bash. So that devolved over time into what we have now.

[https://github.com/xonsh/xonsh/blame/ebd4e597a3cf063b124e5a5...](https://github.com/xonsh/xonsh/blame/ebd4e597a3cf063b124e5a54d8a3d7e1a06bcf3a/README.rst#L24) [https://github.com/xonsh/xonsh/blame/82cac3fff08b5cc26e421f1...](https://github.com/xonsh/xonsh/blame/82cac3fff08b5cc26e421f143a41c57b55e295c0/README.rst#L21) [https://github.com/xonsh/xonsh/blame/bd964ce552282334c881181...](https://github.com/xonsh/xonsh/blame/bd964ce552282334c8811818bcab30bca18ba493/README.rst#L14)

</comment></comment><comment><USER27> This looks very promising:

      >>> ls `a(a+|b+)a`
      aaa  aba  abba

Regex filename matching triggered by backticks. I like that design choice!

<comment><USER14> Good that they didn't choose slash delimiters.

</comment></comment><comment><USER28> Awesome that it uses repl.it embed. But leaves so much to be desired. I'm the repl.it ceo and have a few things in the works to make this experience so much better:

1\. caching pypi installs between instances 2\. using a real terminal emulator which means you'll get to use xon.sh (or any shell) in it's full glory

Still a nice surprise to see repl.it embedded in the wild.

</comment><comment><USER29> Your best option for designing scripts that must talk to other programs and also do what you want (as bash won't).

</comment><comment><USER30> Xonsh is awesome! Execute Python directly on the command line?! Sign me up!

Sadly it doesn't play well with all of my three thousand various vim plugins, so I still haven't been able to use it as my daily shell. Hopefully someday!

<comment><USER19> If vim plugins are the only thing holding you back you might want to consider just adding

       set shell=/path/to/bash

to your vimrc and see how you get along.

<comment><USER15> I current have that set in vim when using fish shell.

</comment></comment></comment><comment><USER31> The demo on the front page raises an error when running "ls"

</comment><comment><USER32> Shameless plug: if you like modern shells that you can use to do real programming, try Elvish too: [https://elv.sh](https://elv.sh)

</comment><comment><USER33> Anybody switched from fish shell to this? What is your experience? I like fish shell because the preconfiguration is pretty good. Same on xon.sh or config hell like zsh?

<comment><USER34> Ugh. I have so many conflicting opinions on this question.

So, Xonsh is superior in the manipulation of shell objects. I felt super at home changing the shell prompt and configuring/extending the default Xonsh functionality. This is all because it's literally a superset of Python.

Fish however, blows Xonsh out of the water when it comes to autocomplete and navigation. Xonsh's autocomplete / suggestions are very very weak in comparison to fish's. You feel bogged down when trying to navigate directories quickly with Xonsh. I wrote a small blog post about it here [0]

There was a piece of software I was trying to write that was meant to be Xonsh but with Fish's autocomplete [1], but really didn't succeed and have slightly abandoned it for the time being. But maybe I'll pick it back up soon.

[0] [https://ezb.io/thoughts/programming/mollusk/mollusk_1.html](https://ezb.io/thoughts/programming/mollusk/mollusk_1.html)

[1] [https://github.com/enricozb/mollusk](https://github.com/enricozb/mollusk)

<comment><USER35> >I wrote a small blog post about it here [0]

I work on fish, and one of the things that the upcoming fish 3.0 contains is a new `math` builtin (previously we shipped a function of that name that just wrapped `bc`).

So your math expressions here are interesting to me, because they work in math (with the caveat that ` _` is still the symbol for globbing, so it needs to be quoted or escaped):

        $ math 0x113e8b3
        18081971
        $ math '719 * 114679'
        82454201

Adding them to the core syntax carries backward-compatibility questions and also isn't really what fish is about.

<comment><USER34> The benefits of xonsh are more than just the quick math, but I'm glad fish is getting something like this. I've had a Python script that does math for me, something like this [0]

I do think something like a Python shell is the best solution (for me), however, simply because of the ease of use with modifying the current state of the shell (environment variables, etc).

[0] [https://gist.github.com/wackywendell/919042f19ab6932447df](https://gist.github.com/wackywendell/919042f19ab6932447df)

</comment></comment></comment></comment><comment><USER36> This seems really cool. Trying it out with repl.it was really neat. One thing I'd do is add PowerShell to the comparison table.

</comment><comment><USER37> what does the "-gazing" suffix mean?

<comment><USER38> It means that it is not fully sh-lang compatible (i.e. a true unix shell), but is as compatible as reasonably achievable while maintaining full compatibility with Python 3.

<comment><USER39> What sort of capabilities does sh-lang provide that Python cannot? Does sh- lang have some sort of privileged access to the OS not available to Python?

<comment><USER40> posix sh mandates certain constructs work. For example:

       x=foo; x=${x%o}; echo $x # prints 'fo'

Supporting that is non-trivial in python. There's no quotes around the strings, '%' is kinda weird there, etc.

Of course, in python you can just say:

       x="foo"; x=x[0:2]

... but those are not compatible with each other. colon does different things in posix sh than python, and it would be quite complicated to reconcile it.

I'll also point out the parent poster, when they wrote "sh-lang", meant "the superset of posix-sh that zsh/bash users expect", because at this point quite a few bash features are expected to work in most sh-like shells.

Naturally, both xonsh and sh (and all other shells pretty much) are turing complete and can execute programs, which makes them all equally capable.

Having equivalent capabilities does not mean things are compatible though. I recommend reading up on what a POSIX shell is, and then reading fish and xonsh's arguments why they're not POSIX compliant (spread through various locations)

</comment></comment></comment></comment><comment><USER41> I have wanted something like this for a while. I can't wait to try it out

</comment><comment><USER42> I tested it out on mobile, I like the ability to script with it in a HLL like Python, will give it a try for sure on desktop.

</comment><comment><USER43> A shell scripting language written in a shell scripting language. What could go wrong?</comment>


Microsoft Outlook Launch Stats - <AUTHOR> http://techcrunch.com/2013/02/19/microsoft-says-outlook-com-gained-more-than-1-5m-new-users-in-the-12-hours-after-last-nights-official-launch/

<comment><AUTHOR> Although I agree that MOST of the new accounts are a mix of upgrades and new accounts, I don't doubt that several Gmail users are switching over. Or I should say "switching over"...One of Outlook's great features is the ability for Gmail users to keep their @gmail.com address.

So what Gmail users are really switching to is a less complex webmail service in Outlook. I believe Outlook is trying to disrupt the webmail industry once again, but they are using a less complex model to do so. While Gmail has become more and more complex (not necessarily a negative), Outlook seems to be going back to simplicity.

</comment><comment><USER2> "These new accounts ... are a mix of Hotmail upgrades, switchers from Gmail and other services, and people opening new accounts."

I suspect the mix is almost entirely Hotmail upgrades. It is very hard to get people to switch even if Outlook was much better than the alternatives.</comment>


Ask HN: number of applicants for a position? - <AUTHOR>

I frequently come across a claim that only 2% or 5% or some other minuscule amount of applicants for most software development positions come close to being actually qualified. (Most recently in the discussion about Google hiring process, http://news.ycombinator.com/item?id=1690792).
I've been wondering what the overall number and therefore what number of remotely qualified applicants might be expected to be. Assume a junior position, asking for new grads to maybe a year or two of experience, at a non-Google-caliber company in a major city. Advertise on a job site or two, and perhaps with a couple of nearby technical post-secondary schools, but without spamming the posting absolutely everywhere. How many applications would you expect to receive in a week or two? Fifty, one hundred, five hundred? Answers from people who have done this and screened the resulting applications especially appreciated.
Thanks! <comment><USER2> Word of mouth,I believe that on the first day of posting number of resumes received goes upto 50- for something on craigslist. Would like to know if this anywhere close to actual numbers!

</comment><comment><USER3> Beware that advertising on a "job site or two" amounts to spamming the post everywhere.</comment>


An introduction to integrated circuits - <AUTHOR> https://learn.sparkfun.com/tutorials/i2c <comment><USER2> The submitted title doesn't correspond to the true title.</comment>


The Better Adapted You Are, the Less Adaptable You Tend To Be - <AUTHOR> http://sourcesofinsight.com/2010/04/02/the-better-adapted-you-are-the-less-adaptable-you-tend-to-be/

<comment><USER2> I think a better of thinking about this is that, sometimes, evolutionary processes falls into a local maxima or a local minima. There is a trick in the wording of, "The better adapted you are, the less adaptable you tend to be", since "adaptation" was redefined in the second part of that statement. If you're so well adapted to the current situation such that you fail to adapt to future, hypothetical, unknown situations, then what you've really done was to hyper-specialize and stop responding to change. This is not that one adapts too well so much as one got comfortable and _stopped_ adapting.

In terms of practice, it means someone stops being mindful of the task on hand and starts performing his tasks mindlessly. The present moment is always surprising, this principle of adaptation is not.</comment>


Ask HN: How to hire fresh or recent graduates? - <AUTHOR>

There seem to be quite a few articles talking about how the market is tough for recent college graduates. E.g. http://www.nytimes.com/2011/05/19/business/economy/19grads.html
We are looking to hire fresh/recent college graduates with pretty much no experience for sales positions with an adequate base and a very strong incentive structure. We are hiring for our niche industry focused SAAS products selling into enterprise customers.
However, we are struggling to attract & hire folks who show even a modest amount of determination with good communication skills.
What could we be doing wrong? Any tips/thoughts/advise on how to hire in this segment?
I thought "hiring recent college graduates with no specific experience requirements" will be in the "not so challenging" category of growing our business. But its apparently not that easy! <comment><USER2> Is your problem that you can't find people at all, or that the people you find are no good?

If it's the first, then you may not be advertising in the right places. If it's the second, then you may actually be staring away good candidates with the "no specific experience requirements".

I know that that sounds strange, but in a world where most people recruiting are asking for way more experience than they need (and in some cases is even possible), specifically asking for people with "no experience required" tends to throw up red flags for people who are expecting to apply for jobs which, on paper, they aren't actually qualified for.

I, myself, have seen plenty of jobs with copy along the lines of "No experience required", and every time it makes me wonder if they're either horrible employers (who can't attract skilled workers), or they're trying to scam me somehow (some recruiters like to place speculative job ads just to collect resumes).

<comment><AUTHOR> We are getting resumes & setting up interviews and then find most people fall of in the interview process & the people who want to go ahead with suddenly get cold feet on the sales oriented jobs. We are using Indeed.com to get a lot of incoming resumes.

</comment></comment><comment><USER3> My first thought is to look for math, philosophy, economics, business management majors. Those jobs don't necessarily have such a direct path into the work place like mechanical engineering, accounting, or nursing. Friends I've had in those categories have a harder time finding jobs, especially if they have no experience.

Secondly, many of the people who work in sales that I know didn't stay long with school, because at some point they realized they could do well based on their hustle alone. College/university is often seen as a 'safe' bet, while dropping out and working as a commission based salesman isn't, so it attracts a different crowd. The recommendation is to then maybe not focus on recent, inexperienced college grads, but focus on sales people without industry experience who are willing to make a switch. Facebook ads could help target these, maybe?

<comment><AUTHOR> We find that more experienced sales people are not a great fit to what we are trying to do since they don't get the tech part of our solution, more risk averse etc. We do offer a base + incentive model and not just a commission only model. We are major agnostic as long as people have shown some amount of determination to doing a sales job.</comment></comment>


An open letter to Laura Kalbag, a woman who wants to be a token speaker. - <AUTHOR> http://blog.chrisleydon.com/2013/01/24/an-open-letter-to-laura-kalbag/

<comment><USER2> This guy appears to misunderstand the purpose of affirmative action / positive discrimination. It's not to make tokens out of people, but to try to remove systemic bias against groups underrepresented in a society or subculture - case in point, females being often underrepresented in tech conferences due to rampant sexism.

<comment><USER3> _females being often underrepresented in tech conferences due to rampant sexism_

But females aren't underrepresented due to rampant sexism, there are fewer women at tech conferences because there are fewer women in tech period. Creating a preference/quota system (i.e. affirmative action) that tries to correct a imbalance due to lack of participation will only serve to further stigmatize and reinforce whatever negative attitudes exist about the group supposedly being helped. It may not intend to create tokens out of them but it does none the less. Although it does seem to make proponents of said system feel better about themselves which many will claim is its actual purpose.

<comment><USER4> > But females aren't underrepresented due to rampant sexism, there are fewer > women at tech conferences because there are fewer women in tech period.

Do you not think that there are fewer women in tech because of rampant sexism?

<comment><USER5> I've heard this argument many times before yet I've never once seen a shred of evidence to back it up. I'm not sure of the situation in the US but despite dealing with hundreds of UK tech companies and conferences in my career, I can categorically state I've never once witnessed anything that could be construed as sexism.

<comment><USER4> That's good.

Do you get to see unconscious[1] biases that cause women not to be hired; to be paid less than men for the same work; to be not promoted?

[1] At best.

<comment><USER5> The direct opposite. In the UK tech market there is almost a desperation to hire female staff. The handful of female devs I've come across are generally paid more than what a male with the same level of experience would purely because companies are desperate to cling on to the precious few females that exist in the market.

In my time I've advertised over a hundred dev vacancies. I can honestly count on one hand the number of female applicants that applied.

</comment></comment></comment></comment></comment></comment><comment><USER6> Does anyone have some context to this?

<comment><USER5> In a nutshell:

* @laurakalbag previously spoke at @leydon's tech meet-up.

* She was involved in a twitter debate regarding gender equality in tech.

* @leydon chipped in with a comment meant in jest: <https://twitter.com/leydon/status/294450249567711232>

* @laurakalbag took offence and a twitter fight ensued.

For context, @leydon is an openly gay male who runs a small tech meet-up group that has had a large percentage of female speakers in the past.

</comment></comment><comment><USER7> Site's down for me, Google cache link:

[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://blog.chrisleydon.com/2013/01/24/an- open-letter-to-laura-kalbag/&hl=en&client=firefox- beta&hs=shl&tbo=d&rls=org.mozilla:en-US:official&strip=1)

</comment><comment><USER8> I really miss the days when discussion about conferences was more about technology and content than gender and race kerfuffles.

<comment><USER9> > _I really miss the days when discussion about conferences was more about > technology and content_

It's time to face the fact that conferences are becoming antiquated by technology.

EDIT: Judging by the replies, apparently people think conferences are local get-togethers? The point of a conference used to be about exchanging ideas with people outside the neighborhood. It would roll in airline, hotel, $100s for attendence fees (because the venues are large and require organizers.)

Basically, these things turned into junkets in exotic locations. And then many companies decided they are no longer necessary in the age of the web.

<comment><USER10> So if I go to the euroko 2012 in Berlin, pay 50 euros and no hotel, airline etc. and get to see speakers and attendees from all over the world, including Yukihiro Matsumoto for the keynote, that doesn't count as a conference because it's local and organized by a crew of volunteers that don't need to reek in hefty profits?

<comment><USER9> > _and attendees from all over the world_

So you can choose to quote your 50 euros and say that it's a conference, or you can examine how much money the "attendees from all over the world" paid in travel and hotel paid in and note that their money is now being substituted by the web.

Your call.</comment></comment></comment></comment>


Locking GitHub Conversations - <AUTHOR> https://github.com/blog/1847-locking-conversations

<comment><USER2> EDIT: Looks like this has been fixed already. Speedy update by GitHub, nice work folks.

This is very easy to bypass. I was able to 'chime in' on one of the massive threads this feature intends to stop by referencing it in an issue on one of my repositories:

[https://github.com/joyent/libuv/pull/1015#issuecomment-45544...](https://github.com/joyent/libuv/pull/1015#issuecomment-45544199)

Obviously this is a tad more complicated than before (and makes it much harder to go on multi-paragraph rants) but the trolls can still troll.

<comment><USER3> Yeah; that's a pretty limited interaction (compared to comments) so it wasn't a huge focus yet. I'll have a fix patched up and deployed in the next hour or so, though.

(Edit: fix is deployed.)

</comment></comment><comment><USER4> Finally, no more :+1:s when it's all that is being said by everyone, without much discussions...yay to less noise!

<comment><USER5> I must admit that I like those :+1:s, it shows which issues should be prioritized.

<comment><USER6> As a maintainer, the +1s get very annoying and can actually get in the way of useful work being done.

At best it makes the comment thread hard to follow. At worst, it causes some people to start filtering their bugmail to /dev/null.

This is why some issue trackers have a dedicated voting system. Even then, people will still ignore it and reply with "+1" or "me too". _sigh_

</comment></comment></comment><comment> vhost- I wonder how much this is going to be abused. There are a lot of angry BDFLs out there and I can see this being used to silence people.

<comment><USER7> I don't think locking a thread is going to do harm.

If I don't want you to participate in my issue tracking, I can choose to ignore you, or now I can choose to lock the issue. You either continue to request attention from me, or won't come back to my software.

This can happen before locking is brought to us by Github, but this feature can help reduce noises. There are people who follow the repo and actually get spams from following repos they like to keep an eye on.

You have your choice to write about someone's angry ignorance on your blog or hackernews and people just won't care. They can even hide the repo or delete the repo once and for all.

Is this a good way to deal with people publicly? Yes to some, no to many. It's a choice. You either opt-in or opt-out.

</comment></comment><comment><USER8> Hopefully this feature will help to mitigate political PR's like this one so that project leaders can get back to writing code and won't have to deal with their repos being overloaded by non-contributor talking heads. 742 comments over a simple terminology change? Yeesh.

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

<comment><USER9> I guess this was downvoted for the unnecessary sarcasm, but the linked thread was the first thing that came to mind when I saw this new github feature. A lot of unfortunate ignorance and anger-in-response could have been avoided (or at least diverted from github) had this feature been in place at the time.

</comment></comment><comment><USER10> This also needs to be available for commit threads, I think.

See: [https://twitter.com/Fishrock123/status/476133688506609664](https://twitter.com/Fishrock123/status/476133688506609664)

</comment><comment><USER11> Finally.

Now all we need is the ability to vote up an issue and we're set. Seems comments have been used as a voting mechanism on Github since its inception and this new feature could put a stop to that. I hope not.

<comment><USER12> This was there long ago, and was removed.

<comment><USER13> Any idea why? It seems like it would be such a useful feature.

<comment><USER12> As a maintainer, I never found it particularly useful. Open source projects aren't generally democracies, and clicking an 'upvote' button is so low-effort that it wasn't really a good signal anyway.

<comment><USER14> My experience with it on trac and uservoice is that it's an easy way to filter out things that exactly one person cares about, and not much more. The main benefit is that it reduces the number of spammy +1 comments you get.

<comment><USER3> @steveklabnik (since hn won't let us nest further): why not just hit the subscribe button on the right?

<comment><USER12> > (since hn won't let us nest further)

ProTip(tm): HN does this when you try to reply too fast. You can click 'link' to get around it, though. :)

I never saw that! Thanks. Somehow that just escaped my vision.</comment></comment></comment></comment></comment></comment></comment>


Actualvim – Sublime Text 3 input mode powered by Vim itself - <AUTHOR> https://github.com/lunixbochs/actualvim <comment><USER4> Author here:

This works using Vim's NetBeans control protocol (inside Vim, do `:help netbeans` to get an overview. Also see the VimSocket class in vim.py) and minimal help from a simple VT100 emulator I wrote (found in term.py).

Open the command panel (cmd|ctrl+shift+p) and run the "ActualVim: Monitor TTY" command if you want to see what's going on in the terminal for any open view.

I actually wrote the first Vim emulation mode in Sublime Text a couple years back ( [https://github.com/lunixbochs/sublimevim](https://github.com/lunixbochs/sublimevim) ) that possibly inspired the other similar plugins. I consistently ran into enough unsupported motions with both my own and other plugins that I caved and wrote ActualVim.

<comment><USER5> Really nice work. I'm happy where I am in vim but if I ever decided to move this looks like the way to go.

OT It's funny how conditioned I am to seeing __Beans and instantly dismissing it as something I can't be bothered to look into. Silly biased me; it looks like a really powerful protocol.

<comment><USER4> I have my share of complaints about the NetBeans protocol. It's actually pretty weird and incomplete, but it's supported by default so I'm using it.

I think it's meant to be used the other way - using Vim as your frontend to edit code while using NetBeans to manage the project, lint, compile, etc - <USER2> it had enough functionality I was able to _barely_ make it work the other way.

<comment><USER6> > NetBeans protocol ... I think it's meant to be used the other way - <USER3> > Vim as your frontend to edit code while using NetBeans to manage the project

eclim[1] is probably an excellent reference-implementation of _both_ approaches. Did you look at it, and if so was it useful?

[1] [https://github.com/ervandew/eclim](https://github.com/ervandew/eclim)

<comment><USER4> Isn't eclim primarily to use Vim as the frontend and Eclipse as the backend? Same idea, slightly different scenario. I used it for linting Java over in sublimelint.

I developed ActualVim using only a VT100 reference ( [http://bochs.info/text/vt100.txt](http://bochs.info/text/vt100.txt) ) and `:help netbeans`

<comment><USER6> The core of eclim is a server that talks to the Eclipse JDK, for which there are vim, emacs, etc, front-ends.

Eclim also happens to provide an Eclipse plugin that _embeds_ Vim in Eclipse, using the NetBeans protocol, just as you are embedding Vim in Sublime. The author of eclim is also very responsive, if you wanted to ask him about anything.

<comment><USER4> Is he not just embedding a VT100 emulator and using NetBeans socket to copy the buffer back and forth? The primary focus of NetBeans integration is to pass basic state forth and not to facilitate a full Vim embed.

<comment><USER6> To be honest, I don't know. An eclim discussion[1] implies that eclim is using Vim's NetBeans protocol, and the eclim code that I have read is well-organized and the project is mature, so when you said you were having issues with the NetBeans protocol I thought eclim might be a useful reference for you.

[1] [https://github.com/ervandew/eclim/issues/100](https://github.com/ervandew/eclim/issues/100)

<comment><USER4> Oh, that's awesome. I didn't think of using it like that.

They're using a Vim script to extend the NetBeans protocol and pass arbitrary messages back with nbkey/keyCommand. I can totally use this. Thanks!

<comment><USER6> Very interesting. Thanks for relaying that.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> This makes me want to ask... why not just use vim?

<comment><USER8> Because vim is broken. I gave up vim after 7 years because of all the segfaults, in-extensibility and just horrible code. Some of the files in the vim code base are over 20,000 lines with hundreds of ifdefs, and littered with unsafe pointer use. The code is a horrible experience to just look at, pre 1989 C style functions, mixed tabs and spaces everywhere, and the files aren't even a valid encoding of any kind whatsoever, instead it has this broken mbyte that will ruin your day if you touch a vim source file in anything but vim.

If you use vim as is you may not notice much, but vim will forever be limited to responding only to user interaction with no hope of ever getting any kind of timers, async actions or event loop.

Try making a simple clock for your status line that updates every second. You can't. And it will never be possible. Because vim is broken.

<comment><USER9> How much of a challenge would it be to rewrite vim properly? Or is that a crazy idea..

<comment><USER10> Not that crazy. Vim itself is a reboot of Vi, and there were/are other minimal Vi clones that are very small (couple of KLOCs). You'd be throwing away the horrible Vimscript, and sadly the community is married to it.

As a result your neat little Vim2 reboot thing will not be nearly as useful for a long time, so you've lost backwards compatibility for what? Cleaner internals? Doesn't really benefit the end user much. :)

<comment><USER11> I really don't care much about backward compatibility with existing plugins. We're using vim not the plugins anyway. I justed wanted an terminal editor with vi bindings.

<comment><USER12> As long as it can parse my .vimrc (but then, that's vimscript)

<comment><USER13> Is there so much in your .vimrc that it couldn't be written in a new syntax, without _that_ much effort? We're not talking about supporting an entire legacy software app here.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> I love vim's keybindings and cant work without them. I really like sublime but i just cant leave vim's keybindings which makes me so much efficient. Last time I tried a vim emulator for sublime it didn't go so well. it wasnt as smooth and limiting. I hope someone perfects the vim+sublime combo because that would be killer.

<comment><USER15> Ditto, in Visual Studio. I use viEmu a lot, but it has strange behavior sometimes and missing features.

<comment><USER16> It's still the best vi emulator I've found. If you know of better ones, I'd love to hear about them.

<comment><USER17> Check out VsVim. It's pretty solid. [http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-...](http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329)

</comment></comment></comment></comment><comment><USER18> Why wouldn't I just use Vim (or better yet, Emacs) in the first place?

<comment><USER19> Multiple selections has been the killer feature for me, which is the only thing I haven't found a good replacement for in Vim or Emacs.

<comment><USER20> And of course... [https://github.com/magnars/multiple- cursors.el](https://github.com/magnars/multiple-cursors.el) for emacs folks (I use it every day...)

</comment></comment></comment><comment><USER21> This is like using vim-mode on emacs.

<comment><USER4> Vim-mode on emacs probably uses an internal emulator and doesn't slave a real Vim instance to do the work.

In that case, you have at least Vintage, Vintageous, and my original project sublimevim (that was mostly a proof of concept before we had any of this) as "vim-mode" in Sublime Text.

</comment></comment><comment><USER22> Just installed it on ubuntu using sublime text 3 (installed from sublime- text_build-3047_amd64.deb). I get into vim mode when creating new files; however, when opening existing .py files on disk I don't get the vim editor.

<comment><USER4> Can you report this on the issue tracker? [https://github.com/lunixbochs/actualvim/issues](https://github.com/lunixbochs/actualvim/issues)

Also can you check the console when opening a file to make sure there's no error?

</comment></comment><comment><USER23> Things I would actually be interested in for Vim: Some sort of type-validation plugin for languages like C, C++, Scala, Haskell, etc.

There are ways to get around it, but getting the error in the editor window is very nice for dummies like me.

<comment><USER24> [https://github.com/scrooloose/syntastic](https://github.com/scrooloose/syntastic)

<comment><USER23> Huh, do the syntax checkers for those languages actually do type checking too?

<comment><USER25> For C and C++ at least, it uses your compiler, so yes.

<comment><AUTHOR> For Haskell too, with ghc-mod[1].

[1] [https://github.com/eagletmt/ghcmod- vim](https://github.com/eagletmt/ghcmod-vim)</comment></comment></comment></comment></comment>


WHOIS blackout period likely starting in May - <AUTHOR> https://www.cooley.com/news/insight/2018/2018-04-18-whois-blackout-period-likely-starting-in-may <comment><USER2> I really wish WHOIS would go away forever. There is absolutely no point to it. If you don't pay to get your name private, you get SPAMMED to such an incredible degree, it's absolutely awful. Literally 10+ calls a day, emails voicemails. So you have to buy the "privacy protection" thing, which defeats the whole purpose anyway. All WHOIS does is create an industry of people selling privacy to WHOIS. This whole narrative about "journalism" and it being used for research sounds like nonsense to me. Something tells me these people have a vested financial interest in this. Would love to hear an alternate point of view on this.

<comment><USER3> Whois can also be used to identify who owns IP blocks. Which is crucial to many applications such as security.

If you don't want your personal information to be visible thats very different to the full range of what whois can do. You can always use a proxy so there are options for privacy available. I've never got a single spam email/call from my whois data.

<comment><USER4> ARIN already provides public APIs for this without the need for WHOIS.

<comment><USER5> WHOIS the protocol is not the problem, it is the data it is used to publish. Then GDPR-related mitigations required would be the same whether you are publishing with WHOIS, RDAP or something else.

Also, ARIN only has allocations made in North America. Plus, ARIN only covers North American allocations.

</comment></comment></comment></comment><comment><USER6> domain registration data is in a weird place for the modern internet. I can see the value of having a real registry when it was first developed, but now it seems like a pretty easy way for people to shoot themselves in the foot with regards to privacy. Also, some registrars charge a premium for WHOIS privacy. It should not cost extra to have your legal name and address to be hidden from the entirety of the internet.

<comment><USER7> Do any registrars not charge a premium for Whois privacy? I know Hover doesn't have a separate Whois privacy entry price, but the base price at Hover seems to be about the price of a domain + Whois privacy at other registrars.

<comment><USER8> Google domains offers it for free and as standard.

<comment><USER9> I wouldn't say _free_. I would say it's _included_ in the $12/year price of .com registration. I suspect that price is competitive with registrars that have a base price that doesn't include WHOIS privacy and sell privacy as an add-on, though I haven't shopped around in a while. All my domains are registered with Google Domains.

</comment></comment></comment></comment><comment><USER10> thank god, tired of paying extra for "whois privacy" that various registers offer

running a hobby project should not require you to share your private contact details with the world

<comment><USER11> I like what CIRA (the .ca registration authority) does. The default is for them to hide your contact information. You have to opt-in to make it public.

They then handle all communications people want to send to you. More registration authorities should take stances like this.

Now if only they could get DNSSEC support...

<comment><USER12> I like how people responsible for .pl (Poland) domain handle this. First of all, they list only very basic data, with no names, addresses, etc. when you query their whois. To see the full data, you have to go to their website and type the captcha, which filters out at least some of the bots. But even there they display the data if it belongs to a company, they won't show any details if it's registered to a private person.

<comment><USER13> > you have to go to their website and type the captcha

I'd prefer that they'd charge me 5 eurocents per query rather than using my time and effort to feed Google's AI.

<comment><USER14> Not sure why you are saying this, when the site uses a "usual" captcha (that can probably be solved easily, but that's another thing): [https://www.dns.pl/cgi-bin/en_whois.pl](https://www.dns.pl/cgi- bin/en_whois.pl)

See also [https://www.denic.de/webwhois-web20/](https://www.denic.de/webwhois- web20/) for the .de registry's captcha.

</comment></comment></comment></comment></comment><comment><USER15> In the short term WHOIS is going to be limited to just the registrant organization, state, country and a masked email address (Admin and Technical fields will be removed save email). This is short term to come into compliance with GDPR.

Long term ICANN intends to create a privileged group (other registrars, law enforcement, etc) Who will be able to get to the full whois data. So a sort of tiered system. Expect this to take a minimum of a year. The ICANN multi stake holder model means nothing happens fast.

<comment><USER16> > Long term ICANN intends to create a privileged group (other registrars, law > enforcement, etc) Who will be able to get to the full whois data.

To a substantial degree it's privacy for the powerful and transparency for the weak. It should be the reverse: The powerful and government institutions should be transparent, and citizens should have their privacy.

<comment><USER17> > The powerful and government institutions should be transparent, and citizens > should have their privacy.

Hear, hear! The most frustrating part of the Clinton email fiasco to me was the contrast between the rule bending going on at the highest levels in the name of privacy, and the pervasive monitoring that the rest of us are subjected to.

</comment></comment></comment><comment><USER18> ICANN is scrambling to be compliant they write... We've all had 2 years notice since the GPDR has been adopted! And if you 'didnt know', you have bigger organizational problems.

I understand it is a lot of annoying work, but adtech and data brokers (etc etc) have been gutting privacy and the internet for long enough. We've let it come this far, now we get regulated.

(disclaimer: I only started working on compliance this year, do as I say, not as I do ;))

<comment><USER19> It's worse than that. Article 29 Working Party (WP29) - which deals with data protection has said since 2003 (well over a decade!) that Whois is not compatible with EU law [0]. They just didn't have a way to enforce it before GDPR.

But ICANN are delusional idiots, maybe because they get so much money from US intellectual property interests. They did nothing, and then seemed to think that they could get a moratorium on enforcement. But even their own Non- Commercial Stakeholders Group basically told them to get lost [1].

It's a fascinating story of just how terrible ICANN is. As always, the Register has a great write-up [2].

One thing it clear, they deserve it. I do feel bad for registrars though, and hope they had more sense than ICANN and developed a plan B.

[0] [http://ec.europa.eu/justice/article-29/documentation/opinion...](http://ec.europa.eu/justice/article-29/documentation/opinion- recommendation/files/2003/wp76_en.pdf)

[1] [https://www.icann.org/en/system/files/files/gdpr-comments- nc...](https://www.icann.org/en/system/files/files/gdpr-comments-ncsg- article-29-wp-whois-23apr18-en.pdf)

[2] [https://www.theregister.co.uk/2018/04/25/icann_whois_gdpr/](https://www.theregister.co.uk/2018/04/25/icann_whois_gdpr/)

</comment></comment><comment><USER20> The WHOIS blackout has already started, I recently registered a domain with a non-European ccTLD, but with Gandi for the registrar. The WHOIS reads:

       Administrative Contact:
          Not displayed due to GDPR

<comment><USER21> My .me domain displays (and always has displayed IIRC) nothing but my full name (not that interesting as the domain is my name). Everything else are the contact details from Gandi.

<comment><USER22> Must be a Gandi thing. My .io domain from Gandi only shows my name but a .me domain from another registrar still shows home address, phone number, etc.…

</comment></comment></comment><comment><USER23> there is another type of whois that people don't ordinarily interact with, but is essential for the correct operation of the internet...

ARIN, RIPE, APNIC and AFRINIC run whois databases for IP space. Network operators use them to find who controls chunks of v4 space (ranging from the globally-minimum-announceable /24 to /12). ISPs can use tools like SWIP to point the whois for a block of space in use by a customer to that customer's whois info.

I sincerely hope that this doesn't become more difficult to use, because it will make basic network diagnostics at a WAN scale much more annoying.

The good news is that the typical ISP-level info in IP space whois databases doesn't fall under the GPDR, since most are role accounts (firstname.lastname@example.com , email@example.com, etc). Also generic phone numbers for NOC and network engineering groups. However, a lot of ISPs _do_ currently have individual persons listed as points of contact in their whois entries.

</comment><comment><USER24> I'm just wondering why ICANN is "scrambling to get it GDPR-compliant" just now, at the eleventh hour. They had just as much time as rest of the world to do it sooner, without any interim modes, and without any rush and all the problems that can come from hastiness.

<comment><USER5> A big factor is that ICANN is comprised of multiple stakeholder communities of competing interests that have to come up with consensus to make new policies. Refining the model of what is published in the WHOIS has been the subject of working groups in ICANN for over 10 years, but consensus was never reached because you had a huge spread of opinions that never converged. Privacy advocates argued for no WHOIS, whereas interests from law enforcement, security research and intellectual property arguing for full disclosure.

</comment></comment><comment><USER25> Noticed this the other day, my own domain is already blacked out.

I used to put fake info there anyway, I don't want my domain linked to my home address, or provide an easy way for spammers to get my email.

<comment><USER26> And you haven't been called out for Incorrect Whois Information? Complaints seem automatic, even with obscure domains I seem to register

<comment><USER25> Not yet, had my domain for a good few years now as well. Been through multiple renewals, it's never been picked up on.

</comment></comment></comment><comment><USER27> Having a public register that tells you who owns a particular domain or IP address could be useful for a lot of things. Sure, they could take away a lot of fields that are not necessary and might be a privacy problem, like address and phone number, today it's useless, and maybe instead add a GPG public key, so much useful, and keep name and email address.

But don't remove it, it's a useful thing I use a lot, most of the times for security purpose, you see a suspicious IP address or domain while observing a packet capture, WHOIS tells you who owns it, you find in a log an IP address that tries to bruteforce into your server, WHOIS tells you who it is and gives you an address to contact and ask explanations, you need to find a person to contact if you have a problem with a website, contact the email address in the WHOIS record of the domain, you are sure that you are contacting the right person, even if the site gets hacked in the worst way the WHOIS record can't change.

</comment><comment><USER28> I work for a popular hosting company and WHOIS data is causing constants issues - mostly for non-technical customers, but on one occasion, I accidentally used my work mail address during testing. The WHOIS database for, say, the .net zone is extensively mined by spammers and telemarketers.

I received a torrent of marketing mails for months even though I immediately changed it to a noreply mail address. We receive numerous complaints from customers who ignored our warnings.

</comment><comment><USER29> Back in 2002 teenager me used WHOIS to lookup my ISP's (adelphia) phone number. Some guy picked up the phone in their server room no shit. He answers the phone like it's a internal only line "server room Jim here how can I help?" Me: "ya um I have a problem with my SMTP port can you help out?" Net Admin "How did you get this number! but ya I can help kid"

</comment><comment><USER30> My quick and dirty three step scam website detecting process [https://travel.stackexchange.com/a/84026/4188](https://travel.stackexchange.com/a/84026/4188) obviously includes whois but -- I think I will make do without. It's only a little harder, to be frank.

</comment><comment><USER31> So will firms like [https://www.domaintools.com/](https://www.domaintools.com/) need to redact their whois history data? They're in Seattle, for whatever that's worth.

</comment><comment><USER32> Does this also apply to RIPE for the whois of an IP address?

<comment><USER33> There is a RIPE meeting this week. Tomorrow (Wednesday) there will be an update regarding GDRP in the database working group: [https://ripe76.ripe.net/programme/meeting-plan/db- wg/](https://ripe76.ripe.net/programme/meeting-plan/db-wg/)

</comment></comment><comment><USER34> I'm good with this. I don't like the fact that some yahoo can look me up and come after me just because he might not like what is on my website.

</comment><comment><USER35> whois guard is a joke so i welcome this

</comment><comment><USER36> good.

-grumpycat

</comment><comment><USER37> I don't understand the problem. When buying a domain you do so in ICANN's jurisdiction, under their terms. Actively and voluntarily forfeiting your right to privacy should trump statutory privacy.

And if that isn't enough, ICANN can fix this without compromise. One mass email. "Respond expressly allowing us to publish your PII, or lose your domain."

<comment><USER38> > When buying a domain you do so in ICANN's jurisdiction, under their terms.

Contract doesn't trump law, and ICANN isn't a supernation that excludes actual sovereigns from governing behavior relating to it.

> And if that isn't enough, ICANN can fix this without compromise. One mass > email. "Respond expressly allowing us to publish your PII, or lose your > domain."

No, it can't, IIRC, because GDPR specifically excludes this kind of "agree or no service" from qualifying as effective consent.

<comment><USER39> > No, it can't, IIRC, because GDPR specifically excludes this kind of "agree > or no service" from qualifying as effective consent.

It would also set the rather terrible precedent that ICANN can add terms after the fact.

</comment></comment></comment><comment><USER40> This is stupid.

What happens next - do patents and copyrights have owner's right to be forgotten?

If so, then who do you sue for stealing your copyright?

The intent is good - let me be clear about that. But the implementation is having second order affects that are going to f __* with things in a big way because it wasn't thought through as thoroughly as it should have been. *

* Key thought here is that it might be extremely difficult to think through all the second order effects, which suggests to me that a better phase in process should have been implemented.

EDIT - Not sure why this is being voted down. If i'm Not clear here, then please see my follow-on comment for (hopefully) a more clear view of my position. I'm not saying Whois is stupid - I'm saying GDPR is (due to the lack of thinking around second-order effects).

<comment><USER41> I don't understand how any of those are remotely related to whois being removed. It's not like it represented anyone that could feasibly be sued before, just a whoisguard service, usually

<comment><USER40> In the US, we have different sites where you can look up patent information.

In fact, IBM and Microsoft run this one, which is a global database. Article: [https://www.zdnet.com/article/microsoft-ibm-arm-back-open- pa...](https://www.zdnet.com/article/microsoft-ibm-arm-back-open-patent- database/) Site: [http://oropo.net/](http://oropo.net/)

So my question, is if Whois had to take their site offline due to GDPR, then will things like this go offline?

My concern is that GDPR will have a chilling effect not just on free speech, but on open information of many kinds.

PS - for reference, here is a good overview of the issues that an open patent database helps solve: [http://oropo.net/oropo_report_20150615.pdf](http://oropo.net/oropo_report_20150615.pdf)

<comment><USER42> WHOIS will not be permanently offline, it will be temporarily offline while the ICANN and others work out how to give access to people who have legitimate interest in the data, ie people looking for a legal contact, sysadmins looking to notify someone, registrars themselves, etc.

I don't think the US patent database will go offline, the EU one might hide personal information like name and address unless you request access under legitimate interest.

<comment><USER43> > how to give access to people who have legitimate interest in the data, ie > people looking for a legal contact, sysadmins looking to notify someone, > registrars themselves, etc.

That is, anyone but the public. Oh, EU, you've done it again.

<comment><USER42> Why does the public need my email and phone number associated with a random internet string in a database?</comment></comment></comment></comment></comment></comment>


A week-long programming retreat - <AUTHOR> https://www.facebook.com/permalink.php?story_fbid=2110408722526967&id=100006735798590 <comment><USER3> Master of Doom contains an anecdote on this aspect of John Carmack's life. On page 252, it mentioned how he had sequestered himself in a "small, anonymous hotel room somewhere in Florida" as he researched Trinity. He had a dolch portable computer with pentium II and full length PCI slots, while subsisting only on pizza and Diet Coke. That bit for some reason made a big impression on me when I read it on the bus ride to school. To be able to let yourself go and research and code what you truly believe in or curious or excited about (w/ room service and not have to clean up after yourself haha) seemed incredible. I wonder if John still sticks to Florida, or if he goes to different places each year; in a city or just a hotel off of a highway or near an airport. My favorites have been Hyatt - Place Amsterdam Airport, - Regency Charles De Gaulle, and - Lake Tahoe. Something about sterile rooms, room service, a hotel near, but not too close to beautiful and historical landmarks just center you and allow you to think.

<comment><USER4> Agreed, I guess that the trick to selecting a location is to be in a location the the inside the hotel/cabin room is much more attractive that on the outside.

I had a colleague that told me that his most productive period was when he was stuck at the hospital for a couple of weeks but was able to do some coding.

<comment><USER5> There was a post on HN years ago advocating coding on a cruise ship -- it's like a nice hotel, but the internet is so crappy that you'll only use it when you _really_ need it (e.g. finding docs, syncing git), which is great for productivity!

<comment><USER6> Post may have been by Tynan ([http://tynan.com);](http://tynan.com\);) he's big on working while on transatlantic cruises. Following his advice, I have done the same thing several times.

Here are some tips: \- Find the best cruises most easily on cruisesheet.com (disclosure: it's Tynan's project)

\- Royal Caribbean has the best internet at sea through O3b. In the Caribbean or Mediterranean it's about 70ms latency. In the middle of the Atlantic it's about 220ms latency. So Skype may work but the delays are annoying. Plenty of bandwidth now though. You may have only "one 9" service on average though. So scheduled conference calls are always a gamble.

\- Repositioning cruises (many ships move from the Mediterranean to the Caribbean and back seasonally) in April/May and October/November are the cheapest cruises you'll ever find. 5-8 days at sea means plenty of time to get some work done, as well as goof off a bit during the evenings. For the second week (Europe or Caribbean), I find it easy enough to get an hour or two of email catch-up in on port days after getting back from a shore excursion, but it's easier to just say port day = vacation, sea day = work and great food.

A 2-week repositioning cruise may cost as little as $600 per person including taxes and fees. Add another $200pp for gratuities, a few $hundred for shore excursions, and a few $hundred for airfare to get back home. Depending on where you go, you may get the benefits of a 2-week vacation for the price of one on land.

Similarly, if you want to do a one-week offsite with your startup (particularly if you're all remote most of the time anyway), this is probably cheaper than flying your crew to any big city.

The seminars-at-sea model was also well proven out by geekcruises.com, now renamed insightcruises.com

My wife and I have been renting an off-season beach house near Boston for 8 months out of the year for less than the price of a basement studio in Cambridge, then traveling during the summer. This means our repositioning cruises are further discounted by the fact that we aren't paying rent or mortgage on an empty house. It's hard to beat if you both have good schedule flexibility.

</comment></comment></comment></comment><comment><USER7> Good writeup -- and one of the main reminders for me is this:

People throw around words like "revolution" for the current deep-learning push. But it's worth remembering that the fundamental concepts of neural networks have been around for decades. The current explosion is due to breakthroughs in scalability and implementation through GPUs and the like, not any sort of fundamental algorithmic paradigm shift.

This is similar to how the integrated circuit enabled the personal computing "revolution" but down at the transistor level, it's still using the same principles of digital logic since the 1940s.

<comment><USER8> In computer vision at least, deep learning has been a revolution. More than half of what I knew in the field became obsolete almost overnight (it took about a year or two I would say) and a lot of tasks received an immediate boost in term of performances.

Yes, neural networks have been here for a while, gradually improving, but they were simply non-existent in many fields where they are now the favored solution.

There WAS a big fundamental paradigm shift in algorithmic. Many people argue that it should not be called "neural networks" but rather "differentiable functions networks". DL is not your dad's neural network, even if it looks superficially similar.

The shift is that now, if you can express your problem in terms of minimization of a continuous function, there is a new whole zoo of generic algorithms that are likely to perform well and that may benefit from throwing more CPU resources.

Sure it uses transistors in the end, but revolutions do not necessarily mean a shift in hardware technology. And, by the way, if we one day switch from transistors to things like opto-thingies, if it brings a measely 10x boost on performances, it won't be on par with the DL revolution we are witnessing.

<comment><USER9> It is indeed pretty amazing in CV. In a field nearly as old as CS itself, I'd say at least 75% of the existing techniques were made obsolete in a span of only a few years.

You could have started your PhD in 2006, made professor in 2012, and nearly everything you had learned would have been _completely_ different.

<comment><USER8> I got my diploma in 2003. Actually I got lucky that I found a client who needed a computer vision specialist to add fancy features to their DL framework so I could train myself in this new direction

</comment></comment></comment></comment><comment><USER10> It's actually super refreshing learning that even programming masters like Carmack are just now learning NNs and watching Youtube Stanford classes like the rest of us. These are actual people, not gods :) Everybody poops!

<comment><USER11> Yeah .. but his first impulse was to write backprop from scratch. I saw the lectures, been dabbling with NN for years, and I never thought to do it. I always thought the Stanford people made you do it on assn 1 to pay your dues or something. I continue to think of Carmack as the Master hacker.

<comment><USER12> > his first impulse was to write backprop from scratch

backprop is a very simple algorithm, nothing to fear there. The problems are to calculate the derivates if you want to be flexible building your model. But for feedforward networks with sigmoid activation, the equations to update the weights are a joke.

<comment><USER13> I'm not sure we agree on the definition of very simple. It maybe very simple if you already know it...

<comment><USER14> [https://m.youtube.com/watch?v=i94OvYb6noo&feature=youtu.be&t...](https://m.youtube.com/watch?v=i94OvYb6noo&feature=youtu.be&t=5m20s)

You won't regret. One of the best explanation of backprop on the internet.

</comment></comment></comment></comment></comment><comment><USER15> I do trips like this every few years. I can hardly recommend them enough.

I wrote about my specific recommendations here: [https://robots.thoughtbot.com/you-should-take-a- codecation](https://robots.thoughtbot.com/you-should-take-a-codecation).

<comment><USER16> I should do that sometime. I'm afraid I've lost my ability to focus, something like that might help. I'd need a solid mission though, instead of a "look into tech X" without a goal.

</comment></comment><comment><USER17> Pretty awesome! If I ever had to say the one thing that differentiates successful people from unsuccessful people it wouldn't be intelligence, or even perseverance, or passion. It'd be focus. With focus, you can be amazingly successful in so many types of occupations.

(That being said, passion / perseverance / intelligence can often lead to focus)

<comment><USER18> IQ tests seem to suggest otherwise.

<comment><USER19> Are these even legitimate? If a person can paint a masterpiece but can barely balance their checkbook, IQ tests won't show their mastery in painting, only their mediocrity in math.

<comment><USER20> The argument you're making has often been made as "there are different kinds of genius". The research seems to have debunked this. Rather than seeing multiple ways to be a genius, we see some general intelligence ability that helps you no matter what you're trying to do.

In the case of our painter, if we're talking about Michaelangelo or something, he'd likely come out with an excellent IQ.

As an aside, IQ tests don't try to make you do math problems and the like, it's all pattern matching kinds of questions where you learn all of the necessary context in the test itself. Which makes sense right, it's trying to measure your ability to learn and generalize, not what you happen to know before you take the test.

</comment></comment></comment></comment><comment><USER21> I second his recommendation of CS231N: [http://cs231n.stanford.edu/](http://cs231n.stanford.edu/)

You can probably go through the whole thing including assignments in under a week full-time.

<comment><USER22> Personally, I found it took me much longer. I watched Karpathy's lectures, took notes and stewed upon the ideas, and read a bunch of other materials such as blog posts and research papers to try and truly comprehend some of the concepts mentioned in the course.

I found myself knowing how to create CNN's, but the why of the entire process still feels under-developed. But I'll admit it could be because my understanding of Calc and Linear Algebra was far more under-developed back when I was studying the course than it is now.

<comment><USER23> What did you read/do to develop your calc and linear algebra skills? I feel like I know calc and linear algebra fairly well on paper, but I'm unsure how to translate that to the computer.

</comment></comment></comment><comment><USER24> The idea of programming something from "scratch" (whatever your definition, and programming language) is the best way to really understand something new. Reading about it, hearing someone speak about it is one thing ... but opening up a blank .c file and adopting a "ok, let's get on with this" approach is something much different.

It takes time though and one has to combat the "how come you're reinventing the wheel" comments from co-workers, spouses, bosses, etc., which can be a challenge.

<comment><USER25> This is the biggest challenge I face. As I attempt to teach myself computer science and programming, the toughest aspect is to work through SICP. I am always tempted to take the path of least resistance and follow a tutorial to build a tangible program that will impress. Must remember that this is a journey and to build brick by brick, even if that means gathering the ingredients for the clay, then mixing, then laying the bricks!

<comment><USER26> I'm not really sure it's the most effective learning paradigm. It must be easier to just copy-paste trivial programs and then try to modify them, gradually increasing complexity level, until you get certain level of understanding.

</comment></comment></comment><comment><USER27> "I initially got backprop wrong both times, comparison with numerical differentiation was critical! It is interesting that things still train even when various parts are pretty wrong — as long as the sign is right most of the time, progress is often made."

That is the bane of doing probabilistic code. Errors show up not as clear cut wrong values or crashes but as subtle biases. You are always wondering, even when it is kinda working, is it REALLY working or did I miss a crucial variable initialization somewhere?

<comment><USER28> Reproducing known results goes a long way.

<comment><USER27> That is only possible when you are not experimenting with new algorithms.

</comment></comment></comment><comment><USER29> The recurse center (formerly known as Hackerschool) is offering one week mini retreats (their typical program is months long). I applied and didn't get in but after reading this, I may try again.

[https://www.recurse.com/blog/127-a-new-way-to-join-the-rc- co...](https://www.recurse.com/blog/127-a-new-way-to-join-the-rc-community)

<comment><USER30> Reminds me of /dev/fort:

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

</comment></comment><comment><USER31> >On some level, I suspect that Deep Learning being so trendy tweaked a little bit of contrarian in me, and I still have a little bit of a reflexive bias against "throw everything at the NN and let it sort it out!"

I am the same kind of person. But when John Carmack approaches this with scepticism and concludes that it is indeed not over-hyped, I guess its worth learning after all!

CS231N, here I come.

<comment> tail-recursion He never said it is not over-hyped. Most people who work in the field think it is over-hyped.

</comment></comment><comment><USER32> >> I'm not a Unix geek. I get around ok, but I am most comfortable developing in Visual Studio on Windows.

This is a lesson for me and probably many others. Don't get hung up on tools, ship!!!

<comment><USER33> I _think_ the subtext of your comment here is something like, "Look how productive he is without mastering the _real_ tools we Unix hackers use! He can get by with second rate Windows stuff!"

Maybe I'm reading you wrong. But if I am right, it's good to take a look outside of the Unix bubble. Visual Studio is literally the world's most sophisticated developer tool. More human hours of engineering have been poured into it than likely any other piece of software we use on a daily basis.

Windows isn't my jam, but VS is incredible.

<comment><USER34> does it beat intellj's IDEs?

<comment><USER35> yes

</comment></comment></comment></comment><comment><USER36> If anybody else is interested in doing something similar, I highly recommend Michael Nielsen's online book: Neural Networks and Deep Learning[1]. He gives really good explanations and some code examples.

I ended up writing the most basic feed-forward network in C[2]; although I didn't use base libs like Carmack :(

[1] [http://neuralnetworksanddeeplearning.com/chap1.html](http://neuralnetworksanddeeplearning.com/chap1.html)

[2] [https://github.com/cluoma/nn_c2](https://github.com/cluoma/nn_c2)

</comment><comment><USER37> I like his insight that a lot of base neural network implementation code is conceptually simple in the same way as writing a raytracer.

<comment><USER38> I think the point about NN and ray tracing being simple systems that allow for complex outcomes is something that seems to be a deeper truth about the universe. Stephen Wolfram and Max Tegmark both talk and write about this - <USER2> also shows up in old cellular automata like Conway's game of life.

It's pretty cool that so much complexity can come from a few small rules or equations.

<comment><USER39> You could say that physics is a relatively simple program that allows for outcomes as complex as the universe.

<comment><USER38> In his book Max Tegmark makes this argument, though he says it's math rather than physics.

</comment></comment></comment></comment><comment><USER40> Interesting to hear that C++ isn't that well supported on OpenBSD. The story is quite the opposite with FreeBSD, where it's really easy to use either clang or gcc. I usually spin up new jails to keep different installations sandboxed. CLion works quite nicely with most window managers on FreeBSD, but I rarely boot Xwindows these days and usually prefer to work with emacs inside tmux from the console.

<comment><USER41> My gut feeling is(was) that C++ is a first class citizen on OpenBSD. Its interesting having my beliefs challenged like this from someone so influential.

The question becomes; if its not C++, then what is the first class citizen on OpenBSD. And if it is C++ then how do we improve support? Just going to ports seems like a poor answer.

<comment><USER42> > The question becomes; if its not C++, then what is the first class citizen > on OpenBSD.

Being an UNIX derivative the answer is quite easy, C.

<comment><USER43> Sure, but is there a popular, modern C compiler out there that doesn't compile C++ as well? Clang, GCC, Intel, MSVC... all of them compile C++ as well as C. I don't think it's possible to have first-hand support for C and not C++ any more unless you ship your own compiler. It sounds like the issue here is that OpenBSD is shipping older versions of LLVM/Clang and GCC.

<comment><USER44> OpenBSD's base ships the most recent LLVM and Clang (5.01), but there's no LLDB yet and gdb is outdated (6.3, the last GPLv2 version).

He would have had a much better time using C99 than C++11, especially since he didn't want to install a newer gdb from ports.

</comment></comment></comment></comment></comment><comment><USER45> I find it very admirable that he can sit down for a week and just focus on one main subject. Personally, I get derailed all the time when I don't have a very well defined goal in mind.

It looks a little something like this: I'll be reading a manpage and notice another manpage referenced at the bottom. So I obviously keep crawling this suggestions tree until I bump into a utility whose purpose is unclear. So then I'll go searching online to try and figure out what kinds of problems or use- cases it's meant to help with.

</comment><comment><USER46> He mentions it a bit, but openbsd is really a good place to start for multiplatform code. Their focus on security and posix helps a ton.

</comment><comment><USER47> This post made me appreciate being a graduate student a lot. I have many weeks like this!

<comment><USER48> I've structured my life like this. Remote employer in a time zone 10 hours away, I get months long tasks I simply update boss on progress and am left to focus so deep my health suffers because I naturally obsess over my work, which I love. And working from home, my wife also works from home (freelance film producer), so we just immerse ourselves, have meals together, but otherwise we both obsess over our work. No commuting makes this very enjoyable.

</comment></comment><comment><USER49> I really like the attitude of picking a topic at hand and hack around it for fun. It radiates a very MIT Hacker feel. The writeup is very motivating.

John has been experimenting with a lot of stuff -- Racket, Haskell, Computer Vision and now Neural Networks. I guess there is no professional intent, but the spirit of hacking lives on.

</comment><comment><USER50> No-JS link:

[https://m.facebook.com/permalink.php?story_fbid=211040872252...](https://m.facebook.com/permalink.php?story_fbid=2110408722526967&id=100006735798590)

John Carmack

After a several year gap, I finally took another week-long programming retreat, where I could work in hermit mode, away from the normal press of work. My wife has been generously offering it to me the last few years, but I'm generally bad at taking vacations from work.

As a change of pace from my current Oculus work, I wanted to write some from- scratch-in-C++ neural network implementations, and I wanted to do it with a strictly base OpenBSD system. Someone remarked that is a pretty random pairing, but it worked out ok.

Despite not having actually used it, I have always been fond of the idea of OpenBSD — a relatively minimal and opinionated system with a cohesive vision and an emphasis on quality and craftsmanship. Linux is a lot of things, but cohesive isn't one of them.

I'm not a Unix geek. I get around ok, but I am most comfortable developing in Visual Studio on Windows. I thought a week of full immersion work in the old school Unix style would be interesting, even if it meant working at a slower pace. It was sort of an adventure in retro computing — this was fvwm and vi. Not vim, actual BSD vi.

In the end, I didn't really explore the system all that much, with 95% of my time in just the basic vi / make / gdb operations. I appreciated the good man pages, as I tried to do everything within the self contained system, without resorting to internet searches. Seeing references to 30+ year old things like Tektronix terminals was amusing.

I was a little surprised that the C++ support wasn't very good. G++ didn't support C++11, and LLVM C++ didn't play nicely with gdb. Gdb crashed on me a lot as well, I suspect due to C++ issues. I know you can get more recent versions through ports, but I stuck with using the base system.

In hindsight, I should have just gone full retro and done everything in ANSI C. I do have plenty of days where, like many older programmers, I think "Maybe C++ isn't as much of a net positive as we assume...". There is still much that I like, but it isn't a hardship for me to build small projects in plain C.

Maybe next time I do this I will try to go full emacs, another major culture that I don't have much exposure to.

I have a decent overview understanding of most machine learning algorithms, and I have done some linear classifier and decision tree work, but for some reason I have avoided neural networks. On some level, I suspect that Deep Learning being so trendy tweaked a little bit of contrarian in me, and I still have a little bit of a reflexive bias against "throw everything at the NN and let it sort it out!"

In the spirit of my retro theme, I had printed out several of Yann LeCun's old papers and was considering doing everything completely off line, as if I was actually in a mountain cabin somewhere, but I wound up watching a lot of the Stanford CS231N lectures on YouTube, and found them really valuable. Watching lecture videos is something that I very rarely do — it is normally hard for me to feel the time is justified, but on retreat it was great!

I don't think I have anything particularly insightful to add about neural networks, but it was a very productive week for me, solidifying "book knowledge" into real experience.

I used a common pattern for me: get first results with hacky code, then write a brand new and clean implementation with the lessons learned, so they both exist and can be cross checked.

I initially got backprop wrong both times, comparison with numerical differentiation was critical! It is interesting that things still train even when various parts are pretty wrong — as long as the sign is right most of the time, progress is often made.

I was pretty happy with my multi-layer neural net code; it wound up in a form that I can just drop it into future efforts. Yes, for anything serious I should use an established library, but there are a lot of times when just having a single .cpp and .h file that you wrote ever line of is convenient.

My conv net code just got to the hacky but working phase, I could have used another day or two to make a clean and flexible implementation.

One thing I found interesting was that when testing on MNIST with my initial NN before adding any convolutions, I was getting significantly better results than the non-convolutional NN reported for comparison in LeCun '98 — right around 2% error on the test set with a single 100 node hidden layer, versus 3% for both wider and deeper nets back then. I attribute this to the modern best practices —ReLU, Softmax, and better initialization.

This is one of the most fascinating things about NN work — it is all so simple, and the breakthrough advances are often things that can be expressed with just a few lines of code. It feels like there are some similarities with ray tracing in the graphics world, where you can implement a physically based light transport ray tracer quite quickly, and produce state of the art images if you have the data and enough runtime patience.

I got a much better gut-level understanding of overtraining / generalization / regularization by exploring a bunch of training parameters. On the last night before I had to head home, I froze the architecture and just played with hyperparameters. "Training!" Is definitely worse than "Compiling!" for staying focused.

Now I get to keep my eyes open for a work opportunity to use the new skills!

I am dreading what my email and workspace are going to look like when I get into the office tomorrow.

<comment><USER51> Better non-JS link: [http://archive.is/MvKHy](http://archive.is/MvKHy). This link is of a snapshot of the DOM of rendered page. The one you linked has a not-so-comfortable layout due to being made for old phones with small screens.

</comment></comment><comment> Ono-Sendai I've also taken the time to implement a NN in C++ and train it on the MNIST handwriting data. It's a lot of fun :) As a result I have some pretty fast CPU NN code lying around.

</comment><comment><USER52> Note: this is a post from John Carmack, not Facebook HQ.

</comment><comment><USER53> I'm pretty sure this is what being a teenager or in college is for. In middle age I'd much rather spend a week doing a meditation retreat.

</comment><comment><USER54> Since when is Carmack writing on Facebook??

<comment><USER55> Since he's employed by them. (He works for Occulus, owned by FB).

That said, I chuckled at his note about being contrarian, as he _writes_ a post on FB

</comment></comment><comment><USER56> Hands up for everyone who expected John to announce the first self-aware AI at the end.

<comment><USER17> I think his passion is and always will be total immersive VR. I truly believe we are where are today completely on the back of Carmack's recognition of Occulus potential. He was just trying to be friendly and gave palmer assistance. Glad it all worked out though.

</comment></comment><comment><USER55> Compatible with Firefox Reader View: [https://pastebin.com/raw/hZ32q3Rv](https://pastebin.com/raw/hZ32q3Rv)

<comment><USER57> The Facebook page loaded fine for me in Firefox Reader View!?

</comment></comment><comment><USER58> I find it peculiar about people's continued good feelings towards Carmack.

During the Zenimax/Oculus case:

He claimed that he never wiped his hard drive: An independent court expert found that most of his hard drive was wiped after Carmack heard about the lawsuit. So Carmack lied in his affidavit.

He claimed that no source code from Zenimax ever got transferred over to Oculus. Then later admitted that the emails he had taken form his Zenimax laptop on his last day there did contain source code. He denies that the source code in the emails benefitted him and that he "rewrote" all the code anyways. But this runs counter to the testimony of Oculus programmers who admitted they copied Zenimax code straight into the Oculus SDK.

He also has not outright denied the copy claims from the testimony of David Dobkin's in which Dobkin testified about the similarity between the source code in Zenimax and the source code in Oculus's SDK. Carmack instead accuses him of doing it for money and argued that the methodology wasn't very robust. But no denial, just ad hominem attacks.

So why do people still fawn over him when it seems like his ethics are dubious?

(Granted it could be possible that the technical aspects of the case went over the heads of jurors. And I will admit to being wrong if the Oculus appeal ends up revealing more information.

But his HD was discovered to be wiped, and even Oculus programmers admitted to copying code. Why does he get a free pass on this?)

<comment><USER59> Yeah, Carmack has a history of unethical behavior. From the book "Masters of Doom":

 _> Late one night Carmack and his friends snuck up to a nearby school where they knew there were Apple II machines. Carmack had read about how a thermite paste could be used to melt through glass, but he needed some kind of adhesive material, like Vaseline. He mixed the concoction and applied it to the window, dissolving the glass so they could pop out holes to crawl through. A fat friend, however, had more than a little trouble squeezing inside; he reached through the hole instead and opened the window to let himself in. Doing so, he triggered the silent alarm. The cops came in no time._

 _> The fourteen-year-old Carmack was sent for psychiatric evaluation to help determine his sentence. He came into the room with a sizable chip on his shoulder. The interview didn't go well. Carmack was later told the contents of his evaluation: "Boy behaves like a walking brain with legs ... no empathy for other human beings." At one point the man twiddled his pencil and asked Carmack, "If you hadn't been caught, do you think you would have done something like this again?"_

 _> "If I hadn't been caught," Carmack replied honestly, "yes, I probably would have done that again."_

 _> Later he ran into the psychiatrist, who told him, "You know, it's not very smart to tell someone you're going to go do a crime again."_

 _> "I said, 'if I hadn't been caught,' goddamn it!" Carmack replied. He was sentenced to one year in a small juvenile detention home in town. Most of the kids were in for drugs. Carmack was in for an Apple II._

<comment><USER60> Carmack: Breaks into a building at age 14, steals a bit of code today. "Oh, he has a history of unethical behavior, we shouldn't look up to him."

Bill Gates: Steals a bulldozer to race with his buddies at age 19(?), is responsible for Microsoft's corporate culture and history of predatory behavior. Hackernews loves him and can't get enough of Microsoft. Boy, they're a fair sight better than Google, eh lads?

I pity the person who learns ethics from Hackernews.

<comment><USER61> I haven't experienced a consistent love fest here for Bill Gates. There are supporters and detractors, just as you'd expect for any public figure. Perhaps you notice more those opinions with which you disagree.

</comment></comment></comment></comment><comment><USER62> The man is a genius but why openBSD? FreeBSD would have been my choice.

<comment><USER63> I've never used a *BSD but perhaps you could say why you think FreeBSD is superior to openBSD?

<comment><USER62> I have used both and found them equally consistent. But maybe my usage was superficial and I missed something.</comment></comment></comment>


How RJ Metrics Grew to 83 Employees and $22+ Million in VC Funding - <AUTHOR> http://contentboxter.com/content-marketing-lean-startup-to-hypergrowth/

<comment><USER2> The RJ Metrics founders Bob and Jake gave a really great talk sharing their seven year journey Monday night. Lots of good lean startup lessons, and they just raised a $16.5 million series B. The full video is at the bottom of the article.</comment>


How Microsoft's Supreme Court Case Affects US Startups - <AUTHOR> https://news.crunchbase.com/news/microsofts-supreme-court-case-affects-us-startups/?utm_content=bufferaa09a&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><USER2> Hi. After reading the referenced article, a few cursory thoughts come to mind. 1\. There is already some precedent, or at least methods of judging when communications should be forced over to law enforcement by telecommunications and similar companies. Although the context is foreign intelligence, one would think that national law enforcement would partner with the respective agencies to appropriate the assets (e.g. FISA, FAA, etc.). My thinking is missing the real context of the case and why the FBI needs the individual's assets. 2\. If the emails originated or are accessed in the US, then it would be reasonable to assert that law enforcement can get warrants for search and seizure of a US system containing cached data, possibly issuing a gag and compliance orders for notification of such an event. Again, speaking without reviewing the "real" history of events from other resources beyond the initial article. 3\. If the emails were not created or originated in the US, this appears to attempt to extend "the Act" to being able to step into another's soverign territory. The article didn't mention whether the FBI requested a warrant from the Irish Government.</comment>


Show HN: Style – Similar to Prisma for Mac/Win - <AUTHOR> http://macdaddy.io/Style/ <comment><AUTHOR> For anyone that has tried the previous version, the memory issue has been fixed.

This has 30 models, and they're all a lot better than the previous 8 or so it had.

Also added a camera button for quick experiments.

</comment><comment><USER2> Looks nice. What implementation of style transfer are you using? Recoded in ObjC/Swift or calling a Python script? Does it take advantage of GPU?</comment>


That Python in the Pet Store May Have Been Snatched from the Wild - <AUTHOR> https://mobile.nytimes.com/2018/04/09/science/illegal-wildlife-reptiles-amphibians.html <comment><USER2> I wonder if the sumbitter was looking for the language Python and came across this by accident vs reading nytimes website and finding this.

<comment><USER3> My same thought

</comment></comment><comment><USER4> These petstores need to start using virtualenv so they stop mixing up pythons.

</comment><comment><USER5> If the python was snatched from the wild in Florida then all is well and good as pythons are invasive species there.

</comment><comment><USER6> Very common with parrots too, unfortunately.

</comment><comment><USER7> from Indonesia import green_python

<comment><USER8> Here in Florida, we have the opposite problem. The pets were released into the wild...

Now in Florida, the pythons import you.

<comment><USER9> This reminded me of the Cobra effect[1] where in an episode of the Simpsons[2] they introduce snakes to population control, but this causes cascading effects in the ecosystem.

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

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

<comment><USER10> Here is a link to the video clip:

[https://youtu.be/f8jlwEPCI5A](https://youtu.be/f8jlwEPCI5A)</comment></comment></comment></comment>