January 2013
3 posts
5 tags
Missing feature of the day: grouping DOM nodes
Let’s say that you’re developing a JS Framework that has the concept of widgets. A widget is a JavaScript Object with a representation in the DOM. As you have one reference on the JS Object somewhere in your application, you’ll want to have one reference to its DOM structure, and unfortunately the only way is to wrap the template into one parent DOM element.
For example, one of your...
4 tags
Migrating from Emily 1.2.0 to 1.3.1
Last week I explained how to migrate from Olives 1.2.0 to 1.3.0. Emily has seen a few breaking changes too between 1.2.0 and 1.3.1:
Modules are anonymous
Promise is fixed
CouchDBStore has been completely removed
Modules are anonymous
Olives modules are now anonymous, just like Emily’s. Read this to know what the implications are.
Promise is fixed
Until 1.3.0, Emily’s Promises...
4 tags
Migrating from Olives 1.2.0 to 1.3.0
Olives 1.3.0 introduces two breaking changes that you must be aware of before upgrading:
Modules are now anonymous
Some of them have been renamed
These changes lead us to a new way of using Olives in your project:
EOWYN: Embed Only What You Need.
Anonymous modules
Until 1.2.0, Olives modules were named and prefixed with Olives/:
define("Olives/ModuleName", function ModuleName() {
...
September 2012
1 post
4 tags
Securing CouchDB in 3 steps
Freshly installed, CouchDB offers little to no security. There’s even a name for that temporary state: its called the “Admin Party”, as every user is considered to be an admin.
While it might seem dangerous, it’s actually a nice thing as it lets you fine tune the level of security you want to obtain.
Say you’re in learning mode and you just want to figure out what...
August 2012
2 posts
4 tags
Locally test your npm modules without publishing...
There could be several situations where you want to locally deploy an npm module of your own before publishing it to npmjs.org.
Say you’ve just created one and want to see how it deploys, or you’re fixing bugs and you want to test the module in integration before publishing a new version, or you just want to keep your npm private.
To create a local npm, change directory to where...
Vincent Weyl: The toy designer: an Ideafy use case... →
vweyl:
THE TOY COMPANY SCENARIO
Jane Doe is working at a toy company that just bought a license for a major motion picture to use the characters in connection with the toys they produce.
Usually making such a “buy” decision means you already have a good idea what you’re going to do with this…
June 2012
2 posts
HTML5 and bindable datalist
owietrich:
HTML5 datalist* allows to autocomplete input elements with static content (option element).
<input list="cars"/> <datalist id="cars"> <option value="BMW"/> <option value="Ford"/> <option value="Volvo"/> </datalist>
Thanks to Olives Framework, you can bind datalist options to a store and set them as you wish.
If you are interested, I put an...
Olivier Wietrich: A real-time blog by your own in... →
owietrich:
Hi,
If you’re familiar with Nodejs you’ve surely read some stuff about how to create a blog with this technology and others such as socket.io, mongoDB or couchDB.
I have and even though it was quite simple, it was still too much for me. Why make easy things difficult? It’s a question to which I…
May 2012
4 posts
5 tags
Olives 1.1.5 supports SVG views
Since version 1.1.5 Olives is officially supporting SVG. SVG and HTML are very similar and can be manipulated almost the same way. It’s all about creating xml tags, setting there attributes and styling them. The great news is that Olives was born to support SVG and only a few modifications were required to support them.
In Olives, views are almost fully passive. They have no logic attached...
3 tags
Understanding Olives' MV* model
Olives is a JavaScript MVC-like framework for building web applications. There are already loads of MVC frameworks out there (more than 30 featured in todomvc.com including labs!) and almost each of them interprets the MVC model in a different manner. To better understand how to develop web applications using Olives, I need to explain its own interpretation first.
Olives’ MV* was carefuly...
4 tags
A BMW for wheelchair users
I worked on this project in 2007, when I was studying automotive design. I found these pictures buried deep into my hard drive and wanted to give them a second life.
The goal was to invent a car that would specifically be designed for wheelchair users without it being perceived as such by other drivers. It had to allow their users to easily get in and out, in a safe and elegant manner.
5 tags
An innovative way to replace AJAX and JSONP using...
I was so happy the first time I used socket.io, seeing how fast, reliable and easy to use it is, that when I started doing XHRs I felt that something was wrong.
Current State of the Art implies using AJAX calls coupled with JSONP for getting data from a 3rd party server. To new applications we’re also adding WebSockets that allow to push data from the server to the client. Three different...
April 2012
12 posts
5 tags
Using CouchDB in a real-time web application
CouchDB offers three distinct APIs for querying documents. It also comes up with an API to track changes happening in a database.
I’ve written 3 articles to explain how to use these APIs in real-time web applications, using the _changes API that is available through a keep-alive socket.
They describe the flow of requests needed to fetch the documents, keep them up-to-date with the...
2 tags
2 tags
2 tags
3 tags
2 tags
2 tags
3 tags
3 tags
3 tags
4 tags
Using CouchDB in a real-time web application
CouchDB has a nice, simple and complete HTTP API. It can also feed a keep-alive socket with the changes happening in a database, thanks to the continuous feed. And this is a nice feature to be used in a real-time application.
There are three available APIs for querying data:
document
bulk document
view
I’ve started a serie of articles in which I’ll explain the flow of requests...
7 tags
Emily + Olives first official release
I’m really happy to announce that Emily and Olives have been officially released today.
It’s hard to find the words to express what I’m feeling now. These two frameworks have consumed almost all my spare time since last September, and they’re the achievement of 2 years of trial and error, research and development, joy and fear. To be honest, had I known how hard it is to...
March 2012
3 posts
4 tags
140 bytes Finite State Machine in JavaScript
There’s one thing I dislike in JavaScript, it’s the if/else structure.
I’m not saying that I don’t use it, it’s nice to use it to check a value’s type or truthiness, for error proofing or input checking. But when it’s being used for deciding wether or not to execute an action, then I sense that it could be replaced by a nice behavioral design pattern.
...
5 tags
Setting up a test environment featuring Jasmine...
Testing is an important part of a project. While developing Emily I had to set up an environment that would automate testing for several cases.
As I followed a full TDD process for developing Emily, I needed a way to get instant tests results. But Emily is designed to be executed in a browser, as well as in a node.js environment, and I wanted to pass the same tests for both.
So I started to look...
Welcome to my tech blog!
I’m creating it today to share tech stuff and thoughts about my current projects.
I’m preparing writings about my frameworks for developing rich applications and stuff that bothered me when developing them. I’ll also say a few things about hunting down memory leaks and improving UI performances. Last but not least, I may speak a bit about myself.
I...