Well, yes, my proposed system is obviously not perfect, I just think it'd be a step into the right direction. I'm not sure I buy into the union rep/boss scenario. That kind of opression would clearly be illegal and I doubt it could be pulled off on a large scale without someone reporting that union rep/boss to the authorities.
Anyways, an interesting (but probably too complicated) variant could also be to combine the vote with a user-chosen pin and duress pin. The counter-websites would only return the actual vote when the request contains a pin that the user chose at vote-time and that is not printed on the receipt. A simple algorithm would be needed that lets the user alter the pin in a way so that the website reports a vote for any other party. Thus, *every* entered pin would return a vote confirmation, but only the real pin reveals the real vote.
As said, this is probably too complicated for someone to grasp who could possibly get into the union rep situation (most likely a low education person), but imho even this problem is theoretically solvable with a technical solution.
Having a single corporation or institution count the votes is a problem in itself, no matter whether humans or machines read the actual ballots.
What I really want after I push the button is to immediately get my vote acknowledged by multiple independent (and competing) parties. When both the democrat's and the republican counter has acknowledged my vote then I can be fairly sure that any tampering will be detected.
So how can this work? My idea would be cryptographic signing. Each vote gets a unique number that is sent to the counting parties over the internet. Their servers will register my vote and return a signed confirmation for that particular vote, which the physical voting machine can print on my receipt.
Then when I get home I just go to the website of each counting party, enter my signature (or its fingerprint) and re-check that my vote was *really* received by everyone.
Obviously there are still ways to tamper with this approach, e.g. by patching a diebold so that it re-prints receipts so that all democrat voters get the same receipt while only one vote is actually sent out to the counters. But IMHO it would make detection of such tricks much easier and the whole system much more transparent than what we have today.
Yup, python is more popular than ruby in the sysadmin arena in my area, too. I guess for the reasons that GP mentioned - it's easier to learn the basics and the syntax generally makes it harder to write stuff that you don't want to maintain later than that of Perl or Ruby.
They aren't any different than any other employee, they can either function as a normal person or not, if not, you are probably better of firing the 'uber programmer' and hiring a half-assed programmer that will actually act like a normal human being. Its far more important for a company to have a reliable individual than it is to half a great programmer who doesn't listen or does whatever THEY want rather than what you need from them.
There are so many wrongs in this paragraph, it hurts. First off, written status reports are not a part of "acting like a normal human being" or even of "being a normal employee". It's a sign of a dysfunct corporate culture where people don't talk to each other and where middle management is not even trusted with rating their own teams.
The normal process for dealing with a problem-employee would be to talk about it. You know, stuff like: "Hey bob, what's up with your performance recently". And to closely monitor problem areas in order to find ways for improvment. Know what, it seems like that would be your actual job if you weren't all busy passing written self-assessments back and forth.
Secondly, working with half-assed programmers is always more expensive than working with uber-programmers (aka "rockstars"). But by the way you describe your environment I strongly doubt that you'd be able to convince a rockstar to work for you anyways. I even doubt that you have ever only interviewed a rockstar that deserves this label.
A strong indicator for a great programmer is that he indeed doesn't need to listen to you much. Not because he doesn't want to, but rather because he already understands your pesky little business problems and requirements better than you do. A great programmers explains your problems to you, not the other way round. In an environment where rockstars are involved you merely exist to serve the programmers needs, you are effectively their secretary. You schedule meetings, acquire resources for them, interface with other parts of the company and generally make sure that nothing gets in their way of getting the job done. "Written reports" are an anachronism in such a setting. Hence my conclusion that you have never worked with a rockstar and not the slightest idea how they tick.
For example, if I'm in sales and I've told a customer X feature will be ready by a certain date
See, and in the next half of your sentence you provide the exact reason for why you don't do that. You don't sell what you don't have. I'm regularly amazed at how many people still fail on this glaringly trivial premise.
This is definately a good finishing move for meetings and such. In addition I'd suggest to get into a habit of dealing a few good drive-by slaps in the neck whenever you're on your way through the office. People just love that, it makes them feel like a true part of the family.
For the inevitable occassion of someone questioning your authority, e.g. by making eye contact while being instructed by you, I'd suggest a good, educational backhand slap in the face. In healthy doses ofcourse! That means repeatedly if the situation demands it. This not only helps the offender to understand his mistake better, it also provides valuable guidance for all other members.
However, to play devil's advocate, the Red Bull folks don't encourage you to stand directly in front of your TV with a can in your hands, spinning and waving your arms in a rapid and excited fashion in relation to things which are happening on the screen, occasionally flicking the can towards the TV or simulating a throw with it whilst it is tethered to your wrist by a small and, it seems, breakable strap.
Heck, but you paid money to buy the device that let's you do these things. You have probably seen friends doing it before. The wii displays a pretty clear warning screen (not skippable iirc) before each game. You have probably encountered at least once before in your life what happens when solid things are thrown into less solid things. In fact, if you seriously consider suing nintendo over this you've probably encountered at least once before what happens when a solid thing is thrown into your less solid head...
That's not entirely true. Gas and oil are the most affordable resource today because the technologies are long established, because the material itself has been comparably cheap so far but also because the gas/oil lobby is continiously lobbying strong against the development of alternative technologies (in their own best interest, ofcourse).
It's not as clear as you make it out to be that oil/gas are *really* the cheapest option anylonger, at least when you take the cost for oil-wars and the measurable cost for natural disasters due to global warming into the equation. Pretty much everyone agrees by now that the reliance on oil/gas can not be sustained in the long-term for that very reasons, plus: We're simply running out of it within the next hundred years or so.
I could very well see a difference in policy coming. Ofcourse the US is not going to give up on oil/gas over night, but they'd be very dumb if they didn't raise the investments into alternative technologies big time.
You are mistaken, in our system this is the exact definition of a good politician. We have no metrics other than vote-counts (and, in some cases, lawsuits...). Appealing to the masses is part of the game. Remember: The first step towards being a good administrator is to *become* an administrator in first place.
If you can't manage to climb the ladder on your own, using all the dirty tricks that it takes, then you'd probably not survive long on the top anyways.
I don't get the whining. You can whine about apple banning apps that they don't like but whining about pricing? C'mon it's a free market (unless you step on apple's toes) and it works like every other market: People buy what gets the job done for as cheap as they can get.
If you build a top notch app that people want and that has no competition then it will most certainly sell for $5, maybe even for $10 or $50.
Sounds like you have a deep hate for children? Seriously, there are valid arguments for Lego Mindstorms, Assembler, Python, heck some twisted mind may even find an argument for Java. But how exactly do you intend to explain to a kid why it basically has to write his first program backwards, in a syntax and under semantics that can make even veteran programmers cry for mercy?
This was (deservedly) modded funny but this scam really exists! (WARNING link points to the scam site, click at your own risk, you may broadcast your ip address to them...)
Don't worry, many boys your age have similar temper problems. It'll get better with time. Just don't carry that tone into conversations with adults in the real world.
Well, thanks for providing the obligatory fanboy reply...
No, the clickwheel is still annoying to operate inside a pocket, especially in tight pockets, even when both thumbs are fully functional. The On-The-Go Playlist is a cheap excuse and you know it. Or how do I start a second playlist again? And about structure: I'll take my personal directory structure over tag soup any day, thanks. At least until I find a player that lets me create playlists directly on the device...
Did I say that? Don't think so. I just said that I'm highly sceptical about your claims, you're free to prove me wrong anytime.
Furthermore I didn't say that it's impossible. Yes there are liquid layouts without bugs, some even look decent. They are just very, very rare because of the reasons I mentioned - it's ungodly hard to get any reasonably complex liquid layout to render correctly in all browsers. Thus your claim that all of your layouts are liquid and "just work" is dubious at best. You either found some magical CSS templating bullet or spend a lot more time on hacks than you're willing to admit.
As said, I love to learn and would be very curious to take a look at one of your stylesheets. If it lives up to your claims then it must be a real goldmine and you should maybe release it as a CSS framework.
You sure won't mind posting some URLs of your masterpieces? Having done quite a few liquid layouts myself I can only second what grandparent said.
Getting it right in a way that does *not* cause stuff to overlap, truncate or wrap in funny ways when font size is increased is very hard.
Sure, for a trivial layout everything is simple. Try it on a 3 column layout with reasonable design (boxes, panes, columns, background-images) and some actual content.
There aren't many instances where tables give an advantage, and in the few instances it, the advantage isn't significant
You're either talking tongue in cheek or you haven't worked with reasonably complex layouts, yet. Something as supposedly simple as a 3 column layout still requires fairly nasty hacks (google for "holy grail") and establishing new columns inside such a layout gets *really* painful at a point, especially when you're talking liquid layout (no absolute pixel values) or when floats are involved (and those are involved in every layout).
The underlying problems here are so nasty that actual, full-blown CSS frameworks (YUI, blueprint) have been invented, for the sole purpose of supporting the creation of a (theoretically) infinitely sub-dividable CSS grid layout. Sound familar? It should, they basically bring the old table into CSS-land...
Unfortunately these frameworks have a few problems of their own. First and foremost: they usually blow up hard when you don't play exactly by their rules. Need to place an additional box in a way that wasn't foreseen by the framework template? Tough luck.
So where does that leave us? My recommendations would be:
Stay away from the frameworks. A reset.css certainly won't hurt but don't use their template and grid stuff unless you're absolutely sure the framework can handle all your layout needs down the road. The only way to be sure is: Sketch up your whole site upfront, which is generally a good idea anyways...
By all means use CSS for the base layout of your site. The holy grail examples really work (and, btw, are the only CSS way to get a n-column layout).
When it comes down to the nitty gritty details, e.g. when you need another two columns inside the content pane of your site (but only on certain pages - we all know how it goes...) then don't be afraid to fallback to tables when CSS and MSIE give you the obligatory headache.
These recommendations come straight from the trenches. There may be higher-level CSS gurus out there that will swirl up any kind of CSS layout without a blink, for those these recommendations obviously don't apply. But for everybody else: Stick to your priorities. It's really easy to waste half a day on an obscure CSS problem that could have been solved in 5 minutes with a table. And then a few days later someone tells you that safari (the one browser you haven't tested) or his iphone (the one device you really want to support) has found yet a new unpleasant way to render your carefully crafted pile of CSS hacks...
I have a nano here, bought it because well, it's the mp3 player, right? After owning it for roughly I year I'm quite sure that my next mp3 player will not be an ipod again.
Here's my list:
Pro:
Top notch look, feel and build. There's no discussion, this is the slickest player on the market.
Size, form factor. Again this thing is slick, robust and nearly as small as it gets before becoming unusable (for a player with a display). It fits in every pocket and weights nothing.
Hip-Factor. "Oh Cute"-Factor. etc.
Con:
Usability. The click-wheel is awesome but at the same time it's fairly hard to operate the player without looking (e.g. inside a pocket). All cable remotes I have seen also have a clickwheel. I've learned that in situations where I can't or don't want to pull out the player (e.g. while biking or while walking through a shady park) I'd much prefer old fashioned buttons with tactile feel and a physical volume slider.
Playlists. So I have this fancy scroll-wheel navigation but am not allowed to create playlists on the player? What were they thinking?
No raw directory structure. I'm using amarok to feed my ipod and it works okay. But many of my mp3s are not properly tagged and don't contain cover art, thus the builtin browsers are mostly useless to me, except for the playlists that I previously prepared in amarok. I'd much prefer if I could just navigate my existing directory structure instead of being forced into the flattened itunes-view.
So, these are small issues at first but once the "Oh Shiny"-factor wears off they turn into real annoyances. I've come to the conclusion that the ipod really is a blender (admittedly a good one!) amongst the mp3 players and that a different device will probably serve me better, even if it's not quite as shiny on the surface.
Can someone recommend a device that fares better in the areas I mentioned?
Do you have a quote of Guido "admitting" that? Because all statements I have seen from him were the opposite.
Furthermore I can only repeat that all the problems you mentioned are non-issues if you just configure your editor properly. My editor shows me the difference between a space and a tab and will happily convert spaces to tabs and back when asked to. If yours can't do that then maybe it's not a good choice for python editing? (at least when you have to deal with copy/paste a lot - which indicates bigger problems btw)
In my years of working with python I did indeed have the occassional snippet go through e-mails or pastebins - and I can't remember it being any more troublesome than with any other code.
And yes, when I started with python I was irritated by the mandatory indendation just like everybody else. But I learned soon that this kind of enforced readability is a great advantage *especially* when working with others people code...
Well, that's a fairly exotic scenario you're describing and imho it's *very* far fetched to blame your problems on python. The real problem obviously was that you were too lazy to set up a proper developement environment (e.g. by virtualization or with a simple shell script to copy your editor config over to the running liveCD with a single keystroke).
Well, developers that can't even configure their editor properly are a no-go anyways, regardless of language. If you tolerate that then Python is the least of your problems because you'll need a checkin-hook to sanitize the submitted files anyways. Otherwise you'd get broken/bloated diff's constantly...
Same here, and that was almost 2 years ago now. Any coder worth his salt is already indenting his code the way python likes it anyways, no matter which language he's using, so this part of the transition is normally a non-issue.
Well, yes, my proposed system is obviously not perfect, I just think it'd be a step into the right direction.
I'm not sure I buy into the union rep/boss scenario. That kind of opression would clearly be illegal and I doubt it could
be pulled off on a large scale without someone reporting that union rep/boss to the authorities.
Anyways, an interesting (but probably too complicated) variant could also be to combine the vote with a user-chosen pin and duress pin.
The counter-websites would only return the actual vote when the request contains a pin that the user chose at vote-time and that is
not printed on the receipt. A simple algorithm would be needed that lets the user alter the pin in a way so that the website reports
a vote for any other party. Thus, *every* entered pin would return a vote confirmation, but only the real pin reveals the real vote.
As said, this is probably too complicated for someone to grasp who could possibly get into the union rep situation (most likely
a low education person), but imho even this problem is theoretically solvable with a technical solution.
Having a single corporation or institution count the votes is a problem in itself, no matter whether humans or machines read the actual ballots.
What I really want after I push the button is to immediately get my vote acknowledged by multiple independent (and competing) parties.
When both the democrat's and the republican counter has acknowledged my vote then I can be fairly sure that any tampering will be detected.
So how can this work? My idea would be cryptographic signing. Each vote gets a unique number that is sent to the counting parties over the internet. Their servers will register my vote and return a signed confirmation for that particular vote, which the physical voting machine can print on my receipt.
Then when I get home I just go to the website of each counting party, enter my signature (or its fingerprint) and re-check that my vote was *really* received by everyone.
Obviously there are still ways to tamper with this approach, e.g. by patching a diebold so that it re-prints receipts so that all democrat voters get the same receipt while only one vote is actually sent out to the counters. But IMHO it would make detection of such tricks much easier and the whole system much more transparent than what we have today.
Yup, python is more popular than ruby in the sysadmin arena in my area, too. I guess for the reasons that GP mentioned - it's easier to learn the basics and the syntax generally makes it harder to write stuff that you don't want to maintain later than that of Perl or Ruby.
Unscientific sample from my box here:
$ grep "/python" /usr/bin/* | wc -l
114
$ grep "/ruby" /usr/bin/* | wc -l
28
And from a fairly vanilla debian box:
$ grep "/python" /usr/bin/* | wc -l
34
$ grep "/ruby" /usr/bin/* | wc -l
17
There are so many wrongs in this paragraph, it hurts.
First off, written status reports are not a part of "acting like a normal human being" or even of "being a normal employee". It's a sign of a dysfunct corporate culture where people don't talk to each other and where middle management is not even trusted with rating their own teams.
The normal process for dealing with a problem-employee would be to talk about it. You know, stuff like: "Hey bob, what's up with your performance recently". And to closely monitor problem areas in order to find ways for improvment. Know what, it seems like that would be your actual job if you weren't all busy passing written self-assessments back and forth.
Secondly, working with half-assed programmers is always more expensive than working with uber-programmers (aka "rockstars"). But by the way you describe your environment I strongly doubt that you'd be able to convince a rockstar to work for you anyways. I even doubt that you have ever only interviewed a rockstar that deserves this label.
A strong indicator for a great programmer is that he indeed doesn't need to listen to you much. Not because he doesn't want to, but rather because he already understands your pesky little business problems and requirements better than you do. A great programmers explains your problems to you, not the other way round. In an environment where rockstars are involved you merely exist to serve the programmers needs, you are effectively their secretary. You schedule meetings, acquire resources for them, interface with other parts of the company and generally make sure that nothing gets in their way of getting the job done. "Written reports" are an anachronism in such a setting. Hence my conclusion that you have never worked with a rockstar and not the slightest idea how they tick.
See, and in the next half of your sentence you provide the exact reason for why you don't do that. You don't sell what you don't have. I'm regularly amazed at how many people still fail on this glaringly trivial premise.
This is definately a good finishing move for meetings and such.
In addition I'd suggest to get into a habit of dealing a few good drive-by slaps in the neck whenever you're on your way through the office. People just love that, it makes them feel like a true part of the family.
For the inevitable occassion of someone questioning your authority, e.g. by making eye contact while being instructed by you, I'd suggest a good, educational backhand slap in the face. In healthy doses ofcourse! That means repeatedly if the situation demands it. This not only helps the offender to understand his mistake better, it also provides valuable guidance for all other members.
Heck, but you paid money to buy the device that let's you do these things. You have probably seen friends doing it before. The wii displays a pretty clear warning screen (not skippable iirc) before each game. You have probably encountered at least once before in your life what happens when solid things are thrown into less solid things. In fact, if you seriously consider suing nintendo over this you've probably encountered at least once before what happens when a solid thing is thrown into your less solid head...
That's not entirely true. Gas and oil are the most affordable resource today because the technologies are long established, because the material itself has been comparably cheap so far but also because the gas/oil lobby is continiously lobbying strong against the development of alternative technologies (in their own best interest, ofcourse).
It's not as clear as you make it out to be that oil/gas are *really* the cheapest option anylonger, at least when you take the cost for oil-wars and the measurable cost for natural disasters due to global warming into the equation. Pretty much everyone agrees by now that the reliance on oil/gas can not be sustained in the long-term for that very reasons, plus: We're simply running out of it within the next hundred years or so.
I could very well see a difference in policy coming. Ofcourse the US is not going to give up on oil/gas over night, but they'd be very dumb if they didn't raise the investments into alternative technologies big time.
You are mistaken, in our system this is the exact definition of a good politician. We have no metrics other than vote-counts (and, in some cases, lawsuits...).
Appealing to the masses is part of the game. Remember: The first step towards being a good administrator is to *become* an administrator in first place.
If you can't manage to climb the ladder on your own, using all the dirty tricks that it takes, then you'd probably not survive long on the top anyways.
I don't get the whining. You can whine about apple banning apps that they don't like but whining about pricing? C'mon it's a free market (unless you step on apple's toes) and it works like every other market: People buy what gets the job done for as cheap as they can get.
If you build a top notch app that people want and that has no competition then it will most certainly sell for $5, maybe even for $10 or $50.
Sounds like you have a deep hate for children?
Seriously, there are valid arguments for Lego Mindstorms, Assembler, Python, heck some twisted mind may even find an argument for Java.
But how exactly do you intend to explain to a kid why it basically has to write his first program backwards, in a syntax and under semantics that can make even veteran programmers cry for mercy?
This was (deservedly) modded funny but this scam really exists! (WARNING link points to the scam site, click at your own risk, you may broadcast your ip address to them...)
Not gonna happen.
Why would a bank provide flatrate b2b/c2b money transfers when they can take a rake from each transaction?
Don't worry, many boys your age have similar temper problems. It'll get better with time.
Just don't carry that tone into conversations with adults in the real world.
Well, thanks for providing the obligatory fanboy reply...
No, the clickwheel is still annoying to operate inside a pocket, especially in tight pockets, even when both thumbs are fully functional.
The On-The-Go Playlist is a cheap excuse and you know it. Or how do I start a second playlist again?
And about structure: I'll take my personal directory structure over tag soup any day, thanks. At least until I find a player that lets me create playlists directly on the device...
Did I say that? Don't think so.
I just said that I'm highly sceptical about your claims, you're free to prove me wrong anytime.
Furthermore I didn't say that it's impossible. Yes there are liquid layouts without bugs, some even look decent. They are just very, very rare because of the reasons I mentioned - it's ungodly hard to get any reasonably complex liquid layout to render correctly in all browsers. Thus your claim that all of your layouts are liquid and "just work" is dubious at best. You either found some magical CSS templating bullet or spend a lot more time on hacks than you're willing to admit.
As said, I love to learn and would be very curious to take a look at one of your stylesheets. If it lives up to your claims then it must be a real goldmine and you should maybe release it as a CSS framework.
I'm eager to sae. Otherwise I'll remain sceptical.
A horse with lipstick on is still a horse.
PHP is dead, get over it.
You sure won't mind posting some URLs of your masterpieces?
Having done quite a few liquid layouts myself I can only second what grandparent said.
Getting it right in a way that does *not* cause stuff to overlap, truncate or wrap in funny ways when font size is increased is very hard.
Sure, for a trivial layout everything is simple. Try it on a 3 column layout with reasonable design (boxes, panes, columns, background-images) and some actual content.
You're either talking tongue in cheek or you haven't worked with reasonably complex layouts, yet. Something as supposedly simple as a 3 column layout still requires fairly nasty hacks (google for "holy grail") and establishing new columns inside such a layout gets *really* painful at a point, especially when you're talking liquid layout (no absolute pixel values) or when floats are involved (and those are involved in every layout).
The underlying problems here are so nasty that actual, full-blown CSS frameworks (YUI, blueprint) have been invented, for the sole purpose of supporting the creation of a (theoretically) infinitely sub-dividable CSS grid layout. Sound familar? It should, they basically bring the old table into CSS-land...
Unfortunately these frameworks have a few problems of their own. First and foremost: they usually blow up hard when you don't play exactly by their rules. Need to place an additional box in a way that wasn't foreseen by the framework template? Tough luck.
So where does that leave us?
My recommendations would be:
These recommendations come straight from the trenches. There may be higher-level CSS gurus out there that will swirl up any kind of CSS layout without a blink, for those these recommendations obviously don't apply. But for everybody else: Stick to your priorities. It's really easy to waste half a day on an obscure CSS problem that could have been solved in 5 minutes with a table. And then a few days later someone tells you that safari (the one browser you haven't tested) or his iphone (the one device you really want to support) has found yet a new unpleasant way to render your carefully crafted pile of CSS hacks...
Oh cool, an ipod rant! Let me chime in.
I have a nano here, bought it because well, it's the mp3 player, right?
After owning it for roughly I year I'm quite sure that my next mp3 player will not be an ipod again.
Here's my list:
Pro:
Con:
So, these are small issues at first but once the "Oh Shiny"-factor wears off they turn into real annoyances.
I've come to the conclusion that the ipod really is a blender (admittedly a good one!) amongst the mp3 players and that a different device will probably serve me better, even if it's not quite as shiny on the surface.
Can someone recommend a device that fares better in the areas I mentioned?
Do you have a quote of Guido "admitting" that? Because all statements I have seen from him were the opposite.
Furthermore I can only repeat that all the problems you mentioned are non-issues if you just configure your editor properly.
My editor shows me the difference between a space and a tab and will happily convert spaces to tabs and back when asked to. If yours can't do that then maybe it's not a good choice for python editing? (at least when you have to deal with copy/paste a lot - which indicates bigger problems btw)
In my years of working with python I did indeed have the occassional snippet go through e-mails or pastebins - and I can't remember it being any more troublesome than with any other code.
And yes, when I started with python I was irritated by the mandatory indendation just like everybody else.
But I learned soon that this kind of enforced readability is a great advantage *especially* when working with others people code...
Well, that's a fairly exotic scenario you're describing and imho it's *very* far fetched to blame your problems on python.
The real problem obviously was that you were too lazy to set up a proper developement environment (e.g. by virtualization or with a simple shell script to copy your editor config over to the running liveCD with a single keystroke).
Well, developers that can't even configure their editor properly are a no-go anyways, regardless of language.
If you tolerate that then Python is the least of your problems because you'll need a checkin-hook to sanitize the submitted files anyways. Otherwise you'd get broken/bloated diff's constantly...
Same here, and that was almost 2 years ago now.
Any coder worth his salt is already indenting his code the way python likes it anyways, no matter which language he's using, so this part of the transition is normally a non-issue.