skysight-inc/HackerNews huggingface dataset:
I just finished reading Fatal System Error by Joseph Menn (given away at Gartner's Security and Risk Management Summit) that brought this topic up specifically. Good book if you want to get scared about going online ever again. :/

The major problem with an Internet ID (from a security perspective) is that the bad guys will still figure out how to spoof it and people will be lulled into more complacency, since the government has solved the problem.

I was surprised at the conference how easy it is for people to get around one-time passwords, multi-factor authentication and other "really secure" solutions.

The problem is immense and is going to require immense investment to fix.
I have made the same observation and as someone who started with C++, I think it makes more sense that

int* i;

is an int pointer named i.

int *i;

just looks strange.. an int named pointer i umm?

Besides, declaring only one variable per line seems less cluttered to me, so I never get the

int* a, b;

confusion.
Great idea, Oxy, thanks for sharing this too.
I like the idea of socializing this process as well as working on it daily.
~Henry
No, http://culturedcode.com looks more OSX-ish. Looks like an Apple produce != fantastic design. If you want my honest opinion, both seem to be hawking products that really don't do anything new, wrapped in a Web 2.0 facade of drop shadows and shiny menu buttons. That being said, I think Gigayo's design is mostly fine, although I question what they're selling.
While it's true that "last expression in a function" is not technically ambiguous, because of python's statement/expression distinction leaving off the return can lead to unclear code.

For example, if there's a function composed entirely of print statements, the last expression evaluated will be the expression in the last print statement executed. But, that means you have to know that 'print' is a statement and not an expression, and that the right-hand side of the print statement is in fact an expression.

In ruby, actions like prints and assignments are side-effects and always evaluated as expressions. So if puts is the last expression in a function you'll get the return value of puts (which is usually nil I believe). That's pretty simple.
Haha, totally thought of this one already. Also, it may be a great way to learn some new platforms/technologies.
~Henry
It is cold. It's not any more dangerous than anywhere else; it does have neighborhoods that aren't great, but they aren't like the worst parts of LA.

It's not horribly post-industrial anymore, although there is a significant contingent of mildly hickish people left over.
"I could charge less than people that need to pay S.F. or New York rents."

Charging less is attractive for commodities. When you are buying toothpaste or cola, there is not that much difference from one brand to the next, so having the lower price can help make the sale.

For tech work, the difference in skill among programmers can be an order of magnitude. Also, there is some information asymmetry--it is hard to know which programmers are good. So your rate is one indicator that people use to evaluate your skill level. If you are a highly skilled programmer but charge low, you may be sending a signal that you are a novice programmer.

Furthermore, if you charge too low you may attract clients from hell. These are clients that don't know much about programming and think that it's easier than it is (which is why they are looking for below market rates).

So don't charge less in order to attract clients. Rather, demonstrate (show specific evidence of) your superior skill and then charge a competitive market rate.

Also note that it might be harder to find clients if you move away from a large urban area.
Can you elaborate on this? So it isn't being done by just modifying the DOM with Javascript? Why the hidden iframe?
...unless you like winter. I moved to New England a few years ago, and we have three excellent seasons here: summer, fall, and winter. There is no spring, at least by any reasonable definition of spring by anybody who has lived anywhere where there is spring. But "sea and ski" is what it's about here, and, it turns out, I'm ok with that.
Distraction-Free GMail-ing
An easier Ruby solution would be:

("letters in this sentence" + "and this one").chars.sort.reverse
> it makes things like copying & pasting code from web pages etc far more difficult

This. I'm convinced half the reason Ruby is displacing Python is that it's actually practical to talk about Ruby code in forums without ridiculous little-known workarounds like pastebins.
protip: the next time you need to quickly find the type of a variable, insert a trace like:

import pdb;pdb.set_trace()

then run the program, and you'll get an interactive prompt and you can just look at everything in that state.

dir( myBuggyVariable)
Google Moves Encrypted Search to New Domain
Multi-methods are not overloaded functions (in the C++ sense). You are correct that overloaded function calls are resolved at compile-time while multi-method calls are resolved at runtime, but if you want to make a C++ analogy, you'd better compare them to virtual methods. Multi-methods work almost like virtual methods, with two exceptions:

1) multi-methods are declared outside the class definitions; it is important since it allows you to extend a class without directly modifying its definition or implementation.

