ownCloud development in the second half of November

iOS app screenshot 1
We’re nearing the end of the year but with 191 merged pull requests in the last two weeks of November, development was nowhere near slow. For this report we have pulled together activities from development mailing lists, blogs, coding work and everything else community members share with us. Tips are very much welcome! Ping Jos with your input.

This has been a very busy period for the ownCloud community. In the area of code, the biggest items during the last weeks of November were massive API work and refactoring in Core and the new QR share and Polls apps as well as big upcoming changes in Passman. And you should not have missed the big announcement of the open sourcing of the iOS app, a call for help to clean up bugs in ownCloud and the announcement of ownCloud event resources! Read on to learn more details on these and all other happenings in the ownCloud universe.

You can read a report on the first half of November here.

Development

Core had a focus on API improvements and cleanups, while the Apps moved forward with a variety of features including a rewrite of the Bookmarks app, gif playing in the Gallery and much coming in the Passman app.

ownCloud Core

With 93 PR’s in core, a strong focus in this period was on cleaning up, refactoring and improving the API ownCloud offers to App developers. A few performance improvements and many bugfixes made it in as well. But let’s start with some feature, security and performance improvements.

Below a summary of the changes and improvements to the ownCloud API in the last weeks of November.

Besides API improvements benefiting ownCloud App developers, there has been a lot of work done to clean up code and refactoring core ownCloud code to improve maintainability and stability and make room for further improvements.

One PR highlighted: Dependency Injection and Performance

A small change, caching the results of available languages, makes page loading slightly faster. In the comments, MorrisJobke pointed out that Dependency Injection could get us similar gains for all static functions in ownCloud, giving a noticeable performance increase all over.

He explained this further on IRC.

Dependency injection is a software pattern which helps a developer to not repeatedly call some globally available code parts, but instead request what he needs in advance. These are then registered at a Dependency Injection Container. For example, you tell the code that you need: a User instance, a Database connection and a config object. This is looked up in the container, where it is also noted how these objects themselves are constructed (what dependencies they require) and once the object is instantiated, the container holds it. For every additional request for this object, it isn’t recreated, but the previously generated one is used, saving time! As noted in the pull request about caching the available languages, the function providing them was called 8 times while a page was generated. You can imagine that avoiding this decreases overhead significantly and could speed up page loading in ownCloud all over.

As an example, see mailsettingscontroller.php: these are the required dependencies

then see application.php: they are passed in there!

This all allows a step by step transition away from the static code that is still in core and could cause some weird side effects. From time to time I drop static classes and add instances to the dependency container.

If you find this interesting and would like to help speed up ownCloud, Morris and Lukas would be more than happy to help you get going. Ping them on IRC under ‘MorrisJobke’ and ‘AnybodyElse’ or mail the ownCloud devel mailing list and note you’d like to take on this challenge!

If you want to get involved in coding on ownCloud in this or other areas – check out this page!

polls app
The Polls app in action

ownCloud Apps

The design of ownCloud is such that the apps are where most of the ‘cool stuff’ happens! The apps maintained in the ownCloud repository had over 60 pull requests merged. Some of the most interesting merges included:

On apps.owncloud.com, we welcomed the QR share and Polls apps as well as updates to several existing entries. We also have an update on what is going on with the Passman app for you!

  • The brand new QR Share allows you to generate a QR code for share links
  • Also new is Polls, which lets you create a wide variety of public polls. Find the app on github – it already has had contributions from 5 different people and is moving fast!
  • Imprint updated to 0.2.2, fixing a crash, cleaning up some code and introducing markdown support to complement the existing html and plain text
  • The user_sql app, which lets you authenticate against an arbitrary SQL database, added support for Joomla 2.5.18+ encryption and a bugfix
  • The youtube downloader updated to 0.4, improving performance and fixing some bugs
  • Version 1.3 of the Large File Upload app removed dependencies for the App Framework and included some CSS fixes but the author notes that there is more work to be done there
  • Old Menu bugfixed up to 0.2.1
  • The files_clipboard app offers a minimal clipboard to move files between folders in the files app and was updated with some bug fixes

passman

Passman update

Passman author brantje mailed about the Passman password manager app he’s working on. A big update is coming “when it is ready”, version 2.0.

This new release uses AngluarJS besides jQuery and introduces a series of improvements:

  • Password Sharing
    The idea behind this feature is to share passwords with other users or even groups and public links, with expiration based on either date or how many times the link was opened (making it suitable for sharing of one-time passwords). This is build with help from animalillo!
  • OTP Generator
    This can load a two-factor authentication QR code in passman and save this; and generates the OTP codes for login when needed. Brantje noted that this is useful when your phone battery is empty and you need to log in your Google account with 2-factor authentication – no need for a backup code thanks to Passman!
  • A new and improved password generator
  • Password strength indicator which gives an estimate for how long it takes to crack a password
  • Password strength scanner can show you all weak passwords
  • Support for removing custom fields and using custom icons
  • Permanent removal
  • Fast search
  • support for the Activity app, showing
    When an item expires; is shared; soft or hard deleted; and recovered

As you see, the new Passman brings large improvements. If you’re interested in helping out with coding or testing, check out the github repo!

Mailing list

Besides the emails referenced already, some interesting conversations from the development mailing list include:

You can join the discussions on the mailing list here.

assembling packages with materials to send out

Other ownCloud happenings

On Planet ownCloud, ownCloud contributor blogs are gathered. Blogs in this period include the big announcement of the open sourcing of the iOS app, a call for help to clean up bugs in ownCloud and the announcement of ownCloud event resources.

Please note that if you’re an ownCloud contributor, you should get your blog aggregated on owncloud.org/news! Ping Jos with your RSS feed. And if you want to become part of the action but aren’t yet, check out our contribute page on owncloud.org to find out how to get involved and become part of the awesome that is ownCloud!

Comments are closed.