skysight-inc/HackerNews huggingface dataset:
I've worked for a very long time in software, network infrastructure and now Internet payments (complex stuff too) and mobile.

I've never heard a manager or developer say: If only we had someone that could write an algorithm to solve this travelling sales person problem we'd be saved! No. Inefficient algorithms are often good enough, typical programmers muddle through and yes pick up a textbook or reference wikipedia once in a while.

Modern software is a complex tangle of standards, protocols, and technologies. To build a typical example modern web application you're going to need to know linux administration, database administration, some server side language (ruby), a web framework in that language (ruby on rails), javascript (perhaps coffeescript), html, css (less), message queues (redis, beanstalk, etc), caches (varnish), loadbalancing proxies (haproxy), SSL termination, web application firewalls, network firewalls, providing JSON REST API's, Mobile optimization, real time communication (socket.io), third party API integration, Amazon S3 management and scaling. Etc.

All of this lifts the benchmark for what is an acceptable web app. The list goes on, and new bits keep getting added every year along with expectations.

It's bloody hard to find people that can deal with a majority of the above technologies. If you find someone that can do the full stack they're gold.

You want to be valuable? Prove that you're someone that can develop within modern software stacks and more importantly adapt as things change. Because change is coming, the music hasn't stopped and we're in for one hell of a ride.
Amazing article. I can relate.

I too am an entrepreneur who sold one company and am well onto my second one. (Though the fact that you've sold multiple companies is damn impressive!) Running your own company means you have to wear many hats and its tough to get really good at just one thing. Some days you are a graphic designer, or developer, or marketing, etc.

However, I also think it's boring to be stuck in one specific area for a long time. I like to be challenged, and I am constantly learning new things to broaden my knowledge. Whether or not this is a good thing remains to be seen.
>There is an entire industry dedicated to figuring out what you owe in taxes. Everyone working in that industry is fixing broken windows that get broken again every year. What a waste of productivity.

Its actually worse than that. Those in the tax prep industry actually lobby against major tax reforms.
http://www.nytimes.com/2010/01/24/business/24digi.html

Its similar to where the AV companies complain when
Microsoft release the free version of their own AV software. Ultimately its about protecting your own profits and not about the users.
You've just summed up every generation that reached working age during a recession.

Life isn't fair, and never has been. Some of the greatest success stories are born from times like these, because the sheer difficulty and pain tempers and refines a person who is tenacious enough to keep going and clever enough to recognize opportunities.
مسلسل وادي الذئاب الجزء الخامس مدبلج الحلقة 61 
مسلسل وادي الذئاب الجزء الخامس مدبلج الحلقة 61

وادي ,الذئاب ,الجزء, الخامس ,مدبلج

http://video.qlbak.com/11286.html
Don't be too quick to call "racism" on what is more anti-nationism. Is saying Portugal will never have a viable space program not racist, but saying Vietnam never will somehow? I think the word you want is "prejudiced".
Show HN: Looking for cool name for your product? Check out my .com domains
"There is nothing wrong is accepting poor performance. All what matters is you keep running the race"

I could not say it any better. Cut the losses and keep on moving. Happened to me when I made a very bad call which made me loss a lot of money. I was thinking of closing down when my wife told me that closing down will throw everything I had worked hard. After a year I had made up from my mistake and now is doing better.
Exactly. Everything is becoming a software problem. Dispense coffee? Make a rug? Drive a car? They'll eventually all be software problems. Businesses are being limited by their ability to understand and adopt software by the supply of talent. This will continue for a long time and it'll be people that can integrate complex systems that will solve them, not academic algorithm experts (whomever they are).
I think the appeal of the service is the convenience. If the message was important enough to warrant no third-party trust, you'd just go the extra hassle of PGP keys from both parties, etc.

The target seems to be people who were previously just emailing their confidential info. And though trust is an issue, people happily trust anonymous emailers, commercial encryption providers (where source is not available), etc.
Sharepoint is a few steps closer to that compare to Rails/Java these days assuming your companies decided to adopt it wholeheartedly.
I love cars. I love driving them, I love working on them, I love the design language and history. They're one of the finest expressions of man's use of engineering to conquer his surroundings and go extremely fast. I'd also love a future where you don't need a car to commute, though.
The claim of how the server doesn't have the information to decrypt seems valid. The key is computed locally and never sent to the sever. That doesn't make this a good idea, but I see plenty of comments already pointing to the specifics of bad RNG, crypto in Javascript being problematic, etc.
I've had this kind of argument presented to me every few years since the 1990s. It was probably happening for the forty years before that. Soon we'll need "real engineers" - and these fly by night part timers who don't have a "proper" background in computing are doomed! DOOOMED I SAY!!!!

Tosh.

I'm a guy who has got a subject specific degree - more than twenty years ago now (1st in Computing and Artificial Intelligence for those who care). I was selling software before that, and have spent most of the time since in industry.

What have I noticed since then? Amount I've actually used the "hard" CS stuff I learned there - close to zero. Correlation between "being good at math" and being a successful developer - basically zero. Correlation between having a degree and being a successful developer, after the first few years in industry, basically zero.

I don't see that magically being different in the next four years.

(Curiously the "being good a math" thing seems to be something US centric. I've not noticed the same focus on that with folk in the UK or elsewhere in Europe).

The space that developers get to play in has got larger and larger over the last 30 years. I don't see that changing. Quite the opposite in fact.

Sure some of that is going to be in areas that really need some hard-core math or engineering skills. Those jobs are out there now (embedded development is exploding again, big data has been around for years, the clever end of game development). I'm sure they'll be more in the future.

But there are also many, many jobs out there that don't. Many, many jobs that involve developers being good generalists, or having cross-over with UX and design, or having a decent understanding of economics, or understanding big-money. I'm sure they'll be more of those in the future too.

One thing we're really excellent at is wrapping up complicated stuff in abstractions that are stupidly easy to use. We're excellent at de-skilling our own job. And every generation whines that the previous one can't build their own computer / write microcode / write assembler / manage with less than 1k RAM / cope without a visual editor / manage their own memory / build their own OS / write their own application stack / whatever.

Yet people somehow carry on building new and neat things.

If you're a hard-core CS/algorithms person - go for it. They'll be lots of work for you. If you're not? Go find another niche. There are many, many out there. Be a good developer. Have fun. Make neat things.

And thus ends this particular Grumpy Old Man's Saturday Rant :-)
Test Question Flunks
...until you cross a certain age. The first generation of Java programmers were C++ refugees from the 90s. While C++ has advanced a little since then, it really hasn't changed that much.

I would never hire someone based on the libraries they are familiar with. In fact, the next time I interview someone, I'm planning on giving them some sort of "here's a totally unfamiliar API, do XYZ with it" problem. And they can find the documentation on the web themselves.
Um, nope, it is within the spec. The spec doesn't mention not printing other numbers. He met the req of printing 1-100 (he just also happened to print 0).
And thus, FRACTINT was born!
Typing "yes" for a task leaves a blank line.
Nice discussion of how sometimes it's stupid to insist there is some clear answer.
If you don't know algorithms, I certainly wouldn't want to hire you today.
There are actually two separate things going on here:

1) Exemptions - each person gets $x worth of income before any tax is owed at all. Roughly, this depends on your family size (there are many other nuances). This sounds like your $6,000 rule.
2) Deductions -- these are allowable expenses (business expenses, charitable contributions, certain types of interest, and so on). You can either keep records and claim the actual amount (which sounds like your system), or you can take the "standard deduction", which is the IRS's estimate of the amount of expenses an average person might have. The advantages of the standard deduction are that you don't have to keep records, and the standard deduction may actually be more than your real expenses if you don't have a lot of them.
What can you do with $5? Fight Diabetes.
My question is, do we need movements? When I flick through my textbooks from my physics degree course, they don't read as a series of cultural movements within the physics community. What is true is true. If we keep testing it and it keeps working, then the insights hold.

