Saturday, April 30, 2011

Switch from GPL - The Dual Licensing Gloss over

.
Leaving the GPL - the gloss over:

Puppet has provided an example of a change in licensing, which I will refer to in this article.

"I know this argument doesn’t persuade all of you"
...Somebody forgot to mention dual licensing perhaps.

Fact is if you want to go Apache, then go Apache, no need to gloss over dual licensing option, and suggest that your hand was somehow forced.


GPL versus BSD / MIT / Apache style Licensing:

For a useful Comparison MySQL is GPL, but Postgres is under more of an Apache style license.
Personally I really like Postgresql, however there is no denying that MySQL does seem to be the bigger of the two in terms of counting installations.

The GPL allows you to charge for your software, and companies do just that (MySQL enterprise), aswell as selling support.
Both of these things are no easier for Puppet now that it is under an Apache license.

"Apache enables far more partnerships", well now Infobright and Calpont seem to be getting along pretty well with MySQL and no hinderance from the GPL there.

There has yet to appear a column oriented database partner for Postgresql, and Postgresql is under the sort of license which Puppet has just switched to in order to "enables far more partnerships"

If somebody does a fork of Puppet from the last GPL point, then I'm sure there will be howls of protest.

Big question for puppet is whether a well funded commercial rival might enter the market, if it did happen would they take the GPL codebase, and try and take out puppet, whilst sharing changes, or would they take the Apache codebase, and start looking at what value added features they might add, that could be patented in an exclusive way?


How do I sell my GPL software, surely my competitors can just copy it?

If what you are working on is a simple shopping cart with a few thousand lines of code, then yes your competitors will easily copy what you have, and produce an equally saleable variant.

If you answered yes above, then you might want to ask yourself is a couple of thousand lines of code really a saleable and 'protectable' innovation. Might be that neither you or anyone else out there could actually sell the thing, in sufficient numbers for it to be viable?

Be honest. It might be a great little project, however few of those little projects could actually persuade thousands of folks to part with money willingly.

( On Windows and Mac desktop systems, there has been a history of freeware. Not free to distribute or contribute to, but free as in zero cost. Those freeware cds were mostly programs that were great little ideas, but not a saleable proposition. )

If you are unsure then set aside £1000 and pay for two things:
  1. Small market research exercise via social media
  2. Group of physically present test subjects, who are willing to install the thing and give honest feedback.
But £1000 is a lot? Not if you are seriously planning to make a business from selling software. Your legal costs in the first two years, from selling software, would I think easily exceed this.


Even without access to the code, the functionality is likely to be reproducible by an independent developer with a couple of weeks tops.

If you are talking about Red Hat Linux, which has a codebase of which a significant part is GPL licensed, then that is different. Because of the sheer scale of the product (lines of code), you have something that really is saleable and protectable, and that is your experience, your brand, your support, and rolling them all together, the recognisable product known as 'Red Hat Linux'

But CentOS just copied Red Hat?
Yes and No. The saleable brand of Red Hat includes all those things I just mentioned, and is not simply the bare code on a cd.

But Oracle just copied Red Hat with Unbreakable Linux?
Yes and No. In Unbreakable Linux they copied Red Hat code as part of a very specific Application Stack, and do not provide support for the complete range of tasks and workflows that a regular business user of Red Hat might be able to use / utilize.

By doing this they have sliced off whole areas of the Red Hat brand as 'out of scope' for their support. That has provided some success because of this narrow focus.
I could make a whole article about Red Hat versus Unbreakable Linux, but I'll reiterate what I said and move on...Yes and No.

Here is a question for you....
"Did CentOS or Unbreakable Linux have an easier or harder time of the copying exercise because of GPL"

My opinion: License was irrelevant.

The question of GPL becomes more interesting if CentOS or Unbreakable Linux tried to compete directly with Red Hat by attempting to derive and build upon Red Hat codebase, by say adding a few million lines of code to the kernel and important system routines.

Neither of these things has happened.

No reason why it could not happen, however the 'challenger' would have to be 'better' than Red Hat, and that is no mean feat.


How do I sell my Apache 2.0 software, surely my competitors can just copy it?

See the first three paragraphs of the previous section.

Licensing is playing no part in this question, it really is firstly about whether you truly have something that you can build a sustainable business around.
( A few thousand lines is just not going to cut it, regardless of whether you license GPL, Apache 2, or keep it hidden in a safe! )

What your competitors might be able to do if the code is Apache 2.0 is wrap it up and pass it off as their own, by submitting to a smartphone app store. It does happen!

But I digress, lets say that your product is a significant codebase, say 10 million lines of code.

Perhaps it is the Apache server itself?

Does Apache 2.0 license prevent some other company from coming along, wrapping that code up and calling it Cherokeeee Web Server.

Some companies in fact probably do similar things - I am just guessing here that IBM http server is probably Apache rebadged (I might be mistaken)

Why does Apache not just go commercial and sell it's software?
The history and licensing decisions made previously have provided an ethos which would be difficult for the Apache foundation to now change.

Fact is that IIS which is Microsoft's take on web serving, is hardly a cash cow, so reality also says that web serving (as a portion of the corporate stack), is not a profitable segment to target anyway.

Now OpenOffice is being made available under an Apache license and LibreOffice under an LGPL3 license.

Neither makes a difference to the end users ability to give a copy on a usb stick to a friend - perfectly legal, great way to share a good piece of software with a pal.

So why the distinction? IBM market a free software suite as 'Symphony', and want to continue to 'pull' changes contributed by the open source community, but without engaging with the LibreOffice folks. There is much speculation as to why that might be, however I leave that as a research exercise for the reader.


Does Apache 2.0 or LGPL3 make any difference to IBM ability to rebrand? Not really, however LibreOffice is something that IBM (and Oracle) see as an organisation that might undermine their attempts, to dominate a business channel (Non-Microsoft Office)

The reaction: Undermine LibreOffice by creating a split license situation, and attempt to slow the acceptance of LibreOffice.

Neither Apache 2.0 nor a GPL license make any difference to the Office example above - that is just corporate shenanigans ... license switching to disrupt a new competitor (LibreOffice) before it can develop a sales channel of it's own.

But one day I might be the IBM or Oracle? Well you might be, but more likely is that you will make a successful business selling to SME's, and shifting several hundred thousand licenses - in direct competition to IBM and Oracle.

You will likely be on the receiving end, of similar attempts to disrupt your sales channel by the big corporates.

Here you need to think about software licensing as a 'protection' of you business, not from the consumer (EULAs and all that garbage), but from the sharks further up the food chain.

Reread your preferred license, and think about it, from the point of view of your own business success, and how your OSI license, might help you deal with threats from larger players.

Here your concerns will go beyond software licensing, and will take in branding, marketing, patents, access to markets and other concerns.

Piece of advice: Stay away from any sort of custom license. Choose GPL or Apache 2.0 and run with it. Any sort of custom license may well open you up to:
  • The slow drip drip of fees to law firms, as the market challenges the custom clauses you have created. Probably seemed a great idea at the time, but long term, those custom clauses are just a law firm money sink.
  • Disruptive moves by the larger competition. The top ten frequently used licenses from OSI including GPL and LGPL and Apache 2.0 have clauses that were carefully drafted over several years, and have been tested in the market.

How do I partner with Commercial companies - do I have to change my license?

Not at all.

If you are GPL, then some of your partnerships will be formed on a sharealike understanding.

If you are GPL, then you can make whatever alternative licensing arrangements you like with partners who are wanting to take a codebase, and work on it without contributing back changes.

The phrase is "Dual licensing"

You can go further and "Triple license", it really is up to your company.

The important thing is not to switch from GPL. When you do that you create a future cul-de-sac into, which an IP aggressor can push the project after a takeover.

Worst case: You are taken over by Oracle and everything seems rosy for a couple of years, then the closure creep begins to wear on you, and you get tired of your once great product being just an 'up sell' opportunity to a proprietary product.

You have spent a decade working on the thing. Within two years the takeover has dead ended your project. By switching away from the GPL a couple of years prior to the sale, those two years of building (now kept private) are lost to you and everyone else.

Do you work on that software ever again? Do you give up on software engineering altogether as you cannot see yourself investing a decade in something new?

The things I have referred to in the past three paragraphs are real. Do some reading up about the career moves of the leading Java and MySQL folks, during and after, the Sun to Oracle sale.


I am wanting to partner with Puppet, but somebody suggested that this GPL thing is dangerous?

Do your research. Consult as widely as you need to.

You talk to some fella in the queue at Starbucks, and he mentions that GPL is bad and Apache 2.0 is better.

I repeat ... Consult as widely as you need to. Try a software licensing expert if in doubt.
(If it costs you £500, it really is small change for a partnership, where you intend to work on several hundred thousand lines of code)

When you consult, you will understand that a key question is 'sharealike'.

Puppet make their code freely available for partners and the wider community to distribute and modify. Do you want to do that?

Do you want your partners to be compelled to 'return the favour', and make available the 5,000 lines of enhancement they just added?

A commercial license arrangement in addition to GPL give you both ways of partnering - pay me and take my codebase with no forward requirement to share your enhancements, or take the GPL codebase and 'sharealike'.

A commercial license arrangement (in addition to GPL) also *might* be expected to include warranty and indemnification.

If your partner indicates that they want (1)Warranty and (2)Indemnification included in the commercial license...
Then (1) means people, time, and quality business processes and (2) means legal counsel and possibly a commitment, by your company, to absorb some of the legal threat a partner may be subject to, as a direct result of using and distributing your original codebase.

Just to point out one benefit of the GPL from the perspective of a future partner.

**A commitment to non-exclusive patent granting.**

But how could this be a benefit for me as a partner?

As the only partner, you probably care little about the two way non-exclusive patent handshake you are party to through the GPL.

However I give an example of the situation under Apache 2.0 which has no bi-directional non-exclusive patent right clause.

I am Puppet, and I develop software P. I then partner with you (Apache 2.0) and you develop your own P+. Another partner agreement is made (Apache 2.0) and another product P++ is born.

The P++ vendor is an IP aggressor and intends to use the '++' features as a market lockout. The company files a bundle of patents on the '++' technology they added, develops the market to want those '++' features.

Nothing too bad just yet.

But then the patent stick is pulled out. As a 'market aware' partner you mistakenly got caught up in adding some of those features, which IP aggressor patented, and you are now the target of a patent lawsuit.

