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!

Extend your ownCloud with apps

The ownCloud app store is one of the most important aspects of ownCloud. With dozens of apps available, it brings you access to a rich variety of functionality. We often get questions about the ownCloud app store and recently revamped our documentation. This blog will detail how to install and enable apps.
markdown

ownCloud apps

ownCloud has a modular architecture with a strong emphasis on apps. An app offers a distinct piece of functionality like a mail client or music player, but even deeply core functionality of ownCloud like sharing and external storage are implemented as apps. About a dozen apps are included in a standard ownCloud install, including Sharing, the Activity app, the Updater and External Storage Support. In the App manager you’ll also find another dozen apps marked as ‘third party‘ which represents apps that are not included in ownCloud by default but have been vetted by the ownCloud security team. Apps are added to this list constantly.

Almost all apps available for ownCloud, including those not (yet) reviewed by the ownCloud security team, can be found on apps.owncloud.com. Some of the apps there are developed in the ownCloud project, either in the apps repository or in a separate repo while others are developed independently and can be found all over github and other developer collaboration sites. All ownCloud apps can be found on apps.owncloud.com, but only those included in ownCloud or checked by the security team can be downloaded from within the ownCloud App manager. Read this earlier article for more details on the security of ownCloud apps.
app store

Managing apps

In the Apps page, you can enable or disable applications, as well as modify any app settings, by clicking the app name. If an app is already enabled, it appears highlighted in the list. In addition, enabled apps appear at the top of the app list in the Apps Information Field. In contrast, disabled apps appear below any enabled apps in the list and are not highlighted.

To enable or disable an app:

  1. Click the app that you want to enable or disable.

    The app is highlighted and a description of the app as well as any available settings for the app appear in the Application View window.

  2. Make your changes to the app.

    All app changes are applied dynamically as soon as you select the change.

Clicking the Enable button will enable the app. If the app is a third party app, it will be downloaded from the online app store, installed and enabled.

Installing from apps.owncloud.com

If you have browsed through the large selection of apps on apps.owncloud.com and want to install an app which is not available in the App manager, you can download it from the app store and install by hand. Note that this process is manual because there is a risk associated to downloading and running code from the internet, see this article about security for details.

To view or install apps from the online ownCloud apps store:

  1. Scroll to the bottom of the Apps Information Field.
  2. Click More apps.
    The ownCloud apps store launches.
  3. Read about any of the apps in the ownCloud app store and download any that you like.
  4. Extract a downloaded compressed file and place the contents (which should themselves be contained in a folder with the app name) in the apps folder in your ownCloud installation.
  5. Ensure the permissions and ownership are similar to the other ownCloud apps. Typically, access rights are rwxr-x— or 750 in octal notation and owner is for example wwwrun.

Now the app will show up in the App manager so you can enable it and make it available for use. Find more information and details about configuring and managing ownCloud apps in the documentation. If you would like to create or add your own ownCloud app, checkout our developer documentation!

stay up to date

When we asked on twitter what the most popular popular apps were, ownCloud Calendar and Contacts came forward, as well as the News and Notes apps. But there is far more worth exploring. We regularly highlight interesting developments and updates to apps in our development updates so be sure to follow those on owncloud.org/news.

Enjoy the wide variety of ownCloud apps and let us know what your favorites are in the comments section below!

Happy Holidays Part 2: Federation Treat “A”

As you might imagine, I get a lot of questions from analysts these days about "this Federation thing - what's the material benefit?"   While people in equity markets thrive off speculation (and this becomes a self-fulfilling thing - speculation begets more speculation).  

I always come back to what customers tell me:

  1. "I like integration between Pivotal, VMware, EMC.  I want more of it."
  2. "I like choice.   Don't hyper-couple Pivotal, VMware, and EMC."
  3. "I don't like different sales people telling me different things (VIO vs. Cloudscaling; VSAN vs. ScaleIO; EVO:RACK vs: Vblock; SRM vs. vRealize Operations, VSAN vs. XtremIO in VDI use cases)"

