Category Archives: technology

Reflections on learning Rust and violating copyright law

A year ago I attempted to learn Rust, a new systems programming language created by the Mozilla Foundation. I learn new computer languages not because I get any practical utility out of them, but rather because I find computer languages to be inherently fascinating. Studying a new language is like reading a profound work of philosophy. It makes your mind expand with the possibilities and stretches you to think in new ways. At my job in ProcessMaker, Inc., I occasionally learn a new trick or two from reading PHP and JavaScript code, but those languages no longer stretch the horizons of what I already know.

On the other hand, I still fondly recall how my mind was blown by the concepts I learned when I first learned programming. It was my senior year in college and I picked up the book, the New C Primer Plus, 2nd Ed. by Mitchell Waite and Stephen Prata while Christmas shopping in 1995. I stumbled across it in Circuit City on the bottom shelf below all the shrink-wrapped software. I recall that it was sitting all alone on the shelf–all the other things around it had been snatched up by the Christmas rush. It was a throw-back to the time when learning how to use a computer still meant learning how to program it, but most people rushing through Circuit City had overlooked it. At the time, people told me to learn a newer language like Java or Visual Basic, but I had become fascinated by how computers work, and wanted to learn the gritty details of a low-level language like C. I spent the next 3 weeks reading 700 pages of code examples in utter fascination. The book taught me dozens of new concepts. At the end of each chapter, there were exercises to do as homework. Since I didn’t have a C compiler, I wrote out my code examples with pencil and paper, not really knowing if they worked or not, but simply enjoying what I was learning. 
Continue reading


How “open” is open source business software?

I have worked for ProcessMaker, Inc. since 2009, mainly because the company allows me to work part time with flexible hours, but also because it develops free/libre/open source software (FLOSS). The core of ProcessMaker comes with an open source license, the AGPL, but the company has never functioned like an open source project. The development is almost exclusively behind closed doors. We have a public bug tracker, but the bugs get fixed in a private bug tracker, so the community can’t see when their bugs get fixed. We have no beta releases for public testing of the software. Anyone who downloads the software can play with the PHP and JavaScript code, so we get a couple dozen bug reports or forum posts per year that contribute bug fixes and new features, but there is very little community involvement in the development of the software, aside from bug reports and posts on our forum.

The open source license is great for marketing and helps attract new users. I love the fact that ProcessMaker allows anyone to change the code, because it gives me great flexibility when I answer people’s questions on the public forum, which I have maintained since 2009. When people encounter a bug or need a new feature, I can tell them to go to line 1205 in workflow/engine/classes/class.pmFunctions.php and change the source code to fix it. I try to answer people’s questions on how to hack the source code and develop plugins for the software, but I’m not a core developer, so my knowledge is limited.
Continue reading

Questioning the benefits of Bitcoin and cryptocurrencies in general

When I first learned how Bitcoin worked, I thought it was a marvelous technology. Today, I am growing increasingly pessimistic about Bitcoin. The environmental costs of Bitcoin mining are very high when we consider the resources to fabricate millions of specialized chips and circuit boards and energy to run them. Moreover, Bitcoin can’t adjust its money supply, so it is highly prone to inflation. Although the number of Bitcoin transactions has stayed the same over the last year, the price of Bitcoin has skyrocketed, which makes it an unacceptable currency in my opinion.

Like many new technologies, it takes a while to find all the potential problems and design a blockchain technology that is capable of serving as a stable, widely-accepted cryptocurrency. Unfortunately, Bitcoin is stuck in the first iteration of the technology and it can’t evolve. I have no doubt that it will continue being used, but better cryptocurrencies are being designed and one of them will eventually take Bitcoin’s place as the premier cryptocurrency. Continue reading

Choosing the perfect laptop for programming

People who buy laptops for computer programming are often very picky about their hardware and generally have strong preferences about their type of machine. Some like a laptop which is thin and light, like a Macbook, and others demand a 7 row Thinkpad keyboard. People who spend hours using a machine for many hours a day tend to form strong opinions about it, especially if it is their job to understand how that machine works. Many programmers know exactly what kind of machine they want to work on, and it drives them nuts to use another type of machine.

If you are one of those types of people who already knows exactly what you want in a laptop, then you can ignore the rest of this essay. In fact, you should stop reading now, because the recommendations that I give will probably annoy you. If you like something different, this post will grate on your nerves and you will have a compelling urge to tell me why I am not only wrong, but also brain damaged, or at least slightly addled in the brain. If you have these urges, then you are passionate about your hardware, which is why you became a programmer in the first place. I understand, because I am cut from the same cloth.
Continue reading

Can the new Firefox Quantum regain its web browser market share?

When Firefox was introduced in 2004, it was designed to be a lean and optimized web browser, based on the bloated code from the Mozilla Suite. Between 2004 and 2009, many considered Firefox to be the best web browser, since it was faster, more secure, offered tabbed browsing and was more customizable through extensions than Microsoft’s Internet Explorer. When Chrome was introduced in 2008, it took many of Firefox’s best ideas and improved on them. Since 2010, Chrome has eaten away at Firefox’s market share, relegating Firefox to a tiny niche of free software enthusiasts and tinkerers who like the customization of its XUL extensions.

According to StatCounter, Firefox’s market share of web browsers has fallen from 31.8% in December 2009 to just 6.1% today. Firefox can take comfort in the fact that it is now virtually tied with its former arch-nemesis, Internet Explorer and its variants. All of Microsoft’s browsers only account for 6.2% of current web browsing according to StatCounter. Microsoft has largely been replaced by Google, whose web browsers now controls 56.5% of the market. Even worse, is the fact that the WebKit engine used by Google now represents over 83% of web browsing, so web sites are increasingly focusing on compatibility with just one web engine. While Google and Apple are more supportive of the W3C and open standards than Microsoft was in the late 90s, the web is increasingly being monopolized by one web engine and two companies, whose business models are not always based on the best interests of users or their rights.
Continue reading

Am I willing to pay the price to support ethical hardware?

There are a number of pernicious trends in the tech industry that need to be opposed. Over the last decade there has been a massive shift toward planned obsolescence, ever since Apple introduced the iPhone in June 2007 and the Macbook Air in January 2008 with sealed cases, non-replaceable batteries, RAM and SSD soldered on the motherboard and a lack of expansion slots.

Apple’s designs have been widely copied by the consumer electronics industry, so that it has become much harder to fix and upgrade electronics. Most ultrabooks, Chromebooks and 2-in-1 convertibles being sold today have copied Apple’s Macbook and no longer have replaceable batteries. Even brands such as Lenovo’s Thinkpad and Dell’s Latitude which are marketed for their fixability and ease of maintenance are now offering models such as the Thinkpad T470s and Latitude E5450 without removable batteries. Continue reading

Questions about how to reform the electronics industry

A friend of mine asked me why I wrote a recent post about how capitalism has failed to produce a smartphone that I want to buy. Don’t I know that a socialist economy would produce far worse phones, so why am I complaining? Consumer electronics wasn’t exactly a strong point of the Soviet block countries or Maoist China.

I don’t want to live under pure socialism or pure Capitalism because they both lead to too much concentration of power in too few hands. Both are lovely in theory but both lead to dystopias in the real world, especially when practiced in their extremes. However, the vast majority of the world lives in a mixed economy. The real question in almost every society is what areas of the economy should be socialized and what areas should be run by private enterprise which are subject to governmental regulation and what should be the degree of that regulation.
Continue reading