skysight-inc/HackerNews huggingface dataset:
The myth that Community Edition is suitable for general commercial work is shockingly strong.
This would not happen with normal use of a modern framework.
An embedded CPU would sometimes latch-up when going to sleep. This wasn't seen during development, only reported in the field with very little in the error report, just something like "It stops working, reboot it works again"

Eventually we found the internal JTAG pull up resistances would not be sufficient at certain voltages / temperatures. So it wasn't latchup in the end but the JTAG would halt the processor.

We only found it after days of testing in an oven cycling temperature while stimulating a coil (RF field) close to the device while varying the supply voltage to cause the condition.

All the while the client is not happy that his devices randomly stops working, so we were under quite a bit of pressure.

And of course we only started looking at the hardware after we spent quite a bit of time thinking it was a software bug somewhere.
NYCTaxi – A Day in the Life of a New York City Taxi
In this particular case, the advice to avoid it is more simple.

When designing test cases choose the extreme values, no text, too much text, etc.
If you pay careful attention to a typical microwave, you can easily tell when the magnetron is on and when it's off. E.g. when on the light will dim slightly, and if you're heating some food it might visibly bubble.

Set a typical microwave oven to 90% and you will see the magnetron 100% on for perhaps 15 seconds and 0% on for 2 seconds.

The Panasonic claims to operate differently. It actually adjusts the power to the magnetron. So the magnetron itself is continuously operating at 90% power.

A quick google turned up this article, which pretty much says the same thing. http://www.techlicious.com/review/microwave-ovens-with-inver...

If you want to investigate further, the key is to include the keyword "inverter", which is how Panasonic advertises it.
Curious: what domain do you work in? In mine (consumer webapps, and now consumer mobile), "never shipped a bug" is a meaningless phrase, because "a bug" depends on how millions of consumers respond to it, and very often code that is deliberately buggy from a technical POV (dropping data on the floor, for example) actually ends up with better metrics.

I used to work in financial software, where things were very different, and before that I'd interned at a company that did avionics software, which is a whole other ballgame. I just find it interesting that the definition of "bug" can vary so greatly across domains in what's commonly thought of as a single industry.
I think problems are hard when you are new to a domain. After you get some practice, nothing there is really that hard.

For me, the first hard thing was implementing this https://en.wikipedia.org/wiki/Dead-end_elimination#Generaliz...

Probably because it was the first algorithm I implemented with no reference implementation to look at.

The second hardest was a high performance proxy that can redirect to another proxy and can collect specific types of non-encrypted data.
One of the main reasons I use it is because it supports MPC-HC, which I often use instead of VLC.
Well, it’s improbable, not nonsensical. If someone goes and implements a technology that trounces our working theories, we certainly need to update those theories. It’s just that that’s exceedingly unlikely to happen.
Uploading my perl cgi scripts as text instead of binary. I solved it in only 4 hours.
I had the luck to have had to solve to though problems. Like in a performance analysis in the major telecom operator in an African country, finding many flaws in the infra-structure, circular DNSes (do not ask), and to top if all, their Internet reseller selling them the double of the real bandwidth, and to top it all, them having bridging enabled to all the country due to a vendor telling them "put this line on the central router". Or when a colleague wanted to upgrade technologies, implementing filters at the CPEs after reading DOCSIS RFCs on a cable company, and seeing the infra-structure upload traffic diving to less than half. Or picking up the Linux department and even before reimplementing all the servers, optimising servers that went from 9x% CPU utilisation to 10%. Or (re)implementing the middleware for 2 cable Internet companies, in which one of them had some functionalities in Java and I reimplemented in C to see some operations that were done in 1h being done in 5 minutes.
Going to list a few interesting problems that were easy to solve but the identification of the issue was hard.

* A test suite we wrote for a client's project before a massive refactor was stalling randomly, but would continue when you tried to diagnose the problem. Turns out their user creation code used /dev/random, and the system was running out of entropy and so the code was blocking. Moving the mouse or typing on the keyboard would add entropy, thus cause the tests to resume. Fix was to to use /dev/urandom for tests.

* Found a weird issue with an embedded network stack where a limited broadcast packets to more than 3 devices would result in only a response from a few of them, but directed packets to each device would work fine. Devices reported successfully receiving and transmitting when monitored over serial console. Issue turned out to be a bug in the ARP implementation where it would incorrectly store any ARP response it saw (rather than ARP responses the device requested). Given the embedded system has a limited ARP cache due to memory constraints, when multiple devices wanted to respond, they would all send ARP requests, and the responses would flush the ARP cache, so when the network stack wanted to send the response, it didn't know what MAC to use and just drop it on the floor. A workaround was to increase the ARP cache size.
Get things from one computer to another, safely
Go for it! I would always take action over no action.
Have you ever been in a Tesla?
In 2015 I would suggest open up a patreon page (or similar service) and define how much money is required for continued work. After that its the users choice to pay the salary or not, and as a developer you can see if there was enough interest in the product to support its development.

