HN user

BobKabob

48 karma
Posts0
Comments30
View on HN
No posts found.

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?

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.

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!

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.

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.

Django 1.3 released 15 years ago

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!

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!)

Django 1.3 released 15 years ago

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?

Django 1.3 released 15 years ago

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!

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!

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.

"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!

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!

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..])

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."

"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.

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.

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.

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.