Hacker Newsnew | past | comments | ask | show | jobs | submit | markh1967's commentslogin

About 9 years ago I had a run-in with stomach cancer. After a few months of chemo and a 7 hour operation I was eventually declared cancer free and have been ever since, but still have to live with the consequences of the treatment and be vigilant for any signs of it returning.

I still suffer intermittent stomach aches, especially in the early hours of the morning, and had a terrible time trying to decide if they were getting better or worse over time.

Our narrative voice is awful at detecting long term trends and tends to overcompensate for particularly good or bad patches so it was impossible for me to judge and I started keeping records of how bad the aches were each day.

Long story short, the average severity was mostly decreasing over time and the average time between bad aches was slowly increasing but it would have been impossible to tell if this was happening without keeping detailed records because it wasn't consistent - some months were much worse than others and completely skewed my perception of long term trends.

While most people hopefully won't ever need to do something like this, it did make me realise just how bad we are at picking up on long term trends so I can definitely see keeping daily records of, for instance, average daily happiness being eye-opening.


Yes, when you have an obvious reason to track some data, do it: I do not think anyone questions that.

Proactively capturing and tracking everything you can to prep for any future is too much work that would really steal your time from, you know, actually living a life.


An enthralling example of just how good a public speaker Duouglas Adams was and, 30 years later, still relevant and insiteful.


Many years ago I was a technician supporting a few custom programs on thousands of PCs. The developer of one of these programs had added a date check to his code so the program would refuse to run after a set date and each new release would increase this date by a few months so it would stop working after a few weeks if he ever stopped creating new releases. His contract ended and a few weeks later his software, now relied upon by hundreds of sites, stopped working. The contract for the software development was thoroughly checked and legal action against the developer was started but I asked to see if I could resolve the problem in the meantime.

It only took ten minutes with a dissassembler to find the JGT (Jump if greater than) and convert it to a JLT so the software would stop running if the date was before a certain date rather than after. I created a patching tool that simply flipped one bit that was sent out to all the sites and everything was good again. I don't think I'll ever beat the elegance of a single bit flip hack.


If you think it's bad now, the early days of the web were absolutely filled with scumbag grifters who made small fortunes hiring contractors and then refusing to pay.

Many of them disappeared in the y2k dot com bust, but then seem to have reappeared in SF after 2008.

In the late 1990's, my second ever Flash app development client stiffed me on a $10k invoice.

He finally figured out 6 months later that he didn't have the source material to make changes and paid the full invoice in order to get it.

So I took precautions with the next client. It was a small agency that was serving a much larger business.

We were on 30 days net payment terms and I submitted the invoice when the project was done.

They didn't pay and within a couple weeks of gentle reminders, they stopped responding.

I smiled.

Exactly 30 days from the due date, I got a panicked call shrieking about their largest client website being down and did I have anything to do with it?!

I asked them what the hell they were talking about, they don't own a website. They never paid for any websites. I happen to own a website and I would be happy to give them access to it if they want to submit a payment.

They started to threaten legal nonsense, and how they had a "no time bombs clause in the contract."

I laughed because my contract had no such clause. If they signed such a contract with the client, that's not my problem.

I told them I wouldn't release the source files until the check cleared my bank, which could be weeks. A cashier's check arrived that morning and their source files were delivered.

By the end of it, the folks at the agency thanked me because that client wasn't planning to pay them and they hired me for other work (which, they had to prepay for).

Of course I don't know about the OP, but I'd bet the company was trying to stiff that contractor on their last check.


> because that client wasn't planning to pay them

Wait, you mean they used your little ruse as a means to be paid themselves??


Yes they did, and it worked!


Mostly non-malicious example... My employer asked me to write a UI to solve a problem for a handful of people until a proper (giant ever-delayed) migration was finished. Over a couple of weeks I made it work despite not having dealt with MVVM/XAML/Whatever before and I was pretty pleased with the outcome. But it was a hacked together thing! I'm not a real dev and given that I got a promise it wouldn't get distributed.