2) virtual functions do dispatch by one argument (`this` in C++) while multi-methods could perform dispatch by an arbitrary number of arguments.

That said, I don't like this implementation that much since it does not respect class inheritance. Suppose you defined a MultiMethod with two registered implementations, for class A and class B, where B is inherited from A. Then the result of the multi-method call with an object of type B is undefined. A proper multi-method would call the most specific implementation in this case.
This article actually does a good job of explaining both sides of these 'logical fallacies' including why they aren't always invalid. It's the best job I've seen so far of refuting the 'Fallacy Fallacy'. In particular it points out how the 'burden of proof' plays a big part in determining the validity of some arguments.
Defamation suit anyone?
It is cold in the winter, but it's also hot in the spring/summer.

It is post industrial in the sense that the economy has moved on from industrial type stuff like steel manufacturing -- the economy is very tech/service oriented, with lots of computer/tech/robotics startups and so on, as well as a large health care sector (University of Pittsburgh Medical Center runs their own health insurance which covers a significant portion of the entire state of PA). It was one of the cities least hit by the housing crisis and the economic backlash from that.

As for dangerous -- there are some bad areas, like in every city, but for the most part it's very safe. Safer than any big city in CA for sure.
Or even easier:
ipython
>>> from django.http import *
>>> HttpRequest?? # prints out source code for HttpRequest
please make a blog post once you figure this out AND make it work
I don't believe the Linux vs windows server market share numbers.

My current company has about 40 linux servers and 3 windows. My previous company had 1 windows server to 5 linux. The one before that was a similar ratio.

I'm looking around online to see how IDC collected/calculated this data but
can't see anything that actually says. The only thing I can think of is if
they are taking commercial unixes like redhat and suse and comparing them
against windows. If that is the case these numbers are beyond worthless due to
the fact that most linuxs end up being centos, debian, ubuntu or other free
distros.
How so?

+-----------+
| +-+ |
| ^ | |
char *foo[10][20];
^ ^ | |
| +---+ |
+---------------+

* foo is

* an array of ten arrays of 20

* pointers to

* char
I read "scripting language" as a legitimate warning about tradeoffs that make it unsuitable for high-volume use, because the code is permitted to change so much runtime behavior that most known optimizations (and other kinds of static analysis!) are ruled out. For example, Twitter's Ruby to Scala migration made news, so there's value in being able to broadly say what's different between those kinds of languages.
Assuming you could convince everyone that this was a good idea and that anonymity/neutrality wouldn't be an issue, the federal government is the last group of people I'd trust designing this scheme to.
It seems that that would be a natural outgrowth of the adversarial system. If your goal is to persuade people and not to find the truth, then it is rational to use any ethical technique available to do so. A more inquisitorial system would largely be able to avoid this issue, but of course it creates issues of its own.
If you have a tethered laptop why not just use the webcam that most laptops have shipped with for years now?
Start a Hacker Cabin. Seriously.
Jobcamp.de
My partner and I saw this market opportunity a couple of months ago. For a first version we came up with 9 banner templates and instead of allowing the user to update the banners themselves we do it manually within 24 hours.

site: http://33banners.com/
blogpost: http://aflanagan.com/will-this-make-500-a-month/

From our experience I think your biggest challenge is going to be reaching potential customers.

Best of luck.
As said elsewhere: "Declaration follows use".

int *foo;

means "foo is a pointer to int". But that's explained different from how it's written. More clearly, you can say that "foo" is an int. Then, doing

int *foo;
foo = 50;

is obviously wrong because "foo" is not an int; however

int *foo;
*foo = 50;

is correct.

Similarly for arrays:

int *foo[50];

means "foo is an array of pointers to int", or "foo[5] is an int".

From there follows that & is the antithesis of , and they negate each other:

int *foo; //foo is a pointer to int.
&*foo; //the address of the contents of foo
foo; // same as above, but shorter.
Just a design opinion, condense the logo (in grey background) onto the full content area (in white background). This would help tighten up the page and move that start now button up. If you have Firebug installed, change the margins on the .container class to "-65px auto 0" to simulate the suggestion.
Anyone else read Johnny Ive quotes in a British accent, almost as if it's instinct?
I wonder if this affects the enforceability of the EULA?
It'll work, but at an extra $15 a month for an even more inconvenient way of FaceTime... I'll wait for the jailbreak. I want my iBlacklist back too.
My impression from this post (as someone more familiar with Java and Python but who has tried Ruby a bit) is that it's a complex, fast-moving ecosystem that's somewhat difficult to keep up with. Not a bad thing, but a bit daunting for people who don't do it full time. There are other fast-moving ecosystems that I already have to keep up with.

It likely has the side effect that that web searches will bring up a lot of obsolete articles.
Microsoft is a great company, I don't know why a lot of people dislike them. Look at their track record, look at the numbers they're impressive. Perhaps it's jealousy, who knows? Sure they have done several mistakes along the way ahem ie6... But you know what, at the end what matter is the profits. I don't know why people bash on them for their closed source technologies. They're here to make money, if they wanted to give away everything they would have been a charity not a business! You might as well go bash on coke, their ingredients are "closed source." In order for a taco truck to make money they got to sell their tacos, can't give them away now can they? In a nutshell all you who hate Microsoft, find a better reason to hate them. You can't say ie9, because it's beginning to look like it'll be an awesome browser for users and developers alike. End rant. Sorry if this is a little off topic. :)
They can bully their users and pirates for all I care. As long as they don't touch public domain/creative common/copyleft stuff that I produced.

As far as I am concerned, they should give away their users and the pirates to me if they hate people pirating their content so much.
Portland, Maine, is pretty amazing. I lived about 45 minutes north of Portland for a couple of years, and it was too isolated for my tastes, but Portland is a nice mix of cosmopolitan and inexpensive.
How can something so small crash? The total seed investment market is smaller than some hedge funds. That's the fun of it. Out of pretty much nothing, there is an opportunity for something huge.
Professionally I think you can leverage your knowledge and first world status better if you move to a place with people who speak better english (the Philippines/India/Malaysia) and with a larger outsourcing industry (the Philippines/India/Malaysia). Unless you by native speaker mean native Vietnamese speaker, that could be an awesome advantage -- wages are for workers in the outsourcing industry is, among other things, determined by english speaking ability. When it comes to getting first world salaries where you do contracting work is probably often irrelevant -- and could also be hard to tell (depending on need for communication making time differences or unstable internet connections problematic etc.). I have been wondering about the possibility of being a sort of salesman/manager/quality controller for contracting work with Filipinos doing the grunt work. (The Philippines and Malaysia does not tax foreign sourced income, wich could go a long way to offset a decrease in pre tax income.)
They might be even comparing licenses, which makes it even worse. If an enterprise uses Redhat, dollars to donuts they stage things on CentOS before they ever spend a dime. That wouldn't show up either.
The signup page looks good at least...
1. Very good idea, but the name should go like others have pointed out. Try making a name combining words like adbanner or bannermachine etc.

2. Take out the Lorum Ipsum and put some actual words in there. Suggest something using those words - those are valuable words/space which can be used to pull the user to use the product and you are wasting it.
Women are bailing out of IT
+1 for SoftLayer. We've been using them for about 3 years now and we've been very happy with them.
Ask HN: Best book(s) to learn about the basics of economics?
Given the current climate, I feel a little behind when it comes to broader economic themes. Anyone have any recommendations for texts that can help non-economists grok the subject?
This begins to remind me of a Mike Royko column written in 1989, in which he answers criticism of Chicago by not one but two SF columnists: http://news.google.com/newspapers?nid=1876&dat=19891007&...