"Movements" or "schools of thought" are common in one form or another. It happened in psychology with Freudian, Neo-Freudian, Behaviourism, and finally the Cognitive revolution, which transitioned into the modern merging of psychology and neuroscience. It also happened in mathematics with the Liebniz vs. Newtonian schools of calculus, and countless times through the entire history of philosophy.

When future people look back at the state of Physics in the 20th century to the present, I think they'll see it too with the split between relativistic physics and quantum mechanics as an explanation for how the universe works.

I'm sure there are countless other examples. My point is that this isn't unique to computing. It's a common phase for a field to go through -- perhaps every field does at the beginning. Some fields transition out of this state and become stable, with a kernel of very solid principles and new development around the periphery. Others, like philosophy, are stuck in this state seemingly indefinitely. That kernel never develops.

The only question is when will it end in computing? What will that kernel be?
Give this test to the next 5 random non-technical friends and family you talk to:

A = 1

B = 2

C = 3

A = B

What does A equal?

I'm not saying people can't be taught. But think about how big the workforce actually is, think about how widespread MS Office skills are. For every power-user analyst and project manager that's really taking Excel out for a workout, there are 10, 20, 50 people who use Office in every day non-challenging tasks.

I've given that little test to my MBA wife and a GP family member and several other people. Hardly anybody gets it right.

Edit:

The x-factor here, btw, that determines whether or not somebody understands it, is whether they see that assignment is happening, not some sort of "wha? 1 equals 2? what is that?" And those that didn't just get it, even after I explained assignment they were just as puzzled. Just the concept of variable symbols confused and (i presume) disinterested them.

