 Tää on Kiri, minä olen Finland ja minä olen nyt ymmärrän opensoftware konsultaasi ja opensource konsultaasi firm. Meillä tuli edes kehittämään ilman, koska ensimmäinen kertaa, että olemme löytyneet, että meidän liikkuu ei ole niin hyvä. proimittiin ca. 50 000 euroa rokotteen pork Green for just our reports that never got to the system, so then we had an idea or or as we thought, and there came this weird feeling that we can do things pretty much faster. And well, first of all, I will tell you about the manifesto, the reasons for this system. The world is decentralized. When was the last time that you had to share a document with your customer or with your co-worker and you were in a situation that it just wasn't, well, this connectivity of email isn't always the greatest way to do it, so your CRM system should make this easy and flexible. Sharing is security. As Linus Torvalds once said that only Vimps use tape backup, real men just upload the stuff to the FTP and let the rest of the world mirror it. And you are often online, offline, I'm sorry. And this is basically what it is. It's an offline CRM application, so you can use it wherever you are in a train, in a bus. And currently we have embedded it to a few mobile devices, so you don't have to always open up your laptop, in example a bus, which isn't the greatest way to do it. Web is a native platform. IATUS is based, it's a simple one HTML file actually, which just gets controlled by JavaScript to render all the UIs and everything. So like these days people are more and more using web applications, the forms, breadcrumbs, navigations are coming more and more the real basic intuitive way of doing things and applications. Speed matters, no one likes to wait. And speed, Saviola if I think right, said once that no one likes to wait in a queue or in a restaurant for food and we definitely don't want to wait for our web pages to load. So that's why offline simple Ajax user interfaces are pretty nice solutions. And everything can be connected. You never really know in a CRM system what you want to connect to each other. Like you have a meeting notes and you may have a meeting notes about those meetings and you also may have our reports of writing those meeting notes or whatever. Or you have a project which has a different kind of tasks and they have different kind of projects underneath and just endless loop. So you really don't want someone else to think the structure for you beforehand. So Ayatus basically manages everything online at least on our point of view. We have a billable hours, expenses, notes and contacts and events that we can all handle through one application. And to connect data to each other we use tags. And here this is actually a simple proof, one page of the Ayatus itself. With tags we can have a simple tag just like name me or then we can have a tag named project, semicolon and something else and we can also add value to it. So it can be an example project support for that and that equals year 2008, an example. And tags just connect objects to each other. So every object that has a different tag just gets connected. Nothing fancy about it. Well, we get back to this later and we also have faster reporting. The fast speed is really a factor for us. So in here in example is a simple report form. There are a few types of these forms but report form is a basic scheme. We have a date, our description, tags, what you want to link it. It's a whenever you press create here it gets updated to the app and you get a new blank form and you can always start it over. So just keeps going and going and going. And well a little bit about the background of Ayatus or the structure itself. So the bonus of Ayatus is based on jQuery Javascript library, which is a fast and concivs Javascript library. Basically the same as dosers and prototypes and all this. It has all the HTML traversing and CSS selectors and all this kind of thing. And it's of course chain ability which is really important on this project. And Ayatus is actually just a huge plugin to jQuery as jQuery has its own plugin structure. And it's a namespace under Ayatus. And the heart of it is jQuery couch. It's a jQuery plugin for couch DP. I will get back to that later on also. And basically what it is is just a wrapper for couch DP database which uses restful JSON packages to communicate. And this jQuery couch just makes it easier for developers to communicate with couch DP with Javascript. We have a simple example of how to create new database to the couch DP. So it's based on connections. We have three different connections database, documents and views. And they have each their own methods. And it's also chainable. So we can just continue this line like when we get here, if this were document creation, we get the document back and we can update it. And also save it or destroy it in the same same same line. And the sole, the couch DP. Couch DP is actually a really huge thing to talk about. So I'm only going to go through it briefly. Basically what it is, it's a NRDBMS word monster. It's a document database server accessible through restful JSON API. And the greatest thing is that it's totally schema free. There are no tables or columns or everything you just push like JSON objects inside it and read them. And it has a simple replication utility inside it. It uses HTTP protocol and you can use it with any language actually that has HTTP and JSON library with it. So you don't really need a Javascript or something like that to use. You can PHP, Ruby, whatever. And the couch DP itself is written in Erlang, which is really nice language by the way. And 10, a little bit about Iotus structure. Iotus is basically structured on three parts. There is this documents, which Iotus document is basically JSON object, which has a lot of, it has its own major data in example and can contain file attachments. And every time we read or are saving document, it gets automatically validated and repaired if the scheme has changed for some reason on that behalf. And this is a simple structure of the document. These two ID and revisions are the couch DP's defaulted meta values and then inside the value that we collect everything key value pairs, what we have. Okay, Iotus views. This is almost like model view control pattern but not even close actually. But views is, it's just a way of defining like listing and view edit. Here we have an example like part of a listing views and then we have an edit views. So it just renders the scheme and whatever view we are in and accordingly to those rules. And the UI is still a little bit rough but we can handle it. Okay, and then we have some system defined views. Those are like those previous one was automatic views, which are generated from the schemes. And we have then system defined views, which are actually coded views. And in example front page and trash archive tags. And this is a preview of archive view. And we just, in a archive front page, we see the list of archive objects recently. Okay, Iotus types. They are schemed couch DP documents. Here we have a simple scheme from, this is written in JavaScript file, which defines the Iotus type. We have currently inside, we have our report, node, contact and event types and experience report type. So basically we just define what we have, we have a title, label it title, it gets localized later on. Richard, this uses Richard text. No config for that. Default value null required true. So pretty simple. And they all also types can define their own views. Well, plugins. Iotus can be extended in a lot of ways. Basically the easiest way is to just write, get to the JavaScript core and just start writing there or create new views, content types, whatever. Or you can just use any language that you prefer and talk to the couch through simple API or to the couch systems like straight to it. And of course plugins can be used to connect the edges to existing CRM systems. So you can create links between them easily. And a little bit of a feature. We are currently building a expansion packs, which are more like a, you can totally rewrite the whole like system with just the expansion pack. You can select them from the preferences pages to say enable this expansion and you can define everything, change everything everywhere inside that expansion. It's still a little bit in a thought. And of course we have a scaffold coming. So you can easily create those types and expansions more currently. It's just copy C, copy V and rename it. So that's it. But we will have a scaffold for them also. Pillow talk is actually going to be pretty nice. It's actually going to be much larger than we actually thought in the first place. But it's going to, we are going to use it instead of the HTTP protocol based replication. We will use XMPP, so Japper for the replication. So whenever your contacts came online and they have I have to install or your data gets replicated with them and the other way around. And also we are creating a new UI for the mobile devices, a little bit better CSS, larger buttons and more padding between them. And currently we have a implementation of Ayatus in Nokia Internet Tablets and OLPC. Had it running, but hopefully we will get more of this soon. And I will get back to this one view for a second. Yeah, yeah. Okay, so basically this is a, this is the simple view view view of the node object, node type. And we have a title and description in here. The description is actually, you can select which content it is. This is currently a markdown. And then we have a method visible on the view. And we have also, as you can see, revised and revisions. So it has a full revision support. So whenever you are editing a node in, let's say in a meeting room and you're talking in at the middle time, you're writing at some points. And then you're talking again, because it's web application, it's really important that it has autosaving. Because otherwise if you're browser crash, you just lost what you ever was written before. So it autosaves the document in, you can prefer the default is five minutes and it actually checks if anything has changed. Otherwise it doesn't create a new revision for it. But yeah, and then you can browse the revisions back and forth and edit the previous ones or make them as a new one and those kind of things. And yeah, actually there is, I think I thought too fast, because I still have time. But okay, let's check this out. Resources, Ayatus is located at ayatus.info. And of course jQuery and jQuery Couch is added to the plugins, the jQuery site and CouchDB. I really hope people can check it out. It's actually really usable in many cases. Ayatus is just one application that you could use to build on it. Basically what we are running this on now, we use a desktop machines and we have a company server, which is a central replication server. So all of our consultants replicate to there and replicate them from there to their machine. So everyone has a copy of everything all the time and still everything is accessible offline and still of course backed up to the central server and for easier access. Because we are not always close up so we cannot do peer-to-peer replication. So we use the peer-to-peer to the central server and then everybody peers from there. So that is basically it currently. And there are a lot of future plans also for little machine just widgets. Okay, thank you.