free media alliance newsletter, issue 01

free media alliance newsletter

issue 01
november 2018

welcome to the very first issue of the free media alliance newsletter!

hopefully this will be brief, bring you up to speed on what this organisation is doing, why its doing it, and what it could be doing in the future– perhaps with your help.

a reminder that we do not take monetary donations, only those of freely licensed works and links to freely licensed works, and it is free to become a member.

===== membership and initial establishment

on that front, our organisation has thankfully grown since we were founded in july: — read this if you think you might wish to join us.

we have a charter, we have a very conservative list of recommended licenses: as well as a growing library of works you can use, study, change and share freely:

the search for these works is not always as easy as you might think, and a lot of time so far was spent searching for works you might appreciate, with licenses that give you more freedom than average. a free-as-in-freedom library of works is one of the main reasons we are here, though it is definitely not the only reason.

===== identifying and exploring problems in the “freecosystem”

the alliance was started to explore and hopefully help solve a number of problems in the free/libre ecosystem, including free software, free culture and free hardware. these problems are talked about initially in our charter and further in our free media ebook: which also explores some of the things the alliance could do to address these issues.w

we arent here just to proclaim that there is room to grow; to be fair, a lot of the claims we make get bounced against the very people and organisations we discuss the accomplishments and sometimes shortcomings of, as a way of checking our work. here are some of the things we may have confirmed (at least to someone):

1. systemd is still a problem, and is still being worked around by many people. people once asked, “why doesnt devuan work with debian to solve the problems they have?” just that is now likely to happen as sysvinit is worked on to preserve it as a choice in debian itself– not because it is the best init, but because there isnt one. new distros that reject systemd are continuing to establish themselves, based on debian and devuan, as well as arch. since july, ibm has purchased red hat, and people are naturally curious what that means for the future of systemd.

either way, the position of the alliance was already that systemd will not be the last problem like it– it is an eee tactic, eee tactics have a long history, and there will be other eee tactics that fly under the radar of the fsf while individuals and smaller organisations are left to pick up after the problem whether the fsf speaks against it or not. we have spoken to rms about the issue, explained “redix” and even described it as an exploit of a vulnerability in free software itself.

this is not the first vulnerability or exploit in free software though– the fsf does recognise the exploit they dubbed “tivoisation,” which attacked a vulnerability found in version 2 of the gpl that was patched in gpl3.

2. the fsf is stifled by the fsdg, but not completely

we continue to explore and work around the ways in which free software is stifled by the free system distributions guidelines, which are not treated as guidelines but are applied as hard rules. this is at a time when the fsf has just released a new set of actual guidelines for communication within official gnu projects, which are likely a welcome step forward from the sort of code of conduct we have expressed reservations about in an essay entitled “it is your community”:

to be perfectly clear, these new fsf “kind” guidelines are a step forward from a code of conduct in theory, theyre very new, it will take time to find out how they play out. the foundations fsdg on the other hand, not to be confused with debians dfsg, has resulted in a decade-old bug in linux-libre that we continue to explore and look for solutions to. this isnt new work, the linux-libre team has spent years making calls for such an improvement– here is one more effort to call attention to it.

of greater concern is the amount of stifling there is of community itself. the fsf offers a members only discussion platform, which to make matters worse, now use the obsessive micro-managing, conversation-shaping platform known as “discourse,” which devuan used from early on but finally killed because perhaps it was almost universally hated. (is this an exaggeration? or does anybody actually miss it?) some fsf-related projects (or projects hoping to be fsf-related) are allowing discussion within the narrow fsdg guidelines, but the result is people talking around the actual issues when they want to discuss them, which is exactly how people would talk about things if they were being monitored and stifled in an old eastern european regime.

of course in theory, its reasonable to have guidelines for how to represent an organisation. the fsf extends this to distros that wish to receive endorsement. maybe thats going too far, maybe it isnt. the effect on discussion is notable either way.

it is worth pointing out however, that if you have heard complaints about this before, the reality isnt necessary as bad as your expectations.

3. the free software movement does need a big push, but it is still moving forward

