viernes, 17 de agosto de 2012

Open It for VS 2012

I have been working on creating things around Windows 8 using Javascript and WinJS.

I found the need for a command which would take me from an html file to a referenced css, js, html or whatever. (kinda like a Go-To).

Now that VS 2012 is out and that command is still missing, I thought of doing it myself. It is a small extension that adds this command to help me comfortably navigate between files.

The extension is called OpenIT and it has only one command also cleverly named "Open It" ;). It can be installed using this file .

After you install it you'll have the 'Open it' command under the Tools menu.

For a better experience I recommend you to assign a shortcut to the command. In my environment I assigned Ctrl + K + O .

In order to use it put the cursor over the path you want to open. (The path can be delimited by single (') or double (") quotation marks)
'Open it' will open absolute and project relative paths. Additionally, it'll open references from the Windows SDK (paths starting with //)

sábado, 26 de mayo de 2012

My google io 2012 wishes

This year I didn't get a ticket for google-io 2012, from Uruguay I will be waiting for good news, but unlike most people I will not be expecting big announcements, I'll be tuned for small news that allow us to work with Android better, working with Android is frustrating sometimes.

I will not criticize the Android OS fragmentation, I think Google knows that is a big problem.We have been working in a generator for Android, iOS and Blackberry applications and we found several basic stuff difficult to implement on Android

  • Embed a youtube video in an application!

This seems basic, it is possible to do in some devices but it's difficult to make an application that support all OS. There are more than 5 posts on StackOverflow for something as basic as this.

  • Preserve WebView state when rotating the device

I know you can do it, but is so complex to do something that obviously 98% of the cases I want. I do not want to put something in the manifest to support this.

  • Memory problems handling Images

Recently the google team wrote an article on this topic, we suffered a lot with this and we have already solved, but it seems that is something that the framework would have to take care automatically.

  • Having scroll inside scroll is not a crazy design!

It is difficult to explain to our customers when designing screens they can not have a scroll inside another. WhyIOS support the same design, why not Android?In Tablets it happens all the time.

  • Redesign the google-api

It is incomprehensible the need of having a MapActivity to support a map control, there are people who made all their activities MapActivity, i don't like to modify the compatibility library in order to support Maps in my application.Is 2 maps on one screen so crazy? I don't think so.I'm just asking for  Images, Videos, Maps and Scroll to a mobile framework, I think they are basic.


GeneXus vs Titanium vs PhoneGap and Manya

I just wrote my first post in GeneXus for Smart Devices, I wrote about the main differences between GeneXus, Titanium and PhoneGap.

And what Manya means in the title? Manya is the first application for my favorite team in the world : Peñarol !
It's an application created by my friend Daniel Mendez and it shows the history and news of one of the most popular teams in the world. He used GeneXus in order to create it in 2 weeks and obviously it's a great application

jueves, 22 de diciembre de 2011

My Cute Baby

In October I had a new baby. Facundo is my third child, Cecilia and Santiago complete the pack.
I guess anybody with at least one kid in these times had collected thousands of pictures of their baby. It's normal; what isn't normal, it's to have a summary of the first year of their lifes in pictures.Having this summary allows you to do at least two things:
  • Explore the collection of photos looking for representative ones for each moment. (First day, second day, first month, etc)
  • Don't bore your friends showing them thousand of pictures, instead just spend two minutes showing a small book in your phone or tablet.
Another thing that commonly arises when we have more than one child is comparing them at the same stage of their lives. How did Santiago look when he was one month old? Did he look the same as Facundo does now?

These are questions that only photos and one special application (like My Cute Baby ;) can help you to respond.

The birth of Facundo comes with the birth of a new generator for Smart Devices, because of that I decided to make an application for Smart Devices (iPhone, iPad, Android, Blackberry) that implements these personal needs.

Smart Devices Generator RC is almost here for creating these kind of applications easily; personal and productivity applications can be created with GeneXus in record time.

The generator is here, it is powerful and easy to use, at the same time it is extensible, so let's go and start creating a personal application even if your friends tell you the application has no sense. Good ideas have a lonely childhood.

Some screenshots of my application
Yes, you can create Flipboard like interfaces with the MagazineViewer user control of GeneXus!

Yes, you can have nested grids (one with a ViewPager for the moments and a nested grid with your kids for each moment)

You can change, fonts, colors, backgrounds, paddings, borders, margins, images, etc using a declarative theme for your application. So, no excuses for a bad design.

My Cute Baby soon in the store of your choice ;) Thanks to GeneXus!

Update: It's in appstore

jueves, 5 de mayo de 2011

Google IO 2011 Feedback for Android

Google IO is almost here, I was in the 2010 edition and there were lot of cool stuff .

Google IO as any big conference has many things we like and some things we don't like.
For example in the 2010 edition

I liked food
I didn't like the lack of punctuality
I liked the Nexus One
I liked the HTC 4G
I liked HTML5 Demos


I would like to know (I suppose Google too) what are the most liked things in the conference.
Additionaly I would like to capture some moments directly from our Android devices.
So at the end of the conference we could know what are the most liked stuff and in some way give feedback so we can improve the Google IO 2012.

In order to capture all this feedback during the event I created an Android application using GeneXus.

It is called Google IO Feedback

You can download it directly from de Android Market and start giving feedback and capturing your moments during the event.

Basically you can say: I like food, or whatever. People can vote on things added by others. People can tweet their feelings. People can take pictures, etc.

Actually there are test data, on sunday I'll erase all the data so that we can start adding real stuff.

miércoles, 16 de marzo de 2011

Smart Devices era and Model Driven Development

Yesterday we released the Beta 2 of Genexus for Smart Devices, the focus of the previous beta was give away the posibility to create simple native applications, taking into account internally the main stones of the architecture.

In this post I'm not going to talk about the features in Beta 2, I want to talk about something that happens each time we create a new generator.

Look this,

After the beta 1, there were 40 ideas in our team to create samples using the beta, only 7 applied to be developed using the beta.

In Beta 2, 33 applied, we still have to work in terms of aesthetics but this will be the focus for the next iteration.

Why in Beta 1 even simple things couldn't be created? Why in Beta 2 we still have some missing features that seems to be esencial an easy to implement ?
Because our way to develop software is different, we focus on the model first and after we generate code.

In the Windows era, in the Web era and now in the Smart Devices era, the same thing happens, there is a clash between two models of development, Model Driven vs Manual Programming.

In this new era we are again using a Model Driven approach.

In the smart devices era in order to create a full application you need to create a data access layer, a service layer (usually REST), a integrated security layer, a service layer on the device (I mean data services, notifications, caching, etc) and finally a native user interface layer.

Even looking a just one of this layer creating the layer many times it's difficult.

I think that creating this kind of applications in one or many third generation languages give developers a lot of power and it's possible to create an application and probably you could handle 1-10 projects with the same team, but handle thousands of projects it's almost impossible.

There are many tools focused on simplify the task of writing code in different languages, so you can write code in JavaScript or C# instead of programming Objective-C or Java. These tools can be very useful in the short term, but at the end of the day you are at the same abstraction level than in a third generation language.

How all this code is connected with the reality, where is the knowledge? The knowledge is the code, this is a bad thing.

We as developers know that the complexity of building software is growing and growing and we still are discusing in terms of Java vs C# or Objective-C vs Java or whatever.

Grady Booch said:

"The Entire history of software engineering is one of Rising Levels of abstraction (abstraction is the primary way we as Humans deal with Complexity)"

We in Artech in each technology wave tried to raise the abstraction level, and this process take a while, in each wave sometimes it takes more time to see results, but our goals are clear:

We will have productivity applications as people want, but we are not thinking in 1-10 applications we are going to give away a tool and language to create thousands.

The first results are here with Beta 2, but stay tunned and wait more.

domingo, 13 de marzo de 2011

Diego Forlan, Zairanara & Genexus Smart Devices Generator

Yes, I known what's the relationship between the elements in the title?
Well first of all Diego & Genexus are 2 products from Uruguay!

Diego is the most famous uruguayan soccer player and was the mvp of the last world championship.

Genexus is one of the most known application generator from Uruguay.

For this new Smart Devices era, Artech is creating a new Smart Devices Generator in order to create applications in an easy and different way.

Creating applications with Genexus for Blackberry, iOS (IPhone, IPad), Android is really easy.

In our first beta of Genexus, we released a sample of MyWedding, an application where you can share details of your wedding with the world. In the first beta I included information about my wedding, in this second beta I changed the information because Diego & Zaira annouced their wedding using Twitter.

So now, Diego & Zaira have a simple application where people can follow their tweets using native applications for Blackberry, Android and iOS.

You can download the application from here for Android & Blackberry. iOS is going to be in the AppStore soon.