Three boats set out on the river...the original and two partners.

The original has now become a little less relevant due to market developments.
The 'P+' partner (that's you) has been killed off by the deliberate patent plan of the 'P++' vendor.

A non-exclusive patent clause now probably sounds like a good idea in retrospect.

A non-exclusive patent clause is not to be feared as a partner, if you genuinely build robust reliable software that is better than the competition (P++), then people will buy it. It does not need patents to be a better product. It needs skilled developers and lots of commitment.

But Oracle will just take my additions and market that on top of their product?

Are they marketing a 'better' product than you by doing that?
No. And your customers can see just that.
( Going back to the Unbreakable Linux question, Oracle in that instance are not offering a 'better' product, they are addressing a very specific appliance segment, one which is not, just now, targeted explicitly by Red Hat )

But what about the original project, should they be rewarded for not adding features the market wants?

If the P++ vendor has really built an excellent, and significant set of features in the ++ additions it made, then it will be first to market, and associated with those excellent features.

There is little reward to just copying exactly what another vendor has done, especially if that vendor has an active marketing campaign.
They are associated with being first to market with the ++ features, and make the sales.

However if the ++ features are an unstable pile of mush, then the original project could theoretically rework the codebase and implement it better.

Who wins there? The market and the customer.

 Just to put things back into terms of the boats on the river analogy...

A bi-directional non-exclusive patent right, ensures that none of the partners can sink the boats of the other using patent aggression.

This is why Oracle and Microsoft do everything they can to discourage GPL adoption, it deprives them of an element of their corporate strategy ...

... To kill decent rival products by using patent aggression, to scare development teams away from projects, using patentable 'value added' additions, and private patent agreements.

Whilst I do not agree with everything that Brian Gentile of Jaspersoft say, I quote an extract here with my own highlighting:
They would rather have standard, commercial terms around the software and its use. By going to a commercial version, customers have a commercial license which includes the indemnification and protection they want to go along with it.

The third reason is professional support. The forums and the support that you get from working with the Jaspersoft community are pretty robust, but if your use of Jaspersoft is relatively mission critical, you probably want the comfort of knowing that you have a support team that’s very intimate with the code and available to you 24/7.
I have touched on some of those highlighted points previously.

I am going to interpret the use of the word indemnification to mean warranty, something which MySQL AB used to offer in it's commercial licensing, to meet that requirement.

Brian's use of the word protection should have been clarified further by the interviewer, or Brian himself.
I will not speculate further, other than saying this, could be just another way of saying 'security updates', or could be closer to what the Oracle and Microsoft camps, mean by protection.


Oracle and GPL:

I could take aim at Oracle regarding the Oracle / Google android situation, however I reserve judgment on that issue. It is complicated and has a ream of in depth articles already.

But surely Oracle contributes to Open Source, and under the GPL license?
Btrfs is a good technology, and the license is GPL

Contributing to one project under GPL, whilst a promising start, does not 'define' Oracle.

Since taking over Sun, Oracle have taken many 'Free and Open Source' projects, and, thrown out anything, which cannot be seen to contribute to their proprietary stack.
Rather than embrace all those developers, Oracle has chosen to reassert it's 'type', rather than adapt.


Microsoft and GPL:

A company even less able to adapt than Oracle, pursuing tired business tactics to try and turn back the clock to the 90s.

Rather than drone on here, just do a websearch for GPL microsoft app store, to read up on opinion, as to why Microsoft, is targeting the GPL, as one of the few OSI-approved licenses which it prevents from entering it's smartphone app store.

By comparison I quote from the Wikipedia section 'Legal barrier to app stores' and the portion related to Ubuntu app store
In other cases, such as the Ubuntu App Store, proprietary commercial software applications and GPL-licensed applications are both available via the same system




Monday, April 25, 2011

Parole media player --xv option and display via ati3450

Using Xfce4, I add a couple of media players to my desktop - Vlc and KDE Dragon Player.

On this particular desktop, I want to avoid installing Totem and all the Gnome stuff it might bring with it.

But wanting another media player to try, I visited the Xfce recommended page, and saw "Parole".


Parole and "Could not initialise Xv output":

Right after installing, I tried to run Parole for the first time and hit a snag:


Here is the workaround...


The above reporting 'xv disabled' was accompanied by my Ogg Theora video playback, working just fine :)

Reading the help for parole, got me started but did not really provide enough information on how to use the --xv option.

Trying --xv off & trying --xv disable
...would get you nowhere!!

One advantage of parole being 'Free and Open Source Software' is that you can browse the source code, which is what I did...


Now I am no C expert (although I can get by at a push), but any intermediate programmer, seeing this, would probably have a stab at true and false being arguments to try.


--xv option true and false are persistent switches:

Again this is not so obvious, but a bit of trial and error showed me that you tell parole --xv false, and it remembers this for when you next playback a video.

To clarify: Switch --xv false or switch --xv true as you see fit, and then, play back your movie. Parole will remember your preference between command calls.

Note: You will only have to set it the once, then you should be all set and never have to adjust things again (hopefully).


--xv true being default for Parole - wise or unwise?

The advantage of relying on XV might be improved playback performance perhaps.

The disadvantage is that you might lose some folks who, like me, have a good working X11 setup, but xvinfo output says 'no adapters present'