when our organisation was founded, perhaps the worst thing that we considered was that the fsf was ignoring and even dismissing the problem of systemd (and the broader issue of redix.) there is now a 40-page open letter / “book” written to the free software movement in particular:

the book covers future directions the organisation can move in, the (mostly negative) roll that trolls play online (though i would include some established authors in the tech press, which seems to always lean heavily towards the corporate shill factor) and an outline of what redix is. but for those familiar with the problems with systemd– redix is “everything like that.” while systemd is basically the redix flagship., for example, is heavily influenced by red hat, which was just purchased by ibm. what should we expect in the future from them? for that matter, how heavily will ibm get into gnome?

the book calls, as we do, for everyone to learn how to code. this may not turn you into a career software engineer or kernel hacker, though the amount of coding we recommend to everyone is to at least understand variables, input, output, basic math in program routines, loops, conditionals and a rudimentary understanding of function definition and function calls. a working, if introductory understanding of these 7 or 8 concepts (lets lump the ones related to functions together) prepares people far better to understand the digital world we live in.

when we started teaching grade-school-level science, not to mention when we started mass-publishing the bible in english without permission, these were acts that disrupted a relative monopoly on reality enjoyed by the church. the church still has a very large amount of say in what some people think, but thanks to teaching science to everyday people (and not just future scientists,) a much larger swath of the public is informed enough to critically examine the claims of whatever church they belong to.

today, with people that only understand computers in terms of application use and purchase, a limitation which solely benefits tech companies at the expense of the general public, a company can come along and do all sorts of invasive things to consumers. until there are enough scandals, which will still contain enough technical information that someone has to present the story in a way that the public can be upset or understand some of whats going on– the tech companies can largely put any sort of process into a “device” and make its workings mysterious or foreign to the person using it– all except for whatever interface the company provides.

here we have the device as intermediary, the marketing department as the clergy, and the developers (developers! developers! developers! developers!) as the mysterious hands that can give the user power– and also take it away.

to repeat the progress created by offering science as an alternative view– with sympathy to religion insomuch as it should be allowed to exist, but unsympathetic to any misconstrued “right” for it to behave as a monopoly– the same is true of tech companies. but to disrupt such monopolistic holds on the public, we need to be teaching introductory computer science in schools. we do not need to produce a new army of c# developers, but teaching the basics of coding is arguably the shortest (and friendliest) effective way to help people understand how all their devices work.

education has tinkered with many other abstractions over computing, but coding is the one that is actually meaningful and useful. certainly at a college level, teaching the design of algorithms might help further– teaching “computational thinking” or logic could supplement a class that introduced basic computer science. but these are either enrichment that goes beyond the basics, or ways of teaching a subject while simultaneously avoiding it, due to a fear that something has to be complex.
coding is something with direct and more immediate relevance to the world we actually live in, and it can be taught and demonstrated in a way that it is perfectly clear these arent just theories and abstractions for their own sake.

when the fsf talks about free software in education, they are probably talking about getting free software into schools. in parts of the world where microsofts software is expensive and older computers are common, free software has an obvious advantage– it is better suited to such machines and to developing economies, which is probably why it is more common in some places.

why wait for that to happen? we could be setting up more classes and tutoring for students, whether they have good computer classes (or software at school that respects their freedom) or not. certainly there is an educational aspect to the free software movement, but it focuses so much on “you should use free software” and much less on “this is how computers work, this is how software works, this is how you can learn more about free software as a tool– not just a good thing to be part of.”

so one shift that our organisation pushes for is for free software to move further in that direction.

the book also talks about grey area gpl compliance, and hints at new strategies to deal with it. these would probably then move nicely into topics like distro-libre.

it also talks about free software moving past missed opportunities with free culture– a theme central to our organisations primary goals.

===== new horizons

since this second “book” was put together, there are new things to talk about and new avenues (at least not ones yet addressed by the alliance) to explore: hyperbola is a distro aiming to be fully free per fsf standards, but also takes a stand against systemd and things like software that compromises privacy. there are other organisations that free software could reach out to (and collaborate with) more, like the pirate party.

