Sunday, August 10, 2014


    I started teaching some programming courses online two semesters ago. One thing I worried about as a beginning instructor was that all of the students would do their assignments and everyone would get A's. I know some universities like to keep an average of a B- (or some other target) for the whole course. I worried about how I would be able to do that. It turns out, I didn't have to worry at all.
    Students do the strangest things. I had 20-30 students in my courses and it seems I'd always get a few that would sign up for the course and then not do any work. I'm not talking about doing a couple assignments here and there, they would do nothing at all. I can't understand this. They're paying to take these courses, they would reply to my emails and say they want to stay in the course and turn assignment in, but then they wouldn't do anything. Well, it made figuring out their grades pretty simple.
    We also have online quizzes and exams. The instructions say that they should be done closed book and closed notes. Obviously, there's no way I can enforce that in an online class. However, I've been surprised with what students have tried to get away with. In one quiz, the question asked what a certain block of code would do. One student looked up the definitions of one of the functions in that block and then put that down as his answer. Okay, his answer was partially correct and I would give partial credit for that. However, he copied the function definition directly from the book, word for word. Really?
    I'm often surprised about the questions that get asked in the forums as well. Every week, we have a discussion forum where we can talk about ideas from the readings. Every week, I also post notes in a special "Notes from Instructor" section where I write a little bit about the chapter and overall themes I noticed from the week before. I'm surprised at how many questions come up in the forums that have already been answered in the notes I've posted. About half the questions posted in the forums have been addressed in the notes. I just don't understand it. If I were a student, I would be paying attention to the notes, especially because the instructor would be determining my grade in the end.
    My favorite one came last semester. Let me give some background first. The grading for this course is a little bit different than many courses. The whole course is objective-based and the final grade is determined on your percentage of points towards each objective rather than total, overall points. You pass an objective if you get 80% or more of the points in that objective. So theoretically, you could get an A in the course and only get 80% of the possible points. The converse is also possible, where you get a high overall percentage, but fall below 80% in a few objectives and end up with a C. All of this is described from the beginning of the course, is in the syllabus, and an Excel sheet is provided to help students calculate their grades.
    The interesting thing to me was that I tried to warn students about this. It's all printed in the syllabus and I'd remind students about the objective-based approach and ask them to check their grades using the Excel sheet. The whole semester goes by and I don't hear any comments or complaints about it until the last week. Then a lot of students get upset and complain and are generally unhappy.
     I'm just confused since students had known the process all along. There's even a required assignment in the first week where the have to acknowledge the grading process. But then they get upset in the final week. I had a wonderful email from a student that I would love to post here, but I've gone longer than I normally do already. He described the grading process as needing "calculus and a crystal ball". Really all you need to do is plug in some number to an Excel sheet.

Friday, May 16, 2014

Why all the H8

I've previously featured Windows 7 as a software bliss example. More recently, Windows 8 and 8.1 have come out and it's been interesting to see how they've been received. There have been many good reviews, but there's been a lot more negative things said about it.

Personally, I don't understand all the negativity. A lot of it is focused on the new Modern UI and how it doesn't fit so well on desktops. I can see that, but if you don't like the modern apps, then just don't use them. The regular Windows desktop is still there and works pretty much how it always has.

There's a lot of things I really like about the new Windows. One of them is the new start screen. I think it's done really well and it helps me find a lot of information quickly. I've set up a few tiles to auto-update - stocks, weather, email, pictures, etc - so every time I see the start screen I know what's new in all of these. I think of it a lot like the Mac OS Dashboard, except I actually look at and use this one. I've tried to set up and use the Dashboard many times, but I always seem to forget it exists after a day or two. I've noticed the same from many Mac users I know.

Another thing that's great for me is having Hyper-V built in to the non-server editions. I don't have to install Virtualbox anymore, and it actually works better for me. Hyper-V will automatically pause my VMs when I reboot the machine and start them up again after reboot. I never got that working with Virtualbox and it was always a pain.

Anyway, there's some good about the new Windows and there are drawbacks as well. It's just fascinating to me because it seems customers want change but they want everything to stay the same as well.

Friday, September 21, 2012

Leavenworth, WA

We haven't done a lot of touristy things since we moved to Washington. We got an excuse to go out and try some things when my mom came for a visit a few weeks ago. One of these things was a trip to a local tourist town called Leavenworth.

Leavenworth is a Bavarian themed town up in the mountains, about two hours drive from where we live. The whole town is done up like to look like an authentic German village - the architecture, the food, the shops, the way people dress, etc.

The interesting thing is that none of it is authentic. While they do import German items to sell in the (overpriced) shops, the town has no real link to Germany. It was originally a railroad town but business from that slowly died away until the 1960s when the town was really struggling. The town council decided they would turn the town into a tourist destination to revive business. They decided on the German theme, and it worked. The town is a well known tourist destination and is fairly prosperous.

