Codemotion 2012 – oltre al codice c’è l’emozione

In March I attended Codemotion in Rome – an event for the community, created by the community. The event has grown yet again not only in the number of attendees (over 3000) but also from a one day conference to a full two days and a concurrent event in Madrid. There was not a free minute but talk after talk.

 

Talks

On Friday, the conference was divided into 5 tracks:

  • Hot topics
  • Web
  • Mobile
  • Innovation
  • Enterprise

On Saturday, we had 7 tracks:

  • Open
  • Web
  • Languages
  • Methods
  • Gaming
  • Security/HW
  • Web/Mobile

With almost 100 talks, all the hot topics were covered:  Cloud, JavaScript, HTML5, Agile, Arduino, Big Data, Hadoop, JAX-RS 2.0, Gamification and much more.

Don’t forget your CV

All the sponsors had a stand at Codemotion but they were not there to present their products but to collect CVs. This event allows people to present themselves to key companies, drop their CV, have a chat with HR people and hopefully they will get the job of their dream or at least start the hiring process. The Codemotion people also offer tips on CV writing, presentation etc. Sponsors included Samsung, Telecom Italia, Oracle, Red Hat, Microsoft and many more.

Design

 

 

 

 

 

 

I liked the design by Woma – I like the idea of cubes that can be piled up in different ways to say different things.

Fellow traveller

Surprise! On Friday morning, as I was setting up, I met Arun Gupta (Oracle) who very kindly brought me breakfast. Nice! I first met Arun during the first part of the week at the 33rd Degree conference in Krakow. He came to Rome to give his talk on “JAX-RS 2.0: RESTful Java on Steroids” and then flew to Codemotion Madrid before going back home to the US. I don’t think I could have attended yet another conference without a little break.

 Future

See if we can make it to 4000 attendees next year. Hopefully see you there for a well-organized, great meeting and “Non omnia possumus omnes” but coming to Codemotion might be the first step towards your goal.

 

 

 

Java is Dead, Long live Java!

Is Java dead? A question asked by a lot of unbelievers and to cut it short the answer is NO, it is not dead, Java is becoming widely adopted by a lot of people (students, children and professionals) and it is still the first choice in the Web and Enterprise applications.

What people might mean by “Dead” is that Java is not the default choice for projects and that’s totally wrong as Java is the default choice for most of startups or startups that have grown to be big companies like LinkedIn for example.

With every new release of Java, Oracle reminds us the Java is here to stay with some new cool features and enhancement not only in the Java but also in the JVM which evolved a lot and now Java programs can compete with C programs from performance perspective, JVM is the main reason behind the emerge of some new languages like Scala, Groovy,..  This makes it really amazing and rich.

As people say: No one is Perfect, so is Java and that’s why there is always something to come (like Java 8 and 9) but with these new releases new cool features rise to ease our development.

On 9th and 10th of March Egypt witnessed the biggest Java community conference in Middle East and Africa (JDC 2012) with more than 500 attendees and more than 40 sessions about Cloud, Parallel Programming, Mobile and much more and with a clear message from Oracle: “Java is not dead and we will make sure it is not”

Long Live Java!

From MySQL to MariaDB, Michael “Monty” Widenius talks about databases and his projects.

As the number of new databases is growing every day I wanted to know more about their differences and usage, and the buzz words: SQL or non-SQL.  Who should I ask but the founder of MySQL and MariaDB, the charismatic  Michael “Monty” Widenius? 

I keep hearing about SQL and non-SQL databases. What are the differences and why should I use one type rather than the other?

The main differences (for normal people) between these are:

The advantages of non-SQL:

  • Non-sql allows you to store ‘unstructured data’ (i.e., you are not restricted to having a fixed set of columns per row).
  • Many of the non–sql databases trade replication and scalability against speed; you get (in many cases but not all) a higher speed but for some noSQL implementations you have a higher risk of losing data when something goes wrong.
  • You don’t have to learn SQL.
  • Another advantage that ties in with Point #1 is that it’s usually schema-less. A lot of people already find it hard enough to write schemas so No-SQL jives with them.

The disadvantages of non-SQL:

  • You can’t combine data from different tables or databases without writing a program.
  • You can’t easily export/import data from other sources.
  • There are no standard interfaces so you can’t use our non-sql data with any standard application.
  • All the non-sql databases are totally different. If one doesn’t work for you there is a lot of work to move to another.

For most applications and users SQL is fast enough, which makes the main reason for using non-sql the more flexible schema.

What we have done in MariaDB is add ‘dynamic columns’ which allows you to get a similar freedom to the schema as you get with non-sql.

Another method of No-SQL available in MariaDB is HandlerSocket – you can find out more about this at the Knowledgebase  – try search: handlersocket).

In future releases of MariaDB there will be more no SQL styled interfaces.

 

