Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
1337JiveTurkey
Feb 17, 2005

  • The moon is tide locked to the Earth. As far as you're concerned, this means the Earth is always going to be at the same spot in the sky and this is a function of your location on the moon.
  • Barring some unusual circumstances, there are going to be two visible objects the size of the Earth in the sky.
  • Barring some completely loving bizarre circumstances, one of those two objects will have an apparent magnitude close to -27 and have the spectral distribution of a black body at 5700 K.

Adbot
ADBOT LOVES YOU

Xinlum
Apr 12, 2009

Merry Christmas to all, and to all a Dark Knight

Howdy. I'm taking my first programming class and want someone to check over my first lab assignment before I turn it in to make sure I'm not loving up stuff like comments and whatnot. We have to use machine language to make a program that will calculate the GCD of two integers in an emulated simple computer using Unix.

code:
  1 LOOP    LOA A   ; load A into accumulator
  2     SUB B   ; subtract B
  3     JMZ DONE    ; A-B=0 means A=B so we are done
  4     JMN BGTA    ; if negative go to BGTA
  5     STO A   ; replaces A with A-B
  6     JMP LOOP    ; repeats from step 1
  7 BGTA    LOA B   ; loads B into accumulator
  8     SUB A   ; B-A
  9     JMZ DONE    ; B-A=0 means B=A so we are done
 10     STO B   ; replaces B with B-A
 11     JMP BGTA    ; repeats from step 1 for B>A
 12 DONE    STO C   ; not needed for now but stores GCD
 13     HLT 0   ; ends the program
 14 A   LIT 36  ; this is the value of A and can be any number
 15 B   LIT 16  ; this is the value of B and can be any number
 16 C   LIT 0   ; the GCD is stored here
 17     END
Ignore the numbers on the left, Vim did that. Also, we've been working via ssh to connect to a computer running Unix. Is there a way to get files off of it using PuTTY or am I stuck copy and pasting into notepad?


edit - Looking over it I just realized that line 12 would just store zero no matter what. Would I be right that adding a new line above it that says LOA A and giving it the DONE title would fix it? So that part would end up looking like
code:
DONE   LOA A
   STO C
edit2 - I think I'm still messed up. Should I add a JMN LOOP line after line 8?

Xinlum fucked around with this message at 05:23 on Sep 10, 2010

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
Putty has a SFTP client. Most good GUI FTP clients support it too.

Painless
Jan 9, 2005

Turn ons: frogs, small mammals, piles of compost
Turn offs: large birds, pitchforks
See you at the beach!

Xinlum posted:

Howdy. I'm taking my first programming class and want someone to check over my first lab assignment before I turn it in to make sure I'm not loving up stuff like comments and whatnot. We have to use machine language to make a program that will calculate the GCD of two integers in an emulated simple computer using Unix.

No one's going to do your homework for you. If you're unsure of the logic, go through it on paper with a few inputs. As for your comments, some of them are just plain pointless (the comments are supposed to be for someone who understands the language), some are just confusing (repeats from step 1?).

Flobbster
Feb 17, 2005

"Cadet Kirk, after the way you cheated on the Kobayashi Maru test I oughta punch you in tha face!"
When it comes to comments inside their logic flow, I always tell my students "don't write comments explaining *how* you're doing something, unless it's clever or tricky in some way. Your *code* explains how, and your comments explain *why*."

So a comment like "LOA B ; loads B into the accumulator" is pointless -- you haven't said anything that the instruction didn't already say, so you've just added more bytes to the file at that point.

Your code should be well-written enough that a reader doesn't need comments to understand how it's doing something except in very complex cases. Now that's harder to apply to assembly language than a language like C++ or Java, so I would recommend instead of putting meaningless comments at the end of every line, comment larger blocks and describe what larger task it is supposed to accomplish.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Oh please, are you guys serious? Yes, comments should be 'why' not 'how' in the industry, but it's his first programming language. The comments might be for him to remember the syntax.

