Tag Archives: OpenSource

Jazda

I recently discovered jazda, which is a hackable bike computer. Well, actually, right now, it is a smart watch with a half-finished bare-bones core app that wants to become a biking app when it is grown up. You need to compile your own rust-based operating system and flash it using an STLink 2.0 pluged into a SWD breakout board dev kit, plugged into the charging cable, attached to the watch. So what can possibly go wrong? 🙂

The devkit arrived quickly, containing the Bangle2js watch, a STLink 2.0 and the breakout board to connect the STLINK to the charging cable and a few stickers. Do NOT expect a manual yet!

In this post, I am going to describe the steps to setup jazda, based on my first experiences.

Install required things

  1. You will need tockloader to flash things to the watch.
    I just installed it as regular user (python setup.py install --user), ideally one could do this in a container or python venv to avoid polluting your local python modules. The upstream tockloader did not know the board name(?!), TODO: check out if/why upstream tockloader is not sufficient.
  2. The example app later requires python3-z3, so install that from your package manager or via pip, if you want to run the test app.
  3. You need openocd (which is used by tockloader) to do the actual flashing. The version in Debian testing/bookworm (0.11.0-1(?)) was sufficiently up to date.
  4. You need to install the stlink-tools (otherwise, openocd produced a Error: libusb_open() failed with LIBUSB_ERROR_ACCESS error message). The reason is that this adds udev rules that permit any user in the plugdev group to do flashing to the STLINK without being root.
    Note: restarting udev and re-plugging the stlink is required to make use of the added udev rules.
  5. Install rust (which is required for all the compiling)
    I first installed rust-all and rust-src on my Debian testing, in order to avoid the rustup script. (I just don’t like to cheat on my package manager).
    After failing with the rust version provided by the Debian package manager, I uninstalled everything and locally installed rust via rustup for my user. (sorry package manager, I hope you’ll forgive me!)
  6. just is a command line something (similar to make, but less powerful). Debian did not have a package ready, but cargo install just provides it to you. You need it to build the jazda Core app.

Compile and flash the tock kernel

  1. Compile the tock kernel
    The board setup is described in https://framagit.org/jazda/tock/-/tree/flashil/boards/nordic/sma_q3
  2. Just run make in the directory boards/nordic/sma_q3.
  3. This resulted in the file:
    a907d5297a74f999bb98f860151a1dea87c021b3cf9fa247f7fae299615b88c2 target/thumbv7em-none-eabi/release/sma_q3.bin
  4. I then issued make flash with the STLINK plugged in and the running watch attached.
    This flashed the file sma_q3.bin to the watch. and output a success info on the terminal.
    There was NO change of the display in the watch which continued to show the time, and the display simply froze dead. (not even 30s button pressed will cause any reset or anything) You might be forgiven if you believe that you just bricked your brand new watch. Your watch is running the tock kernel, but does not do anything useful yet. The next step is to compile and run an example app, so see if things worked out.

Compile/run an example test app

So, next I compiled the libtock-rs sample app (note: you need python3-z3 installed for it, see requirements section above!). The jazda wiki explains how:

cargo install elf2tab
EXAMPLE=leds make nrf52840

If that succeeds, flash it and run it:

tockloader install ./target/thumbv7em-none-eabi/release/examples/leds.tab --board sma_q3 --openocd
tockloader listen --board sma_q3 --openocd --rtt

This made the watch blink and vibrate until I killed the app with ctrl-c.

Once you are sure, it worked great, you need to uninstall the example app, or you’ll end up with a full memory and you’ll be unable to install anything else.

use tockloader list –board sma_q3 –openocd and tockloader uninstall –board sma_q3 –openocd to remove apps.

Compile and run the real jazda “core” app

Now on to the real application. You need two repositories checked out in the same directory: Core, yanp. libtock-rs (yes, the one from the sample app above will be automatically checked out and build as part of the Core build process, so it is not needed to keep around anymore).

