What happens on Facebook
I saw an announcement made by Ronny on Facebook that he's about to organise a meeting about MySQL and MariaDB. Well, I have to admit that I didn't have that much contact with Ronny but I knew that he was involved in the initiation of the Linux User Group of Mauritius (LUGM), and that Ish already mentioned his name a couple of times, mostly because of the inspirational approach and other funny things. Well, long story short. Ronny mentioned that one of his friends will be around on the island for some vacation and that said person agreed to do a session on the history, the (eventual) future and some technical aspects of MySQL and MariaDB. Sounds great and having an expert from abroad doesn't happen too often...
Okay, next Ronny was looking for a decent location and I suggested to him that he might his luck at The Flying Dodo Brewery in Bagatelle. In general not a problem but those guys over there speak money and in order to get their side room with some conference aspirations they wouldn't agree on the usual deal for user groups. Meaning: Room for attendees consuming food & drinks. As I had personal interest in this session to happen, I backed Ronny's intentions to go forward with it and to let me know in case that there financial constraints to be expected. Running your business provides you with some benefits and allowances. Anyway, there was a little fee for the evening to be paid, and I was glad to cover those expenses through my business: IOS Indian Ocean Software Ltd.
Lets rock with MySQL and MariaDB
The "event" was scheduled for the evening hours, and after the official part it was commonly agreed that we are going to leverage the location and have a decent after-meeting session at the brewery. It's always nice to combine work with pleasure - particularly in that specific order.
Our presenter, an international consultant for MySQL and MariaDB working at SkySQL AB at that time, named Joffrey Michaie did a great job during the evening. First, he gave us a brief history lesson about the origins of MySQL, then elaborated on the recent purchase event during the last couple of years and went over the actual reasons why MariaDB has been created. Well, Sun and Oracle did a great job to get quite a number of good developers on MySQL as well as the community on their feet. The fork of MySQL into MariaDB is reasonable given that Oracle doesn't need to support two opposing RDBMS within the same company - astounishingly that's a very familiar constellation seeing Microsoft SQL Server and Microsoft Visual FoxPro (VFP) in the past. Anyway, approximately 90% (and more) of the original MySQL developers quit their job and went over to a company called SkySQL AB - which is solely temporarily and there had been a press release recently, that it's now officially MariaDB AB. Monty Widenius had his coup and the core development team is back to its roots.
And... best of all: MariaDB is an inplace-replacement for MySQL. In case that you're operating your website or blog on MySQL you can simply install and use MariaDB instead of. It works flawlessly.
Next, Jojo gave us some corner data about the wide-spread use of MySQL/MariaDB. Actually some big internet companies or better said their websites (like Facebook, SAP, Xing, etc.) are driven by MySQL installations spread over hundreds or even over thousands of machines. Of course, this requires some interesting architecture not only regarding the physical setup of machines and networks but also in terms of storage and replication features. High-availability (HA) is the magical keyword in this case. At a certain size you have to switch towards DB clusters and Joffrey gave us good information about one could setup such clusters using Galera. He also gave us a brief overview of some specialised storage engines available in MySQL/MariaDB which definitely go far beyond the capabilities of the standard types like MyISAM or InnoDB.
Full screen entertainment for geeks
The full presentation of a whooping 107 slides is available on SlideShare - Thanks to Joffrey and the LUGM!
On my side, I have to admit that I was a bit interruptive as I had a good number of questions regarding certain features I'm used to using either VFP or SQL Server. Especially given the fact that I was involved in the software architecture and development of client-server applications that run on roughly 100 instances of SQL Server including different types of data replication. Yes, we did partitioning and the database has a variety of replication scenarios for different tables; including typical master-slave replication but also enhanced 2-way replication. Also dealing with data volumes in 2-digit and even 3-digit regions is not unusual with my clients. And there is quite a difference between writing and running queries against a low amount of records compared to tables with 15+ million records. Not to forget about write and update operations. Patiently, Joffrey took note of my questions and he had very good answers how certain setups and requirements could be solved and handled with MariaDB. One of the interesting topics was the discussion about data types of "uniqueidentifier" versus "UUID" versus "Global Transaction ID (GTID)". Well, basically they are the same... Whereas SQL Server handles replication based on that specific data type, MySQL or MariaDB remains on dealing with integer-based column data types (comparable to Auto-Increment in SQL Server) - which I find problematic.
MariaDB is not just the database anymore; it's a platform for application developers and database administrators
Anyway, the evening had some interesting chunks of information for me and I enjoyed the whole presentation. Joffrey knows how to keep the audience focused and engaged into the topic. And shamelessly we extending the scheduled 1-hour session by at least 30 minutes or so. Until all questions have been asked and answered. And after all this talking and listening it was time to move over to the social aspects of the evening and to get some refreshments.
Networking session and future activities
Later on I managed to have a little smalltalk with Jojo and even though the meeting was under the aegis of the LUGM, I informed him about the existence, goals and intentions of the Mauritius Software Craftsmanship Community (MSCC). Dunno, how he took it but since then we are still in touch on social media networks, and have a chat from time to time. On my part I'm looking forward to the next opportunity to hear about MariaDB from Joffrey - and of course I won't hesitate to act as a sponsor again.
Oh, and thanks for the goodies - I really like that black MariaDB 10 T-Shirt.
Disclaimer: Images are courtesy of MariaDB Corporation Ab. MariaDB is a trademark or registered trademarks of MariaDB Corporation Ab in the European Union and United States of America and/or other countries. MySQL is a trademark of Oracle Corporation Inc.
I saw a tweet by OMG! UBUNTU! this morning, saying « Opera for Linux Makes a Triumphant Return ». I checked the article and followed the instructions to install Opera on a non-Debian derivative. The instructions are published on Github by an Opera employee, known as ruario on Github.… Read more ➡
I am a big fan of mind-mapping software and, for years, I’ve been using Freemind.
I’ve noticed that a lot of people are moving towards XMind which, for some peculiar reason, is only available as a Debian (.deb) package. This is a bit problematic as I run Fedora and CentOS which are both based on RPM (Redhat Package Manager). Here is how I managed to convert the .deb package into an .rpm which can then be easily installed with a yum localinstall:
(1) Download the Debian package(2) alien -r –scripts package.deb
This command (alien) converts the Debian package into an RPM and makes sure that any scripts (pre- and post- installation) will run when the RPM file is installed. See this for more info.
(3) The issue is that the RPM will fail to install as there is a conflict with three directories: /, /usr/bin and /usr/lib. The solution is to install rpmrebuild and use it as follows:
rpmrebuild -pe xmind.rpm
Remove all lines for /, /usr/bin and /usr/lib in the %files section and you should then get an RPM. See this for more info.
A few days ago I received a comment on facebook asking if it would be possible for me to make Linux video tutorials. I recall in a previous LUGM meeting, we did agree that it will help to bring Linux into Mauritian homes if we make Linux tutos in Mauritian Creole.… Read more ➡
Nadim along with several students from Université des Mascareignes (UDM) collaborated the past few weeks in order to organize a Linux Festival on the university campus. I was a passive reader of the emails going to & fro and also the lengthy group chats.… Read more ➡
A few years ago, Internet was very slow in Mauritius (and some will argue that this is still the case…) Downloading a Linux DVD (or, more precisely, an ISO image) took ages.
Now the Internet is way quicker but downloading a 4Gb ISO image still takes a long time.
A few years ago, a Debian guy invented Jigdo, a tool which I’ve been using for some time now to only download the few files I don’t have when a new Linux release is made and reconstruct the ISO locally. The steps to follow are documented in this post but are basically:
(1) Download the full ISO on a server where Internet is very quick (I do that on a VPS I have in the middle of the Silicon Valley where I routinely get 250Mbit/s). Let’s call the ISO image Centos-Linux-6.6.iso
(2) Use jigdo to create a .jigdo and a .template set of files. Before that it is important to mount the ISO on the distant server so that the individual files in the ISO can be accessed directly by jigdo. I generally do:
mount -t iso9660 -o loop Centos-Linux-6.6.iso Centos-Linux-6.6
jigdo-file mt -i Centos-Linux-6.6.iso -j Centos-Linux-6.6.jigdo -t Centos-Linux-6.6.template Centos-Linux-6.6/
(3) On completion, Centos-Linux-6.6.jigdo and Centos-Linux-6.6.template (which are generally small) need to be downloaded locally.
(4) The final step is to reconstruct the ISO locally. This is done by:
jigdo-lite will prompt for folder names with existing content. For example, when I used jigdo yesterday to reconstruct the latest Centos 6.6 ISO image, I already had a Centos 6.4 DVD and all the updates released since. I only had to point jigdo-lite to these existing folders and, voilà, in a few minutes I had the latest Centos 6.6 ISO image ready.
To be complete, jigdo-lite complained that one file was missing (python-paste-script-1.7.3-5.el6_3.noarch.rpm) which I had to download manually. It was just a small file so no big deal.
All in all, jigdo, even if the software is now in maintenance mode, is still a lifesaver for me. I hope it becomes one for you too.
Have fun ;-)
I’m having some fun with pygame, a library to create games in Python.
The exact steps to follow to have pygame in Python 3 on Fedora Linux are detailed in the Python Fun blog. In essence:
- yum install python3 python3-tools python3-devel
- yum install SDL SDL-devel portmidi portmidi-devel ffmpeg ffmpeg-devel
- cd /usr/lib64 && ln -s libportmidi.so libporttime.so
This takes care of all dependencies needed (minus smpeg which does not exist in recent Fedora Linux distributions). Then:
- Get the pygame source code (e.g. hg clone https://bitbucket.org/pygame/pygame)
- python3 config.py
- python3 setup.py build
- python3 setup.py install
That’s it! Test by running python3 and importing pygame.
Have fun creating games ;-)
I love Fedora Linux and I love beautiful fonts. And, to be frank, these two do not easily love each other.
I’ve tried learning the complexities of subpixel rendering and bytecode hinting using freetype, I got fonts from our friends in Redmond and dabbed with infinality, which is a set of patches for freetype.
infinality worked really well until I realised that some software, especially Gimp 2.8 which I use on a daily basis at Knowledge Seven, do not work very well with it.
Fortunately, I also love Reddit and I stumbled upon this comment by ununununu:
You don’t need Infinality for pretty text rendering in Fedora. Here’s how to do it.
You may have noticed that fonts appear jagged and generally terrible-looking in Fedora 17 (and possibly in 18) while they appear smooth and lovely in Ubuntu. Both distributions use freetype for their renderer (kind of), though with different default settings.
The first step is to upgrade from the default freetype package to freetype-freeworld from the RPM Fusion repository. This version of freetype makes use of RGBA subpixel rendering which isn’t included in the default package for, uh, licensing reasons maybe?
Next, use gnome-tweak-tool to set Font Hinting to “None” and Font Antialiasing to “Rgba”. But that’s not all! There’s one more setting that Tweak Tool can’t set.
Create a file called .Xresources in your home directory. Its only contents need be Xft.lcdfilter: lcddefault which actually enables the subpixel rendering.
That’s it. I works great and I’m now looking at gorgeous fonts on my Fedora Linux laptop.
I couldn’t install the latest version of the Liberation fonts though because of Wine. I’ll try later.
[Thanks to Cuong, I did it, at the end, by downloading the Liberation 2.0 TrueType files and overwriting the existing Liberation 1.0 files in /usr/share/fonts. Then I changed my default font in Chrome to be Liberation and used the Stylish extension (with this script) to have this gorgeous font in Gmail, Facebook, Twitter, etc.]
[A second update: Some fonts from our friends in Redmond (e.g. Calibri) look crap at small sizes because of the bitmaps embedded in them. To make freetype ignore all these crap bitmaps, put the following in, say, ~/.config/fontconfig/conf.d/10-ignore-embedded-bitmaps.conf:
<match target=”font” >
<edit name=”embeddedbitmap” mode=”assign”>
It’s been the hot talk since a few weeks. Well, the presentation was finally due today at the University of Mauritius. Scheduled for 13h00, however I reached at noon. Planned to meet Shelly first and explain her a little about Linux (in general) and then show her what’s Bash.… Read more ➡