HNHacker News
TopNewBestAskShowJobs

davidst

3,480 karma · joined December 7, 2009

https://davidst.com

https://www.linkedin.com/in/davidwstafford

https://x.com/davidstafford

https://facebook.com/davidst

submissionscomments
davidst··on Linux follows an inverse form of Conway's Law
The article makes a good point but I wonder if it is an incomplete explanation. What would happen if Linus Torvalds walked away and there was no single leader to guide (or "dictate", depending on your point of view) its development? Would it begin to fragment and exhibit signs of Conway's Law?

I believe the answer is, yes, it would. While Linus is a stubborn and opinionated leader ("Benevolent Dictator For Life") it is those qualities, coupled with his extremely high standards, that have preserved the coherence of Linux's system architecture all this time.

davidst··on What is a coder's worst nightmare? (2014)
You just brought back old memories for me. I wrote the heap manager for Borland C. I chose the next-fit algorithm for its balance of speed and reasonable fragmentation under common use cases. Best-fit performs exactly as you described.
davidst··on Ask HN: What's the hardest problem you've ever solved?
It was challenging in every way imaginable. There was no existing algorithm that could deliver the accuracy and robustness we required. It had to run within the limited power budget of a phone. And it had to be done quickly before the hardware became uncompetitive.

At the time it was given to me it was a rough demo with no clear path forward to shipping. We had no metrics to tell how good it was, how good it had to be, or whether we were even making progress. We had no team of computer vision experts to work on core algorithms. We had no idea if the problem was solvable at any amount of power consumption. There were more than a few people within the company who thought it couldn't be done.

I want to be very clear about credit. I put this as the hardest thing I have ever done but I was only the manager in charge of the project. While I built the team and owned the problem, I did not write the code or design the algorithms. I had incredible people who did outstanding engineering work and researchers who advanced the boundaries of computer vision. It was a privilege to work with them and I am proud of them.

davidst··on Ask HN: What's the hardest problem you've ever solved?
Built the head tracker for the Amazon Fire phone.
davidst··on Ask HN: Are top developers just guessing?
There is nothing wrong with you. You are working with the wrong people.
davidst··on MySpace: what went wrong – by its former VP of online marketing
Great article but it misses an essential difference between MySpace and Facebook. Facebook was built for Mark Zuckerberg and MySpace was built for News Corporation. Zuckerberg understood the interests and tastes of his generation. MySpace only understood the interests of their advertisers.
davidst··on The Hidden Power of BCD Instructions
This really brings back memories. 25 years ago I used (what was then) the undocumented variation in the itoa() routine for the Borland C run-time library. The purpose was to eliminate the need for a 16-byte table to generate hex codes when base-16 output was desired. itoa() was a part of the printf() library so this table became embedded in virtually every executable. Knocking that out was a meaningful size optimization in those days.
davidst··on How are pseudorandom and truly random numbers different and why does it matter?
That's a good way to think about it. A quality PRNG tells an undetectable lie.
davidst··on Michael Abrash's Graphics Programming Black Book
It will never be outdated thanks to all the happy memories it holds for me. Thanks for writing it, Michael. It's one of a few books I will never part with.
davidst··on Microsoft’s Downfall: Inside the Cannibalistic Culture That Felled a Tech Giant
Not exactly. It does encourage a manager to increase the 'beta' of his team. That is, adjust hiring standards to take more risks and filter out the subsequent higher flow of poor performers in exchange for finding (but not necessarily retaining) exceptional performers.
davidst··on Ask HN: We were told our idea is amazing, but our startup is failing - what now?
> Plus, why would a restaurant offer a coupon to a traveler (at least a coupon of value)?

Because it brings in business. I see restaurants advertising for tourists all the time. Look in any in-flight magazine or any of the free guidebooks that are given away in tourist areas. They're full of ads and coupons for tours, restaurants, museums and attractions. That's a business model worth investigating.

The downside is it's a real boots-on-the-ground business that requires a heavy investment in sales effort to make it work. The upside is that once you sign up a customer (assuming they have a positive experience) it is highly likely they will repeat. You could start with just one city and if it works grow it from there.

Good luck to you!

davidst··on Ask HN: We were told our idea is amazing, but our startup is failing - what now?
Take heart: Without AdWords, Google itself was an idea that was amazing but a failing startup. You need a better revenue model than competing with cheap guidebooks.

Here's one idea: Give it away but include coupons for each stop on the itinerary. It's Groupon for travelers. Consider offering an app so people can easily carry it with them and it will always be up-to-date with the latest destinations and deals.

davidst··on Fucking Sue Me
There's another perspective that is equally true: Employee #1 is getting paid to see how a startup is created, struggles, pivots, pivots again, and eventually turns into a viable business. There is no better way to prepare yourself to be a founder than to be an early employee in a startup.
davidst··on Ask HN: Boss fired me. How to warn former employer about him?
> So what would you do to convince this organization that the manager is the problem?

If you could do that you would still be working there. They are going to have to find out for themselves.

The best thing you can do is not burn your bridges. Depart and remain on friendly terms with the company. This is one of those times when there is nothing more you can do. It may be painful because you want the company to succeed but you have to accept this and move on.

davidst··on Interview Question: Why do you want to leave your company for this job?
You just answered it. That's a perfectly fine, honest answer. The interviewer might follow up with a question about trying to get another position within the same company so be prepared to answer that.
davidst··on Ask HN: What are the stupid things Rails developers do?
Humility is your friend. There is so much to know you must assume that, in areas where you are not already an acknowledge expert, you are already doing stupid things and you don't know it.

Related to humility: Never forget the fundamentals. I'm talking about things like basic sorting, searching, and big O estimating. Know what your data structures and algorithms cost in terms of memory and performance. I'm continually surprised by how many senior developers unknowingly drift away from the fundamentals.

davidst··on New MacBook Air Now Available on Apple Store
I'm gathering statistics on words, phrases and a few other things from a medium-sized (about a terabyte) corpus. There are several billion that aren't hapaxes. That's just the initial feature collection pass. Next, I'm looking for correlations among these features. It's a challenge to make it fit in 32GB. A lot of effort goes into bit-twiddling to make things fit and into algorithms that try to be intelligent about what to keep and what to discard.
davidst··on Ask HN: Any capable JS guy available for a quick (JS) fling?
How about an email address to contact you?
davidst··on New MacBook Air Now Available on Apple Store
Is 4GB RAM enough for your project? If so, you're probably fine.

I do a lot of statistical ML (feel free to AMA) and chafe at the 32GB limit of the machines I'm using.

davidst··on Revisiting 'Zork': What We Lost in the Transition to Visual Games
Yes, depending on your expectations.

With a LOT of effort it would be entirely possible to build something like SHRDLU that could handle a specific game:

http://en.wikipedia.org/wiki/SHRDLU

Caution: Don't be misled by the impressive-looking conversation transcript. With no disrespect meant to Terry Winograd and the ground-breaking work he did it was- like every natural language demonstration since the dawn of computing- fragile, prone to odd mistakes and the transcripts were usually generated by someone already acclimated to the idiosyncrasies the system to make it look its best.

You could build something that recognized a richer grammar and even engaged in limited conversational discourse. It would be good enough that a person might briefly forget they were dealing with a system of limited capabilities until, inevitably, it would break down and remind them they are not conversing with a human.

The risk is those failures could be sufficiently frequent and severe as to make it worthless. The user might be better off with something less ambitious, more predictable and less frustrating. Then again, that wouldn't do anything to push the state of the art, so it should be worth the risk to try it.

davidst··on Free data mining resource: 1 million videos with metadata and links
Forgot to mention: It also lists video content authors and their reputations based on their popularity (the links their videos get.)
davidst··on Suspension, Ban or Hellban?
I'm not sure how I feel about this suggestion but it seems worth pondering: If you have an advertising-supported site and advertising is what is supporting the community then it seems reasonable to show more or less advertising based on the contribution of individual members of the community.

The most valuable contributors would see little (or possibly no) advertising in exchange for the value they are contributing with their time. People who are disruptive have a cost and the compensation for that would be to gradually increase the level of advertising shown to them.

Clearly, this isn't perfect, but no system is and there is at least a rationale for it.

davidst··on Smaller than Bloom filters
You're not missing anything. I don't want to knock the author because there's a lot of good stuff here that is well-worth reading but in this case I think he got a little carried away and missed the obvious, simple solution.
davidst··on JavaScript Trie Performance Analysis
Note: This was an experiment to see if javascript could be fast enough to do this sort of thing. It was never finished. The count of anagrams should be updated and the crossword finder should be hooked up. Feel free to take it and hack on it if you like.
davidst··on JavaScript Trie Performance Analysis
Here's an example of decoding and searching a DAWG in real-time in javascript.

It encodes a dictionary of 106,495 words (an old Scrabble dictionary) into 427,982 base64 characters.

http://www.davidst.com/jsanagram/

davidst··on [dead]
This happened long ago, in the pre-internet era, and a few minutes of searching yielded nothing to substantiate it but it is true to the best of my recollection.

McDonald's has long had a "Birthday Club" where you could fill out a form with your name, address, age, and gender. They would mail an invitation to you for your birthday with a coupon for a discount and free ice cream for you and your friends.