Donationware or paid version schemes can also work in some cases, but in my view there is a bit of an mental distance between a person paying and the product being supported for further development. It only seems to work in the exceptional massive projects and then a large portion of donations often seems to be from other companies rather than private citizens.
Invalidating old token after few hours/days or after requesting new token.
All three of them were a pattern match for me. The first one was an obvious "Subtract the difference, split the remainder" problem. The second one I immediately thought "What's the rate?", did a little math, and figured out that in both cases one machine builds one widget, so it'll still be 5 min/widget. The third one is a classic exponential growth problem.
Answering this question feels like the hardest problem I've solved yet... ;) Because, I don't know: I've never really thought "this one! THIS is the hardest!" You just iterate and things get more and more challenging as you build skills. What seemed hard to a junior tech doesn't seem hard to me as a senior tech now. It's all just engineering. It is all just sitting down, reading manuals or prior art, getting familiar with protocols or fundamentals, and building maps in your head until you understand something. Then building proofs of concepts and outlines; then, applying a bunch of troubleshooting principles; repeat until problem is solved. I've written academic papers this way, I've built streaming servers off esoteric industrial process-control database APIs, I've done process visualizations, I put a model railway online (before that was an out of the box thing)... and it's all the same: use what other people did, understand it, and then build from there.
All three of Octel's servers would become unresponsive for no apparent reason. Sometimes they crashed after a while but sometimes they would come back up after a while.

Late one night when no one else was there I ran "top" only to puzzle over that a bunch of identical command lines were consuming all the CPU:

login -p Mkkuow....

I don't remember the exact username but this Mkkuow guy was trying to log into all the terminals on each box.

I dont clearly recall how I figured this out but it was the result of capacitive coupling - parasitic capacitance - between the transmit and receive rs232 wires. The OS would transmit "SunOS login:" then get garbage on the receive line. Then it would prompt for the password a few times, eventually to give up and transmit the login prompt again.

The actual username I saw is easy to figure out by graphing the ASCII voltage levels then considering how capacitance works.

The solution was to replace all the cables with a lower capacitance cable. Because that required all new connectors as well as my time to install them my manager Karen Coates required some convincing but in the end the new cable stopped the hangs.
That's not practical. The plans would've been leaked and people would've tried to take advantage of it.

The idea that a parliamentary decision would have been better than one from the cabinet because the legitimating chain would've been slightly shorter sounds like a rather esoteric reason to judge their actions on.

But as opponents this is a great opportunity. They'll get crushed, I guess.
No. The problem is that email isn't encrypted on the backend. Sending a plain text password means every server between the website's SMTP server and your email provider's SMTP server can see the password.
Modifying a Unity game with in-house 2d framework to correctly process complex unicode strings and input and render LTR, far eastern and emoji characters.
TLS already ensures that the attacker cannot intercept the login.

If you cannot trust the TLS connection, all bets are off.
From the post:

> It’s not yet clear if Steam Guard offers sufficient protection from the exploit, as there have been some reports from users claiming that their accounts have been compromised even with Steam Guard enabled.

It's always good to have some kind of 2FA active, but it's unclear if it helped in this case.
Promoting social equality is the best way to get as many people as possible slaughtered as brutally as possible. Oppressors tend to lash out when their power is threatened.

See: Boko Haram, the Taliban's reaction to buildout of civilian communications infrastructure in the backwaters of Afghanistan, etc.

Nothing quite like America coming in to your home, insulting your religion and customs, and eroding your ownership of your women to motivate you to attack it.

The price of peace is leaving horrible people alone when they do horrible things to other people.
This is kind of an interesting situation in that telepresence was considered presence by some subset of law enforcement. While I think that angle won't hold up to legal scrutiny, it's interesting to ponder what local laws hold up over long-distance, high-resolution, high-fidelity input connections. If a doctor living in Tokyo breaks an old-timey municipal law against joking with a patient in Blahblah, Iowa while using one of those telepresence broomsticks, could he be held liable?

How does this compare to current wire-related crimes?
I am currently working on a CMS built with Elixir, GraphQL, and React.JS
Give Visual Studio a try (particularly v2015). It's pretty good at auto-complete at the very least. And you could still file tickets from it as well.
I don't see that as crazy. The national bank is still led by a member of the old cast, who is hostile to Syriza.

Besides the fact the Troika controlling the data of the finance ministry, the tax files, with no access to the current legal authority, you should also consider the likely possibility of a military coup to get rid of Syriza.

