HNHacker News
TopNewBestAskShowJobs

rabidgnat

298 karma · joined February 1, 2009

submissionscomments
rabidgnat··on SciPy - the embarrassing way to code
I did some SciPy work in computer vision applications, and it was both a blessing and a curse. About 80% of the code could be reduced into matrix operations, which provided the 'embarrassing' moments that the article mentions. However, I'd hit something like Hysteresis Thresholding in the Canny Edge Detector, which traces through the image looking for faint edges, and spend a day figuring out how to write a Python extension against the Numpy API. This was necessary, because any code that iterated over 1000 x 1000 matrices in Python that I wrote took well over 10 seconds, instead of the < 100 milliseconds it should take.

As a nublet, I probably didn't end up saving much time over C++, but I could see that in the right hands, this tool would be a lifesaver

rabidgnat··on The House Passed the Health Bill
IANAL, but the text of the Fifth Amendment doesn't support your claim. Let's look at it piece by piece:

No person shall be held to answer for a capital, or otherwise infamous crime, unless on presentment or indictment of a Grand Jury, except in cases arising in the land or naval forces, or in the Militia, when in actual service in time of War or public danger

Not applicable

nor shall any person be subject for the same offense to be twice put in jeopardy of life or limb

Not applicable

nor shall be compelled in any criminal case to be a witness against himself

Most people express this as "You can't incriminate yourself," but this is a much more specific clause and pertains only to criminal cases.

nor be deprived of life, liberty, or property, without due process of law

This deprivation of money would be within due process of law

nor shall private property be taken for public use, without just compensation

Not applicable

(end of text)

In terms of self-incrimination, the Fifth is used entirely in situations relating testimony and criminal proceedings. Furthermore, were it unconstitutional to incriminate yourself through inaction, "duty to rescue" laws (http://en.wikipedia.org/wiki/Duty_to_rescue), though often unexercised, would also fail to be Constitutional.

rabidgnat··on The House Passed the Health Bill
Starting next year, private insurers could no longer deny anyone coverage based on preexisting conditions, place lifetime limits on coverage or abandon people when they become ill.

Worth it!

I also don't think suggesting that this violates the Fifth Amendment is very convincing. 2.5% of the average American income isn't very much, if you do the math! Even a family making 100k per year (well above average) would be penalized $2500, which is fairly light when you compare fines for other crimes.

rabidgnat··on Ask HN: What artists do you like?
I'm a big fan of Knuth. I haven't purchased any of his Art yet, but I do have an Amazon gift certificate in reserve...
rabidgnat··on The false god of coffee
I've been experimenting with coffee for a few years now, but I've never tried to quantify my results quite like the author did.

I've been everywhere from 1 cup a day to gross overconsumption. In the end, coffee doesn't seem to significantly impact my concentration. If I get 8 hours of sleep, don't drink any alcohol the day before, and stay hydrated, I can be productive no matter how much coffee I drink. Even more, I found that Morning Coffee makes me dehydrated and irritable, so I usually drink a cup or two after lunch to keep myself going. On occasion I've quit for 2 week intervals just to start from scratch, but quite frankly I'm addicted and never mind starting up again :)

rabidgnat··on Ask HN: Little things/tools that improved your work or life lately?
If you're writing software as DLLs, the venerable Depends.exe is critical:

http://www.dependencywalker.com/

If there was something that made debugging linking errors this easy, then C++ development would be a snap... kind of...

rabidgnat··on Mark Zuckerberg: The evolution of a remarkable CEO
"Do engineers just need interesting technical problems to remain happy?"

I landed a programming gig working on robotics projects, and working on interesting problems makes up for a world of sins :)

rabidgnat··on IT Concepts That Non-IT People Don’t Get
The problems mentioned are huge in the over-30, non-tech crowd. I worked IT in college, and the skills of professors and admins older than 35 were much worse than the average English major in a computer lab.

They viewed the machine as a Magic Box that let them type documents and browse the web and sometimes crashed if they angered it. Some needed help getting CDs out of the tray. Some didn't know that "check if it is plugged in" is a troubleshooting step. Some were very superstitious about crashes ("don't move the monitor!" was my favorite).

If you don't see anyone struggling with these concepts, well, I haven't since I got a programming job 3 years ago. They didn't stop having problems, I just don't see the problems anymore. Always watch out for selection bias: the set of "people you know" isn't representative of the population at large

rabidgnat··on HN: share your unneeded Google Wave invites
My girlfriend is a web developer and we've been trying to snag an invite so she can play around with it. Thank you in advance

jakevoytko@gmail.com

rabidgnat··on Teaching Linear Algebra
"Lazy authors!"

But there's extra money to be made by selling the solutions manual!

rabidgnat··on Will Amazon Become the Wal-Mart of the Web?
I think that the rise of Amazon as the primary retailer leaves the delivery market ripe for upheaval. The current delivery model is kind of awkward: they do a first delivery when you're at work, and then trying to coordinate with them becomes a huge hassle. I usually end up having packages delivered to my parents' house, since they won't leave packages at my door at my current apartment (and rightfully so!)

To me, it seems like it's in Amazon's best interest to use a delivery service that is more convenient for the end user than the current model, like picking from available delivery dates and times.

rabidgnat··on Sprezzatura
The TED talk mentioned reminds me of "You and Your Research" by Richard Hamming: http://www.cs.virginia.edu/~robins/YouAndYourResearch.html

Hamming asserts that people who have done great work fail to "plant acorns." They chase another great revelation instead of stepping back to the fundamental level where they started, and spend the rest of their life only working on great problems, not useful subproblems. I see no reason an artist's success would be different.

rabidgnat··on The Facebook Exodus
"I think the data won't be so easy to collect."

A poll by an external agency wouldn't be very representative of Facebook's population, so Facebook is the only organization that has access to data to accurately make these kinds of claims, which they're going to hold very close to their chest.

Therefore, the obvious easy way to collect this data is to wine and dine some Facebook statisticians :D.

rabidgnat··on How do you keep yourself disciplined when you are freelancing at home?
Graphs help. If you can measure tasks completed and clocked time accurately, seeing that you've spent less productive time than yesterday can give you the kick you need. I don't use this for personal projects, but I was an intern on a website fix-it team that used this method, and it was pretty damn effective.
rabidgnat··on Ask HN: Confronting impossible people (In life and business)
My mother's old trick for situations like these is to be on their side without saying anything bad about anyone else in the house. Instead of "Whatever, I'm freezing my ass off", try something like "I can't believe they'd do that to you! That's awful, man. It's effing cold when this door is left open. ::closes door:: I'll get them to close it tomorrow."

The premise is that it's hard for the righteous to disagree with someone who they think is on their side.

rabidgnat··on Coding Horror: All Programming is Web Programming
"Web programming is difficult in a different way than say, compiler construction or kernel programming... Web programming is mad due to integration issues and malicious users"

To me, web programming isn't as well-defined as most programming topics, and requires competency in too many domain-specific areas for one person to master all of it.

Assuming you know what you want your language/web site to look like, compare..

Writing a parser generator, parsing the tree, optimizing the instructions, generating the instructions, regression testing, benchmarking

with..

Designing a database schema, maintaining HTML/CSS, making a pretty design, writing Javascript, safely deploying, configuring web servers, generating test environments for all browser/OS combinations, doing usability testing, and making sure you're not giving away any of your users' data.

A lot of the compiler-writing phases are yes/no (language design aside), and a lot of the web phases can't be answered easily. E.G. "Is our login system secure?" "Well, probably... Dave's pretty good with this stuff and he thinks it is."

rabidgnat··on Ask HN: How to reduce sloppy mistakes?
“The road to wisdom? Well, it's plain and simple to express: Err and err and err again but less and less and less.” ~ Piet Hein

In other news, I try to check my answers by deriving them two ways. If they agree, then I at least have a good defense :). If I'm working on something that can only be reached one way (like pulling data from a database), I assert boneheaded things that should be true about code + data structures. Sometimes it's superfluous, sometimes it catches mistakes.

If you don't work in a language that provides stack traces on crashes, add logging. You'll get a rudimentary stack trace of what was happening when everything went to hell, as well as have a small radius for where the crash occurs.

rabidgnat··on Yahoo committed seppuku today
"But where's the money?"

It's not in search, as far as Yahoo is concerned. Having gigantic teams dedicated to tweaking search algorithms and running servers was obviously not working out to Yahoo's advantage in the long run... they were losing market share to Bing, and who knows how much they were spending to try to innovate in search? As far as I know, they've been losing money on searching for a long time.

Is Yahoo ever going to be rolling in money again? No, and maybe not ever. However, they have a metric ton of products that can generate revenue: commercial licenses for service APIs, cloud computing resources, etc, and now they'll be focusing more on their advertising (which is REALLY where the money is these days). As far as staying afloat as a company not raking in the big dollars, this was probably the best bet without some major upheaval. They can focus and develop and sell things that actually might have a chance at making some money.

rabidgnat··on Fix Your Terrible, Insecure Passwords in Five Minutes
> Step 2: Turn your phrase into an acronym. Be sure to use some numbers and symbols and capital letters, too

