- Maemo
- Maemo RoadWarrior, Tools for mobile professionals. Hour reporting, mileage and expenses.
- Ruby on Rails
- Different projects (AuthorWare, FileRepository, ICast)
- Javascript
- protus (This is my own "GUI-framework" under development for Midgard CMS)
- Midgard CMS (Serious Free CMS)
- Flash and actionscript
- IFW (multiusage Flash framework, Ganttcharts,slideshows,dynamic & editable content,image manipulation, etc)
- Misc. Flash sites and code snippets
- Computers in general (Mac & PC)
- All sorts of new trends/innovations
2007-01-01 - 2007-12-31
Welcome
Posted on 2007-02-19 11:40:23 UTC to.
Finally got my N800
Today it arrived...
Thought I share the view...
Giving it some lifejuice...
Now I can start building and testing the Maemo Roadwarrior in a real machine instead of the scratchbox. I'll get some dev screenshots and sneak preview of the RoadWarrior on weekend... Till then, code in peace
A little accident
Posted on 2007-03-05 03:01:07 UTC to.
Yesterday In Defendo training I managed to get my finger disjointed.
Hopefully this doesn't last for long, 'cause right now I can only code in half speed...
Midgard multilang setup
Posted on 2007-03-08 05:25:00 UTC to Midgard.
I encountered few problems along the way so I describe what I did, for everyone who would like to use the multilang feature.
First of I created a normal site (at this point I wasn't aware there will be other languages also) ie. http://multilang-example.com with create-sitegroup & create-host scripts (One could also use midgard sitewizard).
After that I created the sitestructure just like I would do on any site.
And don't forget to set virtual host for your site. (ie. use datagard to create new virtual host)
Before you can use multilang:
- Get the latest midgard and midcom
( Install a hotfix for your midgard-core)
After installing the hotfix (I used apt-get update , apt-get --reinstall install libmidgard9) you have to edit your hosts config a bit.
This can be done in many ways, but I used spider-admin and browsed to my new host's ROOT page and edited the code-init element by adding a new row to the top:
$GLOBALS['midcom_config_local']['i18n_multilang_strict'] = false;
And I also made the site's url change automatically to default lang if no lang had been determined in the url: (This is added to the same page element after $_MIDCOM->codeinit(); )
---CODE
$curr_url = $_MIDCOM->_parser->fetch_URL();
$default_lang = "en";
$base_url = "http://multilang-example.com";
$hosts = $_MIDCOM->i18n->get_language_hosts();
foreach($hosts as $k => $host) {
if($host->prefix != "" && $host->lang == 0) {
$default_lang = str_replace("/","",$host->prefix);
}
}
if($curr_url == $base_url) {
header('Location: '.$curr_url.$default_lang.'/'.$suffix);
exit();
}
---/CODE
After this I created new hosts for each language (also for my default language) with spider-admin, giving each host the same style,main page and sitegroup than the original. Only difference at this point to the original is the prefix:
- http://multilang-example.com/en
- http://multilang-example.com/fi
- http://multilang-example.com/se
Then you need to set the proper lang id for these hosts. For this I used phpMyAdmin, but one could use any sql access methods to update the host rows.
First off find the lang id's you want to use by searching the midgard_language table in database (explained in the multilang doc at Midgard site).
So edit your newly created hosts and set the lang column to the corresponding lang id. You want to keep your default lang to 0 (in this case the english), so you would end up with something like this (having four hosts with different prefixes):
- http://multilang-example.com (Lang 0)
- http://multilang-example.com/en (Lang 0)
- http://multilang-example.com/fi (Lang 44)
- http://multilang-example.com/se (Lang 151)
Now you are ready to go.
Just log in to your default lang site and on another browser window (or tab) login to some other lang. And start editing...
You will see that the site structure is the same in all of the sites and when you edit your default (lang 0) site you get that same content on the other languages also.
If you don't wan't to show untranslated content in other sites, just set the previous config row to $GLOBALS['midcom_config_local']['i18n_multilang_strict'] = true;
Hopefully this helps someone and saves him the few days I struggled with this to get it working.
If I have forgotten something or find an easier way of doing things, I'll let you now.
New try to keep bloggin'
Posted on 2007-07-16 01:04:54 UTC to.
So I'll give it a new try by starting to write at least once a week.
There have been happening a lot of things in the past few months.
I left my resignation to Incognito Oy and started in Nemein Oy on the end of May as Software developer and Consultant.
Mainly I've been working on a new browser based calendar application for Maemo platform.
Soon I should be transferring this blog to new server so I could get my status and position information back online. My status stopped working after I switched to Jaiku from twitter. I didn't want to update the current servers installation to get the Jaiku messages to work...
Other news is that I bought a motorcycle a while ago (Kawasaki ZZR600). That didn't stay for long in my posession as I drive to Ducati Shop and bought shiny silver Monster 620. Currently my only longer trip with the monster has been to Ă…land where I participated a Italian car & Bike show with the motorcycle. That trip brought approx. 800km to the meter. Currently I've been driving the bike 2700km inside 28 days.
I'll post some pictures from the trip and the bike this week.
But now I'll continue my work and hopefully be back tomorrow in writing something useful.
Powered by ScribeFire.
Been sick since last monday...
Have tried all kind of meds and voodoo but nothing seems to work.
Also last night I finally got the timezone support in to the calendar application.
Everyone in the community see the events according to their own timezone.
Next step is to attach the positioning library so if one travels with the calendar it automatically changes the view to the local timezone.
Also the Shelf -concept in moving/mass editing events proofed to be pretty nice.
With few clicks one moves the events to shelf from the current view and then is able to locate a new position for the event on any of the views (year,month,week,day), select the event from the shelf and click to the view on a position he wants the event to move to.
What still must be done in the calendar is the overlapping events and resource conflict checking. This was working in some level on older events which were created with datamanager1, but now when using datamanager2 I have some problems catching the errors on different situations...
I'll get some screenshots of the application next week, when it goes to larger testing before publishing.
Now back to bed and try to get some sleep.
My domain expired for a while
Posted on 2007-08-07 10:17:53 UTC to.
Some quick updates to undergoing projects:
- Maemo Community Calendar
- I will release a post about this tonight. This post will also work as a usage guide in the beginning.
- Enhanced Community Messaging Systems
- This is a component to Midgard which gives users to message through private messages with each other.
- I'll post some screenshots and a functionality list this week
Currently under dev:
- New and enhanced chooser widget for datamanager2
- More details coming soon
Maemo Community Calendar
Introduction
I've been developing a browser based community calendar for maemo users. It is done on top of midgard.The original baseline was:
"The idea of the project is to build a web-based calendaring application for the Maemo community. GPL-licensed OpenPsa Calendar group calendaring application is used as the basis. The project focuses on adapting the calendar user interface to fit the Maemo devices (Nokia 770 and N800), taking into account the screen resolution and limitations like difficulty of drag-and-drop with the stylus. The worldwide nature of the Maemo community must also be taken into account by adding good timezone awareness."
Current layout still has a lot of improvements to come, mainly the events need to look nicer and the windows
need to look more like windows.
The calendar will be published to public for beta testing in the near future.
Current features
- Timezone switching- Shelf (way to move events)
- Buddylist
- Calendars of buddies
- Tags
- Profile editing / publishing
- Multiple views (year,month,week,day)
In action
As you can see from the firt screenshot, it tries to render the overlapping events nicely.The multi day events are most likely to move to a separate space, so they don't fill precious space.
The panel
Calendars
This is where you can toggle the visible calendar layers on
current view. You can also add new tags and edit the existing ones. currently no removing of tags is implemented.
If you want to change the color of the layer, when editing or creating, click the brush icon under the text field
to get a color picker which you can use with your styles to find a better color. You can also write the new color code
to the textfield.
Buddylist
This is where you manage your buddies. You will see the calendars of all your buddies.
Here you can also add/delete buddies and approve new requests from other persons.
When you add a new buddy it goes to list with unapproved status (red borders)
When you have new buddy requests you have the options to deny or approve the request
When you have approved the buddy request you can view the persons public profile
Profile
Here you can view/edit/publish your own account details
Shelf
You can send events to shelf through their toolbar.
This is shown later on this documentation.
Views
Currently we have four views which you can change with the magnifier icons on the header toolbar.
- Year view
- Month view
- Week view
- Day view
Create new event
First click on a hour cell under the day where you want your event to be created. Window will come up
where you fill in the details of the event.
Event toolbar
Each event has a toolbar which is used to perform different actions to that event.
You can open the toolbar from the events right top corner.
Event moving
When you want to move events to different locations you can collect them to the Shelf panel.
From there you can delete all shelfed items, clear the shelf or select event and drop it to new location.
First you have to open the events toolbar you want to move then select "To shelf" option from the toolbar.
The event appears to the shelf and disappears from the view.
After the events you want are in the shelf you can browse to any date you want and drop the event there.
In this screenshot I've selected the event in the shelf by clicking it and the I clicked a other hour cell
on different day and got event edit view with the new dates and times.
Then save the changes and you'll see the selected event to disappear from the shelf and appears to the new location
on the view.
Timezones
When you change the timezone from the dropdown on the header toolbar the view updates automatically and shows the events in the selected timezone.
All events are saved in UTC so every user see the events according to their own timezone settings.
Upcoming features
The calendar development will continue as soon as possible. There are many features
that still need to be added.
Here are some of the planned features
- Read-only community calendar that is included on every users view. This would show events that are happening
globally in the Maemo community.
- Calendar feeds, both importing and exporting
- Possibility for users to fetch their garage project timelines to the calendar, and publish this to their buddies.
- Ganttchart/Timeline like view mainly for the projects
- Automated timezone switching based ie. on the users plazes account
Calendar Beta published
Posted on 2007-08-14 14:36:25 UTC to Maemo Programming.
Today we published the calendars beta version to the maemo community for testing.
The testing period will last approx. 4 weeks in which time we hope for a lot of feedback, both bad and good.
There is also a bugzilla for the calendar so, feel free and post bug reports or feature requests in there.
I will be commenting and prioritizing them during the testing period.
More info and the calendar can be found at http://maemo.org/community/calendar.
Also the beta documentation can be found in this blog.
Few new widgets released this week
Posted on 2007-09-14 20:58:43 UTC to Midgard.
Short list:
- Positioning widget
Now one can position objects with either address,map or coordinates through simple interface.
More about this can be read on Henri's blog. - A multipurpose Chooser widget
With easy configurations you can use this widget to search for all kinds of DBA objects inside your site.
It's packed with configuration options but one can also be lazy and let the widget decide what fields to be shown
from selected type and how. - Added creation support for the Chooser widget
Now one can even create new objects through the widget if the results don't satisfy.
More about this can be read from Henri's blog. - Tag selection widget
This is a visual way of handling tags on objects. (I must post some screenshots about this...) - FCKeditor widget
I started adding other WYSIWYG editor to midcom. Currently midcom uses TinyMCE
Pre release of the CouchDB jQuery lib.
Posted on 2007-09-22 22:51:57 UTC to Programming Javascript Jquery Couchdb.
I'm currently building a lightning fast CRM on top of CouchDB. And because of that I needed to create a jQuery library for the CouchDB as I use jQuery to handle other parts of the system.
More details and screenshots coming soon.
The library can be downloaded here
*UPDATED* the library is now located at http://jquery.com/plugins/project/jqcouch [2007-09-23]
Hopefully someone else finds this useful too.
And if you have any feedback or feature request feel free to write me email.
New ACL Editor for midgard
Yesterday I go the version 1.0 of the new ACL editor ready for Midgard
Here's a screenshot:
The graphics will be changed and the Group selection box will be changed to searchable menubox widget (Which I will create next).
Basic idea was to make the permission assigning easier with cleaner looks than the older version. The blank boxes mean "Not Set (Inherited), green and red arrows mean allowed/denied. Status is changed by clicking the boxes.
It is currently only in midcom trunk, but will be backported to Branch 2.8 latest on monday.
Yesterday we published ajatus.info
Posted on 2007-11-15 09:48:19 UTC to Ajatus.
Read more from Bergie's blog.
I'll soon start writing some highlights that the system keeps inside...
Add field -support for Ajatus
Posted on 2007-11-29 07:18:15 UTC to Ajatus.
Just finished the first step in the "Add field" -support in Ajatus today.
Next step is to add editing and deleting to the added fields.
I have also planned a template support to the fields so one can save the added fields as template and reuse that.
New release of the jqCouch library
I'm happy to announce the release of totally rewritten jqCouch -library. Major changes were made so this version is no longer compatible with the older release. Talking with CouchDB is now done through 3 type of connections.
db -connection:
This is used to handle all those Database related tasks such as creating and deleting.
Available methods:
- exists
- info
- create
- del
- all
- restart
This is used to handle all those Document related tasks. Creating, Updating, Deleting documents.
Available methods:
- get
- all
- save
- bulk_save
- del
- (post)
- (put)
This handles all actions related to Views.
Available methods:
- exists
- info
- get
- save
- del
- temp
- (put)
Some basic usage examples:
creating connections:
//Database connection
var dbc = $.jqCouch.connection('db');
//Document connection with custom config
var dc = $.jqCouch.connection('doc', {cache:true});
//View connection with connection specific mapping function
var vc = $.jqCouch.connection('view', function(data){return data;});
//Database connection with connection specific mapping function and custom settings
var dbc = $.jqCouch.connection('db', function(data){return data;}, {cache:true});
Setting global configurations:
$.jqCouch.set_defaults({
cache: true
});
Creating new document (One liner):
var revision = $.jqCouch.connection('doc').save('doc_db', {id: "0", title: 'test'})._rev;
More info can be found from the source of the library and the testsuite included in the release
This library is part of the Ajatus - Distributed CRM
For some reason the jQuery website is not working properly and it seem that it has reverted to some old backup as the release no longer exists there. Here is a local link to the release: jqcouch-2.0.1.zip
Revision navigation to object view
Posted on 2007-12-20 08:58:09 UTC to Ajatus.
Yesterday I finished adding the metadata and revision navigation to object view in Ajatus . Now one is able to browse through the available revisions of a object and edit any of these.
Ajatus 0.5.0 Beta Release
Posted on 2007-12-31 14:47:12 UTC to Ajatus.
Hopefully full stable release will come inside January or February.
