Archive

Archive for the ‘FOSS’ Category

MySQL, NoSQL or NewSQL?

MySQL has been pushed to its limits in large scale web scenarios, where the load of millions of users concurrently accessing SQL relational databases start to show the huge overheads and subsequent limitation of this type of database. A recent “move” on NoSQL databases appeared, not without their own idiosyncrasies and issues, and more recently a new… er… NewSQL paradigm has been proposed as a scalable, efficient and reliable solution to the problem. Have a look at why Facebook is trapped in MySQL ‘fate worse than death’.

The Boost.Threads Library (C++ –> C++0x?)

Threads in C++ has been a long topic of pain and moaning, mainly because the C++ standard does not provide (until recently, at least) a platform independent and efficient support for threads built-in the language (POSIX pthreads lib is not C++; being a C library, it requires some careful use when dealing with multithreaded C++ objects which usually include constructors and destructors).

Options to circumvent this lack of multiplatform thread support ins C++ include using other C++ libraries such as Nokia Qt, Poco, or Boost.

Boost is a set of free peer-reviewed portable C++ libraries (more info here and here) that implements for some time now the Boost.Threads library, which is a highly optimized (and growingly flexible) platform independent thread library (i.e. should work in Linux, OSX, Windows, etc), and that seems to be the candidate best positioned to be included into the next C++ standard revision (i.e. C++0x). When that happens, the need for 3rd party libs in C++ for platform independent thread support will be finally over.

You can learn a bit more about how Boost.Threads will handle threads in the following articles:

The Boost.Threads Library | Dr Dobb’s Journal.

What’s New in Boost Threads? | Dr Dobb’s Journal

Categories: Development, FOSS, Programming Tags: , , , , ,

python_select is deprecated (in MacPorts)

July 7, 2011 1 comment

After some head banging with MacPorts in order to try to install python_select, I’ve found an explanation why python_select, although being displayed as being installed and active by MacPorts, still does not get installed in /opt/local/bin (and therefore, it borks when trying to run it from the command line): #29531 (_select ports no longer provide _select binary) – MacPorts.

So now it seems that python_select was deprecated and we should use instead (e.g. to select python2.6):

% sudo port select python python26

Stand-alone code for numerical computing

How Open Source Projects Can Prepare Students for Better Careers

Why the Arduino Won and Why It’s Here to Stay

Make: Online | Why the Arduino Won and Why It’s Here to Stay.

Really nice article explaining some of the reasons for the Arduino Success. One of the most important reasons is, IMHO, its open source hardware/software approach.

Android Adds USB Host + Audio, Open Hardware ADK with Arduino; Good News for Mobile Music

Qt for Android (project LightHouse)

February 15, 2011 Leave a comment
Categories: Development, FOSS, Programming Tags: ,

Confusing days for Qt (and its developer community)

February 11, 2011 2 comments

The Elopocalypse: Nokia chooses Microsoft | Be the signal.

So its seems Nokia, the giant who in the recent years seems to completely have lost its bearing, has decided today to party with Microsoft and include WMP7 as (yet another) software platform for their… er… devices (nowadays I’m not really sure what kind of stuff Nokia develops/sells anymore… cellphones? Smartphones? MobilePhones? MobileNet devices? Go figure…).

Now, I couldn’t care less about Nokia and their schizophrenic Symbian, MeeGo, WMP7 personas, but since they bough Trolltech a couple of years ago, I had since then this gut feeling that no good things would happen in the mid-term to Qt (a C++ framework originally developed by Trolltech and which is more than a multiplatform GUI development Toolkit, allowing to conveniently “write once and run everywhere” quasi-natively looking and felling apps for Windows, OSX and Linux).

And here we are…

The thing is that while coding for Marsyas, Qt has been the chosen GUI toolkit that allowed the project to easily deploy some nice GUI apps in the three main OS platforms (but fortunately, and mainly thanks to George “stubbornness” in not allowing Marsyas to become dependent on any 3rd party libs/toolkits, Marsyas can use any other GUI toolkit). Qt is in fact a quite nice piece of software, well documented and with good support, and almost paradoxically, made fully FOSS by Nokia when they bought Trolltech (at that time, MS Windows developers had no access to a FOSS license of Qt).

That said, and as someone that wrote some code using Qt in the past, I should probably now re-evaluate if my next projects should take Qt as a platform of choice. A good thing about Qt is that it is FOSS, and so it’s future may depend more on its developer base than on Nokia itself (and that’s why I’m curious to see what the KDE and (K)Ubuntu reactions will be), but these are confusing days for a software toolkit which may be relegated by its own owner to moribund symbian (eck!) or MeeGo platforms than not even Nokia seems to be betting hi-hopes anymore…

GPL Enforcement in Apple’s App Store/Android Market Place

February 11, 2011 Leave a comment

So it seems that using GPL licensed software for iOS apps distributed on the Apple App Store (and yes, there are “other ways” to distribute software for the iOS-ish platform ;-) ) is a problem…

According to Columbia Law School professor Eben Moglen and head of the Software Freedom Law Center (SFLC),

“The problem isn’t in the license terms. The problem is that the Apple App Store ToS for people wanting to distribute through it require that each app sold (even at price zero) must be licensed for use on a single device only. Permissively-licensed FOSS can be transacted for in the App Store, because its license can be replaced by single- device-only terms. Copylefted software can’t be un-freely relicensed, so it can’t be transacted for there under Apple’s current ToS.”

The Free Software Foundation confirms this situation, as can be understood from this post on their website about GNU Go on iOS :

GPL Enforcement in Apple’s App Store — Free Software Foundation — working together for free software.

An iPhone port of GNU Go is currently being distributed through Apple’s App Store. However, this distribution is not in compliance with the GNU GPL. The primary problem is that Apple imposes numerous legal restrictions on use and distribution of GNU Go through the iTunes Store Terms of Service, which is forbidden by section 6 of GPLv2. So today we have written to Apple and asked them to come into compliance. We would be happy to see Apple distribute these programs under the GPL’s terms, but unfortunately, it seems much more likely that they’ll simply make the problem go away by removing GNU Go from the App Store.

An interesting question is: “What about Android?”

Android vs. iPhone: The GPL Question

According to Moglen, if you want to distribute your GPL-software on Android, you should be in the clear:

“So far as we know–and we have reviewed the Google Android market terms recently, so change would have to have occurred within the last few weeks–they do not place any limitation on how a market participant’s application is licensed that would inhibit distributing Android applications in the market under copyleft licensing.”

So, according to various specialists, the Android Market provides some flexibility of its terms in what regards app distribution, which when carefully tuned, allows compliance with the GPL (contrary to Apple App Store, which has zero flexibility on their ToS).

An interesting point to note regards Dual Licensed GPL software (as is the case of Marsyas). In such cases, a developer may acquire a commercial license of the software (freeing it from the GPL license terms) and therefore use it for commercial use (without being obliged to distribute any source code) or develop an iOS app and distribute it on the Apple App Store (even as a free app).

Follow

Get every new post delivered to your Inbox.

Join 100 other followers