Adding symbols to passwords is a huge inconvenience. Why? Because some of the sites that I use fairly regularly don't allow the characters. I end up having a first-class password and a second-class password for websites that are overly draconian. The last time I used Digg (2 years ago or so) it had this restriction, and that's the only site I feel comfortable about sharing ;). Some well-known companies who should know better have the same restriction.

It doesn't seem awful on the surface, but I also switch my password semi-regularly. If I go back to a website 2 years later, I not only have to guess all of my primary passwords, but I have to guess my secondary passwords as well in hopes that it was one of the ones with a bad password restriction.

rabidgnat··on Maker's Schedule, Manager's Schedule
I've found a way to partially counteract a manager's meeting schedule: splinter my work into extremely small pieces, and write them down in a TODO list. These tasks must have a clear DONE/NOT DONE boundary, and shouldn't need to be revisited. You should also break it up so that every time you finish something, you should be able to check something off of your TODO list. If it's not already there, add it, and then check it off.

For instance, if I had to write code to read data from a GPS unit, I might break it up like this:

* Find data spec on new GPS unit. * Look up current GPS interface.. if none, write an example and design an API around the example. * Write out header file (We use C++... that's another story :D) * Write function 1. ... * Write function n. * Procure GPS unit. * Debug.

I always feel some personal inertia against doing a task like "Write class to load data from the new GPS unit", but it's pretty hard to look at each subtask and say "err, I guess I should organize my inbox." Which I would probably do otherwise.

I have trouble finding tasks that are indivisible, but they exist! Designing and implementing custom data structures is one that I've run into recently... it has an ambiguous up-front design cost that makes it hard to divvy-up work.

rabidgnat··on Burnout
Absolutely. To push some anecdotal evidence on top of the heap, my job has a Light side and a Dark side.

When the Light side is in effect, I generally work 8-9 hours a day at my day job (basically until I feel my focus start to drift, or until I'm no longer involved in discussions). I then go home and exercise + relax + cook dinner for a few hours and then launch into my personal project. Every now and then, I'm able to spend a morning or an afternoon writing scripts or elisp programs that will be productivity wins over the long run. All told, I meet most of my deadlines in this phase.

When the Dark side is in effect (around twice a year, lasting for a month each time), I'm on an insane death march for a demo that is slipping. Sometimes it's my fault, sometimes I'm put on one that's already falling behind. My work days are 12 hours, I sometimes come in on the weekends, and I'm bitter 24 hours a day. My diet, exercise, and sleep habits slip. I spend much of the next few weeks refactoring the code that I write in this phase, because when the deadline is fast approaching, it matters a little less that you use a global variable to transmit state. To use a Jeff Atwood phase, I accumulate most of my Technical Debt in this phase: http://www.codinghorror.com/blog/archives/001230.html.

In the long run, I'm not getting any more done in the burnout phase, but it definitely gives me a lower quality of life and a lower quality of software.

rabidgnat··on Curing Python's Neglect
"API doc autogeneration; I can guarantee that if anyone came up with a default tool with default output such that "doctool module html_directory" was all you needed (and indeed people have) then there would be widespread, perfectly legitimate, disagreement on any number of choices in the design of it."

In my experience, the opposite actually happens. When something is written, people either use it and customize it over time, or they just find something else and say it didn't suit their needs.

It's when an extremely useful/general library is PROPOSED that it becomes a huge disagreement. This is, for instance, why C++'s Boost still doesn't have logging or a unified XML library, and won't likely have a garbage collection library before a C++ TR defines the interface: everyone argues over the color of the bikeshed, and the people who try to write the libraries get caught up in infinite microdiscussions over details.

Conversely, someone like Linus Torvald's success is that he just makes the things he needs/wants (ignoring bikeshed discussions), and people generally end up using his creations. When it comes to software design, a dictatorship is often more productive than a democracy!

"When I come across pages of JavaDoc-ish API documentation, I groan internally and just look at the source instead."

Amen :)

rabidgnat··on Ask HN: I'm Tired of Hacking. What Do I Do? Please Advise.
"No matter what you decide, you must take care of yourself."

I second this! I've been experimenting quite a bit, and my diet and exercise patterns definitely shape my feelings about work more than the B.S. I experience per day.

All of the common health wisdom you know will incrementally help in the short term, even if it's not a long-term solution. If you're feeling irrationally irritable, stop drinking caffeine. If you're feeling tired in the afternoon, eat a light healthy lunch and get some sleep. If you're feeling sore, make sure to stretch out every morning, and make sure you're sitting up straight. Exercise always helps!

← PreviousPage 3 of 3