(ˢᵒᶜⁱᵉᵗʸlog)
(ˢᵒᶜⁱᵉᵗʸserver)
(ˢᵒᶜⁱᵉᵗʸtask)
Chandler
REST
angular.js
coding-for-fun
cordova
css
hackerspace
installation
javascript
mockups
multi-language
nReduce
pike
publishing
retreat
sTeam
stylesheets
user-interface
virtual hosting
xiamen

We have redesigned the way objects are published and how virtual hosting is handled:

Publishing:

What was:

Each object used to have a Publication path that would set the absolute path for this object and all objects inside. This allowed a very flexible layout but could also lead to mixups and confusion if it wasn't used consistently.

More importantly it allowed one user to override the publication of another: if you published something under /hello/ i could publish something else as /hello/world/ and thus block an object called world that you might have had inside of /hello/

What is:

This Publication path is no longer used.

Instead, each group or user is allowed to set one area as their public area in the attribute GROUP_PUBLICROOM or USER_PUBLICROOM. That area is then published under the group or username. If the attribute is not set then it defaults to GROUP_WORKROOM and USER_WORKROOM respectively. Thus publishing something as /hello/ can only be done by a group or user named hello. And publishing something as /hello/world/ can only be done by someone who has the permission to write into the container published as /hello/.
Btw: Users and groups are now no longer accessed on /home/ but directly on /.

What may be:

The remaining work mostly centers around making publising more visible. It should be easier to see if an object is published, and where. And also switch publishing on and off. First steps of that are already visible in the (logⁿ) package which sports a tab for each virtual host where a container is published.

Virtual hosting

What was:

Virtual hosting used to be implemented very simple by setting a path that was just prepended to the actual path for each request. The request was actually rewritten and it was not recognizable that a virtual host was effective.

What is:

Virtual hosting has been redesigned completely:
A hostname is now assigned to a group or user.
When it is resolved, the group or user object is checked for a public room and the path of the request is then found inside it. If it is not found there, it is checked in the root-room and if that fails too, the first component of the path is checked to see if the group contains a subgroup or has a member by that name.

Because virtual hosting closely relates to publishing, the code to handle this has been made part of the filepath:url module. The functions to resolve a path to an object have been rewritten to handle the new way of publishing and virtual hosting. object to path translation also takes virtual hosting into account.

To handle the latter the Caller module was extended by a function to find the socket from which a request was made. Similar to CALLER, the new function Caller.get_socket() will traverse the backtrace until a socket object is found. The socket is then queried for the virtual host that is to be applied for the translation.

What may be:

Ideas range from automatically setting a subdomain for a subgroup or member, so that each subgroup or member can have its own hostname based on the group or username, to allowing a group to set their own domain.

Author :mbaehr   |   size :3608Bytes   |   Publish Date :Dec/24/11/18:12   |   to Top
An apartment near the beach
6 people
One week
One goal

After a long ride from beijing we arrive in xiamen in the afternoon. The first destination is a shack where we intended to stay and work. We settle there while we wait for the others to arrive so we can head to dinner together.

We are in the center of old xiamen with plenty of eating places nearby. a small joint is picked and we cramm into the storage closet which has the largest table in the restaurant. After a quick dinner we move to the shack to plan for the rest of the week.

Starting with a round of introductions everyone presents their motivation and goals. The discussion turns into the merrits of open-steam before we break it off and decide to move to the apartment where some of us will stay.

It is a new complex near the coast, and a brand new apartment, in the final stages of renovation. On the 10th floor, with a sea view, from the bathroom. With three small bedrooms it is just large enough for this group. Because of the distant location and also because there is enough space for most of us, we decide to work here instead of the shack in the city center.

Author :mbaehr   |   size :1245Bytes   |   Publish Date :Mar/26/12/08:27   |   to Top

Punctual at 9am in the morning the rest of the group arrives and we start discussing ideas. The main ideas were already presented: analysing e-commerce, product wiki and email-task-manager.

The most interest is clearly on the email-task manager.

So we go over the basic idea and then head out to lunch. we are somewhere away from the city so two taxis are needed transport us all to a place where we can find restaurants and also the meeting place for event in the afternoon. Aftr lunch we go shopping for a whiteboard. The local walmart doesn't have any big enough, but one of us lives in this area and knows a shop that has a large whiteboard.

In the afternoon we join a meeting of the techclub in the at-cafe. An initial impression makes this place look more open and flexible than the garage cafe in beijing, but that impression is soon corrected. It may have been the more youthful audience here that misled us. Everyone is required to pay 30rmb whereas in the garage cafe this rule is not enforced.
The internet is available via a service that requires one to hand over your weibo id. No luck if you don't have one.