Before compiling succeeded, I needed to add the thumbv7em-none-eabi target to rust. That went like this:

rustup target add thumbv7em-none-eabi

If you have just installed (see requirements section), it will be as easy as entering the “core” repository and issueing

just build_bin map

If all this goes well, you’ll end up with an app as: target/thumbv7em-none-eabi/release/map.tab

To install the app, connect your watch, and try to install the app

tockloader install target/thumbv7em-none-eabi/release/map.tab --board sma_q3 --openocd

and starting the app worked by issueing:
just listen
which is just a shorthand for:

tockloader listen --board sma_q3 --openocd --rtt

jazda running in its full beauty! I have walked 0 decameters with it yet.

once, it runs, just unplug the charger to keep the maps app running. To “stop” the app, connect it again, tockloader listen and interrupt with ctrl-c.

See the elaborate bike holder? Themal insulation for hot water pipes works extremly well

This will display a map. There is also an app called “speed”, it is compiled and installed the same way as the map app.

0:1 for LibreOffice

I love LibreOffice. In combination with Zotero, it serves me well writing academic articles. Until…. I have to share documents with Non-LibO-using collaborators. Unfortunately, there are still a few of those out there.

Recently my wife told me, she wants Windows and WinWord back, after she lost a few hours of work due to incompatibilities.

I feel that LibreOffice does not get its priorities in the right order. Sure, code cleanup and all that is good. But LibreOffice seems to be mostly thinking in terms of (new) features. Blogs show impressive feature comparison checklists with competitors, such as this one by M. Meeks. The Wiki compares features with MS Office, and each release sports an impressive release note visualizing cool new stuff. But for those poor souls that try to hold out against the MS Office fortress the most important feature is reliable interoperability with .doc and .docx formats. This is tedious and boring work and hardly leads to flashy release notes. Yet, for me -and I would wager many others out there- this is the most important thing, LibO can offer.

It is not a matter of life and death, but students have gotten marks deducted as LibreOffice had introduced spurious superscript in a file when saving as .doc.

About half of the files my wife saves as .doc or .docx refuse to open on her colleagues’ MS Office versions (bug 45983). No one seems to know why. All embedded OLE objects, such as charts or spreadsheets are physically lost from the file when saved by LibO as .docx file (bug 51550), an issue that has bitten me bitterly. And when opening a not so complex .doc file, a table was simply missing in Libreoffice (bug 54430 which led my wife to waste quite a few hours, because she first did not notice the lack of the quite crucial table. (and had to track down another version of the file which turned out an obsolete version). To cut a long story short: my wife wants me to install Windows and WinWord, although she prefers LibreOffice’s UI. I am sorry, but I can understand her. 0:1 for LibreOffice.

Don’t get me wrong, I am grateful for all the work that is being done in and around LibO, and I know about the difficulties of reimplementing a reverse-engineered file format that is handled differently by different MS office versions. The blame lies squarely with Microsoft for not being open here. Yet, I feel that rather than hunting for new features to check of, more effort should go towards those poor souls that actually have to read documents that other people have written and the other way round.

Want a Carrot?

More than 4 years ago we embarked on a journey to examine the Motivation of Open Source developers in a more holistic fashion, considering Open Source as a Social Practice rather than focus on the common intrinsic/extrinsic distinction.

It has been a longer journey than we had planned, but it finally paid off. This June issue of MISQ contains the final article, so it is officially out. If you are interested in Motivation research in OSS communities, read (preprint here), comment, and cite :-):

von Krogh, Georg; Haefliger, Stefan; Spaeth, Sebastian; and Wallin, Martin W.. 2012. “Carrots and Rainbows: Motivation and Social Practice in Open Source Software Development,” MIS Quarterly, (36: 2) pp.649-676

Carrots and Rainbows

