Wednesday, July 23, 2014

2014 GNOME Users And Developers European Conference

The 2014 GNOME Users And Developers European Conference ("GUADEC") starts this weekend in Strasbourg, France and I'm very excited to be there! This is my first experience at GUADEC. I will be speaking as a keynote, discussing my usability study of GNOME.

I am looking forward to so many of the presentations. Not all of them are strictly about GNOME, but also about free software and technology in general. Just to name a few:

As you can guess, several of these relate to my specific interest in the usability of free software.
Since I will be away, I do not plan to post new items to Coaching Buttons until I return on Monday, August 4.

Tuesday, July 22, 2014

Satya Nadella's moment is now

I like to use current news items as "coaching moments". The big news in IT: Satya Nadella as Microsoft's new CEO, and his refocus for the company.

Bill Gates and (later) Steve Ballmer were the driving forces behind Microsoft's rise to market dominance since the 1980s. No one can deny that Microsoft successfully leveraged key strengths and opportunities to become the leading platform for business and home.

Part of successful leadership is identifying and developing the next generation of leaders. Except for this press release, there hasn't been demonstrable transition planning with Nadella's role, no visible development of a future leader to take Ballmer's place when he finally exited the company.

But now, as Nadella steps into his new role, what advice would you give him? He faces a daunting task: Google's Chromebooks directly compete with Windows laptops and desktops. Meanwhile, Apple is edging out Microsoft in the more important mobile market. Nadella needs to demonstrate that he can play on that field while remaining the dominant player on desktops and laptops. In short, Nadella needs to demonstrate he has a vision for his new role and for Microsoft's future.

My recommendation to Nadella: communicating through change. In successfully managing a change, steps 1 through 3 are usually "1. communication, 2. communication, 3. communication." The key is to provide a vision for what the change will deliver, and set an expectation for the general steps required to reach that vision. Even if your change is simply a transition of focus, it's still important to communicate openly about goals, so that everyone has an opportunity to participate and knows what will be expected of them.

Fortunately, Nadella seems to be doing just that. Quoting an article from Business Insider:
In an email to Microsoft employees today, CEO Satya Nadella outlined the core of the company’s strategy and vision and focus for the coming years. Nadella underscored his message to the world from earlier this year that Microsoft is a company focused on “ubiquitous computing and ambient intelligence” in a mobile-first, cloud-first world. Today, Nadella took those vague basic concepts a step further.
The message: Microsoft provides computers, software and operating systems so you can get stuff done. That's a great first step! Next, I expect Nadella will sketch out his priorities for the next 6-12 months. We may also see an infusion of new talent. During this very public transition, I'd recommend Nadella remain transparent.

I usually suggest new CEOs (or any leader stepping in to a new role) will have a "honeymoon" period, typically 6 to 12 months, or until the company announces its first product lines delivered under the new leadership. However, the same article ("Satya Nadella Proves That Microsoft Hasn't Changed At All") expresses doubt about Nadella's leadership, suggesting his honeymoon may be over as soon as it began.

Monday, July 21, 2014

Today's students are already online

Students today are not waiting for higher education to go online; they are already taking online classes before they even enter higher education. In a recent survey from UCLA, incoming freshmen already utilize some form of online learning during their high school education:
About four out of ten (41.8%) incoming students frequently or occasionally used an online instructional website as assigned for a class in the past year. Students were, however, much more likely to utilize these resources independently—almost seven out of ten (69.2%) incoming first-year students have used such sites frequently or occasionally to learn something on their own. (The American Freshman: National Norms Fall 2013)
This should be eye-opening news for higher education institutions who have yet to adopt a significant online learning program. Today's generation of students seek out education, to find what they need to graduate. If an online class will do the job, students are likely to take it.

It's also important to recognize how an institution's online education opportunities will affect these new learners. Higher education is no longer about the "sage on the stage," but about bringing the educational experience to the student. Even a flipped "active learning" classroom is no longer enough in the face of online opportunities.

How is your institution addressing online education? Are you presenting an online program that engages the new mode of online learning, or are you stuck in the past where all your courses are taught in classrooms?

Monday, July 7, 2014

Key skills for computer science students

At Morris, we have recently turned our attention to how we can better prepare students for their chosen careers. Our liberal arts mission already trains students to learn how to learn, ready for a lifetime of new learning. This is certainly a key life skill that should prepare any recent graduate for work life.

Along these lines, I found this article from New Relic to be apropos: 10 Secrets You Should Have Learned with Your Software Engineering Degree—But Probably Didn’t. This article directly applies to computer science students, and I think it should be required reading for anyone who wants to get into technology as part of their career. As the article says: "It’s an all too common story: You go to school for years and years and walk out with a freshly printed diploma, snag your first job, and yet get immediately blindsided by unwritten rules and other day-to-day complexities that no one bothered to warn you about. And programming is no exception."

The 10 key skills that the article suggests for computer science students:
  1. Version control systems
  2. How to write
  3. Regular expressions
  4. Using libraries
  5. SQL
  6. Tool usage: IDEs, editors, CLI tools
  7. Debugging
  8. Defensive programming
  9. Teamwork
  10. Working on existing code
As an undergraduate, programming assignments tend to be very simple. And each student has sole programming responsibility for her or his code. So it's perhaps not surprising that students rarely learn how to manage code that changes frequently. But in industry, programmers are expected to contribute to projects. Managing code quickly becomes an important component of good project management.

To give yourself a boost, learn a version control system such as Subversion or GIT. Maybe your future employer will use a different version control system, but once you learn how to use one VCS, you should be able to adapt to any other.

Every programmer eventually hits a problem that can be solved by transforming one bit of text into something else. Or by seeking and isolating a particular snippet from a longer text string. And that's where regular expressions come to the rescue.

An old adage in computer programming is don't re-invent the wheel. It's not necessary to create your own sorting algorithm; there's a sort() library to do that for you. You don't need to invent your own way to parse a command line; use getopt(). Similarly, if someone on your team has coded something to do foo on your enterprise system, don't re-invent that wheel; turn it into a library that other programs can re-use.

But it's not all about writing code. Good programmers need to write documentation about the code. And it's important to do so clearly and concisely. Leverage your liberal arts education to build this important skill.

My undergraduate degree was in physics, not computer science, but I learned all of these skills (minus SQL) through my work in free software. That's why I also encourage students to find an open source software project that is interesting to you, and contribute to it. You'll quickly learn what it takes to be a productive member of a software development team—and you will have fun doing it.

Thursday, July 3, 2014

Reminder: U of M is retiring UThink Blogs in December

I wanted to share this important announcement about the UThink Blogs system. I also shared this announcement in March.

For several years, the University Libraries and the Office of Information Technology have provided a blogging system called UThink at blog.lib.umn.edu. This is a free service to anyone within the University of Minnesota system, for you to share your ideas and post items.

The University is planning to retire the UThink system at the end of this year, in December 2014. You will no longer be able to create new blogs on UThink, but the UThink service will still be available until the end of December.

If you have a blog on the UThink Blogs, please consider moving your blog to another service. For example, you can set up a blog using your U of M login on Blogger, which is part of the U of M Google Apps service.
image: UThink

Tuesday, July 1, 2014

Improved wireless network in HFA

It is my pleasure to share this status update of our campus wireless network upgrade. This summer, we have been working with Facilities Management and the Office of Information Technology to expand the wireless network coverage throughout the Humanities & Fine Arts (HFA) building. And as of this week, we have activated the new wireless network in HFA. You should now be able to connect to the wireless network wherever you are in HFA, including faculty offices.

This is part of our efforts to expand the wireless network on campus, based on your feedback about where wireless networking was most needed. In Spring, we completed the wireless upgrade in the Science building. We also plan to improve the wireless network in other much-needed areas, including Gay Hall and the Cube, the RFC, Moccasin Flower Room, Prairie Lounge. This Fall, we will continue the wireless upgrade project in Humanities, Camden, Briggs Library, and other campus areas.

