HNHacker News
TopNewBestAskShowJobs

nerdy

2,100 karma · joined July 14, 2014

submissionscomments
nerdy··on 100 Counterintuitive Things About Testing by the Author of Falsehoods About Time
If a customer discovers a bug, who created it?
nerdy··on 100 Counterintuitive Things About Testing by the Author of Falsehoods About Time
You'll have to check the math but how about something like:

"Modern processors can process more instructions in a month than there are seconds in the age of the universe."

Both Intel and AMD have processors which can process over 300,000 MIPS [1], that's 300 billion IPS.

Universe age in seconds = (13,820,000,000 * 365 * 24 * 60 * 60) = 4.35828E+17

instructions per day = (300,000,000,000 * 24 * 60 * 60) = 2.592E+16

Universe age in seconds / instructions per day = ~16.8 days to process as many instructions as there have been seconds

[1] https://en.wikipedia.org/wiki/Instructions_per_second

nerdy··on 100 Counterintuitive Things About Testing by the Author of Falsehoods About Time
I think he's talking about the ratio of a microsecond to a half hour to express scale, a microsecond to a half hour is approximate (to an order of magnitude) to 10^9.

1000000 (microseconds/second) * 60 (sec/min) * 30 (min for a half hour) = 1800000000

10^9= 1000000000

nerdy··on 100 Counterintuitive Things About Testing by the Author of Falsehoods About Time
>#66 I truly do not understand the objection you are making here. If an event goes unobserved and is without impact it is the same as if the event never occurred.

#66 says: "If no one ever finds out about the bug then the bug never existed in the first place."

While the outcome is the same, it doesn't literally mean the bug never existed. The existence of a bug is orthogonal to its discovery. Its discovery does not bring about its existence.

Do you have any data for #93? I'd expect a power log distribution.

nerdy··on 100 Counterintuitive Things About Testing by the Author of Falsehoods About Time
> #2: Tight coupling is good.

Only between a test and the specific code for the behavior under test. It's not good between test suites, abstraction layers, APIs, etc.

> #3: It’s good when something is known to be broken.

When compared to it being broken unknowingly, but not really otherwise.

> #15: The same bug almost never “reoccurs” so most “regression testing” is pure waste.

> #48: Writing tests for bugs that are fixed does NOT correlate with catching new bugs when they arise.

What about a situation where you have untested behavior (perhaps incomplete test coverage to begin with), then you find a problem in that code and write a test to prevent regression. When you later refactor the code under test there's a definite possibility of "regression" of sorts, especially if the refactoring is comprehensive.

> #20: “Black box” is a political designation and has no technical meaning.

A black box is a system where you can observe inputs and outputs but not the system performing the transmutation.

> #31: On a Web site with 1 million visits per week,a one-in-a-million event can occur once a week.

Quoted for thought-fodder, this one is awesome.

> #51: Granular and/or comprehensive documentation of a nontrivial Web site is demonstrably impossible.

It certainly feels this way, but what's the solution? Have no docs, write docs knowing they won't be comprehensive, or expect to chase an impossible goal?

> #66: If no one ever finds out about the bug then the bug never existed in the first place.

wink wink ... this simply isn't true!

> #83: Bugs cluster at the interfaces, bugs are not distributed randomly.

Isn't this only true if there's more unit-level testing than integration/functional testing?

> #84: There’s more time grains in 1 year of compute time than there are seconds in the age of the universe.

1 year of compute time for what? All of the computers in the world? A datacenter? A computer with a 1μ grain size has roughly 3.15E+13 grains per year but there are over 4E+17 seconds in the age of the universe.

> #93: More testing doesn’t correlate with better quality, less testing doesn’t correlate with worse quality.

I don't have any specific data but my experience has been that testing (manual or automated) does correlate with quality. Testing might be the developer pressing F5 a lot, writing automated tests, or a stakeholder manually end-user testing. Think about the state of software which was developed but never run. Software rarely executes flawlessly first-run, and every time a developer runs it, it's testing.