As the room fills up the bartender announces that the first 10 minutes of the event is networking time. Noone networked with me, so i consider that a failure. The first talk is described to me as boring and lengthy. No matter, i concentrate on reading a book as part of the research for developing the task-email manager.

In the break we use the opportunity to quickly describe the project we are doing. The audience pays attention and people even give feedback agreeing with the basic problem.
During the next talk i am asked outside to meet a couple from sweden who is heavely involved in the drupal community.

Dinner is taken at a small fast-noodle joint. And then we split in two groups, one which heads back right now, and one to go shopping for snacks and other things we may need.
By the time the second group gets back the first group already has a structure of frames that can move around, allowing tasks to be structured and reordered.
So much that we are able to dive into the first attempt at sTeam integration the next day which we initially had scheduled for tuesday.

Author :mbaehr   |   size :2393Bytes   |   Publish Date :Mar/26/12/08:35   |   to Top

Because some have to travel far to get here we start at 10am. The team is split up with two people working on the sTeam integration, one to continue to work on the interface, with my assistance, and one to disappear in another room to go into introspection mode and analyse user stories related to email and task management and come up a workflow and design based on this. Later in the week we will compare the two approaches and see if we can improve each others results.

For the evening we went out to a different area in xiamen where we had some grilled duck in a clay pot with lots of ginger.

Author :mbaehr   |   size :628Bytes   |   Publish Date :Mar/27/12/17:52   |   to Top

Work continued on sTeam integration while i completed reading up on the last years of chandler development, trying to figure out what brought the project to a halt. It looks like it was the rather abrupt ending of funding. I suspect that a project that starts with paid developers will be disrupted if it doesn't develop a strong volunteer community before funding stops. I think that it would have helped to keep one developer on the payroll, to ensure a slow but steady continuation that gives the users the hope that development doesn't end and invites them to speed up the pace by volunteering. Keep the project alive with minimal funding instead of killing funding outright.

Reading the chandler blog also brought up some good user stories that apply to our project as well, giving us some material to study.

For the evening we met some other locals in a robot themed caffee, which has events like 'speak like a pirate day' and 'towel day'. It also sells donuts as well as donut holes! Unfortunately we didn't stay long enough to get a chance to try the latter.

We moved on to the university where one of our friends works. In the computer lab we continued working on the email-task manager, discussion structural questions on the white and blackboards.

Author :mbaehr   |   size :1440Bytes   |   Publish Date :Mar/27/12/18:02   |   to Top

Some of us have been called away from xiamen to meet some clients elsewhere and thus had to interrupt the retreat and delay the finale by one week.

That finale happened today: a coding-for-fun event at the angry robot coffee where we presented the progress of our work among the other projects there.

One group of students and a few other guests made it to the event. The students presented their project, a website that allows them to tag themselves and their peers with skills so that they can search for help based on the tags. An idea similar to hacker buddy. Another project was work on a drupal website. Myself, i worked on analyzing the codepaths for handling an http request in sTeam in order to find out if we can apply stylesheets to documents by default without breaking anything. As a special guest we were graced by Daniel Veillard, author of libxml2, libxslt and libvirt.

Almost a dozend people where hacking throughout the day until dinner time. Around 5pm we did a round of presentations where each project gave a rundown of what they worked on today. The feedback was throughoutly positive and it looks like we have 4 volunteers interested in hosting more events so that coding for fun in xiamen will hopefully be able to continue on a regular basis.

The state of the task-manager

We didn't get as far as we hoped. Progress was mostly hampered by lack of experience with jquery. But some of the basic features are already visible: you can see the inbox to the left, and projects in the center. The 'current' box on the right shows tasks that are selected to be worked on today. Clicking on a task/email will reveal the first part of the content for help with categorization. Double-click will open the whole message. Tasks can be moved around from box to box to categorize. Dropping a task outside of the boxes will create a new project.

The project boxes in the center can be moved around to allow arrangement of projects for convenience. Double click on a project will open it to zoom in onto that project and instead show the projects inbox on the right as well as subprojects in the center. Clicking on From will show the list of participants of that task, those that will receive an update when the status of the task changes. Entries in that list can be added or removed. The '[+]' button allows adding of a new task, status (like new and done) can be updated, as well as hours can be tracked. (for those that don't care about tracking time, this can be replaced with something else)

More work is still to be done, but you can see it taking shape.

Author :mbaehr   |   size :2965Bytes   |   Publish Date :Apr/8/12/19:53   |   to Top