I would like to thank Mike Miller, Robert Thompson, Dave Savela, and our partners in the Office of Information Technology for their work on the wireless upgrade.

Monday, June 30, 2014

Celebrating 20 years in free software

I'd like to share a celebration with you. As of today, The FreeDOS Project is now 20 years old. Happy birthday, FreeDOS!

FreeDOS is a free version of DOS, a replacement for Microsoft's MS-DOS. FreeDOS dates back to 1994, when I was still a physics undergraduate student at the University of Wisconsin-River Falls. While my major field of study was physics, I long held a strong interest in computers and programming.

As a physics student in the early 1990s, I used MS-DOS to analyze data and write papers for classes. I found DOS to be exactly what I needed to do all of my work. I mostly used a shareware spreadsheet program called "AsEasyAs" (a clone of Lotus 1-2-3) to do my data analysis, and a popular commercial word processor "WordPerfect" to write my papers. For the more technically-minded of you: I sometimes used a DOS version of LaTeX, called emTeX, to write lab reports that required equations and other fancy formatting that was beyond the reach of WordPerfect.

So it was with great disappointment in Spring 1994 that I learned Microsoft would soon stop supporting MS-DOS, in favor of a new version of Windows. As Microsoft claimed at the time, DOS was dead, and long live Windows. While the newer Windows became the hugely successful Windows95, you may remember that Windows 3.11 (current at that time) was not so great. In fact, Windows 3.11 was pretty bad. I didn't like using it; I preferred to do all my word in MS-DOS.

I decided to do something about it. I had used Linux, and was already dual-booting my computer with an early Linux distribution (SLS 1.03). I figured if others could write a free version of Unix, surely we could create our own version of DOS.

And on June 29, 1994, I announced my intention to write a free version of DOS. I called that first version "PD-DOS" for a few reasons. I decided that a free version of DOS should be open for anyone to use, so it was essentially in the "public domain." Also, I liked the two-letter name; there was already MS-DOS, PC-DOS, DR-DOS … and ours would be PD-DOS. But it didn't take long before we realized that it would be better to use a "Free Software" license such as the GNU GPL for our programs, so we quickly renamed our project "FreeDOS."

(Actually, we first renamed it "Free-DOS" until late 1995 or early 1996, when Pat Villani's published his book FreeDOS Kernel; An MS-DOS Emulator for Platform Independence and Embedded Systems Development. By that time, enough people on our mailing list had been calling it "FreeDOS" that we just kept the new spelling.)

Since then, we have advanced what DOS could do, adding new functionality and making DOS easier to use. For example, FreeDOS lets you access FAT32 file systems and use large disk support (LBA), a feature not available in MS-DOS at the time, and only included in Windows95 and newer. And today in 2014, people continue to use FreeDOS to support embedded systems, to run business software, and to play classic DOS games!

FreeDOS is still under active development. Programmers from around the world continue to add new features to FreeDOS that make it even better. However, FreeDOS doesn't change very quickly. It simply doesn't need to. FreeDOS runs all sorts of original DOS programs, and the definition of "DOS" hasn't changed since MS-DOS 6.22. So not much changes "under the hood" these days, but developers create new utilities and expand existing functionality.

If people want to try FreeDOS today, I usually recommend a PC emulator, such as VMWare or VirtualPC. It's really easy to run FreeDOS in a virtual machine like this. You can also run FreeDOS in your browser, using a browser-based PC emulator called JPC. On my Linux laptop, I run FreeDOS from DOSemu. Download a copy of FreeDOS 1.1 and give it a try!

As always, thanks to everyone who has worked on FreeDOS. We wouldn't be here without you!
image: Official FreeDOS fish (web) by Bas Snabilie, SVG adapted by Mateusz Viste