Thursday, December 1, 2011

SSH Proxy - huh?

Burning Firewall
    tl;dr - I was asked to change some file transfers to use the SFTP protocol by our IT department. The IT department actively blocks SSH/SFTP connections and gave me no way to fulfill their request.  

    When I started working at my current company, I was assigned the task of changing some of our file transfers from regular FTP to use the secure SFTP. It's an obvious security enhancement since SFTP encrypts the data as well as the usernames and passwords during transfer.
    I thought this would be a simple task, but it turned out to be a continuing nightmare. You see, our IT department had requested the change, but they gave us no way to actually do it. I found that the company firewall blocks the TCP port that SFTP uses. That was my first clue that something wasn't right. I've never worked at a company that blocks outgoing SSH/SFTP.
    I think it makes some sense to block the port because one can tunnel almost any traffic through SSH. Since it's encrypted, the company can't monitor the traffic through the tunnel. But it makes no sense when you consider that the IT department was the one asking us to change to SFTP when they gave us no way to actually use it.
    Moving on, I found that the company provides an "SSH Proxy" to allow you to SSH anywhere. According to the documentation, they also provided temporary storage on the proxy so that you could transfer files using one of the secure SCP or SFTP protocols. After talking with many IT folks, this proxy was the only supported method I found for accomplishing my task. So I decided to give it a go.
   The proxy was implemented horribly. It would periodically delete all of your files, including any keys. It didn't have a lot of temporary storage space, and it didn't let you run any of your own programs.
    This meant that I had to connect to the proxy, upload all of my keys, upload my temporary file, and then issue the commands to connect to my final destination and then upload the file from the proxy to the final destination. Remember, it wouldn't let me run my own programs, so I couldn't copy a script to this proxy to do this.
    After figuring out how to get this all working, I was told we were going to be transferring a ton of files and that the temporary storage wasn't going to be enough. So I submitted a request to IT to extend the storage space. The request was denied and I was told that the server was not meant to be used for file transfers, even though the documentation explicitly stated it could be used for that purpose.
   There are two interesting things that I see here. One is the prevention of information services by our own IT department. They asked us to change to the SFTP protocol, but gave us no way to do that. Not only that, but they said their own servers weren't to be used for their documented purposes. Isn't the purpose of the IT department to enable other departments to conduct business? They failed miserably.
    The second thing is the use of the term "proxy." A proxy server is one that will perform an action on your behalf. For example, you ask a web proxy to retrieve a web page for you. It will look at its rules and decide if it should and then retrieve the page for you if you're allowed. This "proxy" was not a proxy. I couldn't tell it to transfer a file to a certain server for me. It wouldn't retrieve a file for me either. It is not a proxy, it's much more like a gateway. IT people should know the difference, but obviously our department isn't the brightest bunch.

Thursday, October 27, 2011

Windows 7 (Software Bliss)

Windows 7 Beta fish
Windows 7 is probably the strangest piece of blissful software that I use. I say strange because it is difficult for me to say that about a piece of Microsoft software. I think it's actually good enough to warrant the title of blissful software.

I think Microsoft had a hard time for a while. Internet Explorer 6 held on for a lot longer than it should have. Windows XP was great after it was released, but it started feeling old after three years or so. (XP just celebrated its 10th birthday). Vista was horrible. After all of that, Microsoft released something great with Windows 7.

It's difficult for me to complement and like a Windows OS. For the past few years, I've been mostly a Mac and Linux user. I've been in the Anti-Microsoft camp for some time. But I do still use Windows at work and every once in a while at home and feel I need to give credit when a company releases a good product.

So what's nice about it? Well, it actually works. When I was in college, I re-installed XP about once a semester because it would get so full of junk and start slowing down. 7 hasn't junkified itself over time in the same way, I haven't ever needed to do a re-install of it.

It is also a whole lot more secure than XP. You don't run as an administrator by default and if you're running the 64-bit version there's more protection against unsigned drivers and rootkits.

For me, the interface is a whole lot nicer to use. The search in the control panel and start menu make it easy to find things. The nice window adjustments that let you maximize a window or put it to half of the screen are helpful. It even comes with some interesting and non-traditional desktop backgrounds.

It's not perfect, by any means, but it is actually a very good product. Microsoft has scored pretty well for me lately. I've written about IE 9 and Windows 7 is another really good piece of software. I hope Microsoft can continue the trend.

Wednesday, October 19, 2011

