Download

giovedì 30 luglio 2015

Ocs-server 0.1 Technology Preview released! (with cats!)

Finally, after many iterations, we have something that works! The ocs-server team (Claudio Desideri and Francesco Wofford) is therefore announcing the first release of ocs-server 0.1 technology preview.

Any information and download link on community page!

What?

It currently supports PERSON, CONTENT, CONFIG, FRIEND, ACTIVITY, FAN with a partial implementation, that means for example not every parameter of uploaded contents can be handled. It then just partially works with these calls but the results are pretty neat for now.

We also built an Admin panel and a first run wizard that will help you set up your ocs-server and get it in production without needing to understand how OCS works. It can be extracted, configured painlessly and used with all major clients like libAttica, KNewStuff or our php OCSClient.

What system administrator love the most? Cars? Travels? No, documentation! That's why we started writing tutorials guiding you through server configuration and first run wizard. We also finally documented our web framework built around ocs needs and a little hacking guide is coming soon (so you can extend and/or contribute).
Our IRC channel is #ocs on freenode, feel free to ask us anything or comment below.

Plasmastore

In this tech preview release the current developing version of ocs-client, "Plasmastore", has been included as an example client implementation. A lot of parts are still in production so you may found half written, bad written or badly optimized stuff (please don't kill me for that xD). Anyway the client can successfully handle user login, logout, content download, upload and edit. I'm still working on the "friendship system" and content rating but the client has been included in the release only to have a working example that may come in handy to new users that are willing to adopt ocs-server.

Francesco Wofford (woffy)

KNewStuff and Plasma integration

We tested and fixed our server to start working with KNewStuff and we achieved our greatest result for now: we switched Plasma's background server to our local and could fetch and install a kitten background.


We also tried to insert some content in Muon and it worked too (didn't try the install phase this time because it won't work due to wrong category)! Some content attributes are missing but it's mostly there.


Is it stable?

Short answer: no. It's still a technology preview, so we're constantly adding features and bug fixing. We're sure there will be bugs we're not aware of, so this release is more a sneak peek of our work and is like a stable commit that works for experiments. We don't suggest to use this for production environment.



domenica 28 giugno 2015

GSoC update: ocs-server

Hello planet! Here is a small update from the "newborn" ocs-server project.

Currently me and the guy behind the "plasmastore" client are working together very close. We're able to meet in person almost every day so that's quite amazing. I can help him build what it's mainly an ocs client.

But be prepared. We got great news ocs side! We're very close to a first testing release with some extra goodies. First, let's look at the real core of the project: the support of the ocs protocol.

At this time we support:
  • CONFIG
  • PERSON
  • FRIEND
  • ACTIVITY
  • CONTENT
  • FAN
Our next calls in the roadmap would be KNOWLEDGEBASE and PRIVATE DATA. We also did some theorical test on NewStuff compatibility and it /should/ work altough never tested mainly because it works if queried by libAttica used in Gluon Player. We also found some parts of the protocol to be obscure or not well documented, so we contacted Frank, which is the protocol mantainer (correct me if I'm wrong), and came up with the possibility to troubleshoot and/or extend the protocol itself, which is amazing. Me and Francesco thought about the possibility of adding support for HASHTAGS and we're writing a more formal proposal to be sent to review.

I also prepared an Admin Panel that is quite ready to go, used by admins to administrate the ocs-server. It can run some tests on server status checking what works and what it's still broken, and can also administer content categories.
Along with the admin panel, there's the first run install wizard that will guide you in installing and configuring the ocs-server with the local/remote database and some other basics configurations.

My aim is to release an alpha (that will surely contain bugs) within one week, with all the documentation on our community wiki page:
https://community.kde.org/Ocs-server

So everyone that will need a server that handles a generic type of social content with users management and an open interface with plenty of tools (php with our OCSClient library, libAttica, newstuff etc...) for quickly writing clients we got it!

Ah, last thing! I'll be at Akademy this year so feel free to come and talk to me, as I'm a bit shy!

martedì 10 marzo 2015

Ideas to restructure Plasma content delivery system

Last years at Gluon

During the past few years at Gluon Project we chose to adopt OCS (Open Collaboration Services) protocol in our distribution system, developing a minimal and working server and client that works on GamingFreedom.org. Gluon, however, never went into full production so people couldn't test our infrastructure and the distribution system never went above the "experimental phase".

Our mission

1) Develop further our OCS server in order to have it usable by every project that needs it. In this phase we'll need to refactor and prepare it to be installable and configurable easily. We'll include install/config scripts with a nice interface. It also will be full Attica/NewStuff compliant.

2) Implement Desktop and web client that will let users download and use content like apps, backgrounds, themes etc. The Desktop client will be written in Qt/QML and the web client will be web based.

We want in the end users to be able to get user created content for Plasma in an easy way from one single common place as well as for creators to upload it. Our secondary target is to unify Gluon and Plasma content server and implement user / login capabilities via KDE Identity in order to have a centralized infrastructure. Our dream is to have a common desktop environment experience also regarding the content distribution system across all distributions

This is a scheme of the future structure:

Technology stack

We have in plan to develop OCS server and client libraries at the same time, creating a full set of classes that are shared between the both libs. This will enhance manteinability and modularity having a php library for both uses that shares most of the model codebase.


Now, having a working server we imagined the Plasma web client to be built on top of the OCS client library (of course), using php/mysql (or generic sql database) and for the client part HTML, CSS, a bit of jQuery and maybe the opensource library famo.us (we still need to do some feasibility studies on this latest).

Why

  • Openess of OCS protocol, simple interface in human-readable REST / XML / JSON
  • Ownership of KDE project of their content distribution system (we'll have a full working in-house implementation)
  • Merge of Gluon games, backgrounds, themes etc... all in a single place, with a single unique login on KDE Identity. This also enhances in users the concept of KDE as a full desktop environment with the same content across various distribution opposed to other semi-proprietary implementations (like Canonical's one)
  • Modularity of the server and clients. OCS is a wide protocol and potentials are there. For example I implemented a real-time chat between users in Gluon Player. This could give us some ideas to brainstorm.

Projects

  • ocs-server at https://projects.kde.org/projects/playground/www/ocs-server, and Gluon Player (includes gluon player libraries that wraps libattica)
     written by me, Claudio :)
  • "Plasma AppStore" (name is just a placeholder), consisting in Desktop client and Web client, by Francesco Wofford, my guest in this blog post
We already started to work on a few prototypes because we really care about this project so we're asking for feedback from all of you. We're going to propose those projects as GSoC with KDE so feel free to drop your comments below. We need them!

Have a nice day! And have a cookie! :)

mercoledì 2 luglio 2014

Gluon Project Update

Hey KDE people! I'm Claudio and, again, I'm the only student doing GSoC and improving Gluon Project. This does mean there's a lot to do but often this translates in a lot of fun.

My project basically consists in mantaining the Gluon Player and all the distribution service in general from the server to player library that handles OCS requests to the actual QML client. This meant in porting the Qt4 player to Qt5, which led to a partial rewrite and rearchitecturing After the porting I started implementing "friends" features. This means that YOU, with a Gluon account, can ask an other Gluon user for friendship and he can accept. This is the basis of the social features we're introducing.

Oh and did you know we have a working partial and opensource implementation of the OCS protocol? I really care that you know this because when I started writing it, there was no open server-side implementation and I had to start writing it. As for now, the server supports CONTENT, PERSON, FRIEND, FAN, COMMENT and CONFIG with some calls not exaclty following the standard (nested comments feature missing). And this server also is tested with our beloved libAttica. I'll publish the source as soon as I can in a personal scratch repo for now, but I'd like to move it in the KDE infrastructure (admins?).
Ah, and I'll spend the next time of my project implementing a xmpp-based realtime chat between users. And also activity streams and other social features.

What is really missing to Gluon then?
Unfortunately I'm just focusing on distribution and user parts, but being Gluon a platform for creating, playing and deploying games, also Creator and Engine needs attention, care and most of all port to Qt5. Our idea would be to give you a usable release (oh, I really want to do my Gluon Konqui game). In order to get this possible please donate to the Randa Meeting, where gluon developers will meet :)

http://www.kde.org/fundraisers/randameetings2014/

See you in days!

giovedì 25 luglio 2013

Gluon and the state of the project

Hello, I'm the guy currently working on Gluon project for GSoC with the idea of Making the Create > Discuss > Play workflow actually work.

Last year:

Well, last year I joined GSoC too, always with Gluon, and I wrote a working OCS server just for Gluon purposes. Of course it's not full featured neither bug free, but it's currently serving us at this address: http://gamingfreedom.org/v1/config. In addition, I developed the future Gaming Freedom web site that is using our OCS server too.

This year:

I started a partial rewrite of the Gluon Player which now uses QML and plasma components. Here is a screenshot of it running:

It currently supports login/logout and registering a new account but the target for the end of the project is to browse and play games. Also graphics isn't perfect and amazing but we can always improve it after having the application working.

What games?

In order to play games we must have games. So yesterday I finished to fix Gluon Creator (which is a game creator) in order to work with our central OCS server, so you can now make your game, log into GamingFreedom network and publish your games automatically.
Gluon Creator will give you the possibility to modify description, changelog, version and so on, but the most amazing part of it is that it will create a "gluonarchive" that will be uploaded to server, ready to be played!

Logging...

Publishing...

And you'll find your game there on Gaming Freedom website page!

What's next?

I'll plan to give the possibility to the player to actually play games through QML Gluon Player, and eventually, give feedback like comments and votes. I'll also update my scratch repo with the updated sources of the OCS server, in case someone else needs my work.

Thank you for the attention, have a good day! :)

sabato 9 febbraio 2013

Ruzzle Cheat v1.1 + HG repo

Hello! :)

Time of an update of the python ruzzle solver! The inner algorithm is changed and is way faster than the previous. This time, I don't ship dictionary with the source. You can easily grab them at: http://www.winedt.org/Dict/

Small usage sample:
python ruzzle.py   [lang] [grid]
python ruzzle.py it nahcyeksmtbudew

You have to create a folder called "dicts" and put in it the dictionaries, called like [lang].txt es it.txt for it language.

This time, I distribute via hg repo: http://ruzzle-solver.googlecode.com

Profit! :)


giovedì 17 gennaio 2013

Cheating in Ruzzle

Hello people! :)

Yesterday my girlfriend was playing around with this game Ruzzle and observing it quickly I decided to try a game.

Results? I suck in Ruzzle! :D I completely can't get a sufficient streak of words in order to win and be satisfied of myself. Of course this wasn't good in any way because meh.. I hate losing!

So after an other quick look I decided to cheat, but not in any simple way or buying some ridicolous apps. Also I don't intend to alter the game executable in any way or use fake calls. That's noob cheating and... well, we're not noobs, are we? ;)

I opened up Geany and started writing a simple Ruzzle Solver in python that takes in input the board and compute every possible path into the ruzzle board. My solver actually just prints the found words on the board and starts inspecting on the top-left corner of the grid.

Is it efficient? No. It's a bruteforce and there could be many tunes in order to make it more efficient, some of them language dependant.

Is it enough? Quite yes. For now, I can average 500/600 points a match with peaks to 800/900 with the right words. The real problem is that you still NEED to find the words on the grid. RS can also print the path to the word, as it save the current state for that word, but it would be too slow to actually see the path and follow it. I found particularly efficient to do it in 2, one speaking the words out loud and the other one founding the on the grid. Also I make it run in 4 different sessions on a i7 quadcore, (I hope it's parallelized al least a bit) one for the words with len=5, one for 6, 7 and 8. Note that there are usually plenty of 5ies, many 6ies some 7ies and the 8ies is quite rare to find, maybe 3 or 4 for match in lucky.

Can I get it and experiment? Yes of course! It's located here, with an italian dictionary (unfortunately hardcoded, I was lazy :P) and you can experiment as much as you like! You can also modify it following the GPLv2 License.


Last request? Leave feedback! I'm curious about your feedback on this cheat. Use the comment area above! :)