skysight-inc/HackerNews huggingface dataset:
That's a good point. I guess that counts as the kind of "rigour" I was taught we're missing in software engineering. The definition could perhaps be extended. We do things differently, but maybe it's still engineering.
I'm highly critical of the current student loan situation. That said:

> If people groaning under the weight of student loans simply said, “Enough,” then all the pieties about debt that have become absorbed into all the pieties about higher education might be brought into alignment with reality.

This would absolutely happen, but the first step towards that would be a 2008-like situation all over again, because banks would suddenly have to absorb massive unexpected losses (as they did in 2008), and all of these would cascade.

And remember that, unlike mortgages and car loans, student loans aren't backed by any reclaimable asset - you can't repossess someone's degree! While foreclosures in 2008 were undeniably terrible for the people who lost their homes, the situation would have been even worse if the bank had no assets to repossess in any of the defaulted loans.

Since the government bailout money has to come from somewhere, it will simply add to the national debt and (at some point) come out of future taxes. That's not really solving the issue. It's tantamount to replacing all private loans with the existing tax-subsidized federal loans, which doesn't solve the problem; it just kicks the can further down the road.
If you have federal student loans this is shitty advice. The loan payment programs are very generous. 10% of your income (minus 150% of the poverty level), which is probably more like 0-7% for most people, each year.

If you default, hit your credit, and get your wages garnished, you'll be in a worse spot.
Yep, you're right... I'm forgetting that physical engineering also suffers from some of the same problems. The thing that it adds though is a level of rigour, and ability to reason about the project, that we're still struggling with somewhat in the software world. Believe me, in 20 years since I was taught it's not strict "engineering", I've yet to see that change much, other than in safety-critical and cleanroom projects.
Self-indulgent me generation, using sophistry to justify defaulting on a loan. Because, mostly, he didn't want to work for a living. First-world crybaby.
How to travel the world in just 12 hours
> - No hidden volumes.

Actually it not only supports hidden volumes, but unlimited nested ones, while TrueCrypt supports a maximum of one hidden volume, see: https://github.com/t-d-k/LibreCrypt/blob/master/docs/plausib...
Yay for not having to use my non-human heads.

/totallyNormalHuman

/totallyNotAnAlienObserver
How would I replace html in the browser? Create a new rendering api in canvas? Can it be done? Sure. Will it be pretty? Not so sure.

Imagine your operating system can only compile one single language: Perl. And with perl the only way you can render anything on the screen is with a QT api and QT UI primitives.

Programmers can still do anything within this ecosystem. Technically you can have perl as compile targets for any other language. Lets also pretend that QT has this little UI element called canvas that has a api allowing you pixel level control.

While technically you could do anything in a platform like the one I described above, I'm sure you can easily see why it's still bad.
I think "Software Engineer" is just a title given by a place of employment. However, for those who genuinely believe themselves "Software Engineers" I would ask: What was the outside institute that certified your software engineering program? What professional exams did you take in order to be licensed as a software engineer?
Estimates aren't so much of a concern for me as quality.

While bridges can fail after 50 years, the general state of many software applications (particularly in enterprise software) is seemingly less good.

I primary issue is lack of standardization and rigor in the field that allows for quantifying allowable defects, test coverage requirements, and understanding of failure scenarios. Simply put, so much is played very fast and
loose. Fragile systems are sometimes built in haste on fragile foundations.

In say, electrical and building codes for houses (not engineering so much, but applicable), there are established standards for protection of consumers and standardization of work. In software, usually these don't exist - or they exist in small legal areas like PCI or HIPAA, and don't really explain how the software is built either, but only some of the properties. Not only do building codes exist, but the similar codes and standards exist for the parts the technicians install.

Rather than codify the practices of the craft that firm things up, everybody's still trying to figure out what those practices are. And maybe that's ok. Bridge building has been done for thousands of years, and software has been done for far less than a century.

We are still figuring a lot out. Yet, at the same time, I don't think we remember much from history, software that has "nailed it", and analyze what works and doesn't.

Software is also kind of not engineering because it's an expressive medium to some, kind of an art, hence the application of "craftsmanship" frequently applied. We are sometimes inventors, sometimes engineers, sometimes sometimes carpenters, sometimes plumbers.

These are all valid fields, but I do want for greater engineering rigor over the long haul. I think it would make things less stressful. But right now, we (as the people in the industry) are doing all these breadth first forays to figure out how software is built - sometimes getting stuck in local minima and maxima until we can upset an ideology enough to try something new - and that's partly why it feels like it does. We have a lot of people with different experience levels and different specializations, and often conflicting opinions, where sometimes none are clearly right or wrong.

