skysight-inc/HackerNews huggingface dataset:
This argument is such an annoying fallacy. People who use Google's services are Google's "customers" in the same way people who watch television are the network's "customers". You may not be the direct source of income, but if they lose all the "non-customers" that are using their services, they're going to lose all of their advertisers, which is their direct source of income. The audience is a crucial component in a business model that depends on advertisement.

Even if it wasn't, Google opens itself to criticism and review whether their service is free or not. We definitely shouldn't temper our ideas or give Google a pass because "it's free"; that might excuse some advanced features, but it definitely doesn't extend into basics like contact exporting. That's a fundamental, and something that many have blasted Facebook, also ostensibly a "free" service, for not supporting well.

Google is making money off of Gmail. If they weren't making money off of Gmail, they would have discontinued the service a long time ago. Even if the nominal costs exceed the direct profits gained from Google Apps licenses and the display of AdWords, etc., which I tend to doubt, the indirect benefits are obviously valuable.

Should we all feel a great gratitude to the for-profit corporation Google for pursuing their best interest? Certainly we all appreciate the free services, but Google is no charity and expecting an altruistic, anything-goes attitude to their products is silly. They are a serious company making serious money and competing in a serious space, there's no need to make up excuses for them, especially naive ones like, "Well it's free anyway so you shouldn't expect anything out of it".
>Your header guard is bad (but not horribly so). Identifiers with two underscores at the beginning are reserved in the C90 standard (as are identifiers with one underscore followed by an upper case letter).

That's not actually the header guard that pops out when I put them in (as I do so automatically using vim code similar to that described below), however you are correct that you have a chance to clash with compiler dependent info macros (such as __LINE__) if you use a double underscore before a header guard.

I'm going to see if I can edit the post for those who don't see this exchange below.

http://yvan.seth.id.au/Entries/Technology/Code/Vim_Header_Gu...

I was trying to simplify yet avoid the UTIL_H clash problem and made an error there.
Or just open it in incognito mode.
Are Parents Just Saying No to Marijuana Legalization?
This is a fair point. But surely you'll agree that the free and $10-per-month users vastly outnumber the corporate and Google Apps users. And I'd bet that the OP isn't one of those corporate customers (he's now edited his post to clarify).

In any case, we aren't really arguing about anything relevant to the discussion at hand.

I happen to think that the original comment was rather trollish given that he can still export his girlfriend's contact information from gmail. He just needs to click two more times now. I think the upvotes my comment got are reflective of a similar feeling about the whole thread from other HNers.
Thanks. I was trying to do the methods explained on daring fireball about markdown, but they weren't working so I just went C99 style.
The first answer is interesting but I don't understand step 10. Imperative is a model with state and deterministic sequence and Haskell constructs like state and IO monads form imperative DSLs (with some typing burden/advantages). I don't see why the strategy pattern is particularly interesting here (but I see why imperative structures like mutable arrays and associative arrays are interesting). I don't see either why I would especially forget all those design patterns outside of imperative code : for instance the presentation of Connal Elliot "Tangible Functionnal Programming" is a great exemple of the use a kind of MVC pattern precisely to avoid using imperative constructs.

For me at least, the balance lies more in the use of state (easy in python) or the cost of abstraction (no inling and TCO).
Well, I want an API where I can get all my Gmail messages with their metadata, all formatted as Clojure maps. Is Google imposing restrictions on me because nobody has bothered implementing that? Not really. It's analogous.

As long as Google provides ways to get all your data that are free, public, easy to parse, and well-documented, they aren't imposing restrictions. If they add extra APIs or additional formats on top of that, it's gravy. Remember, the point of having these exports is to be able to get your data out and switch from service to service, so that the market stays competitive. It's not so that you have a fully-automated Google API for your profile that other programs can interact with.
They Fight Like Soldiers, They Die Like Children, By Romeo Dallaire
What? You opened a bookstore in Vietnam too? lol.
Little-known fact about Eshell: not only can you implement your prompt functions and highlighting in lisp, you can also (a) pipe output directly to buffers and (b) invoke M-x commands from the shell:

a) $ ifconfig > #<buffer interfaces>

b) find-file README.txt # same as doing C-x C-f
In Facebook, email adresses are not considered your information and thus are not exportable AFAIK.
You have to think about what invariants the compiler is capable of recognizing in your code, and can prove are valid: "If I guarantee X, it can do optimization Y behind the curtain, but will still run as if things were compiled normally."

For example, if all variables are immutable by default, they can be inlined at point of use, skipping a lookup. Functions whose arguments are all known can potentially be run once at compile time (partial evaluation). Collections can potentially be handled in parallel if each cell's processing is independent. Etc. This sort of thing is why languages with strong invariants (such as Haskell or Erlang) can do really interesting optimizations.