What's funny (in a sense) is that people don't get that:

  • Desire #1 (integration = good!) is in natural tension with Desire #2 (choice = good!)
  • Desire #3 (different sales teams with less than perfect alignment) is a natural outflow of Desire #2 (choice) - after all, if there was a singular sales team, choice would disappear overnight.   Before you know it, you have Oracle - who's hardware works with "any software" (so long as "any software" is Oracle).
  • Desire #2 generates Desire #3, and is a "hedge" against the biggest threat for a high-tech company: failure to self-disrupt, or overnight collapse of your ecosystem due to disruption in your periphery.   Should VMware's ecosystem collapse do to business or technology drivers (not likely), EMC and Pivotal can be A-OK.   Should EMC not disrupt itself with hyper-converged and software + commodity architectural models, VMware and Pivotal can be A-OK.
  • Cases of conflict in #3 are actually rare and noise relative to places where there is alignment - but people are attuned and sensitive to conflict, so when it happens, it tends to be visible.

We really do have a funky model, and it results in interesting and very positive outcomes. 

I DON'T KNOW what will happen in Federation-land in 2015, but I suspect that "choice" will remain at the core of our thinking, it's at the core of our DNA.

Here's one neat Federation treat for customers.   For the last year, we've constructed something called "EMC Storage Analytics" (ESA).    We announced an update at VMworld Barcelona, and now this release (ESA 3.0) is released!

ESA is a integrated solution that includes parts of VMware vRealize Operations Manager Enterprise (formerly vCOPS) with some of the Enterprise functions (outside the storage domain) removed.   Could we do this purely in a partner model with VMware vs. the Federation model?  I suppose so.  I suspect that we wouldn't.

ESA adds a very, VERY comprehensive dashboard designed around EMC products.  This is more than just a management pack - it has logic on the internal dependencies of the storage stacks.   Furthermore, in ESA 3.0, we integrated vRealize LogInsight for more reporting, and integration with the storage device logs.    If you need MORE (particularly in the domain of reporting vs. analytics) - check out EMC ViPR SRM which broadens out the visibility, reporting to a much, much broader part of the storage and datacenter domain.

It's priced to be a NO BRAINER when customers are looking at their infrastructure.  If you're a customer who doesn't already use vRealize Operations Manager, or use Standard and want to see what Enterprise would get you in terms of 3rd party integration - push your EMC partner or EMC team to include ESA and ViPR SRM in your next storage acquisition.

image

Here's what's new in EMC Storage Analytics 3.0:

  • Based on VMware vRealize Operations Manager 6.0
  • Capacity and demand analysis shows current and historic storage usage
  • Problem alerts and Symptoms, and Recommendations
  • Alerts combine multiple symptoms to show actual issue
  • Correlation across objects
  • Visibility into symptoms for associated alert
  • Resource Analysis: Customization of Badges based on Health, Risk or Efficiency
  • VNX physical host/drive support
  • Real-time Log Analytics: VMware vRealize Log Insight Content Packs available for VNX and VMAX
  • (HUGE!) New XtremIO platform support: Support for XtremIO topology, metrics, and dashboards

Wayne Green at VMware recently did a blog post on ESA 3.0 as well, check it out here.

A couple considerations:

  • You can't install ESA's integration into a pre-existing vRealize Operations Manager Standard install (it depends on
  • EMC currently doesn't sell ESA as a "management pack only" for customers that already have vRealize Operations Manager Enterprise.   It absolutely works, but there isn't a "discounted version".   We're working on that - expect it shortly.

Another thing that is cool is there is a ESA "dashboard exchange" community where people are sharing their EMC customizations of their dashboards here - that's the power of the community!

Are you an existing ESA customer?  Would love your feedback - good/bad/ugly!