""" Im Belgium everybody I know gets a 13'th month pay (wich is taxed at 60% or so, but better 40% of something then 50% of nothing). Also we get payed """ Yeah, the "tredicesima" ("13th month") is also an ancient, near-universal tradition in Italy, where I come from. Silly, in a way: you get (say) a total yearly gross pay of 78,000 euros -- but instead of getting it as 12 monthly instalments of 6,500 you get monthly instalments of just 6,000... with a double instalment towards year-end. What's the _point_?!
""" Many companies give some gift as well. I got 6 bottles of good wine (together with all my cow orkers) and other companies give things away as well. I """ (sigh) I got panettone (the traditional Italian, actually Milanese, Christmas cake, which I don't like and don't eat) and cheap spumante (bad enough that I wouldn't actually drink it) just about every Christmas I was working as an employee in Italy. My current (US) employer gives a cash bonus (crisp bills in an envelope, and they cover the taxes on it) instead, and you know what -- I like it *SO* much more. It's not so much that it's way more than the panettone and spumante would cost me -- it's that I get _whatever *I* like_ with that money, say my own favorite brand of bubbly (Freixenet, a Cava from Catalonia which I adore and happens to be surprisingly cheap even in the US) and cake (in my case, some sugar-free concoction made with Stevia, since I should avoid sugar intake)...
""" have even once worked for a company where you could choose between a gift or giving the money towards a good cause, like the red cross. You could choose between 5 organisations. """ My current employer does gift-matching for thousands of recognized charities: whatever I give (up to a pretty large sum), to any one or mote of the recognized charities on their list, they give too. I absolutely love this concept.
""" It is a gift, not a payment. Do you tell you SO or family that you hate the gifts and think they could have bought you a bigger. more expensive one? """ When a corporation (answerable to shareholders) does it, it _must_ by law be in the shareholders' interest. So, I'm fully aware that my employer "gifts" me with cash, gift-matching, corporate parties, and all sorts of other goodies, *in the shareholders' interest*: because they think that getting these (relatively small) elements of *compensation* in different forms than the usual paycheck will please me more, help me feel part of a team/family, make me more likely to stay with this employer and strive to recruit friends and acquaintances which will help the corporation make more money still. Being fully aware of this rationale, I nevertheless appreciate the idea when it's well executed, meets my desires, and just plain _works_ -- but when it _doesn't_ work (as in the case of the "panettone and cheap bubbly" packets I used to get a few years ago, when I was a employee in Italy) I'm actually *helping* my employer by complaining (to them -- whining about it in public is no real use, but no real damage either); they could save the money or employ it in more creative and helpful ways.
...i.e., somebody straddling the ladders of management and technical contribution at my current employer (and with a quarter-century work history of mostly-technical, sometimes-management), i do have a lot to say on this subject. My first attempt at saying it publically was at OSCON (the Open Source CONference) this summer -- you can see an independent third party's review-and-summary at , and a quicktime.MOV file of the original presentation is at (warning: 38 MBytes). I've since been refining and developing this presentation, but there's still no good online reference for it -- I guess I'll have to write an essay or something to cover the subject, unless I can get the presentation videotaped and archived.
To summarize: my point is that one way to be a great manager IS to be (at least) a technical peer of your reports, and in the presentation I highlight tactics and tips that have worked for me in this field. I do not mean to imply that a great manager might not also be quite apart from the daily reality of software development -- although, to a history buff like myself, it IS tempting to think of Caesar's last battle () and how his victory there just wouldn't have happened if he hadn't been up to firing up the troops' enthusiasm by wading into the fray and being at least as good with the gladium and pilum as the best of them. Being a genius for strategy and logistics is surely one great way to be a superb general, but -- at least in today's software development, just as in battles 2000 years ago -- being able, when needed, to "dip down" into tactics and hands-on down-and-dirty fighting (in SW development, that would be, first and foremost, those horrible, endlessly long debugging sessions:-) can't hurt...
> Driver annoyances are the main reason why I went for a 12" PowerBook.
Sleep problems with Linux on laptops (a few years ago) were the reason _I_ went for a 12" iBook, though I soon fell in love and never looked back.
> box (but I had to connect via ethernet initially so I could get past the intro screens, > enter a terminal, and do a quick ifconfig to print en1's MAC address, since Apple only > prints the ethernet MAC on the sticker instide the battery chamber)
System Preferences, Network, Airport -- the "Airport ID" is the MAC you're looking for.
Though I don't know why you had to use Ethernet before you could get a Terminal for ifconfig (which, being an old Unix hand, is what I myself tend to use rather than GUIs).
Anyway -- today, Ubuntu's pretty close to "just working" on a lot of laptops. That, however, still leaves the problem of finding a 2-Kg, 5-hours-battery laptop under $1000 (complete with decent graphics [NOT the integrated kind], wifi, bluetooth, firewire, and decent complements of disk and RAM)... which is why I keep buying iBooks (even should I need to run Ubuntu on them) -- the price/performance of the HW is just too good in comparison to all competitors I've checked out in the same niche (which is pretty close to my heart's desire... a smaller 10.5" widescreen would be even better, but there's no such thing under the kilobuck mark)).
At Google, just about everybody shares offices or cubicles, even the CEO, the presidents, the VPs -- exceptions are made in very special cases, such as the company's MD. Of course, not only there's leeway for people to define their spaces, it's positively encouraged, with competitions for the best and most original ideas.
From my POV, the only downside is that occasionally noise and conversation may make it hard to concentrate -- but I guess that's reason #1 why there's an unlimited supply of pretty decent Sennheuser earphones at the helpdesk... many people choose to use them to immerse themselves in music when needed (I used to love that back in my '20s, not so much now that I'm 50, but, I cope -- my favorite solution when the office is noisy is to take my Google-issued 15" Powerbook out to the wifi-bathed terraces or gardens... that also has the effect that once in a while I can smoke a cigarette while working, quite a plus to an addict like me;-)...
> 1) Honesty works better with technical folks; sugarcoating works better with business folks.
A generalization, of course, but, I agree - sometimes it's a helpful guideline.
> 2) Reverse (1) for those concerned about financials or with titles beginning with 'C' - CFOs and COOs like > honesty.
Heh -- reversing (1) would also imply that CTOs prefer sugarcoating... did you intend this?-)
> 3) If your organization has more than 3 divisions, make sure that no employee is less than 5 levels away > from the top - too many levels makes communication impossible
Here I'm totally confused -- don't you mean exactly the reverse, i.e., make sure no employee is MORE than 5 levels away from the top? And why would this wise advice only apply to organizations with more than three divisions?
Whenever asked to recommend a laptop, I recommend an Apple iBook (or Powerbook if they want something costly and big-screen) -- whether they accept the suggestion or not, my future support load is MUCH lower than if I recommended either Windows or Linux. And I can back it up... e.g. by pointing out that the geeks at Google mostly use Apple _laptops_, even though their desktops are mostly Linux and their servers invariably so (actually, I hear Rob Pike prefers a Mac even as his desktop... but, for desktops, I still prefer to recommend Linux, personally).
The claim that "being forced to use a language" to write a certain application "is like someone telling someone when they build a house that they have to use this screwdriver and only this" is a badly flawed analogy. The language an application is coded in is rather like the material a house is built with -- wood versus brick versus prestressed concrete etc; the material/language will remain with the house/application and define for example its maintenance needs for a long time after the builder/programmer has been paid and gone on to other tasks for other customers. It is therefore quite reasonable for the customer to care about this kind of technical issue! You as a professional may agree or disagree with the customer's preferences, but it's unprofessional to belittle the customer for caring about this kind of choice.
The proper analogy to a silly customer specifying that you must use a screwdriver rather than another, would be one telling you which text editor you must use to edit the program's source code. _THAT_ would be pretty ridiculous (as long as you're procuring your own tools -- if the customer is the one that has to supply your tools, the situation is, again, different)...
Mitch Kapor's OSAF (Open Source Applications Foundation) is using Python for "Chandler", their "lotus-agenda-plus-outlook-plus-tons-of-stu ff" megaprogram.
Unfortunately, I don't really have the freely available time to run measurements that may be of interests to others but are of no direct concern to me, particularly ones that are likely to require inordinate amounts of time and overload my half-gigabyte RAM system for quite a while.
Fortunately, it is trivial to download and install the freely available, open source software I was using (Python 2.3a2), on any machine of your personal interest, and run the "benchmarks", which are really single, simple shell command lines after all. So, why don't you run those measurements, and let us know? Thanks!
Loop performance does indeed depend on Python version. Python 2.3 (currently in alpha, nearing beta) comes with a timeit.py which lets you accurately measure the time taken by any snippet of code (guessing is bad, measuring is good), and also with an itertools module which adds important iterator based tools. On my old Athlon 1.2GHz Linux machine, I've measured:
for x in range(10000): pass
1.45 milliseconds
for x in xrange(10000): pass
1.07 milliseconds
for x in itertools.repeat(0,10000): pass
0.87 milliseconds
It's unlikely that taking a few hundred microseconds longer to loop ten thousand times will make a significant overall difference to your application's performance, but, if all you need is to "loop N times" (i.e., you don't need to access the loop index, just to repeat a given number of times), and if profiling your code has shown that this tiny optimization matters, then consider using itertools.repeat in preference to xrange, and xrange in preference to range. (Also consider upgrading to Python 2.3 ASAP -- it will offer you minor but nice speedups all over the place, and quite significant ones in some specific respects).
Fair enough...! "Unix Review"'s review of the book, found at http://www.unixreview.com/documents/s=7822/ur0303j / , may perhaps prove helpful in this regard. The sample chapter and TOC you can download in PDF format from http://www.oreilly.com/catalog/pythonian/chapter/c h04.pdf might also help you get a more detailed idea about the book.
There were no "earlier editions" of "Python in a Nutshell", by the way; this is the first one.
"""
Im Belgium everybody I know gets a 13'th month pay (wich is taxed at 60% or so, but better 40% of something then 50% of nothing). Also we get payed
"""
Yeah, the "tredicesima" ("13th month") is also an ancient, near-universal tradition in Italy, where I come from. Silly, in a way: you get (say) a total yearly gross pay of 78,000 euros -- but instead of getting it as 12 monthly instalments of 6,500 you get monthly instalments of just 6,000... with a double instalment towards year-end. What's the _point_?!
"""
Many companies give some gift as well. I got 6 bottles of good wine (together with all my cow orkers) and other companies give things away as well. I
"""
(sigh) I got panettone (the traditional Italian, actually Milanese, Christmas cake, which I don't like and don't eat) and cheap spumante (bad enough that I wouldn't actually drink it) just about every Christmas I was working as an employee in Italy. My current (US) employer gives a cash bonus (crisp bills in an envelope, and they cover the taxes on it) instead, and you know what -- I like it *SO* much more. It's not so much that it's way more than the panettone and spumante would cost me -- it's that I get _whatever *I* like_ with that money, say my own favorite brand of bubbly (Freixenet, a Cava from Catalonia which I adore and happens to be surprisingly cheap even in the US) and cake (in my case, some sugar-free concoction made with Stevia, since I should avoid sugar intake)...
"""
have even once worked for a company where you could choose between a gift or giving the money towards a good cause, like the red cross. You could choose between 5 organisations.
"""
My current employer does gift-matching for thousands of recognized charities: whatever I give (up to a pretty large sum), to any one or mote of the recognized charities on their list, they give too. I absolutely love this concept.
"""
It is a gift, not a payment. Do you tell you SO or family that you hate the gifts and think they could have bought you a bigger. more expensive one?
"""
When a corporation (answerable to shareholders) does it, it _must_ by law be in the shareholders' interest. So, I'm fully aware that my employer "gifts" me with cash, gift-matching, corporate parties, and all sorts of other goodies, *in the shareholders' interest*: because they think that getting these (relatively small) elements of *compensation* in different forms than the usual paycheck will please me more, help me feel part of a team/family, make me more likely to stay with this employer and strive to recruit friends and acquaintances which will help the corporation make more money still. Being fully aware of this rationale, I nevertheless appreciate the idea when it's well executed, meets my desires, and just plain _works_ -- but when it _doesn't_ work (as in the case of the "panettone and cheap bubbly" packets I used to get a few years ago, when I was a employee in Italy) I'm actually *helping* my employer by complaining (to them -- whining about it in public is no real use, but no real damage either); they could save the money or employ it in more creative and helpful ways.
Alex
...i.e., somebody straddling the ladders of management and technical contribution at my current employer (and with a quarter-century work history of mostly-technical, sometimes-management), i do have a lot to say on this subject. My first attempt at saying it publically was at OSCON (the Open Source CONference) this summer -- you can see an independent third party's review-and-summary at , and a quicktime .MOV file of the original presentation is at (warning: 38 MBytes). I've since been refining and developing this presentation, but there's still no good online reference for it -- I guess I'll have to write an essay or something to cover the subject, unless I can get the presentation videotaped and archived.
To summarize: my point is that one way to be a great manager IS to be (at least) a technical peer of your reports, and in the presentation I highlight tactics and tips that have worked for me in this field. I do not mean to imply that a great manager might not also be quite apart from the daily reality of software development -- although, to a history buff like myself, it IS tempting to think of Caesar's last battle () and how his victory there just wouldn't have happened if he hadn't been up to firing up the troops' enthusiasm by wading into the fray and being at least as good with the gladium and pilum as the best of them. Being a genius for strategy and logistics is surely one great way to be a superb general, but -- at least in today's software development, just as in battles 2000 years ago -- being able, when needed, to "dip down" into tactics and hands-on down-and-dirty fighting (in SW development, that would be, first and foremost, those horrible, endlessly long debugging sessions:-) can't hurt...
> Driver annoyances are the main reason why I went for a 12" PowerBook.
Sleep problems with Linux on laptops (a few years ago) were the reason _I_ went for a 12" iBook, though I soon fell in love and never looked back.
> box (but I had to connect via ethernet initially so I could get past the intro screens,
> enter a terminal, and do a quick ifconfig to print en1's MAC address, since Apple only
> prints the ethernet MAC on the sticker instide the battery chamber)
System Preferences, Network, Airport -- the "Airport ID" is the MAC you're looking for.
Though I don't know why you had to use Ethernet before you could get a Terminal for ifconfig (which, being an old Unix hand, is what I myself tend to use rather than GUIs).
Anyway -- today, Ubuntu's pretty close to "just working" on a lot of laptops. That, however, still leaves the problem of finding a 2-Kg, 5-hours-battery laptop under $1000 (complete with decent graphics [NOT the integrated kind], wifi, bluetooth, firewire, and decent complements of disk and RAM)... which is why I keep buying iBooks (even should I need to run Ubuntu on them) -- the price/performance of the HW is just too good in comparison to all competitors I've checked out in the same niche (which is pretty close to my heart's desire... a smaller 10.5" widescreen would be even better, but there's no such thing under the kilobuck mark)).
At Google, just about everybody shares offices or cubicles, even the CEO, the presidents, the VPs -- exceptions are made in very special cases, such as the company's MD. Of course, not only there's leeway for people to define their spaces, it's positively encouraged, with competitions for the best and most original ideas.
From my POV, the only downside is that occasionally noise and conversation may make it hard to concentrate -- but I guess that's reason #1 why there's an unlimited supply of pretty decent Sennheuser earphones at the helpdesk... many people choose to use them to immerse themselves in music when needed (I used to love that back in my '20s, not so much now that I'm 50, but, I cope -- my favorite solution when the office is noisy is to take my Google-issued 15" Powerbook out to the wifi-bathed terraces or gardens... that also has the effect that once in a while I can smoke a cigarette while working, quite a plus to an addict like me;-)...
> 1) Honesty works better with technical folks; sugarcoating works better with business folks.
A generalization, of course, but, I agree - sometimes it's a helpful guideline.
> 2) Reverse (1) for those concerned about financials or with titles beginning with 'C' - CFOs and COOs like
> honesty.
Heh -- reversing (1) would also imply that CTOs prefer sugarcoating... did you intend this?-)
> 3) If your organization has more than 3 divisions, make sure that no employee is less than 5 levels away
> from the top - too many levels makes communication impossible
Here I'm totally confused -- don't you mean exactly the reverse, i.e., make sure no employee is MORE than 5 levels away from the top? And why would this wise advice only apply to organizations with more than three divisions?
Whenever asked to recommend a laptop, I recommend an Apple iBook (or Powerbook if they want something costly and big-screen) -- whether they accept the suggestion or not, my future support load is MUCH lower than if I recommended either Windows or Linux. And I can back it up... e.g. by pointing out that the geeks at Google mostly use Apple _laptops_, even though their desktops are mostly Linux and their servers invariably so (actually, I hear Rob Pike prefers a Mac even as his desktop... but, for desktops, I still prefer to recommend Linux, personally).
Alex
Yeah, sure, but Python's:
for x in collection: do_something(x)
is SO clearly better!
The claim that "being forced to use a language" to write a certain application "is like someone telling someone when they build a house that they have to use this screwdriver and only this" is a badly flawed analogy. The language an application is coded in is rather like the material a house is built with -- wood versus brick versus prestressed concrete etc; the material/language will remain with the house/application and define for example its maintenance needs for a long time after the builder/programmer has been paid and gone on to other tasks for other customers. It is therefore quite reasonable for the customer to care about this kind of technical issue! You as a professional may agree or disagree with the customer's preferences, but it's unprofessional to belittle the customer for caring about this kind of choice.
The proper analogy to a silly customer specifying that you must use a screwdriver rather than another, would be one telling you which text editor you must use to edit the program's source code. _THAT_ would be pretty ridiculous (as long as you're procuring your own tools -- if the customer is the one that has to supply your tools, the situation is, again, different)...
Mitch Kapor's OSAF (Open Source Applicationsu ff"
Foundation) is using Python for "Chandler", their
"lotus-agenda-plus-outlook-plus-tons-of-st
megaprogram.
Unfortunately, I don't really have the freely available time to run measurements that may be of interests to others but are of no direct concern to me, particularly ones that are likely to require inordinate amounts of time and overload my half-gigabyte RAM system for quite a while.
Fortunately, it is trivial to download and install the freely available, open source software I was using (Python 2.3a2), on any machine of your personal interest, and run the "benchmarks", which are really single, simple shell command lines after all. So, why don't you run those measurements, and let us know? Thanks!
It's unlikely that taking a few hundred microseconds longer to loop ten thousand times will make a significant overall difference to your application's performance, but, if all you need is to "loop N times" (i.e., you don't need to access the loop index, just to repeat a given number of times), and if profiling your code has shown that this tiny optimization matters, then consider using itertools.repeat in preference to xrange, and xrange in preference to range. (Also consider upgrading to Python 2.3 ASAP -- it will offer you minor but nice speedups all over the place, and quite significant ones in some specific respects).
Fair enough...! "Unix Review"'s review of the book, found at http://www.unixreview.com/documents/s=7822/ur0303j / , may perhaps prove helpful in this regard. The sample chapter and TOC you can download in PDF format from http://www.oreilly.com/catalog/pythonian/chapter/c h04.pdf might also help you get a more detailed idea about the book.
There were no "earlier editions" of "Python in a Nutshell", by the way; this is the first one.