For me --xv false is the way to go and Parole can then play videos just fine:


( The chap in the fair water ball, wearing Reina, is my nephew )

Now the next section is really very specific and involves me, confirming that, the driver in use for my video card is "radeon".
Skip to the end (Notes and Further Reading) if that sounds like too much.


xvinfo "no adapters present" - first step is to figure out driver card uses:


...and...


From experience I know from looking at both of the above, that my system is using the radeon driver (rather than the "ati" driver, which is also available)

The file /var/log/Xorg.0.log can be consulted on most GNU / Linux systems, to help you understand what driver choices your system made on your behalf.

I understand why /var/log/Xorg.0.log contains the level of detail it does, however if you just want to know which driver is in use, there is a fair amount of stuff to wade through.


Awk to the rescue - some code and gist also:

Here is a simple version, which I enhance further later...

/) ATI/ { count["ATI"]++ }
/) RADEON/ { count["RADEON"]++ }
END { print "lines really ATI count="count["ATI"]"\nlines really RADEON count="count["RADEON"]"\n" }

...and run that Awk code as follows:

awk -F"(0)" -f ati-radeon-xorg-counter.awk /var/log/Xorg.0.log

Above, you were hopefully, creating a file ati-radeon-xorg-counter.awk, from the 3 lines of code I provided, and if all is well, the Awk command might output:


An enhanced version of the awk script, gives a more definitive answer as shown:


...the awk code for the enhanced version is available as a gist here.

...and I embed the gist (fingers crossed) below:



Notes and Further Reading:

Parole relies on Gstreamer, so you might argue that installing Totem might not have required too many dependencies.

Note: The awk Gist I provided above, is little more than a snippet of code, however it does have versioning support, and so by looking in the block labelled "Revisions", you will be able to follow how the code developed from initial test, through to then enhanced version.

Awk is a very powerful tool, and is usually available on every GNU / Linux machine.

Try and play around with the Awk code example I have provided.