It also looks like he's not asking you to do his homework for him, just to help him out with something he's clearly attempted and having a bit of trouble with.

Xinlum
Apr 12, 2009

Merry Christmas to all, and to all a Dark Knight

We were supposed to comment on each line for this assignment, and step 1 refers to the algorithm we were given for calculating GCD. Sorry about that (but thanks for clearing it up anyway, I figured I would have to go comment crazy with everything after this).

Also I asked for help with figuring this out because we haven't actually been given a way to actually test what we wrote without it spitting out a few hundred lines of binary. So my question still stands if adding a JMZ command for the BGTA part and the quick change of adding a LOA A line before I use STO C would fix it up.

The storing the result part isn't needed but I figured I should probably try everything I can to get a good grip on it before we jump into learning this language our professor wrote.

Flobbster
Feb 17, 2005

"Cadet Kirk, after the way you cheated on the Kobayashi Maru test I oughta punch you in tha face!"

Orzo posted:

Oh please, are you guys serious? Yes, comments should be 'why' not 'how' in the industry, but it's his first programming language. The comments might be for him to remember the syntax.

It also looks like he's not asking you to do his homework for him, just to help him out with something he's clearly attempted and having a bit of trouble with.

It's about enforcing good habits early on. I took the same approach in a class that I taught this summer which as an intro to C++ for non-majors, many of whom had never done any programming before.

Now if his assignment said that he should comment every line (as he's since posted), that's a different animal.

At least we offered him some good advice instead of popping in and criticizing other posters without adding anything of substance to the discussion :colbert:

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
It wasn't so much about criticizing others as it was defending his original post, which I thought was perfectly fine. Comments are great for learning languages and bad in a work environment where everyone knows the language, I think it's plenty substance enough to offer an alternative viewpoint to your absolute dismissal of them.

And honestly, the comment habit isn't one that is really that hard to break. I've seen a lot of people start where I work and add useless comments. Somebody takes 5 minutes to explain why they shouldn't do that, they learn, and it's over. Not a big deal!

Flobbster
Feb 17, 2005

"Cadet Kirk, after the way you cheated on the Kobayashi Maru test I oughta punch you in tha face!"

Orzo posted:

Somebody takes 5 minutes to explain why they shouldn't do that, they learn, and it's over. Not a big deal!

Which is exactly what I did :)

I would have offered him more help on his assembly but I was writing the post on the bus. I don't think he was asking anyone to do his homework for him, it's pretty clear that he did the work and just wanted some advice.

No Safe Word
Feb 26, 2005

Orzo posted:

And honestly, the comment habit isn't one that is really that hard to break. I've seen a lot of people start where I work and add useless comments. Somebody takes 5 minutes to explain why they shouldn't do that, they learn, and it's over. Not a big deal!

It's easy to break the "stop making useless comments" habit, but oh so hard to cultivate the useful "post the correct types of comments" habit. :sigh:

Though I agree, when you're first starting out who really cares. You aren't building anything of consequence that would really need comments anyway and it's only once you're well past the "first programming class" phase that it become an issue.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!

Flobbster posted:

Which is exactly what I did :)
And my point was that you're telling him "don't comment" at the wrong time. He is not writing production software and he is not working on a team. He is learning a language and comments are useful for that; when you're learning a language, good code is not self-documenting because you can't even read it!

And the thing about the homework was in response to Painless, not you.

Butt Cord
Jan 28, 2005

The State was not formed in progressive stages; it appears fully armed, a master stroke executed all at once; the primordial Urstaat, the eternal model of everything the State wants to be and desires; the basic formation, on the horizon throughout history.
If you're starting out it's definitely important to comment everything. As you go on and learn programming parlance, you'll get a feel for what's obvious. "Why" is definitely important once you're in the real world, with future code-maintainers in mind. When you're starting out, though, "How" is important if only because it makes you think more critically about what you're doing. Even as a professional, "How" can also be important if you manage to come up with an exceptionally clever method of doing something that isn't necessarily intuitive. Regular Expressions are a great example of something where the more clever you are, the more opaque the methodology can be.

Butt Cord
Jan 28, 2005

The State was not formed in progressive stages; it appears fully armed, a master stroke executed all at once; the primordial Urstaat, the eternal model of everything the State wants to be and desires; the basic formation, on the horizon throughout history.

1337JiveTurkey posted:

[*]The moon is tide locked to the Earth. As far as you're concerned, this means the Earth is always going to be at the same spot in the sky and this is a function of your location on the moon.

Wow, for all the thinking I was putting into figuring out phases and whatnot, this obvious constraint completely slipped my mind! The trick is that we have no means of determining our location on the moon. There's obviously no GPS, and a compass would be useless since the moon has no magnetic field. Using the stars is useful for figuring out what direction we're facing, but not really accurate enough to determine location. While we technically will have information available from Earth, our goal is make the robot as autonomous and self-contained as possible in its calculation.

Chances are there will be two states: Scanning the sky to find the Earth -- and making adjustments to keep it centered once located.

quote:

[*]Barring some unusual circumstances, there are going to be two visible objects the size of the Earth in the sky.

One of the checks performed will definitely be of a presence-of-blue histogram. I can't imagine a circumstance that would thwart this, unless the Earth is in a very narrow phase with a white storm cloud covering the entire sliver.

quote:

[*]Barring some completely loving bizarre circumstances, one of those two objects will have an apparent magnitude close to -27 and have the spectral distribution of a black body at 5700 K.

This is new terminology for me, could you expand on these? And thanks a lot, I hadn't considered any of these and the prof wont be able to get the jump on me with them now :D

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Butt Cord posted:

While we technically will have information available from Earth, our goal is make the robot as autonomous and self-contained as possible in its calculation.

Knowing something about what angle the earth is at in the sky tells you something about where you are. Earth is the moon's Polaris - you just have to redefine north on the moon.

quote:

This is new terminology for me, could you expand on these? And thanks a lot, I hadn't considered any of these and the prof wont be able to get the jump on me with them now :D

http://en.wikipedia.org/wiki/Apparent_magnitude

http://en.wikipedia.org/wiki/Black_body

He's saying the sun will always look exactly the same (barring a lunar eclipse - don't forget that).

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
loving around in 64-bit x86 asm, did the basic hello world program and a program that reads a line from stdin and echoes it back to stdout, now I'm working on something like echo(1). As a first step, I tried writing a program that prints its first argument to stdout, but I'm not getting any output. The program is as follows:
code:
section .data
    len equ 128

section .text
    global _start

_start:
    pop rcx         ;argc, not what we're looking for
    pop rcx         ;argv[0] is program name, not what we're looking for
    pop rcx         ;actual first argument

    mov rax,4       ;sys_write
    mov rbx,1       ;stdout
                    ;char* already in rcx
    mov rdx,len
    int 80h

    mov rax,1       ;sys_exit
    xor rbx,rbx     ;return 0
    int 80h
write(2) has the signature (int fd, char *buf, size_t count) and writes up to count bytes from buf to fd, so I thought this would work fine. What am I doing wrong :(

shrughes
Oct 11, 2008

(call/cc call/cc)

1337JiveTurkey posted:

  • The moon is tide locked to the Earth. As far as you're concerned, this means the Earth is always going to be at the same spot in the sky and this is a function of your location on the moon.

That's not exactly true. The lunar orbit isn't circular (so the Moon appears to wiggle as it orbits the Earth) and it has other imperfections like a 9-year precession cycle and other precessions.

1337JiveTurkey posted:

  • Barring some unusual circumstances, there are going to be two visible objects the size of the Earth in the sky.

No, only the Earth will be the size of the Earth. The Sun will be smaller, about the size of the Moon as viewed from the Earth.

pseudorandom name
May 6, 2007

Otto Skorzeny posted:

write(2) has the signature (int fd, char *buf, size_t count) and writes up to count bytes from buf to fd, so I thought this would work fine. What am I doing wrong :(

For starters, you're using the 32-bit system call interface from a 64-bit process and I'm surprised that works at all.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

pseudorandom name posted:

For starters, you're using the 32-bit system call interface from a 64-bit process and I'm surprised that works at all.

Works for contrived examples (cf. hello.s and repeater.s), but is there some other syscall interface for 64 bit stuff that I ought to use?

pseudorandom name
May 6, 2007

Yes, you should be using the 64-bit system call interface.

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

pseudorandom name posted:

Yes, you should be using the 64-bit system call interface.

Is there some place this is documented? Reading the ABI docs from AMD and googling around hasn't turned anything up besides a recommendation on SO to look at the glibc source :sigh:

e: found it, was in section A2 of http://www.x86-64.org/documentation/abi.pdf:

quote:

User-level applications use as integer registers for passing the sequence %rdi, %rsi, %rdx, %rcx, %r8 and %r9. The kernel interface uses %rdi, %rsi, %rdx, %r10, %r8 and %r9.
A system-call is done via the syscall instruction. The kernel destroys registers %rcx and %r11.
The number of the syscall has to be passed in register %rax.
System-calls are limited to six arguments, no argument is passed directly on the stack.
Returning from the syscall, register %rax contains the result of the system-call. A value in the range between -4095 and -1 indicates an error, it is -errno.
Only values of class INTEGER or class MEMORY are passed to the kernel.

Switching to the correct registers to pass arguments made it work but also print a bunch of poo poo from the environment (the length I passed was still 128), so now I guess the task is to whip up an asm implementation of strlen. Hooray progress!

Blotto Skorzany fucked around with this message at 01:38 on Sep 11, 2010

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
Got the whole thing working, had the syscall numbers wrong too (they've also changed in x86_64) so I corrected them (if anyone here or a stray googler needs the linux amd64 or x86_64 syscall numbers in a handy reference, there's one at http://lkml.indiana.edu/hypermail/linux/kernel/0104.0/0547.html ) in addition to whipping up an implementation of strlen based on repnz scasb. Now I'm going to go drink.

csammis
Aug 26, 2003

Mental Institution

Otto Skorzeny posted:

Got the whole thing working, had the syscall numbers wrong too (they've also changed in x86_64) so I corrected them (if anyone here or a stray googler needs the linux amd64 or x86_64 syscall numbers in a handy reference, there's one at http://lkml.indiana.edu/hypermail/linux/kernel/0104.0/0547.html ) in addition to whipping up an implementation of strlen based on repnz scasb. Now I'm going to go drink.

Care to post the finished code? I haven't looked at x86 asm in years and not once at x86-64 :shobon:

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
Why the gently caress not
code:
section .text
    global _start

_start:
    pop rsi         ;argc, not what we're looking for
    pop rsi         ;argv[0], not what we're looking for
    pop rsi         ;actual first argument

    ;lovely asm strlen stuff
    mov rdi,rsi     ;searches starting from here
    mov rcx,-1      ;highest int in unsigned context
    xor al,al       ;look for NUL byte
    repnz scasb     ;scan the string
    ;put total length in rdx, given wat scasb has done to rcx
    mov rdx,-2
    sub rdx,rcx

    mov rax,1       ;sys_write
    mov rdi,1       ;stdout
                    ;char* already in rsi
                    ;length in rdx already
    syscall

    mov rax,60      ;sys_exit
    xor rdi,rdi     ;return 0
    syscall




Some real obvious changes from x86 asm: syscalls are done via the syscall instruction rather than interrupt 0x80, syscall parameters are passed in the sequence rdi, rsi, rdx, rcx, r8, r9, write(2) is syscall number 1 rather than 4, exit(2) is number 60 rather than 1

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!

csammis posted:

Care to post the finished code? I haven't looked at x86 asm in years and not once at x86-64 :shobon:
classmate spotted

1337JiveTurkey
Feb 17, 2005

shrughes posted:

No, only the Earth will be the size of the Earth. The Sun will be smaller, about the size of the Moon as viewed from the Earth.

You're right. I messed up the relative diameters from that perspective because I was thinking of the moon from the Earth, but I think the upshot is still very similar.

The Earth is going to be the biggest drat thing in the sky on the Moon and while it may not be perfectly stationary, there's a limit to the area it can wander in the sky. Given that the rover is going to be using a ridiculously expensive embedded system, the most sensible thing to do is to plan for the average case to be as quick and simple as possible. Luckily there are several facts that do in fact make it quite simple in the big scheme of things.

csammis
Aug 26, 2003

Mental Institution

Orzo posted:

classmate spotted

Hah, I didn't even think about the question coming across like that. I graduated years ago.

Rocko Bonaparte
Mar 12, 2002

Every day is Friday!
I have an SConstruct question that isn't as hippy abstract as my last ramblings, so I figured somebody might be able to say something about this. Why can't I have more than one target in my current directly referring to the same object files? I have two targets I build with different main functions that refer to some common code. SConstruct complains when it starts building the second one about this. I've resorted to just commenting out the target I don't particularly add at a moment, but that's a bit annoying.

I read somewhere to the effect that each target should have a build directory. So is that the big rule of SConstruct? What's the least intrusive way I could change things to make it generally happy?

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Not strictly a programming question, and I know the subject of text editors can be... touchy, so I apologize in advance if I start a Holy War here.

For most of my C++ work I've been using Sun Studio 12. Recently however (in the last week) doing anything in it has been dog-slow, to the point where I've leaned more and more on simpler editors like nedit until the sysadmin gets back from vacation and restarts the thing or reinstalls it or whatever he's gotta do. Anyway, most of my coworkers use emacs instead of Sun Studio, on the basis that that's what they've always been using, and it does seem like it can do what I need (project searching, syntax highlighting, indentation, find-declaration type stuff, etc).

However, the command syntax is an absolute loving bugger, at least to me. So what I'm wondering is, is it worth the time to learn how to use emacs, or should I go looking for another C++ editor for when I don't feel like waiting 20 minutes for Sun Studio to fully load?


Also, a specific question about emacs, how the hell do I make it accept the alt key as M- instead of A- ? :mad:

C-Euro
Mar 20, 2010

:science:
Soiled Meat
I didn't see a thread for Fortran95, so I'll ask here- we're learning it for my Stat Mech class and while we've been given code to alter the random number seeds, I'm trying to find a way to make the seeds truly random (you have to set them manually in the given code). A friend of mine suggested using the time as a way to obtain seed values, but I'm having a hard time figuring out both how to call the date & time as well as how to set them as variables. Anyone know Fortran enough to help?

shrughes
Oct 11, 2008

(call/cc call/cc)

C-Euro posted:

Fortran95 date and time

Use DATE_AND_TIME.

shrughes fucked around with this message at 06:25 on Sep 15, 2010

TreFitty
Jan 18, 2003

Simple concept that I haven't found much information on. I'm about to launch a website next week and I have one gaping hole in my security: People can post HTML and have it displayed on the site. I'm using PHP/CodeIgniter and I use form validation for everything and I also have XSS turned on site-wide, but apparently none of that will prevent people from inputting HTML.

So far my simple, retarded solution that I haven't been able to research thoroughly is to do something like this:
code:
$var = str_ireplace("<", "< ", $this->input->post('comment');
Basically, the idea is to break any possible HTML input by adding a space between a < and the next character (edit: this would be done at the input stage). Retarded plan or the most retarded plan? What's a better solution?

TreFitty fucked around with this message at 11:34 on Sep 15, 2010

baquerd
Jul 2, 2007

by FactsAreUseless

TreFitty posted:

Simple concept that I haven't found much information on. I'm about to launch a website next week and I have one gaping hole in my security: People can post HTML and have it displayed on the site. I'm using PHP/CodeIgniter and I use form validation for everything and I also have XSS turned on site-wide, but apparently none of that will prevent people from inputting HTML.

So far my simple, retarded solution that I haven't been able to research thoroughly is to do something like this:
code:
$var = str_ireplace("<", "< ", $this->input->post('comment');
Basically, the idea is to break any possible HTML input by adding a space between a < and the next character (edit: this would be done at the input stage). Retarded plan or the most retarded plan? What's a better solution?

If you're just after those HTML tags, then try replacing with &lt; and &gt; to give your users their input right back.

Flamadiddle
May 9, 2004

You probably want to escape the html with htmlentities($stuff), unless I'm missing the point of what you're doing....

ToxicFrog
Apr 26, 2008


Ledneh posted:

Not strictly a programming question, and I know the subject of text editors can be... touchy, so I apologize in advance if I start a Holy War here.

First of all, take all of this with a grain of salt because I've only used emacs for a few months and vi for a few weeks.

NEdit is fantastic and if it supported UTF-8 I would probably still be using it.

JEdit is like a modern NEdit with more features and a plugin architecture and a lovely XML format for syntax hilighting rules. However, it's not rocking' the classic Motif widget set. :( It can do most of the cool stuff emacs and vi can, but is still more a "language-aware editor" than an IDE - although plugins provide things like project management, integrated debugging, and whatnot.

emacs and vi can be used as IDEs, but you will have to contend with:
- both of them have a vicious learning curve
- VI's cool features are hidden behind a UI written by, and for, aliens
- emacs's cool features are provided by undocumented and poorly maintained third-party elisp scripts which can and will randomly break just when you need them

So, I would say: it can be worth it, but you should also investigate whether more friendly editors like NEdit or JEdit do (or can be made to do) what you need.

Now I wait for all of the emacs/vi users to explain why I'm wrong.

Lonely Wolf
Jan 20, 2003

Will hawk false idols for heaps and heaps of dough.
If you like jEdit try Factor :downs:

C-Euro
Mar 20, 2010

:science:
Soiled Meat

shrughes posted:

Use DATE_AND_TIME.

How? My plan is

-Get date & time from computer, ideally hours:minutes:seconds:milliseconds or something
-Store each part of the time as a variable
-Set random number seeds to these values( iseed(1)=hour, iseed(2)=min, etc)

I know DATE_AND_TIME is something I need to use but I can't seem to find just how to use it- do I call it like a random number? Can I tell it to write somewhere?

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


ToxicFrog posted:

:words:
Thanks for the input. Can nedit do things like I understand emacs' etags thingy can do (Go To Definition, especially)? That's the primary thing I bother with sun studio for.

ToxicFrog
Apr 26, 2008


I can't remember the last editor I used that doesn't have etags support; nedit jedit, emacs and vi all support it.

NEdit-specific stuff: nedit won't automatically generate the tag file for you (although there may be a script for that). Once it's generated, though (using ctags, or etags, or 'make tags', or whatever), you can load it by hand with File->Load Tags File. The tag file, if loaded, will also be used for calltips.

If you want it to autoload tags, you can either use 'nedit -tags <tagfile>' to launch it, or set the XResource nedit.tagFile to an (absolute or relative) path.

Bear in mind that etags is not the same as a full IDE's intelligent parser; in particular:
- the tags won't auto-update as you change the code, you need to re-run etags to update the tag file as you add/remove/change functions.
- if you have lots of functions with the same name in different scopes, it can't always figure out which one you're referring to and will just list them all and ask you to choose one

vvv :airquote:

ToxicFrog fucked around with this message at 21:22 on Sep 15, 2010

Adbot
ADBOT LOVES YOU

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Don't worry, intelligent needs some :fingerquote:s around it when speaking of sun studio. Oi.

Thanks, though, I'll look at nedit and see if it and etags play nice :)

(edit: damnit where'd fingerquote go. Oh well)

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply