From owner-freebsd-chat Sun Mar 11 11:25: 5 2001 Delivered-To: freebsd-chat@freebsd.org Received: from riker.skynet.be (riker.skynet.be [195.238.3.132]) by hub.freebsd.org (Postfix) with ESMTP id BACBD37B719 for ; Sun, 11 Mar 2001 11:24:53 -0800 (PST) (envelope-from brad.knowles@skynet.be) Received: from [194.78.241.123] ([194.78.241.123]) by riker.skynet.be (8.11.2/8.11.2/Skynet-OUT-2.11) with ESMTP id f2BJOgK26618; Sun, 11 Mar 2001 20:24:42 +0100 (MET) (envelope-from ) Mime-Version: 1.0 X-Sender: bs663385@pop.skynet.be Message-Id: In-Reply-To: References: <20010310230724.A292@sprig.tougas.net> <000601c0a9f9$31b88120$103b7c18@palisor.yi.org> Date: Sun, 11 Mar 2001 20:20:22 +0100 To: Dag-Erling Smorgrav , "Tyler K McGeorge" From: Brad Knowles Subject: Re: Looking for Yoda Cc: "Damien Tougas" , Content-Type: text/plain; charset="us-ascii" ; format="flowed" Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org At 2:28 PM +0100 3/11/01, Dag-Erling Smorgrav wrote: > Lucky for you, we have a whole batch of projects just waiting for > someone to work on them: > > http://www.FreeBSD.org/cgi/query-pr-summary.cgi > > They're not all really that hard. Many of them can probably be closed > without any more action than verifying the bug they report no longer > exists, or never existed in the first place. The problem with these PRs is that they assume you're already an experienced programmer, and that you understand the context in which the patch is being made. Unfortunately, those two things are precisely what programmers new to C almost certainly don't have. Even if they're otherwise experienced programmers, simply dumping them in the deep end of the ocean and telling them to "sink or swim" is likely to end up with most of them sinking fairly rapidly. > If you're looking for > something more long-term, try this page: > > http://www.freebsd.org/projects/ Moof! I looked at this page. There's all sorts of stuff here, but it's things like the Ganger & Platt "softupdates" papers, the page describing the vinum logical volume manager, a link to the page for the Coda distributed filesystem, the pages describing the efforts to port FreeBSD to Alpha, PowerPC, SPARC, and other hardware platforms, etc.... Unfortunately, I didn't see a single thing here that would be appropriate for an experienced programmer to use as their reason for introducing themselves to C, or as a project that a a new programmer could jump into and start programming for the first time. Much better would be a page that had links to descriptions of projects that have been envisaged by members of the FreeBSD project as being necessary or desirable, but which have not yet been taken on by someone, or where new programmers (or experienced programmers that are new to C) would be able to jump in and start doing work. In other words, a page with links to descriptions, specifications, and maybe even some designs for programs (with some data flow diagrams, etc...), but where there hasn't yet been any code produced. Myself, I took a Numerical Methods class when I was a Junior in college, and many programming languages were allowed for this class but C was not on the list. With the instructors permission (and cooperation from the guy who was grading the programs), I was allowed to use C, while everyone else was using Pascal, FORTRAN, or Basic. This was an interesting enough topic and use for my skills that I was always the first person to turn in the homework, I always got a perfect score on my homework, and I always turned in the most accurate answers (because I used extended precision features within C to push the hardware to the limits of its capabilities). My programs probably ran faster and were more efficient than anyone else's, too. I followed this up by writing a terminal locking program my senior year, and by the time I was done the program had five or six different ways to specify the password to be used, had an automatic count-down timer to log you out if you didn't come back soon enough, could automatically run programs and collect their output on a periodicity you specified (so that you could run fortune and have it updated every minute), and could even display a graphics-mode page for those terminals capable of it (think Zenith z39a). At the time I left, there were only two people on that system that weren't using it, and both of them were senior staff systems administrators that knew of bugs in the system calls I was using to actually perform the lock. They also knew that the other person was such a prankster that if they used this program to lock their terminal and then went away, they would return to find a joke had been played on them. I believe I contributed that program to comp.sources.lang.c before I left, but I'd be damned if I could find it again. Of course, a terminal-locking program in these days of ssh and X terminals is not a particularly useful thing to have, so it's not like it really matters. But it was a fascinating tool to write at the time, and it was an interesting way to get into a little systems programming. -- Brad Knowles, #!/usr/bin/perl -w # 531-byte qrpff-fast, Keith Winstein and Marc Horowitz # MPEG 2 PS VOB file on stdin -> descrambled output on stdout # arguments: title key bytes in least to most-significant order # Usage: # qrpff 153 2 8 105 225 /mnt/dvd/VOB_FILE_NAME | extract_mpeg2 | mpeg2_dec - $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=( $m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16 -2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$ d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^ $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^ (($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message