SO_oC — Summer Of ownCloud!

This is a heads up that ownCloud is participating in two internship programs this summer!

Google Summer of Code 2014 (GSoC)

GoogleSummer_2014logo_avatar

Thanks to openSUSE for hosting us again!

Check out the openSUSE GSoC portal and the ownCloud GSoC portal for more information

Student application starts tomorrow. It’s important that you come up with a draft of your proposal as soon as possible, so that you can get feedback from your mentor.

Outreach Program for Women (OPW)

opw-logo

Thanks to the OPW organizers for accepting our application ;-)

Check out the ownCloud OPW portal for more information.

Remember that you have time until March 19 to get in touch with us and make a small contribution.

—–

Here is the list of Projects Ideas we propose. Check out this list and contact the mentors of the projects you are interested in. Notice two things:

  • in order to participate in OPW, you don’t need to be a student;
  • GSoC projects are restricted to coding. If you are applying for GSoC, look only for projects in that category;
  • both the programs have hard deadlines, mind the dates!

If you have any question, don’t hesitate to swing by our IRC channel! (#owncloud on Freenode — I am ‘cosenal’)

Here it’s still -11°C, as I write, but I’ll say it anyway, as an omen: Happy Summer Of ownCloud!

ownCloud News App stable release

The News

The first stable version (1.001) of the ownCloud News app is out in the ownCloud app store. Grab a copy, use it and tell your friend how awesome it is!

If you’d like to stick to the development version, refer to the github page.

Extensions

It was amazing to see how much feedback we received in the last month. We’d like to thank everyone who reported issues on the tracker. We tried to fix all important bugs before this release, but please do continue to test and report issues.

We received a lot of feature requests as well. There are some features that we could not accommodate, because they don’t fit the design style of the app. This is why we decided to make the app open to extensions. You will be able to release your own app which hooks into the News app and/or use its infrastructure to build an even more complex app. We created documentation on how to plug into the News app, see https://github.com/owncloud/news/blob/master/docs/plugins.rst. This is still a work in progress and we hope to publish soon some examples of plugins. The main advantage of an extension system is that we can focus and have tight control over the basic design, and still accommodate users’ wishes.

Galaxy

The app also exposes an external API and we look forward to seeing a galaxy of desktop and mobile clients gravitating around it in the next future.

If time permits, in the summer we will work on a mobile client that interfaces the News app. The idea is to create a cross-platform app in html+css+js with PhoneGap and AngularJS. We aim at FirefoxOS, plus all the platforms supported by PhoneGap (Android, iOS, Blackberry, …).

If you own an Android device, you can already use a development version of an unofficial News app client created by David Luhmer. See David’s blog post (in German).

Conclusion

After one year of work, we finally released a stable version of the ownCloud News app. It is an RSS/Atom reader for ownCloud powered by the library SimplePie.

It’s not a coincidence that this release announcement falls exactly one month before the date announced by Google for the shutdown of its Reader :) We are going to talk more about migration from Google Reader to ownCloud News app in the next blog post.

Thanks for your support and we hope you enjoy the app!

Alessandro, Bernhard and Jan-Christoph

stable_ss

ownCloud News app Beta release

Good news everyone! We are happy to announce the Beta release of the ownCloud News app.

You can download it from here or install it directly from your ownCloud instance. Remember to install the App Framework app first.

This release is fully functional. We have implemented all the main features that we want in the first stable release and we need your feedback to squash the last remaining bugs.

What did change from the Alpha release of few weeks ago?

Besides lots of bug fixes and important changes in the back-end, which made the app faster and more stable, the most important features we added in this release are the following:

This announcement is a good opportunity to thank our translation teams for their amazing job. As we write, ownCloud News app is translated in 75 languages (16 of them have a complete translation). If you want to help to translate the app, join one of the teams at https://www.transifex.com/projects/p/owncloud/resource/news/

At this stage, contribution from users and other developers is very important. We would appreciate if you could test the app, report the issues and join one of the open discussion on the issue tracker, https://github.com/owncloud/news/issues?direction=desc&sort=updated&state=open

So what’s next? Being optimistic, we plan to have a PhoneGap/Firefox OS mobile app (GSoC project) and syncing with KDE Akregator working at the end of the summer.

Alessandro, Bernhard & Jan-Christoph

ownCloud News app alpha-2 release (guest post by Bernhard Posselt)

In this post I hand over the floor to the co-maintainer of the News app Bernhard Posselt (Raydiation). Bernhard is a software engineering student at University of Applied Sciences Technikum Wien. As an intern at ownCloud inc., he is the man behind the new ownCloud appframework. He is also involved in the coding and the design of the Notes app and in lots of user and devs documentation for ownCloud.

