the licencing issue about Lucent wanting the right to incorporate any modifications to the kernel you make. well okay it's not exactly the gpl but it doesn't get in the way of any of the work I'm doing.
rememeber the bit about keeping an open mind.
Study of the other ways is fundamental to understanding your own choices.
Does it really matter what the licence says for you to take a look at what other people are doing!
If you want to see a system that was more thoroughly _designed_, you
should probably point not to Dennis and Ken, but to systems like L4 and
Plan-9, and people like Jochen Liedtk and Rob Pike.
And notice how they aren't all that popular or well known? "Design" is
like a religion - too much of it makes you inflexibly and unpopular.
I hardly think that plan9's unpopularity is down to that fact that's it's been well designed!
working in it is a joy. It suffers from lack of a good web browser (not exactly a small undertaking) and 23 char filenames (wave bye bye to those ream soon now [tm])
but I guess not everyone likes design. I'm sure more ppl reading this are in an untidy hell hole of a room. If you've not got some dirty crockery in reaching distance of you then I doff my hat to you.
but good design brings pleasure, and working with plan9 brings more joy than frustration.
linux is winning not because it's a great piece of software but rather one of those historical flukes of the right place at the right time and captured people's imagination. Feeding my pc with my first slackware floppy disk set was liberating and discovering the joy of hitting co-operate rather than default has justly brought it's reward.
but hey, come on, keep your mind open. there's always a spare pc lying around, spend an evening with somethign else for a change.
I'm a sahreholder of an ISP, we've been running for five years or so. Originally we were going for NT but soon discovered what a bad idea that was.
2 days before launch we scrapped the idea and bought a BSD 2.1 Internet Server Ready CD.
Overnight it was installed and working.
Now with around 5000 users our BSD setup happily chugs along on 3 pentium 90 machines (mail, web/ftp & news) [separated for failsafe rather than load].
At home and at my website, FreeBSD was the easy choice. It's rock solid.
Ports & packages are a dream come true.
Still, though, my OS of choice is plan9. Even if it never had another release again I would be perfectly satisfied.
(web browsing aside - a mighty task)
but there is a new release on it's way. We'll finally wave goodbye to 23 char filenames (sigh) and hopefully support another sound card (sigh:)
want to listen to some music
cat music >/dev/audio
want to burn a cd ?
cp *.jpg/mnt/cd
write to a network socket
echo 'hello' >/net/tcp/10/data
inetd? nah. we have aux/listen. plonk a script in/bin/services called tcp7 for instance and then it's stdin & stdout are the connection
%cat/proc/1168/fd # give me a list of file descriptors this process has open
/proc/612
0 r c 0 0000000c.00000000 0/dev/null
1 w c 0 0000000c.00000000 0/dev/null
2 w M 27 00000001.00000000 32516/dev/cons
3 rw | 0 000010c1.00000000 1276 #|/data
5 r c 0 00000004.00000000 368/dev/bintime
7 rw I 0 0002028d.00000000 1819/net/tcp/20/data
%cat/net/tcp/20/remote
195.182.165.1!21
you don't hide things from the programmer, but you do hide the NEED of the programmer to implement ftp or the particular protocol
The private namespace is just one of the features of the plan9 operating system but it is by no means the most powerful.
The 9p protocol is a universal protocol for file based operations and there is little distinction between local and networked machines but that is not the end of the story. plan9 has pushed the boundaries of "everything is a file".
The cornerstone of this is the file server. A daemon that presents it's control and data as files in your namespace. The introductory fileserver in most texts is ftpfs.
when you run it
%ftpfs -a ftp.uk.freebsd.org
it logs into the remote ftp server and then presents the file system there in your local namespace
To access the files one uses the standard file manipulation tools.
I'm sure you can see the power and potential of this.
Once running ftpfs permits ANY program on your machine the ability to use files through the ftp protocol, and they don't have to know ANYTHING about ftp themselves, they just open, close, read & write files like they've always done.
it means that to use tools like sed, grep, & awk on your remote files is a doddle, there's no shuffling the files around & risking sync trouble.
Of course if it was just ftpfs then I'm sure you'd say "so what" but of course, it doesn't stop there. Writing a file server is fairly painless. All you need to do is implement the 9p protocol in your program. There's no mucking about with the kernel or fiddling with fstab.
The network, like everything else, is presented as straight files.
which means that even shell script can open network connections and process the results.
I wrote a shell irc bot to prove the point
http://www.proweb.co.uk/~matt/chugly.rc
My next project is a fileserver for mounting a Postgres database connection as a file server. Once (if:) complete it will mean that ANY application will have the ability to access data in postgres DB's and manipulate the data using open, create, read & write.
through an interface no more complex than :
echo 'select * from webhits where date=''24-11-01'';' >/mnt/sql/ctrl
cat/mnt/psql/recordset
there's even more to plan9 and it's definately worth checking out
bind/bin/$CPUTYPE/bin # cpu specific exes
bind/usr/$user/bin/bin/bin # my exes
bind/usr/$user/bin/rc/bin # my shell scripts
bind/usr/someapp/bin/bin # some app I want
the namespace is built on a per process group basis so I can pick and choose the exes ()or anything else) on a per process basis
To compile a program with the C library from July 16, 1992:
I got fed up of the vbscript, ado, activeX compile, reboot cycle
oh, btw. vb script is useless. I did 5 long years of web based VB and now I've moved in the right direction (forward to python, back to C, php in the middle) I can't believe all the years I wasted. it felt good at the time writing C++ active x controls but soon as I learned a different trade I realised what a brain-dead world VB lives(ed) in. No native tcp control is what finally did it when i started network programming.
I visited the world of DCOM for a bit, ugh. Jump on the "how shall we do it this month" bandwagon and daily MSDN reading
it really is all too much trouble to keep up
the layers and layers of complexity spin your head out.
(Note: ThinkGeek and Slashdot are both owned by Va Linux)
from http://www.thinkgeek.com/slashdot/
who would've thought
otoh do the ati cards support video/svhs/tuning under X or is it windows only?
don't do tobacco!!
unlike most mis-named drugs tobacco is a narcotic whereas marijuana is a stimulant
joints are bad for concentration
I find a nice fat bong at 9am helps me block out the shitty world i leave behind
across the entire span of my music buying life I estimate I have spent about 10 quid a month EVERY month (thats about 20 years)!
It's shitty to do the no service no play part, I guess that alone will kill it.
I pay 10 quid a month for cable TV and I spend much more time listening to music than watching TV.
I'd spend an extra fiver to get solid 60kbps+ for music downloads no problem.
japan has video payphones & video cellphones already due to their high bandwidth data comms rather then the 9600 we have here (uk!)
the license sucks. no source == no use.
/sys/src directory !!
er, try looking in the
the licencing issue about Lucent wanting the right to incorporate any modifications to the kernel you make. well okay it's not exactly the gpl but it doesn't get in the way of any of the work I'm doing.
rememeber the bit about keeping an open mind.
Study of the other ways is fundamental to understanding your own choices.
Does it really matter what the licence says for you to take a look at what other people are doing!
If you want to see a system that was more thoroughly _designed_, you
should probably point not to Dennis and Ken, but to systems like L4 and
Plan-9, and people like Jochen Liedtk and Rob Pike.
And notice how they aren't all that popular or well known? "Design" is
like a religion - too much of it makes you inflexibly and unpopular.
I hardly think that plan9's unpopularity is down to that fact that's it's been well designed!
working in it is a joy. It suffers from lack of a good web browser (not exactly a small undertaking) and 23 char filenames (wave bye bye to those ream soon now [tm])
but I guess not everyone likes design. I'm sure more ppl reading this are in an untidy hell hole of a room. If you've not got some dirty crockery in reaching distance of you then I doff my hat to you.
but good design brings pleasure, and working with plan9 brings more joy than frustration.
linux is winning not because it's a great piece of software but rather one of those historical flukes of the right place at the right time and captured people's imagination. Feeding my pc with my first slackware floppy disk set was liberating and discovering the joy of hitting co-operate rather than default has justly brought it's reward.
but hey, come on, keep your mind open. there's always a spare pc lying around, spend an evening with somethign else for a change.
http://plan9.bell-labs.com/plan9
it might be a troll but it does sound convincing
:)
/dev/audio
/mnt/cd
/net/tcp/10/data
/bin/services called tcp7 for instance and then it's stdin & stdout are the connection
I'm a sahreholder of an ISP, we've been running for five years or so. Originally we were going for NT but soon discovered what a bad idea that was.
2 days before launch we scrapped the idea and bought a BSD 2.1 Internet Server Ready CD.
Overnight it was installed and working.
Now with around 5000 users our BSD setup happily chugs along on 3 pentium 90 machines (mail, web/ftp & news) [separated for failsafe rather than load].
At home and at my website, FreeBSD was the easy choice. It's rock solid.
Ports & packages are a dream come true.
Still, though, my OS of choice is plan9. Even if it never had another release again I would be perfectly satisfied.
(web browsing aside - a mighty task)
but there is a new release on it's way. We'll finally wave goodbye to 23 char filenames (sigh) and hopefully support another sound card (sigh
want to listen to some music
cat music >
want to burn a cd ?
cp *.jpg
write to a network socket
echo 'hello' >
inetd? nah. we have aux/listen. plonk a script in
echo server - try :
#!/bin/rc
cat
it's such a pleasure
http://plan9.bell-labs.com/plan9
nothing is hidden from the programmer
/proc/1168/fd # give me a list of file descriptors this process has open
/dev/null
/dev/null
/dev/cons
/dev/bintime
/net/tcp/20/data
/net/tcp/20
/net/tcp/20/status
/net/tcp/20/local
/net/tcp/20/remote
each process has it's own directory
%ps | grep ftpfs
matt 1168 0:00 0:00 124K Read ftpfs
%cat
/proc/612
0 r c 0 0000000c.00000000 0
1 w c 0 0000000c.00000000 0
2 w M 27 00000001.00000000 32516
3 rw | 0 000010c1.00000000 1276 #|/data
5 r c 0 00000004.00000000 368
7 rw I 0 0002028d.00000000 1819
%ls
/net/tcp/20/ctl
/net/tcp/20/data
/net/tcp/20/err
/net/tcp/20/listen
/net/tcp/20/local
/net/tcp/20/remote
/net/tcp/20/status
%cat
Established srtt 392 mdev 196 cwin 1752 swin 8760 rwin 65515 timer.start 6 timer.count 2 rerecv 0
%cat
192.168.1.9!21306
%cat
195.182.165.1!21
you don't hide things from the programmer, but you do hide the NEED of the programmer to implement ftp or the particular protocol
The private namespace is just one of the features of the plan9 operating system but it is by no means the most powerful.
/n/ftp
/mnt/sql/ctrl
/mnt/psql/recordset
The 9p protocol is a universal protocol for file based operations and there is little distinction between local and networked machines but that is not the end of the story. plan9 has pushed the boundaries of "everything is a file".
The cornerstone of this is the file server. A daemon that presents it's control and data as files in your namespace. The introductory fileserver in most texts is ftpfs.
when you run it
%ftpfs -a ftp.uk.freebsd.org
it logs into the remote ftp server and then presents the file system there in your local namespace
%ls
/n/ftp/HEADER
/n/ftp/bin
/n/ftp/etc
/n/ftp/pub
%
To access the files one uses the standard file manipulation tools.
I'm sure you can see the power and potential of this.
Once running ftpfs permits ANY program on your machine the ability to use files through the ftp protocol, and they don't have to know ANYTHING about ftp themselves, they just open, close, read & write files like they've always done.
it means that to use tools like sed, grep, & awk on your remote files is a doddle, there's no shuffling the files around & risking sync trouble.
Of course if it was just ftpfs then I'm sure you'd say "so what" but of course, it doesn't stop there. Writing a file server is fairly painless. All you need to do is implement the 9p protocol in your program. There's no mucking about with the kernel or fiddling with fstab.
The network, like everything else, is presented as straight files.
which means that even shell script can open network connections and process the results.
I wrote a shell irc bot to prove the point
http://www.proweb.co.uk/~matt/chugly.rc
My next project is a fileserver for mounting a Postgres database connection as a file server. Once (if:) complete it will mean that ANY application will have the ability to access data in postgres DB's and manipulate the data using open, create, read & write.
through an interface no more complex than :
echo 'select * from webhits where date=''24-11-01'';' >
cat
there's even more to plan9 and it's definately worth checking out
http://plan9.bell-labs.com/plan9
oh, thanks.
I forgot to mention it was just my opinion.
:)
yeah,
on the other hand
freedom sucks
it's better than that
this month is a blue moon
so you can say "two sensible court rulings on the same day only come round once in a blue moon"
(a blue moon is when two full moons occur in the same month)
if a newspaper did the same, there would be a lawsuit and the paper would lose.
wouldn't it be the same as printing somebody's letter on the "letters to the editor" page rather than as pure editorial?
simple solution
:)
set up your webpage to look like a message board
and if anyone tries to post throw up a 500 server error page
once you've had your eye opened VB is revealed for the horrible rotting corpse it is
serious sam
a proper 3d shoot 'em up
oh ffs stupid bastard htmlfilter
print "<a href='%'><img src='%' border=0 width='%' height='%' alt='%'></a>" % (filename, thumbfilename, img.width, img.height, 'thumbnail')
I think ImageMagick [imagemagick.org] will do this better
better in that you can't even remember the commands ?:)
personally the thumbnail example is a bit noddy
My real script would shink the thumbnails to fit inside a bounding box and preserve their apsect ratio
PLUS
tag on a :
print "" % (filename, img.width, img.height)
and maybe even throw in some javascript
show me image magik doing that and I'll be impressed
quick cut and paste from the pythonware site
Example: Create JPEG Thumbnails
import os, sys
import Image
for infile in sys.argv[1:]:
outfile = os.path.splitext(infile)[0] + "-thumb.jpg"
if infile != outfile:
try:
im = Image.open(infile)
im.thumbnail((128, 128))
im.save(outfile, "JPEG")
except IOError:
print "cannot create thumbnail for", infile
and the PIL module
you can even do it interactively
python is cross platform too so your scripts won't be wasted if/wehn you move platforms
I use it for generating thumbnails and <img> tags and whatever
yes, that's exactly how it works
/bin/$CPUTYPE /bin # cpu specific exes
/usr/$user/bin/bin /bin # my exes
/usr/$user/bin/rc /bin # my shell scripts
/usr/someapp/bin /bin # some app I want
/srv/boot /n/dump dump
/n/dump/1992/0716/mips/lib/libc.a /mips/lib/libc.a
/net
instead of a really long $path you just have
PATH=/bin
and then in termrc (for example)
bind
bind
bind
bind
the namespace is built on a per process group basis so I can pick and choose the exes ()or anything else) on a per process basis
To compile a program with the C library from July 16, 1992:
%mount
%bind
%mk
you can have a different set of libs per window
(or run the windowmanager INSIDE one of it's own windows and set one namespace for that whole group)
plan9 has no symlinks
because "everything is a file" this even works for remote servers & network stacks.
import helix
telnet tcp!ai.mit.edu
more
you could always quit
that's what I did
I got fed up of the vbscript, ado, activeX compile, reboot cycle
oh, btw. vb script is useless. I did 5 long years of web based VB and now I've moved in the right direction (forward to python, back to C, php in the middle) I can't believe all the years I wasted. it felt good at the time writing C++ active x controls but soon as I learned a different trade I realised what a brain-dead world VB lives(ed) in. No native tcp control is what finally did it when i started network programming.
I visited the world of DCOM for a bit, ugh. Jump on the "how shall we do it this month" bandwagon and daily MSDN reading
it really is all too much trouble to keep up
the layers and layers of complexity spin your head out.
dump it now while you still have chance
you really are not doing your clients ò?favours
It's the reviewer making the claim.
I was being a meta-critic.
"but I wish the authors would have included all the details, instead of protecting the guilty by anonymizing individual failure stories."
"I should point out that Business @ the Speed of Stupid is one of the only books not willing to pull punches."
hmm