Someone (not me!) wanted to take advantage of the free ice cream so they filled out the form with a made-up name, the correct address and a birthday that wasn't far off. The invitation arrived in the mail with the coupon. They enjoyed the free ice cream and soon forgot about the whole thing.

About ten years go by and they get a letter from the Selective Service System reminding them of their obligation to register within thirty days of their 18th birthday. The letter was addressed to no one they knew. Then they remembered... It was the name they used long ago to get free ice cream at McDonalds.

It's amazing what you can find on Flickr. Here are images of the Ronald McDonald Birthday Club form from 1975:

http://www.flickr.com/photos/wafflewhiffer/3093556082/

http://www.flickr.com/photos/wafflewhiffer/3093555518/

davidst··on MPEG LA Announces Call for Patents Essential to VP8 Video Codec
What would you think about having to license a patent to build a car? What if there were the equivalent of MPEGLA for cars that could prevent you from competing with other legally licensed car manufacturers? What if the licensing authority threatened to sue anyone who distributed, sold or bought your car?

It did happen. You might enjoy learning about Henry Ford's patent struggle against the ALAM (Association of Licensed Automobile Manufacturers.) They possessed an essential patent to automobiles and wielded it as a weapon against anyone who tried to compete.

References:

http://en.wikipedia.org/wiki/George_B._Selden http://www.bpmlegal.com/wselden.html http://www.cojoweb.com/us-patent-2.html http://www.s363.com/selden/zapped.html http://inventors.about.com/library/weekly/aacarsseldona.htm

"Those who cannot remember the past are condemned to repeat it" -- Santayana

davidst··on "Seriously - those first 386 chips barely worked at all. " Anyone remember?
Little bits of history:

Compaq shipped a computer with a 386 before IBM did. That was quite a coup at the time and helped establish Compaq as a top-tier computer maker instead of just another PC-clone vendor.

Compaq was also, in a way, partially responsible for Intel taking marketing and branding more seriously. When computer buyers were polled with the question, "Who invented the 386?" the most common answer was "Compaq." Intel responded, in 1991, with their "Intel Inside" campaign to get their logo and brand on the outside of the computers where it could be seen.

Cyrix, an Intel competitor at the time, boldly parodied the "Intel Inside" campaign with their own "Cyrix Instead" campaign.

davidst··on SAGE manual: an introduction to the first air defense network
Botter Reeves, one of my best friends and a great all-around computer guy (back when that meant being as comfortable with a soldering iron as a keypunch) had a hand in building this. He has fantastic stories of those days. I hope he gets around to writing them down.

I'll try and relate one of them from memory. I apologize in advance for getting details wrong.

Back in those days you didn't just put out a help-wanted ad for programmers and start filtering resumes. Programming as a professional barely even existed. Instead, you had to find people with the right mindset and train them from scratch. And you had to be willing to look anywhere for the right people. IBM had created the original Programmer Aptitude Test (PAT) and was giving it to college students, teachers, and just about anyone they could round up. The best-scoring testers were immediately offered a job in California as trainees for what was to become SAGE.

This was, I think, an office of Federal Systems Division and the job was really a boot camp where the trainees had to learn the principles of radio, radar, tracking, computers and programming. It was quite hard on most of them and people would wash out of the course as it become progressively more difficult.

No one outside knew what was really going on at FSD (even the trainees didn't know what they were really learning) but it was getting quite a reputation for itself.

It seemed a little cruel to send someone across the country (a big deal in those days) for a job that didn't last more than a few weeks. Botter assured me it was no problem. Even the wash-outs were in demand. Software Development Corp. had a recruiter outside the IBM building to offer them new jobs when they quit IBM.

The final, carefully-chosen test prior to graduating boot camp was to understand and explain how a certain subroutine worked. This subroutine was special. It was granted exclusive access to the tiny amount of core memory that was available (most of the memory was probably drum, iirc.) Its purpose was to monitor the results of the radar signals as the antenna dish spinned and piece them together to associate the individual signal samples with the correct objects (planes or missiles), and identify their altitude, speed and direction as quickly as possible. It was unusually complex, self-modifying code.

Botter said that few people could understand that code and fewer still could successfully modify it. Those who passed were ready to graduate and move on to work on SAGE.

davidst··on 24 Gigabytes of Memory Ought to be Enough for Anybody
Statistical machine learning and data mining. 32GB isn't enough but, then, it's hard to name any amount that would be enough this kind of work.

Almost all of our machines are either 32GB or 16GB.

As btmorex pointed out earlier, "Once your data set doesn't fit in memory, it is indeed a scarce resource. And 24 GB is really not very much data."

← PreviousPage 2 of 3Next →