Skip to main content

Feed aggregator

Libarchive Security Flaw Discovered

Linux Journal - Tue, 06/28/2016 - 05:00

When it comes to security, everyone knows you shouldn't run executable files from an untrustworthy source. Back in the late 1990s, when web users were a little more naive, it was quite common to receive infected email messages with fake attachments. more>>

Categories: Linux News

Sony Settles in Linux Battle

Linux Journal - Mon, 06/27/2016 - 16:30

When Sony released its PlayStation 3 console in 2006, most fans were excited by the enhanced graphics and processing power, but a small (yet significant) group of buyers was excited about an entirely different feature. more>>

Categories: Linux News

Astronomy for KDE

Linux Journal - Thu, 06/23/2016 - 16:00

Although I have covered a large number of science applications in the past, I haven't really looked at too many options available within the KDE desktop environment. This has been due to my own biases in using a GTK-based desktop environment, but now I'd like to look at some of the packages available for people who really like to use KDE on their own machines. more>>

Categories: Linux News

Profiles and RC Files

Linux Journal - Wed, 06/22/2016 - 13:13

I love Linux, and if you're reading this, chances are you do too. To be honest though, some aspects of the Linux environment are confusing. Near the top of the list for me is the profile system. more>>

Categories: Linux News

Understanding Ceph and Its Place in the Market

Linux Journal - Tue, 06/21/2016 - 08:00

Last month, the Ceph community released its first set of bug fixes to the 10.2 Jewel release with version 10.2.1. more>>

Categories: Linux News

SoftMaker FreeOffice

Linux Journal - Mon, 06/20/2016 - 10:20

The bottom line on SoftMaker FreeOffice 2016—the updated, free, full-featured Office alternative to the expensive Microsoft Office suite—is this: no other free off more>>

Categories: Linux News

Git 2.9 Released

Linux Journal - Fri, 06/17/2016 - 11:11

A new version of Git was released this week, bringing a number of improvements that will be a welcome sight to software developers. more>>

Categories: Linux News

The Giant Zero, Part 0.x

Linux Journal - Thu, 06/16/2016 - 15:28
The first time I floated the "giant zero" metaphor for the Internet, was in my October 2007 "SuitWatch" newsletter for Linux Journal. more>>
Categories: Linux News

Snappy Moves to New Platforms

Linux Journal - Thu, 06/16/2016 - 07:00

Canonical's Snappy package manager is taking its first steps outside the Ubuntu world. As of now, you can install it on Arch, Debian, Fedora and several other popular distros. more>>

Categories: Linux News

Mark Geddes' Arduino Project Handbook (No Starch Press)

Linux Journal - Wed, 06/15/2016 - 09:15

Lifelong tinkerer and gadget enthusiast Mark Geddes was so frustrated with the lack of practical, visual Arduino guides for teaching his ten-year-old that he wrote his own book on the topic. more>>

Categories: Linux News

Susan Lauber's Linux Command Line Complete Video Course (Prentice Hall)

Linux Journal - Tue, 06/14/2016 - 15:25

Users, developers and administrators can all find much to love in Linux's powerful command line. more>>

Categories: Linux News

Maru OS Brings Debian to Your Phone

Linux Journal - Mon, 06/13/2016 - 14:15

Have you ever had the suspicion that your smartphone wasn't quite pulling its weight? more>>

Categories: Linux News

Microstar Laboratories, Inc.'s Accel64 for Linux

Linux Journal - Fri, 06/10/2016 - 10:52

Microstar Laboratories, Inc., develops Data Acquisition Processor (DAP) systems for PC-based high-performance multichannel measurement applications. more>>

Categories: Linux News

Apricorn's Aegis Secure Key 3.0 USB Drives

Linux Journal - Thu, 06/09/2016 - 12:00

Packing a mighty punch in a tiny package is the Apricorn's Aegis Secure Key 3.0 line of software-free, hardware-encrypted USB drives, which recently added a 480GB version. more>>

Categories: Linux News

Dynamsoft's Barcode Reader SDK

Linux Journal - Wed, 06/08/2016 - 20:35

What's slick about Dynamsoft's Barcode Reader SDK is that just a few lines of code from scratch are required instead of potentially hundreds of them, which could save months o more>>

Categories: Linux News

What's Our Next Fight?

Linux Journal - Tue, 06/07/2016 - 13:00

We won the battle for Linux, but we're losing the battle for freedom.

Linux turns 25 in August 2016. Linux Journal turned 21 in April 2016. (Issue #1 was April 1994, the month Linux hit version 1.0.) We're a generation into the history of our cause, but the fight isn't there anymore, because we won. Our cause has achieved its effects. more>>

Categories: Linux News

OpenSwitch Finds a New Home

Linux Journal - Fri, 06/03/2016 - 15:42

OpenSwitch has joined the Linux Foundation's stable of networking projects. This is a significant step. It means the network operating system's development will be driven by community needs, instead of the needs of few private companies. more>>

Categories: Linux News

Contrast Security's Contrast Enterprise

Linux Journal - Thu, 06/02/2016 - 16:27

With more and more businesses running on the Node.js server-side JavaScript runtime environment, application vulnerabilities are a growing threat to entire organizations. more>>

Categories: Linux News

ZFS: Finding Its Way to a Linux Near You?

Linux Journal - Wed, 06/01/2016 - 13:00

It seems like only yesterday that I read Jeff Bonwick's blog entry "ZFS: The Last Word in Filesystems". It was Halloween of 2005 that ZFS was fully integrated into Sun Microsystem's Solaris, and the filesystem was very well received. For the readers not familiar with ZFS, it is a combined all-purpose filesystem and volume manager. more>>

Categories: Linux News

(Still) working too much on the computer

Anarcat - Wed, 06/01/2016 - 10:39

I have been using Workrave to try to force me to step away from the computer regularly to work around Repetitive Strain Injury (RSI) issues that have plagued my life on the computer intermittently in the last decade.

Workrave itself is only marginally efficient at getting me away from the machine: as any warning systems, it suffers from alarm fatigue as you frenetically click the dismiss button every time a Workrave warning pops up. However, it has other uses.

Analyzing data input

In the past, I have used Workrave to document how I work too much on the computer, but never went through more serious processing of the vast data store that Workrave accumulates about mouse movements and keystrokes. Interested in knowing how much my leave from Koumbit affected time spent on the computer, I decided to look into this again.

It turns out I am working as much, if not more, on the computer since I took that "time off":

We can see here that I type a lot on the computer. Normal days range from 10 000 to 60 000 keystrokes, with extremes at around 100 000 keystrokes per day. The average seem to fluctuate around 30 to 40 000 keystrokes per day, but rises sharply around the end of the second quarter of this very year. For those unfamiliar with the underlying technology, one keystroke is roughly one byte I put on the computer. So the average of 40 000 keystrokes is 40 kilobyte (KB) per day on the computer. That means 15 MB over a year or about 150MB (or 100 MiB if you want to be picky about it) over the course of the last decade.

That is a lot of typing.

I originally thought this could have been only because I type more now, as opposed to use more the mouse previously. Unfortunately, Workrave also tracks general "active time" which we can also examine:

Here we see that I work around 4 hours a day continuously on the computer. That is active time: not just login, logout time. In other words, the time where i look away from the computer and think for a while, jot down notes in my paper agenda or otherwise step away from the computer for small breaks is not counted here. Notice how some days go up to 12 hours and how recently the average went up to 7 hours of continuous activity.

So we can clearly see that I basically work more on the computer now than I ever did in the last 7 years. This is a problem - one of the reasons of this time off was to step away from the computer, and it seems I have failed.

Update: it turns out the graph was skewed towards the last samples. I went more easy on the keyboard in the last few days and things have significantly improved:

Another interesting thing we can see is when I switched from using my laptop to using the server as my main workstation, around early 2011, which is about the time marcos was built. Now that marcos has been turned into a home cinema downstairs, I went back to using my laptop as my main computing device, in late 2015. We can also clearly see when I stopped using Koumbit machines near the end of 2015 as well.

Further improvements and struggle for meaning

The details of how the graph was produced are explained at the end of this article.

This is all quite clunky: it doesn't help that the Workrave data structure is not easily parsable and so easily corruptible. It would be best if each data point was on its own separate line, which would be long, granted, but so easier to parse.

Furthermore, I do not like the perl/awk/gnuplot data processing pipeline much. It doesn't allow me to do interesting analysis like averages, means and linear regressions easily. It could be interesting to rewrite the tools in Python to allow better graphs and easier data analysis, using the tools I learned in 2015-09-28-fun-with-batteries.

Finally, this looks only at keystrokes and non-idle activity. It could be more interesting to look at idle/active times and generally the amount of time spent on the computer each day. And while it is interesting to know that I basically write a small book on the computer every day (according to Wikipedia, 120KB is about the size of a small pocket book), it is mostly meaningless if all that stuff is machine-readable code.

Where is, after all, the meaning in all those shell commands and programs we constantly input on our keyboards, in the grand scheme of human existence? Most of those bytes are bound to be destroyed by garbage collection (my shell's history) or catastrophic backup failures.

While the creative works from the 16th century can still be accessed and used by others, the data in some software programs from the 1990s is already inaccessible. - Lawrence Lessig

But is my shell history relevant? Looking back at old posts on this blog, one has to wonder if the battery life of the Thinkpad 380z laptop or how much e-waste I threw away in 2005 will be of any historical value in 20 years, assuming the data survives that long.

How this graph was made

I was happy to find that Workrave has some contrib scripts to do such processing. Unfortunately, those scripts are not shipped with the Debian package, so I requested that to be fixed (#825982). There were also some fixes necessary to make the script work at all: first, there was a syntax error in the Perl script. But then since my data is so old, there was bound to be some data corruption in there: incomplete entries or just plain broken data. I had lines that were all NULL characters, typical of power failures or disk corruptions. So I have made a patch to fix that script (#826021).

But this wasn't enough: while this processes data on the current machine fine, it doesn't deal with multiple machines very well. In the last 7 years of data I could find, I was using 3 different machines: this server (marcos), my laptop (angela) and Koumbit's office servers (koumbit). I ended up modifying the contrib scripts to be able to collate that data meaningfully. First, I copied over the data from Koumbit in a local fake-koumbit directory. Second, I mounted marcos home directory locally with SSHFS:

sshfs marcos

I also made this script to sum up datasets:

#!/usr/bin/perl -w use List::MoreUtils 'pairwise'; $| = 1; my %data = (); while (<>) { my @fields = split; my $date = shift @fields; if (defined($data{$date})) { my @t = pairwise { $a + $b } @{$data{$date}}, @fields; $data{$date} = \@t; } else { $data{$date} = \@fields; } } foreach my $d ( sort keys %data ) { print "$d @{$data{$d}}\n"; }

Then I made a modified version of the Gnuplot script that processes all those files together:

#!/usr/bin/gnuplot set title "Workrave" set ylabel "Keystrokes per day" set timefmt "%Y%m%d%H%M" #set xrange [450000000:*] set format x "%Y-%m-%d" set xtics rotate set xdata time set terminal svg set output "workrave.svg" plot "workrave-angela.dat" using 1:28 title "angela", \ "workrave-marcos.dat" using 1:28 title "marcos", \ "workrave-koumbit.dat" using 1:28 title "koumbit", \ "workrave-sum.dat" using 1:2 smooth sbezier linewidth 3 title "average" #plot "workrave-angela.dat" using 1:28 smooth sbezier title "angela", \ # "workrave-marcos.dat" using 1:28 smooth sbezier title "marcos", \ # "workrave-koumbit.dat" using 1:28 smooth sbezier title "koumbit"

And finally, I made a small shell script to glue this all together:

#!/bin/sh perl workrave-dump > workrave-$(hostname).dat HOME=$HOME/marcos perl workrave-dump > workrave-marcos.dat HOME=$PWD/fake-koumbit perl workrave-dump > workrave-koumbit.dat # remove idle days as they skew the average sed -i '/ 0$/d' workrave-*.dat # per-day granularity sed -i 's/^\(........\)....\? /\1 /' workrave-*.dat # sum up all graphs cat workrave-*.dat | sort | perl > workrave.dat ./gnuplot-workrave-anarcat

I used a different gnuplot script to generate the activity graph:

#!/usr/bin/gnuplot set title "Workrave" set ylabel "Active hours per day" set timefmt "%Y%m%d%H%M" #set xrange [450000000:*] set format x "%Y-%m-%d" set xtics rotate set xdata time set terminal svg set output "workrave.svg" plot "workrave-angela.dat" using 1:($23/3600) title "angela", \ "workrave-marcos.dat" using 1:($23/3600) title "marcos", \ "workrave-koumbit.dat" using 1:($23/3600) title "koumbit", \ "workrave.dat" using 1:($23/3600) title "average" smooth sbezier linewidth 3 #plot "workrave-angela.dat" using 1:28 smooth sbezier title "angela", \ # "workrave-marcos.dat" using 1:28 smooth sbezier title "marcos", \ # "workrave-koumbit.dat" using 1:28 smooth sbezier title "koumbit"
Categories: External Blogs
Syndicate content