we probably need a free hardware foundation as soon as possible. certainly, when the free software foundation was started, there wasnt nearly enough free software. there is practically no free hardware, though we need an organisation that can focus on it more than the fsf gradually does.

not that there is necessarily any organisation doing a better job than the fsf about this– but there are so many developments in this area of progress, so many people working on this, and there is no organisation that is dedicated primarily to freedom (perhaps to open source, but we can do better) and primarily to hardware. it is just too important, as the lines between software and hardware (and the instances of problems they share) continue to draw closer together.

===== new directions for us

since establishing our charter, we have also explored some new ideas of our own: being remixable at the organisational level is one of them. the free media alliance is inspired largely by forks and respins and derivatives, and while allowing such things to happen at an organisational level seems like a good way to end up with a bad, rival organisation– the truth is, we could have that either way. offering free input into such a rival organisation is more than a seed for the competition– it is a foot in the door, an opportunity to say “of course theyre doing this part of what theyre doing right– they got that from us!”

but more than that, it is a more friction-less way to collaborate. we try to have some influence into what free software is doing, it is natural for other organisations to want to try to have some influence with us, or the fsf, or whomever they collaborate with.

we have removed some of the barriers and pretty much created an invitation with an essay simple called “remix us”:

above all, even if someone builds your new organisation for you out of a kit– that doesnt necessarily make it any easier to run or maintain. perhaps there is a way you can work on some of the same problems on your own time and incentive and direction, which is why we recommend starting off with your own freedom lab:

as it explains:

“one advantage of a freedom lab over an organisation, is you can do pretty much whatever you want. you dont need to do everything by committee. you become more like an organisation (not always a bad thing) when you start to represent a larger number of voices directly– you can achieve similar by collaborating with other labs or individuals with similar or related interests and goals.”

a freedom lab takes what you do as an individual, and puts it into a framework that can become associated with other labs or organisations. the most important aspects according to the essay are:

1. something you want to promote or help fix
2. writing some things down
3. trying out ideas (probably including some of your own)

and if youre doing stuff under any or our recommended licenses, we would really like to hear about it!

the “distro-libre” concept, which the alliance has touched on as something hypothetical and demonstrated in smaller part with single-distro remixes that are fairly easy to modify, has grown into a real application called “mkdlibre” which combines some existing automated remaster efforts with a couple of new additions. this now includes the ability to change the default init in the live isos for trisquel 8 and debian 9.5.

while predecessors of this tool avoided chroot for simplicity (a fine goal when the result is sufficient) mkdlibre does use chroot to modify a live distribution when it is necessary. to remove non-free firmware from devuan live, a change that triggers a repackaging of the initrd, mkdlibre goes so far as to copy the new initrd into the new distro staging folder, before including it in the output iso.

another effort that may help a lot with distro-libre, is ckyf, a rewrite-in-progress of vrms. unlike vrms, ckyf is intended to be multi-distro, utilise more than one blacklist, and even serve as an aid to people creating new fully free distros. we are aware of the reasons vrms was blacklisted by the fsf, and ckyf tries to address all of those reasons. it is a slow process, but whether any other organisation finds a purpose for it, we have one or two of our own uses.

===== a message about our goals

at the core of what we do, is a need to take multiple efforts towards greater digital freedom (as well as copyright reform and a very sceptical take on monopoly in general) and push these things closer together. it might be a very good thing that there is separation and autonomy between free software and free culture, but there also needs to be more advocacy for software freedom in the free culture movement– as well as straightening out any misleading practices that free software has projected onto free culture (there arent many.)

the goal isnt for everyone to get along, pretend to agree, or avoid differences. it is for people to be able to better recognise when others are working on things that strengthen our goals– and vice-versa, and to make certain those opportunities for an ideal collaboration are not missed or squandered.

hyperbola almost gets free culture, even if it bends to the arbitrary exclusions by the fsf on things that (like software) were free-as-in-freedom for most of history– until 1976, when they were drawn into ridiculous monopolies by default– and it is up to the copyright regime to prove the merit of its restriction (literally, per article 1 section 8 of the constitution) but the fsf defaults to verbatim copying (the closest thing to worthless a license can be and still grant you some freedom!) because it obviously sort-of-likes the absurd amount of restriction around it.

