I've previously recounted how I was (am) unsatisfied with ExpressScribe for controlling audio playback for transcribing interviews. Because the basic functionality of the program is so straightforward (using global hotkeys to control audio playback), I was disappointed that there was no free, open-source alternative to ExpressScribe. So I'm making one.
TranscribeSharp is a program that will let you control the playback for audio files using hotkeys while you transcribe the file in another program (e.g. Microsoft Word or LibreOffice Writer). You can slow down, speed up, fast forward, rewind, pause, etc. the audio using you keyboard without ever leaving the program you are transcribing with.
TranscribeSharp is in large part based on PracticeSharp by Yuval Naveh with addition of the LowLevelHooks library by Curtis Rutland. I do not consider myself a skilled programmer, and TranscribeSharp is in some sense just these two pieces of software smashed together. Without PracticeSharp and LowLevelHooks, TranscribeSharp would not be possible.
Right now, this is just a preview release. There are a few bugs, but it is a functional software solution. I wrote this to use for transcribing interviews for my dissertation, but I figured that other people may be interested in using it as well. This is a very low priority project for me, though, so please understand that. I do have a list of features that I would like to eventually add (e.g. the ability to customize the hotkeys, video playpack, an installer, and a different UI), but I have no timeline for implementing these.
TranscribeSharp is written in C# using Visual Studio 2013 and licensed under the LGPL. The full source code is available at BitBucket. If anyone is interested in helping out with bug fixes or implementing new features, just get in contact with me - I am very interested in not working on this project alone. (This was also my first time really using Git, so in future releases I intend on re-structuring the way I use the dependencies.)
To use the program, just unzip the file below and run TranscribeSharp.exe. You'll need the .NET Framework (at least version 4) installed to use it. The program should work on Windows 7 and 8 (maybe more). I hope you find this program useful.
Eating from the tree of the knowledge of good and evil
The year is 2013, and computers are faster and more ubiquitous. All aspects of education - and life - are being revolutionized. With the increases in computing power and bandwidth and decreases in cost and size, computers are becoming increasingly reliant upon servers, software-as-a-service, and "The Cloud" (a buzzword I use with mild disdain). This trend requires that we trust the companies and organizations providing the services to us to A) continue to provide the functionality for as long as we, the consumers, need it and to B) take adequate steps to protect our privacy and the security of our information.
On 1 April 2004, Google launchedGmail, a webmail service that offered the unheard of storage capacity of 1 GB. It was originally an invite-only service, and I was an early adopter (sometime in June 2004). I began to use Gmail almost exclusively, and this marked the beginning of my reliance on software as a service. Having been around computers since my early childhood, I understood the dangers of relying on third parties to provide tools that I use, and I experimented with running my own servers (for mail, web, and IRC). Despite my beliefs about the dangers of software as a service, I became lazy and complacent. My vigilance waned.
Canary in the coalmine
In May 2009, Google announced Wave, a service that was hoped to revolutionize the way people communicated and collaborated online. Briefly, the core idea was that standard email and chat systems rely on old Web 1.0 paradigms and that with the ubiquity of high-speed internet and computing that these paradigms could be challenged. As with Gmail, I was an early adopter of Wave. It turned out, however, that everyone that used Wave was an early adopter (in that there wasn't a deluge of people that began to use it after us).
In August 2010, Google announced that Wave was being discontinued, and by April 2012 the system was officially offline. While I hadn't used Wave in any substantial capacity (mostly using it for brainstorming and collaborating on small projects for school), I saw the potential in Wave and saw its place in my life. I was on a trajectory for slowly but steadily increasing my use and reliance upon Google's incarnation of Wave.
Wave perished but did not die. The core technologies live on in two forms: the rebirth of Google Docs (and later Google Drive) and Apache Wave. The former is another cloud service that resembles parts of Google Wave. The latter is the true successor to Google Wave with the goal of continuing work on the software and protocol with the eventual goal of making it so that there can be private Wave servers that are able to communicate with each other (e.g. I could run my own Wave server on my terms but still derive the benefits of a community of users - similar to how the Diaspora project is approaching social networking).
Google is famous for many reasons, among them a spirit of innovation and a willingness to try new ideas (e.g. Wave). Not all of them are as successful as they would like, and to ostensibly keep their focus on core products strong, began discontinuing products and services that were not widely used or had been superseded by other technologies. The first round of spring cleaning was in 2011, and it has occurred several times, the most recent being in March 2013. In this latest round, they announced the demise of Google Reader, a web-based RSS reader.
The writing has been on the wall. In 2011, the community features were removed from Reader coinciding with Google's expansion into other social networking ventures (i.e. Buzz and Plus). I didn't use the social features much, so I didn't much care. ("First they came...") With the total discontinuation of Google Reader (due to a declining user base), a product I use daily, I am starting to see the naivete in my reliance on Google's services. Many have argued for the value of Google Reader, and many have argued that it was past its time. Petitions were started (this change.org petition has over 125,000 signatures at the time of posting - one of them mine), and competitors offered seamless transitions. It seems today that Google will continue with the discontinuation despite the outcry.
This has two key consequences. First, one must always anticipate that software as a service will be discontinued in time, even by colossal companies like Google. When someone else controls the systems, you don't. Period. Secondly, niche groups may suffer more than others. In the end, when Google Reader dies I'll find an alternative. I may use Google's services less in the future, but being an American I have a plethora of options. For many Iranians, Google Reader is the onlyreasonableoption. Google Reader is accessible as google.com/reader with an encrypted connection. The easiest way to block Google Reader for the Iranian censors would be to block the entirety of Google - a move that incited outrage when exactly this happened in September 2012. While Iran is very crafty at censoring the internet, Google Reader remains one option for accessing censored parts of the web for Iranians. (Of course, Iran is preparing a halal domestic internet that will result in blocking all western sites - including Google - so this may be a moot point.)
The state of affairs
I'm glad that Google broke my trust with Google Reader. It shattered the illusion I had about their benevolence and will force me to confront my reliance upon an organization that does not have my best interests in mind. Google exists to make a profit, not for the betterment of Doug-kind. As I type this, I have five different Google websites as pinned tabs in Google Chrome. I use an Android phone. My email is through Google. My phone number is controlled by Google. Google's seamless integration across services is wonderful, and I can't imagine it any other way.
Or, I couldn't until last week. Henceforth, every piece of technology I use will need an exit strategy. I always have had a vague notion of the alternatives for various programs and websites that I use, but vague notions are simply not good enough. An explicit exit strategy is required.
There is, of course, a spectrum of reliance. On one end is software as a service. Gmail, Google Reader, Microsoft Office 365, EA's Always-on DRM used in games such as Diablo III and SimCity 5, and countless other pieces of software and websites are entirely reliant upon both the internet and a company maintaining the servers on the other end of the line to operate. If this is no longer in their best (financial) interest, then the software or service will cease to work. Using software as a service may make sense at times, provided the limitations are understood.
On the other end of the spectrum is software that one develops personally, entirely from scratch (and on hardware that one has built from scratch). This is almost certainly not feasible in a pure form. Developing an entire computer system - hardware and software - from scratch is a pipe dream, and would preclude the rest of one's activities for several lifetimes. (As Carl Sagan said, "If you wish to make an apple pie from scratch, you must first invent the universe.")
I perceive a spectrum of control over one's computing, from most to least control (not exhaustive, with appropriate nuance and gradation):
Inventing the entirety of the hardware and software that one uses
Using strictly open source software on readily available - but closed - hardware (gNewSense is one Linux distro that is 100% Free Software)
Using software and hardware that is run entirely from computer systems under one's control (i.e. no reliance on any computers - even on the internet - that one does not have absolute authority over)
Using software and and hardware that one can make backups of and install without an internet connection (i.e. now allowing reliance on the internet for some functions, though not mission-critical - using an Android phone as a computer might fall into this category as one doesn't necessarily need to use it as a phone)
Using software that requires an internet connection to a fixed set of servers not under one's control (e.g. activation servers needed for things like Microsoft Windows and Office)
Using software that requires a constant internet connection to use, even software that could otherwise operate without the internet (e.g. single-player video games that require a constant internet connection)
Using some software that is hosted entirely remotely (i.e. true software as a service)
Using entirely software as a service (i.e. computing 100% in The Cloud)
Using entirely software as a service on borrowed, proprietary hardware (e.g. a leased or borrowed computing platform that interfaces entirely with the internet with no local software or storage)
Right now, 1, 2, 9, and 10 are unreasonable for many people and organizations. Most people will be in the 3-8 range, depending on their specific needs (both for capabilities and finances). Right now, with my reliance upon Google's Gmail, Voice, Calendar, etc., I think I fall into the 8 range. I'd like to be able to get down to the 5 range for all possible things (recognizing that I will still rely on the vague concept of 'The Internet' to exist and facilitate things such as email and other network services). Even if I don't operate at level 5 and continue to operate at level 8, I want to have a technology exit strategy that will allow me to rapidly and without much loss of functionality and simplicity transition to level 5. This involves identifying alternative ways of doing whatever computing is necessary and understanding ways of transitioning one's data into them. (e.g. Google Takeout is a service - out of the benevolence of Google - that allows one to export one's data from Google's services and this could be used to transition data, but alternate strategies should also be found.)
Identifying alternatives and their limitations is no small task. I don't expect that I will achieve this overnight, but I hope that I will be able to find offline, open-source alternatives for (nearly) everything I use. If not, I will accept the limitation and plan accordingly. Some things may rely in principle upon running my own servers (e.g. hosting this website and email servers from my own computers). This may be practically unreasonable, but is technically possible. (Of course, I still need to rely on external DNS servers for the domain name to resolve...)
If Microsoft stops developing software, I can continue to use Windows 7 and Microsoft Office on my laptop indefinitely. I'm okay with having physical copies of software that is functional today, even if it is no longer developed and irrelevant in the future. (I could still install Word Perfect on DOS and use it to its full potential. Not practical, but could be useful in some nightmare scenario.) In the near future I'll do my best to identify where I rely on other companies and services and what alternatives exist. When I do, I'll post them. For now though, I just need to internalize the fact that The Cloud will not always be there, and that reliance upon it is a recipe for disaster. This may seem obvious, but it really hits home when services that one uses cease to be. (This is like backing up data. Go backup your data! Don't wait to lose it all!)
With the winter holiday I returned to my lazy, non-blogging habits. A New Year's resolution did little to change the situation. I suppose one just jumps in, though. I'll try to keep up with things more this semester. Really.
Plans for this semester
I'm currently taking a seminar on statistics education and an introductory course on qualitative methods. While the former is clearly my area of interest, the latter is proving to be more enjoyable than I had anticipated. One of the books for the course is Crotty's The Foundations of Social Research: Meaning and Perspective in the Research Process which is a bit more abstract than I was expecting, focusing on epistemologies and theoretical perspectives. It is a refreshing change, and I'm currently working my way through Feyerabend's Against Method after having my views on post-positivism challenged. (They seemed to be most aligned with Popper before this academic year.) Other plans include a trip to San Diego for LOCUS-related things and In-N-Out Burger, insha'Allah.
Dealing with Protected/Secured PDFs
Occasionally I'll come across a PDF that is Protected/Secured (it says 'SECURED' in the title bar of Adobe Reader) which are rather annoying to deal with. I've been using Mendeley to organize the articles/books I've read, and I copy the abstract into the software so that it can be searched. Alas, one journal whose articles I often read secure every single PDF so that copying cannot be done. Really frustrating.
Thankfully, this "secured" state is not encrypted or password protected. From what I gather, the state is determined by setting a bit in the file to disable certain features and Adobe, upon finding this information, respects the file's instructions. Not all software respects the file's instructions, and those that don't allow copying without issue. Two such readers are Evince (part of GNOME) and Okular (part of KDE). Both are open source, and both at least have options for disabling the DRM on the files. They are also both available on Windows (as well as many other platforms and are exceedingly common on Linux); if you're just looking for a quick download on Windows, Evince might be better. Either way, problem solved.