Around 4 years ago, we started working on a paper that contained a literature review on individuals motivation to contribute to open source software, concluding that the frameworks being used were too narrow to capture all aspects of what was happening. We concluded that open source software development needs to be seen as a social practice, and created a framework that will allow a more holistic exploration of the interplay of motivations, practices, and institutions supporting (but also constraining and corrupting) OSS. The framework draws on the work on Social Practices by the moral philosopher McIntyre.

We submitted the article to MISQ, and 3 years and four(!) major revisions later, we just got accepted. The editors and reviewers were giving us a hard time, but they also helped to improve the paper significantly as a result of the hard work that was put into it.

May I proudly present:

Carrots and Rainbows: Motivation and Social Practice in Open Source Software Development

by Georg von Krogh, Stefan Haefliger, Sebastian Spaeth, and Martin W. Wallin

The preprint abstract is available online on this website, if you are interested in the full paper, let me know.

Abstract

Open source software (OSS) is a social and economic phenomenon that raises fundamental questions about the motivations of contributors to information systems development. Some developers are unpaid volunteers who seek to solve their own technical problems, while others create OSS as part of their employment contract. For the past 10 years, a substantial amount of academic work has theorized about and empirically examined developer motivations. We review this work and suggest considering motivation in terms of the values of the social practice in which developers participate.
Based on the social philosophy of Alasdair MacIntyre, we construct a theoretical framework that expands our assumptions about individual motivation to include the idea of a long-term, value-informed quest beyond short-term rewards. This “motivation–practice” framework depicts how the social practice and its supporting institutions mediate between individual motivation and outcome. The framework contains three theoretical conjectures that seek to explain how collectively elaborated standards of excellence prompt developers to produce high-quality software, change
institutions, and sustain OSS development. From the framework we derive six concrete propositions and suggest a new research agenda on motivation in OSS.

UPDATE: And it is finally officially out in this June issue.

Groklaw.net shutting down

Oh no, my favorite legal SCO versus Linux research website
http://groklaw.net is shutting down in May.

I’d like to thank groklaw for the service it has provided, in the form of documents, facts, transcripts and analyses sprinkled with PJ’s witty humor. I’ve enjoyed reading groklaw as much as I enjoy reading http://LWN.net.

Personally, I don’t care whether PJ is a woman, men, or a pseudonym for the whole legal department at IBM (or wherever) :-), but I have deep respect for what PJ has done and achieved. Judging from some of the attacks she had to endure over the years, I find it understandable that she chose to remain anonymous.

Is it a spoon? Is it a fork? No, it’s LibreOffice!

The newly founded Document Foundation announced their existence on Tue, 28 Sep 2010. Their first product is LibreOffice, a version of OpenOffice.org, which is released under the LPGL v3+ license.

Contributor statistics

Contributor stats ©Michael Meeks

What are the reasons and — heatedly discussed — is this a fork or not? Let me discuss some of the background and give my own layman interpretation of what is happening. Even back in 2008 Michael Meeks was looking at the contributor statistics, finding that Sun-external contributions were comparatively small. In the graph, you see around 30 active Sun Microsystem contributors, and between 4-8 external contributors. That can be interpreted as a sign of tremendous commitment by Sun (which has been significant all the time), or as a failure to mobilize external contributors. After all, this is 4-8 active external contributors when the Office Suite is the killer app next to a web browser and email application for most office workers! I have not checked the development in 2009/2010, but I don’t expect that things have looked much different.

Micheal Meeks and others blame that on "enormous groupthink", but also on the fact that Sun, and now Oracle, requires Copyright Assignment for all code contributions, so they can sell proprietary versions of the office suite, while others cannot. This prevents some companies employees from contributing and is a disincentive for many individuals too. (e.g. University employee’s code often is automatically copyright to the employer, and they cannot transfer their copyright). Anyway, the end result is that Sun, now Oracle, never played on one level with other contributors, which is what they had promised from the very beginning.

In their original press release on July 2000 , Sun had stated:

[…] In addition, Sun also announced today the new OpenOffice.org Foundation, which will initially be modeled on other successful open source projects and will consist of a project management committee, source code maintainers, and developers. Sun will hold a equal membership position in the OpenOffice.org Foundation project management committee. […]

That foundation has failed to materialize until today, and so has the equal membership position. As I am not familiar with the core (people and processes) of the Documentfoundation, I can’t comment on how it came about, but they announced their existence, emphasizing that they see themselves as part of the OpenOffice.org community, implementing the decade-old promise of Sun of a level playing field, doing away with Copyright assignments, and at the same time, lowering the barrier of entry for prospective developers.

Given the surprise that many showed, the process seems to not have been handled very transparently. Oracle was "invited" to join the new foundation and help to shape it, ideally donating the OpenOffice.org trademark to the foundation, however it seems that there was little discussion going on informing Oracle about specific plans beforehand.

So far so good, the have been 3 (related) contagious issues which are heatedly discussed:

  1. Is LibreOffice a fork or rather than the natural further-development of OO.o? As in, the same thing, the same community, with just a different name?
  2. Does the OO.o community also represent LibreOffice users, ie can someone be on the bouard of the OO.o community council and at the same time be in the board of the Document Foundation?
  3. This leads to a bad fragmentation of the Office suit developers and should be avoided at any price.

As somewhat sensationally reported on Slashdot does the Community Council of the OpenOffice.org project expect people (lengthy IRC meeting minutes here) with a role in Libreoffice to step down due to conflict of interests. Oracle proponents state, that there obviously is a conflict of interest, as the 2 projects were effectively competing now. Most TDF proponents were trying hard to emphasize the fact that the project were not competing, and Oracle were still invited to join, and that there is no conflict of interest as both organizations goals were congruent.

So what is my take on it?

1a. It is a fork, let’s get over it. The organization’s goals are the same, and the software might be the same, but the means to achieve that are very much different. If this is not a fork than gcc/egcs, xf86/xorg, emacs/xemacs were no forks either. The "but we invited Oracle to join" argument doesn’t count, gcc adopted back the egcs code base later as well, and it still was a proper fork. So even if Oracle joins in the fun and starts using LibreOffice as code base, this would have been a fork.

Was this fork necessary? In my opinion yes. As former Chief Open Source Officer at Sun Microsoft put it: "If the company sponsor stands still and the community moves on, who forked?" I sincerely think that Sun/Oracle is holding back the potential that the Office Suite could have. I have the highest respect for those currently involved on the Oracle side of things and I don’t think any of them is at fault, but the current OO.o project governance structure is killing of external contributions. Leading to the situation where Oracle has to contribute nearly all of the source code.

Does this mean there can be no cooperation? Heck no, "competing" implementations inspire each other in the FLOSS world all the time, and both project rally around the .odf format. So there is plenty of room to collaborate anyway.

1b. There have been arguments that this belittles Sun/Oracle as a contributor, showing disrespect of the enormous amount of code they put into the code base. The code is certainly huge. Including comments about 8m lines of C++ code and 410k lines of code of Java plus various other stufff sprinkled in. This compares roughly to the whole of the linux kernel which wheighs in at approximately 13m lines of C code (for 2.6.35). But this is a two-sided sword: If Sun were more open, they propbably would not have to contribute all the code themselves. This is a huge project, and having to bear it on ones organization shoulders’ is an incredible task, especially when directly and openly competing with Microsoft’s office cash cow.

2. As for the conflict of interest, this depends. A conflict with the OO.o community council? Certainly, now that the three indedependent members have been asked to step down, the council will be 100% composed of Oracle employees. That doesn’t make these employees and contributors bad or ruthless, but it makes it an enlarged-arm of Oracle, rather than representing the community. There is effectively no independent user community anymore. And with that council, an independent member is certainly at a conflict of interest. Are there conflict or interests with things like http://www.oooauthors.org? I don’t think so. The code base is still mostly the same, the UI is still mostly the same, and the templates can be used for both office suites. There should be plenty of collaboration and dual board-membership between those sites. (Dual board memberships are quite common in the business world).