On the other hand, if the language semantics require that everything is polymorphic and has to be looked up at runtime, that adds extra overhead, and it's not always provable what those values will be at compile-time. A JIT-compiler can compile at runtime, when the information is available, but since they're usually not able to pause execution for long, they can't do extensive analysis. JIT compilers can also make optimizations not statically available because they can revert to the non JIT'd code and recompile differently, whereas static compilation is permanent. (Method lookups can also be cached, of course.)

Incidentally, normal Lua (i.e., not LuaJIT)'s compiler doesn't do much analysis - it's tuned for vacuuming up huge dumps of structured data, rather than trying to generate optimal bytecode. Lua usually still runs significantly faster than Python or Javascript, but that has more to do with the the clean language semantics and high-quality implementation.

Also, a good comment by Mike Pall (the LuaJIT implementer): http://www.reddit.com/r/programming/comments/badl2/luajit_2_...
CAPTCHA (n.) - the outsourced laziness of your development team to your customers, in order to stunt conversion rates and signups so you don't have to be bothered to sanitize your own user lists.
My own method is to tell the boss when he or she is wrong and don't back down (although if the bosses want to ignore or overrule my objections that's their perogative).

That's my way of saying "Hey I think you're a smart self-confident individual who is more interested in discovering the truth than feeling a tongue snaking up your backside."

A good boss should be flattered by that stance.
Hotmail security improves with full-session HTTPS encryption
The best advice I can give to people looking for a "cool" job in the valley is to simply move there and get to know people. If they aren't willing to take that admittedly risky step (almost a rite of passage) then the valley might not be the best fit for them. From what everything on this thread is saying, this is a great time to do it.
Haskell "gets it right" because you can't write an applicative hash table with the same computational complexity as a mutable one. Haskell's option is either "ordinary balanced binary trees" or "hash table in the IO monad".
That's not what I said.

With Facebook, you delegate authority to manage email address to YOUR CONTACTS (not Facebook).

In Google or any other address book, I can go into my friend Ted's contact and change his email address if I want to.

In Facebook, I can't change Ted's email address. Only Ted can change it.

To me, this is a MAJOR distinction.
I guess the biggest problems will be the legal framework and the power of unions. Technically flying a plane should be easier for a computer than driving a car.
Amusing - but a car with 2 passengers going at a conservative 30MPH is very different to a plane flying 9KM over the ground at 567MPH.

You're right: building an automatic car is much harder. It's counterintuitive, but speed or altitude are irrelevant if the problem space is sufficiently simple. Additionally, risk doesn't scale linearly. If a plane crashes at 800km/h, all people on board will die; if a car crashes at 130km/h, you'll see a very similar result.
If you are on Windows, another alternative is running PowerShell as an interactive shell within Emacs:

http://blogs.msdn.com/b/dotnetinterop/archive/2008/04/10/run...
Indeed. The 'they don't know where to go, as they can't get to Google Maps' also doesn't ring true - if the police are arriving, I suggest most people would move away from the police, whether they can get to Google maps or not.
At the end of the day it was not google who is making this choice but Facebook. There is still a functioning API that would allow Facebook to continue allowing users to import their contacts. The problem is that they are no longer in compliance with the usage terms of this API. If it is such a problem for the customer all Facebook needs to do is move into compliance with the usage terms of this API (by allowing users to export their data from facebook) and then they can begin using the API again.
All in all I agree with Google's modification to the API usage license and really think that the ball is in Facebook's court.
Inside the mind of Albert Gonzalez
I'd say Facebook is opportunistic more than anything. They know how badly people can't sit still or be alone and they simply profit off that. Like Tocqueville said 'people get the government they deserve.' This is what happens when people don't think about how closely freedom, privacy, and selfhood are linked. There is no such thing as a free lunch.
Maciej Ceglowski had a similar, if less grandiose, site called Wrong Tomorrow, but it looks like it's down:

http://wrongtomorrow.com/

I don't know if the site is only temporarily down, or if it's been abandoned, but it's a shame if the latter. The idea behind Wrong Tomorrow was chiefly to hold pundits accountable for their frequently bad predictions. You can read his site announcement, where he explicitly mentions sites like Long Bets and how Wrong Tomorrow differs from them:

http://idlewords.com/2009/04/wrong_tomorrow.htm
I think it depends on your goals. Some ideas:

If you want to work for a startup then you'd probably need to learn open source tools (though startups use the MS stack, too). You might also find that a detour into OSS helps you bring fresh ideas back to your MS work.

If you need a job and/or like working with MS stuff, then stick with that (and be shamed on HN ;).

