Friday, January 29, 2010

FileShare Dev Release 9

I have been waiting for some feedback and bug reports.  Unfortunately I didn't receive any this round, so I decided to do a small release.  In this release I have a new activity icon and set my custom action toolbar as the default toolbar on startup.

Change Log:

2010-01-29: FileShare-9.xo
* New activity icon
* Action toolbar now default toolbar.

Wednesday, January 27, 2010

FortuneMaker and FortuneHunter Update

Some nice progress on FortuneMaker has been made.  Now the GUI has been updated.  I spent a while figuring out how to use the gtk drawing area widget, which has paid off.  Now the grid is no longer a set of buttons, instead it is a series of images that represent the rooms.  At this moment it only represents non-empty rooms and doors.  Another improvement in the gui is that adding doors has been simplified.  Now you only have to select door type and click in the area of the room you want to add the door (N, S, E, or W).  The gui also adds doors to the connecting rooms.  Overall, FortuneMaker is progressing well.  Next step is to get the rooms to represent items and enemies.

As for FortuneHunter.  We are planning a release later on tonight.  Yesterday, I helped the group reorganize the assets of the game.  This involved removing unneeded files, organizing the file directory, and then going through the code fixing every reference to the files.  Originally, all the files were in one massive directory.  The advantage to this is we were able to find all the unused files made a more organized asset directory.

Monday, January 25, 2010

FileShare and FortuneMaker Update



Not too much has happened in the FileShare activity.  I have a new activity icon, but that is about it at the moment.  I may start writing a help system today so that I have a reason to release a new build to update the icon.

At the moment I am working on Fortune Maker which is the new name for the Dungeon Creator I mentioned in an earlier post.  I think I have the backend complete and now I just need to work on improving the system's user interface.  At this moment it is able to save and load dungeons from the xo's journal as well as edit basic rooms through an ugly grid-button system.  This grid-button system shows the user a list of rooms as buttons, they click the button and it brings them to a screen full of dropdown option boxes to configure the room.  This system is a quick prototype to get the backend running, now it needs to be modified.

Next task will be helping out the main MAFH team in loading and deleting files from the journal.

Tuesday, January 19, 2010

FileShare Dev Release 8

This version contains a lot of gui changes. Now it uses the activity toolbar instead of buttons which seems to be standard in the XO world.

It also changes when it connects to the school server. This allows the user to run normally and switch to server mode if a server has been detected.

Change Log:
Fixes bug in blueberry that prevented adding file to share list

Button Changes
* Sugar toolbar with svg icons instead of buttons
* Instead of "File", now using "Object" terminology
* Deactivate buttons that require selection when no files are selected

Throbber Changes
* Mouse now turns into watch when throbber invoked
* Disables window while working

System Behavior Changes
* Check for server starts in new thread during startup (no delay for ui)
  * If server is found, icon is enabled that allows the user to connect.
  * Scrollbars disappear when not needed.

Tree View Changes
* Description is the only thing that by defualt expands
* Treeview code condensed

NEW BUG:
* Add files from normal mode, switch to server, try to upload file

Thursday, January 14, 2010

Status Update

Well I have released the 7th version of my file share activity and now I am playing the weighting game, pausing development on it while waiting for some testing and bug feedback.  At the moment, the only planned updates deal with the server.  Some changes like update backend to use a database system instead of a json file and keeping file lists in memory.  Other changes can include private folders on the server.  I figured I should wait for some feedback before complicating the system with these new features.

So I have started writing a Dungeon Creator (source code) for the Fortune Hunter Activity.  This will be a gui that allows people to create dungeons for fortune hunter.  I plan to have a functional prototype in the next few days.

Tuesday, January 12, 2010

FileShare Dev Release 7

Created Wiki page for the server code: http://wiki.sugarlabs.org/go/FileShare/Server

I have Released File Share 7, with this release I am hoping for some testing and possibly setting my activity as a public release.

2010-01-12: FileShare-7.xo 
Improved gui response.
* Gui is now dispatching threads for long blocking calls.
* Throbber is shown while gui is running a blocking call.

Improved server interaction when in "Server Mode"
* Basic permission system
* Admin view to change user permissions
* Fixed hang (added 10 second timeout) when server is set but offline 

Fixed "Keep Error" bug with empty file list

Monday, January 11, 2010

FileShare and Server update

A lot of code refactoring went on the past couple of days.

I separated the gui code as much as I can from the main system.  By doing this, my gui can now spawn actions in new threads that in the past was not possible.  This allows the gui to remain responsive during large IO tasks like downloading and packaging.

After this, I started to improve the server by fixing a few threading issues on the server and then spent the past day implementing a basic permission system.  This permission system now keeps track of every xo that has connected to the server.  The first xo becomes an admin and all following xo's are given just download permissions.  The admin will get a new button in their gui that allows them to update the user list, giving users the rights to upload and remove files from the server.

I have not packaged this code into an XO yet due to being unable to test if the mesh system is still working correctly.  This is because sometime this afternoon, our school server appears to have been unplugged from the network (unknown if it was intensional or not).  So I will have to check the status of the school server and get it back up and running.

Thursday, January 7, 2010

FileShare Dev Release 6

Well I did a lot of work in the last couple of days in getting a basic server and client system working for integration with the school server.

Now I got a prototype... but it has a few issues with threading downloads (both server and client code). The server can only accept one connection at a time which I will fix soon.  This causes the gui to hang on the client as well... I'm hoping by fixing the server things will go more smoothly, but I think I will need to add a few more threads.


Change log:
Improved how the system holds file records internally by now using a FileInfo class instead of arrays.

Improved the way the GUI internally handled the records.

Added file fail notice to the file list when it failed to download and install. This now allows the user to try to re-download and install the file.

New Feature:
The file share activity supports uploading files to a basic server. If the server is running on the jabber server (which hopefully is the school server) then it will prompt the user if they want to use the server instead of sharing with a peer.

See FileShare.server for the server script if you wish to try it on your own school server.

See Version 6

Wednesday, January 6, 2010

File Share updates

In the past couple of days I have been working on improving the internals of the system.  First thing I did was changed how the files are maintained in the program to allow more flexibility, especially with the GUI.  This improvement changed the internal structure from a pre-defined array that would be passed around (including over the network) to a FileInfo object.  In the FileInfo class there are also a bunch of static helpers for the TreeView in the gui.

By using this FileInfo class, the GUI asks the object what it should display (instead of looking at arrays for the correct field).  It also provides a method to save and load the important information about the file to be sent/received over the network as well as when it is saved to and restored from the journal.

This was added in commit id: 9e382bb

I am also currently working on adding the ability to integrate the system with an external school server.  At this point it has the ability to get file lists from an external server as well as download the file.  This is almost the same system that it currently uses except it uses external http links instead of the pipes the normal activity sharing uses.  I have decided to write a new server system instead of the one I wrote earlier in the year to simplify the system.

I have not yet implemented the ability to push files up to the server yet.  This will be a challenge because the sugar api does not have an upload api like its url downloader.