MariaDB – why yet another SQL database when no SQL seems trendy and there are already so many well-established SQL databases?

MySQL is the most used client/server SQL database with 20-50 million users.  As Oracle is now moving MySQL to Open Core, those users will need a free alternative so they don’t have to start paying for their software. This is why MariaDB is needed.

Non-SQL may be trendy, but to be fair: non-SQL has always existed and the main reason for the trend is a few blogs from some popular web sites that have extreme load. Even these sites have no plans to dump SQL, they are just using non-SQL for some edge cases.

 

Do you know the market share of the top 5- 10 SQL databases?

This is roughly the distribution when looking at the number of users:

  • Oracle 80 % (of which MySQL 50 %)
  • MSSQL  10 %
  • DB2    4 %
  • PostgreSQL and others make up the rest.

 

Are these databases specific to certain jobs or do they all do the same thing?

Every database has different sweet spots. (I will only mention some of the sweetspots below. Doing a full database comparison would be a very long article).

  • Oracle is very good when it comes to massive parallel queries.
  • MySQL (base version) is extremely good for web loads and can do more database connections/second than any of the other databases. It’s also a proven and configurable replication which makes it one of the main choices for a cloud database.
  • MySQL Cluster is one of the best databases for real time operations and is used heavily in the telecom industry.
  • MSSQL is a great all round database, but only runs on Windows.
  • PostgreSQL is probably the best database if you need to extend the database with new structures, types or properties.

 

How different is MariaDB to the other databases?

MariaDB is a full compatible and binary drop-in replacement of MySQL.

To convert from MySQL to MariaDB takes seconds; you don’t have to convert any data and all our old connectors to other languages work unchanged.

MariaDB has 10 years more development than MySQL and is generally notably faster and more stable (as we have spent a lot of time fixing bugs in MariaDB that we have inherited from MySQL). The full list can be found here.

 

Can you give me several reasons why I should move from MySQL to MariaDB when I would have the back up of a huge company with MySQL?

  • MariaDB is created by the same people who created MySQL. Oracle may own the MySQL code and trademark but they have lost most of the know-how about the MySQL code and are not able to develop all the parts of it anymore.
  • If you have a lot of updates and replications, MariaDB is a magnitude faster thanks to the new group commit code.
  • Better optimizer; big data and sub queries are handled MUCH better than before.
  • MariaDB uses by default XtraDB (an improved version of InnoDB) which is both faster and has more features than InnoDB.
  • MariaDB is Open Source (not Open Core as MySQL is today).
  • More features, less bugs.
  • Progress reporting (so you know how long things like ALTER TABLE will take).
  • Support is less expensive and better than Oracle (as most of the original MySQL support people have moved to companies like SkySQL that also supports MariaDB).
  • You can pay for extensions to MariaDB in order to ensure that your company’s future product needs will be in the next release of MariaDB.

 

How many developers are working on MariaDB? What’s their background?

At Monty Program Ab we have 17 people working on and with MariaDB. Of these 12 are developers, most with a long MySQL background. Together we have more than 100 years of competence in the MySQL code base.

You can find a list of the people here.

There are also a lot of people and companies contributing code to MariaDB.  You can find most of them on the maria-captains (27 members) and maria-developers (175 members) lists on launchpad.

Another point to note about maria-captains (i.e. people that can commit code to the repository) is that some 55-58% or so come from Monty Program, while the rest are people and companies that are allowed to commit code as maria-captains. This is important because MySQL has never had success with a community of developers.

 

Can a developer work on several different database projects at the same time?

Yes, but seldom on different server code bases, as the code is complex and it’s hard to move things between different projects.

However, it is quite common for people who are writing connectors (like PHP, Perl) to be working on connectors and tools that work with many databases.

 

How would you reply to Baron Schwartz’s comments in his broad-vision keynote, as reported by Andy Oram, that “databases are starting to need to handle petabytes. And he criticized open source database options as having poorer performance than proprietary ones.” From “Wrap-up of 2011 MySQL Conference” by Andy Oram.

In some sense he is right. Very few databases can handle petabyte data. Regarding MySQL I know of only a few projects with data in that range.

In 2007, NASA gave a keynote at the MySQL Conference. It talked about how they were handling petabyte data then with MySQL.

The main problems with data in this range are:

  • It’s hard to handle crashes (you don’t ever want to have to repair a database in the petabyte size).
  • We need better optimizers with new algorithms. In MariaDB 5.3 we have done a lot of work to be able to more gracefully handle data in terabyte ranges, but there is more to do to be able to go to petabyte.
  • We need better ways to distribute queries over many data nodes that can process parts of the data individually.

Some MySQL storage engines for handling big data in parallel do exist. These are (in alphabetical order) CalPoint, Infobright, ScaleDB and Tokutek (sorry if I missed anyone).