If you want to build a product, then it doesn't really matter--it's more important to bring something successfully to market.
As I understand it, that's not quite true: You write conforming Java code and compile that to JVM bytecode. That bytecode is then translated into Dalvik VM bytecode. Java (the language and the compiler) is still an integral part of the toolchain, there's just no Java-the-VM on the target device.

Google could, perhaps should, have gone for a Go -> Dalvik compiler and avoided all this.
Odds on the police would use "kettle" tactics, so there would be nowhere to go away from them.

It's not true, it hasn't happened.

Yet.
The top answer seems to be for the question "How do I learn to program Python using only the functional style". Which is FAR from being a Python Guru. A Guru knows how to use Python for many styles and to mix them for optimal effect.

#11 "balance" is laughable based on the preceding ten.

Some things missing include:

* properties (glaringly so)
* slots
* meta classes
* dynamic code generation / data as code
* emulating various types and the rest of __methods__
* know thy standard lib
* distribution setup tools, et al
* documentation epydoc, sphinx, docutils, et al
* profiling and performance

Also from the top answer.

"... Python class. Claim it could be "better" implemented as a dictionary plus some functions"

Um, that is almost all a Python Class is.
This makes more sense for individuals than companies. Startup get bought? Give 10% of your payout to the FOSS that helped you get there.
Awesome. There are many fact that remain little known in eshell, it seems.
This sounds to me like arguing over whether BSD is more free than GPL. Google made it difficult (but still not impossible) for other services to gain access to your contacts data if those services are unwilling to reciprocate. The goal of this is obviously to incentivize companies to allow you to export your data from them (which increases competition and is better for the consumer). There is still nothing stopping you from exporting your contacts to a CSV and importing them elsewhere.
It may be starting, but with at about 20 years in the industry, I would say that we have reached what has been about the norm. With the greater economy in the state it is in though, it is almost certain to bubble again. Development or Nursing are about the only two decent prospects of drawing a decent salary now without a decade of education investment. It is only a matter of time until people smell blood again and start running this way. Which will mean a return to the worse than bad developers of the .com boom. We are a few years out if it happens though as it takes some time to go from, I know how to power a computer on to slapping together some code.
Because Gmail can't import Facebook contacts. Google is trying to use it's influence to encourage Facebook to improve it's data portability while still not locking users in.

Seems like a good idea to me.
Solving a fun little geometry problem in C# and F#
There is a positive effect from the change: more people will be aware of Facebook's practices with respect to their contact data. I think Google is betting that this positive effect outweighs the negative effects.
Sigh. Will Basic never die?

The problem with Objective-<anything> is that the language Objective-C(++) is so integrated with the Cocoa/Cocoa Touch class libraries that it's hard to use other languages and have the same effectiveness.

MacRuby, for example, had to extend their syntax to use the Smalltalk-like "inter-fix" method invocations normally provided by Objective-C.

PyObjC is really clunky in that it basically gives up the syntax interleaving and leaves you with obj.methodWithArg_andAnotherArg_(arg1, arg2), e.g., which is pretty ugly.

MacRuby seems like the only one of these projects to ever get (or maybe to get future) escape velocity, given how the Ruby implementation is completely based on/merged into the the Cocoa runtimes. Exceedingly clever, if you like Ruby. ;-)
git <TAB> completes filenames, but so does bash in terminal. I don't have any fancy bash completion dingleberries installed. (And yes, my beard is grey too.)

The alias completion does appear broken, as you demonstrated.
Language like this makes me think they don't understand:

"essentially locking up your contact data about your friends"

Note the first 'your' in that sentence: From Google's P.O.V., the email address of your friend is your data. From Facebook's P.O.V, the email address of your friend is not your data -- it's the friend's data.
Does a language like APL/J really offer something more than other matrix/math oriented languages (Matlab comes to mind)?

Other than extreme conciseness (unreadable at times).
MysTwt - Tweet secretly (Anonymous Tweets)
You can expose your contact info to third parties: just connect with the app. The only thing you can't do is expose your friends contact info to third party apps.
Possible explanation: When people try to overthink certain tasks (or feel a lack of confidence in their ability to perform), they perform worse at them. Alcohol may have the effect of inhibiting this factor, more than enough to compensate for slightly degraded muscle control.
I grant you the distinction. Now can you please explain why it's important and how Google failing to understand it is the cause of all this.
I like Linode, but they are wearing a little thin for me.

In general, uptimes have been excellent but the physical server hosting one of our VPSs had three emergency reboots in a little over a month before they replaced the hardware.
Perhaps they'd already planned to do a replacement after th e second incident but I had no way of knowing.

Which brings me to my second beef, which is that they don't share much when closing a ticket. Their explanations are pretty prefunctory. In some cases, like transient network issues I generally can't tell if they've investigated the problem and done something about it or if the first-tier tech just takes a quick look sees it's working now, and punts it back to me to let them know if there are more problems.