nerdy··on AWS is down
I'm pretty sure only s3 is down, I have AWS-only services and they're working normally.

aws.amazon.com (this article link) also loads normally and doesn't appear to contain any indication of a problem with AWS.

nerdy··on Why I Only Work Remotely
This is the fundamental difference between great engineers and the rest. Just giving a damn and being engaged. Seriously.
nerdy··on Prolific Engineers Take Small Bites
Sounds like "Discovery" quadrant more than "Prolific" to me.
nerdy··on Ask HN: Is the concept of a one-person software shop still viable?
Have you considered the cause of the e-mails/support requests and tried to streamline your process or at least provide additional instruction in order to quell the high volume?

My experience has been that support requests can be near zero if you actively work on some kind of automated solution for the highest frequency problems.

nerdy··on Russia’s Creepy, Innovative Internet [video]
42-minute video, I have Adblock and it worked fine
nerdy··on AVS RetroUSB: FPGA-Based Re-Implementation of the NES/Famicon
It's "Famicom," not some kind of organized convention!

It's short for Family Computer.

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

nerdy··on NIST’s new password rules – what you need to know
This is the first thing I thought too. I've consistently heard the opposite but am not a cryptographer.

The article Sophos links with regards to an explanation for choosing PBKDF2 over bcrypt or scrypt goes over numerous obviously bad practices like cleartext storage, then states the following, without further detail:

We’ll recommend PBKDF2 here because it is based on hashing primitives that satisfy many national and international standards.

This seems like a vague and probably misguided line of reasoning. What specifically would make that recommendation rational? bcrypt wasn't new in 2010 when NIST published the article recommending PBKDF2, and they haven't made the switch since. Dual_EC_DRBG was recommended by NIST in 2006 which makes me deeply skeptical of anything they say.

If anyone could provide the motivation for choosing PBKDF2 in reasonably terms I'd appreciate it.

nerdy··on Adobe demos “photoshop for audio,” lets you edit speech as easily as text
I thought it sounded badly cut when he moved wife in the sentence but adding new text was pretty amazing.
nerdy··on Ask HN: How did Dyn fail to fend off DDOS?
That article also mentions the credentials are in the firmware.
nerdy··on Ask HN: How did Dyn fail to fend off DDOS?
I'm not sure. Maybe that's the case for the passwords which can be changed via the administrative app but I read many of these are in firmware and not able to be disabled or changed:

“The issue with these particular devices is that a user cannot feasibly change this password,” Flashpoint’s Zach Wikholm told KrebsOnSecurity. “The password is hardcoded into the firmware, and the tools necessary to disable it are not present.

- https://krebsonsecurity.com/2016/10/hacked-cameras-dvrs-powe...

That's not to say it couldn't flash the devices but I don't recall seeing that capability in the Mirai source and haven't read about it doing so.

nerdy··on Ask HN: How did Dyn fail to fend off DDOS?
OVH DDoS late last month was over 1.5Tbps: https://twitter.com/olesovhcom/status/779297257199964160

I believe the Dyn attack was via Mirai also.

nerdy··on StrongPity: Advanced Persistent Threat
Not to mention they can reinfect via download and the malware scans the system[1] for:

- putty.exe

- filezilla.exe

- winscp.exe

- mstsc.exe

- mRemoteNG.exe

The malware also has the capabilities to fetch new instructions, so there's no telling what happens when any particular software is detected.

[1] https://securelist.com/blog/research/76147/on-the-strongpity... (linked in the first line of this thread's article)

nerdy··on My Experience Running Development at a Startup
The end of the article feels like a cliffhanger for a CI-CD sequel.
nerdy··on LIVE Stream: WikiLeaks/Assange October Surprise
Starts at the top of the hour. Some background while waiting: https://www.cnet.com/news/julian-assange-speech-berlin-due-t...

It's also the 10-year anniversary of Wikileaks.

nerdy··on Ask HN: How do you manage your personal software projects?
I think a TODO is preferable even if you practice TDD.