On the other end, business also needs to change. A bridge is never "sold quickly", it is sold and then takes as long as it takes. Electronics can be pitched heavily, but the cost of field replacement is so remarkably large it must be gotten right the first time. However, software can quickly be replaced on the fly. More so a problem if you are working on a .com than on firmware, the need for rigor is reduced and engineering deliverable is more controllable by the desires of the business side.

Ultimately, it's still a remarkably new industry, and it itself is able to evolve quickly, as we are not realing dealing with the rules of chemistry, but rather conceptual ideas and logic. Logic and ideas are fuzzy complicated beasts.
Not perpetuating a stereotype != pretending it doesn’t exist.

:-)
A flipside of this is that there's no general guarantee that not participating in such services affords much by way of protection.

You're already creating copious datastreams:

⚫ Your address is available : USPS (or foreign equivalent), USPS NCOA file, DMV, voting registration, payroll processors, magazine subscriptions, addressbook snooping from other parties' records.
http://www.forbes.com/sites/adamtanner/2013/07/08/how-the-po...

⚫ Your place of employment: payroll processor, banking records, LinkedIn.

⚫ Purchases: Credit card, debit card, loyalty programs, checks, retail-site tracking (phone signal or WiFi monitoring).

⚫ Your general consumer preferences are bracketed: Age, sex, home address, income, educational data, magazine subscriptions, purchasing daa.

⚫ Your email exchanges: Even if you don't use Google, Yahoo, Microsoft, or other major email service providers, people and businesses you rely on do. If you've communicated with them, or even if you haven't, your data are there.

⚫ General location information: cellphone tracking data.

⚫ Annual driving data (miles): state smog data, insurance processors, toll tags..

⚫ Online activities: IP address, ISP, browser fingerprints.

⚫ Medical data: Hospitals, insurers, payment processors, billing services, third-party labs, drugs suppliers, etc...

⚫ Generally: data, information, photos, events, etc., entered about you by third parties into online or offline, public or private, systems.

So: you can try to take specific steps to make small portions of your data, but it's rather like building a dam when you're 1) already neck-deep in water and 2) surrounded on all sides. Until you can create a comprehensive and nonpermeable barrier, you see little benefit.

Opting out offers you little additional privacy, and costs you the discounts or other benefits provided.

