Web
Stroller goes open source
Saturday, March 19th, 2011 | Opensource, Software Development, Web | Comments
Stroller it is our way to do e-commerce! We have already some clients that we fit on this module written in python and easily importable to have a fully e-commerce section to work with.
Just after testing it in production for some customers and already in a stable shaped we decided to deliver it as a community edition in free software.
In fact you can now download it from pypi:
http://pypi.python.org/pypi/stroller
or just checkout the sources over our repositories:
hg clone http://repo.axant.it/hg/stroller
For now stroller does not have a site and a home ;( but fortunately all of our projects are listed in a fancy “temp house” on project.axantlabs.com as it has stroller, just checkout http://projects.axantlabs.com/Stroller
You’ll see there the main features of this art of software and enjoy the sweetness!
Updates are coming for it we have just in mind some strategic moves to make it a ‘first choice’ product.
libACR 0.6 and ACRcms 2.0 are out
Wednesday, December 8th, 2010 | Opensource, Software Development, Web | Comments
As we are going deep with ACR our cms, it’s becoming a full featured product, we are using it more and more in production and we decided to release a new version on pypi.
New features include:
- Plugins Support. You can now add your own sections to the administration panel, views to the add slice menu and implement new functions or views.
- Multisite support, serve multiple sites from one single WSGIDaemonProcess
- Themes Support, create your own themes for the ACRCMS
- A simple Scripting language to automate some actions on theme setup
- User Defined Views, create new type of contents without having to write a single line of code
- SliceGroup Admin to permit to editors to change content of image galleries and news without have to need access to the admin panel
- Support for Disqus comments
- Export html slicegroups as RSS feeds
- Various Plugins for Slideshows, Image Galleries, Accordions, etc.
- New Script type and Script menu to make easier to add and manage javascript inside your pages
- RDisk should now be faster and has content caching
- Change My Password for current logged in user
- Permit to store binary data inside contents as base64 and serve them through the /data call.
- Integration with the Stroller eCommerce (stroller will be released opensource in the near future)
Here is the complete changelog since our latest release:
* work around to make it go with buggy sprox 0.6.10 (patched version still not released)
* Fix problem with Tg2.0 not casting headers to str
* Add delete udv and preview template for udvs
* Finalize user defined views with support for single selection fields, html and files
* Permit to serve fields encoded as per HTML5 base64 data source definition
* Add etag caching to rdisk based on file modified time
* Skeleton for user defined views
* Merge changes from master branch which improve multisite support
* Move every reference to stroller inside the stroller plugin itself
* Working delete action for slicegroup admin
* ACR might be mounted averywhere, never suppose its url, always use url() from libacr to generate acr urls
* Fix for TG2.0.3 (before tg2.1 remainder is a tuple and is not editable)
* SliceGroupAdmin plugin seems to work fine for adding things
* Make it work with Pylons1.0
* First import of sgadmin
* Stroller plugin preparatives
* Google Analytics change section
* Added new LinkedImage view same as the Image, just with a link utility. Must be evolve it, in the future to make him reuse the original view, without code duplication.
* Try to solve problems with repoze.who and repoze.what when running multiple acr sites inside the same daemon process and group
* Remove code render template from views as it collides with plugins
* Add setup script support to themes and fix default page url
* MCE options
* Fix icons and section for new plugins
* Fix for setup-app failing due to plugins
* gmap working (hopefully)
* gmap.js from static to plugin
* Merged single process mode, seems to be stable enough
* Moved GoogleMaps viewer to GoogleMaps plugin
* Disqus plugin
* Google Analytics from plugin static to site instance
* GoogleMaps key moved to database & added modify plugin
* Added tag classes for slices
* Add slice cloning
* Make rdisk_root dynamic to be able to run multiple instances in same process
* Permit to force lang from request
* Use genshi dict dotted access instead of a module
* permit to access and manipulate content from genshi slice
* add tabs plugin
* Added a class to the page as the uri of the page to make possible Custom css classes for page, hence different style for different pages
* Style fixes to administration menu
* fix crash when unable to contact pypi
* multiengine
* tests with multiengine
* engine from config
* first attemp at making a single process acr in the simplest way
* bind engine at each request
* cache session per db
* More experiments to make acr work on single process
* try to make acr work inside one single process
* Automated merge with ssh
* make section use id instead of class and declare in a less colliding way
* detect script slices also derived from default page
* Removed unused imports
* Fix done to correct the position of the excerpts under IE7
* Closes #43 it adds exception handling in case of failure of pypi version check, and just logs a warning to notify
* Minor edits
* Replaceing file templating, with python's Template string module
* Removed javascript putting css rules in place to allow 100% with of the edit menu; So added a relative container to the absolute positioned edit menu
* Minor edits
* Added new plugin to insert google analytics tracking to the site
* removed useless import
* Moved update check under helpers as it is more appropriate and, changed naming convention to follow standards
* Added new plugin to add uservoice feedback tab to pages
* add slice type class to slices, refactor properties management and add find_by_property helper
* Added help on accordion plugin, to help user interaction on creation
* Added same size of the edit button menus as the slice/slicegroup element
* Created new container for the heading admin section as pseudo-tabbed links + minor style edits on the css
* Added release update notification
* make script view wrap content with script tag and migrate existing plugins to use it
* add script slice type and menu
* Make rdisk upload view type dependant, fix videos and make deletion work on actual slice content instead of slice name
* Removed oops, console.log + Removed timestamp from end of slicegroup names to allow, reusability of the acrodion within a page, if you edit and recreate the sliceroup
* add description placement management for image slice
* Added Accordion Plugin, it will put a template for creation of Accordion galleries filters by tag on uploaded images
* fix problem with image thumbnails not showing if not logged in and add Slideshow plugin
* plugin injected resources
* add image, video and file slices to add slice menu if there is rdisk available
* themes plugin for acr
* initial work to make acr_cms working on multiple sites with only on installation, necessary to implement themes support
* improvements to edit bar
ACR goes for “Packt Open Source CMS Awards”!
Friday, August 27th, 2010 | Opensource, Web | Comments
Like every year Packt Publishing organizes the Open Source CMS Awards, right now they started the nomination phase.
The following categories make up the contest.
-
Open Source CMS
-
Hall of Fame CMS
-
Most Promising Open Source Project
-
Open Source E-Commerce Applications
-
Open Source JavaScript Libraries
-
Open Source Graphics Software
We decided to propose ACR for the Most Promising Open Source Project and Open Source CMS.
Even if young our CMS is already interesting since it’s quite easy to deploy, it integrates in other turbogears applications (like we did for iJamix) in a breeze and has already most of the features you would expect from a full fledged CMS.
In our humble opinion is the best and most promising Turbogears2 based CMF/CMS out there.
libacr published on PyPI
Wednesday, July 28th, 2010 | Computer Science, Opensource, Software Development, Web | Comments
As we are moving to make libacr a very cool and functional python CMF, we published libacr on PyPI!
Now you just need to:
pip install libacr
and you are done, as easy as saying!
More details on http://pypi.python.org/pypi/libacr/
VideoLAN Web Plugin: xpi vs crx
Tuesday, April 27th, 2010 | Hardware, Opensource, Software Development, Uncategorized, Web | Comments
One of the main issue while preparing streaming solution is answering the obnoxious question:
- Question: Is possible to use the service through a browser?
- Answer: No, rtsp isn’t* http, a browser isn’t a tool for accessing any network content.
* Actually would be neat having rtsp support within the video tag but that’s yet another large can of worms
Once you say that you have half of your audience leaving. Non technical people is too much used to consider the browser the one and only key to internet. The remaining ones will ask something along those lines:
- Question: My target user is
a complete idiottechnically impairednaive and unaccustomed and could not be confronted with the hassle of a complex installation procedure, is there something that fits the bill? - Answer: VideoLAN Web Plugin
Usually that makes some people happy since it’s something they actually know or at least they have heard about. Some might start complaining since they experienced an old version and well it crashed a lot. What would you be beware of is the following one:
- Question: Actually I need to install the VideoLAN Web Plugin and it requires attention, isn’t there a quicker route?
- Answer: Yes xpi an crx for Firefox an Chrome
Ok, that answer is more or less from the future and it’s the main subject of this post: Seamless bundling something as big and complex as vlc and make our non tecnical and naive target user happy.
I picked the VideoLAN web plugin since it is actually quite good already, has a nice javascript interface to let you do _lots_ of nice stuff and there are people actually working on it. Additional points since it is available on windows and MacOSX. Some time ago I investigated how to use the extension facility of firefox to have the fabled “one click” install. The current way is quite straightforward and has already landed in the vlc git tree for the curious and lazy:
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>vlc-plugin@videolan.org</em:id> <em:name>VideoLAN</em:name> <em:version>1.2.0-git</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.5</em:minVersion> <em:maxVersion>3.6.*</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
Putting that as install.rdf in a zip containing a directory called plugins with libvlc, it’s modules and obviously the npapi plugin does the trick quite well.
Chrome now has something similar and it seems also easier so that’s what I put in the manifest.json:
{ "name": "VideoLAN", "version": "1.2.0.99", "description": "VideoLan Web Plugin Bundle", "plugins": [{"path":"plugins/npvlc.dll", "public":true }] }
Looks simpler and neater, isn’t it? Now we get to the problematic part about chrome extension packaging:
It is mostly a zip BUT you have to prepend to it a small header with more or less just the signature.
You can do that either by using chrome built-in facility or by a small ruby script. Reimplementing the same logic in Makefile using openssl is an option, for now I’ll stick with crxmake.
Then first test build for win32 are available as xpi and crx hosted on lscube.org as usual.
Sadly the crx file layout and the not so tolerant firefox xpi unpacker make impossible having a single zip containing both the manifest.xpi and the install.rdf served as xpi and crx.
by the way, wordpress really sucks
The zoom factor in webkit and gecko
Thursday, April 8th, 2010 | Web | Comments
Apparently all the major browsers tried to provide a zoom facility to improve the overall accessibility for the web users. Sadly that often breaks horribly your layout, if you are developing pixel precise interaction you might get a flood of strange bug reports you might not reproduce.
We got bitten by it while developing Glossom, severely…
Our way to figure out it’s value is quite simple once you discover it: Firefox scales proportionally the borders and makes the block dimensions constant, Webkit seems to do the opposite. It’s enough to check if a element with known dimensions and border width has it’s value reported as different and your can find our which is the factor.
This obviously is quite browser dependent and nobody grants that in different version it might get changed, anyway so far it seems to serve us well.
ACR gets Slice Templates
Monday, March 1st, 2010 | Web | Comments
ACR is a flexible and quite powerfull CMS library, but users have to learn Slices and Slicegroups to be able to insert more advanced content like photo galleries, videos and a news section. To simplify this process we created “Slice Templates”.
Slice Templates are actually a set of common ways to use slices to insert more advanced content. The first two slice templates implemented are:
- Youtube Videos which make easy to insert a youtube video inside an ACR Page.
- Photo Gallery which makes easy to insert a photo gallery with cool effects inside an ACR Page.
Next template to come will be a news section, for now you can upgrade your libACR and start using the templates feature or take a look at the screenshots of the currently implemented templates
Turbogears Glossom finally live
Sunday, January 31st, 2010 | Web | Comments
We started to collaborate with the Glossom project more than an year ago, the first version was a Ruby on Rails prototype and has served well thousand of users for about an year. When the Glossom team decided to rewrite the software to move from a prototype to a more complete software we studied which frameworks were available and finally decided for Turbogears2.
Turbogears is a quite complete and really flexible framework, we used it since version 1.0 for about 3 years and the more we used it the more we loved it. It might have its problems but differently from other solutions when the framework has a limit it is really easy to bypass the framework and implement your own solution without any hack and with a clean way. Turbogears developers really focused on letting your tune each component in any way, and even totally replace it with something else if you don’t like it.
After six months of development the application has finally gone live and is now serving ~10000 registered users with its servers based on an apache load balancer, mod_wsgi turbogears application servers and mysql database servers.
So welcome to Glossom and thank you to Turbogears team for all the help!
We also have to say thank you to FFmpeg for now converting our videos and FlyPDF for generating our PDFs!
(you can download FlyPDF from sourceforge if you want to give it a try)
Successor to cloud computing, aka tweelter new architecture
Wednesday, January 20th, 2010 | Web | Comments
When you have to perform a real big amount of operations you have two options
- Increase your computational power (like using a cloud solution or scale on more servers)
- Move your computations to the most available cloud platform of the world: your users
Tweelter, the twitter filter
Saturday, December 5th, 2009 | Web | Comments
While speaking with the top-ix people during a meeting we started to talk about the need of a way to filter out “noise” from twitter searches.
Probably everyone found that searching something on twitter returns a big list of retweets and duplicated tweets. As those reduce the ability to follow a discussion or an event on twitter they are usually more a problem than a useful result.
At the end of that meeting Tweelter was born.
Tweelter is a twitter search engine which filters out duplicated entries, retweets and permits to search results older than one month on most followed topics. More interesting thing is that tweelter performs those search in a parallel manner and on a distributed mongodb. While retrieving all the results of the same search using the twitter api would require more then 10-20 seconds by using tweelter you will get the same results in 2-3 seconds and the more a search is performed the faster it gets.
So give tweelter a try if you need to follow a discussion on twitter, it might help you to follow the discussion in an easier manner.
Search
Archives
- January 2012
- November 2011
- October 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- September 2010
- August 2010
- July 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- November 2008
- October 2008
- August 2008





