Thursday, November 5, 2009

Windows 7 bugs and other various computing tips

I've found a rather large problem involving copying/cutting files. I have been ripping some CD's onto my computer, then moving the files to a different location. When I ctrl+a, ctrl+x the files and ctrl+v them into a different folder, they copy just fine. The problem is, I can't delete the folder they just came from. Windows 7 gives me some random error message about not having access or something. It's HIGHLY irritating, because the only solution I've found is to wait it out. Eventually, Explorer will release the handle on the folder. I have no idea why it even bothered to lock the source directory, but it did, and it angers me.

Something else I've discovered: I'm using my desktop (with 7) mainly as a remote server for my laptop (still xp). I use my laptop to remote desktop to my 7 box. If I have media player running with music playing, WMP throws an error about my sound device disconnecting. I don't even need to restart WMP to get music playing again, (just hit play, and it will figure it out), but it's still annoying. When you are remote desktoped, 7 switches your audio output from your sound card to the remote machine. This involves "turning off an audio device" which is where the error comes from. Unfortunately, it looks like WMP doesn't handle that very well.

I've also discovered strange behavior involving the Windows 7 firewall. I've told 7 that I'm on a private network. At my school, each building is on a different subnet, and everyone gets a public IP. If I'm on the same subnet as my 7 box, I can ping it, samba to it, and mstsc to it. When I'm on a different subnet (same first 2 octets on a /24 subnet), I can't ping or samba to my 7 box. It won't respond to either. Fortunately, I can still remote desktop to it from a different subnet. I hacked this by always allowing incoming connections for private networks, but that really isn't a secure solution. Ideally, I would add a rule that allows pings and samba access only, but I don't know how to do that, so effectively disabling the firewall will have to do for now.

On the off chance that you ever deal with typed Russian in your life, I have a helpful tip. I was copying Russian text from a PDF to M$ Word. Some of the Russian was in italics. It was formatted like this:

(some text in Russian here)

When I copied the text to word, it silently copied it like this:

(some text in Russian here)

with italics paretheses, and oblique Russian characters. Since I don't know a word of Russian, it all looked the same to me, and I didn't realize that it was un-italicizing all of the Cyrillic characters.. I did notice on close inspection however, that т in the Russian document was appearing as т in the Word doc. I figured it had something to do with the character sets not being entirely compatible, even though Word seemed to handling the other characters just fine. It took me a long to realize that the two characters were the same, one was simply italicized, and one wasn't. In Russian, some italicized characters look like slanted versions of the oblique versions (just like in English). Others, however, are written in Russian cursive when they are put into italics. So т is actually the cursive (and italic) representation of т in Russian. Just in case you ever want to know.


Now here's something that really ticks me off. After a year of high school physics and two quarters (like semesters at my school) of college physics, I was never taught about inductors, a basic circuit component. This in itself is not criminal, perhaps it is simply a sufficiently advanced topic that most people don't need to know about it. However, what is criminal is that in all three physics classes, Ohm's Law was preached as Gospel. It turns out that it is false in every real-world example. That's right, it's a Law that simply isn't true. In the presence of inductance, V != IR, and EVERY circuit has inductance, even if it is completely minuscule. Ohm's Law ONLY holds for theoretical circuits without inductance or capacitance. Pretty useless, huh? Sorry to have to be the one to shatter your entire grasp of the physics of circuits.

Friday, October 9, 2009

Technical Comments

I've come up with some new helpful hints on several different topics.

First up, Windows 7. When installing an operating system, you might need to delete an old operating system. I recently was dual-booting with XP and 7 Beta. I gave up on 7 Beta, so it was just sitting on a hard drive. Before installing 7 RTM, I "deleted" the 7 Beta installation by going to the drive in XP, selecting all of the files, and deleting them. Job well done. Not quite. I wasn't showing system files in XP, so there were some 7 Beta files on the root drive that were still present, most notably, the 7 Beta boot manager. This caused major problems when I installed 7 RTM because the RTM tried to use the existing 7 boot manager and didn't install one on its own drive. The moral of this story is: format a drive to delete an operating system!

Windows 7 bug report:
The "My Pictures" screen saver allows you to navigate between pictures using the arrow keys. If you navigate "back" on the first picture, the screen saver crashes. I can't believe that somebody didn't test and handle that obvious corner case. One irritating thing about the "random" screen saver is that it always starts with the same picture. After that, it uses a random generator. The same is true of Windows Media Player. If I have my playlist and hit play with randomization, it always starts with the same song, then randomizes. That shouldn't be very difficult to handle, but there is either some arcane reason or somebody just didn't think it all the way through.


I'm programming in Clojure for a class project using the Eclipse IDE. My team is managing the code using SVN, and the Tortoise SVN client for Windows. We were getting some strange error messages from SVN after making changes with Eclipse. Even though we thought the "bin" folder (automatically created by Eclipse) was not under SVN, we kept getting the icon on the folder indicating that it was under SVN. Oddly enough, we couldn't update the folder ("it didn't exist on the repository"). If we deleted the bin folder and did an SVN update, it wouldn't download the bin directory (even though it was apparently under SVN). If we tried tried to commit the reposity, it would say that it was conflicted. A very strange combination indeed. We finally figured out the root of our problem: Eclipse was copying the .svn directory from the src folder (which was under SVN) into the bin folder (which was not under SVN) when it auto-generated the bin folder. We have no idea if that was intentional or not, but it certainly isn't helpful when using SVN. The result was that the bin folder had the src folder's SVN information. The Windows shell reported that the bin folder was under SVN because it had a .svn folder, but naturally the repository was very confused because of the conflicting information. Moral: I don't know. Eclipse is stupid? This bug was really hard to identify!

I've come up with a new problem to solve (even as I continue to investigate the practical side of security through password storage). This involves knowing when an executable has been modified. I thought it would be pretty cool for an executable to be able to compute it's own hash on the fly and compare it to a precomputed known-good hash (the original executable's hash). I suppose this wouldn't be hard to do with a separate program that simply computed hashes and compared results, but I wonder if it could be done within the executable in such a way that the hash would be easy to compute (this would be a recursive problem), but that changing one byte in the executable would force a new hash to be computed, which would be difficult. I don't know if it would work but it'd be cool if it did!

Friday, October 2, 2009

A problem, and a vow to find the answer

The roots of this problem are in Microsoft Outlook. For whatever reason, be it a bug in Outlook, incompetent IT professionals at my school, or some combination of the two, Outlook will not for the life of it save my Exchange password, even if I click the box that says "Save my password". I found this unbelievable irritating, so I searched the internet. Although there were numerous suggestions on how to fix the problem, none worked. Finally, I found a script that detects the Outlook password window and enters your password manually. It's perfect! Except for one thing....it stores your saved password in plaintext! This simply won't do!

So here is the problem I have set out to solve: either find a way for a program to save and retrieve a password SECURELY with no user intervention, prove that it is not possible, or determine that this question is open and has deserves much of my future focus.

To clarify exactly the functionality I want: I want a program to save a password, then be able to store that password so that no user can access it when it is stored. Although anyone with access to the program would be able to effectively use the stored password at will, they at least couldn't discover the password.

And so I begin.

Sunday, September 27, 2009

Win7 Part 2

I can't figure out how to fix the boot loader for 7, so I'm cutting my losses before I do much configuration. I'm reinstalling, carefully this time.

Windows 7 Install Log

I've given in. I'm going to give Windows 7 another try. We get the RTM free through the MSDNAA. The last time I tried, I was using the RC and couldn't install a HP Laserjet 4100, the most standard laser printer in the world. So I gave up, but now I'm back.

Here's what happened so far:
Backup: I wanted to install Win 7 at the beginning of a my RAID 0 array for maximum speed. I took all the data on my storage drive, and distributed it across my XP array and an old IDE drive that I keep around for times of need such as this. Total time to backup ~120 GB: a couple of hours.

Next, I needed to repartition my storage array. I found a pretty nice, free tool (EASEUS) which allowed me to place a 100 GB partition at the beginning of my storage array. I made another partition out of the other 260GB in that array to use as storage. After deleting partitions, reformatting, and moving all of my storage data back to my new storage partition, I was ready to install Windows 7 several hours later.

We get images from Microsoft over the local LAN. Download time for the 4 GB image of 7 was only a few minutes. Then I realized I didn't have a DVD to burn it on to. I scalped a DVD from a kid down the hall. Burning the image with ImgBurn took a while. I took a few days off at this point.

This morning, I woke up, placed the DVD in the drive, and restarted. I had to change my boot order to boot from the CD first. The installer opens up and begins extracting. I wait. A little less than an hour later, it claims that it needs to restart. When XP restarts during install, you are ready to boot off of the hard drive. Apparently, you must boot off of the DVD again with 7. It finished installing and then restarted again. This time I was sure it would use the hard drive. But alas, NTLDR was missing. I tried to boot from the DVD again; it loaded NTLDR from the DVD and proceeded to boot me to 7. (As of this writing, I still have to use NTLDR from the DVD, I can't boot directly from the hard drive).

First thing I did when I got into 7: open up IE 8. After blowing through some initial setup, I promptly went to getfirefox.com and downloaded the real web browser. Next I got some essentials: Notepad++, Daemon Tools Lite, FoxIt PDF reader, Pidgin, Java, Flash Player, and Eclipse. For some reason, flash player doesn't seem to be taking well. I also had to get some sound drivers since 7 didn't install a default one.

Here goes my restart after install the drivers, see you on the other side!

Thursday, September 24, 2009

Homecoming, and home coming to me

This weekend is homecoming. You know, the football game that I won't be attending, and that no one cares about. What exactly is the point? And what's up with the homecoming queen? It is beyond me. Anyway, Homecoming is a time when parents are invited to come see their little babies who they haven't seen in four whole weeks (and not long enough for the students). My mom is one of those caring, emotional types who just can't stand not seeing me for extended periods. It's irritating at times, but I know I'm loved when I need it.

My parents and littlest brother were going to come up to visit this weekend. My brother hasn't seen The Bonfire yet; he was going to bring his girlfriend (not sure if he's actually asked her out yet, but he has plans to). I was at least pleased to get to see him, we get along pretty well. I see my parents just to make them happy. I put on a smile and pretend like life is great here. I see it as my job to make them not worry about me.

Well, they aren't coming anymore. Mom ended up in the hospital with a seriously infected insect bite of some variety. So now her situation has taken precedence, hotel reservations have been canceled, and I will now spend the weekend alone, as usual. I'm not very happy about it though. Maybe I'm worried about mom, but that's not why I'm upset, at least not consciously. It's probably mostly stress about projects and homework at the moment. If you ever consider becoming an engineering student, consider this first: You will do projects. You will do a lot of projects. You will do projects for every single class you take, and they will all involve a group of people who don't work as hard as you do. It's quite infuriating. I end up doing about 75% of the work on a three person team. But if I didn't, then my grade would suffer, and that is not an option.


My mom is by far the best child I know. She is single-handedly taking care of both of her parents, no thanks to any of her four brothers, particularly the one who lives in the area. She has been leaving work to drive them to doctor visits, doing all of their prescription management, and filling out health insurance paperwork. Grandpa has been suffering for over a year now from a motion disorder where he constantly grinds his teeth, can't control his breathing, and can barely talk. After mom visited about 5 doctors over the course of 6 months (these things take forever), they finally identified his problem (some motion disorder). Even better, there is a simple fix for the problem. The problem is, the pill costs $4,000/month. To put that in perspective, that's $48,000/year, more than most families make in a year. My grandparents are living on medicare alone, so they of course make nowhere in the vicinity of $48,000/year, not to mention the costs of raising my cousins.

After an incredible effort by mom to fill out endless paperwork, we somehow managed to slip through all of the insurance loopholes and got this magical medicine for free, not a dime out of pocket. This is a good thing, since they don't have a penny to spare, much less a dime. The good news is that Grandpa started taking half-pills last Thursday. By Friday afternoon, all of his symptoms were gone. He is now just like the man I grew up with so many years ago. I can't wait to see him, and see his quality of life improve so much. I can't even imagine being trapped inside his body like he was. He really is quite strong and mentally capable still. I have much hope for him still.

Monday, September 21, 2009

Homework, Bloody Homework

Hello, faithful followers, of which I currently have 0. If you're out there, let me know...

I don't mind homework so much. Especially if I'm doing math, or even better, writing code. I do love code. I love music. I love writing, especially if it's not a technical document. I love reading novels (but not textbooks).
The worst part about being a CS/SE is the mind-numbing amount of textbook reading and technical document writing that ensues. Of all textbooks, I really can't imagine anything worse than a book on project management or how to gather requirements and specifications. Then come the technical documents on project requirements, project specifications, project plans...the list goes on forever. I would love a good essay every now and then, especially about a novel.

I would be saving myself considerable amounts of reading, group meetings, and homework by dropping my SE major. This seems like a particularly good option since I don't ever want to manage a software project. That would be total torture. And yet, I persist. I think having knowledge of software engineering will make me much more marketable instead of being simply a CS. I really want to do math-computer science work, possibly research related.


Perhaps you can tell, but I like to write. That's why I'm doing this blog. After an incredible amount of work in high school AP English (thank you, Mrs. Mayer!), I'm not half bad either. But pit me against other college engineering students, and I look like Charles Dickens. So when we have technical documents to turn in, and my team churns out a list of six items for a document that is supposed to have a title page, I'm naturally concerned. As a result, I end up writing about 80% of all "group" papers with my name on them. I have to go through and edit everyone else's work so that it makes a paper that I would turn into my AP English teacher. Because that's the standard I hold myself to now, and probably forever. Why should it be anything less? Most of the professors won't know the difference (a few would), but it just isn't in me to do the minimum necessary.