Saturday, November 8, 2008

Step 4: Ideas & Decisions

Unfortunately, now that I actually stand in the intersection of free time, available tools, and preparedness, I'm finding every excuse to stall... But I'll manage to press forward. This is all about momentum. I just have to start in order to continue.

So I think it'd be reasonable for me to outline what size/style of project I'm thinking about here. I would like to start off smaller, so that I have a higher probability of actually finishing, but this shouldn't be so small that it's just "Write a tiny easy program in a language I know". A project can be anything though. Just start writing them and delete them if they look stupid.

- Check out & compile a linux kernel
- Make a barebones app with Qt
- Make a barebones app with GTK+
- Do something cool with Python. Maybe a web browser? Something grapical
- Check out & compile some sort of OSS software - something interesting and big. Read the code and play with it.
- Get my graph/tree/table/list code imported into SVN and in good working order
- Get openGL and play with it - make a tetrahedron that rotates in 3 dimensions on keypresses in fullscreen - then make some 3D terrain - then make a person move around on it. Then make a game!
- Improve graph ADT by adding things like A* search and perfecting my minimum spanning tree stuff, etc
- Do something cool with Ruby. Something graphical, or something databasey?
- Write that database app, in C, or in Java, or anything
- Play with mySQL. Learn Databases, damn it!
- Write a simulation
- Download & play with a physics engine. First assignment of 3750.
- Play with graphics in Java. Produce a smallish 2D game.
- Ruby on Rails. Get it and see what it's like.
- Play with FTP/SFTP/Telnet by hand a bunch and know the commands
- Learn Regular Expressions, maybe alongside some Perl?
- Continue to mark down RFCs of interest, then Read a bunch of RFCs
- Find out some useful newsgroups/mailing lists, join up. Be active. Get involved.
- Write an actual short story, with a beginning, middle, and end. Or at least (because it doesn't necessarily need a beginning/middle/end) make it complete.
- Write some sort of sound producing program.
- Learn awk/grep magic
- DirectX. Play with that, too.
- Get some sniffing/packet software, maybe libpcap and write a sniffer. Do some kickass security stuff.

Okay, that's a pretty good first list. Now I've just got to choose some particular thing to do.


----------------- Commence thinking! (skip past it if you don't like rambling text)


Okay, the ones that stand at the top (for doing today) are:

- Check out & compile some sort of OSS software - something interesting and big. Read the code and play with it.
- Continue to mark down RFCs of interest, then Read a bunch of RFCs
- Find out some useful newsgroups/mailing lists, join up. Be active. Get involved.
- Play with mySQL. Learn Databases, damn it!
- Get my graph/tree/table/list code imported into SVN and in good working order
- Get openGL and play with it - make a tetrahedron that rotates in 3 dimensions on keypresses in fullscreen - then make some 3D terrain - then make a person move around on it. Then make a game!

That's unfortunately like half the list. The best course now would be to expand on each idea and see which ones just start flowing.

- Check out & compile some sort of OSS software - something interesting and big. Read the code and play with it.

What would I get? Chromium, valgrind, gcc, firefox, pidgin, vlc, vim, the linux kernel, gnome

- Continue to mark down RFCs of interest, then Read a bunch of RFCs

I think I should do this in my odd spare time, like at night or when I get tired of coding - better than take this as a project that blocks other things from being done.

- Find out some useful newsgroups/mailing lists, join up. Be active. Get involved.

I think this should largely be integrated into the OSS thing. Step one would be find a mail/news reader/aggregator, step 2 would be finding the lists for certain projects, step 3 would be aiming it and step 4 would be reading, reading reading, then sign out one that I feel like I understand a bit

- Play with mySQL. Learn Databases, damn it!

This could be really quick and easy to do. Key issue is that I don't really have anything I want to do, or know enough that I could craft a reasonable sample-task. Requires some research on DBs

- Get my graph/tree/table/list code imported into SVN and in good working order

A bit daunting, a bit annoying, but also really inspiring. I want to know SVN better (OSS stuff would help me with this too) and I really want to play with my graph/list stuff, but even moreso I want that stuff to be good and done properly. Issue is that I don't know where the most up to date stuff is stored, and I worry that I may not even have it >_< - definitely needs to be done at some point

- Get openGL and play with it - make a tetrahedron that rotates in 3 dimensions on keypresses in fullscreen - then make some 3D terrain - then make a person move around on it. Then make a game!

This is a biggie. But it's really, REALLY exciting and cool. I think I should have a lot of time available for this one even with the infrastructure. .. hm. Definitely a fair bit of research needs to go into this as well.


Okay, so after expanding them out, I've found:

I will do RFCs no matter what. I'll do them at night regardless of whatever else is going on.
Looking up some OSS projects / their newsgroups and installing some newsgroup software takes me several steps in several directions. I think it points at an SVN checkout/compile of an OSS project being the best first move. So, I think that's where I'll go with this.




-------------------- Thinking done! Action time!

Actions:

Find out some good newsreaders/how rogers 'does' Usenet access. Maybe sign up through a professional thing.
Go check out some OSS projects' contact info and see how best to communicate with them, where their lists/groups are, etc.
Hook into the parties' groups, read read read read
Whoever is most understandable/cool/interesting/nice, check out their software.
Play with it! Compile it! ... Patch it?

Awesome. Onto Step 5: Execute.

No comments: