Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: The job is done :) w38 released 4

Well that was faster than expected. Thanks to two nice forum members (chiles & MyGPL) who pointed me to my mistake, I have successfully rebuild a hopefully tagfree version of Wolf's w38 release.

Let's hope I haven't forgotten any tags and that my kind supplier will keep his subscription.

A good day for free software...

User Journal

Journal Journal: Let's break Sveasoft's tagging scheme

I have been gathering details about how Sveasoft tags the firmware for a while now.

However when I tried to rebuild a firmware with a modified (cleaned) SquashFS, it failed to flash on my WRT54G. Therefore I decided to publish all my information about the subject and ask for help of the community.

If you're interested in the stuff or if you want to help, it's all posted in this forum post.

Oh and to encourage you guys (and girls?) a little: James thinks he has an IQ of 170 (quote) and that his tagging scheme can't even be broken by the NSA... maybe we should prove him wrong on both issues ^_^

User Journal

Journal Journal: New mirrors, Alchemy pre5.3 source code available

Today I added the pre5.3 source code to the site(s). The file should be on all mirrors shortly.
My inside source tells me that there might be a real public release of Sveasoft's Alchemy soon. Also work on the new firmware edition, Talisman, has apparently begun.

In addition I can happily announce that there's two new mirrors. Thanks for hosting, guys!

User Journal

Journal Journal: Wolf's pre5.3w30 fork ready for download

Apparently James keeps making friends. A former subscriber who got kicked out by him asked me to make his copy of Wolf's pre5.3 fork available to the public.
So here it is, as promised. This build offers IPv6 support, a Chillispot GUI and many bugfixes over pre5.3. It is a little older then 5.4 but the differences should be minor.
Big thanks to my source, if you want your name mentioned here let me know :)

Coming up next is the source code for pre5.3, if you're a subscriber and able to provide me with a comparison MD5 sum of the file Firmware_Alchemy-pre5_3.src.bz2 please email me (gplrequest@ados.fr)

User Journal

Journal Journal: Sveasoft Alchemy pre 5.4 available 5

Once again somebody was nice enough to leak Sveasoft's latest firmware, Alchemy pre5.4 to the public.
I confirmed that this file is legit and it is available for download from the mirrors now.
This is a feature freeze release and should therefore have most bugs removed. Hopefully I will also be able to add Wolf's Alechemy build pre5.3w30 soon which offers IPv6 support as well as most 5.4 fixes.
Also I was asked to point out that there is an independant (uncensored) forum about the topic which I visit regularly.
User Journal

Journal Journal: False DMCA copyright accusations by James Ewing 10

Hello community, this time James has gone too far.
He wrote a DMCA complaint to the hosters of my mirrors, claiming that those files were under his copyright and asking for their removal.
Those emails prove once and for all how James works and how he tries to circumvent the GPL in every possible way.
Please take your time to read this and my comments in red: The email conversation

Current mirrors:
http://wrt54g.thermoman.de/
http://www.ecamnetwork.com/wrt54g/ (no files for now)
http://wrt54g.atw.hu/
http://wrt54g.chroot.de/
http://wrt54g.oliver-arp.de/

User Journal

Journal Journal: Yet another new mirror, prohosting dead 1

The prohosting mirror went down but got replaced with a shiny new mirror that is here to stay :)
Also I got pointed to another Slashdot journal about Sveasoft which explains the whole situation from a more objective point of view. A very interesting read indeed, read it here.

Accounts at free webhosts would still be greatly appreciated although they may go down quickly. It's worth a try.

Current mirrors:
http://www.ecamnetwork.com/wrt54g/
http://wrt54g.atw.hu/
http://wrt54g.chroot.de/
http://wrt54g.oliver-arp.de/

User Journal

Journal Journal: Alchemy 5.3 uploaded, poll, new mirror 6

Things can change quickly. Someone has posted Alchemy 5.3 on edonkey, I verified the file with my inside source and have uploaded it to the website.
The one who leaked it would probably lose his/her subscription anyways since the file was in the public already.
However I am interested what people think about hosting tagged files obtained from P2P, so please voice your opinion in this poll.
You can also post questions and comments at this forum. Help each others out!

And there's more good news: I have a new mirror, thanks to a supporter from hungary :) There can never be enough...

Current mirrors:
http://earth.prohosting.com/freewrt/
http://wrt54g.atw.hu/
http://wrt54g.chroot.de/
http://wrt54g.oliver-arp.de/

Hardware Hacking

Journal Journal: Sveasoft Alchemy 5.2.3 source code, news about 5.3

The 5.2.3 source code is now available, check the prohosting mirror.
If you want to help my case, open an account at any free webhost and mirror my website or parts of it there. Email the URL (even better: login infos) to me and I will add it as a mirror.

Also as some have already noticed, Alchemy 5.3 has been released. If it turns out to be relatively stable, I will add it to the site. Tagging is still an issue and I really don't like that people lose their subscriptions so maybe I will only compile second-latest versions from now on.

That would mean that you have to wait for 5.3 binaries until 5.3 source code is released by Sveasoft. We'll see and I will do all I can...

Hardware Hacking

Journal Journal: Welcome to my journal! 2

Hello everyone!
This journal has the purpose that you can always find me and read the latest news about Sveasoft's GPL violations and their dirty scare tactics.
Recently they managed to get a lot of webhosts to remove my website, claiming it contained illegal content.
I hope Slashdot won't take my journal down on the first scare call or email they receive from this bully. So always check here for links to the current mirrors of the website.
If you want to support me, mirror my site and drop me an email. I'm still looking for someone who can provide me webspace that I can upload to myself. Expect harassment from Sveasoft though.
Regards, TheIndividual

Current mirrors:
http://earth.prohosting.com/freewrt/
http://wrt54g.chroot.de/
http://wrt54g.oliver-arp.de/

User Journal

Journal Journal: Good, working code heading for the wastebin *sniff* 2

Shameless rambling about a personal project...

I'm working on a video game that is similar to Moon Patrol. It's a game for the venerable, underpowered Intellivision video game system. You can find more information and a developer's kit on the Intellivision on my SDK-1600 page.

Well, I spent Thanksgiving up through now working on various aspects of the game. One large piece was working out a method for controlling the 'bad guys.' I figured I'd write a small interpreter that would read a "Bad Guy Motion Program", and move the guys around. I even wrote a very simplistic assembler to assemble the command words for the interpreter. The whole thing actually works pretty reliably.

Turns out, though, that I need something else. My current approach is 'timer based.' That is, the motion programs are essentially of the form "Set velocity to dx,dy", "wait XX tics", "set velocity to dx,dy", "wait XX tics", "fire", "wait XX tics", "leave the screen." The problems are twofold:

  • In Moon Patrol, at least, the bad guys are cued into the level and cued out of the level by location. That is, when I cross a particular marker, the bad guys show up. When I cross a different particular marker, they leave. I'd like similar behavior for my game, but the timer method causes the bad guys to leave too soon if the tank is driving slowly, and too late if the tank is driving quickly.
  • The bad guys always move in EXACTLY the same pattern. In Moon Patrol, at least, the bad guys move consistently only if you move consistently. That is -- their movements seem rule based, not hardcoded.

So, I'm going to have to scrap my current interpreter. I'm torn between writing a new interpreter (or extending this one) to allow me to write rule-based motion programs for the bad guys, or just writing the rule-based programs directly in CP-1600 assembly. The latter is less convenient, I think, but will likely be smaller and is more likely to fit in my cycle budget.

So it appears I will probably scrap the interpreter.

The interpreter wasn't much, but it was something. And it worked. And I was proud of it. It provided some neat concepts, such as a looping construct that combined initialization, decrement, and branching into a single instruction. FWIW, here's how the looping instruction worked:

I offer two loop-counters per program. The LOOPA instruction uses the 'A' loop counter, and LOOPB uses the 'B' loop counter. The counters are initialized to 0 at the start of the program. Upon reaching an instruction of the form "LOOP[AB] label, count", the loop instruction checks the corresponding loop counter. If it's 0, it's initialized to the specified count and a branch is made to the label. If it's non-zero, it's decremented, and if the result is non-zero the branch is taken. That's it.

Here's an example motion program that causes a bad-guy to move in a box-shaped spiral:

####
## sample motion programs
####
MP_BOX PROC

@@box
. . . . GO (3) rg1
. . . . GO (3) dn1
@@boxb GO (3) lf1
. . . . GO (2) up1
. . . . LOOPA @@box, 5 # do the box 5 times

. . . . GO (2) rg2
. . . . GO (2) dn2
. . . . LOOPB @@boxb, 4 # slide over and do this 4 times total.
. . . . GO (9) lf3
. . . . DIE
. . . . ENDP

The names "lf1", "dn2" represent directions and velocities. The number in parentheses is number of ticks to wait after the instruction executes (at a 30Hz tick-rate). Nothing particularly mind-bending.

Now it looks as though I might bin all this code and write up motion programs in straight assembly. *sigh*

Ah well, here's the interpreter (or at least the heart of it) for posterity.

;; ======================================================================= ;;
;;. UPBGM -- Update Bad Guy Motion.. Called on a 30Hz tick.. . . . . . . . ;;
;; ======================================================================= ;;
UPBGM. PROC
. . . . PSHR. . R5

. . . . MVII. . #BGMPTBL, R4
. . . . CLRR. . R1

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. Iterate through the motion programs . . . . . . . . . . . . . . ;;
. . . . ;;. R0 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;;. R1 -- Slot # for MOB (within group 1). . . . . . . . . . . . . ;;
. . . . ;;. R2 -- Program counter for current record . . . . . . . . . . . ;;
. . . . ;;. R3 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;;. R4 -- Pointer to BGMP state tables . . . . . . . . . . . . . . ;;
. . . . ;;. R5 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
. . . . B . . . @@first_bgmp. . ; skip first INCR R1

@@next_bgmp:
. . . . INCR. . R1. . . . . . . ; next slot #

. . . . CMPI. . #5,. . R1. . . ; Is this the end?
. . . . BGE . . @@done_bgmp . . ; Yes, done.

@@first_bgmp:
. . . . SDBD
. . . . MVI@. . R4,. . R2. . . ; Get program counter
. . . . TSTR. . R2. . . . . . . ; If it's zero, motion program is inactive
. . . . BNEQ. . @@active_bgmp. ; Non-zero, it's active.

. . . . ADDI. . #3,. . R4. . . ; Skip rest of record.
. . . . CMPI. . #BGMPTBL+25, R4 ; Is this the end?
. . . . BLT . . @@next_bgmp . . ; No, do the next one.
. . . . B . . . @@done_bgmp . . ; Yes, done.

@@active_bgmp:
. . . . MOVR. . R4,. . R3
. . . . MVI@. . R4,. . R0. . . ; Get delay counter for this motion program
. . . . ADDI. . #2,. . R4. . . ; point to next record
. . . . DECR. . R0. . . . . . . ; Count down the delay counter.
. . . . MVO@. . R0,. . R3. . . ; Store the updated delay counter

. . . . BPL . . @@next_bgmp. . ; If not expired, go to the next program.

@@expired:
. . . . MVI@. . R2, . . R0. . . ; Get next program word.
. . . . INCR. . R2
. . . . MVO@. . R0, . . R3. . . ; Store out lower byte as delay count.
. . . . XOR@. . R3, . . R0. . . ; Clear delay byte
. . . . SWAP. . R0. . . . . . . ; Extract command byte.