What we do here everyday, this is difficult, challenging stuff, that I don't think most the workforce will ever understand. Instead, people like us will be busy for decades to come, building tools so they don't have to.

There was a time when machines were new concepts versus simple tools. You could say, in the early stages of the industrial revolution, that soon everybody would understand and be able to fix their machines. But machine complexity has out-paced the desire and ability to learn those skills.

Software is no different, I don't think.

Edit Two:

http://www.codinghorror.com/blog/2006/07/separating-programm...
I'm going down this path and building it myself. Though I provide software and service rather than "SAAS".

I started comparing the time vs. income per customer. The best ones never call, rarely use the product and pay on time. I plan to factor in more time and $ costs but it will probably be the same result.

Now I want to measure how effectively I am empowering my users.
How winners are made
‘If This Then That’ Services like ifttt Automating Online Tasks
Ugh I knew that either the prison experiment or Nazis would come up. Hyperbole. It's a real fine line and equating some of the things people have retorted with to what's happened with MegaUpload isn't fair. They're not n the same level. Yeah, there's potential for abuse but at the same time I see this as a necessary evil. You trust and hope that they get things right most of the time. That's the social contract we all enter into unless we want anarchy.

But all I was saying is try to see things as the other side would. As the guys carrying out orders would. We have a hard time putting ourselves in others' shoes around here. Try it out and maybe what I said will sound just a little more reasonable.
Yep, I'm right there with you. Luckily Dell's still got 1920x1200 in their UltrSharp line.
Ask HN:Exact details about how I make money on my niche site
I am putting together a series of post that tell everything about a niche site I own. Is this something that would be interesting to you, or am I wasting my time?

What details about the site should I include?

Would you want to be on an email list that tells you when new post about the site are available?
should cars have rights? to defend them self against this anti-car propaganda.
I'm not surprised to hear this reaction. Telling a designer to "make this pretty" is much like telling a programmer to "code this up". It's not really how good software is written.

Funny, this came up during a discussion of "UX" design a while back, where a lot of programmers (myself included) expressed concern about an emerging field that sees itself as the "user representative", standing between the domain and the programmers.

But I appreciate the concern on the other side... "pretty this up" doesn't involve a designer at the stage they can make the biggest difference.

I thought the 37Signals approach in "getting real" was a good one - use the "Three Musketeers". You want one good programmer, one good designer, and one good go-between who can do both - though cross training where all team members are at least somewhat capable of contributing to each role.

In the messy world of startups, though, I have a feeling there's going to be a lot of "pretty this up" work. Programmers working with essentially no funding will start coding, and eventually they'll get to the point where they know their creation looks ugly. At this point, they'll come to you needing it to look better.

Try to see this as a challenge. Plenty of programmers have joined organizations as they guy who will "code this up" and managed to bring the team over to a better understanding of what they can do. This may be a crucial skill for designers as well.
Lua OS - An operating system around Lua, developed by a former Google employee
Insider tips for working on personal programming projects
USB 2.0 to IDE SATA S-ATA 2.5 3.5 HD HDD Adapter Cable
1.Use your 2.5" / 3.5" IDE hard drive or SATA hard disk as an additional external hard drive.
2.Connect your SATA / IDE device to your computer through a USB port.
3.Compliant with USB 1.1 and 2.0 standards.
4.USB 2.0 interface for 480 Mbps high speed data transfer.
5.Supports SATA Hard drive, 2.5" laptop hard drives, 3.5" desktop hard drives, CD-ROM, DVD-ROM, CD-RW, DVD-RW Combo devices.
6.Easy to use and plug & play.
7.AC power can be used world widely with input voltage AC 100v - 240v / 50 - 60Hz.
8.Suggested Applications: 2.5" IDE Hard Disk / 3.5" IDE Hard Disk / SATA Hard Disk / CD/CD-RW ROM / DVD/DVD-RW ROM, etc.
Nope, it did.
Most of boost didn't exist back then; compilers were much less powerful, therefore we didn't see that much template masturbation. Not to mention tooling. I don't know C++ so I can't elaborate.

You are wrong. You need to understand reflection, dependency injection, logging, xml apis and other means of serialization, jdbc and the modern way of dealing with it, servlet api, http apis and a lot more.
Or else you are very smart but unable to do any real work without spending half a year, one day at a time, learning all that stuff.

"here's a totally unfamiliar API" challenge is nice but irrelevant. There are a LOT of concepts you should understand before you can claim you know Java.
And Given a sufficient long journey, Jets are more efficient.
Cars address a lot of needs. It's not surprising that there are superior solutions for each of those needs, but all of those solutions are significantly worse than cars for other needs. If you try to cobble together a car equivalent from those other solutions, you end up with something signficantly more expensive/less good.
They would work, just not using the obvious heuristic/distance of physical distance.

One could use travel time (smaller roads are slower) or some more complicated weighting which could take into account the size of the road, speed limit, and even include parameters that allow the user to adjust how much it biases towards large roads (for example).
You were a German left-wing terrorist?
I came from a 3 year old Thinkpad T400 to borrowing a new 15" MacBook Pro with matte screen and SSD for iPad app dev. After feeling the improvements with the new E420 thinkpads keyboards I think I'm going to wait for the new T430 Lenovos to arrive for my next upgrade.

For me, as a developer, nothing is more important than having a good keyboard. The macbook has really cheap thin keys that don't have the feedback I'd like. The wrist rest edge is sharp which leaves marks on my wrists. The indentation where you cram in a finger to open the screen has knife sharp points on both sides that just makes you wonder what were they thinking. It gets rather hot underneath as well.

So ergonomically, it hasn't been that great of a transition for me even though I wanted it to be. Maybe the macbook air or the 13" pro may be better. Plus I'm too used to using the thinkpad's Trackpoint to mouse around. If you're a vim user, it's awesome with mouse support enabled while keeping fingers near the home row.
What's a CL in this context? (Maybe this is obvious, but I haven't seen the acronym before!)
Oh come now, you would say that you know C (even if you're unwilling to say you "know" it for the purposes of debate). You don't have to have a language memorized to "know" it, and you don't "know" it if all you can do is write Hello World.

The answer is somewhere in between. My personal metric is: do you have a reasonably accurate estimation of what you don't know. The better you know a language, the better you know what you don't know.
This would be true if it were an area where Open software didn't already dominate. As others, including the developers of Metor, have stated, this software being GPLed was detrimental to the overall user base because there were many people who were not willing to use and contribute to software with a restrictive copyright. The existing culture of web development is already centered around permissive licenses, trying to introduce a new product with more onerous usage conditions now will just lead to it languishing because its usage of the GPL is a weakness.
> You wouldn't pass, because you didn't read the specs!

> "prints the numbers from 1 to 100." -- you printed 0-100! ;-)

This is specifically addressed in the "Exit Portability" section:

"1. It starts at 0 instead of 1. This is just to make the output more readable by having the number encoded in the template argument (T0, T1, T2, etc) map directly to its FizzBuzz representation. If you want a strict version of FizzBuzz, just change the template specialization to terminate on '1' and return a vector<int_<1> > instead."
To get rid of cars, you need cities designed for people, not cars: otherwise everything is so far away that nothing gets ever done. We won't get rid of cars until oil is ridiculously expensive and we must give up. That will also leave much of the recent (since 1950's) development to decay, and new cities will emerge where there are new concentrations of people.

So, we will get a future without cars at some point, it's just not going to be a nice convenient continuum to something else.
Not as far as I've seen, standard UK contract is typically has something along the lines of IP created "in the course of your employment" (i.e excluding unrelated work).

Although if you're working on particular open-source or startup projects on the side you should just get a specific clause inserted into your contract which excludes those projects.
Show HN: Get news in your inbox.  What do you guys think?
I think s/he meant that in the statement, they used the wording "unlike finished products", meaning that if it actually was finished products, some rights and ownerships would've been retained by the seller. In which case, what rights and what kind of ownership rights would be retained?
So I've done a bit of hiring, and my message to you is as follows: If anyone actually does this to you in an interview, be glad they acted like that because you shouldn't work for them anyway.

For companies who have their shit together, this scenario is unlikely for a few reasons:

1. Experience, not classes or school, is paramount. We're hiring. We need you to do X. Have you done X or things close to X before? If so, you're better equipped to do X than anyone who has only taken a class on doing X.

2. School does not indicate coding skill. I've met many people who (supposedly) went to every class who couldn't code their way out of a paper bag.

3. Academic coding != production coding. The two are light years apart, and the latter is worth way more than the former.

4. Classes don't give a good signal on the ability to execute. Execution means doing what is necessary so you can ship. It means knowing there's a first 90% then a second 90% that looks like 10%. Finished, launched projects show execution. School do not.

5. Algorithms are fantastic and useful, but not in the ways they taught you in class. If you can use Google or use your copy of the CLRS to find what you're looking for, then engineer it into your solution, that's almost always more than enough.

6. If entrepreneurship is ever 'just applauded' in your interview ... run. Don't work there. Entrepreneurship indicates that you know this is a business, and that engineering doesn't exist in a vacuum. It means you can balance sales concerns against user concerns against design, UX, product, scale, and not just do things and throw them over a wall. It means you can be trusted to make decisions that add value and not just code.