We are also working to add a new storage engine into MariaDB that can handle data at least in the terabyte range and should be easy to scale in the cloud.  More about this later this year…

 

How has the cloud changed the development of database techs these days?

Some of the main requirements of a database in the cloud are:

  • Should use very little resources / user and instance.
  • Should be fast and lightweight.
  • Should be easy to scale by just ‘adding a new machine’.
  • Should be easy to manage many different types of users within the same database instance.

MySQL fits most of the above, except that for the two last entries, there is still a lot of room for improvement. We are working with some of the cloud vendors to improve upon this.

 

Both MySQL and MariaDB were named after your daughters. A third child for a third project?

I don’t have any plans to have any more children and as MariaDB is a ‘never ending story’ I don’t think there will be time for yet another big project.

Thank you Monty for your time and knowledge. I hope we can continue this conversation in the future with an up-date on MariaDB.

 

 

Is trolling endemic between IT developers?

Last week, I went to the Open Source Developers Conference (OSDC) that is bridging the gap between the different communities and aim to bring together all  IT developers. The conference was held in Paris which is still one one of the most attractive cities I know – one of the world’s leading business and cultural centres – well known for fashion, arts etc. But what I prefer is the buzz – it is so alive! It seems like a 24/7 city that keeps running.

I keep being told that the French, mainly the Parisians are so rude and unfriendly to foreigners – I definitely disagree with that statement. Once again, I got caught trying to find my way to the George V Eurosite – map in hand, looking for street names, trying to find out where I was and where I should go.  For the third time, somebody came to my rescue without prompting. Ex-pat French is not written on my forehead and my French accent is as bad as my English one. So why are they nice to me and so rude to you?

I am sure you are not reading this to discuss French politeness – so I will talk about OSDC which is the reason for my stay in Paris. This year OSDC was part of Open World Forum. The list of sponsors for the forum was impressive. It included Bearstech, Red Hat, Suse, Microsoft, Oracle to name only a few.

 

What is OSDC?

The Open Source Developers Conference (OSDC) aims to be a place for meetings and exchanges between developers from different communities, which too often ignore or distrust each other. The goal is to go beyond trolls and see what they can learn from each other.

This conference allowed me to meet developers in Python, Perl, Ruby etc. under one roof. Some of the talks seemed very interesting or so I was told and all the buzz words were used – QR, MySQL, Drupal, MariaDB, Redis and of course the above mentioned languages.

One of the talks that seemed to fit everybody is The state of the Acmeism by Ingy döt Net. Acmeism  is the commitment to furthering all good languages simultaneously. I have seen Ingy writing at the same time in Python and Perl – how did he do that? I don’t have a clue as I was rather busy eating a choucroute at the time.

Two talks were given by François Perrad on Lua.

The only time I heard about Lua was in an interview of the authors Luiz Henrique de Figueiredo and Roberto Ierusalimschy in our Masterminds of Programming.

After some apprehension on having my book table set far away from the OSDC rooms, first in the bar and then opposite the “makers” room (more about the “makers” room in a forthcoming post), I will admit complete success and I hope to be there next year.

I have only one regret, tradition among the perl mongueurs is to drink together a glass of Chartreuse brought by BooK all the way from Lyon. Unfortunately, I had to run for my train and missed it. Yet another reason to be there next year!

 

 

 

 

Codemotion

Javaday has changed, it is now Codemotion

For four years running, Javaday Roma has been the only event of its kind in Italy in terms of content, participants and enthusiasm. Year after year, the exciting atmosphere of Javaday has won over participants and sponsors. To keep being a top draw for developers, Javaday has evolved to become Codemotion.
Codemotion takes Javaday a giant step further: it’s open to all languages and technologies, becoming a catalyst for more creativity and more job opportunities. Everyone can reap the benefits of the new, broader focus: from one product (Java, once Sun, now Oracle) to the entire field of programming.

What is Codemotion?

Codemotion is the evolution of Javaday Roma and will held on Saturday, March 5, 2011 in Rome. During the event, participants can take part in an intensive morning of talks followed by an afternoon for technical sessions and the presentation of innovative ideas and technical workshops.

Codemotion marks a huge step forward compared to Javaday: it is open to all languages and technologies, drawing together even more sources of creativity and job opportunities. Finally, shift in focus from one product to an entire discipline means that everyone wins.

Key features :

  • The Codemotion programme is defined by a public Call for Papers open to all. Proposals are selected by representatives of official Italian communities for each different language as well as for software development.
  • Participants looking for new career opportunities may submit their CVs to Codemotion sponsors at the event.
  • A fast-paced morning of technical talks followed by two sessions of Ignite in the afternoon are on the day’s program.
  • A competition to award the best in innovative ideas developed by young university students from all over Italy is currently in the works.
  • Launch of new products

Entrance to the event is, as always, free of charge.