Showing posts with label Getting a PhD. Show all posts
Showing posts with label Getting a PhD. Show all posts

2007-09-29

Misogyny in Computing

I was reading my normal blog entries, and ran into Mairin Duffy's reaction to the crap postings people took the time to spew in the comment section of an LWN.net article about an O'Reilly series of articles on women in computing. The trolls seemed to have arrived in force for todays postings also.

The amount of hatred spewed by people in these two LWN articles just seems to underscore how little self esteem many of us in the computer industry have. The threat of another sex getting into the profession and showing that maybe we aren't as smart as we say we are.. seems to bring out lots of anger and hatred.

To painfully quote George Lucas/Yoda:
Fear leads to anger. Anger leads to hate. Hate leads to suffering. ... which leads back to fear. It is a buddhist recursive circle. We are afraid of things we can't understand, we are afraid of social interaction (maybe because a lot of us are autistic or borderline autistic), we get angry and we hate those feelings so we lash out at others who represent that which we are afraid of..

Sadly, looking at most biological systems that get into this state... we are off to extinction unless we can learn to better tolerate the change that is going to happen as computing becomes more ubiquitous.

Off to sleep... my above post makes no sense, but I post it anyway :).



2007-09-26

Extreme Programming: Another Fiendish Plot Against Autistics

Today's class covered some fun things in Java like abstract classes, extending classes, and the very cool (to a person used to awk) interfaces. I can see lots of uses of the above for dealing with my project to bring old-school Creative Computing games to the masses once more :).

And then we got to Extreme Programming. I will say that the professor did preface this part with saying that it wasn't as great as the hype and like any religion, you have to be careful of the zeolots.. and I do like the basic ideas behind it (which are much like any philosophy):
  1. Respect for the code, programmer(s), and customer
  2. Focus on communication between the above.
  3. Simplicity of Code
  4. Continual Feedback
  5. The Courage to Continually Change
And then we got to the 'practices':
  1. Test Driven Development
  2. Continuous Integration of Code
  3. Clear Coding Standards
  4. Collective Code Ownership between programmers and customers (as in no code is untouchable just because XYZ developer wrote it).
  5. Pair Programming
Number 5, is where I see the insiduous plot against autistics.. getting us to communicate to a customer at all is hard enough, having us let someone else type while we watch is like torture I say this because during the lab, I either wanted to do all the typing myself or tell the other person what to type (which of course endeared me to my partner). And since our grade was a joint one, my partner is stuck with the lowest grade (we were told we shared the least from the observations). Oh well, I hope he doesn't get stuck with me again.

On my other tasks, I am still going through the DOD Unix STIG to see what is needed to bring a CentOS- X.X EL system to meet it...

2007-09-25

Ketchup #3: Another week, another cs problem

Well this week and weekend has flown by again.. with lots of things I keep saying "Oooh I should write that down" and then by the time I get to a computer.. go "What was that?" or "Crap I need to get that server back up."

So this weekend, we adopted the dog we had babysat a weekend ago. The family came down on Sunday, and dropped off KC who was bounding out of the car and went to check that her chew toy was still in the kid's room. (It was.) It has been walks 2x a day and getting myself used to a schedule of getting up early enough to get here up the trails and me back before I am late to work. So far this week it is Days On Time: 1, Days Off Time: 1. Will see how that progresses.

We got our second large programming assignment this week. It is basically a specialized stenography problem. Take a dictionary, and find the words that hide the word that is given to you. Make sure it covers all cases, make it as optimal as possible. So I spent a lot of the weekend and last night looking over various Java data structures that would help me accomplish this in the most optimized lookup time. The professor upped the anty yesterday by adding a prize to the person who gets the top 3 spots, having to beat him and the T.A. also. So far the lookup costs look to be:

  1. comparing the Given Word (GW) against any given Dictionary Word (DW). Given Word has a length of M and Dictionary Word needs to be at least M in size. The easiest solution would be to loop over the letters in GW and see if they exist in DW taking in account of duplicate letters.
  2. finding words that would make good guesses to compare against versus going through the dictionary word by word to find a choice.
My insane option was to create a bitmap of every word in the dictionary to make good guesses against. Since we are dealling with UTF-16 characters and I want to see if a letter resides in it.. the key would be a 65536 'bit' string, the data would be a tree of words meeting that mask. A word would be converted into said bit map ( mapper would be something 1 for a, 1 for m, 1 for p, 1 for e , 1 for the r 'bit') and then do a bit against that and the query word so that pam, ampre , etc would look down that shorter list of words for possible matches. The word mappp would also go to that queue but would not match against mapper but might match against something else in the queue. However, as I said it was an insane idea.. I have to come up with something else.

I did look up trie (short for retrieval) trees as they are used a lot in dictionary lookups but that doesnt seem to meet the goal as it seems to be better for ordered lookups versus anagram like lookups. Will post more later.. back to a server that died.

2007-09-19

Ketchup #2: Week in Review

Well the week has gone as follows:
  1. Turn in homework and realize I missed dealing with NULL input.
  2. Went to class and covered inheritence, good old linked lists, and today implemented a binary search.... good-times.. good-times.
  3. Worked on wumpus outline. I think I am going to try and do a classic 'BSD-games' in Java over Christmas break, and then work through the various Creative Computing games that I used to teach myself Pascal, Fortran, and Apple Assembly back in the day.
  4. Found a cool site for algorithms at lunch: LiteratePrograms. It probably has been there a while but I missed it on past surfing.
  5. Worked on work build scripts for CentOS-5/RHEL-5. Got them to grab and install files.. but need to do some testing.
  6. Dog went home on Sunday, but we will be adopting her. She should be coming to live with us in a week or so.

2007-09-14

Computer Class Update

Well this week has been hacking on the first computer assignment.. a simple 'stack' engine that you push items onto and off of.. and do various string operations with them. I should have the first version done by tonight (late late tonight)... if this cold/stomach bug doesn't kill me first.

Things I have learned from the program so far:
  1. BufferedReader and BufferedWriter are good for using versus System.out/err
  2. StringWriter is good for being wrapped by BufferedReader/Writer so JUnit can find things.
  3. Writing one method at a time and writing a test routine for it is better than throwing up code.
  4. Do NOT PANIC.
  5. More later... bug calls.

Updated:

Switch/case can not be used on strings... need to figure out return types in a way to do this.

2007-09-04

Ketchup #1: Labor Day weekend

This was a 3 day weekend in the United States which completely blew my normal routine. No class on Monday, and Tuesday was ketchup (catch up) with various computer security issues that had piled up over the weekend... especially with UNM not having a dedicated Cyber-Security group (just 2 overworked individuals and the mess of people running with their heads cut off trying to keep up).

Things I got completed were:
  1. CentOS - Dell LiveCD scripts. They are a pretty cheezy set of items, but should allow someone to build their own Dell linux cdrom with OMSA and firmware updates.
  2. More work on the new website... It will just be a moin-moin setup with some pass through for mailman, archives and downloads.. but should be done soon (say October maybe).
  3. Did some 'cleanup' of a neighbors computer. I really need to take a course on Windows spyware.. I am sure that my brain-surgery on their computer could have gone better.
  4. Moved into a new office at work. Moving phones costs over $80.00 so I am just using my old bosses number for the time being... time to update phone-books.
  5. Finished my assignment for CS-259.. went to class on Wednesday and realized I screwed up several items I should have not have missed. [Now to figure out why xxx-- didnt do what I wanted for some reason.]
Thats about it.. off to a meeting about DNS.

2007-08-29

Survived Week 2 of CS

Well I survived the second week of my Introductory class... which seems to have been better than others.. the first class had a lot of people trying to sign into a max course.. and by today we actually had empty seats for the first time.

We have gone over objects, references to objects, and a whirlwind of JUnit testing. The most challenging part of the course has been doing the labs in the last 45 minutes of class. I keep trying to add more tests or overthinking things.. and end up having to be kicked out before the next class can come in.

Still enjoying it however.

2007-08-21

Not seeing the forest for the trees.

So a question on our first homework was something like:

What is the answer? (Hint: The answer should be the following:
4cc79ff6318ecedb45a283b92c656f96ba05a5b4d1c90e69b6da7da8b50a5c26
bad6f1ca002d538211f2765e159c9c5f55b41eb3720ddd2ab0a37a77afacb26a
a53794d214dc5dedbcecdf827bf683a24d0cb3c137775c0dbd24e9d6f04dc63c
)

I then spend the next couple of hours trying to decode the data via hexdump, xxd, looking for what google has on the various 16 bit pieces [4cc7 9ff6, etc etc]... looking for repeating patterns etc. Of course the answer is a lot simpler.. if I just didn't think about it.

2007-08-20

First Day Of CS Classes

Today was the first day of my 'academic' renewal. In 1994, I had gotten a bachelor's in Physics w/Astrophysics option from New Mexico Institute of Mining and Technology... and had left the school very burnt out and not wanting to ever see a University again... after 13 years... the school bug has bitten again, and I have decided to venture back into Academia with the long term goal of getting a PhD in Computer Science or similar field.

However, a long time has passed since my CS courses (Pascal and Fortran are no longer used as much in classes... and the assembly courses no longer use the M68k for their target CPU). To address that problem, I decided to start from 'scratch' again by taking CS259, a course that combines the first two UNM CS courses into one firehose class. I got to school early this morning... found the classroom on time... and got caught up with how people program in the 21st century by writing a 'Goodbye dear world' program using Java and Eclipse. I will say that I liked my professor's style... no PowerPoint presentation as others use.. no just good old fashioned lecture-mode in Emacs. This week is basically the first chapter of Arnold, Gosling, and Holmes , 'The Java Programming Language'. and some esoterical questions about the idioms of programming in Java these days.