Difference between revisions of "User:Chrax"

From Missouri Academy Wiki
Jump to navigation Jump to search
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
__NOTOC__
 
==About Me==
 
==About Me==
I was a [[Discoverers|Discoverer]] (Class of 2005) at the Academy. I am a programmer with moderate skill in [http://www.perl.com 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.)
+
I was a [[Discoverers|Discoverer]] (Class of 2005) at the Academy. I am a computer scientist at the University of Tulsa, with a focus on security.
  
I'm attending the University of Tulsa and majoring in Computer Science. 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 formost petroleum engineering school, but I don't know why you'd ever want to do that. I actually laughed the first time I heard them boast about that program.
+
I am a sporadic programmer with moderate skill in [http://www.perl.com perl] and [http://publications.gbdirect.co.uk/c_book/ C]. I also know [http://java.sun.com/ Java], but I don't really use it much. 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've recently become interested in [[Distributed Computing|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.
+
Participate in the [http://www.rotten.com Rotten.com] [http://deadpool.rotten.com/ Dead Pool]! And check out my [http://deadpool.rotten.com/profiles/45/06/48878.html profile].
 
 
Participate in the [http://www.rotten.com Rotten.com] [http://deadpool.rotten.com/ Dead Pool]! And check out my [http://deadpool.rotten.com/profiles/26/23/33725.html 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 [[leet|h4x0r]] b) gmail requires at least six letters. Also, I enjoy that it's both a common [http://en.wikipedia.org/wiki/Effigy English] [http://en.wiktionary.org/wiki/Effigy word] and a [http://www.archives.nd.edu/cgi-bin/lookit.pl?latin=effigies 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==
 
==Contact Me==
 
I have:
 
I have:
* A [http://mpn.ath.cx/~effigies/ website]
+
* A [http://effigies.ath.cx:85/ website]
* A [http://www.livejournal.com/~chrax livejournal] <DEFUNCT>
+
* A [http://www.livejournal.com/~chrax livejournal]
 
* A [http://www.xanga.com/assshole_jones Xanga] (I don't use it a whole terrible lot.)
 
* A [http://www.xanga.com/assshole_jones Xanga] (I don't use it a whole terrible lot.)
 
* A [http://effigies.blogspot.com/ Blogger]
 
* A [http://effigies.blogspot.com/ Blogger]
Line 21: Line 16:
 
* A jabber account: chrax@jabber.org
 
* A jabber account: chrax@jabber.org
 
* An AIM account: chrostephir <defunct>
 
* An AIM account: chrostephir <defunct>
* An MSN account: chrax25@hotmail.com <defunct>
+
* An MSN account: effigies@gmail.com
  
 
==Computing and Whatnot==
 
==Computing and Whatnot==
===Current Programming Projects===
 
* [http://mpn.ath.cx/~effigies/prime/prime-0.91.tar.gz Prime Generator]
 
* [http://mpn.ath.cx/~effigies/dvdutils DVDUtils]
 
* [http://mpn.ath.cx/~effigies/perl/index index.cgi] - A templated indexer. In the works, but coming along nicely.
 
 
===pacman Repository===
 
Arch Linux uses the [http://archlinux.org/pacman/ pacman] package manager, but their package submittal process is less than perfect. As a result I've created an [http://effigies.freelinuxhost.com/ unofficial pacman repository]. Right now it just holds packages that I've built, and soon it will hold a couple that [[user:goofyheadedpunk|Brian]] will make, but anyone can submit by emailing me their PKGBUILD files.
 
 
 
===Advice===
 
===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 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:
Line 50: Line 37:
  
 
Anyway, hope this helped, tell me where it needs work, or if anything is inaccurate. -[[User:Chrax|Chrax]]
 
Anyway, hope this helped, tell me where it needs work, or if anything is inaccurate. -[[User:Chrax|Chrax]]
 
===Help Wanted===
 
====Template Writers====
 
<post>I should soon have [http://mpn.ath.cx/~effigies/perl/index 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====
 
<post>[http://mpn.ath.cx/~effigies/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.
 
 
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.
 
 
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 [[Northwest Computing|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:
 
<table border="1" cellpadding="0" cellspacing="0"><tr>
 
<td><tt>
 
mpz_init_set_ui(test,3);<br><br>
 
while(mpz_cmp(test,root) <= 0){<br><br>
 
&nbsp; /* int equiv: mod = thisnum % test; */<br>
 
&nbsp; mpz_mod(mod,thisnum,test);<br><br>
 
&nbsp; if(mpz_cmp_si(mod,0) == 0){<br>
 
&nbsp; &nbsp; mpz_clear(root);<br>
 
&nbsp; &nbsp; mpz_clear(mod);<br>
 
&nbsp; &nbsp; mpz_clear(test);<br>
 
&nbsp; &nbsp; return 0;<br>
 
&nbsp; }<br>
 
&nbsp; mpz_add_ui(test,test,2);<br>
 
}
 
</tt></td></tr></table>
 
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 <code>mpz_probab_prime_p</code>, 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, [http://www.cse.iitk.ac.in/news/primality_v3.ps 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 [http://www.perl.com perl]. In fact, getting this down would be so big, I expect we could submit it to the [http://www.swox.com/gmp/ GMP] guys to incorporate into a later release.
 
</post>
 

Latest revision as of 23:51, 29 April 2006

About Me[edit]

I was a Discoverer (Class of 2005) at the Academy. I am a computer scientist at the University of Tulsa, with a focus on security.

I am a sporadic programmer with moderate skill in perl and C. I also know Java, but I don't really use it much. 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.)

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

Contact Me[edit]

I have:

  • A website
  • A livejournal
  • 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[edit]

Advice[edit]

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