Booktype Scrolls

I decided to put different kind of scripts, snippets and small Django apps in a separate project called “Booktype Scrolls“. The idea is to show how Booktype can be extended and how some of its functionality can be used.

For now i have WordPress importer, global search-replace and couple of snippets to get some basic statistics from the database. For 0.1.3 version it is more then satisfactory but I plan to extend it every couple of days with something new. So… stay tuned!

Links:

Booktype 1.5.3

Booktype 1.5.3 is out with a lot of bug fixes and new features. Check the full list of commits here – CHANGES.txt. As you could also notice we were a bit late with this release.

Major feature is something called “Booktype Control Center”. Default Django admin interface is still here but we have developed new administrative interface for Booktype administrators. Booktype is now more customizable then ever and  you  can use this web tool to adapt it to your own needs. Besides users and books you can also manage look and feel of your Booktype instance and books your produce. We started as extremely open tool for book collaboration but with this release we have let administrators adapt Booktype instance to their own needs. Normal users can not create books? Not a problem! Only administrator can create new users? It it possible now! You only want to let users output books as PDF files? You can do it now!

Because of “Booktype Control Center” we needed to develop new way of managing configuration. Read more about it in “Managing configuration” blueprint. Only some parts of code are using this new API but i plan to convert entire Booktype in new release (that would be 1.5.4). Besides us developers, new API will be very useful to administrators during migrations or daily Booktype management.

We have also upgraded our default settings.py to work with latest version of Django. Django 1.2 is still minimal requirement but now we work out of the box with Django 1.4! No more manual editing of files! This is a feature for new users, everyone else will have to manually update their old settings.py files. If it is too much work for someone (as always, INSTALL file has information how to do it) they can always create new Booktype project and just copy+update it with their existing project.

New release will be 1.5.4 (not that hard to guess) and it should be out in 2 weeks. The plan is to have release every 2 weeks. What can you expect in new release? More API cleaning, new install scripts and couple of secret projects. But nothing is a secret with Booktype, if you want to be up to date with our development watch our github page, check my tweets and read my blog!

Getting Started with Booktype – What is Booktype?

This is a first post in a series of articles about Booktype. Before I start to be all technical and “… and that is how you install new Django app” it would be good to say couple of words about Booktype history.

Booktype is an open source platform to write and publish print and digital books. It was created to run the FLOSS Manuals platform and back then it was just called Booki. FLOSS Manuals is a community of people joined together for their love of writing good quality documentation for FLOSS software. At first the  FLOSS Manuals platform was build on the  TWiki (Wiki in Perl) platform.

Using  TWiki to prototype something was a good choice. We extended it with our own plugins and some external tools. FLOSS Manuals is a collaborative community and we needed to extend TWiki to support the collaborative processes. We had our IRC-Web chat gateway called FM Transmission [post in Croatian], live Table of contents where you could see what other users are doing (view image of it), Remixer for content, Localization plugins to manage book translation, our own Web-based tool for translating content and many other things. It was good enough platform but it felt like a big hack at times. After some thinking and observing some problems in the TWiki community [post in Croatian] we decided to write a new platform –  from scratch.

We wanted to build community around software and we figured out TWiki and Perl were not the best platform for that. Mainly because a lot of our users are people who are more interested in books and less in Perl code. We decided to use Python and Django as our new platform. They both seems to be reasonably easy to master and even newbies could extend their Booktype installations. You want to have blog on the front page? Just install existing Django blog app, change one line in settings file, put couple of tags in templates and you are good to go. Simples! Anyone could do it.

Booktype

When we talk about Booktype we really talk about Booktype and Objavi. Booktype is used for editing and managing books while Objavi is used to produce book formats (as pdf, epub, mobi, …). In this post we will talk only about Booktype (the book editor).

Booktype is all about the collaborative editing of books and as such is not always what people want. It is about building community around your book. Sure, you can use it to write your diary also (and you should!), but the real power is in collaborative work. What does this mean for the architecture?

Like i said, we decided to use Django as web framework mainly because we wanted people to be able to plug Booktype into their existing web sites more easily and extend their installations with many already existing Django apps. I think we made a good choice with it. As database backend we are using PostgreSQL. Sqlite3 is also an option, but it really should be used just for testing and development purposes. We are using Redis in-memory database to store all kind of information web clients are exchanging with Booktype server using Sputnik.

What is Sputnik? Sputnik is a Django application for two-way communication with web clients. When we started there was no other Django project that could help us with this so I decided to do what everyone would normally do. I wrote one abstract API (with channels, subscriptions and etc…) for communication and implemented dummy network layer. It means when the right moments comes this network layer can be replaced with something better without any need to change the rest of the code. There are many good frameworks these days that could be used as network layer (Socket.IO for instance). Why do we have it? Mainly because of the collaborative part of Booktype. When you have 10 people working on one book at the same time you need a way of notifying all of them about the actions others are doing. Like: locking chapters, chat, changes in Table of Contents, creation of new chapters, attachments uploads and etc. Yes, it means your Table of Contents will be changed as soon as someone adds a new chapter to it. This really improves the user experience and stops you from overwriting someone’s changes.

But enough about Booktype history. In my next article I will talk about exciting world of “Booktype projects” and how you can easily install and extend your Booktype installation!

These are the Booktype links  you should probably check:

 

 

 

