HNHacker News
TopNewBestAskShowJobs

BobKabob

48 karma · joined March 9, 2011

submissionscomments
BobKabob··on Amazing video showing what it is like to run solo as a blind person
The most amazing thing about this for me was that YouTube reports that there were only 152 views when I watched it, and zero comments. And the link has 7 points on HN, Yet this link made it to the front page of HN (currently the 8th highest link).

I guess I thought it would have to be clicked on a few more times, to get up to number 8!

There must be some high-karma people who voted this up.

Anybody know what the HN algorithm is, to get this onto the front page?

BobKabob··on Fowndr: private network for startups, now live and handing out invites
OK, so once you have launched a company, and survived past those scary first couple years, you no longer qualify?

I ask because I founded a startup in '96, and we still try to "think like a startup". Just because we've been profitable for years doesn't mean we're done innovating.

BobKabob··on The Decline of Facebook As A Social Network
I signed up for facebook, friended no one that didn't friend me and that I didn't know personally, told no one about my account, and have a folder of facebook spam in my email box that already has 40 messages in about 2 months.

Facebook spams you if someone has your email address in their address book. Facebook spams you if someone wants to be your friend. Facebook spams you if someone has a birthday. Almost half of my Facebook spams are in Spanish, and I don't speak Spanish.

And I have six friends in Facebook. Six. I can't imagine how bad it is if you have 100.

BobKabob··on Ian Bicking: My Unsolicited Advice For PyPy
It seems to me that there could be a version of Python that is solely optimized for speed, and allows full compilation. I haven't given this a great deal of thought, but I bet that if you defined a subset of the language that is Python-like, but doesn't allow the full introspection and fancy class manipulations, and other cool features, you could have a fully compilable language that would rival C in performance, but kick C's butt in readability.

Maybe it's not a binary switch (performance exclusions switch, for example). Maybe it's a setting with various degrees of performance. You need introspection? We'll give you that, but now you can only compile at the 2x performance level (or whatever). You need certain libraries that aren't written for performance? That's going to cost you.

Then again, it's quite possible that I don't know what I am talking about!

BobKabob··on Facebook Comments Epitomizes Everything I Hate About Facebook
I was a regular contributor to Techcrunch comments (and not a troll), but I haven't commented once since they moved to Facebook comments. And I won't.

This Techcrunch article is the first one in a week or more that I have read the comments. And I've pretty much tuned out of Techcrunch now, and moved over exclusively to HN. I used to have Techcrunch open all day, every day. Now it's gone.

So, one switch from Disqus to Facebook comments lost me - a long time reader of TC, and an active participant at TechCrunch 40 and TechCrunch 50. And they probably don't even know it.

I wasn't in love with the Disqus system, but there was one feature that was right for me, that FB comments don't have: separation from Facebook.

BobKabob··on Periodic Table of the (HTML5) Elements
Gimp Screen capture and print.
BobKabob··on Periodic Table of the (HTML5) Elements
Pretty cool!

Not to be pedantic (I hate that word), but in the spirit of improvement, you may want to spell check your popups.

(example: "<bdi> Text that is seperated from directional formatting of its surroundings."

... should be separated)

At first, I looked at this chart, and thought "cute, but what good is it." Then I started clicking on it, and eventually found myself printing it and hanging it in my office! Good work.

BobKabob··on Django 1.3 released
I agree (except for the part where you wanted to down-vote me). I wasn't trying to say it was their fault. It was more a comment about other comments, not about the django guys.

I love django. But I also I can't wait for the day when we can quit talking about Python 2, and that Python 3 will be the obvious choice for ALL environments.

Considering Python 3K discussions go back to 2006 (PEP 3000) or earlier, and Python 3 was released in 2008, and we're still probably years away from closing the book on Python 2, it's just amazing how long it takes to "turn a battleship". This transition to Python 3 might be a decade or more, from start to finish! amazing!

BobKabob··on FBI wants public help solving encrypted notes from murder mystery
On the contrary, sometimes "out of the box" thinking by a non-expert is exactly the lightning bolt from out of nowhere that can cause a breakthrough.
BobKabob··on Ask HN: How do I downvote?
You can submit stories with a new account. Press submit at the top.