Github has support for adding your enhanced version, or forking as you see fit.

    Sunday, April 24, 2011

    devpts - Debian does initscripts rather than /etc/fstab

    .
    Issuing the mount command on a GNU/Linux system, you will see an entry similar to the following:

    devpts on /dev/pts type devpts


    Debian creates that mount via the following script:

    /etc/init.d/mountdevsubfs.sh


    Other GNU/Linux distributions might choose to have entries in /etc/fstab to create that devpts mount.


    Package to reinstall if devpts is not working as it should:

    The package initscripts contains the necessary files as shown below:


    ...and for non 64 bit PC systems...


    The above shows an extract of the file listings (A-R), that includes, the file we are interested in, for this article.

    I have shown the amd64 & i386 file listings for comparison, and to satisfy myself that there are, no immediately obvious differences (A-R)

    For Debian, some of the mount options for devpts can be altered by changing files in /etc/default:



    ...and 686 / 386 version ...


    Here are the permissions for those /dev/ entries of interest on my system:



    Sometimes working in a chroot environment can throw up problems with devpts, and the article here, gives an example & possible solution.


    Notes and Further Reading:



    The retro style font shown in the screenshots of my terminal, can be obtained on Debian using:


    apt-get install xfonts-terminus xfonts-terminus-oblique

    Friday, April 22, 2011

    The Cosmic / Divinity Trilogy

    I picked up "The Cosmic Trilogy" by C.S.Lewis, thinking i might be, treated to some good Sci Fi.

    What took me by surprise was the amount of Theology / Divinity in book two "Perelandra".

    ( I say surprise as it was several months after I bought the book that I picked up some new followers on social media, and realised from reading their blurb, that C.S.Lewis was, apparently a devout Christian, and is now pushed as something of a poster boy by Creationist causes. This did not put me off reading the trilogy, but I was a little forewarned about the subtext if it was to be found. )


    Would I recommend "The Cosmic Trilogy":

    Right now I am half way through the final book "That Hideous Strength", unless it blows me away, then my overall impression of the book collection is average

    I would not recommend C.S.Lewis for Science Fiction, especially given the years when the books were written (see next section)

    Having said that, even very average books, can have an sentence of two that you feel worth quoting:
    You're dropping asleep and I've talked your head off. It comes of being married thirty years. Husbands were made to be talked to. It helps them to concentrate their minds on what they're reading - like the sound of a weir.
    That quote was written in 1945 and I hold no opinion as to how proper it is, just thought it a lighter moment in amongst a Sci Fi yarn.


    What I have learned from reading the book and otherwise:

    Know your authors. If you are going to commit to a lengthy book, and especially a trilogy, then a quick google search of the author can help you understand what political/religious views they may expound, as well as telling a straight story.

    The year a book was written / first published can be important.

    The first book was published 1938 and the last in 1945, dark times for Europe. When you are surrounded by bad news and the horror of war, it is not surprising perhaps for this to filter into the writers work.

    As mentioned earlier, I am currently part way through "That Hideous Strength", which looks to be touching on some dark subjects including Eugenics.

    How central this is to the story, I will find out soon enough.

    These books are now Fifty years old and more, and so, some elements of the projections (design of space travel capsule, etc), seem clearly dated.

    ( This is something that anyone who reads past Science Fiction has to contend with, history has given you 50 or 60 years of development to disprove some of the speculations of the original Author. Cannot blame the Author for this. )

    Returning to the Author himself for a moment, it is not always the case that proponents of a cause will represent accurately. Do your own research rather than taking the articles of others at face value. It seems


    Fascism - What is it?

    It may seem a little off topic, but this extract from "That Hideous Strength", got me thinking:
    We face these disorders with a firmness which will lead traducers to say that we have desired them. Let them say so. In a sense we have. It is no part of our witness to preserve that organisation of ordered sin which is called society.
    Probably not fascism really, but rather a strong position to take perhaps.

    I could probably find out more about fascism, by reading some commentary on socialist causes, as a sort of contrary position.

    Neither of these things I will do just now, but maybe over many years, as I read more, I will firm up my own definitions.


    Facism as an insult, the sexless student in the "Young Ones":

    Having recently watched "The Last Station" (supposed biopic, bit of a romcom in some respects), I was surprised to find celibacy as a popular ideal in that film.

    That being a film about Tolstoy, and Rick quoting literature that may have included Tolstoy, it got me wondering about whether that was the reason for him being sexless?

    Probably not, as his character is described on Wikipedia as:
    Hypocritical, tantrum-throwing, attention-seeking Cliff Richard fan

    Rick from the Young Ones using "You Fascist" as an insult, is discussed here also.
    ( Note: I glanced briefly at that article, and make no representation of agreeing nor disagreeing with the bloggers politics, just pointed out the observation )


    Notes and Further Reading:

    I included the "Apologetics" link because, this phrase is attached by some to C.S.Lewis also, and I had to read up to see what it meant.

    I include a link to Lewis Carroll here to make my own clear distinction.
    Lewis Carroll was a Tutor in Mathematics, however C.S.Lewis struggled in this area.

    C.S.Lewis in his later career was "Professor of Medieval and Renaissance English", a position that he attained, a decade after writing "Hideous Strength".

    I commented earlier on the timing of the writing of this book (a dark time for Europe), now having entered the last 200 pages of "Hideous Strength", I quote an extract:
    The physical sciences, good and innocent in themselves, had already, even in Ransom's own time, begun to be warped, had become subtly manoeuvered in a certain direction. Despair of objective truth had been increasingly insinuated into the scientists; indifference to it, and a concentration upon mere power, had been the result.
    Sound like the sort of thing that might be inspired by the events of world war II, Eugenics research, and the rocket warhead programs? Maybe.


    That rambling paragraph provides great quotable material perhaps, for those who have a creationist agenda.

    But to put into context what that cause would be doing, I suggest this, that taking out of context extracts, from a book published by an arts Don, during the darkest period in modern Europe, to support your cause, is a bit weak.

    Saturday, April 16, 2011

    tablet video resolution - 640x480 for less than 10 inch

    HD video, how fantastic?

    Well actually for a lot of devices it is overkill.

    As the Digital Camera market became cannibalised by Camera phones, their answer was to keep upping the resolution.

    So now we have compact* Digital Cameras that take photographs in 720p and 1080p

    (*I can see the point for SLR type "Professional" specification cameras, to do extremely high resolutions like 1920x1280, but for compacts that live in pockets and handbags ... err no. )

    • OpenShot: 'Web' -> 'Youtube' -> 'Square NTSC' -> 'High'
       [ above gives okay 640x480 at video bitrate 8 Mb/s ]
    • OpenShot: 'Web' -> 'Youtube' -> 'Square NTSC' -> 'Med'
       [ above gives okay 640x480 at video bitrate 5 Mb/s ]
    • OpenShot: 'All Formats' -> 'Mpeg2' -> 'Square NTSC' -> 'Med'
       [ above gives okay 640x480 at video bitrate 5 Mb/s ]
    • OpenShot: 'All Formats' -> 'Mpeg2' -> 'Square NTSC' -> 'High'
      [ above gives okay 640x480 video bitrate 15 Mb/s ]
    The four options above give output that looks great on the Archos 5 internet tablet.

    ( I emphasized the 'Med' options as they are what I would normally use - a reasonable balance between quality and filesize. The last option which uses video bitrate 15Mb/s might be useful for larger tablets or if you view you videos on a large resolution monitor )

    In OpenShot the menu File -> Export Video    will bring up a dialogue box, with two tabs 'Simple' and 'Advanced'

    The 'Simple' tab has boxes for 'Project Type', 'Target', 'Video Profile', and 'Quality', which should be set to the values in the bulleted list above.

    There should be no need to consult the Advanced tab, but I give an illustration here for those who want even finer grained control over the output:



    Mpeg2 - why not Mp4 or H264?

    Quite simply, Mpeg2 produces good quality, compact, video that looks great on a 5 inch tablet.

    H264 / Mp4 are codecs I have looked at also, however they did not seem to offer either (i) smaller file size (after encoding), or (ii) better presentation results (looked the same to me)

    ( Having read about the Free Software Campaigns MPEG-LA boycott, perhaps I can do a little, by not advocating their newest video standard, and including a banner )

    Newer android tablets have WebM support, and OpenShot includes WebM support on newer GNU / Linux installations.


    Links and Further Reading:

    The Archos 5 tablet is a capable Android tablet, although I do not own one personally.
    ( I do help out other folks convert their high resolution videos for use on their own Archos 5 inch tablet though. )

    If you are really short of file space, then it is possible to manually adjust all 4 of the options in the first paragraph downward to use 1 Mb/s, however the quality reduction will be quite noticeable.

      Wednesday, April 13, 2011

      python - roots in teaching, now in enterprise

         .
      How suitable is Python for teaching folks who have no programming experience?

      It is just this situation that prompted Guido Van Rossum to create Python.

      Without wishing to paraphrase (see links at the end and form your own comments), I draw out my own three points:

      1. Readability counts.
      2. The language might want to have seem a little familiar in style to Mathematical constructs / thinking.
      3. Resist the temptation to add new constructs all the time, and brevity is not everything (see 1)

      Such ideas might predate Ruby, and some other languages which make more use of keyboard symbols.


      I like Ruby and I have programmed in Ruby.
      However choosing Ruby as my main language, might well mean me choosing less of (1) and (3) above.

      I am not learning my first language, but those who are, might benefit from having to pick up fewer symbols.
      [ They may already be full of symbols having just left a Mathematics class :) ]


      How suitable is Python for learning - access from any Computer?



      Here I have shown a short while loop example, that is run online.
      ( Interactive web page at: http://people.csail.mit.edu/pgbovine/python/tutor.html#mode=edit )

      Python is easily to install on any computer.
      (If the school admin can install a browser, then they could certainly visit http://www.python.org/download/ and click once the download is complete. )

      Having seen an example of Python code above, this might be a good opportunity to show a slide from Guido himself (2006):


      Now look again at the code in the Fizz Buzz example above and ask:
      • Does it seen natural? Is there some feel similar to how we might express the recipe in natural language?
      • Does it require the use of plenty of symbols / constructs which a school age child would need to learn new?
      I think it stands up fairly well.
      (Explaining that elif is an abbreviation for 'else if' is one thing I see as new learning.)

      count = 1
      while (count <= 100):
        if (count % 3 + count % 5 == 0):
          print "fizz-buzz"
        elif (count % 3 == 0):
          print "fizz"
        elif (count % 5 == 0):
          print "buzz"
        else:
          print count
        count += 1
      


      A Simple IDE for Python - no install required:

      Look again at the image above for the fizz buzz example, you might spot the highlighting. That online page at Mit.edu, does simple stepping, that a learner can follow.

      What is not visible in my crop, is the box which shows the internal value of the variables as things progress. Seems a good teaching aid, and no install required.

      Visit the Mit.edu page yourself and paste in my code above, or some variant, and step it through using the buttons. Works well :)


      Pythonic programming and fizz buzz:

      The intention in this article is to act as an introduction, and provide a very simple example.

      How much rigour about Python style, you put into your teaching is up to you.

      ( It is not my intention here, to aim to be 'Pythonic', or provide a perfect coding example. If you want that, then there is a link at the end of this article. )


      Python as part of college "Introduction to Programming":


      Teaching College students programming is a little different from teaching school age.

      Philip J Guo makes some good points in this article, about why Python may be the right choice for College.


      Notes and Further Reading:

      The final few links given below are provided as a further consideration, some might argue a minor consideration. Programming languages that involve more [ non-natural ] constructs, will perhaps present greater challenges, to people who have some difficulty absorbing new symbols and associating those symbols meaningfully.

      Monday, April 11, 2011

      usb keys - the drive for cheaper components

      Competition drives down prices (this is a fundamental plank of what we have come to expect of Western society today)

      Memory gets cheaper each year it seems.

      Have had two usb flash keys from MicroDirect in the last year, and both have proved unreliable.

      Four possibilities in my mind:
      1. In constantly driving down of prices, quality is being sacrificed
      2. MicroDirect are somehow sourcing poor quality products
      3. This is the flash memory industry as it is today, variable quality but low cost
      4. Just bad luck rather than a supply issue.
      The brands are Kingston and Corsair.

      The original Kingston (flip around style) had poor build quality, and failed within 5 months.
      ( Kingston quality control should have picked up that the device rattled when shaken, and sent it back to the supplier, rather than issuing to retail. Their brand reputation suffers if they do not. )

      Rather than ask for the same replacement, I asked about a different brand and was supplied with a Corsair "Flash Voyager"

      The Flash Voyager has lasted a month longer (6 months) and is now unusable.



      Needless to say I am thrilled about losing the data that lived on those keys, when they stopped working.
      ( Minor data loss twice in 12 months, through no fault of mine, irks a little. )

      Having applied to MicroDirect for an RMA, my next step will involve the postage cost, of returning another dud to the retailer.

      I am not blinkered to the retailer point of view, perhaps in the circumstances, they might feel, also, that they have lost out.
      ( The cost of processing returns, and obtaining credits, from Kingston and Corsair is something MicroDirect would rather avoid, I am sure. )

      Wednesday, April 6, 2011

      Cups - job cancellation - group membership is the key

      There are several printing systems which you might use in Debian, depending on your desktop of choice (Xfce, KDE, Gnome, Lxde, etc)

      If you use cups, then one of the tasks you will want, at some point, is "Job cancellation"

      When this task is first required, I find myself immediately leaping to the following questions:

      What port is the cups 'admin interface' running on so I can open the admin web page in a browser?

      ...and...

      Do I enter admin / root where the authentication prompt asks for "User Name"?


      ...and...

      Where in /etc/ can I find the password for the admin / root user?

      ...and lastly I am probably about to head out to websearch for 'cups admin default password'


      Turns out I am asking all the wrong questions and wasting my time.


      How to do Job cancellation in cups:

      ( should not require a 'sign-in' - the key is group membership )


      On a multi-user system, not all users will necessarily have access to a printer.
      ( It could be that your "Industrial Colour Laser 9000" is not something you want every team in the office to be able to access )

      If your OS of choice has a 'server distribution' and 'desktop distribution' (Ubuntu perhaps or the Red Hat / Fedora combination), then some might feel it is appropriate for the 'desktop' version to have automatic membership of lpadmin.

      Once your username is a member of lpadmin, then you can proceed to this screen:


      Which will list the queued jobs and offer you the option to 'Cancel' for each job in the queue*.
      ( Url is http://localhost:631/jobs/ which you can bookmark in your browser )

      *Note: you might have to log out & log back in again, in order for the new group membership to take effect, then afterwards access http://localhost:631/jobs/


      GNU / Linux has several options for backend printing systems, as I hinted earlier.

      If you prefer a different printing backend, then, for Xfce, the settings here:


      ...and here ...


      ...will help you switch to an alternative.


      Notes and Further reading:

      Cups is not universally liked, and different GNU / Linux distributions use more or less of it to their taste.

      Quoting from a Red Hat printing tutorial, two advantage of cups are:

      1. Available on all versions of Unix.
      2. Can be accessed from a terminal using a text based web browser (such as links).
      Personally I quite like the idea of http://localhost:631/ in a browser for printer control, seems simple and it works. So I do not mind a quick manual group add command, in order to set things up my end :)

      Saturday, April 2, 2011

      Federation - some plus, plenty negative - Canterbury

      In competition, a useful tactic is to pull your competition onto ground, on which you are particularly strong.

      Part of the reason Microsoft has lost it's way in Enterprise software*, is because the newer upstart (Google) has become it's focus.

      Microsoft has launched its first ever antitrust complaint, telling the European Commission that Google is engaging in a variety of anticompetitive practices.
      Source: zdnet.co.uk (March 2011)
      ( I will not comment on the merit of the antitrust complaint, as it may involve lengthy examination ) 

      You could argue that Microsoft is just evolving by reacting to, Google online document editing, and cloud computing initiatives.

      The plus for Google is that whilst the competition, is busy trying to emulate, then they are necessarily taking their eye off the traditional strengths.

      Microsoft was once very successful, in locally installed Enterprise software* such as Server OS and Enterprise Database.
      Opinion: Oracle (not Google) with full stack (after Sun acquisition), Unbreakable Linux, and MySQL, are eating into that successful business.


      *I specifically exclude desktop OS software here as the players I am considering in my thinking are Google, Oracle, Microsoft and it helps to consider areas where they currently compete directly.

      ( When Chrome OS launches AND if [ever] Oracle makes a full desktop OS play, then I could bring desktop OS into this article )


      The GNU / Linux systems vendors in 2011:

      Are in a state of flux, should they be aiming for servers, desktops, netbooks, tablets ... where is the market. Is touch really necessary, do we need flexible shell style desktop window managers, etc.

      The Debian project has just launched the best Debian ever (Squeeze).

      However with this latest success, comes a raising in profile, and Debian is facing new threats.
      1. The amount of code submission, in languages owned or associated with (OOAW) those opposed to 'sofware freedom'
      2. A two year 'language envy' phase (2010 and 2011) which has led a small number of developers, to push (OOAW) code nearer to essential tools.
      3. Effort required to pedal against the 'non-free' elements of a Linux kernel.
      4. Point and Click mantra
      5. Federation (the subject of this article title)
      6. Other distributions seeking 'Copyright Assignment' commitments from developers - may or may not be a threat - arguable.
      7. New subprojects which are included in Debian and derivatives, but are using money gained from this association, to fund development for platforms that are opposed to 'software freedom'
      This article would turn into a book if I explored all 7 of those points in detail, however I will draw out (4) as worthy of a little expansion here and you will see why hopefully.

      I mentioned in the first sentence of this article, and in discussion about Google and Microsoft, the dangers of allowing the competition to draw you into their approach / strategy.


      The 'Point and Click mantra' has not had too much effect on Debian yet, however there is pressure. Because the number of Debian developers who are active in Perl is slowly declining, and because Ubuntu (I guess) has no big Perl community to speak of, there have been some suggestions regarding package management (apt)

      It would be a mistake to tie too closely command line tools and graphical interface. Sound familiar? Well that is because Windows and Mac have adopted that approach right from the start.

      Why would it be a mistake? Because traditionally the Unix way is to develop small modules of code, which are efficient and well tested, and link them together first in CLI form, and then optionally a User Interface coupling.

      If Ubuntu developers want to do 'rapid development' involving tools and languages that tie the application logic directly to the User Interface, then that is up to them, however such an approach has risks.

      Python is a superb language, Python has great user interface libraries PyGTK, PyQT, wxPython. Ubuntu has plenty of Python developers to call upon.

      The 'language envy' phase which has blotted small portions of Debian should never be allowed to run unchecked, towards central tools such as package management.

      Ubuntu likes 'Point and Click' (a lot). Ubuntu has made a decision to move towards Wayland / Unity rather than X11 GTK / X11 QT, that is their choice.

      However the Ubuntu project should have the conviction to fund PyUnity or some other serious effort, rather than being drawn into areas, which have been a weakness of Windows and Mac (close coupling and tendency towards less-modular methods of development)

      ...And as if by magic here is perhaps something that might be a first step in that direction:
           https://code.launchpad.net/~unity-team/unity-place-sample/unity-place-python

      The true test for a new user interface python link will be if it ticks the following boxes:
      • Developers use it because it is great
      • Developers are encourage (by Canonical) to use it because it helps them play to traditional *nix strengths.
      • It has enough resource committed by Canonical to make it stable and usable enough for it to play a serious part in November 2011 release "Oneiric"
      • Canonical develop this to be close to a feature match for the mature PyGtk / PyQT / wxPython toolkits.
      Canonical would really impress, if they also funded a bit of development of one of the Python IDEs (IDLE, Eric, or Pyragua) to make creating Python Unity applications a breeze for developers.
      ( This would help mitigate threats (1) and (2) above in Ubuntu's own realm )

      Revisiting my point about package management, however it happens in Debian and Ubuntu, it should be CLI based (initially) and use the modular principles of development which have given *nix based distributions a reputation for stability.


      Why might Federation be a bad idea for Debian?

      Because it would mean breaking the Debian Social Contract

      Unfortunately different distributions have different interpretations of what 'software freedom' means.

      Some have a leaning towards 'open core', and might put a Social Contract way down the list, behind enterprise subscriptions.

      ( Even as an April Fool's joke, there are always a few who might say "why not do it". )

      Rather than write much more in this section, perhaps refer back to the threats 1->7 mentioned above, and ponder for each item, whether a Federation might increase the threat or not.




      Federation - An analogy outside of GNU/Linux distributions:

      I am not a Euro-sceptic, and am positive about European integration (mostly), however it does have some drawbacks.

      Proprietary software lobbyists probably love 'federation', because it presents an opportunity to 'pick the weakest link' and focus all efforts there. When that weakest link has been fully exploited, then move onto the next weakest and so on.

      In Europe 5 years ago it was UK who was drinking the 'proprietary software is your digital dna' koolaid, now it is France*.

      Nicholas Sarkozy delivered a profound judgment on Microsoft yesterday, declaring that the company personifies the values of France and Europe.

      Italy I will not comment on, as I have no real current feeling for how things are in that country. However I have included a search at the end of the article if interested.

      Germany has, so far, not been viewed as the weakest link in that respect, and my hopes are, that will continue to be the case.

      I look forward to the day when UK, France, Germany, have all developed a resistance to the lock-in, proprietary software seems insistent on bringing with every sale.
      ( Lock-in of the cloud is another battle ground, and the lines are already being drawn - link to announcement about new centre in Brussels at end of article )

      Back to 'software freedom'. Novell is dead, so who next for the weakest link?
      Pick a distribution and swill the name around, does it feel likely?

      Could you honestly say, for that distribution, that they could never 'do a Novell'? and sign exclusivity agreements regarding patents and copyright, with a vendor opposed to 'software freedom'.

      ( Later attempting to transfer IP across to that same vendor, under the cover of some IP collective. )

      What Federation would bring to Debian is a ticket in to 'The Weakest Link', and those who seek to weaken / destroy such things as a 'Social Contract', would use selected Debian partners to achieve those ends.


      If you find my Europe analogy not to your liking, and think the Europe really isn't a battle ground for lobbyists, then you might instead ponder the question that ZDNet raised in response to the anti-trust news:
      ZDNet UK has asked Microsoft why it made its maiden antitrust complaint in Europe, rather than the US, where both it and Google have their headquarters. The company did not respond to requests to provide comment on this matter.



      Links and Further Reading:

      The last link is to the GPL license (Version 3 is the current version). If you vendor does not support it, then dig deeper and explore which aspects in particular the vendor has an objection to.
      ( If they support a previous version then manually diff GPL2 and GPL3 and there you have a good indication of the vendors thoughts. )

      This is your opportunity to get to know your vendor, and in particular know what software freedom aspects you might be expected to sacrifice by partnering with that organisation.

      Here is an example. If you work for the Health Service and want a modern speedy desktop (64 bit), then having an old work application that only works on 32 bit windows presents you with a problem. Do you justify budget spend for another license? Wait we have a solution for just that sort of issue and it only costs $nn per seat.

      An OS that truly conforms to the ideas of 'software freedom' makes no such restrictions.

      Virtualisation issues have also been reported when trying to use the 'Clone' functionality to manage Server 2003 / 2008 installations. It seems the 'phone home' licensing check on startup, disables the networking in the clone.
      ( This sort of anti-feature could be an attempt to make it difficult to run Server 2003 in non-Microsoft virtualisation containers, or simply an oversight. Either way it is another example of how corporate use of virtualisation is made more difficult when non-free software is part of the mix. )


      I am neither anti-France, nor pro-Germany, I simply hold opinions based on how the countries appear currently, with regard to 'software freedom'.
      ( When France gets a change of Government and stops drinking the koolaid, the next weakest link will probably then draw my criticism. )