skysight-inc/HackerNews huggingface dataset:
I have a list I wrote up once about Python's problems. Some of these are more exotic than others. Most of them are kludgearoundable. A couple are fixed in Python 3. Some are simply design choices that are exactly different from my mental model of the world, and due to the TOOWTDI Python world, it is frustrating to work with them.

Some Things Wrong With Python

* Immutable strings[0]

* Everything a reference[1]

* Environment copied on loop entrance (implying assignments often break when done in loops)

* Lack of braces[2]

* Lack of enums[3]

* Standard debugger pdb reminds me of the first debuggers ( used on the PDP-1 and EDSAC) in its feature list.

* Exception-oriented design, which clutters code with "try/catches" everywhere.

* Exceptions aren't just exceptions, they are also overloaded to provide signals.

* Two forms of objects (old style vs. new-style)

* Object inheritance is pointer to parent. Metaprogramming becomes an exercise in hackery.

* Objects are actually dictionaries with some pointers behind the scenes.

* Duck typing will automagically cast certain things[4]

* As an interpreted language, code that is not tested can be assumed to be syntactically correct but in error (this is a horrible problem when testing for rare error conditions)[4.5]

* When Python is fast, it's because it's calling out to C.

* Python objects are gigantic. An empty string is 40 bytes, for example. This adds up.

* Python can not meaningfully multithread, due to the global interpreter lock.

* Python suffers from many different versions being installed on different versions of Linux[5]

* Lambdas are totally broken[6]

* Large-scale module importing is a half-baked job[7]

* Python 3 routes around some these issues by using generators for everything[8].

[0] Ever try to step through a string and modify it in-memory? Well, you can't. Sorry. ;-)

[1] I.e., a function can modify something unexpectedly.

[2] Which means block commenting or commenting out tops of loops means a complete reindenting of the block, that is, editors can't do the smart thing, they don't have enough context. This is a waste of the engineer's time. Delimiters were figured out in Lisp, a very long time ago.

[3] This was figured out long ago as well.

[4] But not others. Object design is a bit funky.

[4.5] This is a general design 'con' in dynamic languages. It's partially solvable with a sufficiently smart compiler, most compilers aren't that smart.

[5] This is why serious Python programs (that don't come bundled with their own version of Python) are written to target Python 2.4, released in 2004.

[6] A 'lambda' function in Python can not have statements. Most interesting functions have statements.

[7] Python (similar to Java) relies on a very specific directory structure for a given program to be able to import libraries. This means that if you are doing anything remotely exotic with layouts (e.g., libraries are in a peer directory, not a child directory), you have to commit hackery.

[8]This avoids the fact that the end result has to be emitted in some fashion.
typo: "Fragmentatin Proofed"
Studies like these do not seek explanations, which means that they merely serve to entrench existing ideas.

For example, the (well-known) ideas that massage reduces soreness, and that soreness equals inflammation.

(N.B. I'm not claiming these ideas are wrong.)

>They found that massage reduced the production of compounds called cytokines, which play a critical role in inflammation

What would be needed is a mechanism for how massage does this.

(First you guess. Don't laugh, this is the most important step. Then you compute the consequences... Richard Feynman.)

My guess is it works by restoring conscious attention to the relevant limbs and muscles. In which case, it ought to be possible to reproduce the reduction of cytokines, at least partially, by conscious effort alone. The reduction, if any, could of course be measured.
1) Redundancy and backups are someone else's problem (Linode charges you extra for that... although you'd be crazy to rely on Amazon as your only backup, it does cuts down on the tedium -- if you're a small startup, you probably want to be writing code, not playing sysadmin).

2) Scaling is someone else's problem. For static objects, S3 can handle traffic spikes orders of magnitude beyond what would bring your Linode to its knees (and there's their CDN option on top of that). Spinning up a new server on AWS (or a hundred servers, or a thousand) to handle a sudden burst of traffic takes a minute or less, and you can turn them off in an hour if the traffic dies down, paying only for that hour. Spinning up new servers on Linode may or may not be possible at any given time, and you have to pay for them for a whole month.

Running your own or VPS is cheaper for predictable, steady loads, AWS can be much cheaper and more reliable for unpredictable loads.

It's worth having AWS in your toolkit in case you get that front-page post on HN, TechCrunch, Slashdot....
They've missed the big functionality change in Chrome 17. Everyone knows that Chrome puts each tab in a different process. However that isn't actually true - if you open a tab from a page (eg middle click, ctrl click) then the tab is opened using the same process as the current page.

Those of us who visit HN and Reddit front pages opening lots of links to read later will find all of them sharing the same process. In Chrome 17 they set the maximum memory use for the process to 1GB. As usage approaches that amount the garbage collector runs and will eventually hit 100% CPU time since it will not find anything to free but the process has run out of memory.

In Chrome 16 the limit was 2GB which took at least twice the effort to hit, but still was just as annoying. There is no way of fixing this problem I can find (the --process-per-tab option doesn't do it). (You can kill the process and/or reload the browser but that loses state in pages.)

I'm on a 64 bit machine with 16GB ram and 8 cpu cores, so having the browser stuck at 6% of my ram and 12% of my cpu is annoying.
Regular content makes it a daily (or more often) read for procrastinators and people looking to share new links with peers. I think that's a big part of it.
Ok, just as a disclaimer: i recently read Larry Wall's post on perl design principles +natural language and am reconsidering perl..
But honestly all my previous experience poking around with perl have been horrible... it's pretty messed up syntax to read... i guess it may not be so hard for a perl expert..
There's also: http://www.zaarly.com/
But it isn't "change for the sake of change". Not having to see the scrollbars all the time makes the web a better experience to me, and it's very useful in small spaces. Finally, it can be changed back in the settings and become an always visible scrollbar, if that's what a user prefers. It's a win for most people, and the few like you who have a hard time adapting to changes can switch back.
As a programmer who knows both languages, while I like regex as a native type with it's own notation, I don't miss ruby blocks at all. Most Ruby code I see abuses blocks pretty badly instead of refactoring behaviour into a function, and soon you have a code base littered with the same algorithm over and over again. I think Guido has a point on making lambdas one-liners exclusively.

Also, Ruby programmers talk about how readable Ruby is, but I disagree. The lack of consistency between using parenthesis or not, how to separate arguments, or even string formating syntax makes reading Ruby code wrote by someone else much more prone to "WTF" moments than Python.
When i first saw it, I wondered why they didn't just use google's awesome diff-match-patch library - http://code.google.com/p/google-diff-match-patch/

Then, I looked at the source code and saw that it actually was just a thin wrapper around diff-match-patch.

:(
Unit Testing in Django
I used to think so but I've come around to the idea that the language is just part of the platform. Learning the Apis and idioms is always more work than learning a new syntax anyway.
PissedConsumer.com: Ascentive v. Opinion Corp.
+1 for the exhaustive list..
In other words, go ahead and spin up that extra instance for extra traffic- but put your baseline in dedicated/co-location.
Having a cloud provider in your toolkit to handle traffic peaks, sure. That's very different from handling your base load with AWS, which a lot of people seem to end up doing.

Handling your base load with AWS is ludicrously expensive compared to the alternatives.

And the upside of having your system set up to be able to make use of a cloud provider with instance instance spinup in your toolkit is that it increases the cost gap:

Whereas if you go dedicated only, you need to be able to handle reasonable spikes on what you pay for on an ongoing basis, if you can spin up AWS or other cloud instances as needed, you can push your dedicated boxes far closer to max utilization than what you otherwise would.
Beat98 - No seu ritmo - Player Ao vivo
I think introducing and leveraging bootstrap would definitely help the popularity of your lessons.
This is only the case if you're utilizing all your hardware. A huge advantage of cloud hosting is that you can buy a slice of a machine. I run all my new experimental stuff on $20-per-month Linode instances, and once they get big enough that they need more hardware, they can graduate to whatever. You probably won't need 8 cores and 32GB of RAM and a half TB of RAID-5'd 10k RPM SCSI hard drives for a long time, but you're still paying for it.

At large scale, you're probably better off with a baseline dedicated + cloud for overflow, absolutely.
The UI is easy to use, but I wouldn't call it simple. There is a lot of information, and there are a lot of ways to interact with the content. Every comment has at least seven clickable links and three pieces of metadata, compare with HN (four and two.) They just did a good design job so it doesn't seem overwhelming.

The UI probably has something to do with the composition of the userbase. reddit feels not just interactive but malleable. That appeals to geeks raised on videogames.
Show HN: Super Easy Scaffolding - Framework to create a website within minutes
Well, as I see it, more or less every error should be expressible as a type error. In order to actually do that, you’d need full dependent types, and that’s a huge language-design “now you have two problems” feature—compiler authors are understandably uncomfortable with undecidable, non-inferable type systems.

Anyway, Haskell and even C++ used intelligently can tell you a lot about your program at the outset, so ultimately your tests can be more focused.
Besides PDB, you are really just complaining about design aspects.
how could "StackOverflow" not be listed here? love listening to this show because it is a) technical & b) funny in a "Statler and Waldorf" sort of way ~ http://blog.stackoverflow.com/category/podcasts/

and also ByteIntoIt, a real radio show also podcasted & streamed ~ http://www.rrr.org.au/program/byte-into-it/
In my opinion the idea that made them take off was subreddits. Where previously I would have joined many different websites/forums for my varied interests, on reddit I can just join the subreddit.
An less-known technique to dealing with nested-ifs is through the use of an one-time loop. Here's an example (in JavaScript):

function oneTimeLoopMethod(x) {
var result, temp = -1, a, b;
do {
... extra processing code ...
a = func_a(x);
if (!a) break;
... extra processing code ...
b = func_b(a);
if (!b) break;
... extra processing code ...
temp = b;
} while (false);
result = postProcess1(postProcess2(postProcess3(temp))); // This step can be more complicated.
return result;
}

It's useful when you want do additional processing before returning the final result to the caller. Because, otherwise, you'd have to duplicate the processing code in multiple places. When I first read about this technique, its description cautioned about the lack of clarity. So, use it at your own risk!
Happy Family, Successful Start-up. Impossible?
These look great! I'd really like to see more designers improve on some stock elements in iOS and release the results.

I plan to work on free resources for improved UIButtons, grouped table views, and other elements of UIKit in need of improvement.
Virus/Malware Removal Guide for Windows
This guide will help you clean your computer of malware. If you think your computer is infected with a virus or some other malicious software, you may want to use this guide.
Startups below zero
Those are all excellent points. I think the fact that it actually increases the file size, is probably it's biggest drawback. However, I wonder if zip.js would reduce the base64 inflation factor?
There are other significant benefits to cloud hosting. Specifically on AWS:

* Storage flexibility with EBS and S3

* instant migration abilities between instance sizes

* backup and restore

* provisioning of resources when needed

* staging, dev, test resources

SDB and ELB usage certainly aren't edge cases, they are core to many many deployments.

The provisioning flexibility alone is a tremendous benefit considering that most highly trafficked Web properties are not static environments. They constantly innovate and have demands for infrastructure that can really be challenging in a dedicated environment.

In our case, we use AWS extensively, but where we have been able to carve out a "static" set of resources, we do and host with 100TB.com - simply because they offer so much bandwidth for cheap and those static resources pump out a lot of bandwidth which isn't cost effective on AWS for day to day operations.

Edit: from a financial standpoint, if you choose to purchase reserved instances for AWS, hosting becomes far closer in costs benefits to dedicated environments.
It's right on the front page.

You can't use the "Made for iPod" label on your product unless it's Apple approved and has an Apple-supplied chip in the dock connector.
Yeah, you may not notice how ridiculous cable news is if you have it on everyday -- it becomes "normal".

But try not watching it for a few months and then turn it back on - you'll notice that it sounds very much like a bunch of 7th graders bickering in the cafeteria.
If you are talking popularity, the sale to Condé Nast has to factor. Without this sale Reddit might have made it. The sale turbo charged user adoption ~ http://techcrunch.com/2006/10/31/breaking-news-conde-nastwir...

The biggest single factor is probably applying to YC.
500K LOC in Python is what, 2.5M->5M in a statically typed language? At that size I would expect any project to require explicit convention and communication management, simply because no one person can hold the whole thing in their mind at a resolution that reveals the code's meaningful features.
Agreed for portugal and spain.

Regarding Italy, we have a too big debt to repay. Either we make it or break the european union alltogether.

I dont believe France and Germany are going to give us a pony, nor I believe they have the funds to do so :-(
The article mentions franchise laws. What is your opinion on those?
I just realized that your fan statistics probably get inflated by me telling you on different sites how much I used to love Arachnophilia, so I won't do it here too.

But I did.
"Unknown or Expired Link" - A failure in gauging user intent
The purpose of a user interface is to enable a user to achieve desired outcomes. It is essential to correctly interpret user intent, and execute on that intent.

And yet HackerNews, home of fiercely competing start-ups and friendly web apps, frequently throws a hissy fit with its 'unknown or expired link' issue, which ironically happens more frequently as you spend more time actually reading the site's content rather than mindlessly clicking through.

But not only does the site often fail to satisfy that request, it provides no method of recovery. The user can't refresh or go back a page and try again, as the IDs in URLs are meaningless and expire constantly. Context has been destroyed, and the only way to achieve your desired outcome is to start from the front page again and click through faster.

Why not annotate each 'more' link with the numeric page offset? Or with the ID of the last article on the page? Then if the cached listing is no longer available, you at least have a hope of recovering and presenting something useful instead.

The only logical explanation I can think of is that it's some sort of masochistic way of keeping people from wasting too much time on HackerNews.
Completely agree. The show itself has great content. Jason is a smart guy who is humble enough to be engaging and relatable, and confident enough to ask the right questions and make poignant comments. (Only caveat to this statement is the mailchimp ads. The "eee eee eee" part of these ads make me cringe every time.)

I really would like him to move up to the bay area too but part of me think he's able to take a more critical perspective on startups because he's not physically immersed in the SV culture. It would be really cool to run into him in a starbucks or something though.
This discovery made me sick - YouTube
when reddit launched, they didn't have comments or subreddits at all
The article I posted goes over this and I remember it very well, MVC used to have a very specific definition.

(From the article: One of the central ideas of the Smalltalk-80 system was the ModelViewController (MVC) UserInterfaceParadigm?. Within that paradigm, the term "controller" had a well-defined, limited meaning.)

MVC today does not have a specific method or implementation and that was my point MVC has come to be known as a fuzzy definition for separations of concerns, as such I believe just saying separation of concerns is a better definition of what is desired. Because at some point people look at what was modeled in Smalltalk or Struts 1.0 which adhere to that concrete definition and become confused with the more nebulous definition that MVC has morphed into.
I noticed a few things in the calculaton that bias it towards self hosting:

* Using us-west, the more expensive option

* Not including labor, which is signifigantly higher if you have to rack and stack yourself.

That being said, I agree with the conclusions. If you're traffic isn't spiky or variable, then you might be better off self hosting.
focusing more on design choices and principles rather than on CSS technicalities

I'd suggest using it specifically for this reason - that is, unless there is another framework that does an equally good job of getting out of one's way as Bootstrap. That said, it definitely makes sense to try to limit its use to a small subset for your tutorials.
Ask HN: ethics questions in HCI design?
(I didn't ask the question, but I saw it and thought it was interesting enough to write an answer and solicit more.

Does that still go with the "Ask HN" monicker?)
Reminds me of the Van Gogh from "Heretics of Dune" (written in 1984).

> The Ixians had been at their best in the preservation and restoration. An observer could touch a dark spot on the lower left corner of the frame. Immediately, you were engulfed in the true genius, not only of the artist, but of the Ixian who had restored and preserved the work. His name was there on the frame: Martin Buro. When touched by the human finger, the dot became a sense projector, a benign spin-off of the technology that had produced the Ixian Probe. Buro had restored not only the painting but the painter -- Van Gogh's feeling -- accompaniment to each brush stroke. All had been captured in the brush strokes, recorded there by human movements.

> Odrade had stood there engrossed through the whole performance so many times she felt she could recreate the painting independently.
It's worrysome that you're taking cc details without ssl. A mistake like that really makes me question the quality of the code base.
Big Data’s Impact in the World
مشاهدة جلسة مجلس الشعب اليوم فيديو مباشر 12/2/2012
Reddit was successful prior to Digg going to version 4. They just received more users after Digg's move. I wonder how many...

But your second point on the owners letting reddit run itself is spot on. They just made sure the site worked (most of the time ;D) and basically let people govern themselves. But what really ties it in, is subreddits. If a mod on a subreddit ruins something or acts like a jerk, the people are free to setup a new subreddit, circumventing the overlord of the previous sub.

Then there's the simple UI.

And most of all, the people. The people posted interesting stories to the main subreddits. It's kind of disappointing to see the noise level increasing against the signal lately but that's where subreddits come in.

I almost see HN as the new reddit, but with a new feature, filtering out downvotes of new people. I come to HN and a few specific subreddits for intelligent conversation, then the main reddit page for OMG CATS.
one thing tk got very right was a superb vector canvas. it blew my mind when i realised how easy it was to draw shapes on the canvas and have them respond individually to mouse clicks.
Thats a thing where the standardization came after those libraries. It doesn't get to me that much, but I have a coworker it does bother a fair bit. I poke fun at him for this, but what he does is just take 15 minutes and write a "proxy" module (I think he was actually able to automate it...). If `baz.fooBar` is bugging him, he'll just create a `mybaz` module where mybaz.foo_bar either calls or is just a new name for baz.fooBar and then he just does an `import mybaz as baz`.
If linodes pricing is whack could you please suggest a similar-but-cheaper alternative that provides at least as good service then?
What an odd example. Other than perhaps a palindrome detector, I'm having a really hard time coming up with a use for a reversed-strings. Python DOES provide a reverse for arrays.
You are right. And that is why I want give developers lot of designe elements to use for their apps. Price is starting from 1$. I hope its will really help ios developers
Gaia - Open Source Google Earth
(I didn't ask the question, but I saw it and thought it was interesting enough to write an answer and solicit more.

Does that still go with the "Ask HN" monicker?)
will there still be a stack overflow podcast though after Jeff quit stack exchange?

the last episode is from december 8th 2011
A quick shot from the protest that took place in Bucharest: http://imgur.com/Eu5zX , at -10 degrees Celsius and under a rather unpleasant snowing. Around 2,000 people took part. I couldn't resist there for more than one hour, but at least I took part :)
You should try inverting that code with guard statements:

def frob(someargs):
if something <= 2: return

# do some processing
if that != "CONNECT": return

if verdict not in blessedsolutions: return

print "Happy birthday!"

Code Complete 2 suggests this for many types of logic when overly deep nesting bites you.
The PyPy team is amazing, for example Quora is now running on PyPy. and it's easy for a Python programmer run PyPy as an alternative(and hopefully fast) implementation.
That's my favorite xkcd - so simple, and true.

Ironic side note - I tried to use it as my ESPN.com forum account avatar, and was denied.
But do you have to be willing to give up a real bond with your kids to be an entrepreneur?

I don't think so. I work about 60 hours a week and despite that I spend about 3 hours per work day with my daughter (more than most of my salaried friends can pull off) and 2 full days a week "off" with her too (although I then often work after she's gone to sleep).

I think the real danger is lengthy commuting or needing to be away from home a lot. Not every business requires this, but for those that do, it's those multiple nights aways and lost meals, bathtimes and bedtimes that could eat away at the bond. Pick your battles wisely, though, and you can keep it up.
An alternative viewpoint is that Python makes it so you GET to that point a lot quicker, since your iterative development cycle is so much faster, No compiles, no need to refactor a bunch of stuff to accommodate minor data structure changes...
My biggest gripe too. Hopefully stdlib got more love lately on Python 3.