So, you know, in the program.cs startup I checked the username vs a hardcoded list of people in the relevant teams, and if it wasn't crashed out with an error and a support email address.

About 18 months after I had moved on, I got an email with a screenshot of that error message. it would appear the Milan (something like that) office had got their hands on a copy but it just wouldn't work for them...

Trivial to undo of course, but I did enjoy the throwback!


That's a dangerous fix. What if someone tries to run your new version in the past?


the spacetime paradox is the bigger concern imo. nothing to worry about.


I can attest to this from personal experience.

After undergoing stomach surgery 8 years ago I started experiencing completely debilitating stomach aches. I had many appointments with my GP and a specialist leading to endoscopies, colonoscopies, CAT scans, and MRI scans all to no avail and they just kept prescribing more and more anti-acids and stronger painkillers.

It was after seven years of this that I paid for a private food allergy test to find that I am allergic to Soya protein. Once I stopped eating anything with Soya in it the symptoms almost completely vanished.

At my next GP appointment I asked why no-one had suggested it could be an allergic reaction only to be told that it is not one of the things they check for or even suggest. My faith in the medical community took a bit of a knock that day.

On a related note, I never knew just how many foods contain Soya flour that you wouldn't expect until I started checking.


Soy is in just about everything it is a staple food. You're unlucky, really. You're in good company though, it is one in three hundred or so.


Why go to this much trouble for a Reddit account?

A few months ago I browsed r/all by new and downvoted every crypto scam post to unrelated subreddits I saw. This raised a red flag somewhere inside Reddit (my guess is that I was interfering with some Reddit admin's crypto scams) and my 18 year old account was suspended until I could respond to an email at the address it was registered from that I no longer had access to almost two decades later. An appeal was ignored.

I was furious about losing the account for about two minutes before I realised that nothing of any importance had been lost, shrugged, and created a new account.


I first used Uber while on holiday in Poland and consequently every email I got from them was in Polish until I worked out how to cancel that account.


A demonstration of exactly this problem (only in older versions of .Net, newer versions use a different seeding method)

https://dotnetfiddle.net/tLGMp6


It's been a while so I can't provide a link but I remember reading about someone who got hold of a video blackjack machine that used a pseudo random number generator and was able to find the seed from only a few hands and then knew exactly which cards would be dealt next. He then went on to empty every machine he could find in the local casinos.


I think the most probable reason for this instruction is for calculating parity bits. This would need to be done fast so it makes sense that there would be a CPU instruction to do most of the work.


Parity is much easier than counting. It's so easy that you get it for free in the x86 flags register. (… and because the 8008 was designed to run a terminal.)


>"(… and because the 8008 was designed to run a terminal.)"

Could you elaborate on this? How does the 8008 being designed to run a terminal relate to the parity and the flags register?


Each iteration from the 8080 through x64 have a parity bit in the flags register for backwards compatibility with the previous generation. The 8008 was a microprocessor implementation of the Datapoint 2200 architecture.


Excellent, thanks for the insights. Cheers.


Early protocols didn’t have error correction in the lower layers. The parity flag was equivalent to a CRC instruction nowadays. Presumably if parity was incorrect, that would mean the byte was transmitted incorrectly.


I ended up being the sole developer for a system that managed vehicle trackers installed in fleet vehicles.

A few months after I took over they picked up a new client that was a finance company for people with bad credit ratings who wanted to purchase vehicles at exhorbitant interest rates. The trackers allowed them to remotely disable vehicles if the finance payments weren't met.

After a while they became the systems's largest customer and finally the only customer. They then asked for some changes so that all their vehicles would be remotely disabled at the start of each month and would be re-enabled when that month's payment was received.

Fortunately, they then purchased the system outright from its current owners and that allowed us to stop developing for them.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: