Monday, December 26, 2011

AppRepo updates.


Some updates I did on AppRepo throughout the weekend:
  • Use .catalog instead of browser plugin
    • Support multiple distributions
  • Use icon instead of lead image
  • Browse by category
  • Nicer templates
  • OpenID profile settings
  • Categorization using PackageKit Categories list
  • Screenshot gallery
Its now looking quite good, though would need a nicer search UI.

Credits to MavJS, and Exsanetol for helping me up to add some more contents into AppRepo.

Local behavior support for Dexterity


Just created this: https://github.com/inigoconsulting/collective.localbehavior

Back in MyGOSSCon, Dylan Jay of Pretaweb mentioned about his discussion on getting rid of content type concept altogether and replace it with just Deco type.

It sounds to me a lot like having local behavior for Dexterity, where each content may have its own set of behaviors assigned. So you can just add a Dexterity content, and if suddenly you decide you want to add more fields or behaviors, just for that content, you can just assign the local behavior on it.

eg: you added a Page, but suddenly you think that this page should be an event. The main way to do this is to delete the page, and create an Event instead. But with local behavior, your can just assign an Event local behavior and the content will have the fields and viewlets needed to turn it into an event.

If you are interested in above, you might also be interested with this : http://svn.plone.org/svn/collective/collective.miscbehaviors/


Sunday, December 25, 2011

Fedora Activity Day KL January 2012

Fedora Activity Day is BACK!!!,

Date: 21st January 2012, 10am-6pm
Location: UCTI/APIIT

Submit a session here: http://fedora.my/events/fadkl012012/++register-session
View submitted sessions here: http://fedora.my/events/fadkl012012/sessions
Register here: http://fedora.my/events/fadkl012012/++register

What is FAD?

The Fedora Activity Day (FAD) is a regional event (either one-day or a multi-day) that allows Fedora contributors to gather together in order to work on specific tasks related to the Fedora Project. It is usually held in Barcamp format, and the activities ranges from simple introductory talks to a whole day of building new features for Fedora. Example activities includes:

  • Talks
  • Sprints/hackathons - coding session
  • Workshops
  • Discussion group - eg: planning on how to promote Fedora in Malaysia

But wait, what is Barcamp?

Barcamp is an open, participatory workshop-events, the content of which is provided by participants. Talks and sessions for each days are proposed by attendees , usually on-site, and all attendees are encouraged to present or facilitate a session.
Talk Submission

Any talks are accepted, as long as it meet one or several of these criteria.
  •  Software is available in Fedora repositories
  •  Software is known to be going to be available in Fedora repositories
  •  Talk/session related to using / developing stuff on Fedora
  •  Talk/session related to the Fedora community in general
Submit your session here ( http://fedora.my/events/fadkl012012/++register-session ) or view submitted sessions here ( http://fedora.my/events/fadkl012012/++register )

Registering

This event is free to attend and participate. Register here: http://fedora.my/events/fadkl012012/++register

See you all there!!

Thursday, December 22, 2011

gpk-install-catalog: a gem which is somewhat hidden

Just discovered this: http://docs.fedoraproject.org/en-US/Fedora/14/html/Software_Management_Guide/ch09s03.html


Apparently PackageKit have a format for describing how to install multiple packages.

[PackageKit Catalog]

InstallPackages(fedora)=packagename1;packagename2;

This fits my usecase for AppRepo very very well. Should I discovered this earlier, I would have started coding AppRepo way back, but what made me procrastinate was the lack of easy way to tell the user's system what packages should be installed, and the browser plugin was quite flaky (still flaky today too, at least it doesn't crash as much).

Will be adding a button for download catalog in AppRepo later today.  User can open the catalog file using gpk-install-catalog. This method works better across browsers too, as users does not have to have the browser plugin installed.

Wednesday, December 21, 2011

Announcing AppRepo

So after 4 years from my old post about this, finally I implemented it somewhere.

Introducing the new, shiny, http://apprepo.kagesenshi.org :D

So what is the project?. In essence its nothing much, just a website which list applications for Fedora, allow user feedback and rating, and make it easier for users to discover applications in Fedora. It is basically yet-another-appmarket/appstore, but focusing on Fedora packages.

We already have PackageKit Add/Remove Software tool, why bother?

The problem is the package approach. To the end user, the concept of packages is foreign and scary. The cryptic names of packages and also the listing of non-application packages simply overwhelms them.

It is also difficult to discover interesting applications in a package management tool. Unless you know what you are looking for, its very easy to get lost in the vast gallery of library packages, data packages, meta packages, and application packages in the repository.

As the repository grow, it also make it longer and harder to search and discover new apps.  I used to browse the repo once every release back in the old days to find if theres anything new, but now theres way too many packages to browse through.

Why now?


Its now or never. The rise of iOS and Android also give rise to the AppStore/AppMarket concept, where users can easily discover new interesting applications from the market. Users are getting more familiar with it and started to expect it from other platforms too.

Ubuntu have a similar tool called the Ubuntu Software Center for a while now, but Fedora yet to have a viable alternative (at least none that I'm aware of)

Why web application?

Primarily is laziness on my side. Lots of components I need for this is already available in Plone, so might as well just use it rather than reinventing stuff.

With HTML5 and browsers getting more powerful, imo it makes sense to just utilize the capability.

I also want to integrate the social aspect into the AppRepo, and a web app is easier for that.

I want to help out!

If you want to help in the coding side, check out a little guide to deploy this site in your local at the about page: http://apprepo.kagesenshi.org/about. Nicer UI designs are most welcomed. Another way you can help out is to populate the site with more applications.

Gotchas


I noticed one insecurity with the browser plugin flow,  not on the plugin itself. It never asked for my confirmation with a list of packages to be installed, it only asked the root password, and that is a security problem imo. Confirmation should be done at local side as its possible to hide the package lists to be installed from the user in the website. Filed a bug on that. #769508


Another gotcha is , the PackageKit plugin only installs one package at a time, which is not nice in an application point of view, as an application or an application addon might consist of multiple packages before it becomes useful. Eg: "Empathy" is an application, single package, but "LibreOffice" is an application, which consist of multiple packages to get the full set, another possibility is "Additional protocol support for Empathy" where its an application addon group, which has several packages. Filed a ticket on that too. #769510

I wonder how much less secure a gnome-shell like plugin that provide a javascript function to install packages only from the installed, signed repositories compared to the current plugin. Even the current plugin, it is easy to phish for click. For security reasons, the installation confirmation imo should be in the form of local packagekit window that list out things that are to be installed, requested by what site, and ask for the root password. A trusted list of allowed sites that is allowed access to the JS function is also another option.

diazotheme.bootstrap: now with openid-selector

I discovered about openid-selector from this blog post.

However, I dislike the patching code from svn idea so I integrated it using only javascript hacks instead. Probably better to be refactored to separate collective plugin.

Demo here: http://campuscamp.org/login
Fork the code: https://github.com/kagesenshi/diazotheme.bootstrap

Tuesday, December 06, 2011

diazotheme.bootstrap: now with html5slides!!

As promised in my previous post about diazotheme.bootstrap. I've integrated the google html5slides into it.

Demo here: http://campuscamp.org/docs/presentation/presentation_view
Fork the code: https://github.com/kagesenshi/diazotheme.bootstrap