Steffens code ramblings.. My world of Code, Thoughts, XMPP and Fun!

27Jul/101

OSCON – day three

Posted by admin

Hola,

Day three at the Oreilly convention turned out to be good and bad. I reached five different sessions.
The first one was "The NoSQL Eco system". At first it sounded great, and I really was looking forward to it, because I am already using CouchDB, which is also a NoSQL (document) db. But the speaker only compared the different NoSQL databases and their difference in persistence layer.
There were no real summary or result in what to use in which given situation or nothing.

The second one I attended was an Google App. Engine (GAE) introduction. Not because I know nothing about it but the other session I wanted to attend to, was completely book. So the introduction really did not bring anything new to me, but I got time to ask a couple of questions to the Google speaker which I've been wanted to hear about in some time. My first question was about migrating actual production data on their data storage in GAE. To put it shortly, there still is no tool or easy solution to this one. you have to do a application in GAE that migrate the data by taking up the object and move the properties to the new object. He also said that there is some google code coming up that supposed to do something like that. So all in all no really good answers. My other question was about the XMPP module in GAE. Right now GAE only supports Message stanza for XMPP, which only is something like 10% of the API. No Pub/Sub or no nothing. So my question was when it was going to happen in GAE. The speaker did not answer clearly, but the short answer to this is not soon. Really strange for me, because this could be a cool and easy way to make your Google App Engine Apps. talk together. Right now this is not possible.

Another interesting talk was something called "DBRelay". A cool little app. that was build on top on nginx, that served as a database proxy. You could call this proxy by HTTP with some common SQL and get JSON results back. Their app. supported mysql, postgresSQL etc. A really cool piece of software. Of course they have some scalability issues and it does not perform very well, but the idea was very interesting!

Filed under: Uncategorized 1 Comment
21Jul/100

OSCON – day 1 & 2

Posted by admin

Hey, Have been busy at the two first days at the OSCON in Portland. The first day I used fully on our XMPP summit. Here I setup Tigase and Openfire XMPP servers for testing compability in C2S and S2S against other servers and client.
Most of it we got up and running really fast, but the certificate signing and installation was hell, as always on Java products like openfire and tigase. Its always the keytool stuff that is bothering! :-)

Well, at the end we gave up Openfire because there were too many issues with the way it handled certificates. Tigase I got mostly up and running and it passed most of the compliant tests. Though it has some troublesome implementation regarding S2S. It does not implement the version attribute on the streams. So I've made a quick patch. This I will submit to the guys at Tigase (hopefully they will appreciate it!) . Tigase did not offer CORS as well, I'll have a talk with the Tigase developers and hear if they want any help implementing it.

Day two was more or less the same.. I've should have been at the cloud summit, but we had some really interesting issues to discuss at the XSF (XMPP Standard Foundation), so I stayed all tuesday as well, together with my mates from the XMPP group.

Today (Wedensday) I will go to different sessions at the OSCON. More will follow.

-Cheers!

Tagged as: , , No Comments
26Jun/100

OSCON Conference and XMPP Summit 2010: The 19′th to the 23′rd of July.

Posted by admin

I've just made the final plans for the OSCON and the XMPP summit. My program will be the following: Monday: XMPP summit, Tuesday: XMPP and Scala summit.

The last days of the week I have composed the following program at the OSCON. During the afternoons I will try to have some nice talks with all the cool XMPP fellows at XSF and see a bit of Portland city.

Tagged as: , , No Comments
28Mar/100

Concurrency in Erlang..

Posted by zool

The last couple of years i've been playing around with the language Erlang, even though my main programming language have been Java and C. Back in the university days I also tried to mess around with functional languages with mixed experience. But trying out Erlang has given me some new belief about functional languages and their justification. Using the concurrency model in Erlang is simply beautiful compared to the awful ways of making and managing threads in Java.

I especially like that no processes in Erlang shares memory, they can only communicate by exchanging simple messages between them. So what gives me the kicks when using Erlang is the pattern matching from functional languages and a very strong message passing concurrency API with hot-deployment of code. In Java and many other languages you have a mutable shared state and locks as a model of concurrency. This means that when you have some HOT code points that you do not want to share (a critical region), you put it inside a monitor or uses simple semaphores to make them atomically. This can (and mostly does) lead into a lot of code that is difficult to read, understand and to change without having troubles with too much locking (lock contention), or multiple locks in differing orders, leading to deadlock. In Erlang this is different, because each atom (like Java object) is immutable and can't be changed in any way. This means that the only communication that can be done is trough message passing.

To cut it down to what Erlang does different than many other languages, it supports the actor model. The model is a mathematical model of concurrent computation that treats actors as the universal primitives of concurrent computation. So in response to a message that it receives, an actor will only make local decisions, eventually create more actors, send more messages, and determine how to respond to the next message received (from other actors).


The actor model consists of a few key principles:

  • No shared state
  • Lightweight processes
  • Asynchronous message-passing
  • Mailboxes to buffer incoming messages
  • Mailbox processing with pattern matching

    In the next post I will try to get deeper into the beauty of Erlang and the code behind it. I will try to give good examples of how easy and how save it is to make good distributed computing in Erlang.

  • 11Mar/100

    My blog is up and running again!

    Posted by zool

    Finally the blog is up and running again. Last year the server literally went in fire, after some conductors got too warm and exploded.

    After that I have updated my hard ware equipment and bought a new server (asus EEE) that can serve HD to my TV and serve webpages and running an XMPP server etc. with out any pain or CPU usage.

    Tagged as: No Comments