skysight-inc/HackerNews huggingface dataset:
I must respectfully disagree. In this universe, nothing is linear in terms of how we perceive events and their simultaneity. If we consider a commit is an event, then who can say one commit comes before another? As in relativity, if both developers are working independently then they each of their own frame of reference. In effect, a merge commit reconciles those different frames of reference in its own discrete and well-documented entity. You could think of it as the equivalent of a Lorentz transformation. I understand the analogy is quite stretched here, but I still find it useful.

It follows then that if a merge commit is a genuine reconciliation, then a rebase is the act of one party rewriting their own memory in order to hide from themselves the fact that they were working in isolation and later had to agree on the actual outcome of events. Thus, in effect, rebasing ones code is no different than suffering from a self-inflicted delusion. That is, a delusion that we are all working in one shared directory or, to a lesser extent, that there is one source of truth as in SVN or other centralised systems.

This is, in fact, quite a sad thing our community. Many a developer -- while they may be using git -- are not truly using git in the way it was intended. They have limited themselves to their old ways of thinking and acting and, in the pursuit of what they have been taught is "the ideal", they have hidden from themselves the possibilities, efficiencies and understanding that might be discovered by the move into a world which can capture the fact that not everyone works in a single shared directory with immediate knowledge of each other's work.

We have to learn to embrace the oddity of a non-linear history because, while we might not like it, it represents what really happens when we write code. The better our tools help us model reality the better answers we can produce for ourselves now and in the future. Six months from now when we say, "How the hell did this ever work?" or "What the fuck was I thinking when I wrote that?", we'll want answers. If we choose rebase, corrupt our own memories and burn the reflogs we'll never know.
I used to use Gentoo, until I switched to OpenBSD. Now the way you just bundled "Gentoo and BSD" together sounds as if you think they have something in common. They really don't, and the BSDs are quite different to each other too so you can't really treat them as one.

As the linked writeup says, Gentoo is very much about choice. The ability to keep use flags turned off meant I had a leaner system with fewer dependencies, and I never had (pulse)audio problems all the while I had to fix family members' computers running kubuntus and such every week. No need to fix and change configurations and whatnot after every update -- set the system up once, and it'll mostly work the same way for a long long time. The other monolithinc distros seemed to break every time a big upgrade rolled. And since your programs are built against your libraries, you don't get the dependency problem of having to update all your packages just because someone bumped a popular library or two. It's all nice, and there's nothing to fear re. building from source, as the portage tooling do it all for you automatically. It just takes time, which can be a problem and one reason why I'm not running Gentoo now. Also, the last time I used Gentoo, it required a little more configuration than I think it should. As in, I think it could use more defaults that you don't need to touch unless you want to.

I can't speak for the other BSDs, but OpenBSD is totally opposite to Gentoo. You get binary packages and are mostly discouraged from building from source. There aren't that many knobs and optional dependencies. The devs want to provide good defaults and eliminate the need for twisting knobs and configuring things that can be handled by the OS. Indeed, they want to remove knobs, so that there are fewer ways to shoot yourself in the foot making the system less secure, or to just generally end up in a poorly tested configuration. You don't get to choose between five bootloaders, three init systems, seven filesystems and a few hundred kernel options. And if you go out of your way to build a very special custom system, you can expect no help from the community when you run into trouble.
I really couldn't agree with this more. Reading before you sleep is so important to getting a good night's rest. Using a physical book or an e-ink screen, anything that doesn't emit light itself.

Seriously, invest $150 into getting a good e-reader, if you don't have one already. It's well worth the sleep benefits, potentially even more than a good mattress (for a programmer, anyway).
I prefer the concept that master should always be deployable to production. My CI creates a build artifact on every commit to master and the artifact can be deployed to staging/production at any time. Thus, master should always be considered stable.

Development should happen in a branch. When it's done, checkout master LOCALLY, merge in your branch, run unit tests, if tests pass, push master. If tests don't pass, reset master back to origin and keep working on your feature.

This way master is always ready to go and you also get the benefit of seeing how a feature was developed and the merge commit is a representation of a complete chunk of work.

If you do need to back out a feature, how would you do it on a rebased, fast-forward merge? You have NO CLUE where the start of the feature was. You have to just guess based on the author maybe? In my experience, I've never used git bisect so I don't optimize my branching model for that experience. For me, backing out bad merges is much more common so I optimize for that.
I've never had an issue with broken builds on betaflight, I'm using a 250 racer with a Naze32 if that helps.

From what I hear they don't always merge the changes, hence why lots of people are using Betaflight.

I held back from using betaflight for ages. I finally took the plunge and I haven't looked back. My quad now feels like it is on rails, and it was my first build and it's far from photo worthy.

Install betaflight, you'll love it, take my word for it. And if you don't just go and put Cleandlight back on (this won't happen!)
Well, I've been a consultant for 20 years. That started before the PhD, and has continued since then. And while my advisor didn't know about it at the time, I was also doing some consulting work during the PhD, so that my family (wife + 3 kids) could afford rent, food, and health insurance.

My ability to get gigs was always pretty good -- but it really skyrocketed about 2 years ago. That's when I decided to explicitly pursue training in a few technologies (Python, Git, PostgreSQL, and Ruby) rather than "doing whatever they want, using whatever technology they want." That specialization, and my focus on training, has done wonders to my career; I'm earning more, having more fun, and doing more interesting work (I think) than when I was looking all over for development jobs.

I still get to do software development, but now I do it for things I want, or when researching new topics for myself. I have a few SaaS ideas that I've been thinking about, but haven't had time, between writing books and doing courses.

It's hard to say whether the PhD has helped me much. On the one hand, I put it on my ebook covers, since I figure it'll impress some people enough to buy the book. And to be honest, I have used (and continue to use) many of the techniques I learned in the LS program in my lectures, which I do think help to make me a more effective trainer. However, I think that people hire me not because of the PhD, but because I have built up a reputation -- and once you do a few successful courses for a company, they're very likely to hire you back.

I did work as a regular employee for a bunch of years: I worked at HP's medical products group (spun off as Agilent, and then sold to Philips, both after I was there), and then for Time Warner. When I moved to Israel in 1995, I figured that this was a good chance to try my hand at consulting -- and I haven't had any regrets since.

It's a sad, but true, state of affairs in the computer industry, in that people in their mid-30s who are qualified and bright have a hard time getting jobs. I'm fortunate in that I haven't had to deal with that. (And I'm now 45, so I'm definitely over the hill in terms of getting development jobs.) Consulting has provided me with something of a cushion there.
I think this was just an OCZ thing.
I wish github had a way of showing the contents of all separate commits instead of everything in a big blob :(
This paper made the rounds a few years back:

>Both studies revealed similar patterns of relations between trolling and the Dark Tetrad of personality: trolling correlated positively with sadism, psychopathy, and Machiavellianism, using both enjoyment ratings and identity scores. Of all personality measures, sadism showed the most robust associations with trolling and, importantly, the relationship was specific to trolling behavior. Enjoyment of other online activities, such as chatting and debating, was unrelated to sadism. Thus cyber-trolling appears to be an Internet manifestation of everyday sadism.

http://www.sciencedirect.com/science/article/pii/S0191886914...

HN discussion: https://news.ycombinator.com/item?id=7241233
OK I think that's a good and useful point and a motivator for learning FP. Nevertheless because most people continue to perceive things imperatively and because as the article says FP is puzzle like then the author still is probably right when they say that FP will remain unpopular.

I like "solving puzzles" but I don't like solving them under pressure. I also don't like deciphering someone else's puzzle when I am in a hurry and when I'm unlikely to never need this piece of code again. So even for people who like puzzles it's often the case that they just need to get something working fast that's reasonably correct.

The fact that life is short and that the world changes so rapidly is what makes worse better.
Some European PhDs are worthless. Dr. med and Dr. jur (medicine and law) are a joke in Germany. You can obtain a Dr. med after one year of injecting $random_substance into mice and repeating the "experiment" until the p-values spit out by Excel are sufficient for the "thesis" to pass.

PhDs in e.g. Physics are harder though.
Learning Elasticsearch with Laravel
Ideally it would be a setting on the repo to allow both kinds of processes.
Original paper this is based on
http://arxiv.org/abs/1508.06576

Neat to see a web application implementation of it, though looking through the code suggests the actual algorithm implementation is based on
https://github.com/jcjohnson/neural-style
With git, branching and merging is pretty natural.
The interesting part of a commit is not when you did something, but how it will change the repository.
I really really think that documentation problems should be treated as high severity bugs. Are there any projects you know of that do that?
How did you decide on OpenBSD from all the choices in the BSD family?
To sell to Borland!
There's so much confusion in the comments again.

It's really simple. Governments want to abolish cash so that they can monitor all of your transactions. Hooray! No need for accountants anymore, when the government can calculate how much you "owe" them by themselves!

They're also doing it so that you can't escape their fucking insane negative interest rate 'stimulus' measures, or bail-ins etc.

Oh, and if you can't use cash and the government decides you're a naughty thought-criminal, they can just freeze your accounts and you're instantly reduced to begging on the streets..
Some states do have laws that explicitly allow and/or regular marijuana for medicinal or recreational use. For example, I live in Colorado where a constitutional amendment was passed that required law makers to pass laws to setup regulations for the production, wholesale, and retail sale of the drug.

The part about the federal law is still true but as far as I know, law enforcement in Colorado is not required nor can be forced to enforce federal law.
Yes the training set should be representative of the candidates you want to crack, also the larger the training set is, the better it seems to perform. It is also important to note that, as passwords are being cracked they become part of the training set. So the program can start of completely blind then it will figure out common structures as the simulation progresses.

I have not put them head to head, but the program seems to find passwords that are far outside the tractable search-space for a bruteforce attack. Passwords like the following are found withing a few hours:

34 a111111111111111111111111111111111

20 12345678900987654321

19 9876543211234567089

19 password12345678910

18 sexytinkerbell2013

18 prettyprincess4812

18 mickeymouseforever

18 littlepinkprincess

18 iloveyoumomforever
We like to think of North Korea as the crazy country but we forget it has a much older brother who is far more dangerous because it appears to be mature and acceptable yet is almost as nuts.
Any of the big companies -- Google, Facebook, and Amazon come to mind -- do tons of things that even 10 years ago would have been considered cutting-edge computer science research. Whether it's OS changes, algorithm development, database technologies, UI testing, or data science, those companies (among others) are working with far larger data sets than most university researchers can ever touch. Plus, they don't have to deal with the sorts of ethics committees that universities have in place.

On this last point, I should mention that my dissertation research involved the creation of a collaborative Web application for people developing agent-based models. The IRB (ethics board) insisted that anyone who would want to use my Web site would need to fax a permission form to the university office. You can imagine how this would have killed any use of my site, and thus of my dissertation work. It took several months of pleading with them to get them agree that usage of the site wouldn't require a faxed form. Doing that same sort of work at Facebook et. al. would have been a non-issue.

And yes, there are ethical and privacy issues associated with Facebook, Google, etc. I'm not ignoring them, merely pointing to the abundance of data and opportunities they have at their disposal.

There are still advantages to a university laboratory, including the cushion that you have from real-world profitability. There's something nice about being able to spend months or years looking at a problem, without having shareholders looking over your shoulder. But universities have their own politics and problems, and they're far from the pristine labs we'd like to imagine.
That's ridiculously good. I'm paying $120AUD/month for 100 megabit down / 40 up. It's far better than the 8/1 I had before but I can exceed the monthly traffic quota in 45 minutes or less!

What's the speed like going out of the country? Where are the big peering points?
> I came to the conclusion that ultimately the timeframe doesn't matter - what counts is that you get it done

That seems like a bizarre bit of reasoning. When I go grocery shopping, the important part is that it gets done, but that doesn't mean I want to be stuck in the store for five years. At a certain point the cost/benefit ratio becomes insane, not just from a financial point of view but academically as well.
This. This is the correct way to think about it.

Ballooned feature branches suck either at merge time or at deployment time. The problem in either case isn't the model -- it's the balloon of changes.

Commit early and often -- and merge back to master. :-)
I often don't want to record my development history in the master branch because it's messy. Instead I squash my work into a single cohesive commit with a decently well written commit message.

I'm not convinced that more commits generally make it easier to understand why code changed. Often when I blame a line, if I see it was changed by a cohesive feature commit, that tells me all I need to know—and if something's wrong with it, I can say "hey Joe, you broke the frobber when you implemented the new gizmo."
I'm not glad with all the new font. I still like my Arial's and Verdana's of this world and do not care for anything new.
Oxford also puts PhD students on a pretty strict timeline. I don't think an Oxford PhD is a joke.
That notion is false, right, thus I'd rather think "this commit is not correct anymore".

Regarding getting ideas how the code was developed, for the commit that is not correct anymore I have a commit message telling me why it was added. For reasonably small commits, I don't a lot of room for misunderstandings and wrong fixes.

This applies if the required changes in your branch are rather small. I think we can agree that rebasing breaks if some changes in master require lots of changes in your branch. But so does merging, as the merge becomes even more horrible and error-prone in that case. Basically, large changes ("real" development) should happen neither in merge commits nor during rebases in my opinion.
You need four-spaced indents to create code blocks.
> But I tell people, very seriously, that if they're thinking of doing a PhD

I simply tell them not to do it--in Computer Science--if they are genuinely good at getting things done (for some mediocre people good at playing a certain type of a game, grad school can be an okay career path), unless (1) they need a student visa, or (2) they definitely want to go into academia (which generally only makes sense in a top 5-10 ranked school).

To me the litmus test is now this: do you need a particle accelerator (or equivalents) to conduct research in your field? If not, don't do a PhD.
I was extraordinarily paid not less than my employer is doing on me.
I am pro blind hiring. You should get hired based on your skills and abilities, not your personal background.
The main thing to keep in mind with git workflows is that one size does not fit all. The number of people working on the code, and the way they work on it, has a big impact on which git workflow works best for you. The nice thing about git is that it's flexible enough to accommodate very different ways of working.

His primary objection to git flow seems to be integration hell, which is easily avoided by regularly pulling from develop, which is something you also need to do in his model. His point about git bisect is interesting, though I've never heard of anyone using it.

The primary advantage of shared feature branches is that multiple developers can work on the same feature that's not ready for release yet, which is impossible if you've got a single shared branch, and it means others have easy access to your code if something happens to you. Code shouldn't live just on the developer's machine. And while other backup solutions exist, git can keep it in the regular developer work flow.

That said, I don't think feature branches are sacred; I'm totally fine with developing small features straight on develop. Or master, if you prefer. Whether you want master to be stable or unstable is a matter of taste. Although I personally think it's useful to have a single branch that always contains the latest stable release.
Whales roam the oceans. I expect in some deep devops cave in a military office somewhere, they have a monitor showing the real time location of this whale using their sub hunting tech for a laugh. I really hope that's true.
A friend of mine in my program kept asking me why I was doing a PhD. He called it an entrance card to the academic world, allowing you to apply for certain types of jobs. He kept wondering why I was subjecting myself to so much work, and difficult relations with my advisor, when I had a great career going beforehand.

So yes, if you're not interested in doing academic research, then a PhD is a pretty hard sell.
The article is about (among other things) Henry George, and his ideas about a single land value tax being the best way to fund government. Interestingly, modern economics is quite favourable to his ideas. In particular, research on the economics of taxation has shown that land taxes are the most efficient taxes with the lowest deadweight losses.

And when it comes to actual economists, Krugman "agrees that land value taxation is the best means of raising public revenue", but has questioned if it would raise enough; many other economists have suggested that it would. Rothbard (a leading an-cap/Austrian economist) attacked it, but I don't think many people ever agreed with him. Milton Friedman (a very widely respected economist of the Chicago school) said it was the "least bad" tax for raising government revenues. Hayek (another Austrian and also a Nobel prize winner), was an early proponent but later feared it would be unfair in practice. Robert Solow and Joseph Stiglitz are also on record as being in favour. Some of George's contemporaries suggested that distinguishing land from capital made no sense, but (as above) modern research has shown otherwise.

And Marx hated the idea, viewing it as "Capitalism's last ditch". In other words, he was afraid it would work, and thus delay to inevitable onset of world socialism. (I think on balance that should be counted as a vote in favour of Georgism?)

In short, it's an idea supported by research and with the backing of a glittering array economists from the far left to the far right (including several winners of the Nobel prize), a few prominent politicans (Churchill in Britain and two US presidents), numerous jouranlists and pundits, etc. And yet it's never been tried. (I don't count the few experiments at the local government level, since national taxes still applied.)

Kind of odd. Of course, it would be an enormous change to enact, which I suppose explains it.
I am pro electric cars as I am to have a Tesla one day. Never liked cars until electric cars came around the block.
Algorithms and data structures in Swift, with explanations
Honestly, investment takes a lot of effort and sifting through the myriads of financial traps trying to find something with a good return you can be confident about is more or less a crap shoot. Unfortunately, the stock market and similar investment methods often aren't worth it. I went with investing in myself - starting a startup and using my savings to bootstrap. If you're a good software engineer, that's well within your reach.
For those interested about income during PhD http://www.phdstipends.com/results gives a good overview of PhD stipends offered by most Universities. A grad student at MIT CS doing a summer internship with Google etc. should typically gross at least 54,000$.

Another point that is often overlooked is that if you want a good team at Google / Apple such as working on autonomous car or deep learning etc. you have better chance going if you have a PhD in similar area. I agree that a PhD in Theory/PL is much more a life of mind rather than Machine Learning/Vision/Systems which can be justified as a bet on possibility of a future payout. I know several students at Cornell who joined Google/FB after BS only to be placed in not very interesting teams and later decided to join the PhD program. I think if played correctly a PhD from a good CS school to an extent can help you avoid some of risks faced by middle-aged programmers. Especially those who do not wish to transition into management roles.

Personally I am doing a PhD (Information Science / large scale data mining for healthcare), since I had guaranteed funding along with access to a large medical dataset that would have been impossible to get without being in academia.
$21k USD in the USA, I've often been envious of my European colleagues!
The typeface is the voice of the text. It also marries the frivolous world of design with the serious world of content, lending design the validity it craves.