perhaps those maximalists and monopolists got something right 40-something years ago, or the fsf wouldnt be endorsing such restrictions on every page of their website– as long as its nothing to do with software!

if youre a member of the pirate party– hi. it would be great to hear your take on that.

we are constantly looking for more voices, more efforts towards freedom, more ideas. we encourage open collaboration and open discussion, whenever possible and remotely reasonable.

make us your own, and we will try to help represent your freedom. but if you dont talk to us– just talk. keep the message of freedom alive.

wishing you a fun and increasingly free 2019–

the free media alliance
“free software, free culture, free hardware”






why do i write code?

i try to encourage people to develop applications, or at least to figure out how– so dont think im being down on applications. but that said, applications have created this weird line between “using” a computer and “developing” programs.

code is communication; if you like flipping through a lot of icons and menus with your mouse or fingertip, i wont tell you not to– i clicked a thing in the browser that looked kind of like this:


just to start writing this post, right?

menus are great for teaching you key combinations, and sometimes theyre the easiest way to find (if not access) information. if you find yourself accessing the same menu over and over– there might be a better way.

ok, ok, ok– first: do what works for you. its cool.

but, if you are doing the same things every day, theres a good chance that a lot of it can be done “more automatically.” and by that i mean you can be lots more efficient and get lots more done.

sometimes. i mean like suppose i have files everywhere, cant find stuff, its in one of these folders…

find | grep part-of-name

what? ok, i mean just WINDOW-KEY, T *command window opens*

find | grep alex22

theres the file! i didnt open a single folder. i pressed two keys, typed three words, and it searched all my files and reported back immediately. and i didnt write any of that code, it was already installed.

but what about you windows users? ok, so i wrote a shell thats like “bash for beginners” (sometimes) or at least, thats a concept ive toyed with for a few years, because i want to know if its possible. the latest answer to that question is called alex and i talk about it on this blog regularly.

i started this blog to talk about fig and i still do (im talking about it now.) and fig is by far, the best thing ive ever coded. its a very very very useful tool to me, for both teaching and for my own use.

these are the best things ive coded in several years:

  • fig
  • fig os
  • alex

and what are they?

a programming language, a remaster script, a command shell.

each of these take care of many many things at the same time. and all that other stuff ive coded for fun? fig can do so much of that.

but what do these things have in common? what motivated me?

the best things ive coded were not things i set out to do as serious projects– they were written to answer questions that i had. i wrote them to find out “what would this thing be like? can this be done? can i do this?”

its understandable if you think i mean “i wrote them to challenge myself.” thats not so much it though– i often tried to write them in whatever way was easiest.

i didnt just set out to write fig though, ive practiced writing toy languages before– also for similar reasons– and i encourage people to write toy languages too, even if they dont know how.

(yes, its very doable. right, i get that you dont think so. you think its some magic you dont have. i know. its really not magic, people overcomplicate stuff and confuse enhancements with requirements.)

i consider fig a toy language, but its a toy language thats good for some serious jobs. why? because it lets me do them without making everything difficult.

one thing i wouldnt have tried in bash or basic or python is writing a remaster script. bash is too finicky and high-maintenance, python is too “syntaxy” and far-removed from the task at hand, and basic just doesnt have the array features that make it really easy for me.

each one of these truly awesome languages just suck for my own idea of how i want to write a remaster script. so i used mine. and really i would have never bothered otherwise– just too tedious.

now i have a custom distro that i can add whatever tools i want to, and run the thing, and voila: fig os. but thats not even why i bothered to do all that.

too big a task! are you kidding? fig os was way too ambitious (even in its modest accomplishments– trust me, theyre small!) for me to ever try to start working on. i dont have patience for that! maybe you dont either– hooray!

really i wanted to know if an old distro could be updated automatically, in a way that was less trouble (for me) than doing it by hand. could i automate that somehow? so other people could do the same thing by just running a program?

there were other programs sort of like it, quite a few, but none of them did exactly what i wanted. there was a really great program i used years ago called isomaster– always loved it. really wanted a version that was easier to customise.

