Blog Posts

Using a powerful and full-featured search engine on mobile platforms

When Xamarin meets Lucene...

Introduction

> Read more
Related Entries:
- Ecostar Elastica/FOQElasticaBundle
- Why a project switched from Google Search Appliance to Zend_Lucene
- Making a singlepage web application
- webOS Hackday at Liip
- Mobile Safari on iOS 4.2 supports WebSockets

Comments [3]

On the Migros API - Core principles and challenges

At Liip, we develop an API that provides product information and other data for Migros, the biggest retailer in Switzerland. Let us explain the core principles and challenges we had and how we solved them (or not yet).

> Read more
Related Entries:
- Reverse proxy cache invalidation service
- Discussions and Pizza at PHPDay Italy
- HHVM with Symfony 2 looks amazing
- RESTing with Symfony2
- How to preload ACL in order to get good performances

Comments [1]

Swisscom open-sources CleanerVersion

An interesting Django package was recently open-sourced by Swisscom. Manuel Jeckelmann wrote an interesting article about how the process of open-sourcing this worked at Swisscom. In the context of work on a security data warehouse at Swisscom, Liip has also worked on developing this package. I'll briefly describe here what's special about this package and how it can be used.

> Read more
Related Entries:
- Mezzanine CMS hackday

Comments [0]

Improving the User Experience of the Symfony CMF Backend

Contrary to frontend experience, CMS backend experience is rarely adapted to the needs and tasks of its real users: the few people who publish and administrate the site. Standard backend themes often remain untouched after installation. The most common adaptations are the addition of menus and shortcuts, often due to addition of functionalities to the CMS.

We (David Buchmann and Benoit Pointet) spent some time to look into the backend we have for the liip.ch website, built with the Symfony CMF. We ran user testing sessions to collect our website’s editors painpoints, a community survey to collect the pain points of other CMF users, then did a lot of small tweaks both to the public bundles and in liip.ch specific code, and identified and documented improvements that needed more development work.

For a user experience designer, improving a CMS backend experience is like walking a thin and chaotic path, circled by doubt and criticism. Users and contexts? all possible. Luckily, a culture of the backend has established and evolved, which now establishes a rich base of conventions, patterns and best practices. The latest trends are represented in the concepts of the latest Typo3 and Drupal8 backends.

Working on the editor experience for the Symfony CMF has however a different dimension than the latter CMSs: The CMF is a toolbox from which one can build a custom CMS. Each bundle it is composed of potentially adds something to the backend. On the other hand, the CMF being a toolbox, it is not difficult to tweak the behaviour of any backend element to optimally fit for the requirements.

We decided to follow the approach of beginning with surface improvements. On the positive side, we found:

  • The basic interaction is good, as the interface is not too cluttered and the navigation by content type leads to quickly find the content to edit.
  • Using the document path in the edit URL gives an easy indication of context to the power user.
  • We have ckeditor enabled, but allow to switch to the HTML source for power users.
  • The interface makes it hard to do fatal mistakes like accidentally deleting a document.

After noting these positive findings, we improved and uniformized the backend:

  • For every admin list, we checked what columns the list should have and the ideal order of those lists. A very small and easy step, but with great impact for the user.
  • Checked the admin breadcrumb and ensured a useful name is displayed for each type of content.
  • Went over the groupings of the admins and made sure they semantically make sense. We moved those that are normally not used directly into an “Advanced” group. This is visible in the right column on the dashboard, and in the top menu dropdowns.
  • Customized the design of the top toolbar to make the user feel more at home.
  • Added a link to the dashboard and another one to the homepage to allow easier navigation.

The old backend looked like this:

After the cleanup, it looks like this:

Before further investing time into more complicated development, we sent a survey to the CMF community to tell us what they do and what their pain points are. We were positively surprised by the feedbacks we got. The appreciations often hinted at the simplicity of CMF-based backends: Only the needed features are there. This helps to avoid an overloaded user interface. The survey results report is online on the Symfony CMF website.

We then went through the list of issues from the survey and that we noted during the analysis of the liip.ch backend. We identified some more quick fixes that we handled right away. For the rest we created issues on github so that people are aware of them and might work on it. See a summary of those issues at the end of this blogpost.

Learnings

  • Small efforts can have a lot of impact on the usability of the backend.
  • It turned out to be very efficient to have a developer and a UX expert pair on this. We did a lot of small changes right there on the fly, had instant feedback and instant improvements with no communications overhead.
  • There is some effort needed for further admin UX improvements with Sonata Admin and the Symfony CMF.