Abomination known as Gnome 3 (Software Sadness)

    Linus Torvalds, the man behind Linux, called Gnome 3 an unholy mess. I completely agree with him. To me, Gnome 3 is the epitome of bad in open source software. Gnome 2 wasn't great, but it was usable and I didn't hate it. Using Gnome 3 makes me want to bash my own head in. Let's look at some of the reasons why. They aren't in any particular order because they're all horrible. I have many more reasons, but didn't want this posting to get too long.

Typical Desktop
    Issue #1 Task Management: Take a look at the image of a typical Gnome 3 desktop. Notice that the bar at the top only lists Firefox. Gnome 3 did away with any type of taskbar. You might also have noticed that your windows don't have "maximize" and "minimize" buttons. Gnome developers just decided you don't need those.

Activity Center
    Issue #2 Activity Center: Instead of a task bar, there is now an Activity Center. It's sort of like a horrible combination of the Mac Dock and the Windows Start menu. Open it up and you see a Dock on the left, with your open programs kind of highlighted. This screenshot shows how you would launch any programs, but there is a tab there where you could see your open windows.
    This is how you change between applications and start new ones. So what is so bad about it? Well, it really kills your flow when you're working. Rather than clicking on a shortcut to start a new application (you can't put icons on the desktop in Gnome 3), you have to bring up this activity center and find what you want. It really interrupts your work flow to do this. It takes over the whole screen and pulls you out of what you're working in.

    Issue #3 Customizability: Gnome 3 is a lot more difficult, by design, to customize to your liking. I mentioned no desktop icons. But it's also fairly difficult to change the color themes. You can't customize the top menu at all. If you want to hide the battery icon or accessibility icon because you don't need them, that's just too bad. I searched in vain for a way to hide those icons and came across this gem of a page which describes how little you can customize Gnome 3. Fonts also look horrible and aren't easy to change.

Gnome 3 menu
    Issue #4 Not caring about user feedback. I like to call this the Fundamental Open Source Error. It might be more appropriate to call it the Fundamental Gnome Error because I've really only seen it happen with Gnome projects. Basically, it means that the developers think they're smarter than their users. They get user feedback and promptly tell the users why they are stupid and then keep going as if nothing happened. Check the above link again for an example of this.
    For another example, the original Gnome 3 user menu didn't include a 'Shut down' option. You had to log out to the main screen to shutdown your computer. Really? I have to log out, wait for the login screen to come up, and then shut down? Based on user complaints, the developers added an option where you can hold alt to change the 'Suspend' option in your menu to 'Shut down.' Who's going to know that exists?
Gnome 3.2 menu
   In Gnome's defense, they did change this in Gnome 3.2, there is actually a 'Power Off' option. I'm not sure if that suspends the computer or shuts it down, but I think the change is a step in the right direction. Hopefully they did this based on user feedback.

    I gave Gnome 3 a good try. I wanted to like it, but it's just all wrong. I think this is one reason why Linux doesn't have a better following than it does. You get a lot of projects like this where the default is just ugly and unusable. It's not worth the time to put into customizing it to where you can stand to work with it. That's where Mac OSX and Windows excel. They're decent to look at and are actually usable by default. Being commercial applications, I'm guessing they took user feedback into account and have avoided the Fundamental Gnome Error.

Sunday, October 9, 2011

TweetDeck (Software Bliss 1)

    Rather than just having a series about software products I think have gone wrong, I thought I should add in a few articles about products that I think are great. I don't think all software is horrible, after all.
    One of my recent favorites is TweetDeck. It allows you to see all your Twitter and Facebook feeds in one application. This has made it easy to stay up-to-date with my friends. You can also post to both services at the same time. The service is handy, but there's a few features that make this piece of software truly excellent.
    First is that there is a Chrome version that you can run without having to install anything. You just add it to your App list in Chrome and off you go. New posts automatically appear, so you don't have to refresh your browser. Since I've been using Chrome as my main browser, this is a great option.
    They also have an awesome mobile application. I use the Android version, and it's just as good as the Chrome version. One feature I really like about the mobile version is that there is a yellow indicator inside that app that shows you which messages are new since you last launched the application. It's one of the few Apps that I actually run every day.
    I think the best thing about TweetDeck is that they let me see Facebook updates without logging into Facebook. I've been very confused and disappointed with the recent changes to Facebook and I really don't like to log in to their site anymore. With TweetDeck, I can still stay up to date and avoid the Facebook confusion.
    There are some sadnesses to the App. One is that my company has the site blocked so I can only use the Chrome version at home. I can still use the Android version at work. I think it's a good thing because I could get distracted if I had it open all day long. I try to just check the phone App in the morning and during lunch.
    The other sadness is that they don't have Google+ as one of the services you can connect to. I hope they add that at some point in the future as I'm starting to use Google+ a lot more than Facebook. This also isn't horrible for me because most of my friends send updates through Facebook now anyway.