skysight-inc/HackerNews huggingface dataset:
You're right:

You can delete a post as long as your application created the post.

- https://developers.facebook.com/docs/reference/api/post/
That's what discipline is all about. Creating a plan, having goals with milestones, checklists, schedule, etc. It's hard work and sometimes tedious, but mostly rewarding, leaving you with a sense of accomplishment and pride. It increases your level of confidence in what you can accomplish, it makes you better at overcoming problems.

Having ideas is a natural impulse, following through requires discipline and hard work.

Someone said "genius is as common as dust".

Nassim Taleb said something like "it's not about having ideas, it's about learning how to manage your ideas". I might be slightly off.

Anyhow, good initiative.
Because it's all-electric without the usual compromises, other than range (which is supposedly going to be solved in the next few years).
If you like zsh don't go back to bash, just ditch oh-my-zsh and roll your own config gradually, or try prezto (oh-my-zsh fork which pays attention to performance).
There is a reason why pattern matching syntactic sugar is not in python. Pattern matching is very powerful, but it is also ambiguous. And it is impossible to come up with good looking syntax, unfortunately.

Ambiguous, because in the:

# y = 5
#
match x with:
1: "my string"
2|3: print "2,3"
y: print y

there is a problem. Because, really, in case of 'y' you want to be able to do both: bind variables; use already defined variables. And there is no way you can do both with clean and concise syntax. On the other hand, there is already a way to achieve the same results with if,elif,else. That's why (sadly) pattern matching is not there.
Well I didn't have to go onsite for this, or I would have definitely charged more. Though I would say that installing PHP scripts to web hosts is closer to semi-skilled labour since it can be (and frequently is) done by teenagers.

Plumbing or mechanicing have a higher barrier to entry since you usually need certifications and a significant outlay for tools/transport/premesis etc.
For those outside the US who would like the paper version, use your local Amazon if possible. Postage is as much as the book from Pragmatic Programmer's site.
The other movement commands you mention aren't "better" than the hjkl keys. They are very useful, but accomplish different things.

For example, the h key moves one character left. Those other movement keys aren't going to do that for you except in special circumstances.

That said, no one is suggesting that in vim the only movement keys one should use are hjkl. Those other movement keys you mention are also very important, and you definitely should learn them after mastering hjkl.

As for the arrow keys, the sooner you break free of that crutch, the better. You will find your editing efficiency improves immensely when you are able to keep your fingers mostly on the home row.

It's like the difference between touch typing vs hunt and peck typing. Some people are actually quite fast hunt and peck typers. But a touch typist will feel nothing but pity for all the energy they waste hunting and pecking when they could be comfortably and leisurely typing by touch.

There are some limited uses cases for the arrow keys in vim, however; such as occasional one-handed browsing with the arrow keys and page-up/page-down keys, which are conveniently close together on many US keyboards. (Don't mistake this use case for movement while editing, which is very different from simply browsing through a document.)

I've also known of people who use their arrow keys for accomplishing tasks such as resizing windows, which is a reasonable use case because it's generally done infrequently enough for the extra hand motion not to matter.
It's possible to abstract IOCP and non-blocking sockets into a single interface with reasonable efficiency. For example:

- To send data, user calls Socket::send(const char *data, size_t length). This starts sending the given data; the buffer must remain available while data is being sent. IOCP implementation will initiate I/O using WSASend() or similar.

- When send operation is complete, the socket implementation calls a Done() callback of the user, and from that point on, the user is allowed to call Socket::send() again. With proper implementation, send() can directly be called from the callback.

This interface is very easy to implement on Linux. But on Windows there's a complication, because it's non-trivial to just stop an IOCP I/O operation that is in progress, in case you decide you don't need the socket any more and want to red rid of it NOW. If you just forget about it, there could be a crash when you release your buffer but Windows is still using it. A simple solution is to CancelIo() the socket and do blocking GetQueuedCompletionStatus()s until you get an event inidicating the completion of the pending I/O operation - taking care to queue up any unrelated results you may have gotten, for later processing. However, a more efficient solution is to use reference counting or similar with your buffers, so they only get released when Windows is done with them.

I didn't say it's easy, but it's possible.
I suppose so, but you have to consider your audience here. Most/all of HN is familiar with the 4 Hour Work week, and your post was basically just its back cover description.

I'm interested in what you have to say, but you're gonna have to be more detailed and less hand-wavy to keep people interested.
Then it gets fixed, and everyone screams because it's not backward compatible (Python 3).
I actually disagree with basically all of the points raised in this article. Sure, apparently Enum doesn't fit your particular desires for it - but there's good reasons why those choices were made.

Colour = Enum('Colour', 'red, green')

There's a difference here between 'name' as in where in the namespace a value is listed, and 'name' as in what descriptive name something has. For instance, if you were to do this...

Colour = Enum('Colour', 'red, green')
Tint = Colour

Would you want the values from Tint to suddenly say that they're different values from the values in Colour, even though it's the same underlying object? I doubt it.

Similarly, regarding having to assign numbers: this makes a hell of a lot of sense any time you're trying to serialize things for interoperation between multiple services. There's a reason why protobufs do it this way as well: you get really powerful backwards-compatibility options, which you might not realize you need at first but become extremely handy down the line.
I think explaining the reason to use it is another one of my reasons. Like I mentioned, it adds a step to a user's workflow.

It, however, is really useful for me and at work. I need to have strong passwords that are 10+ characters long but I can't write them down. So instead, I can remember something simple like the project name and use my app to generate the same password every time.
Mildly unrelated, but when I think of the opposite ("imaginative" enums), the first thing that comes to mind is this amusing vignette on the design process of Java's enums: http://blog.des.no/2009/01/no-silly-its-enum/
> undocumented APIs

"undocumented APIs" != "a magic combination of function arguments"

Any function that's not documented can be called an undocumented API, any program has them -- Linux, Windows, whatever.

But you were talking about the argument combinations being undefined, not the functions themselves. What are some examples of that?
This is great sleuthing. Bravo sir for a great read. An open source project I contribute to quite a bit uses the dict(foo="bar") method. Perhaps it is time to do some cleanups.
You make a point about general computer literacy, but it misses the point of the article.

OP is specifically addressing the fact that employers are trying to increase the supply of actual programmers by encouraging more people to learn to program, not just learn the difference between on or off states.

It’s a non-altruistic push to increase the supply of something that is in high demand.
HN has progressively become more and more negative, so I wouldn't worry about the negative responses here. That's not to say your blog can't improve, but obviously what you wrote must have hit a nerve judging it's on the front page, so make no apologies for that and keep writing! You don't need to address every complaint.
You forgot to mention that the ARGB Visual type was working well enough for years, ever since xcompmgr was around, all trough compiz and GS.

And the GS → metacity → GS cycle was not crashy here at all. It worked.

And now you’re getting into Wayland territory. All the more reason to make sure that windows with alpha maps work.

You can keep the old code around in the meantime.

Also, making a poll in your 50 people IRC channel is not a very meaningful sample size is it?
Such a pointless title, a real rarity (especially on HN).
So...Tragic...Tears running down my face...
Yes, definitely. I think I mentioned in there that I will be expanding the process beyond just MD5 and SHA1 (that was pretty much the prototype). I'm hoping to create my own "hashing"-type process to allow all letters, uppercase/lowercase, and so on.
> That isn’t writing at all, it’s typing. — Truman Capote

I'd like to point out that this quote was originally directed at Jack Kerouac. This possibly helped establish the myth that On The Road was actually produced in three weeks[1].

[1]http://en.wikipedia.org/wiki/On_the_Road#Production_and_publ...
30 Things You Should Do Right Now
OP: if you want bitmask-style enums, that's easy to code up with a derived class. The reference implementation shows how: https://bitbucket.org/stoneleaf/aenum/src/0c66e1a5ec7b76388a...
Commercial software and open source software are intersecting sets.
I think general computer literacy is important for everyone nowadays. One complication I see is that it is a long way from the general to the applicable with computers, and the applicable is somewhat arbitrary and changes quickly. As a contrast, a general primary school math education automatically sets a student up to understand compound interest, which will almost certainly be relevant to their lives.

However, starting from logic gates, and getting to spreadsheet usage or the basics of HTTP is almost as far, and would require starting very early. It wouldn't be bad to do that, but would be a big change, and would probably have to take time from something else.
"I'm going to sue you later. Please collect evidence for me."
Christian Persch replied No, which has made people angry. rachelbythebay also replied No and made people angry, but provided background to explain it. Although the circumstances seem different on the surface, I found it to be an instructive narrative.
By the way. Ubuntu was using transparent background by default [1].

So it’s fair to say that at bare minimum tens of thousands of people were using this code path.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=692609#c2
It's kind of ironic that a project with a non-transparent development process decides to remove transparency features in this manner.
I think he forgot to mention that you need to try the freelancing route when you have saved some $$$ buffer, for me it was about a year worth of free falling.

It is going to be bumpy and you need to have the peace of mind to focus on the present.

Moving to a foreign country to save money could be a good idea, but only if you would like to live abroad. If you do it only for the money your life will be miserable. Also the cost of leaving your local network behind might be very high
I use zsh on my low-spec netbook and have not noticed slow startup times for my shell.
That said, I do have a minimalist setup.

FreeBSD
DWM
dmenu
Blog MMO - Make Money Online. Some Advantages of Earning Money Online
> poll and select

That sounds like it's basically the same thing as Windows (GetMessage or MsgWaitForMultipleObjectsEx anyone?)... only that now you don't have the ability to use SendMessage, and need to rely exclusively on PostMessage instead.

Is that correct?
I don't think that they are just marginally better.

You are taking for granted that most people are coming from a mouse-oriented workflow.

Switching to a keyboard oriented workflow is a very big step.

hjkl accomplishes the task of training you to keep your hands on the keyboard. Once you've learned that, you can move to more advanced motions.
Isn't Microsoft's trying to build something similar with Azure? It'd be best described as an 'operating system for the cloud'.
For me my fave scene is Chris Morris and his fondness for Teams.

http://www.youtube.com/watch?v=pGFGD5pj03M

"Well it's just not working out"

---

I once sent this link round our tech department after a team motivation email from management, it helped me hold on to my sanity.
If you enjoyed this article, I strongly recommend the author's book (mentioned at the end - Spillover, by David Quammen). I am about half way through and finding it very interesting.
Oh I hate incompetent developers who play political game. It seems that's what they are good at.
drove Tesla, it is very nice and nifty. I also liked very much NeXT cube. IMO this is going to be a stepping stone to next wave of car designs from other Car Companies.

What bugs me is still unresolved issue of battery disposal dismal performance of the car in cold weather. I think this is a very nice leg up to turning car industry and making it innovate perhaps looking for a better all around technology. I hope that what tesla will do instead of providing a nice "copy" for everyone to parrot.

my 2c
..and now I can think of several good ways to implement something, weight up the pros and cons, discuss them with another experienced colleague, and then pick the best one..

In my late teens/early twenties, I just implemented the first thing that I could think of.

Back then it was much easier.

Actually, I have noticed that other developers around my age still think like I did when I was in my twenties. Maybe it's because I've been coding since I was 10 (22 years!) and full time since I was 17, and most came in after university?
Transform Events into Powerful Content Marketing
I don't agree with his suggestion, but it wouldn't require a change to the parser. You can already pull that off using metaclasses. Something like this (untested):

class EnumBodyDict(dict):
def __init__(self, *a, **kw):
self._keys_accessed = []
dict.__init__(self, *a, **kw)

def __getitem__(self, key):
self._keys_accessed.push(key)
return dict.__getitem__(self, *a, **kw)

class EnumMeta(type):
@classmethod
def __prepare__(metacls, name, bases):
return EnumBodyDict()

def __new__(cls, name, bases, classdict):
next_enum_value = max(classdict.values()) + 1

for name in classdict._keys_accessed:
if name not in classdict:
classdict[name] = next_enum_value
next_enum_value += 1

return type.__new__(cls, name, bases, classdict)

class Enum(object, metaclass=EnumMeta):
# proposed enum implementation here
Just wondering, where do you get static hosting for $3 a year?
Until there is a huge leap forward in battery technology, or until cars are powered on some alternative energy source that is energy-positive, Tesla will never be anything more than a boutique car company whose customers consist of rich people looking to get noticed.
| First of all, there's _NET_WM_OPACITY which is
| handled by the compositor window manager, and that's
| the replacement workaround suggested, but some
| think it's not appropriate enough. Fine.

This is the part that I don't understand. The whole point of 'terminal transparency' is to make the background transparent while leaving the text opaque. This 'workaround' makes everything transparent, which defeats the purpose of leaving the text readable.

I don't personally use terminal transparency, but it does not seem logical that someone could see _NET_WM_OPACITY as a replacement for this. This seems like a really weak (and poorly thought out) attempt to 'throw a bone' to the people that want the feature that's being removed.

Sure, we're removing the NY strip steak from our menu,
but there's always the hamburger, that has beef in it
too. You can even add steaksauce to the burger!
Your blog posts need to actually say something. I've read 4HWW, nothing you've written has anything new to say about the subject of lifestyle design, even though his book came out 5 years ago.

But it could have. The main problem I've found in doing this global arbitrage thing is that freelancing is actually hard to do remotely. I mean, you could go on eLance and Mechanical Turk and do boring-ass work for annoying clients for pennies, those types of gigs are easy to get and do remotely. But to do actual serious work that way?

There's plenty to discuss on this topic, but you managed to avoid everything that's interesting about lifestyle design and then promise only the most uninteresting content later. "How to start freelancing and get paying customers" is not a worthy HN post. Most of us, if we freelance, have already been doing it for awhile.

You need to decide who you're writing your blog for. I wouldn't necessarily choose the HN audience, you might be better off serving the legions of kids just out of college who want something better than the choices they have in front of them. If you're going to target that audience, then target them, don't write generally and definitely don't self-submit to HN just to get eyeballs.

If you want to target us, then you'll need to bring a bit more substance to the table.
Why Wikipedia's Millionth Russian Page Is Worth Celebrating
Dear College Grads, Here's Why I Won't Hire You
"only real achievement is not doing anything new". That sounds like an excellent endorsement for a new Python language feature. Leave the crazy syntax innovation for hipster languages with unreadable, poorly thought out features. I've got work to do in Python.
I never got python's lack of built in enum syntax. I get not wanting to add unnecessary keywords, but unless you're doing something like Scheme or Smalltalk where you're going for almost no syntax at all, you would think it would pay off to put in keywords for things that literally occur in every program. I feel like I should just be able to write this:

enum Color: red, green, blue

Right now enumerations are a mess. It seems like every project does them slightly differently, and the new enum library just adds a new way to do them slightly differently. That's like the opposite of PEP 8.
I think these supercharging stations are sad. I get annoyed at the 5 - 10 minutes that it takes to fill up my gas tank. 30 minutes to fill up would be excruciating. I remember seeing videos a few years ago where they wanted to have a standard for robotic drive throughs that automatically swapped out a cars low battery for a fully charged one. You could have a fresh battery in less than 5 minutes without getting out of the car. Your old batter would get charged and end up in someone else's car later. Why is that not obviously the best solution here?
It’s possible he’s not hellbanned, and I didn’t mean to imply that the latest comment triggered it. An earlier comment from 5 days a go led me to believe he is: https://news.ycombinator.com/item?id=5660848
I am sympathetic because PyPy is very good and is improving fast. but...

That doesn't change how the PyPy project tends to represent itself, which almost always comes across as something like "6x speedup for everything (excluding JIT warmup)". If you want everyone to adopt PyPy instead of CPython then it is part of your job to find the cases where PyPy is not actually faster rather than saying it is the user's fault. And it is not your job to select only benchmarks which tell the story you want.

If the difference between interpreters is nuanced then that nuance should be expressed so that people can make intelligent decisions rather than dismissing one or another interpreter as "slow".
It's a shame that his site is not updated more often nowadays. :(
A word of advice: Don't play real russian roulette, as there is no "panic mode".
alert(Math.floor(Math.random()*5)<1?"Boom!":"Click!");
:)

Long-time emacs user here ... I was trying to explain the context of the quote. I used "The claim here" to avoid making the statement myself and simply explain the comparison.
Batteries degrade overtime so consumers wouldn't want to swap out their battery for one with unknown usage.
There is a contradiction in your post, and in this story:.

The developer in this case is part of a self appointed core team who have the keys to infrastructure bought with other peoples donations.

He has removed functionality written by someone else.

In neither case does this "it's my ball, don't tell me how to play with it" thing apply.

The wider problem-

Zooming out from this specific case, from open source projects to standards organizations, unelected cabals have a great deal of influence over what happens in technology.

Why is it important? Try this scenario - What if a key player at Mozilla (who got the position because his company bought them servers) decided to delete FTP support. Would that be okay?

Sure, we could fork Mozilla, add FTP back in. But if our fork didn't get much adoption, then it wouldn't make it into linux distributions, wouldn't have the manpower to merge in bugfixes from the mainline. It would fizzle, Chrome would drop it, then IE, and FTP would be gone from the world.

So these people do have power that the ability to fork doesn't nullify.

The community gives them power and resources (especially in the case of large projects where the project lead wrote less than 1% of the code). Can you really say they shouldn't be held to account for how they use them?
I guess you're right, but I'm trying to build this entire blog step-by-step, with "intro" posts like these as a prelude.
I switched back from zsh to bash, and I miss it terribly. Problem is, I need to run both virtualenv and rbenv, and they're both designed for bash, and don't work properly with my zsh for some reason.
Behat syntax highlighting for Sublime Text 2
Because 99% of their users want something like Word as their editor. Try as you might, but you can't get all of them—not even close—to use Markdown to format documents when they're used to highlight, Bold button, voila, it's bold. Evernote is designed for normals, and rightfully so.
Yep- Thats absolutely the way this should be. Its likely because of a liability issue- The cost of the batteries is so high, there is a real risk of someone swapping in a dead/fake/old one and then tesla accruing the huge loss of a potentially new battery ( 25k ? )

I think the best solution is the 'pre charged' liquid fillup-

http://www.laptopsforlessblog.com/batteries/cambridge-crude-...

http://www.greenbang.com/a-new-way-to-charge-electric-cars-f...
She sells 'zed' shells by the sea shore?

Oh, wait. Right. Lost in pronunciation. :P
He died...
tell application "Finder"
empty the trash
end tell
Where does your traffic *really* come from?
Elon hinted an upcoming announcement that will make refueling a Tesla car as fast as a gasoline one. It's probably along the lines of this.
You mean swapped "followed"?
Combining this with the 1 in 600 statistic of the grandparent comment, it seems like ~2000-3000 people played Russian Roulette last year. To me, that's even more astounding than the number of deaths -- although the number of deaths is certainly more tragic.