Gemini version available ♊︎

Is Free Culture As Important As Free Software?

Posted in Free/Libre Software at 6:24 pm by Guest Editorial Team

By figosdev

Letters of language

Summary: “If you have ever created a programming language specification before coding the actual language, then you’ve already written code for a language that doesn’t exist yet.”

Funny thing about the Free Software movement — while many of us care about Free Culture as well, it’s taken ages for the FSF to recognise its legitimacy.

The position of rms in the past (and likely the present) is that while software is a “practical” work — this point has relevance for copyright eligibility (software was not even copyrightable in the United States until 1980) other “non-software” works are not practical in this sense — they don’t “do stuff.”

“While rms has given some support to free licenses for other works (game assets for free games being one example) this division is sometimes considered less important by advocates of free culture.”Code describes computer instructions — and other works do not. While rms has given some support to free licenses for other works (game assets for free games being one example) this division is sometimes considered less important by advocates of free culture.

My own opinion — and this is quite sincere, because I think some might interpret it as sarcasm or being cynical — is that the brain is a sophisticated, self-rewiring biological computer, and culture helps to alter our programming as much as psychotropic drugs or traumatic experiences do. This idea that “culture is software too” isn’t something I invented, but it’s the way I’ve felt for many years.

There are simple programming languages and there are esoteric programming languages, but just today I wrote a simple — rhetorical programming language to make this point:

    # % turn on/off printing
    # @ quit program
    # a, A cycle colour backwards
    # b, B cycle colour
    # c, C copy next variable value to following character variable
    # d, D move down most recent variable value
    # e, E toggle print default upper/lower (starts lower)
    # f, F move to 1, 1
    # g, G get next character variable value
    # h, H append next variable value to following character variable
    # i, I set next variable to empty string
    # j, J fi
    # k, K if most recent variable value is true, do the following
    # l, L move left most recent variable value
    # m, M convert most recent value to uppercase
    # n, N convert most recent value to lowercase
    # o, O set next variable to 0
    # p, P print most recent variable value
    # q, Q exit loop early (limited)
    # r, R move right most recent variable value
    # s, S turn off print default case
    # t, T set next variable to random number 0 to 99
    # u, U move up most recent variable value
    # v, V set next letter to following character
    # w, W loop most recent variable value times
    # x, X mark end of loop
    # y, Y wait next value seconds
    # z, Z clear screen

Behold, a language!

Plato once defined man as a “featherless biped” — the response from Diogenes was to pluck a chicken for Plato and say “Behold, a man!” In this spirit, I have named this programming language Diogenes. Having written it, there seems to be a text-searching app of the same name. Not that I expect this language to catch on.

“Not that I expect this language to catch on.”Diogenes compiles verbatim-copying-only essays by Richard Stallman into non-free software. The only thing that makes this software non-free, is that the source code (the essays) are non-free. Therefore if the essays were free, the resulting program code would be as well. I know this isn’t really very clever, but I did start laughing when I had coded most of the functions.

I like Logo, and I like languages inspired by Logo, so I wanted Diogenes to have some very basic Logo functionality. You can move up, down, left, right — it draws as you move, you can cycle forwards or backwards with 8 colours including black, you can write a Hello World program, set, clear and append variables, and it has a conditional, loop and limited loop breaking function.

“%” toggles print output, “@” quits the program, and the rest of the commands are single letters. So for example, if we want to create a nice Hello World program, VAH sets the Variable A to H, and P prints the most recent variable set:


Will print h. We can cycle the colours with “b”, we can set a variable to an empty string with “i”, so by the time we have this little program:

    %bbvahpbvaepbvalpbvalpbvaopibap vawpbvaopbvarpbvalpbbvadp

This compiles to about 120 lines of Python code, and when you run it it looks like this:

Hello World

If we take the text of the recent essay, “Saying No to unjust computing even once is help” and we only use the body of the essay from “A misunderstanding” to “awareness of the issue”, this essay is the first “program” ever compiled with Diogenes. Given that each letter is a command, it compiles to 16 KLOC and the output, while minimal, looks like this:


“The Right to Read,” from the headline and byline to “one of its central aims” compiles to 29 KLOC of Python, and the output looks like this:


If we remove 352 spaces of indentation from the last dozen lines or so, they look like this:

    if locolour < 0: locolour = 7
    colour(locolour, 0)
    xy(locx, locy, locolour)
    for loop747 in range(figure('r', vars, 'n')):
        if locx > 0: locx -= 1
        xy(locx, locy, locolour)
    locolour -= 1
    if locolour < 0: locolour = 7
    colour(locolour, 0)
    vars['r'] = ''
    lutog = 0
    colour(7, 0)

This is compiled from code that Stallman wrote, where he said “central aims”. Those two words alone are not copyrightable, so we can compile that much of the essay for this article. The loop variable is named “loop747″ because it is the 747th loop in the program, compiled from the letter “l” (for “move left”).