The trumped up language by the germans and their press made it very likely to prepare such a step. This didn't come forward yet. But given the history I call it very likely. Until the referendum backed them up.

And of course the Troika also had their plan B developed in secret, a similar group of 5, getting rid of Greece in the eurozone, despite it was against the EU rules. This was in the news last month.
But they never offered Greece assistance to leave the Eurozone. Schaeuble at least talked publicly about it, and was punished for it.

In the grexit scenario raiding their assets is the best thing to do. But the more interesting question is if the military (with support by the Troika) would have taken over. Exciting times.
And when you've finished that, you'll be ready for "Type: the Secret History of Letters" by Simon Loxley.

http://www.amazon.co.uk/Type-The-Secret-History-Letters/dp/1...
I once found a mask error - a design flaw - in an embedded chip, but I was unable to work around it. I had to tell my client, a primary defense contractor that they selected the wrong part and would have to redesign their boards then respin their prototypes.
there are lot of hard bugs in embedded Linux development. But once solved, its not hard anymore :) For example, code porting for different architecture could be tricky in some places. Porting a device driver to your new chip could be tricky as well especially if your HW vendor isn't helpful.
Turning 21 TB of images into 12 one page excel sheets with implication of deciding factor between few cancer drugs. And the coding part was the easier part than biological data reduction.
If the answer was yes, that paragraph would not be there.
I don't think you should be so quick to dismiss custom protocol handlers. To me that's the correct way to do this. Browsers are responsible for not letting handlers be hijacked. It's already used widely for mailto links. Firefox: https://developer.mozilla.org/en-US/docs/Web-based_protocol_... ; Chrome (needs web+ prefix): https://developers.google.com/web/updates/2011/06/Registerin...

There is cross-domain local storage but it involves a central server and iframes, https://github.com/zendesk/cross-storage
You can be emphatic and remain empirical. It's the difference between thinking nobody is wrong vs knowing someone is wrong but it not mattering under certain contexts.
I used to repair EEG systems and we had about a dozen "noisy" units. The boards all tested fine, but were noisy when hooked up to measure brainwaves.

It turned out people were running the SLA battery completely flat repeatedly, and subtly "wearing out" the battery.
Which libraries would you recommend for password handling?
> They are very small scale in terms of employees numbers. Check your facts.

bluejellybean was clearly not disputing that their current headcount is low. Their point was that a billion-dollar company is not "small-scale," no matter what their headcount is. Check your own facts before you get snippy.
The hardest bug I ever tracked to date resulted from a combination of me being a n00b at the time and legitimately being hard. It was a stack thrashing bug on an RTOS that ran on a system without MMU. To make things a little worse, GCC support for that platform was still very early at the time, so GDB would occasionally become confused, and did not support watches; besides, everything had gotten big enough at the time that there was no way to compile the whole system with debug symbols and no optimizations; the image was stripped and optimized for size.

The bug wasn't easy to reproduce: all we saw was that, every once in a while, when queried over $wirelessprotocol, the system would begin answering with crap values (it was supposed to measure some physical quantities, and crap values = meaningless, as in negative active power and hundreds of kV on a mains line), and if you kept on pounding it, it would eventually start "acting funny" -- randomly toggling LEDs and handling commands that were never given in the first place -- before eventually crashing. The problem was very far removed from its core; at first, all I was debugging was "system begins answering with thrashed values after a while".

I was two days into it when a more experienced colleague (I was a junior developer at the time) stepped in to help me. We began suspecting a process was smashing another process' stack when, after removing module after module, the bug was still not clearly reproducible by a particular sequence of steps, but the behaviour it triggered became fairly uniform.

We decided a good way to test this assumption was to modify the context switching routine to dump the current top of the stack over a serial line; unfortunately, that introduced additional delays that prevented the bug from occurring, so it didn't help us. We figured, however, that the handler for $wirelessprotocol's query was in the process that smashed the other process' stack, so we modified that handler to send the top of the stack over wireless (this is where not having a MMU helped, ironically :-) ). The base of the other process' stack could be obtained by just tracing context switches.

Sure enough, if enough commands piled up, that process (which was running some pretty intensive stuff, including floating point operations, on a very resource-constrained system) would smash into the next one's stack, messing up its context's registers.

In retrospect, this wasn't necessarily a difficult bug per se: the concept is well-understood and the theory behind it is trivial. The biggest problem is that it challenges the fundamental way we debug programs: when the CPU starts doing crap, we assume we've instructed it to do crap, and it's (correctly!) following consistently bad instructions. In this case, the CPU ended up following random instructions.
I think that this is such a tough question to definitively answer because the measure of difficulty of a problem is all relative to the particular point in time.

I am currently working on my thesis in artificial intelligence which to me seems tough because I have never written a thesis before. However, at work, I am dealing with technical software engineering problems that will seem easy after I have solved them.

