> The only step forward I see in Python 3 is Unicode.
You mean broken os.listdir(), sys.argv(), and stuff? I hadn't tried Py3k myself, but all the Python blogs everywhere are bitching about how Python is trying to pretend that Unix plays well with Unicode. I have lots of funny characters in directory names in my music collection, and I often write small scripts to organize that stuff, and I certainly feel like everything's going to break with Py3k.
As of "print >> stream, string" vs "print(string, file=stream)", how about "stream.write(string)"? Always seemed like the most obvious way to do that.
The % operator... How about forming a committee to convince the BDFL to keep it? I only recently started to prefer it over + and string concatenation, and I think I'm going to like it more than string.format().
By the way, string.format() seems to have an advantage when translating strings to another language, when sometimes the order of the substituted words has to be changed. But it still holds true that dropping % is pita.
Apropos microwaves and mp3 players... I've got a 20 years old Samsung microwave (it's almost older than myself) and it hadn't suffered from any failures throughout its whole lifetime, and is simply Still Working. Amazing, compared to my Sandisk Sansa C150 mp3 player that I had to replace after two weeks because of some software bug that permanently froze the device...
It's sometimes funny how >15 yro devices outlive new products.
> will you disqualify fifty really smart guys > for five mediocre ones who happen to know Django?
If your smart guys are really that smart, they shouldn't have trouble with picking up any language/framework. Speaking as someone who picked up PHP/Joomla last month and now is working with it in his daily job.
That explains a lot of the recent shit that is going on.
BTW, for those that don't like the new user info page:
http://slashdot.org/users.pl
I found it a few years ago and always preferred using it over the "~username" version, and it seems that my intuition hadn't failed me. Don't know how to get other users' pages this way, though ("?user=foo" doesn't work, any ideas?).
Is it possible to somehow recursively hide another volume in a hidden volume? It'd be cool to have N volumes, with only N-M volumes "officially existing".
I know I haven't done it, just like you've probably never been entering the boot sequence on the front panel using switches and blinking lights:) my point is, is undo THAT difficult to implement? If I've been designing a tool like that, I'd store the questions, answers so far, etc in an array, and in case the user has entered a magic sequence like "!undo" I'd go back to the previous question. Here, UI problem fixed with 30 seconds of thinking.
"""In the meantime, predictably so, a bunch of n00bs started using Ubuntu mostly because we told them it was a good idea. Now the Ubuntu forums are filled with n00b posts flaming the world because 'Ubuntu sucks' and 'it ate my computer', etc."""
Conclusion, also based on my own observations: Linux is perfectly ready for the Desktop; it's just the users that are not ready for computers at all. I'm perfectly sure they'd have a very similar class of problems if they didn't mess with alternative OSs.
Makes me wonder whether the "FOSS for the masses" was a good idea.
I've been using Debian for two years, and I've installed Ubuntu on another machine recently, and was amazed how almost everything "just worked". The place for Ubuntu in my personal universe is now: "the thing to install on a new machine when I need it to do some actual work and don't have three days to set it up".
1. Consumers install OS X on crappy, unsupported hardware 2. OS X doesn't support crappy hardware too well, thus gives bad impression 3. Apple is losing sales 4. ??? 5. Profit!!!1111. Eleven.
> No sane person, downloads the latest Debian.torrent > posted by 1337_KeRNeL_haxor on the pirate bay.
The code would be all signed. If you trust the keys, you can trust the.torrent. You can't trust debian.org to provide you with "good" torrents if it won't provide the signatures along, or can you?
> "Will someone PLEASE seed the repository. I need to grab the latest kernel."
Yup, I can imagine this happening. But rather for +5 year old archives. And even then, I'm pretty sure there would always be a few bastards that'd keep the 0.99 releases of Linux, pre-1.1 Debian, etc. We'd just move away from thinking of projectname.org as a source of stable, central... "authority"? -- and just grab everything from the closest neighbor (which _could_ be debian.org), and verify the signatures.
Well, KOffice maybe not, but [name a few net security tools], [name some strong cryptography software], [name a software package that helps circumventing DRM], or maybe even [name a few distros which focus on security or anonymousness].
The colon in lambda is like a guy with a Vista laptop on a LUG meeting. The whole lambda syntax construct is an expression, and def's, if's, while's and all the other guys begin a block of statements (and are statements themselves). In Python, you simply cannot cleanly embed a statement within an expression -- you'd need braces of some kind (and suggesting that to the devs would be like asking to be crucified). Just think, how would this look like:
map(lambda x: if abs(x) > 5: spam(x) , [3,-3,5,-5])
With braces, you could write this like map(lambda x {if abs(x) > 5 {spam(x)}}, [3,-3,5,-5]), but well, try "from __future__ import braces".
And btw, what is the return value of the if statement?... -- exactly.
Just define a regular function:)
==
But it's still cool to sometimes try and think why Guido or others haven't yet implemented a seemingly obvious feature X. Here's an interesting post about explicit self:
(oh, and BTW: list comprehensions, "x if b else y", other lambdas, are all expressions, so if you'd really want to, you can still do a lot with lambdas (loops, fancy nested if's, etc) -- you may even wrap most of the statements (if, while, import, try, exec) into functions and then try to write whole program as a one great expression... Lisp-style. Just for fun ^^)
- Drop all incoming connections, unless an app (with sufficient privileges) asks for a port to be open (p2p, explicitly started sshd, httpd, game server, etc).
Just make it default.
From the outside looks exactly as if the system were behind a NAT, and when you occasionally need to start a game server or something like that, no extra hassle with port forwarding. It's making things easier for power users, possible for less-than-power users, and still safe for newbies (if I'd like to pwn one I'd just use social engineering anyway).
All there is to be done is to apply such scheme by default, just like you do not need to choose the correct kernel version when booting WinXP.
> The only step forward I see in Python 3 is Unicode.
You mean broken os.listdir(), sys.argv(), and stuff? I hadn't tried Py3k myself, but all the Python blogs everywhere are bitching about how Python is trying to pretend that Unix plays well with Unicode. I have lots of funny characters in directory names in my music collection, and I often write small scripts to organize that stuff, and I certainly feel like everything's going to break with Py3k.
As of "print >> stream, string" vs "print(string, file=stream)", how about "stream.write(string)"? Always seemed like the most obvious way to do that.
The % operator... How about forming a committee to convince the BDFL to keep it? I only recently started to prefer it over + and string concatenation, and I think I'm going to like it more than string.format().
By the way, string.format() seems to have an advantage when translating strings to another language, when sometimes the order of the substituted words has to be changed. But it still holds true that dropping % is pita.
Apropos microwaves and mp3 players... I've got a 20 years old Samsung microwave (it's almost older than myself) and it hadn't suffered from any failures throughout its whole lifetime, and is simply Still Working. Amazing, compared to my Sandisk Sansa C150 mp3 player that I had to replace after two weeks because of some software bug that permanently froze the device...
It's sometimes funny how >15 yro devices outlive new products.
> will you disqualify fifty really smart guys
> for five mediocre ones who happen to know Django?
If your smart guys are really that smart, they shouldn't have trouble with picking up any language/framework. Speaking as someone who picked up PHP/Joomla last month and now is working with it in his daily job.
> The problem with django is that you have to use Python.
Can you explain the problems associated with using Python as a language for web development?
I'd mod you +18, insightful if I could.
> What isn't explained though is how he's playing video games?
Reminds me of Wu Zi Mu of GTA:SA...
That explains a lot of the recent shit that is going on.
BTW, for those that don't like the new user info page:
http://slashdot.org/users.pl
I found it a few years ago and always preferred using it over the "~username" version, and it seems that my intuition hadn't failed me. Don't know how to get other users' pages this way, though ("?user=foo" doesn't work, any ideas?).
No, he actually said exactly Two words;.
> Firewire is dying
Does Netcraft confirm it?
I've got an original Windows 95 installation CD (from ~1996) somewhere around, I think I'm gonna check it out.
This is actually what police wants to be able to do in Poland (my home country).
One more reason to move out of there.
Just dunno where to, coz the rest of the world seems to catch up in terms of fuckedness...
Is it possible to somehow recursively hide another volume in a hidden volume? It'd be cool to have N volumes, with only N-M volumes "officially existing".
I thought of something else.
If it has read access, and execute access, then it also most probably has write access. And then, "evidence" could be very easily forged.
I know I haven't done it, just like you've probably never been entering the boot sequence on the front panel using switches and blinking lights :) my point is, is undo THAT difficult to implement? If I've been designing a tool like that, I'd store the questions, answers so far, etc in an array, and in case the user has entered a magic sequence like "!undo" I'd go back to the previous question. Here, UI problem fixed with 30 seconds of thinking.
I have said "User Interface", not "Graphical User Interface", there is a distinction. Learn to understand what you're reading, it's a useful skill.
> Make a typo entering your monitor's scan rate?
> Too bad. Try again from the beginning
Then it's not old-school, but shitty UI design. One could always get the UI right, no matter the epoch or hardware.
What's wrong with PAM? (asking as a satisfied user of libpam-usb)
"""In the meantime, predictably so, a bunch of n00bs started using Ubuntu mostly because we told them it was a good idea. Now the Ubuntu forums are filled with n00b posts flaming the world because 'Ubuntu sucks' and 'it ate my computer', etc."""
Conclusion, also based on my own observations: Linux is perfectly ready for the Desktop; it's just the users that are not ready for computers at all. I'm perfectly sure they'd have a very similar class of problems if they didn't mess with alternative OSs.
Makes me wonder whether the "FOSS for the masses" was a good idea.
I've been using Debian for two years, and I've installed Ubuntu on another machine recently, and was amazed how almost everything "just worked". The place for Ubuntu in my personal universe is now: "the thing to install on a new machine when I need it to do some actual work and don't have three days to set it up".
On the other hand, I wonder where would we be now if Newton's or Galileo's work was at the end considered noise.
http://giveupandusetables.com/ :)
Please consider:
1. Consumers install OS X on crappy, unsupported hardware
2. OS X doesn't support crappy hardware too well, thus gives bad impression
3. Apple is losing sales
4. ???
5. Profit!!!1111. Eleven.
> No sane person, downloads the latest Debian .torrent
.torrent. You can't trust debian.org to provide you with "good" torrents if it won't provide the signatures along, or can you?
> posted by 1337_KeRNeL_haxor on the pirate bay.
The code would be all signed. If you trust the keys, you can trust the
> "Will someone PLEASE seed the repository. I need to grab the latest kernel."
Yup, I can imagine this happening. But rather for +5 year old archives. And even then, I'm pretty sure there would always be a few bastards that'd keep the 0.99 releases of Linux, pre-1.1 Debian, etc. We'd just move away from thinking of projectname.org as a source of stable, central... "authority"? -- and just grab everything from the closest neighbor (which _could_ be debian.org), and verify the signatures.
Well, KOffice maybe not, but [name a few net security tools], [name some strong cryptography software], [name a software package that helps circumventing DRM], or maybe even [name a few distros which focus on security or anonymousness].
Not doable.
:)
The colon in lambda is like a guy with a Vista laptop on a LUG meeting. The whole lambda syntax construct is an expression, and def's, if's, while's and all the other guys begin a block of statements (and are statements themselves). In Python, you simply cannot cleanly embed a statement within an expression -- you'd need braces of some kind (and suggesting that to the devs would be like asking to be crucified). Just think, how would this look like:
map(lambda x:
if abs(x) > 5:
spam(x)
, [3,-3,5,-5])
With braces, you could write this like map(lambda x {if abs(x) > 5 {spam(x)}}, [3,-3,5,-5]), but well, try "from __future__ import braces".
And btw, what is the return value of the if statement?... -- exactly.
Just define a regular function
==
But it's still cool to sometimes try and think why Guido or others haven't yet implemented a seemingly obvious feature X. Here's an interesting post about explicit self:
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
(oh, and BTW: list comprehensions, "x if b else y", other lambdas, are all expressions, so if you'd really want to, you can still do a lot with lambdas (loops, fancy nested if's, etc) -- you may even wrap most of the statements (if, while, import, try, exec) into functions and then try to write whole program as a one great expression... Lisp-style. Just for fun ^^)
Here you are, sanely configured default firewall:
- Drop all incoming connections, unless an app (with sufficient privileges) asks for a port to be open (p2p, explicitly started sshd, httpd, game server, etc).
Just make it default.
From the outside looks exactly as if the system were behind a NAT, and when you occasionally need to start a game server or something like that, no extra hassle with port forwarding. It's making things easier for power users, possible for less-than-power users, and still safe for newbies (if I'd like to pwn one I'd just use social engineering anyway).
All there is to be done is to apply such scheme by default, just like you do not need to choose the correct kernel version when booting WinXP.