It seems a row has broken out between staff on President Barack Obama’s re-election campaign over the fate of the free software it produced (the article linked here refers to it all as “open source” but on this issue I tend to side with RMS and not ESR).
Actually I do not blame the DNC at all for not wanting to release any source (if that is what they want to do – it is not entirely clear). It would simply be foolish to surrender an advantage they have over their opponents if there is no need to do so. Nor does there appear to be any ethical issue involved: the core idea of the free software movement is surely that any user of software should have access to the source code out of which it is built. If the DNC does not distribute the software then they are under no moral or any other obligation to hand out the source code.
By far the worst idea the article talks of is selling the software: that would truly be a breach of the ethics of free software – because plainly trying to use the built software as a revenue stream means keeping the software hidden or forcing users, 1970s Unix-style, to sign NDAs. Either of those is worse than keeping a piece of private software private.
There is a wider question, of course, could distributing the software help build a better world. But if the distribution helps the US republican party, then surely the answer for the DNC is no?
Well, what else was I going to do? This works and that means I think BINSIC does too. It’s not quite a fully functional BASIC – try as I might I cannot get
GOTO or even
GOSUB to work inside loops (though I might do better if plough on with the
GOSUB stuff), but I’ll hopefully launch it all tomorrow evening.
10 REM Game of Life 20 PRINT "Conway's Game of Life" 30 PRINT "Copyright Adrian McMenamin, 2012" 35 PRINT "firstname.lastname@example.org" 40 PRINT "Licensed under the GPL version 3" 50 DIM A(48, 70) 60 DIM B$(24) 70 PRINT "Please enter your pattern" 75 PRINT " - up to 24 lines of 70 characters" 80 FOR I = 1 TO 24 90 INPUT B$(I) 95 LET T = 0 97 IF B$(I) = "DONE" THEN LET T = 1 98 IF T = 1 THEN LET B$(I) = "" 100 IF T = 1 THEN GOTO 150 110 PRINT B$(I) 120 NEXT I 150 REM Parse Input 160 LET P = 0 170 LET G = 0 175 LET Y = 0 177 LET Q = 0 180 FOR Y = 1 TO 24 190 LET Z = LEN B$(Y) 210 IF Z = 0 THEN NEXT Y 220 FOR Q = 1 TO Z 222 LET A(Y, Q) = 0 225 IF MID$(B$(Y), Q, 1) = " " THEN LET A(Y + 24, Q) = 0 230 IF MID$(B$(Y), Q, 1) <> " " THEN LET A(Y, Q) = 1 232 IF MID$(B$(Y), Q, 1) <> " " THEN LET A(Y + 24, Q) = 1 234 IF MID$(B$(Y), Q, 1) <> " " THEN LET P = P + 1 240 NEXT Q 250 FOR Q = Z + 1 TO 70 260 LET A(Y, Q) = 0 265 LET A(Y + 24, Q) = 0 270 NEXT Q 280 NEXT Y 300 REM Display Map 310 PRINT 320 PRINT 330 PRINT 340 PRINT "Generation ", G, " Population is ", P 350 FOR M = 1 TO 24 355 PRINT 360 FOR N = 1 TO 70 370 IF A(M + 24, N) = 1 THEN PRINT "*"; 375 IF A(M + 24, N) <> 1 THEN PRINT " "; 380 NEXT N 390 NEXT M 400 REM Map next generation 410 FOR M = 1 TO 24 420 FOR N = 1 TO 70 430 LET A(M, N) = 0 440 IF M + 1 < 25 AND A(M + 25, N) = 1 THEN LET A(M, N) = A(M, N) + 1 450 IF M - 1 > 0 AND A(M + 23, N) = 1 THEN LET A(M, N) = A(M, N) + 1 460 IF N + 1 < 71 AND A(M + 24, N + 1) = 1 THEN LET A(M, N) = A(M, N) + 1 470 IF N - 1 > 0 AND A(M + 24, N - 1) = 1 THEN LET A(M, N) = A(M, N) + 1 480 IF M - 1 > 0 AND N - 1 > 0 AND A(M + 23, N - 1) = 1 THEN LET A(M, N) = A(M, N) + 1 490 IF M - 1 > 0 AND N + 1 < 71 AND A(M + 23, N + 1) = 1 THEN LET A(M, N) = A(M, N) + 1 500 IF M + 1 < 25 AND N - 1 > 0 AND A(M + 25, N - 1) = 1 THEN LET A(M, N) = A(M, N) + 1 510 IF M + 1 < 25 AND N + 1 < 71 AND A(M + 25, N + 1) = 1 THEN LET A(M, N) = A(M, N) + 1 520 NEXT N 530 NEXT M 540 LET P = 0 600 FOR M = 1 TO 24 610 FOR N = 1 TO 70 611 LET ZZ = 0 612 LET SC = A(M, N) 612 IF A(M + 24, N) = 1 THEN LET ZZ = 1 613 LET RES = 0 614 IF ZZ = 0 AND SC = 3 THEN LET RES = 1 615 IF ZZ = 1 AND (SC = 2 OR SC = 3) THEN LET RES = 1 616 LET A(M + 24, N) = RES 617 LET P = P + RES 650 NEXT N 660 NEXT M 700 PAUSE 50000 800 LET G = G + 1 900 GOTO 310
Ten years ago today something happened that has had a significant impact on many millions of people across the world … Mozilla 1.0 was released.
Above all else Mozilla, and it’s leaner, fitter, offspring, Mozilla Firefox, is the most important piece of free (as in freedom) software ever produced. For sure, it stood on the shoulders of giants to get there, but by giving the world a real choice in browsers the Mozilla Foundation changed the rules for the Internet, forced Microsoft to get its act together and crushed that company’s attempts to bind us all into a proprietary software future (remember ActiveX anyone?) online.
It is probably going too far to say that without Mozilla there would be no Arab Spring, for instance, but maybe not by much. Because Mozilla and Firefox also taught the public that there were alternatives out there and so the future did not have to be about what ever Baby Blue said it was. And that willingness to experiment online is helping power the mass adoption of smart phones, which are the weapons of choice for online revolutionaries.
It is easy to forget how bad it had got before Mozilla came along … Internet Explorer was a truly atrocious application that was not updated for several years. Microsoft had no interest in open standards because it had no competition. Mozilla changed all that. Not instantly, but the pressure began immediately.
- Mozilla loses Web technology guru Chris Blizzard (news.cnet.com)
- Crazy Geckos: Nitot on Mozilla’s post-Firefox mobile crusade (go.theregister.com)
- Windows RT will ban Firefox and Chrome, says Mozilla (csmonitor.com)
- A history of Mozilla browsers design (nicubunu.blogspot.com)
- Mozilla grudgingly adopts H.264 (theinquirer.net)
So, you want a hex editor for your latest project and (naturally) you decide to have a look at Hexxed, the free, GPL licensed, hex editor you can download here:
. So what happens next?
bash-3.2$ java -jar hexxed.jar -u
usage: hexxed [options]
-b,–block use block:offset address output – default is
-be,–bigendian interpret data as big endian – default is cpu
-f,–file <arg> file to edit
-le,–littleendian interpret data as little endian – default is cpu
-o,–offset <arg> offset in file – default 0
-s,–blocksize <arg> size of block if block:offset addressing used -
default is 0×200
-u,–usage show this information
-w,–width <arg> width (in bits, 8 – 64 bits) of output data -
default is 8 bits
-x,–x <arg> width of window (default 640 pixels)
-y,–y <arg> height of window (default 480 pixels)
Subtext is, please do have a look at Hexxed. I know it’s not as fully featured as commercial or even other free hex editors, but this is just the first iteration and if you tell me it is useful and add what feature you’d like to see in it, it is quite likely that I will get on with adding it.
Update: I have now run Hexxed on Ubuntu and Debian Linux, Mac OSX and Windows XP, so it should work on anything with Java installed.
Help me test Hexxed, my free software hex editor.
You can download it here:
java -jar hexxed.jar
Let me know what you think!
OK, Hexxed, the hex editor I have been working on, is nowhere near being finished but it does seem to be in a good enough state to find testers.
It’s very rough round the edges but it will allow you to open, edit and save files. I have given it a Vi-like interface and I would be most interested in knowing what people feel about it – if you are a Vi user does the interface feel natural enough to you?
I guess, at this point, any testers will have to be familiar with running a Groovy project – and you can pull the sources from GitHub.
But if someone just wants a .jar file to run, then let me know and I will package it up.
If one were ever to dare to apply this to Richard Stallman, one could expect to be cast into the outer darkness. Whatever else he is, Stallman is nothing to do with “the open source movement” – which he rejects as a capitulation to corporate interests that seek to destroy free software.
Stallman is, though, entitled to regard himself and be regarded as “one of the finest engineers” of free software. I doubt he is very active as a developer these days, but as the creator of GCC and GNU EMACS he more or less made everything else possible.
Raymond has written some software – he wrote most of Fetchmail and as a user I want to thank him for it. But does that make him one of the finest engineers of open source or anything else? Not really.
- Richard Stallman Visit to Chennai – on News (goinggnu.wordpress.com)
- Richard Stallman Weighs In On The Check Engine Light [Check Engine Light] (jalopnik.com)
- How can the ideas of the open source movement help foster learning (learningfreedomandtheweb.org)
- Does Facebook really embody “The Hacker Way”? Famous hackers discuss (venturebeat.com)
- Free software founder, Richard M. Stallman is glad Jobs is gone | ZDNet (trutherator.wordpress.com)
- Open Letter By Eric S. Raymond To Chris Dodd (yro.slashdot.org)
- Why These People Hate Dropbox And Want To Create Their Own Alternative (businessinsider.com)
- THE PEER PRODUCTION ILLUSION: The Myth of Open Source Software (mrteacup.org)
For the last six years my job situation has made me wary of commenting on the politics of the free software movement and its enemies, but I have just changed jobs (been a busy week round here) and now I feel I comment freely on what every free software advocate has always known as Public Enemy Number One: Microsoft.
Except, now the time has come, I don’t really feel they are any more. Indeed I feel free software is more threatened by one of the teams that is meant to be on our side – Google, which has embraced the world of software patents and user abandonment with enthusiasm and by another, Apple, that uses Unix but seems oblivious to the idea of user freedom.
Now, I am not saying that, because Microsoft have found themselves in recent months as one of the biggest contributors to the Linux kernel, and marked the 20th birthday of Linus’s famous usenet announcement of a new Unix-like kernel with an appeal for more co-operation, they really are our friends. But we should recognise that the change – even if it did come because they were dragged through the US and EU courts – is a real one. They are at least recognising that we are here to stay and that the server room of the future will be running multiple OSes on virtualised machines of different flavours.
On the desktop our side is still nowhere – perhaps still under 1% globally and the boys and girls in Seattle might quickly turn nasty again if we ever did start to crack that nut, but in the meantime we maybe should be testing just how sincere that offer of co-operation really is… afterall they are not offering to work with us because they think we are weak!
Update; Thanks to the retweeters. Think I should point out my proposal of a compromiso historico with Microsoft is a minority view – as the links below probably suggest.
- As Attachmate Distances Itself From SUSE, Commitment to UNIX Copyrights Doubted (techrights.org)
- Microsoft Charm (techcrunch.com)
- Can We Trust Microsoft? (ostatic.com)
- Linux at 20: New Challenges, New Opportunities (pcworld.com)
- Microsoft Plays Dirty PR Games to Daemonise Sceptics of Convicted Criminals (techrights.org)
- A Brief History of Linux (techebook.wordpress.com)
Seems, at long last, it may be the GNU HURD, the operating system kernel that Richard Stallman planned some three decades ago as the killer of the proprietary Unices and hacked away at for another ten years before some Finnish computer science student – Linus Torvalds – wrote a task switcher “just for fun” and Linux‘s road to world domination began.
The HURD (Herd of Unix Replacing Daemons) is all the things that operating system classes tell you is good: a microkernel and independent services for most of things users interact with – the idea being that the system will survive if even one of these daemons/services crashes. With only a small proportion of the kernel in kernel space the service daemons communicate via messages and all operate in individual memory protected spaces.
The problem – at least, so I understand, is that it is extremely slow and, in any case, Linux fulfils the political aspect of the GNU manifesto, so why switch to an experimental operating system kernel?
At least there won’t be the same design decision taken with Windows NT – which is also based on a microkernel design – to lock all the services into a single memory space for speed reasons: seems to defeat the purpose of having such a design (though obviously does not make it inherently inferior to a monolithic design like Linux.)
Of course, increased speed and memory means the history of general computing is the history of swapping speed for convenience and flexibility – that is what an operating system is for, after all: if you wanted a faster word processor you could write one that didn’t rely on all that operating system fluff: but try selling that idea to anyone!
Moore’s Law is generally expected to run for at least another ten years, meaning by 2011 computers will be 32 times faster than today and are also likely to be substantially more parallel – something which ought to inherently suit the HURD’s design. More than that we may have may even bigger advances in parallel algorithms.
So, while I won’t be switching to the HURD just yet, I’m not ruling out doing that either.
I guess I am supposed to like Stallman more – and certainly Raymond’s libertarianism is a big turnoff, but Stallman is a fundamentalist and I having been fighting political fundamentalists for as long as Stallman has been GNUing.