Tuesday, July 31, 2018

The next step in open data is open source

Governments at all levels are moving to embrace open data, where governments share public data proactively with citizens. Open data can be used, reused, mixed, and shared by anyone.

For example, The US Government has an open data portal that publishes data on various topics, including agriculture, education, energy, finance, and other public data sets. Where I work (Ramsey County, Minn.) we established an open data portal that shares expenses and other public data about the county that users can access in different views.

Through open data, governments become more transparent. We have seen this in several instances. The Oakland Police Department used a 2016 open data study from Stanford University to address racial bias in how officers behave towards African Americans versus Caucasians during routine traffic stops. In 2017, Steve Ballmer launched the USAFacts website that uses open data to reveal how governments spend tax dollars to benefit citizens. Also from 2017, Los Angeles, California’s comprehensive “Clean Streets LA” initiative uses open data to assess and improve the cleanliness of public streets.

Governments at all levels have recognized that open data feeds citizen engagement. By sharing data in a way that encourages citizens to remix and transform open data to provide new insights, governments and citizens move closer together. According to the Open Data Barometer, many municipalities already provide open data for geographic information, transportation, trade, health, and education, with a mix of other open data sets. Those governments that do not yet provide an open data portal are likely working to provide one.

What is the next step beyond open data? After sharing data, what is the next evolution for governments to engage with citizens?

I believe that next step is open source. Where we provide government data sets for anyone to view, adapt, and remix, we need to offer government source code for others to view, adapt, and remix.

While there is a balance to be made in moving to government open source, the default should be to share as much source code as possible. Just as governments found a balance in providing open data, government open source must consider what software can and cannot be shared as open source software. In the same way that some data needs to remain private because it identifies individuals or because it contains certain nonpublic data, some government source code may need to remain “closed source.”

In adopting government open source, we should follow the open data model. The default in government open data is to share as much data as possible, to release public data for public consumption. That should be the same with government open source. In cases where government application development teams write custom software, we should make as much of our source code available to the public as possible.

Some government agencies are already moving to an open source model, and that is good. In August 2016, US Chief Information Officer Tony Scott and US Chief Acquisitions Officer Anne Rung issued instructions for federal departments and agencies “to release at least 20 percent of new custom-developed code as Open Source Software (OSS) for three years.” In support of this directive, the US Government established an open source portal at Code.gov to share government source code under the Creative Commons Zero (CC0) and other open source software licenses. Via the open source portal, users can download open source projects, toolkits, installer profiles, online forms, JavaScript widgets, and other code samples.

The challenge we face in moving to government open source is not technical, but cultural. Many governments have relied on proprietary or “closed source” software for decades. Through the lens of these government IT departments, all software is proprietary. This view often extends to software that is custom-developed by municipalities.

It will take a culture shift for governments to release their source code for public access. But governments faced that same culture shift in moving to open data, and we overcame that cultural inertia. We can do the same with open source.

The benefits to adopting a government open source model are many. Like open data, government open source will provide additional transparency to citizens. Users will be free to investigate the source code, and re-use it for other purposes. Motivated citizen developers may modify the source code to fix bugs or add new features, and contribute those improvements back to the government. This last example is the ideal model, providing a feedback loop of engagement where the government partners with its citizens to improve services.

I believe the next iteration from open data is open source. I encourage government Chief Information Officers at all levels to investigate how software created by government application development teams can be made available to outside users. Use the US open source portal as a model to set goals and measure progress. Finally, establish relationships with partners most likely to engage in government open source, including local universities and businesses.

Through open data, governments became more transparent to citizens. With government open source, Chief Information Officers have an opportunity to lead the next evolution in citizen engagement. Through open source, we can take government transparency to the next level.

Monday, July 30, 2018

What an icon says about you

Icons are an important part of modern computing. We see icons everywhere, from actions on the desktop to navigation in an application to action icons on a website. You can't go long without seeing an icon.

When I first started doing usability testing, I focused on icons. How will users perceive the function exposed by a single button, especially if that button is an icon? Icons can be abstract or representative. For example: in a word processing program, what icon would you click to print a document? The icon you have in mind probably looks something like this: (*wikimedia)

That is a fairly artistic rendering of a printer. But how simple can you make the printer icon, and still recognize it as a printer? (*wikimedia)

This high contrast icon is still recognizable as a printer to many users. Especially when presented on a toolbar with other icons, usually on the left end of the toolbar near the new-file and open-file and save-file icons, you'd probably recognize this as a printer icon. (In this case, certain icons can be learned based on association. In most applications, the "Print" action is usually near the "New File" and "Save File" actions.)

Branding is another form of an icon. You can associate a product or a brand through its icon. You can immediately recognize certain products through their icons, from the Nike "swoosh," the McDonald's "M," the Apple "apple," and the AT&T "Death Star." Open source software has its own recognizable icons, including Tux the Penguin, the GNU gnu, and "Beastie" the BSD Daemon.

Once upon a time, the Netscape "N" was instantly recognizable as the web browser's brand icon. Later, the organization spun off into Mozilla, represented by a less memorable big red dragon head. Finally, we have Firefox, represented by a stylized fox wrapped around a small globe. The fox icon has represented the Firefox brand for years, although now the Firefox organization wants to change the brand icon.

From an article in Venture Beat: "For most people, Firefox refers to a browser, but the company wants the brand to encompass all the various apps and services that the Firefox family of internet products cover," and "The fox with a flaming tail 'doesn't offer enough design tools to represent this entire product family'." The Firefox name will remain, but the branding will change.

This is a tall order. Changing any well-known branding for an organization or a product family is tough. Will users continue to recognize the product as one they have used before? Or will the new branding suggest to users that everything has changed, and the product they've used and known for years has now flipped to something completely different?

Firefox has proposed two possible branding options:

Venture Beat describes the icons as follows: "The first icon is the Firefox masterbrand icon, an umbrella under which all the product lines will live" and "The next [two] lines, in order, are as follows: general purpose browser icons (including Developer Edition and Nightly colors), singularly-focused browser icons (Firefox Focus and Firefox Reality)"and the last five icons are "new applications and services."

First, let me make some guesses about the new applications and services, represented by the five icons in the last two lines. I'm not sure what the first one represents, but I think the second is some kind of photo service, perhaps something like Instagram or maybe a static photo hosting service like Flickr. At least, that's what the green icon suggests to me. The third icon is clearly some kind of password management service, like LastPass or 1Password; the hexagonal "lock" icon is a clearer representation of a password service.

I'm not sure what the last two are. These are too abstract for me to interpret what they mean, but perhaps the last icon is some kind of interaction service, such as a private chat application.

Jumping back the the rest of the list. The first line of icons (the standard web browser, the in-development web browser, and the nightly-build web browser) are still recognizable to me. I don't use the Firefox Developer Edition or the nightly builds, but the different colors in those two icons suggest to me that they are not the standard web browser.

The System 1 icons are more familiar to me, compared to the current Firefox logo. I think if Firefox used the first row icons from System 1, their users would be satisfied that the browser product isn't completely new.

The second row of icons (including Firefox Focus and Firefox Reality) are a mix for me. I'm not sure what Firefox Focus is, based on this image. The Firefox Focus web page describes Focus as a "dedicated privacy browser with tracking protection and content blocking." I don't get that from either the System 1 or System 2 icons. Similarly, the icon for Firefox Reality doesn't suggest what Reality does for me. The Firefox blog describes Reality as a "cross-platform browser for mixed reality." I don't get "augmented reality" from any of the icons in System 1 or System 2.

What about the "parent" logo, the Firefox masterbrand icon at the top? For me, the System 2 icon better represents the "Firefox" family of products. I get the abstract fox icon from System 1, but I think it's too abstract. When I first saw the icon, I assumed it was a red book icon, but the designer had set the alpha channel to be too transparent, so the yellow diamond underneath the book was visible. (And now you probably can't un-see the "book" icon. Sorry.)

But negative space means something, too. As humans, we naturally look for negative space, and read a lot into what shapes we find there. For example, most people see a rightward arrow in the FedEx logo, suggesting speed.

Applying this negative space visual concept to the Firefox logos, my mind naturally tries to find meaning in the negative space of the System 2 icons. I'm less bothered by the negative space of the System 2 masterbrand icon, because the negative space forms a rough circle. But look at the first row of icons. What shape is that? I'm confused.

My recommendation to Firefox is to use the System 2 masterbrand icon, but use the first row of the System 1 icons to represent the web browser. Use the green "Photos" icon (or something like it) and the hexagonal "lock" icon for the Password application.

But go back to the drawing board for Focus and Reality, and the three other extra applications. I'm not sure what those represent, so I think they need more work.

Finally, I encourage Firefox to do a quick usability test. They may have done this already to create this first set of design concepts. Find a bunch of users, and show them the icons in isolation. For one set of testers, don't provide context. "What does this icon mean to you?" Let the user give a reply without knowing what application the icon might be used to represent. For another set of testers, provide some context, but don't indicate which icon is intended for which application. "Which icon represents a web browser?" "Which icon represents a Photos application?" You can probably do this with ten testers in each group, but I'd recommend a larger sample such as twenty testers in each group.

Compare your results. Do the unprompted testers associate the same icon with the same application as the prompted users? If the testers have strong agreement, then you've identified icons that most users will recognize for the purpose you intend.

Thursday, July 5, 2018

First impressions of PureOS

My new Librem 13 arrived yesterday, and it was my first opportunity to play around with PureOS. I thought I'd share a few thoughts here.

First, PureOS uses GNOME for the desktop. And not that it matters much to usability, but they picked a beautiful default desktop wallpaper:

Because it's GNOME, the desktop was immediately familiar to me. I've been a GNOME user for a long time, and I work with GNOME in testing usability of new features. So the GNOME desktop was a definite plus for me.

It's not a stock GNOME, however. PureOS uses a custom theme that doesn't use the same colors as a stock GNOME. GNOME doesn't use color very often, but I noticed this right away in the file manager. Clicking on a navigation item highlights it in a sort of rust color, instead of the usual blue.

Overall, I thought PureOS was okay. It doesn't really stand out in any particular way, and I didn't like a few choices they made. So in the end, it's just okay to me.

However, I did run into a few things that would seem odd to a new user.

What's that file icon?

When I clicked on Activities to bring up the overview, I was confused about what looked like a "file" icon in the dock.

I understood the other icons. The speaker icon is Rhythmbox, my favorite music application. The camera icon is clearly a photo application (GNOME Photos). The blue file cabinet is the GNOME file manager. And the life ring is GNOME's Help system (but I would argue the "ring buoy" icon is not a great association for "help" in 2018; better to use an international circle-"?" help symbol, but I digress).

Two icons seemed confusing. The "globe" icon was a little weird to me, but I quickly realized it probably meant the web browser. (It is.)

But the one that really confused me was the "file" icon, between the camera and the file manager icons. What was a "file" icon doing here? Was it a broken image, representing an icon that should exist but wasn't on the system? I didn't need to click on it right away, so I didn't discover until later that the "file" icon is LibreOffice. I hadn't seen that icon before, even though that's actually the LibreOffice icon. I guess I'm used to the LibreOffice Writer or LibreOffice Calc icons, which is what I launch most of the time anyway.

No updates?

I wanted to install some extra applications, so I launched GNOME Software. And from there, I realized that PureOS didn't have any updates.

Really? Linux gets updates all the time. Even if Purism updated the OS right before shipping my laptop to me, there should have been a few updates in the time FedEx took to deliver the laptop. But maybe Purism is slow to release updates, so this could be expected. It seemed odd to me, though.

Where's the extra software?

Once I was in GNOME Software, I realized the "store" was quite empty. There's not much to choose from.

If this were my first experiment with Linux, I'd probably think Linux didn't have very many applications. They don't even have the Chromium or Firefox web browsers available to install.

But really, there are a ton of applications out there for Linux. It's just the packages that PureOS makes available through GNOME Software seems pretty limited.

The terminal is broken?

Finally, I'll mention the terminal emulator. PureOS doesn't use the standard GNOME Terminal package, but rather the Tilix terminal emulator. It's a fine terminal, except for the error message you see immediately upon launching it:

I wondered why a pre-configured operating system, aimed at the Linux community, would ship with a broken configuration. I clicked on the link shown, and basically the fix is to set Tilix as a login shell, or to do some other setup steps.

Presenting an error message the first time the user runs a program is very poor usability. I haven't run it yet, so I assume the program should be using defaults. Everything should be okay the first time I run the program. I assume things will "just work." Instead, I get an error message. If I were a novice user, this would probably turn me off PureOS.


In the end, PureOS is a GNOME desktop that runs well. But with a few confusing issues or problems here and there, it doesn't exactly stand out. To me, PureOS is just "okay." It's not bad, but it's not great.

I think my biggest concern as a longtime Linux user is that the distribution doesn't seem to have updates. I'm curious to hear from any PureOS users how often updates are pushed out. I run Fedora Linux, and I get updates pretty regularly. What should I have expected on PureOS?

Tuesday, July 3, 2018

Librem 13: Review

In May, I decided it was finally time to replace my old laptop. Technically, there wasn't anything wrong with my old laptop (Lenovo Thinkpad X1 Carbon, first-gen) but after six years, I thought it was time to replace it.

Of course, I wanted my new laptop to only run Linux. After some searching, I decided on the Librem 13, from Purism. Purism laptops are designed and built for Linux, and I wanted to support a hardware vendor that aimed squarely at the Linux and Free/open source software market.

Unfortunately, I had a few problems with the Librem laptop. The Intel on-board video card "flickered" when I used the internal display, and sometimes would go to "sleep" (not sure it was really in sleep mode or just shut itself off, but when the screen goes black and the laptop is still running, that feels like "sleep" to me). I contacted Purism, and they suggested this was a hardware fault they've seen on some laptops, and they gave me an RMA to return it for repair.

A tech later emailed me to say they couldn't repair the laptop, so they sent me a new one instead. My new Librem 13 arrived today, and it's great!

System information

I've highlighted the ordered specs and the system details so they are easier to compare: memorydisk, and CPU. Here's what I ordered: (copied from my order confirmation)

  • Keyboard: English (US)
  • TPM: Include
  • Memory: 16GB (1x16GB) (+$209.00) $209.00
  • Storage (M.2 SSD): 500GB (NVMe) (+$499.00) $499.00
  • Storage (2.5" SATA 3 SSD): None -$99.00
  • AC Adapter Power Plug: US
  • Wireless: Include Wireless
  • Operating System: PureOS
  • Warranty: 1 Year

I figured I'd max out the memory. I'd like this laptop to last a long time, and memory is a good investment there. Also, I swapped out the standard SATA SSD storage for a 500GB M.2 SSD storage. The prices here reflect those changes.

And the technical details: (*see note)

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        2.5G        5.5G        616M        7.6G         12G
Swap:          7.9G        263M        7.6G

$ cat /proc/cpuinfo |egrep '^processor|^model name'
processor : 0
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
processor : 1
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
processor : 2
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
processor : 3
model name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz

$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x46f877a1

Device         Boot     Start       End   Sectors   Size Id Type
/dev/nvme0n1p1 *         2048   2099199   2097152     1G 83 Linux
/dev/nvme0n1p2        2099200 940814335 938715136 447.6G 83 Linux
/dev/nvme0n1p3      940815444 976768064  35952621  17.1G 83 Linux

First impressions

I've been using the new laptop for a few hours now, and I'm happy so far. This is a great system.
Video flicker is fixed
I'm happy to report that the video "flicker" problem is not present on this model! So that seems to have been a hardware fault, and not a driver problem. Very pleased that ended up being a fixable hardware issue.
Wrong key code for backslash and pipe
The keyboard issue is still there. The Purism laptop uses a keyboard that sends the wrong key code for the backslash key (\). The "shift" on this key is the pipe symbol (|). Try running any commands at the Linux command line, and you'll quickly run into a problem where you can't send the output of one program into another program. You need the pipe for that. Or try escaping a character at the command line, or in program code. You need the backslash for that.

This is a known issue on the Librem, but it's easy to fix. You need to run setkeycodes 56 43 to reset the correct key codes for that key system-wide. To make the fix permanent, create a new /etc/rc.d/rc.local file that is executable (I used mode 750, but anything that's executable and owned by root should do) and has these lines:

setkeycodes 56 43
exit 0

This fixes the problem each time the system boots. You don't need to do anything at the user level. Note that I have my Librem connected to an external display, and I'm using an external keyboard and mouse. This key code fix doesn't impact backslash or pipe on my external keyboard, so I'm good there.
Operating system
I did end up re-installing the operating system. When I first booted the Librem, it was using the pre-installed PureOS Linux distribution. I played with it for a while, and actually did some work online with it, then decided I'd rather run the Fedora Linux distribution that I'm used to. I'll post an article later with impressions about PureOS.
*The numbers don't match exactly, and that's expected. Note that free and fdisk display powers-of-ten Gibibytes (GiB), while the specs from Purism display powers-of-two Gigabytes (GB). So 500 GB = 466 GiB and 16 GB = 15 GiB. (see comment)
Update: I'm still having screen flicker problems. It's just not as noticeable because the first screen flicker problem was wide "bands" of what looked like static. This new screen flicker problem basically looks like thin black lines that appear randomly on the screen, but just for a moment. I didn't notice at first because I use an external display as my primary, so my laptop display was just showing the wallpaper (a dark image) and my music player. But yes, Purism confirmed this is another hardware issue, so they are replacing it. They won't have new stock until sometime in August, so I'm using my old laptop until then.