Sunday, December 9, 2012

Going simple with 2.3.0

Most of the time, developers focus at adding features and fixing bugs (Ironic, Huh!). But sometimes, those features don't add up to the final product. While browsing the blogosphere of those talking about Mundus, I noticed some comments about users who could not get it work. They either found it hard to start, or what should have been done automatically, had to be made manually by them.

Although it seemed really simple to me, most of you out there downloading Mundus only want one thing. Most probably, you don't care about keeping your module index up to date, or reading what changed from one module's version to another.

This release focuses on fixing exactly that, I removed the Index Manager completely. Loading the index, and keeping it updated is done automatically under the hood. At the exception of the progress window shown when performing the update, you will not even notice that the modules are updated each time you start the application.
I also removed some setting that where simply pointless, and did not add up to the usage flow.

Another not so important change is a reduced startup time. While profiling Mundus, I noticed that the algorithm was not optimal, module files where being read form the disk several times, and some operations could be completely skipped. As a result, disk usage while reloading the modules (either at startup or online by refreshing the app) was reduced to 1/3 of the original, which also translates to the process being nearly 1.5x faster. There is still a bottleneck, however, when checking if each application is installed by looking for any of the executable files. But this can't be avoided nor optimized.

The last noticeable change is the inclusion of a filter text box in the main window. This way, if the application list is too long, or you just want to quickly find an app, just type the name and the list will be filtered out. If you know regexp, you can use much more powerful patterns to filter apps by their name.

The full changelog:
  • Removed the index manager. Modules are now automatically updated at startup.
  • Optimized startup time by reducing module loading and disk usage.
  • Fixed crash when pgrep has the -c argument disabled. (Fixes #1087189)
  • Allow the user to filter modules by a regexp pattern.
  • Automatic backups are now by default turned on.
  • Updated Spanish translation.

In accordance with the grace period, the module index for version 2.2 will be kept online until Dicember 24.


Monday, December 3, 2012

2.2.0 is out!

Here we go again! News for this version are quite interesting.

First of all, in the previous release, new users had to download ~100 files sequentially. Now, they are downloaded up to 20 in parallel. This means that when rebuilding the module index, you will just have to wait a second or two, not around 30!

Additionally, each module is verified using a hash. So, if a module is corrupted because of a bug in the download code, a hard drive error, or a download error, Mundus will skip it when loading and provide a warning to the user. This sets the ground work to cryptographically validate the index and create a chain of trust. This way, it won't be possible to tamper with the index without the user being warned.

Other news include the new translation to the Spanish language, usage in offline mode, and a lot of other bug fixes.

Ohh! I forgot. You can now browse the index online here! And, as promised, you can also view stats about each module (You can find the Stats link at the bottom of each module page in the link above). That webpage is updated instantly when an updated is pushed, and stats are updated every 24 hours.

More information about this features is available in the documentation (or will be, shortly).

The full changelog:
  • Index modules can now be downloaded in parallel. Rebuilds take seconds!
  • Updated the index structure.
  • Implement a module validation feature. If a module is corrupted, it won't be loaded.
  • Updated a lot of lazy strings.
  • Finished the Spanish translation.
  • Fix usage of the index in offline mode.
  • Fix the "Restore to defaults" button in the Settings form.
  • Big update to the documentation.

Enjoy! And please let me know your comments.

P.S: The PPA packages have a missing dependency, they will work, but icons won't show up correctly. Due to a Lauchpad backlog, new builds will take a few hours to be published. If you are too impatient, just install the gambas3-gb-form-sock package! I'm really sorry about that.