My first industry project involved creating a generic form builder which could ultimately be used as a survey tool to draw statistics from. This seemed extremely challenging at the time, but now that all of the design decisions have been made, and complexities solved, I could redo it pretty easily (even though we shouldn't recreate the wheel)

Good thought provoking question though! Thanks!
This was already posted a few days ago. It's all a matter of perspective though. People see the JFDI speed as piling on technical debt. Others see it as agile or lean.

Personally, speed is a matter of motivation and dedication on how much you want done per unit of time.
True, though if the hinting was done manually or the outlines adjusted for the screen, that's plausibly a new creative work.
Hard to pin down one in particular:

- Anything where you're looking for a race condition. It tends to be hard to reproduce, and instrumentation can make it go away entirely, leaving you with a need to conjecture about what might be happening. Quite satisfying when you find it, but again because it's rare you don't know if you're really solved it.

- Built a cross-platform, cross-language messaging system for trading. Combined UDP and TCP, had detection of downed servers. A lot of fiddling with network stuff, performance optimization on all platforms, both VM and native.
AFAIK this is the kind of thing Web Intents was meant to facilitate:

https://en.wikipedia.org/wiki/Web_Intents

Too bad it seems to be dead.
I'm reading various I made company/site/device x able do y, which seems like it would be 100x cooler if it was free for everyone to reuse and learn from. Could y benefit science, government, medicine, or diverse software which doesn't lock users into a platform, respects their privacy and self-determination? If hacker news was free software, what other communities might have sprung up and made the world better?
It would not be real quick though :) SQLA, Python and Postgres the best of both worlds, and another world.
> I'd be surprised if it was as low as only $1B. They have nearly 500 employees

> That's not a small company by any stretch

Please, give me more examples of billion dollars companies which have only 500 employees.
It sounds like this was the root of the problem:

> But IIS was misconfigured to rewrite Remote_Addr from X-Forwarded-For if it existed.

Does anyone know why that might've happened? Is this something IIS does by default, something it inadvertently encourages, etc.? And is there another example of a web server doing something like this?
Photoelectric cells were invented before we understood the photoelectric effect, alcohol and preserves were used to store drinks and foodstuffs before we understood microbes, forging and annealing used before anyone had a theory on metallic crystal formation, and incandescence was used before anyone understood electromagnetic radiation; to name but a few examples. Why would it be surprising that someone invented a device which functions in a manner which is not understood?
One of my first professional challenges was porting a CAD viewer to flash. The hardest part was figuring out how to convert ellipse sections and AutoCAD bulge arcs (line + bulge factor) to quadratic bezier curves. That one took three weeks of figuring out the math (starting from near zero because i hadn't paid much attention during school). I only completed the task through sheer stubbornness, because there were whole days where I made no progress at all.
I have found in general, FREE Microsoft support to be very poor. I have needed it in a few occasions (Azure VM broken by an Azure update, XBL email change, and a few others) and each time it was a very painful process. Contrast with paid support - my experience is through the dev channel - it is amazing the access to resources you can get.

Microsoft really need to do something at the free level. I won't hold my breath, but every time I need to do something with them I prey the solution is simple. Sadly, oftentimes it is not.

Look at the MSDN social forums.. dreadful.
Limited access to informational resources can greatly hinder solution time. Some of my hardest challenges were implementing content for a MUD with a sparsely documented custom scripting language. Even with input from other devs there was a lot of trial and error and hacky workarounds.

Nowadays most of the problems I face have been solved by someone else in a slightly different context and searching for/implementing existing solutions is almost trivial.
I like this a lot, and I love the term DebOps.

The way developers somehow think DevOps is (or should be) an abbreviation of "Developers doing/replacing Operations" is terrifying to me.

I'm also in the same boat as the author, in that I recommend and target Debian Stable + Backports (and some vendor/community repos when required).
I think it would be really exciting if we found a flaw in our model of physics.
Just make sure you back the sticks up. USB sticks have a habit of dying without warning.
My company gives employees laptops with cisco anyconnect. It basically punches a VPN back to corporate over ant HTTPS connection it can get its hands on, which means that it can map all of your network drives, citrix apps run fine, etc.

By encouraging everyone to work off network drives, everything tends to stay in sync. Other solutions include having a server-located user data folder (desktop, documents, etc. - but that slows down for regional sites or mobile data if you load it up too much) and horrors like sharepoint or other remote content storage programs (HP records manager, etc.).

For code, I run a git server on a network share and point visual studio at it. My code gets committed to it and I can see it from any device on the network, including via VPN.
How to Obliterate a Multi-Million Fundraising Process During Due Diligence
I've heard that MemSQL and imo.im have a lot of rated competition programmers (and in fact target that segment of developers).