Difference between revisions of "User:Chrax"

From Missouri Academy Wiki
Jump to navigation Jump to search
Line 61: Line 61:
  
 
====Alpha Testers====
 
====Alpha Testers====
<post>[http://effigies.ath.cx:85/gropt/current/src/gropt.c gropt] (pronounced "groped") is a program to seek out and find the capabilities of all your optical devices.
+
=====[http://effigies.ath.cx:85/gropt/current/src/gropt.c gropt]=====
 +
<post>(pronounced "groped")
 +
 
 +
gropt is a program to seek out and find the capabilities of all your optical devices.
  
 
Please try and break it, and tell me when it gets something wrong. (Note that at the time of this writing, it cannot tell if your drive can handle DVD-RWs.)
 
Please try and break it, and tell me when it gets something wrong. (Note that at the time of this writing, it cannot tell if your drive can handle DVD-RWs.)
 
</post>
 
</post>
  
<post>[http://effigies.ath.cx:85/prime/prime-0.91.tar.gz Prime Generator v.91] is out and I need people that will go out of their way to break it and send me bug reports.
+
=====[http://effigies.ath.cx:85/prime/prime-0.91.tar.gz Prime Generator]=====
 +
<post>Version .91 is out and I need people that will go out of their way to break it and send me bug reports.
  
 
In this version, there's a config file that will install to <tt>/etc/prime.conf</tt> and that's where you'll edit locations and file names and other constants. It's now pretty much alright with everything you can do to it, including removing the file. Also, don't hesitate to suggest features. I can't guarantee that I'll include them, because a) I'm not all that great b) your ideas might not be all that great.
 
In this version, there's a config file that will install to <tt>/etc/prime.conf</tt> and that's where you'll edit locations and file names and other constants. It's now pretty much alright with everything you can do to it, including removing the file. Also, don't hesitate to suggest features. I can't guarantee that I'll include them, because a) I'm not all that great b) your ideas might not be all that great.

Revision as of 01:41, 7 July 2005

About Me

I was a Discoverer (Class of 2005) at the Academy. I am a programmer with moderate skill in perl and am beginning with C. I also know Java, but I don't consider that to be to my credit. I'm also interested in math and education. (I know a great deal regarding politics and religion, but the debates have lost their novelty, so it's not really an interest anymore. Besides, nothing ever changes. Anybody that participates in such debates is not going to change their mind, rendering the debate itself quite useless.)

I'm attending the University of Tulsa and majoring in Computer Science. While as of yet I am primarily a programmer, I am beginning to immerse myself in security (and in fact am doing research on cryptoprotocols at the moment).

Tulsa has a (reputedly) excellent Computer Science department, so if you're interested in that type of thing, you might want to consider TU. I believe they're also the nation's foremost petroleum engineering school, but I don't know why you'd ever want to do that.

I've recently become interested in distributed computing, and I think the Academy has plenty of cycles it is not using. So I encourage you to join a program and start putting your spare processing power to good use. Update: I've stopped using these programs. I got sick of my A/C and computer fighting over which had more say over the temperature of the room.

Participate in the Rotten.com Dead Pool! And check out my profile.

For those that are curious about why I use both effigies/Chrax as handles, it's because I picked out Chrax in my 6th grade script-kiddie days, and it is quite obvious that I did so. I'm using effigies more and more now because a) it doesn't reek of h4x0r b) gmail requires at least six letters. Also, I enjoy that it's both a common English word and a Latin word, and I'm somewhat of a language geek.

GCS/M/ED/S d- s++: a--- C++ L+++ P++ E W++ N+ K w-- O- V-- PS+ PE- Y+ t X+ R- tv b++ D--- G++ e- h- r* y

Contact Me

I have:

  • A website
  • A livejournal <DEFUNCT>
  • A Xanga (I don't use it a whole terrible lot.)
  • A Blogger
  • A gmail
  • A jabber account: chrax@jabber.org
  • An AIM account: chrostephir <defunct>
  • An MSN account: effigies@gmail.com

Computing and Whatnot

Current Programming Projects

pacman Repository

Arch Linux uses the pacman package manager, but their package submittal process is less than perfect. As a result I've created an unofficial pacman repository. Right now it just holds packages that I've built, and soon it will hold a couple that Brian will make, but anyone can submit by emailing me their PKGBUILD files.

Advice

I have received a request for advice concerning taking up programming. Of course it's not going to work the same for two people, but I'll give you my suggestions:

I suggest coming up with algorithms (step by step instructions) for tasks that you see every day. Up until this past semester I had barely done any programming, but all the time I would break down tasks into algorithms just to see if I could. I find this helps greatly because then when I'm programming, the algorithms come to me on the fly, and I simply have to fight with a language to get it to do what I want it to.

Get a copy of Linux and learn the command line. Having your development environment pretty much indistinguishable from your OS has the wonderful benefit that it's simple to make a dippy little program, and try it out without waiting for some damn IDE to load. Some people can develop for Windows and like it, but I can't. (Many people prefer the unity of BSD to Linux. Whatever blows your skirt up.)

Pick a language based on what you want it to do and then learn it. I like things fast, so I use C a lot. For programs that don't require a ridiculous amount of computation, require complex string manipulation, or I just want to make fast, I'll use perl. Mike would suggest using Python, as it's a high level object-oriented language, but in the end it's more or less equivalent with perl. Other languages available include C++, Java, Ruby, Prolog, Fortran, and Lisp (if you're a masochist). There are really quite a lot, so you should read up on them and decide which one suits your purposes best. Don't be surprised when you need to learn more than one language for different projects. It would indeed be silly to use just one language when two languages are each ideal for two separate parts.

Now all you've got to do is find a project that grabs your interest and start coding. You can't learn by reading and then go code. Sure you're going to be in way over your head, but it feels great when you're done and you realize just how much you've learned.

As you may or may not be aware, there are three virtues of programmers: laziness, impatience, and hubris. Develop them if you don't already possess them.

If you're using C, I suggest Practical C Programming by O'Reilly and the GNU libc manual. If you're using perl, then the Camel and Ram are your best friends. (If you do get into perl, email me, for I have obtained some outstandingly useful documentation.)

Finally, you're going to get stuck, so you need people that can very bluntly point out where you're going wrong. Usenet is an excellent place to find this. Individual.net had a good selection of newsgroups. Unfortunately, they're no longer offering their services free of charge, so I'll get back to you when I find a new news server. LinuxQuestions is great place for simple questions, but don't be surprised when about half of the answers are useless/halfassed. If you're going with perl, perlmonks, CPAN, and perldoc are all great resources.

Anyway, hope this helped, tell me where it needs work, or if anything is inaccurate. -Chrax

Help Wanted

Template Writers

<post> I should soon have index.cgi updated, and you'll be able to get it. What I need is people with a good sense of aesthetics to write templates for me, so I can make sure that it does everything it's supposed to. </post>

Alpha Testers

gropt

<post>(pronounced "groped")

gropt is a program to seek out and find the capabilities of all your optical devices.

Please try and break it, and tell me when it gets something wrong. (Note that at the time of this writing, it cannot tell if your drive can handle DVD-RWs.) </post>

Prime Generator

<post>Version .91 is out and I need people that will go out of their way to break it and send me bug reports.

In this version, there's a config file that will install to /etc/prime.conf and that's where you'll edit locations and file names and other constants. It's now pretty much alright with everything you can do to it, including removing the file. Also, don't hesitate to suggest features. I can't guarantee that I'll include them, because a) I'm not all that great b) your ideas might not be all that great.

You should probably also note that I haven't written a version of this for Windows. You're free to modify it and get it to work, but I don't much plan on doing this myself for quite a while as that would involve using a school computer. </post>

Ass-Kicking Primality Test

<post>Anybody that wants to take the time to look through the source of prime will see this ugly bit of C:

mpz_init_set_ui(test,3);

while(mpz_cmp(test,root) <= 0){

  /* int equiv: mod = thisnum % test; */
  mpz_mod(mod,thisnum,test);

  if(mpz_cmp_si(mod,0) == 0){
    mpz_clear(root);
    mpz_clear(mod);
    mpz_clear(test);
    return 0;
  }
  mpz_add_ui(test,test,2);
}

and might say "Wow, that's rather brutish, isn't there a GMP primality test or something?" and be quite justified in doing so. Yes there is a GMP primality test mpz_probab_prime_p, but as you might guess from its name, it returns a 1 if it's probably prime. This, frankly, isn't good enough, so until somebody comes up with a good primality test algorithm, we're sticking with the brute force method.

This is where you come in. Recently, three Indians came up with a deterministic time primality test. The problem is that I don't understand it well enough to implement it, and I don't have the time to spend on it any more. What I need is somebody who can take what they've got and turn it into a useful algorithm, and it doesn't need to be in C, it just needs to be something I can translate into C... say English or perl. In fact, getting this down would be so big, I expect we could submit it to the GMP guys to incorporate into a later release. </post>