Javni natječaj oko moje nove domene



Daklem, nabavio sam si domenu “kurv.in” i nemam baš pretjerano puno ideja što da s njom napravim. Jedna od ideja je e-mail adresa “sin@kurv.in” ali tu negdje staje sva moja maštovitost.

Ako netko ima bolju ideju neka ju slobodno pošalje na aerkalov@gmail.com. Bogate nagrade su obećane ali za sad ništa ne garantiram. Nema nikakvih ograničenja i otvoren sam za sve ideje i prijedloge.

Netko ima tajni projekt….


Daklem… Aco ima tajni projekt. Iz ovog drugog drafta logoa se ne da previše zaključiti, ali samo ću reći da se radi o nečemu što sam trebao raditi prije 10 godina dok je još i imalo smisla. Ne sad… sad više nema smisla ali se i dalje isplati probati. Neću sa 60 godina valjda da uzdišem i samom sebi da govorim “ahhh… možda sam ipak trebao.”. Eh da… u ovom kriminalu imam i partnera. On je onaj B u Baco.

Pa sretno nam bilo!

Bio sam Wally Olins


Link na sliku

U dvobroju od Mreže izaći će članak o IBM Informixu. Kako to u tržišnoj ekonomiji biva, tu je i zakupljeni oglasni prostor. E pa… ja sam autor grafičkog rješenja za oglas.

Zabavno je što svi imaju neku potrebu da mi kažu – “Pa i nije tako loše.”. Mislim…. loše je, jako je loše i ja sam toga bio svjestan i prije nego što sam počeo raditi oglas. Izgleda amaterski, izgleda jeftino, daje lošu predodžbu onome tko bude čitao itd….A zašto? Zato što ja nisam grafički dizajner.

Uglavnom, moj kolega kaže da smo na ovo utukli pet čovjek dana. 6 i pol nas je radilo na ovome. Ja sam potrošio dva dana, kolega je potrošio i dio svog vikenda na razradu svojih ideja. Smišljale su svakojake parole i na kraju smo završili sa ovim. Parola nije moja ideja (svoju nisam smislio a od ponuđenih mi je ova bila najbolja) i oblaci nisu moja ideja.

Što smo naučili iz ovoga? Ja osobno ništa. Što su drugi naučili? Najvjerovatnije ništa.

I za kraj popis stvari koje jednako tako NE znam raditi ali bih mogao nabosti:

  • upravljati balonom
  • voziti tenk
  • skladati pjesmu
  • montirati video
  • prepoznati komplementarne boje ili razliku između dva fonta
  • voziti trajekt
  • bacati kladivo
  • trčati maraton
  • …

Meni je žao, ali ne smijem više….

Eto… desila mi se zabavna stvar. Dobio sam novi “Pravilnik o radu” u kojem stoji da “ne smijem bez odobrenja Poslodavca , za vrijeme trajanja radnog odnosa za svoj ili tuđi račun, sklapati poslove, niti raditi na poslovima iz djelatnosti koju obavlja Poslodavac”. Djelatnost poslodavca je definirana kao:

  • računalno programiranje
  • savjetovanje u vezi s računalima
  • upravljanje računalnom opremom i sustavima
  • popravak računala i periferne opreme
  • popravak komunikacijske opreme
  • proizvodnja računala i periferne opreme
  • proizvodnja komunikacijske opreme
  • popravak elektroničke i optičke opreme
  • popravak električne opreme
  • kupnja i prodaja robe
  • obavljanje trgovačkog posredovanja na domaćem i inozemnom tržištu

Ako postupim “protivno zabrani” može mi se oduzeti od 10%-50% mjesečne plaće u razdoblju od 1-12 mjeseci ili predati sav zarađeni novac od sklopljenog posla Poslodavcu. Na neku čudnu foru ovo pravilo vrijedi za sve poslove koje sam sklopio unatrag pet godina.

Baš i nisam siguran čime se od gore navedenog točno bavim kod Poslodavca. Brijem da bi to moglo biti “upravljanje računalnim sustavima”. Za sad samo brijem jerbo nisam dobio nikakvu službenu potvrdu. Nisam baš ni siguran što smijem a što ne smijem raditi. Pisanje formula u Excellu je sigurno out. Skupa sa izradom web stranica, prodajom paradajza na placu ili preko ebaya, savjetovanja oko “koji android telefon da si kupim” do “možeš mi booraz promjeniti desktop na kompu”. Odgovor je – neće moći! Ne smijem više. Zato dragi prijatelji, poznanici i slučajni prolaznici….. nemojte me ništa više tražiti za pomoć. Ova trgovina je prisilno zatvorena.

Ono što me najviše tišti u cijeloj priči je što neću biti u stanju nastaviti rad na svojoj novoj igrici “Guzojebac”. Kako stvari za sad stoje, autorska prava na ovu igricu ima moj Poslodavac (pravilnik definira više stvari). Pretpostavljam da bih trebao negdje unutar igrice staviti i logo od Poslodavca. Red je red…. Nećemo protiv zakona.

“Guzojebac” je casual igrica u kojoj mali spermić jurca po rektalnom traktu i pokušava izbjegavati govna. Cilj je probiti se što dublje…


Splash screen od glavnom menija. Bar je ženska guzica u pitanju.


Screenshot iz igrice. 40cm duboko.