Similarly, after a major screwup that took down most of the virtual servers they host (including the ones that hosted their own website and web-based management tool), all we got was a brief explanation of what had gone wrong and a status blog hosted on someone elses infrastructure.

What I didn't get was a sense of how they were going to guard against anything similar happening again.

I'm sticking with them for now, but I'm also feeling like the effort I've put into automating the configuration of our application and all it's dependencies has been time well spent. I can boot a new infrastructure on another service in an hour or so and migrate to it with minimal downtime.
Not only does it sound like depression, but it's curiously timed depression--we're approaching the winter months and daylight saving time just ended. Which suggests seasonal affective disorder.
Well this is a problem with the system. Sure, in the short term you are billing by the hour, but in the long term you are really getting paid for results.

Just try going a few weeks sitting at your desk without getting any work done if you don't believe me.

Recently on HN, I read a comment suggesting to bill by the week instead of the hour. An hour is too short of a time period to actually produce anything meaningful but you can get a lot done in a week. I think this method of billing would work much better. I haven't used it yet but I will propose it for my next contract.
> But the difference between 56 seconds to process some data and 0.8 seconds? That matters.

This must be a purely theoretical argument for you, because you wouldn't be arguing this point if you were consistently analyzing data in Python and C/C++.

I routinely analyze gigabytes of aggregated data in both Python and C++, and have occasionally rewritten the Python in C++ to be faster (as an aside, for basic processing it's surprising how simple the translation is). I routinely get between 10x and 100x improvement in computation speed, and often see similar reductions in memory used.

Python is not slower than C/C++ by a few microseconds; it's slower for most operations by two or more orders of magnitude. Whether you have a dictionary implemented by a hash table or by a balanced binary tree is not going to have any significant impact on your analysis speed.
I did this. If you are a single, straight guy, NYC is indeed better for dating. I didn't find dating in San Francisco to be completely horrible, just kinda weird. For example, in SF the women I would meet were very averse to 1-on-1 dating and everything had to be done as part of a group outing. On the other hand, I've gone on a lot of dates in NYC, but have not been successful in locating a crew of friends to hang out with. I guess one of the beneficial side-effects of "group dating" was that I ended up meeting a bunch of bros.

In San Francisco, he numbers were definitely not in favor of the male. I remember going into any bar in SF and it would be groups of say, 6 guys, sitting with 1 woman. Certain bars, like Toronado, did not have any women in them, ever. In NYC I've actually gone into a bar during happy hour and been the only male in there... an experience I've never had before in my life.
All Form Solutions Are Not Created Equal
A few years ago, I invested in a small private company. I could call the CEO and he could tell me all his problems and prospects. I couldn't trade the stock very easily but I knew how the company was doing.

Then it went public. Suddenly the access to the CEO ended and the only information I got was from a 10Q. The company changed strategy to one that I didn't like, and I never got a good explanation.

Ironic that public = opaque, while private = transparent.

Our regulations are too much aimed at promoting liquidity and not at promoting correct valuations. We would be better off if investors were paid to make their horses run faster rather than switching horses in mid-race all the time. But they can't do this without real transparency.
I don't care for this, it reminds me of slapping an "e-" prefix on something just to indicate that it's now somehow "internet ready".

More to the point, people acting like idiots is nothing new, but I think we'd all still be shocked if this actually happened, just like we'd be shocked if any kind of gathering resulted in a riot and 23 people dead.
"Venture Capitalists are used to taking risks - the argument over java is extremely simple - "if you use the same technology as everybody else you will get the same result""

"Venture capitalists don't back technologies they back people - the old addage is "give me a grade 1 person with a grade 2 idea rather than a grade 2 person with a grade 1 idea""
Where are people applying such that their interviews are riddled with trick questions?

The last four job interviews I've landed really just wanted to know if I could do the job and as such, the questions were very straight forward and didn't test for anything that wasn't actually asked in the question.

INTERVIEWER: What is your experience with source control systems?

ME: I use Git for my personal projects and I have used Subversion and Perforce on professional projects in the past.

It's not as if they are trying to tease out how active my Github account is. They just want to know if there is going to be additional ramp-up time if I were to be hired.
Motivation tool they may not be, but they do make the competition hiring you away harder.
There's some great stuff in here about selling new technology. And this:

Also winning and loosing is often a purely temporary thing - often we won battles - but it turned out badly. And lost battles which then turned out well. Erlang was banned years ago (a loss) but a few years on the ban caused it to spread and led to widespread use outside Ericsson.
Worlds best violinist played in the subway. How many people stopped to listen?
Why Conventional Education Is Failing Us - A Valedictorian Speaks Out
The Effect Printing Has on iOS
AirPrint Lives On - Not Dead Yet