This is my first real report on the progress of the News app (I’ve escaped Alessandro’s requests to write a blog post quite a few times already :D). I’ve joined as a co-maintainer back in last August, because I was looking for a replacement of Google Reader. I’m a heavy Google Reader user so this app better becomes a solid replacement! ;)

In this post I am happy to announce the second (and last) alpha release of the News app. It is already usable and the core features are implemented, but there will be some rough edges and bugs and we may add small improvements in order to get it stable. See https://github.com/owncloud/news/issues?milestone=3&state=,open

The development of the News app started as a GSoC project last year and at the end of the last summer we announced the first alpha release of the app. So why such a long time span between two alpha releases and why not yet a beta release? There are multiple reasons for this.

First off, we don’t want people to use an app that is not finished yet: this will only scare away people who want to switch to the app and find little annoying bugs. I speak from personal experience: this is the reason why I don’t use KDE SC (tried it multiple times, always been bitten by tons of minor bugs and annoyances).

Second, I’m used to Test-Driven-Development and to web-frameworks like Django and there was basically nothing in this regard at the time I joined ownCloud. In the course of programming the News app I’ve developed a small framework that helps people with ownCloud app development: https://github.com/owncloud/appframework And of course I also had to write documentation for it :)

This means I factored out all the parts of the News app which we could generalize, wrote unit tests for it and restructured the News app with the new code.

Since I’m mostly responsible for the JavaScript and CSS part, I ran into maintainability problems and started to port everything to AngularJS. jQuery is a nice tool but it binds your JavaScript code so heavily to the DOM that changes in the template can break the whole app. In the long run this is not maintainable.

I am quite happy with the result now: the whole News app has basically been rewritten using the App Framework, AngularJS, unit tests and a proper architecture and I feel like we will not have to rewrite anything anytime soon. We even have JavaScript unit tests now!

Third and last, we are both students and have tight schedules and during the last two semesters we have been really busy. I started to work full-time on the app only since one month ago, when I started my internship at ownCloud inc. (I’m very grateful to ownCloud for this opportunity).

Because this is only an alpha release, we won’t release packages but urge users to use the master version from GitHub (we moved the app to its own repository: https://github.com/owncloud/news). This way people can easily stay up to date with the newest bug-fixes and it will also help us developers to minimize the effort of closing bugs that are already fixed. An installation guide is available in the README file.

So long thanks for all the testing and feedback! The response since Google Reader has shut down has been amazing: we already have tons of people testing and giving feedback. Thanks for the all the help and your patience ;)

ownCloud projects for GSoC 2013

A Spring announcement: ownCloud will take part in Google Summer of Code 2013 under the organization openSUSE. You can find the list of ideas here: https://en.opensuse.org/openSUSE:GSOC_ideas#ownCloud 

We are very grateful to openSUSE for hosting us this year and to KDE for helping ownCloud with GSoC in the last years (including my own project!). Maybe next year we will try to participate as an independent organization.

In fact, even this year KDE offers an ownCloud-related project, proposed by the Marble guys: http://community.kde.org/GSoC/2013/Ideas#Project:_Marble_meets_owncloud

If you are a student interested in GSoC, I encourage you to contact the ownCloud mailing list. And rather than giving you specific advices, I refer you to these two very well-written blog posts by KDE fellows Teo Mrnjavac and Myriam Schweingruber, respectively:

Summer is coming!

Google Reader’s sunset is the dawn of ownCloud News

This post is dedicated to the memory of Aaron Swartz. Among all his contributions towards a more open Internet, Aaron was also one of the creator of RSS 1.0. Thanks, Aaron.

The first news of the day is that the fantastic ownCloud community has released ownCloud Server 5.0.0. Congratulations everyone!

The second news is that Google has decided to power down Google Reader. This is a sad news for the users of the Reader, but it’s a great opportunity for ownCloud! Google Reader will cease to exist on July 1st and their users are looking for alternatives. As you already know if you have been following this blog, in the last year I have been working on an RSS/Atom reader for ownCloud (News app). The project started as a Summer of Code project sponsored by Google itself. Actually, the original idea and most of the design choices were inspired by Google Reader. It couldn’t be otherwise, since I have been a user of that service myself for long time.

In the last August I released an alpha version of the News app, see my previous post. There has been lot of progress since. Bernhard Posselt (Raydiation) ported the app to the new ownCloud app framework and he joined me as co-maintainer of the app. Thanks to his work, the app works much better now, the user interface is faster and the code is more stable and more testable.
In the last KDEPIM sprint in Berlin, I started to write an API so that external clients can synchronize with the app. Many calls are still missing, but it’s a start. Frank Osterfeld is already using this API in an Akonadi resource that interacts with the app and that can be used by Akregator. His code is in the akregator_port branch of kdepim-runtime. If you want to use the resource, you need akregator2 from the akregator_port branch of kdepim.
I am also trying to put up a new GSoC project for a mobile app that interfaces with this API (if you are a student interested in this, please let me know).

The app was not stable enough to be shipped today with ownCloud 5 (yes, remember news number one: oC 5 released today!). We expect to release a stable version of it in less than two months (probably along with some ownCloud 5.X release). Once that will happen, I will write a post on how to migrate from Google Reader. Just to be clear, there is a big difference between ownCloud News and Google Reader. OwnCloud News is open-source (code is released under AGPL) and you can host it on your own server. And if you use KDE, you will be able to use Akregator off-line and still have all your feeds on the cloud. Google Reader will be shut down on July 1st. You will have to make a change anyway, why not making a real change!

We are developing the app in the master branch of the ownCloud apps repository on github. If you want to check the API, refer to the news_ext_api branch instead. We ask for help with testing, developing, documenting. If you have any questions, bug me (zimba12) or Raydiation on #owncloud-dev, Freenode. The more help we get, the earlier we will manage to ship the app.

Google Reader is dead. Long live ownCloud News!

oc_news_ss

pizza sandwich & lahmacun

[You know that feeling when you want the Internet to know about something. This post is only triggered by that feeling, and it has no correlation whatsoever with other posts in this blog.]

Two years ago I was walking in Bloor St., Toronto looking for some quick lunch option and the sign of a restaurant aroused my curiosity. They offer pizza, sandwich and lahmacun. At that time I had no idea what lahmacun was, so I found the set to be kind of odd (after tasting it, I must admit: it deserves to be in that list!).

Image taken from blogto.com

Image taken from blogTO

 

Today it happened again. I was looking for the meaning of a French word and I went to the home page of Wiktionary. My attention was caught by the list of languages with 1 000 000+ entries: English, Français and Malagasy. Malagasy?! In this case I was even more surprised by the oddity of the set. How did this happen? I understand that a language can be as rich as English and French, but how come there are so many people from Madagascar updating Wiktionary?

wiktionary

More generally, does this phenomenon have a name? Am I being offensive to Malagasy or Turkish people? I hope not.

Great Lakes ownCloud developer meetup

I am going to meet up with other North-American ownCloud-ers on October 27th–28th in Ann Arbor, Michigan. The meetup will run in parallel with the main ownCloud developer sprint Fall 2012, which will take place in Berlin. Some of us couldn’t make to Europe, but we decided to meet anyway with a smaller money and travel effort.

Michael Gapczynski (aka MTGap) is taking care of the organization, so refer to his blog for more information. The meetup will be on the University of Michigan’s campus. [Update (October 13, 2012): here is the official page of the meetup.]

You are very welcome to join us! If you are interested, please contact Michael or me. If you live in Toronto or somewhere close-by, I can also offer you a free ride!

ownCloud News app – Alpha release

I am happy to announce the Alpha release of the ownCloud News app, which I developed as a GSoC 2012 project. This is my final GSoC report, so it’s also the time for acknowledgments. Working with the ownCloud (oC) team has been a fantastic experience. The excitement around the ownCloud community is astonishing and people have been extremely kind and helpful with me throughout the last three months. I am very grateful to my mentor Jakob Sack. FOSS projects need people who are much more than just coder, people who are also able to guide other people into the community. Jakob is one of a kind when it comes to this. Many thanks also to Frank Osterfeld (co-mentor of the project), who has been a great source of general “RSS knowledge” and will be very helpful when I will start to work on the API (more details about this later in this and future post). As Jakob pointed out, the project has gained a lot of momentum in the last month. Bernhard Posselt (Raydiation) and Gregor Taetzner (brummbq) joined the project and gave a lot of help with restyling the look of the GUI. I am indebted to them and I hope they will continue to help ownCloud with the same enthusiasm.

The app is basically ready and you can play with it: you can add feeds, folders, remove feeds, folder, view articles, … you know, that kind of things you would do with a feed aggregator :) You can find it in the the master branch of the owncloud/apps repository. Go and clone it! [Update (Aug 25, 2012): notice that ownCloud code has moved to github]

Without further ado, here is how it looks like:

As you may already notice from the screenshot, we decided for an essential look. Some of the usability choices we have made are non-traditional (only one-level folder, no unread item counter), but we hope they will pay off (many thanks to Jan-Christoph Borchardt for those ideas!). Differently from what I stated in the proposal, there is a single view. It will be easier to maintain and we tried to make it intelligent enough so that the user will not feel the need of a different view.

The app also features an OPML importer, which can be found in the Settings panel (click on the cogwheel icon at the bottom of the feed list). If you are curious to see how the feeds that you usually read look like on oC, just open Google Reader, export the OPML of your subscriptions and import them into News.