You can also link to your site in the comments (although it better be relevant to the discussion, or you'll probably get voted down into oblivion as spam!)

BobKabob··on Show HN: CaptainObvio.us - a place to share ideas
@CaptainObvio.us: There's always room for another great site about ideas, but check out halfbakery.com. You might get some ideas from their site. It's good, not great, but has an active user base.
BobKabob··on Django 1.3 released
I can't believe it... not one comment telling the django guys to quit celebrating and get back to work on a version that supports Python 3? :-)

Seriously, Adrian, Jacob, and the django team, I love your product. I actually just bought a SECOND copy of your book (available free on the web). What's wrong with this picture?

BobKabob··on Django 1.3 released
You may want to take a look at Pinax to get a HUGE head start on a django-based web app. (http://pinaxproject.com )

And since installing Pinax auto-installs django 1.2 (currently), you may want to stick with that.

But if you aren't using Pinax, move forward to 1.3 if you are new.

I'm using Pinax, and I'll use the version that they auto-install with their product (which was 1.2 when I installed on a new machine yesterday). I can't wait until Pinax ships 1.3! looks cool!

BobKabob··on From 0 to 100k users in 72 hours: the full story behind Breakup Notifier
I'm glad TC moved away from Discus and moved to the facebook commenting system. I won't ever comment there again. I was wasting far too much time on TC comments.
BobKabob··on What It Feels Like to Be Rich
I think there's a Biblical parable that probably fits here - the one with the "talents".

I just believe that those who are blessed in life shouldn't flush it down the toilet. A million dollars a week? Think of how many people could have been fed, or how many jobs could have been created!

BobKabob··on Poll: Did you apply to YC for S11?
what tool(s) did you use to create that video? I love it! very impressive!
BobKabob··on Poll: Did you apply to YC for S11?
If you want to see this Private Beta, click here, and help me out. :-)

http://answerin30.com/0x1ks

BobKabob··on What It Feels Like to Be Rich
Anybody losing $1M PER WEEK makes you question how the fool and his money got together in the first place.

Good to see at least a little justice in this world. I wouldn't wish bad things to happen to anybody, but if it has to happen to someone, well, the guy who is so foolish with his money would be tops on my list.

BobKabob··on Rule of 72
I really like Felix's Corollary and the Millionaire's Estimation!

http://en.wikipedia.org/wiki/Rule_of_72#Felix.27s_Corollary_...

BobKabob··on Don't distract new programmers with OOP
"Any traditional OOP programmer might tell you that essential elements of OOP are encapsulation and message passing.

The Python equivalents are namespaces and methods.

Python doesn't subscribe to protecting the code from the programmer, like some of the more BSD languages. Python does encapsulate objects as a single namespace but it's a transluscent encapsulation."

From: http://www.voidspace.org.uk/python/articles/OOP.shtml

BobKabob··on AngelList for Developers
"We're the AngelList for Developers"

Ok, so now, instead of trying to figure out what one company does, I have to figure out what two companies do!

BobKabob··on Show HN: My Node.js two weekend project. Color palettes from Flickr images.
I'm using FF on Win. I think you need to key in a search term at the top, and press enter, to see what others are seeing.
BobKabob··on Stack Overflow: Printing 1 to 1000 in C
Even better Python variation: Prints 1 to 1000 and quits:

    from __future__ import print_function 
    z="0123456789"
    map(print,map(lambda x: int("".join(x))+1,zip(sorted(z*100),
                      sorted(z*10)*10, z*100)))

The way it works is to create 3 strings, one for each digit-place. The first digit, when counting from 000 to 999, is 100 zeros, followed by 100 ones, followed by 100 twos, etc. That is represented by

    sorted(z*100)
The middle digit is 10 zeros, 10 ones, etc... and repeat this 10 times. So this is

    sorted(z*10)*10.
The least significant digit is represented by a string that just counts and starts over. it's 1000 characters long: "0123456789012345..." and represented by

    z*100.
I define an unnamed function (using lambda), that does the following: Join the three digits, make it an int, and add 1. So the result of this is a list of numbers from 1 to 1000. In other words,

    map(lambda x:  int("".join(x))+1,zip(sorted(z*100),
                              sorted(z*10)*10, z*100)))
is about the same as if I just used range(1,1001)

Then I map it to the new print function that is available in Python 3.0, or with the import statement.

A simpler version would use range, but that seems a little too simple:

    from __future__ import print_function 
    map(print,range(1,1000))

Now that I think about it, this last one is the right answer!
BobKabob··on Stack Overflow: Printing 1 to 1000 in C
How about this Python solution:

    z="0123456789"
    print map(lambda x:int("".join(x))+1,zip(sorted(zip(*z)[0]*100),
              sorted(zip(*z)[0]*10)*10,
              zip(*z)[0]*100))
Only downside is that it prints as a list (so it has the format of [1,2,3..])
BobKabob··on Stack Overflow: Printing 1 to 1000 in C
Here's a solution in Python, using pretty much the same logic as the top vote-getter on Stack Overflow:

    def f(a):
        print a
        print a+1
        {999: int}.get(a,f)(a+2)

    f(1)
Note, I had to count by twos, because when I counted by ones, I got a "maximum recursion limit exceeded" error.

Basically, the concept is to call f recursively, until you get to 999 (and had printed 999 and 1000), at which time you call some non-recursive function (I call "int").

At 999, the inner-called f function terminates, leading to the unwinding of the stack (each previous f function terminating), and then the program ends.

This statement is the hard one to understand:

        {999: int}.get(a,f)(a+2)
Basically, it's saying "Look up 'a' in this hard-coded dictionary that only has one value in it - for 999. If 'a' isn't found (as it won't be most of the time), set the look-up value to the function called 'f'. Otherwise, set the look-up value to the function called 'int'. In either case, call that looked-up value, passing the parameter of a+2."
BobKabob··on Poll: Hacker News User Age
"Voluntary response data are worthless" is flat out wrong Period.

This poll is a case in point, I enjoyed reading the responses. And I enjoyed reading your rant about voluntary response data. Therefore there is some worth.

BobKabob··on Introducing NowJS or "How to make a chat server in 12 lines of code"
Very cool stuff!

I'd love to see an example as to how you'd integrate that into a Python/Django project.

BobKabob··on A tale of two programmers
Very true.

And in fact, all things considered, I believe we are both doing pretty well now, separately. So you could say that all's well that ends well.

My business with the 3rd partner has lasted far longer than the typical small business. And I think my programming soulmate is doing OK. The latest information I can find on him is that he left his next job (who was formerly a large customer of ours), and I can also see that he subsequently sued them for back pay. Those legal documents listed that he was owed over $100K from the company he left (and there are certain other indications that he was terminated abruptly).

If you end up in legal battles with your last two employers, that's not a good sign. This supports your theory that I didn't know him as well as I thought I did. On the other hand, I'm sure his side of the story is that I was a huge ass in the process, but I honestly tried to live up to every agreement that we made. Still, I carry guilt to this day.

I must have said to my lawyer and 3rd partner at least 100 times that I want what's fair to my family, but no more than what's fair. I could see we were going to be saddled with huge debt payments, and I sure as heck wasn't going to put that burden on my family, to the benefit of the guy who was stiffing us!

I know my soulmate kept saying over and over that he just wanted out. I understand that the pressures were tremendous from his wife. All he had to do was negotiate in good faith, and he would have saved himself about $100K in settlement and legal bills.

If I didn't value friendships, I'd say "all's well that ends well". But really, it caused a TON of stress and pain. My relationship with my current business partner is exceptional, even though he's not a programmer-genius. He's a sharp guy, but above all else, he's highly ethical.

Bottom line, be highly ethical, even if it costs you. And extreme talent without ethics is not worth partnering with.

BobKabob··on A tale of two programmers
I would say that he was Steve, I was Chris. Although one of those names is actually one of our names, and incorrectly assigned.

He is the best pure software developer I have seen ever. He could crank code like no one I have ever seen. But we were even better as a team. Until we weren't.

BobKabob··on A tale of two programmers
I'll tell you what NOT to do. Don't think of him as the first one on the hiring list!

I had my pair programming soulmate as early as age 15, back in the very early PC days (mid-to-late 70's). We ended up working together at a small software company, and having a blast.

We went to different schools. I graduated before he did. I got a great job at a fast-growing silicon valley computer company. The next year, I helped him get hired. He even reported to me for a while, at what is today one of the largest computer companies.

We always talked about starting our own business. Finally, after lengthy successful corporate careers, we got a 3rd partner who was willing to quit to launch a business, provided that "Chris and Steve" (me and my programming soulmate) would join him, the other guy first, me second.

Unfortunately, wives and families got involved, complicating things. The other guy never wanted to quit his safe and secure job at the large computer company, and so he balked at his earlier agreement to be the first of us to quit. So the 3rd partner turned to me in desperation, even though I was not his first choice, and it wasn't what we had previously signed as an agreement.

I quit the cushy corporate job (I had the better of the two jobs), and helped to launch the small business. We were making good money. Then the other guy FINALLY joined us. Unfortunately, we never made any profits while he was employed fulltime. There was too much stress and too many family issues. Finally, the soulmate quit, taking one of our largest customers with him, and tried to stiff the bank on the business loan, on the way out the door. He didn't honor many of the signed papers, including shareholder buyback agreements, loan documents, etc. Instead, through his lawyer, he said "I hope the bank sues us", because he had falsified his asset statement to the bank, claiming that he had no assets. He figured he was safe, and they'd come after me.

The loan holder ended up suing him, and winning by default. Funny thing, when you sign those loan documents, you sign away your rights to fight in court, and you agree that the loan holder can sue and win without you even knowing it. The loan holder aimed directly at him, not at me or the 3rd partner. He got sued and lost.

Naturally, this pissed him off, but it was his own bad legal advice that got him into the mess. He was unwilling to come to the table to negotiate a fair settlement, and wanted to hold onto company ownership, but was not willing to live up to company debt. Sorry, pal, it doesn't work that way.

So, I move on. The company never had a profitable year with him as a fulltime employee, and never had a loss with him out. The business is doing fairly well after 15 years. We don't speak to this day. Best friends from childhood and programming soulmates, but it's NOT a way to start a business.

So forget about the idea that he's the first person that you'll hire. Bad idea.