Posted tagged ‘computer science’

CS intro w/ Java and a bit of book review

July 1, 2009

I’m currently taking a basic Java course that’s supposed to go to the proper level to take the SCJA (Sun Certified Java Associate) certification, the first step in the Sun Java cert track.  Instead of using the standard book that my university recommends, I’m using Big Java by Cay S. Horstmann (ISBN 978-0-470-10554-2).  I’ll post a few thoughts here on this book.

So far so good.  I’m about four or five chapters in, and I think I have a good feel for the flow of the book.  I’ve done several other starter programming books (Zelle’s Python Programming: An Introduction to Computer Science, and an intro JavaScript course as well), but Big Java surprised me starting out.  Unlike some other courses that mainly start out with syntax and primitive data types, this one started out with class design and OO concepts.  It even teaches the student to use a few Swing components (JFrame and JOptionPane) early on in order to make the usual “monkey trick” exercises a bit more interesting.  I like this approach, as it makes the introductory chapters easier.

I like Horstmann’s writing style.  It’s concise and clear, and the code examples are good.  I have yet to find an error in any of the examples.  I’m reading it on Skillsoft Books 24×7, an online book service and it’s been good so far.  I do kind of wish I had the paper copy, but that’s just how I am.  Anyhow…

A big help to me was that I started with JavaScript and Python.  Java’s syntax is very similar to JavaScript’s, so it gave me a head start to coding in Java.  The combination of JavaScript’s syntax with Python’s OO perspective gave me a good foundation from which to move through Big Java.

One more thought – I’ve worked through some programming books that have virtually no exercises.  This, IMO, is a terrible way to help people learn.  If you’re writing a beginner book, you MUST provide practice opportunities for those who can’t come up with their own.  Big Java does a great job of providing practice opportunities at multiple complexity levels.  The exercises build on each other (to some degree), and I feel they are quite effective.

So I do recommend the book for a self-taught Java beginner.  I’ll post more about it as I go along.

I must be getting better at programming…

April 21, 2009

… because I got this one without even having to read the alt text. 

comic

The alt text read “If androids someday DO dream of electric sheep, don’t forget to declare sheepCount as a long int.”

If you think that’s terribly unfunny, try this site.  Let me know if it’s more to your tastes.

Comic provided courtesy of http://www.xkcd.com

10 changes to Win7 security

February 13, 2009

I’ve been taking a break from writing to work on classes for the last month or so – hopefully I will be back on track soon.  In the meantime, here’s a great 10 Things article from TR.

http://blogs.techrepublic.com.com/10things/?p=488

Another issue with my web design textbook

January 15, 2009

You might have read my December post quibbling with the author/editor of my web design textbook.  It’s happening again, but this time it’s not just a quibble – it’s just plain wrong.

In this case, I’m feeling a little ill.  Here’s the quote (emphasis added): “The second difference [between Apache and IIS] is that Apache is open-source software, meaning that it is non-proprietary and thus license-free.”  I’m sorry?  When did open source start meaning there’s no license?  Have you ever heard of the GPL?  Creative Commons?  In Apache’s case, it has its own Apache license, which is compatible with GPL 3 (though not with GPL 1 and 2). 

I guess the moral of the story is that I should do my homework to avoid writing about things I don’t understand.

This reminds me.  I haven’t been posting much due to a final exam tomorrow in this very course.  I’ve got a long way to go, so I’m signing off.

Ben

Marshmallow Fluff website – a good entry point

December 11, 2008

So, in my quest to pass my beastly 6-credit Web design course, I have developed another analytical superpower – the ability to critique websites upon first visit.  No really, the ability to analyze what I’m looking at on a page and identify strong points. 

Don’t ask how or why I ended up at this site, but today I had my first ever visit to the home of all fluffy white goodness – http://www.marshmallowfluff.com

In the course, there is considerable discussion of what constitutes good site navigation.  When I came across the Fluff site, it was a creative example of one of the major components of good navigation – “the user should always know where he/she should click.”  See below.

fluff

 

Good stuff.  Actually, the site seems to have pretty well-made navigation.  It is very branded, and of course I wouldn’t make mine just like it, but for the product it advertises, it is well done.

Data destruction (with DBAN)

December 9, 2008

Recent legislation has caused the American healthcare industry to change the way it handles information.  This has radiated into the IT realm in a variety of ways – network security, physical (facility) security, background checks, et cetera.  In my particular job role, I am responsible to make sure that our data never leaves our property.  Or more specifically, that our property never leaves the facility with data on it.  In other words, I clean computers prior to disposal. 

There are a variety of methods of destroying data, both digital and physical.  My personal favorite would be heating the hard drive platters past the Curie point (the point at which the metal is no longer capable of maintaining a magnetic charge).  However, your average IT facility does not have the means to make this happen.  Another method is degaussing – to oversimplify, degaussing is magnetizing the entire disk, causing all the bits to flip the same direction and erasing all data.  Encryption can also be used – not to destroy the data, but to make it effectively inaccessible.

These are proven methods which are indeed used, but they do have drawbacks – they can be expensive and can require special equipment.  Most often, they are services performed by third parties (with the exception of encryption).

Our company used to sell our old hardware to a vendor, who would certify the data destruction and then resell the equipment.  This is a handy solution, but due to our office’s remote location and some other recent changes, we are now wiping the disks ourselves with one of the most common methods – the software wipe.

Software wiping is most often done using a boot CD.  I use a Linux-based tool called DBAN (Darik’s Boot And Nuke), which I will talk more about later.

Even within the field of software-based data destruction, there are a variety of methods and algorithms, some (such as the Gutmann wipe) taking a very long time, but considered very secure.  Many people have strong opinions on this issue.  Our company currently requires at least the US Department of Defense (DoD) 3-pass method.  The method writes 3 passes of random data over the entire drive.

For this kind of wipe, I recommend DBAN, as mentioned earlier.  DBAN allows for unattended wiping of all drives on a system (or the drives of your choice), and it has proven very easy to use when used on physically healthy disks.  For damaged disks, you may be better off sending it to a data destruction company, in my opinion.

DBAN supports a variety of the standard methods, including Gutmann, DoD (3-pass or 7-pass), and others.  The standard DBAN is open source software and is distributed free of charge.  There is an enterprise version available which supports wiping over a network and wiping of multiple computers simultaneously.  Both versions, since they run from CD, are platform independent.  DBAN will wipe IDE, SATA, and SCSI drives.

A first programming language?

October 14, 2008

I’m well aware that this post could start a flame war (if any programmers actually read it).  But I haven’t written in ages because of my attention being divided between writing, work, and school.  I did some writing for The Daily Yonder, and Julie Ardery was terrific to work with and is an awesome editor.  If you’re interested in that, see my post regarding rural broadband from a few months ago or go to the Daily Yonder site and read the article.

So, I have recently come to the realization that, though my degree is in IT with an emphasis in software development, I really am not learning what I need to about computer science.  So I’ve decided to educate myself more fully.  I am almost finished going through John Zelle’s very excellent Python Programming: An Introduction to Computer ScienceI have also begun reading Programming in C by Stephen Kochan.  But my real first language was JavaScript.  It was the language for my first introductory programming class.

I won’t even  discuss the merits first languages – ask Joel Spolsky if you want someone’s opinion about it.  I would, however, say that Javascript prepared me for Python, and Python prepared me for C (as far as I can tell – I’m not that far into C).  There isn’t a divinely ordained order.  But I’m curious if some readers might offer their insight into which language they started with.