skysight-inc/HackerNews huggingface dataset:
Why Seaside, and What the persistence options are
yaml is definitely a logical alternative, I think
Kilim: Fast, lightweight, cheap message passing in Java. [Google Tech Talk]
Los Angeles Green Home Renovation Remodeling
Tell Us about Your Project Call Us 818-386-1022

Los Angeles Construction Renovation Services for a home owners. green building professional Builders for home Construction and commercial Development like never before..."
Ask YC: What Does "Taste and Style in Programming" Mean to You?
I like to look at code and be able to say that it has been written with 'taste and style'. Taste and style means different things to different people.

What does it mean to you? What do you like to see in code or design?
"Who needs a CS degree when there's all the books that have all the information, and more, that Wikipedia does?"

Having the information available is not a substitute for the things one does to get a degree.
I've worked at a lot of places that required a degree as a consultant. I have no college but a thick resume (read: blood, sweat and tears) which got me in the door.

Every single one of those places was stifling to work for, they were inevitably steeped in bureaucracy. To a certain degree, some of the bureaucracy was warranted for sure; but the problem is that a lot of these companies can't figure out when it is appropriate and when it is not.
I know exactly what you're talking about! To me, you can look at a piece of code, and know if it has a certain Feng Shui to it...
Code that is only dense when it has to be, and is commented when it is.
Artful use of white space.
Code that has obviously been refactored once or twice.

Other than that, it's sometimes hard to describe. But it is very easy to tell if you're looking at code from someone who loves to code versus code written by someone who just does it for a paycheck.
You would think that someone who holds minimalism above all else would pay excruciating attention to the details. What's up with the horrible pacing of the text with enormous gaps everywhere? What's up with no hover state for links? What's up with the line lengths that are a little too long? Minimalism is a beautiful thing when done correctly, but it generally requires MORE work to make it beautiful. This, in my opinion, is lazy minimalism. And a bit preachy.
Reading Wikipedia won't teach you that, true.

But hearing any lecturer or professor make any sort of statements about programming is never going to teach you ability and competence in programming, not like sitting in front of your computer and trying to convince it to make some cool trick that you saw or read about, or leaping into the open source community, or doing any kinds of hands-on, no-need-for-university-stuff programming, will.

Any degree at a good university will expose you to people much smarter than you. No need to study computer science for that.

Despite my strong interest and ability in programming, I did a physics degree. I don't regret that. It's given me a breadth of knowledge that I would never have achieved had I studied pure computing.

I believe that if you're a passionate programmer, you'll learn everything you need "on the job", so to speak (whether that job is paid or a hobby). However, there are many interesting things that you'll never learn unless you study them at university.
"Even Reddit tolerates..."? You do realize that Hacker News is aiming to be better than Reddit, at least in terms of topics this audience is interested in?
A lot of job ads which are very specific in listing degree requirements do so to fulfill legal or policy requirements to advertise a job and are really designed to exclude everyone except for one specific person the company wants to employ. I've learned this recently in the process of sponsoring an H1B employee; now I look at job ads a little differently.

