Re: [9fans] miau, an IRC bouncer
Turns out it's been fixed after a pull--thanks to whoever submitted that patch! John On Wed, Jan 11, 2012 at 10:40 PM, Jens Staal wrote: > That error is very common where "ls -di" is called in the configure > script (strange that it did not complain on your other system). > > a nice fix is fgb's "config" script > http://plan9.bell-labs.com/sources/contrib/fgb/rc/config > > another common problem is "grep", where the easiest is to write > > GREP=grep > at the top of the configure script. > > 2012/1/12 John Floren : >> On Wed, Jan 11, 2012 at 3:03 PM, John Floren wrote: >>> Back when I had my FreeBSD server, I used to run a tmux session and >>> irssi to keep myself connected to IRC at all times. This let me >>> access it from any computer with an SSH client. >>> >>> Now I only run a Plan 9 server, but I missed the simplicity and >>> convenience of having just one nickname on IRC at all times. I >>> finally got fed up and did a very crude port of Miau, an IRC bouncer. >>> A bouncer stays connected to your selected servers and channels while >>> serving the IRC protocol itself. You then point an IRC client at your >>> bouncer, which instantly restores for you all the channels you had >>> open. >>> >>> This serves essentially the same purpose as ircfs, but with the >>> advantage that you don't need Plan 9 or Inferno to access it--any >>> computer with an IRC client can connect. In fact, you can just use >>> Mibbit to connect as long as you have a web browser. >>> >>> Porting Miau was pretty easy; the configure script actually ran >>> properly and I only had to do a little bit of hacking to account for >>> things like the lack of crypt() (so yes, you have to type in a >>> plaintext password in the config file rather than giving it a hash). >>> There's a tar at /n/sources/contrib/john/miau9.tgz, or you can check >>> out the bitbucket repo from http://bitbucket.org/floren/miau9 >>> (preferred). >>> >>> Known bugs: It's really easy to type "maui" instead of "miau". >>> >>> >>> John >>> >> >> Oddly, I can't get this to compile on my home Plan 9 system; there, it >> bails out like all other configure scripts I've ever tried to use: >> >> # ./configure >> ln: conf115166.dir destination exists >> usage: ls [-ACFHLRUacdflprstu1] [file ...] >> configure: error: working directory cannot be determined >> # >> >> I'll have to try and figure out the difference. >> >> >> John >> >
Re: [9fans] miau, an IRC bouncer
That error is very common where "ls -di" is called in the configure script (strange that it did not complain on your other system). a nice fix is fgb's "config" script http://plan9.bell-labs.com/sources/contrib/fgb/rc/config another common problem is "grep", where the easiest is to write GREP=grep at the top of the configure script. 2012/1/12 John Floren : > On Wed, Jan 11, 2012 at 3:03 PM, John Floren wrote: >> Back when I had my FreeBSD server, I used to run a tmux session and >> irssi to keep myself connected to IRC at all times. This let me >> access it from any computer with an SSH client. >> >> Now I only run a Plan 9 server, but I missed the simplicity and >> convenience of having just one nickname on IRC at all times. I >> finally got fed up and did a very crude port of Miau, an IRC bouncer. >> A bouncer stays connected to your selected servers and channels while >> serving the IRC protocol itself. You then point an IRC client at your >> bouncer, which instantly restores for you all the channels you had >> open. >> >> This serves essentially the same purpose as ircfs, but with the >> advantage that you don't need Plan 9 or Inferno to access it--any >> computer with an IRC client can connect. In fact, you can just use >> Mibbit to connect as long as you have a web browser. >> >> Porting Miau was pretty easy; the configure script actually ran >> properly and I only had to do a little bit of hacking to account for >> things like the lack of crypt() (so yes, you have to type in a >> plaintext password in the config file rather than giving it a hash). >> There's a tar at /n/sources/contrib/john/miau9.tgz, or you can check >> out the bitbucket repo from http://bitbucket.org/floren/miau9 >> (preferred). >> >> Known bugs: It's really easy to type "maui" instead of "miau". >> >> >> John >> > > Oddly, I can't get this to compile on my home Plan 9 system; there, it > bails out like all other configure scripts I've ever tried to use: > > # ./configure > ln: conf115166.dir destination exists > usage: ls [-ACFHLRUacdflprstu1] [file ...] > configure: error: working directory cannot be determined > # > > I'll have to try and figure out the difference. > > > John >
Re: [9fans] miau, an IRC bouncer
On Wed, Jan 11, 2012 at 3:03 PM, John Floren wrote: > Back when I had my FreeBSD server, I used to run a tmux session and > irssi to keep myself connected to IRC at all times. This let me > access it from any computer with an SSH client. > > Now I only run a Plan 9 server, but I missed the simplicity and > convenience of having just one nickname on IRC at all times. I > finally got fed up and did a very crude port of Miau, an IRC bouncer. > A bouncer stays connected to your selected servers and channels while > serving the IRC protocol itself. You then point an IRC client at your > bouncer, which instantly restores for you all the channels you had > open. > > This serves essentially the same purpose as ircfs, but with the > advantage that you don't need Plan 9 or Inferno to access it--any > computer with an IRC client can connect. In fact, you can just use > Mibbit to connect as long as you have a web browser. > > Porting Miau was pretty easy; the configure script actually ran > properly and I only had to do a little bit of hacking to account for > things like the lack of crypt() (so yes, you have to type in a > plaintext password in the config file rather than giving it a hash). > There's a tar at /n/sources/contrib/john/miau9.tgz, or you can check > out the bitbucket repo from http://bitbucket.org/floren/miau9 > (preferred). > > Known bugs: It's really easy to type "maui" instead of "miau". > > > John > Oddly, I can't get this to compile on my home Plan 9 system; there, it bails out like all other configure scripts I've ever tried to use: # ./configure ln: conf115166.dir destination exists usage: ls [-ACFHLRUacdflprstu1] [file ...] configure: error: working directory cannot be determined # I'll have to try and figure out the difference. John
Re: [9fans] Plan 9/plan9port coding conventions
On Wed Jan 11 20:34:39 EST 2012, skip.tavakkol...@gmail.com wrote: > by way of an example: > > int pszBesmirchHungeriansNotation; who let the camel's nose in the tent? - erik
Re: [9fans] Plan 9/plan9port coding conventions
by way of an example: int pszBesmirchHungeriansNotation; -Skip On Wed, Jan 11, 2012 at 3:57 PM, John Stalker wrote: > One thing to remember about descriptive identifiers is that the > compiler doesn't check whether the descriptions are accurate or > not. Often they were when the code was first written, but become > less so over time. Sometimes they were never accurate. One nice > thing about i, j, etc. is that you aren't tempted to make assumptions > about them that aren't backed up by the code. But I'm a mathematician, > so I tend to have peculiar ideas about such things. > > -- > John Stalker > School of Mathematics > Trinity College Dublin > tel +353 1 896 1983 > fax +353 1 896 2282 >
Re: [9fans] Plan 9/plan9port coding conventions
One thing to remember about descriptive identifiers is that the compiler doesn't check whether the descriptions are accurate or not. Often they were when the code was first written, but become less so over time. Sometimes they were never accurate. One nice thing about i, j, etc. is that you aren't tempted to make assumptions about them that aren't backed up by the code. But I'm a mathematician, so I tend to have peculiar ideas about such things. -- John Stalker School of Mathematics Trinity College Dublin tel +353 1 896 1983 fax +353 1 896 2282
[9fans] miau, an IRC bouncer
Back when I had my FreeBSD server, I used to run a tmux session and irssi to keep myself connected to IRC at all times. This let me access it from any computer with an SSH client. Now I only run a Plan 9 server, but I missed the simplicity and convenience of having just one nickname on IRC at all times. I finally got fed up and did a very crude port of Miau, an IRC bouncer. A bouncer stays connected to your selected servers and channels while serving the IRC protocol itself. You then point an IRC client at your bouncer, which instantly restores for you all the channels you had open. This serves essentially the same purpose as ircfs, but with the advantage that you don't need Plan 9 or Inferno to access it--any computer with an IRC client can connect. In fact, you can just use Mibbit to connect as long as you have a web browser. Porting Miau was pretty easy; the configure script actually ran properly and I only had to do a little bit of hacking to account for things like the lack of crypt() (so yes, you have to type in a plaintext password in the config file rather than giving it a hash). There's a tar at /n/sources/contrib/john/miau9.tgz, or you can check out the bitbucket repo from http://bitbucket.org/floren/miau9 (preferred). Known bugs: It's really easy to type "maui" instead of "miau". John
Re: [9fans] Plan 9/plan9port coding conventions
On Wed, Jan 11, 2012 at 7:20 PM, John Floren wrote: > >> (1) For example, P9 code tends to use variable names like "i" and "j", >> where I would typically use self-documenting variable names like "row" >> and "col". Variable names like "row" and "col" are much easier to >> search for (i.e., with a right-click), too. Names like "i" and "j" >> (which occur in many identifiers) will generate many false positives. > > If everyone in the world uses i and j as row/column indexes into > arrays, aren't they self-documenting? > > One reason is that in FORTRAN, identifiers that began with I > through... N? were automatically integers. Thus, I and J were easy. > There may be a good reason for that, I've heard that it came from > quaternions but that may be false. > > When you do software for physics it seems generally better if the code has similar/analogous notation to the derivations you're dealing with. In that case one letter variables often render a direct understanding while more descriptive names do not. iru
Re: [9fans] Plan 9/plan9port coding conventions
Style is style; it is not defensible on its own. If I were contributing to smiley's projects, I would make the code look the way the rest of his code does. It's not that one way is necessarily better, but one way is definitely least distracting in a given context. Russ
Re: [9fans] Plan 9/plan9port coding conventions
> (1) For example, P9 code tends to use variable names like "i" and "j", > where I would typically use self-documenting variable names like "row" > and "col". Variable names like "row" and "col" are much easier to > search for (i.e., with a right-click), too. Names like "i" and "j" > (which occur in many identifiers) will generate many false positives. If everyone in the world uses i and j as row/column indexes into arrays, aren't they self-documenting? One reason is that in FORTRAN, identifiers that began with I through... N? were automatically integers. Thus, I and J were easy. There may be a good reason for that, I've heard that it came from quaternions but that may be false. John
Re: [9fans] Plan 9/plan9port coding conventions
> (2) In functions, variables are often declared together in one > paragraph, and then, later, initialized in another paragraph, as in: > > int i; > char *s; > > /* stuff */ > > i = 0; > s = nil; > > rather than something like: > > int i = 0; > char *s = nil; this (the former method) is good practice since mingling declaration and initialization can lead to big copypasta errors if^w when the code is reorganized. > (3) Lots of global variables are used, without any distinguishing > syntax, i.e. "char *f". I prefer to designate global variables with > something like a leading underscore, i.e. "char *_filename". i think the plan 9 convention is to keep few enough globals so than one can be expected to remember them. > (4) In ARGBEGIN/ARGEND blocks, boolean switches are often set using the > "++" operator rather than "|= 1", i.e.: this is trivia. (and i'd argue that generally both are wrong; it's not a bit array, and the count is not important.) > (5) P9 code tends to repeat constructs such as "argv[i]" over and over > throughout the code, like: > > for(i = 0; i < argc; i++){ > somestuff(argv[i]); > otherstuff(argv[i]); > } > > whereas I would typically use something like: > > int argnum; > char *argstr; this is a variant of hungarian notation. what value does it add? the declarations are clear enough. everyone knows what argv/argc are. i've fallen into most of these traps myself. i used to declare main as main(int c, char **v). what i found was fitting in and understanding the whys of the local conventions is much more important than whatever quirks you have yourself. - erik
Re: [9fans] Plan 9/plan9port coding conventions
In any project, the polite thing to do is to make your code look like the surrounding code. You have identified many ways in which your code does not look like the surrounding code. That's always the first step. Russ
Re: [9fans] Plan 9/plan9port coding conventions
> Are these practices official/unofficial Plan 9 coding conventions? Are > they used for performance purposes? Are they just poor style? Or has > this kind of style been used for so long that it's BECOME Plan 9's style > of choice? Also, is it considered polite or acceptable coding practice > to alter the style of code written by other contributors? I don't want > to step on anybody's toes by "fixing" style which other Plan 9 > developers consider to be "Plan 9" style coding conventions. I'm not an active community member, but it seems you are confusing style different from your own with poor style.
Re: [9fans] Plan 9/plan9port coding conventions
style(6) deals with some of your questions.
[9fans] Plan 9/plan9port coding conventions
Hello, As readers may remember from a previous thread, I have historically been, well, less than enamored with some aspects of the coding style used in Plan 9/plan9port. Now that I'm getting into development, I'd like to know what coding conventions the Plan 9 community endorses. I have read the Plan 9 compiler paper, and understand the conventions described in it. While conventions such as composing variable names using lower case letters and no underscores do irk me a bit, I can live with them---because those are the conventions that the community has adopted. However, there are a number of stylistic features in Plan 9/p9p code which I've noticed (which AREN'T discussed in the compiler paper) and I'm wondering whether they're intentional conventions or not. (1) For example, P9 code tends to use variable names like "i" and "j", where I would typically use self-documenting variable names like "row" and "col". Variable names like "row" and "col" are much easier to search for (i.e., with a right-click), too. Names like "i" and "j" (which occur in many identifiers) will generate many false positives. (2) In functions, variables are often declared together in one paragraph, and then, later, initialized in another paragraph, as in: int i; char *s; /* stuff */ i = 0; s = nil; rather than something like: int i = 0; char *s = nil; (3) Lots of global variables are used, without any distinguishing syntax, i.e. "char *f". I prefer to designate global variables with something like a leading underscore, i.e. "char *_filename". (4) In ARGBEGIN/ARGEND blocks, boolean switches are often set using the "++" operator rather than "|= 1", i.e.: case 'v': verbose++; case 'x': x++; as opposed to: case 'v': verbose++; case 'x': x |= 1; (5) P9 code tends to repeat constructs such as "argv[i]" over and over throughout the code, like: for(i = 0; i < argc; i++){ somestuff(argv[i]); otherstuff(argv[i]); } whereas I would typically use something like: int argnum; char *argstr; for(argnum = 0; argnum < argc; argnum++){ argstr = argv[argnum]; somestuff(argstr); otherstuff(argstr); } Are these practices official/unofficial Plan 9 coding conventions? Are they used for performance purposes? Are they just poor style? Or has this kind of style been used for so long that it's BECOME Plan 9's style of choice? Also, is it considered polite or acceptable coding practice to alter the style of code written by other contributors? I don't want to step on anybody's toes by "fixing" style which other Plan 9 developers consider to be "Plan 9" style coding conventions. Thanks! -- +---+ |Smiley PGP key ID:BC549F8B | |Fingerprint: 9329 DB4A 30F5 6EDA D2BA 3489 DAB7 555A BC54 9F8B| +---+
Re: [9fans] Fwd: Call for Papers: LASER 2012—Learning from Authoritative Security Experiment Results
On Tue, 2012-01-10 at 22:19 -0800, ron minnich wrote: > This is kind of a fun one: stuff that DID NOT work. I like the basic > idea ... > “failures” may actually provide clues to even more significant > results than the original experimenter had intended. The research is > useful, even though the results are unexpected. When Mario Salvadori gave his grandmother a copy of his new book, _Why Buildings Stand Up_, she thanked him and said "but I'd much rather know why buildings fall down." That remark was the catalyst for his next book, _Why Buildings Fall Down_.
Re: [9fans] usb flash drive with ext2
On 11 January 2012 11:06, Richard Miller <9f...@hamnavoe.com> wrote: > It appears you have no partition table and an ext2 fs occupying > the whole device. This should be OK. Yes, I think the ext2 is really occupying the whole device. This is in accord with what linux has said. > Try 'mount -a /srv/usb /dev' and see if /dev/sdUx.y appears. I will when I back home. > If yes, try 'ext2srv -f /dev/sdUx.y/data && mount /srv/ext2 /n/linux' > If no, try 'cat /dev/usb/ep4.0/ctl' and see if you get something like: > > enabled control rw speed high maxpkt 64 pollival 0 samplesz 0 hz 0 hub > 5 port 6 busy > storage csp 0x500608 vid 0x058f did 0x6387 Generic 'Mass Storage' ehci > > where "storage" means it's been recognised as a mass storage device, > and "busy" means it's already being handled by the usb/disk driver. This I tried yesterday (cat /dev/usb/ep4.0/ctl), and I saw both 'busy' and 'storage'. So perhaps 'mount -a /srv/usb /dev' will help. Thanks! Ruda
Re: [9fans] usb flash drive with ext2
> (When I plug it into my plan9 machine, I don't see any entry like > /dev/sdUXX, I see 3 entries under /dev/usb/, ep4.0, ep4.1 and ep4.2, > which appear/disappear as I plug/unplug the device. Running usb/disk > claims sth. like 'there is no disk unhandled'). It appears you have no partition table and an ext2 fs occupying the whole device. This should be OK. Try 'mount -a /srv/usb /dev' and see if /dev/sdUx.y appears. If yes, try 'ext2srv -f /dev/sdUx.y/data && mount /srv/ext2 /n/linux' If no, try 'cat /dev/usb/ep4.0/ctl' and see if you get something like: enabled control rw speed high maxpkt 64 pollival 0 samplesz 0 hz 0 hub 5 port 6 busy storage csp 0x500608 vid 0x058f did 0x6387 Generic 'Mass Storage' ehci where "storage" means it's been recognised as a mass storage device, and "busy" means it's already being handled by the usb/disk driver.
[9fans] usb flash drive with ext2
Hello, I have a usb flash drive. [ When plugged into my linux, /var/log/messages gives: Jan 11 10:28:14 redstar kernel: [ 388.588091] usb 1-3: new high speed USB device using ehci_hcd and address 3 Jan 11 10:28:14 redstar kernel: [ 388.743813] usb 1-3: New USB device found, idVendor=058f, idProduct=6387 Jan 11 10:28:14 redstar kernel: [ 388.743826] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Jan 11 10:28:14 redstar kernel: [ 388.743837] usb 1-3: Product: Mass Storage Jan 11 10:28:14 redstar kernel: [ 388.743844] usb 1-3: Manufacturer: Generic Jan 11 10:28:14 redstar kernel: [ 388.743851] usb 1-3: SerialNumber: ABC01089 Jan 11 10:28:14 redstar kernel: [ 388.746708] scsi4 : usb-storage 1-3:1.0 Jan 11 10:28:15 redstar kernel: [ 389.749192] scsi 4:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 2 Jan 11 10:28:15 redstar kernel: [ 389.753494] sd 4:0:0:0: Attached scsi generic sg2 type 0 Jan 11 10:28:15 redstar kernel: [ 389.754612] sd 4:0:0:0: [sdb] 8007680 512-byte logical blocks: (4.09 GB/3.81 GiB) Jan 11 10:28:15 redstar kernel: [ 389.755405] sd 4:0:0:0: [sdb] Write Protect is off Jan 11 10:28:15 redstar kernel: [ 390.388661] sdb: unknown partition table Jan 11 10:28:15 redstar kernel: [ 390.391887] sd 4:0:0:0: [sdb] Attached SCSI removable disk ] It has an ext2 filesystem on itself and can be, in linux, mounted: mount /dev/sdb mnt without errors, and works. What should I do to be able to work with the drive (read/write) in plan9? (When I plug it into my plan9 machine, I don't see any entry like /dev/sdUXX, I see 3 entries under /dev/usb/, ep4.0, ep4.1 and ep4.2, which appear/disappear as I plug/unplug the device. Running usb/disk claims sth. like 'there is no disk unhandled'). Thank you for suggestions! Ruda
Re: [9fans] Fwd: Call for Papers: LASER 2012—Learning from Authoritative Security Experiment Results
Can I get away with designing something at the pub which I know is flawed and then writing it up? Are you sure this isn't from The Onion? On 11 January 2012 17:19, ron minnich wrote: > This is kind of a fun one: stuff that DID NOT work. I like the basic idea > ... > > ron > -- brucee Don't meddle in the mouth -- MVS (0416935147, +1-513-3BRUCEE)
Re: [9fans] Fwd: Call for Papers: LASER 2012?Learning from Authoritative Security Experiment Results
On Tue, Jan 10, 2012 at 10:19:36PM -0800, ron minnich wrote: > This is kind of a fun one: stuff that DID NOT work. I like the basic idea I generally learn more from what I do wrong than from what I do right--- sometimes because when "it works", it is not absolutely for the reasons I had explicitely in view... so the lesson is less than zero. And there is the classical joke about the experiment on a flea: Researcher tells the flea: "jump!"---and the flea jumps. He cuts one leg. "Jump!"---and the flea, with more difficulty, jumps. He cuts another leg. "Jump!"---after some time and great efforts, it jumps. He cuts one more. "Jump!"---and the flea doesn't jump. Scientific conclusion: when one cuts legs to a flea, it becomes deaf. -- Thierry Laronde http://www.kergis.com/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C