Extension to remove image previews from Twitter timeline

Extension to remove expanded images from Twitter

Late October 2013 Twitter added a feature that automatically expands tweets that contains images or video. Remember that Twitter will (supposedly) makes its initial public offering this week. It's with no doubt a way to introduce ads or promoted tweet images and video to their users and future share holders.

This said, as Twitter user, I find it to remove a lot of information from my timeline when having tweets text replaced by any media content. With the following, we easily can understand that we can have two tweets where one image stands up in place.

Continue reading Extension to remove image previews from Twitter timeline

PureMVC for TypeScript

PureMVC for TypeScript

As you may already know, TypeScript is a new programming language announced on October 1st,2012. It is written at Microsoft by Anders Hejlsberg (designer of C#, Delphi, Turbo Pascal) with specifications published under an Apache License. Its goal is to output JavaScript from a superset of the language which allows compile-time type checking, classes, interfaces, modules and more while still understanding vanilla JavaScript.

In the week TypeScript was announced I contacted Cliff Hall to tell him I was ready to port TypeScript to PureMVC. He immediately told me that he was ok, probably because he's a well known supporter of «languages that compile-to-JavaScript».

I first tried to develop using Visual Studio 2012 and its dedicated TypeScript module which may had helped a lot to start with TypeScript, but I'm on Windows XP at home and VS 2012 simply doesn't run on it. As a resulting consequence, I made my work using Webstorm for JavaScript and the Node version of the TypeScript compiler (let me know if I missed something specific to Visual Studio 2012).

For the rest, I was lost at least one hour or two before starting the work because of lack of any existing documentation, but using stackoverflow.com and examples from the official TypeScript website, I quickly found all I needed to start with this new language.

Port to PureMVC

For the work on the framework itself, I decided to merge PureMVC ActionScript 3 Standard Framework and my own PureMVC JavaScript for Objs Standard Framework so it has typing from AS3 and required idioms from JavaScript.

As a result of this work I produced three PureMVC TypeScript repositories:

The PureMVC EmployeeAdmin demo can of course also be tested live.

Update: Cliff Hall made the official announce for it on the PureMVC website.

Continue reading PureMVC for TypeScript

PureMVC Employee Admin demo for jQuery Mobile

PureMVC EmployeeAdmin Demo for jQuery Mobile

I started this project last year when jQuery Mobile was still in alpha stage. The first version of Employee Admin demo I made with alpha version of jQuery Mobile was interesting but not fully functional. I so have waited near a year to work on it again. Now that jQueryMobile is final and even passed version 1.0.1 few days ago it was worth it to try to finish the project completely. As recalled for my recent Employee Admin demo for jQuery (call it desktop so) that demo does not use a port of the PureMVC framework for jQuery Mobile. It is not necessary. The two are compatible but independent one from the other.

jQuery Mobile

For those who do not yet know much how jQuery Mobile works, it is loaded in addition to the jQuery framework on a mobile HTML page. The library, once loaded render the HTML page (with some minor jQuery Mobile specific additions) to make it identical to any native mobile application. The framework supports a maximum mobile platforms.

Multi-page template

All pages of a jQuery Mobile application must be hosted on a single HTML page. This is the so called jQuery Mobile multi-page template. Using address bar anchors, the framework is responsible to navigate between different pages of the application without changing the root HTML page hosting the application. For the demonstration I chose to only have two pages. One to manage the list of users, one to manage the form to enter data related to each user. In this demo, there is no dedicated page to manage user roles, it would have been ridiculous to make navigation so complex only to have a page hosting a panel when it can be made with a simple multiple select box.

Continue reading PureMVC Employee Admin demo for jQuery Mobile

PureMVC Employee Admin demo for jQuery

PureMVC EmployeeAdmin Demo for jQuery

More and more people ask me to finish the job I started in 2011 on the PureMVC Employee Admin demo for jQuery. So I recently took the time to finish it completely.

The project uses:

Before continuing note that using PureMVC Standard or PureMVC JS Native Port (Cliff spoke recently on Twitter ) instead of Objs would be really easy. It is only syntactic sugar. The libraries used, the architecture, implementation choices will be kept the same.

Also note that this project does not depend on any specific PureMVC for jQuery framework, here jQuery only provides the UI layer, PureMVC and UI layers always stands to be two distincts entities. I found this port illustrate this perfectly.

Continue reading PureMVC Employee Admin demo for jQuery

Objs JavaScript library update

Objs JavaScript library update

I recently completely refactored the Objs library to make a 2.0 version of it. I also moved its source from Google code to Github.

For those discovering the project, Objs is a tiny and non-intrusive library available with an open source GNU GPL v3 license. It is slowly evolving since 2006 to suit my own needs in JavaScript programming. I used it successfully in most of my personal and professional JavaScript projects.

It is also used in the first JavaScript port ever made for PureMVC which was updated recently to follow the new syntax. As it's a non-instrusive library (meaning that it doesn't pollute DOM nor prototype objects) I made a PureMVC EmployeeAdmin demo for Objs+jQuery and another one with Objs+jQuery mobile which will be added to the PureMVC repositories as soon as possible.

The current library is focused on simplicity:

  • It is only 711 Bytes
  • Objs is itself a Function object and the only public method of its API
  • Support namespaces
  • Support inheritance
  • Shortcut to superclass in their subclasses

Simple but powerful. It has been unit-tested and demonstrated to work perfectly on big applications having more than 300 Objs classes.

Project home: Objs on Github
Documentation: Objs wiki on Github

Continue reading Objs JavaScript library update

PureMVC native JavaScript port

PureMVC native JavaScript port

Now that I have implemented a Unit Tests Suite for PureMVC JavaScript ports I couldn't resist to create a native JavaScript PureMVC port. By "native" I mean that this port doesn't use any external library but PureMVC classes themselves. The port uses "org.puremvc.js.standard" as namespace because I think this is a good thing to refer to it as the JavaScript standard port.

When I started to work with PureMVC in JavaScript in 2008 I thought this was not possible to use PureMVC alone with JavaScript to develop maintainable projects. My main fears were class name collision and class declaration order. But time passed, I worked since on JavaScript projects with near 300 classes using only a micro-architecture (my Objs library) to maintain class namespaces for reflection on rare cases. All of this worked pretty well, I thought last week to create a PureMVC port to native JavaScript only.

But this is not only a personal challenge. Now that we have an agnostic Unit Test Suite and an agnostic PureMVC port, we can easily create applications using jQuery as User Interface (I mean avoiding any UI components compatibility with others libraries). And what I really wanted to create was a PureMVC EmployeeAdmin for jQueryMobile as few applications already exists for and I need to learn how to use it. I'm already working on it and I think to be able to release it for the next week-end.

Next step will be to create a PureMVC EmployeeAdmin Demo with this standard port using jQuery UI (the standard jQuery version, so not the mobile one). My hope is that it will help in creating future Employee Admin port to other frameworks.

Continue reading PureMVC native JavaScript port

PureMVC port to Prototype JavaScript Framework

PureMVC port to Prototype JavaScript Framework

As to give an answer to Cliff Hall asking: "JavaScript Port Branches to Support ExtJS, MooTools, Objs... What's Next?" on a PureMVC blog post, I announced on Twitter last week that I had in idea to port PureMVC to Prototype.js as soon as possible.

As you may know, I made the first PureMVC port to JavaScript using a micro-architecture of mine called Objs. The goal of this project was to show that PureMVC could be used in JavaScript and to demonstrate with the PureMVC EmployeeAdmin demo that it even works great. Even if some people have been a little pessimistic in that it uses a micro-architecture instead of a well known JavaScript framework, I like to think that my goal was achieved as Justin Wilaby created a PureMVC for Mootols (for which I made the PureMVC Employee Admin demo too) and more recently Tony DeFusco the PureMVC for ExtJS.

I said it on my blog or on the PureMVC forums, I'm a partisan of having a PureMVC port for each mainframe JavaScript framework. One of the reason is that, as each JavaScript developer knows, we don't always have choice of the framework we can use on the product we are working for. This is why I decided to port PureMVC to Prototype which was the next mainstream JavaScript framework in which we need to port PureMVC.

Another thing I want to do for months was to add an agnostic JavaScript Unit Test suite to PureMVC for JavaScript. This is why I have not taken the time to make a demo for the Prototype port but preferred to add an Unit Test Suite.

I will port PureMVC Employee Admin or BoxSplash demo in a later blog post I assume that this part will be valuable for PureMVC developers only, but for the moment I prefer to describe which Unit Test framework I used and how I implemented it to test PureMVC.

Continue reading PureMVC port to Prototype JavaScript Framework

PureMVC JavaScript Mootools EmployeeAdmin Demo

Mootools and PureMVC logos

As you may know I'm the author of the first PureMVC JavaScript port. I started it in 2008 using a little library of mine called Objs. I also provided a JavaScript EmployeeAdmin demo to test it.

Recently Justin Wilaby contribute to the PureMVC community by providing a new PureMVC port to JavaScript using Mootools. I expected a port to a better known JavaScript framework like Mootools since the first release of my port to JavaScript. My opinion is that we need a PureMVC port to each of the mainstream JavaScript frameworks. I'm still convinced that the more PureMVC code examples we will have for each of them, the more users will understand the gain in working with real architectures, even in JavaScript. That's why, on the announce of the PureMVC port to Mootools, I immediately engaged myself in porting the standard PureMVC EmployeeAdmin application from the Objs port to the Mootools one.

Continue reading PureMVC JavaScript Mootools EmployeeAdmin Demo

PureMVC for Javascript

PureMVC Conceptual Diagram by Cliff Hall

I often use PureMVC in my projects. One of its best features is it can be used in all OOP languages. It only needs a specific port for each language. As it lacked a port in Javascript, I found that it would be a good idea to do it myself for the benefice of the PureMVC community. I've so made the PureMVC and EmployeeAdmin demo port to Javascript in November last year.

You can read the original post PureMVC Framework for JavaScript Available from Cliff Hall the author of PureMVC himself on the PureMVC blog.

All source code, libraries and documentation are available on the homepage of the port of the PureMVC website. You can even play with a live demo.

As I have never taken the time to post the news on my own blog to highlight it, you'll have some details here.

Continue reading PureMVC for Javascript

Gestionnaire de classes Javascript avec Ajax.

En travaillant avec Flash en Actionscript 2, j'ai pris l'habitude d'utiliser des fichiers de classes uniques présentées hiérarchiquement dans une arborescence de dossiers. On utilise chaque classe à partir d'une autre en utilisant la directive *import*. Ce système est trés répandu dans les langages de programmation orientés objet (Actionscript, C#, Java etc...).

Continue reading Gestionnaire de classes Javascript avec Ajax.