Failing tests used as a "start here" are to-dos in this instance and are indistinguishable from legitimate currently-implemented feature tests if you've been away long enough.

I don't think it's good to assume it's okay to delete failing tests when returning to a project with new goals or when a bug needs fixing. For me, it's important to return to a project, run tests and have them all come back green. Then if I break something, I know it broke and isn't just an artifact from my pseudo to-dos.

Along those lines... I always try to run tests, check code coverage (including via mutation testing), and commit changes before calling it a day.

nerdy··on Ask HN: How can I become a proper Project Manager from a Programmer?
Understanding the types of things that prevent programmers from completing their duties is the core of PM. That can be resources/access, requirements understanding, scheduling, productivity, etc. It's most helpful if you can achieve a deep understanding of the business objectives while understanding technical capabilities and limitations. Most programmers are required to do that anyhow, but it's especially important in PM because you'll be one of the earliest people on the tech side to influence new projects.

For example:

- If you're going to do an API integration in the coming days/weeks, make sure you provide an account with access, documentation, and consider reading the docs yourself to look for blockers. Don't focus too much on the implementation or architecture, focus on the business goals.

- If you're going to make a modification or new addition as the result of a new business requirement, make sure you are intimately familiar with the business domain and how the problem applies. It's important for the PM to understand what the business actually wants, not simply what they say they want.

- Minimize task switching by maintaining a clear strategy with the business side. When you hand off a task to a programmer the task should be in such a prepared state that nothing further can be accomplished without writing code. If business has an "emergency" that isn't, urge them to hold off until the current development task is completed.

- Build relationships. You want to be close to business and close to dev. I would often talk to developers about their day, off-work activities, family events, etc. They were more than happy to discuss their hobbies for a few minutes, I feel like it's time much better spent than group meetings and it gives them reprieve from work. Get to know them, having that connection is great for them when they can openly make requests and likewise for you. Sometimes they need vacation on short notice. Sometimes you have legitimate emergency tasks and need to ask a little extra of them. Having a real relationship to fall back upon is tremendously helpful, just be sure to reciprocate.

As a PM you can advocate for engineers and protect them from waste like excessive meetings and ensure they have everything they need to do their job. You're in a position to suggest raises, hardware upgrades, etc. Sometimes you have to fight for what they need.

You can practice many of these things before being a PM. Some of them are better left for your first opportunity managing a project. Where that line is drawn depends on the specifics of your circumstances. I was promoted to management fast after making recommendations which dramatically increased revenue, which doesn't seem like a bad way to make yourself more visible. Solve business challenges or provide new revenue streams if you're extra ambitious. If you want to manage, show initiative.

It's also worth considering you might not be happy as a PM. No longer coding, it was easy for me to feel like I never got anything done. Entering tasks/todos/bugs, talking with the business side, and writing emails doesn't feel productive after programming. Being ready for that possible eventuality is my best advice.

nerdy··on Streaming service Blab.im shutting down to reinvent itself
Yet another example of the difficult decisions teams make.

It does seem like the gap between shutting down and re-launch will hurt their user base, who will invariably seek other services. Many streamers had regular schedules and won't be able to indefinitely wait for the service to return.

And when they return, even with a different format it might address some of their problems but others will remain. Most livestreams suck because most people are not media and/or technology experts. A controversial figure broadcasting? DDOS will still happen. A massive media event using your platform? It could still lack capacity.

From an outside perspective it looks like this decision will be regrettable but it'll be interesting to see how everything plays out.

nerdy··on American Infrastructure Report Card (2013)
Agreed, especially since important infrastructure categories like communications and financial/banking are absent. The categories which are listed closely follow the Millennium Challenge top 10, according to that Wikipedia page, they "had the greatest positive impact on life in the 20th century."

But are achievements of the 20th century likely to be exclusively the same ones driving the 21st century? These categories are certainly still critical, but is it an exhaustive list?

I don't think anybody denies infrastructure is important. Hillary Clinton's plan is to spend $275bn on infrastructure[1]. Donald Trump wants double that[2]. But if we're going to spend billions or trillions of dollars we might want to make sure it's thoughtfully allocated.