. . . . SUBI. . #64,. . R0. . . ; Less than 64?. It's a motion command.
. . . . BMI . . @@cmd_move. . . ;
. . . . SLL . . R0,. . 1
. . . . ADDR. . R0,. . PC. . . ; Otherwise, vector to the other commands.
. . . . B . . . @@cmd_loopa . . ;. 0 : LOOPA
. . . . B . . . @@cmd_loopb . . ;. 1 : LOOPB
. . . . B . . . @@cmd_jump. . . ;. 2 : JUMP
. . . . B . . . @@cmd_fire. . . ;. 3 : FIREA
. . . . B . . . @@cmd_fire. . . ;. 4 : FIREB
. . . . B . . . @@cmd_fire. . . ;. 5 : FIREC
. . . . B . . . @@cmd_die . . . ;. 6 : DIE
. . . . B . . . @@cmd_attr. . . ;. 7 : ATTR
. . . . B . . . @@cmd_seths . . ;. 8 : SETHS
. . . . B . . . @@cmd_clrhs . . ;. 9 : CLRHS
; . . . B . . . @@cmd_wait. . . ; 10 : WAIT aka. NOP.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. WAIT/NOP:. Just set the delay counter and go to next command.. ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_wait:

@@finish_cmd:
. . . . SUBI. . #5,. . R4. . . ; Rewind to program pointer in record.
. . . . MVO@. . R2,. . R4. . . ; \.
. . . . SWAP. . R2. . . . . . . ;. |-- Store program counter as double-byte
. . . . MVO@. . R2,. . R4. . . ; /. . data
. . . . ADDI. . #3,. . R4. . . ; point to next record.

. . . . B . . . @@next_bgmp. . ; No, do the next one.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. LOOPA/LOOPB:. Count down the loop counter.. If it goes -ve, . . ;;
. . . . ;;. we're just starting the loop so initialize it and branch. . . . ;;
. . . . ;;. If it goes 0, the loop is just finishing, so fall through.. . . ;;
. . . . ;;. Otherwise, store updated counter and branch.. . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_loopb:
. . . . INCR. . R3. . . . . . . ; Point to loop counter B
@@cmd_loopa:
. . . . INCR. . R3. . . . . . . ; Point to loop counter A

. . . . MVI@. . R2,. . R0. . . ; Read argument to loop into R0
. . . . INCR. . R2. . . . . . . ;

. . . . MVI@. . R3,. . R5. . . ; read loop counter
. . . . DECR. . R5. . . . . . . ; count it down
. . . . BMI . . @@init_loop . . ; if it goes negative, we need to init it.
. . . . BEQ . . @@done_loop . . ; if it goes to zero, it's expiring

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. +ve case:. Store updated counter and branch.. . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@exec_loop:. . . . . . . . . . ; otherwise it was an active loop.
. . . . MVO@. . R5,. . R3. . . ; store updated loop counter

@@loop_jump:
. . . . ANDI. . #$FF,. R0. . . ; execute the jump.
. . . . XORI. . #$80,. R0. . . ;
. . . . SUBI. . #$80,. R0. . . ;
. . . . ADDR. . R0,. . R2. . . ;

. . . . B . . . @@finish_cmd. . ; finish this command.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. -ve case:. Initialize the loop counter and branch.. . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@init_loop:
. . . . SWAP. . R0. . . . . . . ;
. . . . MVO@. . R0,. . R3. . . ; initialize the loop counter.
. . . . SWAP. . R0. . . . . . . ;
. . . . B . . . @@loop_jump

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. Zero case:. Zero out the counter and don't branch.. . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@done_loop:
. . . . MVO@. . R5,. . R3. . . ; store updated loop counter
. . . . B . . . @@finish_cmd. . ; and that's it.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. JUMP:. Just read the argument into the program counter.. . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_jump:
. . . . MVI@. . R2,. . R2
. . . . B . . . @@finish_cmd. . . . . . ; Done.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. MOVE:. Read the X velocity, Y velocity into SPXYV table.. . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_move:

. . . . MOVR. . R1,. . R5. . . . . . . ;\
. . . . ADDR. . R5,. . R5. . . . . . . ; |-- convert slot number to sprite
. . . . ADDI. . #SPXYV, R5. . . . . . . ;/. . X/Y velocity table pointer

. . . . ADDI. . #@@xvel_tbl + 64, R0. . ; Index into X velocity lookup table
. . . . MOVR. . R0,. . R3

. . . . MVI@. . R3,. . R0. . . . . . . ; Get X velocity from lookup
. . . . MVO@. . R0,. . R5. . . . . . . ; Write it to X vel for this sprite

. . . . ADDI. . #@@yvel_tbl - @@xvel_tbl, R3. . ; Index into Y vel lookup tbl
. . . . MVI@. . R3,. . R0. . . . . . . ; Get Y velocity from lookup
. . . . MVO@. . R0,. . R5. . . . . . . ; Write it to Y vel for this sprite.

. . . . B . . . @@finish_cmd. . . . . . ; Done.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. FIREA:. Make this bad guy drop a bomb. . . . . . . . . . . . . ;;
. . . . ;;. FIREB:. Make this bad guy fire a crater-maker. . . . . . . . . ;;
. . . . ;;. FIREC:. Make this bad guy shoot horizontally to the left.. . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_fire:.
. . . . MVII. . #@@firetype - 6, R3
. . . . ADDR. . R0,. . R3
. . . . MVI@. . R3,. . R0. . . ; read X/Y velocity
. . . . INCR. . R3
. . . . MVI@. . R3,. . R3. . . ; read sprite attribute index
. . . . CALL. . BGFIRE
. . . . B . . . @@finish_cmd

@@firetype:
. . . . DECLE. ((VBIAS + $40) SHL 8) + (VBIAS + $00) ; drop the bomb
. . . . DECLE. SPATBL.b2

. . . . DECLE. ((VBIAS + $40) SHL 8) + (VBIAS + $40) ; drop the crater maker
. . . . DECLE. SPATBL.b1

. . . . DECLE. ((VBIAS + $00) SHL 8) + (VBIAS - $80) ; fire left.
. . . . DECLE. SPATBL.b4

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. DIE:. Time for this guy to die.. . . . . . . . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_die:
. . . . CALL. . BGKILL
. . . . B . . . @@finish_cmd

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. ATTR:. Set the Sprite Attribute for this sprite.. . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_attr:
. . . . MVI@. . R2, . . R0. . . ; Get attribute
. . . . INCR. . R2
. . . . MOVR. . R1, . . R3. . . ; \
. . . . ADDI. . #SPAT,. R3. . . ;. |-- Store attribute number into slot
. . . . MVO@. . R0, . . R3. . . ; /. . in sprite attribute table.

. . . . B. . . @@finish_cmd

. . . .
. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. CLRHS:. Set the horizontal-scroll bit for this sprite. . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_clrhs:

. . . . ;; ---------------------------------------------------------------- ;;
. . . . ;;. SETHS:. Set the horizontal-scroll bit for this sprite. . . . . ;;
. . . . ;; ---------------------------------------------------------------- ;;
@@cmd_seths:
@@do_hs:
. . . . MOVR. . R1, . . R3
. . . . ADDI. . #@@shl_tbl, R3
. . . . MVI@. . R3, . . R3
. . . . MOVR. . R3, . . R0
. . . . COMR. . R3
. . . . AND . . SPHSCR, R3
;;. . . ADCR. . PC
. . . . XORR. . R0, . . R3
. . . . MVO . . R3, . . SPHSCR

. . . . B . . . @@finish_cmd

@@shl_tbl:
. . . . DECLE. 1, 2, 4, 8, 16
. . . .

@@done_bgmp:
. . . . PULR. . PC

@@xvel_tbl:
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lf0..lf3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rg0..rg3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; up0..up3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; dn0..dn3

. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lu0..lu3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; ru0..ru3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; ld0..ld3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rd0..rd3

. . . . DECLE. VBIAS,. . . VBIAS - $08
. . . . ;; directions 33 .. 63 not defined yet.. in no hurry....

@@yvel_tbl:
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; lf0..lf3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; rg0..rg3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; up0..up3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; dn0..dn3

. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lu0..lu3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; ru0..ru3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; ld0..ld3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rd0..rd3

. . . . DECLE. VBIAS,. . . VBIAS
. . . . ;; directions 33 .. 63 not defined yet.. in no hurry....

. . . . ENDP

And there it is. (The dots are added to preserve the original formatting, although it appears I'm not entirely successful. Ah well... it's pretty close.)

--Joe

User Journal

Journal Journal: This whole Friend/Foe/Fans/Freaks thing 9

Heh. My journal -- probably a bit like pissing in the ocean. It feels good, but nobody notices. ;-)

Anyway, I was clicking through my 'user' pages today (clicking aimlessly, noticing how much snappier Moz 1.1 feels relative to 1.0 on this Solaris box), and noticed that whoa, I have fans!

Up until now, I've entirely avoided the whole friend/foe mechanism. For awhile now, I've checkmarked "unwilling to moderate", and "hide scores". I also browse at '0'. (I used to browse at -1, but it really was too noisy.) Moderation just doesn't seem all that reliable or meaningful, and so I largely ignore it. Too much $3 crack going around. (I don't mind being modded up occasionally though -- if my post is really worth "promoting" to those who browse at higher thresholds.)

The friend/foe mechanism just seemed like another bad idea. It seemed to have the potential to turn Slashdot into a popularity contest like highschool. Either that, or it'd lead to even greater segmentation of the posting populace, with everyone auto-modding up their friends and ignoring everyone else. A sort of "show me only what I agree with and want to hear" mechanism that does little to encourage intelligent discourse and does everything to silo individual cliques. So I just ignored it.

I've thought it over more, now. I certainly don't mind if others mark me as friend or foe. (Although I'd certainly wonder why someone might choose to mark me 'foe'.) I don't have any qualms about marking someone 'friend' anymore either. I don't plan to use the moderation adjustment facility though. I ignore comment moderations for the most part anyway, and I see no reason to change that.

So, I've marked a couple people 'friends' today. Some are longtime acquaintences (either in meatspace or on /.). Others were in my list of 'fans'. And if someone posts a helpful response to one of my posts, or posts something I think is particularly insightful, I may just mark 'em 'friend.' Or maybe not. Who knows.

Well, enough rambling. This post is so long, I've received about 9 or 10 spam emails in the meantime:

Mutt 1.0i@caffeine:=spool/incoming*(reverse-threads) [3173/3173(1% of 71M)][b=0|
. 1 . NDL Sep 26 Jacelyn0828c77@h ( . .25) [Spam] High investment potential ret
. 2 . NDL Sep 26 Rockne Renate . .( . 117) [Spam] Why Wait... Rates Below 4.75%
. 3 . NDC Sep 26 cedrickmills0123 ( . .11) [Spam] how would you like to increas
. 4 . NDL Sep 27 Zared Lucio . . .( . .71) [Spam] Stop going bald, time is stil
. 5 . NDL Sep 27 Brittany Bond . .( . 130) [Spam] In Debt? Get Help!---Free Quo
. 6 . NDL Sep 26 Frayne Clio . . .( . 167) [Spam] Coral Calcium Discovery Lette
. 7 . NDL Nov 25 refi_loans_2@yah ( . .70) [Spam] dont loose sales - take credi
. 8 . NDL Sep 27 celularshop@hotm ( . .38) [Spam] Fwd: Faith is all that is req
. 9 . NDL Sep 27 brellis10@hotmai ( . .54) [Spam] Attn: Do it yourself.

As Stimpy would say: Joy!

--Joe

Slashdot Top Deals

I tell them to turn to the study of mathematics, for it is only there that they might escape the lusts of the flesh. -- Thomas Mann, "The Magic Mountain"

Working...