The plan is to release a final version of the app along with the oC 5 final release (late October/November). Between now and the final release, you are encouraged to test the app and report bugs. Please report an issue only if it’s not listed here yet:

http://algorithmsforthekitchen.com/wiki/doku.php?id=owncloud_rssreader.

If it is, it means I am already aware of it and working on it. I know, the list is still very long…

The main feature missing in this Alpha release is Sharing. In the final release, the user will be able to share the posts he likes with other oC users and groups, as well as with contacts from his oC address book or just using an email address. This will be based on the new oC5 Share API (see Michael Gapczynski’s blog post.)

The Akregator aficionados who are reading on Planet-KDE will be a bit disappointed to hear that synchronization with their favorite feed reader is not yet functional. Unfortunately, the version of oC News that will be shipped with oC5 will not expose an API. On the other hand, the oC6 version of the app will have an API based on the general oC OCS API, which is being developed in the ocs_api branch of the main owncloud repository. I will talk more about this in a future blog post.

Finally, my app has also been a testbed for an interesting oC feature developed by Jakob Sack. You can read more about this feature here: Background Job. In few words, it works like this: suppose you are taking a two-weeks vacation from your nerdy life of checking your feed reader every day, but you don’t want to miss any of the posts that are published at the same time. Then your oC server will do the job of collecting the unread posts and store them while you are playing matkot on the beach. This is cool, isn’t it? Ok, do I sound like I am craving for a vacation? I am actually going to take one in few hours :P See you in September!

ownCloud feed aggregator – the M part

Hello KDE/ownCloud fellows!

After one month of GSoCoding (and quantum information research), I am finally back to blogging. Let me be honest from the beginning: there will be no screenshots in this post :( This is because the first part of my project was entirely devoted to the most hidden layer of the aggregator app: the model part, the M of MVC (Model-View-Controller) — the pattern used in the design of ownCloud applications. In this post I would like to explain the details of my implementation and share some of the things I learned during the first weeks of my GSoC.

The most important entities in a feed reader application are collections and items. As you can imagine, a collection is a set of items. The collections are organized in a tree, whose nodes are the folders and whose leaves are the feeds. In my implementation, folders and feeds are objects of the classes OC_News_Folder and OC_News_Feed, respectively. These classes extend the class OC_News_Collection. “Class”, “object”, “extend”? Yes, I am trying to design this app using object-oriented programming principles. I know, PHP is not the most comfortable language when you want to do OOP, but I still believe that this approach will make the code better organized. There are many aspects of PHP5 I could bitch about here (lack of a real overloading, for example), but I will rather refer you to this amazing post by Eevee. Anyway, ownCloud is written in PHP for very good reasons, so lamenting doesn’t really matter. I still believe it is possible to write nice OO code in PHP. <ad>A book that I found very helpful with regards to this is PHP Objects, Patterns and Practice by Matt Zandstra.</ad>.

The actual parsing of the feeds is handled by the SimplePie library (many thanks to its developer!). The interface between the SimplePie layer and the modeling classes is provided by some static methods of the class OC_News_Utils. The aim is to make the SimplePie layer very independent from the rest, so that in future it will be easy to eventually replace it with some other RSS/Atom parsing library.

Another layer that needed to be decoupled from the layer of the domain objects is the persistency layer (in our case, the same as the database layer). An elegant solution for this is provided by the Data Mapper pattern. In a few words, a mapper acts as an intermediary between the memory and the database. It provides CRUD methods that output, or take as parameters, objects lying in the memory and map them to rows of the database tables. In my implementation, for each class X describing a domain object, there is a class XMapper for the corresponding mapper. As an example, the class OC_News_FeedMapper contains the method save which takes an instance of the class OC_News_Feed and write the corresponding data in a row of the feed table in the database.

This was a brief summary of the design choices I have taken so far in my GSoC project. If you want to know more, you are invited to grab the code from the owncloud/apps repository – branch newsapp. The classes I described above are all in the folder news/lib. Since the official release of ownCloud 4, I am using the branch stable4 of the main ownCloud repository as development environment (note that this changed since my last post, where I was suggesting to use the master branch).

The model layer is not perfect yet: some methods are missing, others need to be clean, not everything is very efficient, etc. Moreover, I haven’t tested it thoroughly. The main ideas are there, though. I’ve already started to code the interface part and I will make further improvements to the M part along the way.

Feel free to comment and stay tuned for a post on the V part!

Announcement: In about a month, I will start to implement the API. If you are the maintainer of a feed reader, please contact me if you are interested in syncing your client with the ownCloud aggregator. I would like to receive suggestions from you on the API before I start to code it.