Possible alternative: opt in but under your own terms. Fuzz data, share cards or identifiers with others, use tokens (phones, toll tags, credit cards, etc.) for a brief time, then discard them or, better, exchange them with someone else.
As I'm commenting elsewhere, this is true... I didn't acknowledge that other physical engineering projects do indeed suffer from some of the main problems. What's missing in software engineering is the rigour and ability to reason so precisely about what's being built. I was originally taught (on a Software Engineering degree course) that it doesn't formally fit the definition of engineering, and I've not seen that change much, but I'd agree the definition is certainly up for grabs, and perhaps extension to include modern software practices, such as Agile.
It's because the headline teases you with the whisper that she was right about something, presumably controversial, but then the articles dances around for ages before revealing what it is.
Sorry, I meant to say software architect.
Makes sense. (That was his entry a while ago: https://news.ycombinator.com/item?id=9246855 )
How would that work for late-evaluated data? A PowerShell object doesn't have to provide all of the data up-front, and can give updated data when checked at a later date. JSON is still just text, it still needs to provide all of the data you might need up front.
Some great points, thanks!

I think "we're still figuring a lot out" sums it up for me. Perhaps it will become more rigorous over the next few decades. Perhaps we'll start to see more parallels with physical engineering.

You're right that quality is the key.
Growing One's Consulting Business (2012)
It doesn't seem controversial that poverty can lead to worse education, negative behaviours and overall worse outcomes eg. due to things like stress, altered priorities, prejudice etc. The idea that this is because poor people sustain brain damage as children (or foetuses) is the bit I'm not sure about.
It’s worth remembering that when people give that advice on HN, it’s usually in a business-to-business context. Business-to-consumer sales are a different thing entirely, with different motivations and often a different purchasing process. Consumer purchasing behaviour can be highly price-sensitive (and affected by numerous other factors as well as price) so for software or a service with low marginal costs, offering lower prices with greater numbers of sales can easily work out better than higher prices but fewer sales.
Ten years ago this would be --xml. Who knows what it would be ten years from now. Text streams are timeless.
I first learned about Nooyl after reading this PA comic trilogy back in '11
http://www.penny-arcade.com/comic/2011/01/03

…so nice to hear that her cult is still working out
So flash and silverlight?
React seems like a game loop with some functions built in to update your state.
It'd be interesting to see what the retention numbers were like for those initial v1 users, and how many people use the free version on an ongoing basis. It could be that people stop usin the app after the first week or so anyways.
You can.

Half way through a powershell script you can switch to C#, VB, JavaScript if you want and implement a pipeline or shell out to a C++ program, talk to something over the network or even Cygwin if you really want.
Interesting product to help people make decision
> If you have federal student loans this is shitty advice. The loan payment programs are very generous.

The author appears to have private loans, which are much more burdensome than federal loans for the debtor[0].

This is why federal loans are said to be subsidized and are counted as financial aid, even though people sometimes complain that it's "not really" aid because you have to pay money back. It's aid because the rates are well below market rate, which means the government (acting as a bank) would expect to make a loss on all loans issued, as the number of people who default would outweigh the amount of interest collected on the remaining loans.

[0] Also, only undergraduate loans are subsidized - graduate loans are not usually (never?) subsidized.
Newbie here. In your opinion React delivers the promise to get out all the business logic of the UI?
He's a baby boomer. Your statement seems accurate to me.
I think I misread your comment by skipping the effect-on-the-brain bit. The book is indeed about altered priorities and resultant behaviour due to scarcity, but it is a good read anyway.
Engineering is much more straightforward, you have the plans and know that you need X amount of parts and Y amount of labour. Software is more like research, where you don't even know if you can solve the problem acceptably, most of the time.
The winning entry used slow and handcrafted controllers, which is why the videos are sped up. A few months ago, http://rll.berkeley.edu/deeplearningrobotics/ was announced. Notice that in the videos here the robot's movement is very fast and humanlike (real time, as opposed to 15x of the KAIST video). This technique will be used in all of the robotics challenges in a year or two, which will look like a discontinuous improvement in robotics performance.
That's a great point, and one of the reasons I was originally taught it isn't "engineering", strictly. I think we do a lot of what counts as engineering. But, you're right, we aren't formally certified as an engineer. Perhaps that (and the required rigour) will change.
Hong Kong and Singapore seemed to have done all right, especially when compared to mainland China.
How the Post Office Sells Your Address Update to Anyone Who Pays (2013)
CSS Protip: Use :not() Instead Of
> What's missing in software engineering is the rigour and ability to reason so precisely about what's being built

That's only true if you choose for it to be. There are ways to formally prove that your software is correct but they require a large time tradeoff. For example, the software in the chip in your car has gone through as much engineering rigor as a bridge. Alternatively, look at a cheap toy produced in a shitty factory in an undeveloped country. It will have parts in it that were designed by a mechanical engineer but they choose to be less rigorous to keep cost savings low and as a result you get a toy with "bugs" in it.
Pascal, except for syntax, is similar to C. They are both JAVA (Just Another Version of Algol) languages.

One difference is that Pascal has much better type-safety, which makes it more appropriate for high-integrity software.

I think the only better choice for reliable code would be ADA.
Does twitter api matter anymore? I stopped using it a while back. I think stuff like this is helpful to businesses who buy their data.
Incidentally, there is plenty of ls alternatives like lsp:
https://github.com/dborzov/lsp
How to monitor a computer literate teen?
Great point. Perhaps we'll be able to classify certain software practices as "engineering". Maybe even stricter forms of Agile. It would be great to head in the direction of it becoming engineering, rather than in the opposite direction.
Sorry, I have to disagree.

If you did this, why would you even have the free version? The whole point of the free portion is to act as feeder for the paid version. If the branding is completely separate then how are the users going to know they can have the same level of confidence in the paid version as what they do in the free version? May as well not have the free version at all.
Is that a joke? He has severe schizophrenia. He could not even work a job at McDonald's. This is why he lives off disability benefits and has so much time to develop TempleOS and the associated programs.
EPR nuclear plants are suffering delays and far over budget.
> Good! Should we just allow it to keep getting exponentially worse? Smaller correction now, or massive correction later?

You're painting my comment as rather black-and-white. All I'm saying is that encouraging mass defaults on private loans is probably the most disastrous way to correct. In fact, encouraging mass defaults is letting things get exponentially worse; it forces the government to pick up the burden of these increasing costs without simultaneously addressing the reason that these costs are rapidly increasing.

A correction will ultimately result in banks having to write off some of their loans, but forcing them to do so in a sudden and unpredictable way without addressing any of the other problems (inflated tuition costs, federal subsidies, etc.) simultaneously is putting the cart before the horse.
Web Scraping with Scrapy and MongoDB
"or run JSON.parse() and JSON.stringify() to turn your JSON into objects?"

By that time, the communication has already happened.
Searching for the Next Jack Ma
> "Software engineering estimates and plans often fail to live up to the reality that follows. It seems to be the only engineering discipline in which this is regularly the case."

Yeah... nearly stopped reading after that opening statement. There are many reasons why software engineering is different from other forms of engineering. And maybe those reasons are enough to not call it engineering. Personally, I don't think that's particularly relevant.

But wildly exceeding estimates is definitely not something that distinguishes "real" engineering from software.

Real world engineering often has the advantage of working almost exclusively with known quantities. But add a variable, like digging a tunnel through an unpredictable underground, and sometimes projects go off schedule by years.

No engineering discipline can predict the unpredictable. Some disciplines are just younger than others, and therefor have more unpredictable elements.

The big difference with software engineering is that the costs of failure are so relatively low that we prefer to go full steam ahead instead of trying to find ways to reduce uncertainty.

This makes software engineering an outlier. Everything else is just semantics.
His last name is Simmons. And the Hyperion Cantos is an excellent series. His other books are worth reading too: Summer of Night, The Terror.
I dunno, the shell combined with sed and awk is pretty powerful and so far has taken care of everything I need to do
Seems fixed, batteries are now charging and deployment of the sail is scheduled for 4 hours from now, 14:02 EDT.
Because I use Chrome on my phone and Firefox on my computer, and I don't even have my password manager on my friend's computer at all.
This [1] list of failures shows that some robots seem to "just" have hardcoded motions, for example for turning the valve.

[1] https://youtu.be/g0TaYhjpOfo?t=48
I feel it's the lack of hard laws that kill software. Unless it's a very constrained project, where limits drive your design, you'll have freedom to think about things and then it shifts into ontologies, people trying to find 'tiny theories' to express their problem in the best way. Each layer adds variability and we end up in hard to bridge technology silos.
Look at the apps on the top grossing chart. Supercell, for example, makes over a billion a year.
When has sending the password to the server over TLS ever cause any breaches? Every breach I know was because data at rest was poorly kept, on either side.
Very generous compared to what, any other federal student loan system? Its extortionate when you compare it to similar countries, think 30k for a 4 year engineering degree with interest at CPI - or in many places free.
When I was working in retail ages ago this was said many times as advice for new companies starting out. "It's easier to lower the price when you don't sell enough than to raise the price on something that is selling well."

Today it seems to work this way: "We start with free stuff and then we try to find ways to make money later". I think this is part of why we have the customers we have today. They expect everything to be free and then give you 1 star reviews if the background color is off a shade.
He's also wildly racist: http://www.reddit.com/r/programming/comments/38u4zc/flight_s...
I agree.

I would also add that there are significant benefits that follow from keeping one's word, from not defaulting on the obligations one chooses.
> how are the users going to know they can have the same level of confidence in the paid version as what they do in the free version?

You are going to tell them. Kind of like this: "Need more space? Try our paidapp."
Is it possible to do something like this with PostgreSQL's full text search? When I convert a search query containing an @mention or #hashtag with to_tsvector, I get matches for strings that aren't preceeded by # or @.
Great points, thanks. I agree, there are perhaps more similarities between software development, and traditional engineering, than I figured.
If on a Winter's Night, a Traveler -- Italo Calvino
I/O Kit can be used for this. [1]

[1] https://developer.apple.com/library/mac/documentation/Device... (I'm a bit surprised that the docs assume that the reader is implementing a driver. I have used I/O Kit in an app that was available on the App Store.)
The GemFire team is hiring for positions in Portland! We're part of the data group at http://pivotal.io and we've got openings in dev, qa, and customer engineering. GemFire is a distributed, in-memory, and transactional data store designed to provide very high throughput with predictable latency.

Our team tackles some of the most challenging problems in distributed systems: data consistency, high performance, and extreme scale. Our customers deploy GemFire for mission critical applications in financial, transportation, retail, and, telecommunications markets. We’ve just donated our source code to Apache and we're transforming our engineering culture and processes to match the shift to open source development. It’s an exciting time for us! We’re focused on building an open source project community and creating tons of new ecosystem integrations with projects like Hadoop, Spark, Mesos, Lucene, AWS, and others.

You can check out the Apache Geode (incubating) project at http://geode.incubator.apache.org or on github at https://github.com/apache/incubator-geode.

Here are the open positions:

https://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&c=qt...
https://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&c=qt...
https://hire.jobvite.com/CompanyJobs/Careers.aspx?k=Job&c=qt...
Here's my proposal:

A single, standardized HTTP endpoint, "/.well-known/passwordchange/", where you can POST with query parameters "userid", "oldpassword" and "newpassword" and the server returns either a 200 on success or something else on non-success. That's it.
Favourite quote:

>But I have found, after some decades on this earth, that the road to character is often paved with family money and family connections, not to mention 14 percent effective tax rates on seven-figure incomes.
That won't work, because where-object needs a PowerShell object, and ssh is returning just text. I'm curious how Microsoft will deal with this.
What's the real risk of loss on student loans? The people I know who defaulted all paid in the end, plus interest and penalties.
I don't have a particular dog in this fight, but I thought this is interesting:

The last O'Reilly Software Architecture Conference had a talk by Glenn Vanderburg titled "why software development is an engineering discipline":

https://www.youtube.com/watch?v=zDEpeWQHtFU

I think the author of the blogpost does a lot of the things discussed in the talk (e.g. comparing it mostly to civil engineering as opposed to all the other engineering disciplines).