1. https://www.hillaryclinton.com/issues/fixing-americas-infras... 2. http://www.nytimes.com/2016/08/03/us/politics/trump-clinton-...

nerdy··on Show HN: Apple – Every Second
No you wouldn't [1]

1. http://www.usdebtclock.org/

nerdy··on Special projects
Programs writing other programs is an interesting concept, but isn't it naive in most cases?

If program X can write program Y, program X is probably unnecessarily complex with regards to solving problem Y. Program X could simply execute program Y's operations at their abstract level, which would save it all of the outputted language understanding and translation. The only tangible difference between the two would be the ability to "save" the commands, at which point program X is a scripting language and the input commands are the script.

Wouldn't this solution be better in most cases? If program X at runtime requires significant configuration to produce program Y but those configuration inputs are not saved. Then if program Y were to be changed, program X must be rerun with all of the configuration input again. In the scripting language scenario, the script is modified.

For a programming language to receive something simpler than the language it is written in, the ideas must be abstracted to reduce the amount of code required to perform the task. For example simple addition of multiple elements can be reduced to a "sum" function. The "programmer" using this must still have knowledge of the sum function and its use. Abstractions require the system to have knowledge of that domain, so with each new domain a whole other set of abstractions and complications are introduced.

So if a machine were to write the entire program, how does it differ from machine learning? While machine learning might be often used for smaller algorithms, this case would apply ML to the entire problem as sets of smaller problems. If a human must still program in some abstracted sense, isn't it just a scripting/programming language? How would a component of this suggested project not fit into the "machine learning" or "scripting/programming language" categories?

nerdy··on 99 Bottles of OOP
This is a very accurate based on my impression of the 99 bottles book.

The information is plainly stated in a way which is so simple it's novel.

nerdy··on Ask HN: Those making $1,000+/month on side projects – what did you make?
You win the prize!
nerdy··on Ask HN: Those making $1,000+/month on side projects – what did you make?
She sells (exclusively) on TeachersPayTeachers.com. Educators create resources and list them online for others to download/buy. Each seller is required to have at least one free resource so somewhere around 5%~10% are free.

The payment structure is basically 70% to the seller, or the seller can pay a flat fee of $60/yr to become a "premium" seller and then keep 85% of sales. What's nice about their platform is that the customers are highly qualified and support is mostly offloaded to their support staff. When a customer makes a direct inquiry (to a seller like my wife) about a product there's a very high chance they will actually convert, so time answering questions is well-spent. If a customer wants a refund they contact TPT directly, so it can be a very hands-off kind of thing. We've discussed selling off-site to recover a piece of the 15% but it hardly seems worthwhile because of their infrastructure and how it allows her to focus on creating new products.

TPT has posted engineering job openings on HN in the past and seems like it'd be a great place to work in NYC if anyone is looking. I don't represent or know them personally but get a strong positive impression from their virtual meetings with sellers and people who I know who work closely with them.

As I understand it they have a bit of cross-pollination with the team at Etsy, which is another interesting marketplace similar to TPT but for arts & crafts products. You might know Etsy from their blog at codeascraft.com, presentations they openly host, or because Rasmus Lerdorf (creator of PHP) works there. If not, their blog is worth checking out.

nerdy··on Ask HN: Those making $1,000+/month on side projects – what did you make?
My wife is making high 4 figures a month (record was 13k+) selling educational PDFs on a 3rd party website.

Anything is possible if there's a demand and you market to that audience. Differentiating "cool" from real demand is the hard part. That said, she makes me feel completely inadequate with her side project ;)

Money isn't everything. How sustainable your business is, your required level of commitment on an ongoing basis, and how happy you are doing what you do are also very important.

nerdy··on Southwest Airlines is having major software issues
Not only was their website down their reservations system was too. Interestingly, their mobile app remained up... so it sounds like some kind of an API access issue for their internal systems (web & reservations). I don't envy the people cleaning it up today!
← PreviousPage 2 of 10Next →