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?
48 karma · joined March 9, 2011
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 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.
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.
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!
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.
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.
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 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!)
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?
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 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!
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.
http://en.wikipedia.org/wiki/Rule_of_72#Felix.27s_Corollary_...
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."
Ok, so now, instead of trying to figure out what one company does, I have to figure out what two companies do!
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! 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..]) 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."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.
I'd love to see an example as to how you'd integrate that into a Python/Django project.
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.
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 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.