I do like Chicago (if one must be in cities, and apparently it is a requirement). I say this as a transplant from growing up 6 miles outside of a town of 6000. I would think that most Chicagoans think that would suck, but then most people would.

I do like San Francisco as well. And Portland.

The size of Chicago is missed by many, in particular, the size of the tech community. At one point, I tallied over 100 consulting (or more properly contracting) firms servicing the likes of Motorola, Allstate, Sears, Standard Oil, and the like. If you want to measure sophistication, there are more jobs in certain areas of the financial sector than in any other city. There is likely a broader range of technical talent as well.

But I just don't get this park district thing.
If the goal is not take your hands off the keyboard, why not save, then Alt-TAB once to get to Firefox, then Cntrl-R to refresh? This works with any editor (including my favorite, nvi).
I still write most of my code in C. Could never really warm to C++ and Java was fun in the early days, but the sheer volume of API's, J2EE, et al eventually crushed my spirit.

It took me several goes to become friendly with Python. I find it excellent to try out algorithms. If I don't know how something is going to be best implemented, then writing a bunch of classes in Python and tweaking attributes and methods until the algorithm is as simple as can be helps me get there very fast.
Beyond being convicted of abusing their monopoly, Microsoft has a long history of pulling dirty tricks on its competitors.

http://en.wikipedia.org/wiki/United_States_v._Microsoft

http://grokdoc.net/index.php/Dirty_Tricks_history

http://www.technologyevangelist.com/2007/02/microsoft_dirty_...
I was thinking the same thing; Apache has double the marketshare on the web, and all the computationally intensive plays that I know of use Linux or BSD clusters on the backend. Google alone has somewhere over a million boxes, Amazon isn't exactly tiny, neither is Facebook, and most of the banks that I know of are still Big Iron on the backend.
Users working over the same database crash it. It seems that when users send requests in the same time, the DB crash (it can be fixed, but that's annoying). It doesn't always happen, but when you have more than 10 users, this increases the odds.

So the short term solution was Terminal Server. It worked great and speed was fine, until in some days something happened in the Windows Server that slowed it down (some kind of caching or somewhat), so the illiterate technician just said that Windows Server is bad.

We are now (Ok, I left) reckoning on an advanced/new Web or Desktop platform. They are aiming to finish a part in the software this year. Will see what they do ;)
I agree that the idea is secondary, as it usually changes. I'd really recommend you read Paul Graham's essay to understand his arguments that ideas are secondary, that co-founders matter a lot, and why you should/ should not start a startup.

As a getting started, you may found useful the summary I've crafted a while ago: http://metaphysicaldeveloper.wordpress.com/2010/04/30/scrapb...

After delving into these ideas, choosing the actual idea to pursue, I found that using swot (http://en.wikipedia.org/wiki/SWOT_analysis) analysis can be useful. Several questions from the application for YC are also useful (and can be categorized into Strengths, Weaknesses, Opportunities, and Threats) for fine graining: http://files.dropbox.com/u/2/app.html. Note that this application form is old, but the questions are still relevant.
>> Sure they have done several mistakes along the way ahem ie6

IE6 is not a mistake. It's old. It first come with Windows XP and Windows XP is 8 years old. At the time, IE6 was fine.
Except you aren't using sets, so you get duplicate characters.

I can just as easily write ("letters in this sentence" + "and this one").toSeq.sorted.reverse in scala. You could tag the end of your ruby statement with .uniq and you would be fine. Alternatively, you could wrap the above scala statement in TreeSet(). These solutions process things in a significantly different way than was done by the OP, though.
A well-written post, but how does this help your aunt who just wants to follow you in Facebook?
Real-Time Writing: the Evolution of the Online Article
Useless post
PG was very eloquent on his take as why this might not be such a great idea (from http://www.paulgraham.com/ideas.html): Actually, startup ideas are not million dollar ideas, and here's an experiment you can try to prove it: just try to sell one. Nothing evolves faster than markets. The fact that there's no market for startup ideas suggests there's no demand. Which means, in the narrow sense of the word, that startup ideas are worthless.
Why on earth would PyPy be included? If GIL-Removal, PyPy, pip and virtualenv being included is your "must have" list, you're going to be waiting long after everyone else has moved onward :)

For me, it's simply "I just need my dependencies" - which is a simple statement, but an incredibly hard problem.
Following the procedure as written:

+-------+
| +-+ |
| ^ | |
char *foo[10][20];
^ ^ | |
| +---+ |
-----------+

It mentions, in rule 1, handling tokens of the form [] or [X], but not multiple occurrences of these.

This is indeed rather nitpickish of me, but on the other hand, one thing that you at least need to know in that case is in what order you read the numbers - left-to-right, or right-to-left (is foo[10][20] a 10-array of 20-arrays or a 20-array of 10-arrays?). Not mentioning this leaves one (at least, it left me) with the impression that multiple occurrences were already handled by this rule as written, which is, as demonstrated, false.
This is coming this year, as far as I have been told.
"Origin of Wealth: Evolution, Complexity, and the Radical Remaking of Economics" is really great Hacker News-ish book about economics. It's the only non-technical book that gets into agent-based computational economics. There's some unfortunate business strategy waffle in the middle but otherwise it's fantastic.

Here's a review of it by the great Herb Gintis:
http://www.amazon.com/review/R26IO7AY7JHS8C/
Yep, this always bugs me too. When it came out it had quite a good rendering engine compared to most (all?) competitors.

The problem arose from Microsoft disbanding the IE team and not releasing a new version for so many years. It fell behind from age.
I've found that saving code, and refreshing the browser, then going back to code, then going back to the browser, is a terribly inefficient practice and horrible for flow. If you're finding yourself having to do this so often as to require a vim hack, you're doing something wrong.

Something like autotest for ruby projects, and cucumber / selenium etc should be making sure your code does what it is supposed to.
This is a Good Idea, but it doesn't help you understand other people's code if they don't follow it. Hence the need for a mnemonic rule.
Just as bad, if not worse, is the agreement that you're asked to do for purchasing via the iTMS on the iPhone.

I recently had to update my billing information and it asked that I re-agree to the EULA (on my iPhone itself). It was 92 'pages' long on the iPhone. Completely unreadable. I took a screen shot just to remind myself, but I thought it was completely absurd. I know there's a lot of lawyering just to make the iTMS happen, but 92 tiny pages is absurd, unneeded and not something a consumer can understand. Yet- I can lease an apartment in a simple 2 page contract (or less!). Why is a song more complex than a house? (I know the answer, but it still shouldn't be this way)
My first experience with Ubuntu
It depends what part of the process yor're referring to. IE6's initial development wasn't a mistake. But disbanding the IE specific development team, abandoning all platforms that weren't windows and not updating it for years and years were mistakes and all those things happened in the era of IE6
Interesting point: What was the first microcomputer software company? Microsoft.

But both these were third-generation copies: And who were we imitating when we did Microsoft Word? When we did Excel?
I remember hearing about a story from some large software company putting, "It you read this, call this number for $1,000". It took 6 months for anyone to call them about it. Probably completely anachronistic, but similar and potentially real.
Interesting that in 1994 6.1 billion made you the second richest man in the country. And that Microsoft's $25 billion market cap is compared with Kodak.
Thanks for the advice on the home page. Looks like I need to spend some time researching, and implementing, on conversion best practices.

Any must read pages for conversion or a/b advice?
$1500 a month or less is possible even in NY or SF. I'm doing it with a small shared apartment in Manhattan. (Roughly. If I ate out less I could push it down well below.)
Horrible for code, maybe. For doing design with CSS(/Sass/etc) though it's essential.

I do :w, Alt-Tab, Ctrl-R constantly when I'm doing design. I'm constantly testing little changes. This looks like it could be quite a useful little hack.
If you like static guarantees, you might want to look into the type systems of, say, Clean or Haskell.

Java is almost untyped by comparison. Languages like Ocaml and F# occupy a middle ground.