> Read more
Related Entries:
- Updating old Symfony2 CMF projects
- Semantic web meets frontend-awesomeness
- What Liip did after winning the IKS semantics UX contest
- Symfony CMF hackday october 22nd in Cologne
- A frontend editor for Symfony2 CMF with the help of VIE

Comments [3]

Happy birthday Ada Lovelace

On the 10th of December 1815, that is 199 years ago, Augusta Ada Byron, Countess of Lovelace, was born. She is more commonly known just as “Ada Lovelace”. She is often seen as the founder of computer science and as the first programmer in the world.

Her upbringing and the way she got into computer science is quite amazing considering the time she lived in. Her mother supported her and brought her up as a scientist, logician and mathematician. Ada loved everything that had to do with machines from a young age.

Mary Sommerville was Ada’s mentor who introduced her to Charles Babbage. Babbage had made plans for a very complicated machine called the “Analytical Engine”. Those plans aligned very well with Ada's interests and she quickly understood Charles Babbage’s plans. In 1842 she was asked to translate and expand an article written by Luigi Menabrea about the machine because of her extensive knowledge of the subject.

The article she wrote came in at over three times the length of the original and sketched out examples and programs for the machine. The first computer programmer was born. Babbage and everyone else was very impressed by her skill. It is for this skill and her curiosity that Ada Lovelace is the proud name of one of our meeting rooms here at Liip.

There is a lot more to Ada Lovelace, and the Wikipedia article has a lot of good knowledge if you are curious to read more about her: http://en.wikipedia.org/wiki/Ada_Lovelace

What I take out of this story is that Ada had mentors and friends and supportive parents helping her become as strong as she did. If you are looking for a mentor, or would like to help raise the next Ada http://phpmentoring.org is really cool!

Happy birthday Ada Lovelace!

> Read more

Comments [1]

Make robots more human – LISTEN14

Last week, four Liipers joined a crowd of customer experience practitioners for the LISTEN14 conference at the GDI near Zurich.

> Read more

Comments [1]

FullFrontal 2014: A great JavaScript Conference!

Last week I was at FullFrontal 2014 in Brighton, a single day conference for front-end developers. Here is some interesting stuff from the talks:

> Read more
Related Entries:
- webOS Hackday at Liip
- Why I don't use the javascript "new" keyword
- Webnesday St. Gallen
- One day with NodeJS
- Semantic web meets frontend-awesomeness

Comments [1]

Symfony Live in Berlin: Lots of Symfony in Germany

Last week, I went to Berlin to present the Symfony Content Management Framework to the German PHP crowd. I did a presentation almost exclusively based on code. I showed how to develop an application with the Symfony CMF step by step. But rather than trying to live code, I prepared a series of pull requests that I switched through and showed the interesting code changes. This is a rather unusual format and I lost a few people, but I also got enthusiastic feedback from the audience. The tutorial is also online at github for those that want to have a look at it.

> Read more
Related Entries:
- Updating old Symfony2 CMF projects
- Semantic web meets frontend-awesomeness
- What Liip did after winning the IKS semantics UX contest
- Symfony CMF hackday october 22nd in Cologne
- A frontend editor for Symfony2 CMF with the help of VIE

Comments [0]

Functional Programming in PHP

Functional programming techniques in PHP

Functional programming has gained a lot of traction those 3 to 5 last years. First, there are some success stories around it : Twitter move to Scala, Whatsapp being written in Erlang. Then we have some new kick-ass languages like Rust. Finally, it seems the new hype is to create a functional language compiling to javascript : Elm, Purescript. On a more academic front, there is also research on new concepts like dependant typing, see Idris for example.

> Read more
Related Entries:
- LaraconEU 2014 - Empowering the PHP people
- Discussions and Pizza at PHPDay Italy
- Of HHVM, Hack and the future of PHP
- RESTing with Symfony2
- Content storage done right

Comments [15]

About Wearables and Android Wear Platform

Andreas and I had the opportunity to give a talk about wearables at the Internet Briefing in Zürich at the beginning of october. After the introduction about wearables in general, smartwatches and a variety of other smart products, we explained what Android Wear is, how the platform works and if you should adapt your app for wearables. The presentation was followed by an interesting discussion between all participants. Questions and answers about business opportunities, personal experiences and current projects were the main topics.

Let me wrap up what we presented and what the discussion concluded among the participants.

> Read more
Related Entries:
- When Xamarin meets Lucene…
- webOS Hackday at Liip
- 3 days with a WP7 phone
- Open Sourcing Radios - A PhoneGap iPhone/iPad app
- Radios for iPhone/iPad with background audio on iOS 4 released

Comments [0]

Next1-10/1157