3. Does this lead to Office developer fragmentation?
It is true, that the amount of direct code reuse will probably decrease over time as the code bases diverge. But at the same time the current governance style prevented many contributions from being taken, and everyone had to maintain their own little stack of patches, leading to increased fragmentation. Redhat, Debian, all had maintained and applied their own set of patches on top of OO.o. It is also a well-hidden secret that most people using OpenOffice.org on their Linux-desktops were not really using OpenOffice.org but rather http://go-oo.org (wikipedia entry) which collected up to 800 patches on top of vanilla OpenOffice.org. Distributions, such as Debian, Mandriva, openSUSE, Gentoo and Ubuntu have been using some or all of the Go-oo patches for quite some releases. Being able to merge these patches into the proper code base and also integrate those of, say, Redhat, actually might lead to less fragmented development that it had been before.

I wish LibreOffice all the best, and do hope that Oracle joins in the fun as one among equal as the year 2000 press release had promised. The intransparent process and the hot blood that had been shed in the mean time might make that much more difficult and the blame does not squarely lie on one side or the other here, but it would be the logical and correct thing, in my private opinion. Look at Eclipse and the Eclipse foundation for one example how things might work out in the long run. Oracle should get credit for what they have contributed to the free and Open Source world.

P.S. Blog title unashamedly ripped off some quote in the LibreOffice IRC channel.
P.P.S. Thanks wiz for pointing out the incorrect license, fixed now.

US Dep of Defense on Open Source

LWN reports on an analysis by David Wheeler on a new memorandum from the US department of defense.

Main takeaways (emphasis mine):

  • “In almost all cases, OSS meets the definition of ‘commercial computer software’ and shall be given appropriate statutory preference…”
  • the DoD is “required to conduct market research… [and should] include OSS [in the research] when it may meet mission needs”.
  • if you use a binary program, you must either have a warranty or the source code for a program.
    I do wonder how this confirms with eg any standard Windows EULA whose warranty is restricted to damage payments of … 5$ or so?
  • “To effectively achieve its missions, the [DoD] must develop and update its software-based capabilities faster than ever,[…]. The use of Open Source Software (OSS) can provide advantages in this regard…”.

It seems the Department of Defense has understood Open Source better than many companies…

OOXML specification full of XML errors

How can you accept a standard where even the document containing the specification doesn’t adhere to it?

A test of the docx file that contains the OOXML specification revealed 122,000 XML errors.

The European Commission started to examine the process that led to the acceptance of OOXML as an ISO standard. Meanwhile the German Foreign Ministry refuses to accept OOXML as a standard. So it’s clearly not only geeks that are concerned.

Found via prolinux.de.

Mephistopheles on the meaning of words

The Lord:

"mankind's activity can languish all too easily,
A man soon loves unhampered rest;
Hence, gladly I give him a comrade such as you,
Who stirs and works and must, as devil, do."

Mephistopheles:

"Quite true!
But don't torment yourself too anxiously;
For at the point where concepts fail,
At the right time a word is thrust in there.
With words we fitly can our foes assail,
With words a system we prepare,
Words we quite fitly can believe,
Nor from a word a mere iota thieve."

(Denn eben wo Begriffe fehlen,
Da stellt ein Wort zur rechten Zeit sich ein.
Mit Worten läßt sich trefflich streiten,
Mit Worten ein System bereiten,
An Worte läßt sich trefflich glauben,
Von einem Wort läßt sich kein Jota rauben.)

(Goethe Faust)

“Nor from a word a mere iota thieve.” Talk serves well to attack concepts that are yet unknown. Does it correspond to: “Talk is cheap, show me the code!” in Open Source?

UPDATED posts a little in 2011