Tuesday, July 15, 2008

Silverlight. Day 2.

After the innitial trauma, I decided to read and check some tutorials to understand what is happening with Silverlight.

First of all. Why a new tool for GUI design instead of having it integrated to VS, as usual? Well, after watching the video tutorials related to Blend, its clear that VS UI editor is limited; we have use it just to size forms and put controls on them. But when the clients want some color, and shapes and gradients, etc, the effort to do this with the usual controls is too much.

One aproach is to develop or use a UI framework (thinking in reuse), with controls that have cappabilities to look better. However, the look and feel of these controls are not always the best.

This is where Blend fits OK. This Flashy editor lets you modify and edit almost any visual feature of the controols, and best of all, the specification is made in XML language, in this case XAML.

To have all these features in the standard IDE is too much and usability of VS could be affected. Nice thing is that the same files are used by VS and Blend, so no import utilities are needed.

Now I'm going to try the installation to get my hands dirty ;)

Friday, July 11, 2008

Silverlight. Day 1.

"What the hell is this? Where are the controls? What is this mess inside the project?"

These are my first impressions after I open a friend's example (first thing I saw was a XAML file, then some code, and then some messages about trials), without reading no tutorials or going to therapy, to prepare myself with this 2008 shock. I had the same sensation that I experienced 10 years ago when I wanted to do some UI stuff with Java; no IDE, just some third party tools or code it by hand. Blindness.

My pal told me: "You make the UI with expression Blend".

But why do you need a special tool to manage XML UI definitions? There's no more IDE. This is a MDE (Messy Development Environment).

The apology is based in roles. The designer need something to design and the developer someting to code. But when you make some desktop app you have controls, or a web app you have more controls, why with Silverlight you ain´t have nothing?

(I suddenly remember this song: Two steps behind - Def Leppard)

Now I understand why in the last 3 MS events where they showed this things I felt very upset and confused.

After this non pleasant experience, I believe Flex is a much better platform to make RIAs. No doubt about it.

Wednesday, July 9, 2008

Programming everywhere with anyone

No more need to carry your Server or desktop PC on your back, and your CTR monitor on a second round. Laps & wi-fi let us move; giving us the chance of freedom.

But what about your dev tools? Do you still need to coordinate with your partner to "sync" the code you finish at midnight, just to find out some last minute extra errors?

Can we develop "socially"?

Here are some tools, platforms and services that promise the next dev paradigm. But then, how the work relations are going to be managed? even overseas?

IBM/Rational Jazz
http://jazz.net/pub/index.jsp

codstorm
http://www.codstorm.com/

codeBeamer
http://www.intland.com/

CodeX
http://codex.xrce.xerox.com/en/index.php

SalesForce
http://www.salesforce.com/developer/

http://www.collab.net/

Friday, June 20, 2008

Web X

It seems that someone applied the version control idea to the web, with the intention of remarking the differences between the read-only Web and the interactive Web we are dealing with today.

1.0 is the mark for the static content, dotcom dissaster and the raise of internet development.

2.0 is not just blogs, on-line video, wikis, and even more. 2.0 is the awaken of the open collective efforts and their results. Maybe hundreds of projects died in the way, but the important thing is that the new ones learned from the fallen.

3.0 maybe the Web in 3D, a semantic effort, or an omni functional platform. Who knows it? The point is that individuals and companies are investing lots of time innovating. So 3.0 may not have a unique characteristic, but many.

And what about when we reach the Web 10.0; or as Apple states, X?

Tuesday, May 6, 2008

Graphic design for engineers and mortals

One of the main factors that people want today from a software product is that it must look good.

Fancy curved interfaces with gradient fills and nice colors are IN, but how do they do it? and most important, how can we do it?

Fortunally design guidelines and theories give us a clue of how this artisits do their tricks.

But there is still something missing. Why do I need to learn HTML, XHTML, CSS, XML, and many many more dialects for make some text and images look good?

My proposal is graphic and web design for mortals. It´s possible to make editing tools that focus on information and the layout, instead of implementation details.

A first step in this direction was CSS Playground (now published at planetsourcecode.com), a program I made for my multimedia students to show them some things about CSS. But from this prototipe, I really believe that a tool that focus on Information Architecture has more future that another WYSIWYG script editor.

Thursday, April 3, 2008

It's dev-olution baby

First programs I made, were using Turbo Pascal 5.5. Console output, even when I tried to code some GUI support. The same think happend with assenbly, C and C++.

At some point C++ mixed with Borland/MS support for windows promised the desktop era, but code was a mess; to much libraries, to many techniques, to many considerations about pointers just to show a window or a widget.

In Smalltalk everything changed; the UI was part of the enviroment, but anything you want to do was restricted to that microcosmos.

At some point I met with VB and 4GL. The UI paradigm changed radicaly; less useless efforts trying to fix and understand technical issues.

And then, Java appeared. And console was great; UI applications need some IDE support, and web...well it was HTML mixed in the output methods.

Now some proposals promise to save the day, but Javascript is too messy, and ActionsScript seems to be splited between designers and programmers; even server side solutions like PHP, Asp.NET or Ruby still need to consider to many details in order to make development easier.

But it seems that things are about to change.

Tuesday, March 11, 2008

The lost code?

I still have some 5 1/4 and 3 1/2 floppies with some homeworks and early projects. Maybe a 70% is Turbo Pascal code and the rest C/C++.

Last tinme I made a backup, I saw a lot of toy examples. Some from books, and some from my head. The typical tiny program began with a problem sentence, and the coded solution was an algorithm. But in the middle there was the problem of the user interface. So the classic solution was to code a text menu with numbers to entre the options. Then someone came with one of those big "bible" books, were an author explain more less the trick to code some popup & pull down menus. Wow, that was really something.

But one of the first serious problems were the graphics. I remember one of my teachers asked us for a parabollic throw simulator. So the equations were easy, but because of the lack of technical info, I did it in text mode. Not bad, but looks ugly.

Then, when the group reacted and we started to plan about making some code library, a new language appeared: assembly.

Life is too short to program everything in assembly language, so a nice technique was the binding of macros in a library to use it with other languages.

And then came C/C++. Even with the power and speed of C, I remember that time was easely lost trying to find syntax errors and memory leaks. Even when C++ improves the logic, is hard to master it. The mother of my university projects: a Pascal compiler. One whole week programming day and night. And the best of all: it works.

And when Smalltalk appeared on scene, everything was beautyfull (all except my hardware). Great develoment enviroment, great power of expresion, and a networking simulator was completed in 3 days, without debbuging.

So, for some people toy samples may be a waste of time, but they reflect the essence of what it makes a good programmer: practice.