You probably don’t want to say that unintentionally writing non-free program code is unethical, when the author isn’t aware that it’s program code. But if anything can be program code, where do we draw the line? The fact is, this language compiles non-free works into software that I’m not free to publish. If you think that’s a joke, look up “de minimis” and the 1990s Supreme Court decision on sampling music.

For me to publish the program I compiled today as free software would be impossible; it certainly uses too much of the source essay to be protected by a “fair use” argument — and you could almost certainly “decompile” the source back into all or most of the essay.

“The line between written work and program code is probably thinner than most free software advocates would like to admit.”Stallman’s essays were not written for a computer to run, but for a person to put in their mind — what they do with it is largely up to the person. On the other hand, POW camps have used forced written and forced spoken confessions in part to get the prisoners to convince themselves that they are guilty of the crimes they are accused of. The line between written work and program code is probably thinner than most free software advocates would like to admit.

Like with “real” software, you can “scan” this writing and it may not “run” in your own mind. You may find it is simply incompatible with your environment and setup. I’ve written plenty of things that did not convince the audience of anything at all. Maybe it was just too much work to “port” to their platform, or they decided to reject part of it and put the rest in mental quarantine.

All the same, these essays will compile to program code. If you have ever created a programming language specification before coding the actual language, then you’ve already written code for a language that doesn’t exist yet. If we are all doing that, hopefully these programs can be released under a free license before they are turned into code — or at least after someone turns them into code.

“If you have ever created a programming language specification before coding the actual language, then you’ve already written code for a language that doesn’t exist yet.”How would that work?

Some of the arguments made here are a little bit silly, though they are still inspired by a serious argument — our culture needs to be free-as-in-freedom.


Hey, it was worth a try.

Long live rms, and appthis = vars['a'] \n vars['p'] = app(vars['p'], appthis) \n if togprint: print lu(vars['p'], lutog) \n sleep(figure('h', vars, 'n')) \n locolour -= 1 \n if locolour < 0: locolour = 7 \n colour(locolour, 0) \n copythis = vars['k'] \n vars['i'] = copythis \n if type(vars['i']) == str: vars['i'] = vars['i'].lower()
Licence: Creative Commons CC0 1.0 (public domain)

Share in other sites/networks: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Reddit
  • email

Decor ᶃ Gemini Space

Below is a Web proxy. We recommend getting a Gemini client/browser.

Black/white/grey bullet button This post is also available in Gemini over at this address (requires a Gemini client/browser to open).

Decor ✐ Cross-references

Black/white/grey bullet button Pages that cross-reference this one, if any exist, are listed below or will be listed below over time.

Decor ▢ Respond and Discuss

Black/white/grey bullet button If you liked this post, consider subscribing to the RSS feed or join us now at the IRC channels.