We've hired programmers with degrees in CS who weren't very effective and programmers without degrees who are brilliant. A history of hacking with results seems like much better predictor of efficacy than a degree although a good CS degree improves the odds a programmer will be effective - at least, that's what I've noticed.
But say you take Twitter as an example. If someone had told me back in 1995 that I could send 130-character text messages to all my friends over the web, I'd have said "So?". Now I've got a bunch of friends nagging me, "Are you on Twitter yet?" (I'm not, but I do get nagged about it fairly often.)

Technology doesn't just change what's possible, it changes what people want. The reason there's demand for something like Twitter is because now everyone is online, nearly 24/7, and so the value of an online service that tells you what your friends are doing has gone up significantly.

You may be right - actually, from a numbers perspective, you probably are. But if I had a few million to invest and the chance to blow $15K on something like AwesomeHighlighter, I'd think there was enough of a possibility of success to make it worthwhile. People are reading more online, and their reading is much more participatory. That's a different environment than in 99/00.
Well, I gained a lot from my fellow students. I doubt our current best modes of communication can match the insight I gained from the friends which I gained during my degree.

Other than that, a self-taught student may be tempted to tackle easy problems. For instance, I don't think I would have ever attempted a ray tracer in c++ if I had learnt from home.

And what about teachers? It's not like wikipedia would say, "hey, looks like you're creating a 2d game. ever thought about this mapping algorithm? it may make your code simpler?" You could get that information from the internet, but you'd have to realise you had a potential problem to do that, and without a teacher, who'd tell you that?

Most of all, a lot of this thought comes from retrospect. Of course I now know what subjects make up a good computer science degree, but before my degree I wouldn't have known the significance of compilers, for example. Nor would I have known where to /start/, and where to go after that.

It's not that it's not possible to be self-taught, but you'd need a hell of a lot of passion and motivation for the subject to shack off all the problems you'd encounter without a teacher aiding and guiding you.
"Any degree at a good university will expose you to people much smarter..." and that is important, but I think you can also get the same benefit from working on projects with really smart people, reviewing their code, and having them review yours. Open source projects are great for training people. Google's code review process with Mondrian seens like a super example of this (from my perspective - outside, looking in.)
I disagree (but not enough to vote you down). I think you're on the right track, but it's not the tact filter that you should ignore. It's the "I can't possibly talk to that girl because she'll reject me," filter that you need to ignore.
If they can listen their technology to newspapers they'll be fine.
Nice tool.

As I understand from Techcrunch, the revenue stream would come from selling their "awesome highlighter" product to media sites. The incentives for media sites to buy it?

- nice feature for their users to share highlights

- possibility to survey what their users find interesting

I believe there is some revenue potential in this. It just strikes me how simple business ideas can be. Once again, value is the key, not complexity.
> Despite my strong interest and ability in programming, I did a physics degree. I don't regret that. It's given me a breadth of knowledge that I would never have achieved had I studied pure computing.

Do you feel that you could solve almost any problem (maybe not even technical-based) given enough time?

Despite the strong campaigning by my parents to declare CS, I entered the civil engineering program. It was tough to land my first real programming job, but I had trouble staying interested (and sometimes awake) during 8am structural engineering classes.

I believe undergraduate engineering is masterful at teaching problem solving. That can be applied to anything technical.

Honestly, after years of spending 3-4 hours on painful homework problems (like finding the forces internal to a wind-pushed power transmission structure), developing software can be a joy.

1st year - well-defined small problems (e.g. Physics 101).

2nd year - bigger problems, labs, basic hard engineering concepts (this is the weed-out year).

3rd year - problem-based projects. teamwork/collaboration. You're smart+lucky if you can solve/get the homework problem - even if you don't you're learning the process. Zero-force members..

4th year - Here's the situation. You define the problem. Go design a solution. Write a 100-page report. You have three months.
> "Other than that, a self-taught student may be tempted to tackle easy problems. "

I completely disagree, and I'd say the opposite. If someone has the motivation be self-taught, then they will have the motivation to try difficult things. Though I would agree that you can't really be well self-taught unless you really have the determination for it.
The study doesn't really prove anything. It creates a (poor) definition of "bad guys", creates a (very slanted) definition of "get the most girls", and then correlates the two.

Being confident in yourself could easily be confused with slight narcissistic, being impulsive could certainly be a good thing, and not all aspects of Machiavellianism are bad. It's not clear to me that their chosen traits actually define a "bad guy".

In order to determine who got the most girls, all they did was ask the people in the study (all college students) "how many partners they had and whether they were seeking brief affairs."

They point out that the "dark triads" had more partners and more desire for short-term relationships, but they don't even touch on the quality of the partners or the relationships. Their definition of getting a girl apparently includes one-night stands. Contrary to popular belief, there are girls who just want one-night stands as well, so the guys didn't "get" anything special; they engaged in an even trade. Getting a girl, in my opinion, is getting a girl to care about you. The study doesn't even touch on that.

Also, as daniel-cussen said (http://news.ycombinator.com/item?id=224005), because the study only focuses on college students, it gives far too much weight to trivial, shallow college relationships while not enough touching on the much-more-important relationships that come later in life.
The formal learning environment and external motivation to learn (exams, projects) helped me learn a lot about computer science as well as many other subjects. I'd do it again, even in the internet age.

That being said, the internet has been an incredible resouce for my continuing education. It's more than just a way to look up javadocs, I've gained more breadth to my knowledge than books or classes could offer.

It's the combination of the university and internet 'courses' that have propelled my abilities like never before.
somebodies gonna lose $10.000.

I found it buggy, too. But there's one thing I've learned from the software business: I have no idea what a given thing is worth, and whether it can be sold. I almost fell on the floor when that calendar company sold their (cough, cough) "technology" for some 200K. Xobni's widget got an offer for 20m or something like that. Wtf?

So, yeah. Don't be surprised if a semi-functional, 1000-times-already-done, text highlighter pulls in a couple million. I don't get it either.
Ars Technica?
You'll still be able to do that.
Congratulation to hooande. I remember when he mentioned it http://news.ycombinator.com/item?id=174900

Awesome Highlighter uses frames to view other websites and some websites prevent their pages to be viewed in someone else's frameset (if (top != self) top.location.href = 'example.com'). There is no way I know of to disable this and need to respect their wish not be viewed in frameset.
All of this depends on the person. Somebody who is self-taught because they want a job in programming is going to tackle easy problems. For the same reason, and I know I'm speaking to the wrong crowd to say this, someone who is just in a hurry to slap an application together so that they can sell it will also not tackle anything really hard.

Somebody who has a problem that isn't solved by any current software will, by definition, tackle something harder than someone who is just trying to make money.
Proof? ;p
Submit your startup to the one and only European startups Company Index
Well, there's the impossibility of getting a good sample. A person who hadn't heard of this experiment already would have to be hopelessly uneducated.
There's also open courseware, which goes a lot deeper into the material than Wikipedia can or would want to go. And then there's public library.

My grandfather, who was a civil engineer often made the joke of giving the abbreviation for the public library in his hometown (UPL) as the place where he got his education. And it was true, but that was post-Great Depression, circa New Deal era when a civil service exam was enough to start a real career, and a college education was not considered necessary for most occupations.
Projecting hosting costs for business plan.
Hi.
I'm writing a business plan for my web app.
I need to project my hosting costs for 6/12/18/24 months into the future for my financial projections etc..
Is there a way to predict the costs?
EG: For every 250,000 hits per month you would roughly need 1 server?
Being projections, it doesn't need to be 100% accurate! Just a ball park/rule of thumb figure for the plan!
Thanks.
This is the same as asking why certain pieces of art or music are beautiful. Any two random people would likely disagree over their interpretations of beauty, but as a whole, many works would likely receive a drastically high 'beautiful' vote, like Pachelbel's Canon.

That said, with code, I think there are a few properties which are considered 'beautiful' or 'tasteful', not in and of themselves, but combined with that impalpable aesthetic we call 'beauty'.

Of all of these, I think the only one most programmers would agree on is that truly incredible code is nominally quite brief.
Code has style when you can't describe why the code is so good. Because when you try to describe it, you know you're selling it short - the code is more than simply its specification. The only way to convey the quality of the code is by reading the code itself. Code has style when you'd rather read the code than an explanation of what it does.

For me, it's always a matter of simplicity. When a problem is hard to describe in English, you naturally assume the code will be a bit complex as well. And yet, sometimes, the problem can be decomposed so neatly that the parts are trivial and fit together effortlessly. For me a requirement is that after carefully reading the code you are absolutely certain there is no room left for bugs. You almost know for certain that the code didn't have any bugs when it was written down for the first time, because it captures intent so well. If you need to refactor it's probably too late already.

So I think books like "Beautiful code" got it entirely wrong. I especially don't agree with icey's opinion that refactoring can make code tasteful or that linebreaks can make or break greatness. It's about bringing human thoughts to computer code. And when that mapping is perfect, the code is great.
Fulltime sales engineering job, hacking and consulting gigs on the side for my own startup...
you've got just about zero empathy, don't you. i see you demonstrate that fact, time and time again.

i suppose i was that way when i was young also. i shudder to think.
I agree with you absolutely with regards to no two people having the same exact idea, but I don't think even the latter case is an exception - brief may be efficient but not "stylish" and "beautiful." Just like the other properties, it depends on the person looking at it:)
Nobody needs a Computer Science degree. But if you want to be really good, then you need to have a thorough understanding of all parts within a computer. Get a mental model of a computer from the transistor to the hardware architecture to the boot sequence to the memory models to the operating system internals to the virtual machine and garbage collector of your language du jour.

If pieces from the chain are missing you'll be programming by trial and error. And that way you'll never reach your full potential. Could you learn everything on your own? Absolutely. But without the external pressure you'll simply skip on a lot of tough topics because you don't think you need to know them. But you do.
To be fair: neither is having a degree evidence that one has actually mastered the subjects it covers.

Hell, I have a degree and regularly read wikipedia articles on all sorts of subjects, including computer science. Does that invalidate my degree?
It's really a question of whether you prefer supervised learning or unsupervised learning.

Supervised learning is one-off and expensive, unsupervised learning is cheap and widely available.

Supervised learning converges over a much shorter time frame than unsupervised learning.

Supervised learning introduces bias in the quality of the teacher signal that unsupervised learning cannot run afoul of (or take advantage of).

An interesting middle way might be active learning. It is a technique where an unsupervised learner has the ability to ask a supervisor for useful tasks to train on. In academia, sadly, this doesn't seem to happen below the PhD level.

http://en.wikipedia.org/wiki/Supervised_learning
http://en.wikipedia.org/wiki/Unsupervised_learning
Lucky Stalin!!!!
Exactly, I'm doing Mechanical Engineering, and I picked up a minor in CS to pump up my GPA. It seems like a much better combo than pure CS because it is much harder. (Isn't there a PG essay about staying upwind of your goal, an engineering degree is certainly upwind of CS. Not knocking on Computer Engineering here, that is one of the hardest engineering degrees for sure). As for "meeting smarter people", I don't know, I was 100% self taught when I got my job at my startup because I hadn't started CS yet, and the smartest people I have ever met are the guys in my company - much more so than professors. All are computer and electrical engineers though, we only have one CS major, and hes a self taught guy too. My roommate is a CS major who never taught himself anything - and though I like the guy, he is 2 years "ahead of me" and I program circles around him.
Logos, seals, & your identity
> Bipartite graph algorithms and topological manifolds are not as important as Gardasil and alternative energy.

That's not so obviously true that you can just state it as fact.
It sounds more like a badly designed web app than Alexa doing something it shouldn't. If it really did do harvest passwords and log in with them, we'd hear a lot more about it.

As gojomo said it was probably passing the username and password in the URL (query string). I've been burned by the exact same thing before because of Alexa. I had the little Alexa rank FF extension which told Alexa about a page I really wish it hadn't...
> truly incredible code is nominally quite brie

That's probably true. But that makes me wonder...

People have a hard time appreciating poetry in their second or third language, because you need to have such vast knowledge to get the subtleties of the poet's intentions.

I suspect the same holds for code. The more skilled and more experienced the programmer, the more complexity he can handle. And he'll find beauty where mortals like us are simply confused.

I can't appreciate Shakespeare, but I suspect it is as great as many claim it is. I would probably dismiss Shakespeare as unnecessarily complex and verbose if I didn't know better.

Worth thinking about the next time you're annoyed at a piece of complex code, and really want to refactor it so everybody can read it. You may be destroying something beautiful.
Muchas gracias for the explanation of repr. I knew I shouldn't have lost faith in Guido.

The ctemplate sounds really frickin' interesting. Is this an easy way to get a major performance boost on CPU-intensive bits of Python? Actually, this is probably getting off-topic, but will you email me when ctemplate is ready for prime-time?
Most decent hosting providers give detailed breakdowns of their service costs (servers/cpu-slices/bandwith/transfer-rates/limits/etc) so if you are able to approximate your usage levels e.g. by comparison to the patterns of other established similar apps/companies, you can do a good job in calculating these costs.

Even not knowing your usage levels, you can make reasonable assumptions and hence choose appropriate services with fixed costs and work on that basis.

Amazon Web Services, SliceHost, and the like are particularly good if you do not know how your service/app will perform over time as they allow you to scale with ease compared to other more traditional hosting solutions and although more expensive in the long term (i.e. buying dedicated servers are cheaper), is cheaper in the short term and actually makes creating early projections much easier.
I'd like to add a subquestion: I'm always told to check out other people's code and study it, but I'm also well aware that popular software doesn't necessarily mean good code. What source-available projects would you recommend I look at if I want to see some quality examples of the craft?
I like to see code that my mind can parse as easily as the machine can. Tasteful code likely is short, efficient, and readable... but perhaps there are exceptions to that? Good taste is like obscenity - hard to define but you know it when you see it.

http://www-cs-faculty.stanford.edu/~knuth/lp.html
New solar dish from MIT concentrates sunlight intensely enough to melt steel
It also removes many of the initial fixed costs such as dedicated servers, and will actually bring your projections down to lower levels making, in many cases, the proposition more attractive to investors (if that is what you are looking for).
One of the best things about doing any degree is the people you meet and the interactions you have with them.

Many a friendship/company/network are born from these relationships and often are beneficial to you throughout life.

No matter how good they are, Wikipedia et al cannot offer this.
I'm worried about the hassle as every 'hello world' tutorial stops working. The change has been on the cards for yonks, and the print('foo') version has always been valid - why hasn't there been a push to get the documentation changed before introducing the change?
Thanks for the advice. The reason I want the Ph.D. is to become a professor, and the reason I want to be a professor is to be paid to indulge my curiosity and to teach (I love both).

Delaying a year to do this site is definitely an option I'm considering. Cooking Indian food in my kitchen has got to be way cheaper than gnawing off my own leg. ;)
Hot social browsing tools
Y.A.G.I.S: Yet another Google Interview story (With a twist)