oh no, but isomaster is written in c.

you know thats fine if youre just going to use it. learning c would not have made anything easier or faster. i wanted a bash or python version. so i looked for those.

also i was already working on a thing to open and examine the contents of many distros at once, by unzipping their squashfs files. (sound sophisticated? just a few lines of code. really alright.)

once they were opened i was like “what if i could put them together again?

i had questions, i did talk to other people, some helped, others didnt get what i wanted. fine, let me just try– oh, cool.

ok, each step of the way i had a question– not for other people, mostly for me. i had the tools i needed, mostly, to work on those questions. so one question at a time, features or capabilities would get added.

writing fig or making fig os or writing alex is far more than id ever be able to just sit down and code.

ok but actually, sometimes thats exactly what you do.

i didnt. the coolest stuff i made, i wasnt like “lets make cool stuff.” i was simply curious: “what about this? what about this? what about this?”

im very glad i asked!

i dont have all the secrets to computing. (if i did, what questions would i have?) if you want the best secret i have though, my “guide to being awesome” with computers or whatever: have more questions. thats the “big secret” of computing. (i didnt say i was awesome. if i was awesome, this would be the reason though.)

lots of questions, curiosity, heck im not even the first person to say it. why im telling you is– its the thing behind each of the favourite things ive worked on.

the secrets out again (people will tell you this all the time) but the best illustration i can offer you is– this is why i wrote fig, why i wrote alex, why i wrote fig os.

and its also how i wrote them. that and also making easier, practice things.

happy coding!



alex 2.0: cool features since 1.6


since 1.6 the following changes were made:

  • dc now displays colours properly in windows (it was showing nearly all files in green)
  • findsim searches for files that have similar contents
  • echo $v is improved in windows (it already worked fine on other platforms)
  • sleep n, lcase, ucase added
  • arrcurl, chr added




alex 1.6: replace ls with dc



from alex:

  • find | dc 80
  • find /home/user | dc
  • find c: | dc 115


from the shell:

  • echo “find | dc 80” | ./
  • echo “find /home/user | dc” |
  • echo “find c: | dc 115” | python


dc displays the file contents of multiple paths, in multicolumn format (width determined by optional number. default is 80.)




alex 1.5: noreps, other enhancements



1.5 has –noreps, which outputs each line piped in a single time; output does not have to be sorted.

–fields no longer creates a trailing space per line; it still produces one space between fields.

and it is now possible (in both gnu/linux and windows) to echo a script to the shell without having it loaded already, offering the best features of your shell and alex together:

echo "dir | rainbow -f" |




alex 1.4: new features (since 1.1); rainbow, ascii



since 1.1, alex now has:

  • –rainbow …show text in colours by groups of lines
  • –rainbow -f …show text in colours by field
  • –rainbow -p …show text in colours by exact column position of each field
  • –rainbow -l …show text in colours by indent level
  • –ascii …show text as ascii codes
  • –ascii -h …show text as ascii codes in hex
  • –isoplus query …works like grep (also in windows)


find /mnt/le | grep gif | fsortplus


find /mnt/le | grep gif | fsortplus | rainbow -f




fig 4.5: fewer compound statements in translator and output


version history:

for decades now, when coding– ive stayed on the same line and only hit enter when it seemed logical to me.

turns out, most people prefer to avoid compound statements:

this_is_a() ; compound_statement()


and they hate this at least as much:

if condition: put_statement_here()


ive removed most of those from fig 4.4 to create fig 4.5, and ive even removed most of those from the translated output. the output from fig looks dramatically different, probably to the relative happiness of most coders. hypothetically, anyway.




alex 1.1: lots of new features


still doesnt have separate per-platform handling of $, which may lead to extra quotes in windows– but with 1.1 alex is coming along:


list files and change backslash to slash:

find | replace /


list files, limit to bottom 50 and redirect to variable t; iterate through t and echo:

find | bots 50 | var t ; forin c t ; echo $c ; next


get input and display one character per line:

echo type in your name: ; setinput px ; forin t px ; echo $t ; next


show help:



random coloured points:

while ; setrandint px 2 20 ; setrandint py 2 15 ; setrandint pc 1 15 ; pset $px $py $pc ; next


coloured lines:

forin rep 20 ; setrandint px 2 20 ; setrandint py 2 15 ; setrandint pc 1 15 ; line 40 10 $px $py $pc ; next


nested loops:

forin co 5 ; forin ro 5 ; setadd col co ro ; colour 0 $col ; setadd pco co 10 ; setadd pro ro 10 ; locate $pro $pco ; echo _ ; next ; next


list files containing .h, show date field and size, sha256, date and time, only lines containing 2017- …number each line

find | isoname .h | fsortplus | fields 3 _ | isoname 2017- | cat -n


quit the shell:






science is a journey, not a destination

being right > being right


ive encountered a lot of indoctrinated people in my life. some of the indoctrination was good, some of it was probably fair and reasonable. i especially love when indoctrination is based on science– because then instead of arguing with indoctrination, youre arguing with science! and science is the most right thing there is, so you must be wrong. ok, you never win by using sarcasm on the internet.

i do actually think a little indoctrination is good, but that “little” is actually rather tiny– a little more than the way trace elements are vital to your health. though i wont join any crusades against religion in general. people would just find some other idea to put too much faith in, like the way economists do.

im definitely not trashing science. science is probably the only thing that knows just how often people are wrong, because it changes. i always thought pluto was a planet, and i still think it sort of is. but science has to ask “whats a planet?” and then ask “does pluto count?” i am really not at all fond of what science has to say about pluto. that said, i am glad that science cares more about how it asks and answers the question than what the answer is. science is a very special kind of integrity. its not always right, but man, its always trying its best. thats pretty cool.

as it happens, im not a science-only, science fundamentalist. i dont confuse non-science with science; when people talk about mysticism, imagination, speculation, synchronicity– science intends to make other plans. that doesnt mean that i dont like the efforts of some scientists to play with questions the mainstream wont touch– but the process is vital. the integrity of both the question and the commitment to asking with care– of the best possible measurement and evaluation– of doing all thats possible to avoid prejudice– simply wonderful stuff.

im happy with these other things we do with ideas. the imagination is absolutely marvelous in the way it can make leaps and hypotheses, i also think feelings are valuable. we have all these different things for weighing the world. science isnt the only one– but i sure wouldnt want to live in a world without it.

i do think of science as an ideal, just not an exclusive one. i do think it is vital, just not the only thing thats vital. but my absolute favourite thing about science is that it doesnt settle for an answer, ever. whatever you think the answer is– science doesnt care, it just keeps asking and checking, to keep itself honest. imagine if the world was like that, too– if “what if we are mistaken?” was the foremost question on everyones mind. granted, some people have no confidence at all, and im not wishing that on the world. i dont want everyone second-guessing everything 100% of the time, that would get very messy.

so its good to “settle” on an answer for the moment, even if sometimes we have to question all we know. not all at once, at least. but enough to have integrity– enough to make the answers mean something. people want to be right, but the real commitment is to checking if we really are, or if we simply thought so.

i also think that level of honesty is personal. no process is fully immune to personal bias, any more than there is a living human that is impervious to illness. anyone can say they have the most integrity of anyone on earth– the more confident they are, the higher the eyebrow can raise. of course, one person, somewhere, really is the #1 in integrity. statistically speaking, that person is out there, somewhere. i seriously wonder what theyre like.

the funny thing is, science almost goes against our personal nature– we assume, we presume, we guess and estimate and settle on very unreasonable things. but science doesnt happen without us, either. i mean, we have watched animals conduct experiments in nature. they clearly try things out, you can watch them reason– watch the kitten pawing at its reflection then walk behind the mirror to find the kitten on the other side. we have every good reason to think it is reasoning when it does that.

but insomuch as science is an action performed by people, processes we discover and we apply, that we go to the trouble to make part of what we do– its our personal commitment to it that makes the difference. the integrity that exists in science is ultimately integrity that comes from people. it wouldnt happen (with us at least) any other way. science is application; it doesnt happen on its own– and if science can “benefit” in any way at all, then it is a mutualistic relationship.