DecorWhat Else is New

  1. Links 8/12/2021: Zorin OS 16 Milestone and Calculate Linux 22 Released; Kubernetes 1.23

    Links for the day

  2. A Call for Sources and Whistleblowers From Microsoft's GitHub

    Remarks on our publications from this morning and a call for more leakers and whistleblowers, who know GitHub better than anybody else (including lots of fools who still outsource all of their hard labour to Microsoft through GitHub)

  3. [Teaser] Rape is Not a Joke

    Having just uploaded a police report, we’re starting to move the ongoing series to the next phase, which will still be — for the most part — weekly installments on Mondays (for months to come)

  4. [Teaser] Meet Microsoft’s Chief Architect of GitHub Copilot, Balabhadra (Alex) Graveley

    Alex Graveley, a serial abuser, has been protected by Microsoft; what does that say about Microsoft and about Nat Friedman, GitHub’s CEO whom Alex considers his "best friend"? Stay tuned as we have plenty more to show

  5. IRC Proceedings: Tuesday, December 07, 2021

    IRC logs for Tuesday, December 07, 2021

  6. Links 8/12/2021: FreeBSD 12.3, EasyOS 3.1.13, and WordPress 5.9 Beta 2

    Links for the day

  7. [Meme] EU Assurances

    The EPO‘s staff cannot be blamed for losing patience as elected public representatives completely fail to do their job (with few exceptions)

  8. Clare Daly (GUE/NGL) Does What Every Public Official in Europe Should Have Done About EPO Shenanigans

    There’s another (new) push to hold the EPO accountable, seeing that the overseers clearly do not do their job and instead cover up the abuses

  9. Links 7/12/2021: Firefox 96 Beta and Fedora 37 Abandons ARMv7

    Links for the day

  10. Links 7/12/2021: Plasma Mobile Gear 21.12 and Tails 4.25

    Links for the day

  11. All IRC Logs Now Available as GemText Over Gemini Protocol

    Today we've completed the transition from plain text over gemini:// to GemText over gemini:// for IRC logs

  12. IRC Proceedings: Monday, December 06, 2021

    IRC logs for Monday, December 06, 2021

  13. [Meme] Rowing to the Bottom of the Ocean

    The EPO‘s Steve Rowan (VP1) is failing EPO staff and sort of “firing” workers during times of crisis (not at all a crisis to the EPO’s coffers)

  14. EPO Gradually Reduced to 'Fee Collection Agency' Which Eliminates Its Very Own Staff

    Mr. Redundancies and Mr. Cloud are outsourcing EPO jobs to Microsoft and Serco as if the EPO is an American corporation, providing no comfort to long-serving EPO staff

  15. Linux Foundation 2021 Annual Report Made on an Apple Mac Using Proprietary Software

    Yes, you’re reading this correctly. They still reject both “Linux” and “Open Source” (no dogfooding). This annual report is badly compressed; each page of the PDF is, on average, almost a megabyte in size (58.8 MB for a report of this scale is unreasonable and discriminates against people in countries with slow Internet connections); notice how they’re milking the brand in the first page (straight after the cover page, the 1991 ‘creation myth’, ignoring GNU); remember that this foundation is named after a trademark which is not even its own!

  16. Links 7/12/2021: OpenIndiana Hipster 2021.10 and AppStream 0.15

    Links for the day

  17. Microsoft “Defender” Pretender Attacks Random Software That Uses NSIS for installation; “Super Duper Secure Mode” for Edge is a Laugh

    Guest post by Ryan, reprinted with permission

  18. Links 6/12/2021: LibreOffice Maintenance Releases, Firefox 95 Finalised

    Links for the day

  19. “Wintel” “Secure” uEFI Firmware Used to Store Persistent Malware, and Security Theater Boot is Worthless

    Guest post by Ryan, reprinted with permission

  20. No Linux Foundation IRS Disclosures Since 2018

    The publicly-available records or IRS information about the Linux Foundation is suspiciously behind; compared to other organisations with a "tax-exempt" status the Linux Foundation is one year behind already

  21. Jim Zemlin Has Deleted All of His Tweets

    The Linux Foundation‘s Jim Zemlin seems to have become rather publicity-shy (screenshots above are self-explanatory; latest snapshot), but years ago he could not contain his excitement about Microsoft, which he said was "loved" by what it was attacking. Days ago it became apparent that Microsoft’s patent troll is still attacking Linux with patents and Zemlin’s decision to appoint Microsoft as the At-Large Director (in effect bossing Linus Torvalds) at the ‘Linux’ Foundation’s Board of Directors is already backfiring. She not only gets her whole salary from Microsoft but also allegedly protects sexual predators who assault women… by hiring them despite repeated warnings; if the leadership of the ‘Linux’ Foundation protects sexual predators who strangle women (even paying them a salary and giving them management positions), how can the ‘Linux’ Foundation ever claim to represent inclusion and diversity?

  22. Microsoft GitHub Exposé — Part IX — Microsoft's Chief Architect of GitHub Copilot Sought to be Arrested One Day After Techrights Article About Him

    Balabhadra (Alex) Graveley has warrant for his arrest, albeit only after a lot of harm and damage had already been done (to multiple people) and Microsoft started paying him

  23. The Committee on Patent Law (PLC) Informed About Overlooked Issues “Which Might Have a Bearing on the Validity of EPO Patents.”

    In a publication circulated or prepared last week the Central Staff Committee (CSC) of the EPO explains a situation never explored in so-called 'media' (the very little that's left of it)

  24. Links 6/12/2021: HowTos and Patents

    Links for the day

  25. IRC Proceedings: Sunday, December 05, 2021

    IRC logs for Sunday, December 05, 2021

  26. Gemini Space/Protocol: Taking IRC Logs to the Next Level

    Tonight we begin the migration to GemText for our daily IRC logs, having already made them available over gemini://

  27. Links 6/12/2021: Gnuastro 0.16 and Linux 5.16 RC4

    Links for the day

  28. Links 5/12/2021: Touchpad Gestures in XWayland

    Links for the day

  29. Society Needs to Take Back Computing, Data, and Networks

    Why GemText needs to become 'the new HTML' (but remain very simple) in order for cyberspace to be taken away from state-connected and military-funded corporations that spy on people and abuse society at large

  30. [Meme] Meanwhile in Austria...

    With lobbyists-led leadership one might be led to believe that a treaty strictly requiring ratification by the UK is somehow feasible (even if technically and legally it's moot already)

RSS 64x64RSS Feed: subscribe to the RSS feed for regular updates

Home iconSite Wiki: You can improve this site by helping the extension of the site's content

Home iconSite Home: Background about the site and some key features in the front page

Chat iconIRC Channel: Come and chat with us in real time

Recent Posts