Posted by: emitsorgroup | February 5, 2013

The multiple personality of my phone

#humanbehavior #personality #themes #ideas

Days ago, while looking at my YouTube subscription videos I rediscovered the great job some people is doing/has been doing for a long time on creating skins for android devices (phone or tablets), i.e. doing some job on “chameleon” android in such a way it looks and behaves like upcoming Ubuntu’s Phone or even Windows Phone and/or other platform devices. Just search for “theme android” on YouTube.

This remind me of the permanent need people have to customize their gadgets and OS’s, imprinting their own personality. This is pretty much understandable since our devices in some ways have been/have become an extension of our person and its sometimes awkward behaviors.

The many expression dimensions of our behavior (sometimes even artistic ones) need the corresponding image/realization on our devices. I think this very appealing reality has not been fully exploited by the current device manufacturers (physical/hardware and logical/software), although some accessory providers offer them.

I imagine myself in a not very much distant future, going out of the bed to take some orange juice and just by the force I apply to open the fridge, all those sensors on it discover the mood I’m today, so, my phone adjusts itself to a wild rocker theme/skin or maybe if my blood pressure is hi signaling my stress levels, sets to a relaxing nature’s scenes theme.

At this time, some companies have already approached into this need in some extent: Windows Phone offers you to switch between themed colors. Recent Blackberry phone offers the Enterprise/Job and Off-work profiles. This approaches don’t offer a true/full expression of the human behavior moods, just soft changes between options.

Those companies providing us with the devices and their OS’s should include a multiple personality on them as the way of themes or some other clever solution, giving us the option to switch the theme at any time depending on our mood; as of today by selecting an option and in the future automated by those sensors readings. This theming feature should also include some easy way to allow us select/include our own background images/styles without rooting the device.

Well, this are just mere ideas, and what ideas at the end are but just chemical reactions on our brain, which can be affected sometimes by the medication we may be taking or by too many coffee cups. Funny isn’t it?

Posted by: emitsorgroup | January 22, 2013

The blue machine: the crystal ball? Are we there yet?

#Knowledge #information #prediction #patents #evolution #datamining #bigdata

Some time ago I saw a video of IBM consisting of 5 parts and in which IBM predicts as in the following five years the technology to simulate/enhance our five senses will be available (presumably as a chip/sensor/etc.) for use in any electronic device (smart phones, tablets, computers, medical equipment, etc.) and therefore our own mobile phone would be able to tell the quality of the environment we live in, if we suffer a disease of the digestive system (using a flash), give us an optical diagnosis, etc. In fact some of this technology is already available in the market.

This video reminded me of the Jeopardy TV show and precisely IBM Watson project and as this system defeated the brightest all-time winners of this game show. How Watson works is explained in DeepQA project.

That said I wonder what happened to Watson and if somehow is responsible or one of its derivations of IBM’s ability to “predict the future” with the requisite degree to be applicable in business and the needs and consumerist tendencies of the human being. Well, I think this is not pure prediction but rather development of specific projects as IBM it has always been recognized for its investment in R & D, but also leaves the door open to the imagination and the real possibility of the former.

But there is another important fact: IBM is the company with the highest number of patents generated in 2012 and has been in the last 19 years and of course patents are equivalent to royalties or products and even to influence in businesses direction of products/services (just look at the latest patent lawsuits between large companies like Apple and Samsung, in which the court of San Jose California ordered Samsung to pay a little more than USD $1 billion to Apple for using its “patents”) and ultimately patents are  more money and power.

But the interesting (the bottom line) point that projects such as Watson and his predecessors/successors arises, is the fact of the vast amount of information generated by all of us and stored in the network as text, images, voice, video, etc. and its immense economic and strategic potential, exploited for more than a decade by various corporations that were responsible for compiling/processing in their extraordinary data centers and make available to us through its search engines (google, bing, yahoo, etc.). How important is this information that we get offered by those corporations’ gigabytes of storage for free or at very low cost (Google Drive, SkyDrive, Dropbox, etc.).

At some time in history the exploitation of minerals such as gold and silver or even spice was the motivating of reigns and wealthy people and helped the flourishing of many cultures. In our time is the use of information and it is very clear that we are just exploiting the visible peak of the giant iceberg.

But even more interesting I think, are the computer algorithms and mathematical equations these corporations have created for indexing/sorting/processing the information and which supported by complex artificial intelligence, advanced natural language processing programs/scripts, hadoops and many more technologies can convert this information into tangible products and services and finally … into patents.

It is understood by the common, the government of the United States (FBI, CIA, etc.) And probably other governments already use such machinery to monitor any suspicious activity of groups that could jeopardize national security, if these groups are stage of intention, planning or execution.

Imagine the X Corporation using such machines in order to capture new and fresh ideas or improved ones coming from multiple regions/trends (twitter/blogs/thesis works/etc.), Classified according to its orientation, i.e. what product or service have the ability to generate or improve. This would be a great technical advantage, so that the corporation can be the first to generate the corresponding patents. Once you get to a very feasible idea to generate a product or service, budgets and teams responsible for bringing into existence such a concept are allocated and consequently all the associated economic capital revenue will be reached, all of that just for analyzing the information.

A fact in evolution is that an idea is not original by itself but is the result of experience and the sum of several other ideas that preceded it, so it is quite possible that two or more people can get the same idea over the time in different ways with little or minimal difference. The recent SurfCast demand against the Windows 8 operating system and its live tiles, highlights the obvious, sooner or later many think the same. But that will be evaluated by the appropriate court. Interestingly Albert Einstein, who conceived one of the great ideas with his theory of relativity, worked in the patent office of the United States.

Then this X corporation makes such data mining services in $ix figures or more numbers pricing on demand: “Tell me what your interest is and we give you all relevant information” as the services market feasibility. Some recent news told us about hackers offering technological espionage with prices in these six figures.

Is it ethical such use and economic gaining of the information belonging to all of us? Yes, as long as it is public with the express consent of its creator. This is because information is a land of opportunity but also requires of very large capital investments.

Should have some cost to the corporation that exploits this information? Well, while the community is rewarded with cheaper or free services, as does the Google ecosystem: we use your information, we help you to easily access it (google search), we offer you free storage (Google Drive) and free tools to access it (google docs, etc.). An ecosystem that feeds itself into an infinite loop…

With the rise of services like Twitter, blogs and other media and the temptation/natural tendency of each and every one of us to share what is happening to us or “what I’m thinking”, I could say that the analogy that the hypothalamus is to the brain what twitter is for ideas, (the shortest way to communicate) holds. Such services facilitate the use of data mining which would use the corporation X.

Today we all are just a bit away from each other, so we can “feel and think” what the “other is thinking.” Two days ago I thought of something and today somebody is talking about. It seems that I have had a déjà-vu.

Imagine of another marketing sub-corporations (corporations created by or in the service of large technology corporations) that feed from this flow of ideas and strengthen its image as a reliable source of technology products reviewers (cnet, techcrunch, engadget, etc.) and they recommend or otherwise try to kill the product from the competition, simply by “listening” to the feelings of all of us. I mean, it is very possible and I think it’s a fact they have a robot (program) analyzing the common feeling on twitter for example, configured according to certain parameters (some new product) and if someone says or provides a new idea on the parameters, the editor and/or their teams immediately generate a news article or blog where they exploit this very idea.

This article was written but not yet completed several days ago and today I’m surprised by the news: IBM predicts Steampunk fashion will be among some of us this year. Funny doesn’t it?

Finally, the question of the USD 6 million (better to say billion), is indeed are we already technologically mature enough to have a crystal ball? Google, IBM and/or others already have it? And of course its ethical, economic and transcendental importance while we all are running forward downstream pulled by the gravitational force of evolution.


Posted by: emitsorgroup | January 22, 2013

La maquina azul, la bola de cristal? Ya estamos ahí?

#conocimiento #información #predicción #patentes #evolución #data-mining #bigdata

Hace algún tiempo vi un video de ibm que consta de 5 partes y en los cuales IBM predice como en los siguientes 5 años la tecnología suficiente para simular/mejorar nuestros 5 sentidos estará disponible (es de suponer como un chip/sensor/etc.) para usarse en cualquier dispositivo electrónico (smartphones, tabletas, computadoras, equipo médico, etc.) y por lo tanto nuestro propio teléfono móvil sería capaz de decirnos la calidad del ambiente, si padecemos alguna enfermedad del sistema digestivo (mediante una exhalación), hacernos un diagnóstico óptico, etc. De hecho alguna de esta tecnología ya está disponible en el mercado.

Este video me recordó al programa de Jeopardy y precisamente a IBM y su proyecto Watson y como este sistema derrotó a los más brillantes ganadores de todos los tiempos de este concurso televisivo. Cómo funciona Watson está explicado en el proyecto DeepQA.

Dicho lo anterior me pregunto qué fue de Watson y si de algún modo es el responsable o una de sus derivaciones de la capacidad de IBM de “predecir el futuro” con el grado suficiente para ser aplicable en los negocios y en las necesidades y tendencias consumistas del ser humano. Bueno, creo que esto no es pura predicción sino mas bien proyectos concretos en desarrollo por IBM pues siempre ha sido reconocido por su inversión en R&D, aunque también deja la puerta abierta a la imaginación y a la real posibilidad de lo primero.

Pero hay otro hecho importante: IBM es la compañía con mayor número de patentes generadas en el 2012 y lo ha sido en los últimos 19 años y por supuesto patentes equivalen a productos o regalías e incluso a influencia en dirección de negocios y productos/servicios (basta ver los más recientes pleitos legales por patentes entre grandes compañías como Apple y Samsung, en el cual la corte de San José California ordenó a Samsung pagar un poco mas de 1 billón de dólares a Apple por hacer uso de sus “patentes”) y finalmente las patentes se traducen en más dinero y poder.

Pero lo interesante (el meollo del asunto) que este tipo de proyectos como Watson y sus predecesores/sucesores plantea, es el hecho de la inmensa cantidad de información que se genera y almacena en la red como texto, imágenes, voz, video, etc. y su inmenso potencial económico y estratégico ya explotado desde hace mas de una década por varias corporaciones que se han encargado de compilar/procesar en sus extraordinarios data centers y nos hacen disponible mediante sus maquinas de búsqueda (google, bing, yahoo, etc.). Cuán importante es esta información y su valor, que dichas corporaciones nos ofrecen hasta gigabytes de almacenamiento gratuito o con un costo muy bajo (Google Drive, SkyDrive, Dropbox, etc.).

En algún tiempo de la historia la explotación de los minerales como el oro y la plata o incluso de especias era el motivador de reinados y acaudalados y ayudó al florecimiento  de muchas culturas. En nuestra época es la explotación de la información y nos queda muy claro que apenas se está explotando el pico visible del gigantesco iceberg.

Pero aun más interesante creo, son los algoritmos computacionales y ecuaciones matemáticas que dichas corporaciones han creado para indexar/clasificar/procesar dicha información y que sustentados por complejos programas/scripts de inteligencia artificial, procesamiento avanzado de lenguaje natural, hadoops y otras muchas mas tecnologías pueden convertir dicha información en productos y servicios tangibles y finalmente… en patentes.

Se sobreentiende por el común, que el gobierno de los Estados Unidos (FBI, CIA, etc.) y seguramente otros gobiernos, ya usan tales maquinas para observar cualquier actividad sospechosa de grupos que pueda poner en riesgo la seguridad nacional: si dichos grupos están en etapa de intención, planeación o ejecución.

Imaginemos a la corporación X usando tales máquinas con la finalidad de capturar ideas nuevas/frescas y mejoradas que vienen de múltiples regiones/tendencias (twitter/blogs/tesis/etc.), clasificándolas de acuerdo a su orientación; es decir qué producto o servicio tienen la posibilidad de generar o mejorar. Esta sería una gran ventaja técnica, que le permitiría ser la primera en generar las patentes correspondientes. Así, una vez que se llega a una idea muy factible de generar un producto o servicio, se asignan presupuestos y equipos responsables de traer a la existencia tal concepto y consecuentemente vendrá el capital económico asociado. Todo lo anterior solo mediante el análisis de la información.

Un hecho consumado en la evolución es que una idea no es original por sí misma sino que es el resultado de la experiencia y la suma de alguna o varias otras ideas que la antecedieron, por lo que es muy posible que dos o más personas puedan llegar a la misma idea por diferentes caminos con muy poca o mínima diferencia. La reciente demanda de SurfCast contra el sistema operativo Windows 8 y sus live tiles, pone en evidencia lo obvio, tarde que temprano muchos pensamos lo mismo. Pero eso lo evaluará la corte correspondiente. Curiosamente Albert Einstein quien concibió una de las ideas más geniales con su teoría de la relatividad, trabajó en la oficina de patentes de los Estados Unidos.

Luego esta corporación ofrece dichos servicios de data mining en cifras de 6 zeros o mas a pedido: “Dígame cual es su interés y nosotros le damos toda la información pertinente”, tal como los servicios de factibilidad de mercado. Recordemos que actualmente hackers ofrecen servicios de espionaje tecnológico a medida con precios en esas cifras.

Es ético tal uso y aprovechamiento económico de la información de todos? Si, pues es pública mientras sea con el consentimiento expreso de su creador. Esto es pues tierra de oportunidad pero también requiere de grandes capitales de inversión.

Debería tener algún coste para la corporación que lo explota? mientras se retribuya a la comunidad en servicios más baratos o gratuitos, tal como lo hace el ecosistema de Google: uso tu información, te ayudo a accesarla fácilmente (google search), te ofrezco almacenamiento gratuito (google Drive) y herramientas gratuitas para accesarlo (google docs), etc. Un ecosistema que se retro-alimenta en un ciclo infinito…

Con el surgimiento de servicios como Twitter, los Blogs y otros medios informativos y la tentación/tendencia natural de todos y cada uno de nosotros de compartir lo que nos está pasando o se nos está ocurriendo al momento, podría decir que la analogía de que el hipotálamo es al cerebro lo que twitter es a las ideas, (el camino más corto de comunicación) se cumple. Este tipo de servicios facilita el uso de data mining del que haría uso la corporación X.

En la actualidad estamos todos a tan solo un bit de distancia unos de otros que podemos “sentir y pensar” lo que el “otro está pensando”. Anteayer se me ocurrió algo y hoy alguien más comenta de ello. Pareciera que yo hubiese tenido un Deja-vu.

Hay otras sub-corporaciones de mercadotecnia (corporaciones creadas por o al servicio de las grandes corporaciones tecnológicas) que se alimentan de este fluir de ideas y fortalecen su imagen como una fuente confiable en revisiones de productos tecnológicos (cnet, techcrunch, engadget, etc.) y sus recomendaciones o lo contrario en tratar de eliminar el producto de la competencia, simplemente “escuchando” el sentir de todos. Me explico: es muy posible y creo que es un hecho que tengan un autómata analizando el sentir común en twitter por ejemplo, lo configuran de acuerdo a ciertos parámetros y si alguien comenta o aporta una nueva idea relativa a los parámetros, de inmediato el editor y/o su equipo generan un nuevo artículo informativo o blog donde explotan tal idea.

Este artículo fue escrito aunque no finalizado hace varios días y hoy me sorprende la noticia de que IBM predice que la moda de Steampunk estará entre algunos de nosotros en el presente año. Gracioso no es asi?

Finalmente, la pregunta de los 6 millones (mas bien billones) de dólares, es: en verdad ya hemos madurado tecnológicamente lo suficiente para  tener una bola de cristal? Ya la tiene Google, IBM y/u otros? Y por supuesto sus implicaciones éticas, económicas y transcendentales mientras corremos hacia el futuro río abajo jalados por la fuerza gravitatoria de la evolución.


Posted by: emitsorgroup | September 14, 2011

Windows 8 Developer Preview – Install in VirtualBox


News from Windows Build conference had been amazing: Touch everywhere, Metro styles and Network integration (Windows Live -cloud-) and some others…

Since you can now download the Windows 8 Developer Preview, I tried installing on VMWare Player due I don’t have a spare system. Downloaded the latest version 3.1.4

but can’t work, saying: vcpu-0:NOT_IMPLEMENTED and crashed. After some googling find out VMWare does not support (at the moment) windows 8, maybe Workstation 8.

So, I tried Virtual Box and by just using default values failed. Adjusted Processor values and worked. Below some screenshots displaying the used configuration and windows 8 running.

Be aware you may need hardware virtualization in your CPU. I have Intel i5 with hardware virtualization support on my pc.

Hope this brief guide will help you.

Screenshots (click on the images to see them larger)

wmware player

wmware player (failed)

Downloaded the latest version of VirtualBox and worked


virtualbox about

Configuration that worked

Virtual Box General Settings

Virtual Box General Settings

Then have to change from PIX3 chipset (default) to ICH9

VirtualBox System motherboard settings

VirtualBox System motherboard settings

Virtual Box System processor settings

Virtual Box System processor settings

Virtual Box System acceleration settings

Virtual Box System acceleration settings

Virtual Box Storage settings

Virtual Box Storage settings

Virtual Box Storage Primary IDE settings

Virtual Box Storage Primary IDE settings

Virtual Box Storage CD/DVD settings

Virtual Box Storage CD/DVD settings

Windows 8 Installing

Windows 8 Installing

Windows 8 preparing pc

Windows 8 preparing pc

Windows 8 running

Windows 8 running


As you create applications with InputStudio, for sure any application you create may need to execute some code at objects creation, update or saving. InputStudio allows you to provide some code snippets to your applications in the way of Business Rules objects as code expressions.

All Business Rules (expressions) must have a name, the actual code expression and when they will be applied (at creation, update or saving).

code expression

The code expression itself is build up from the attribute name, a mathematical operator and the actual value.

As you can infer from this, any code expression is the assignment of a value to an attribute. The actual attribute names are automatically filled up by InputStudio so, you just have to pick one from the list.

As you noted from the operators screenshot (below image) you can also use operator + equals which means the attribute will be sum/substract/multiplied/divided/modulus to its current value.




In the construction of this code expressions InputStudio helps you by discovering your data entities and its attributes and by suggesting them in the expressions list picker. This feature helps you a lot since you don’t have to know and type each of your data entities and its attributes. Also, some other available methods or properties of your data entities (inherited from its base class) are suggested like:

  • <DataEntity>.Children.Count
  • <DataEntity>.Children[ordinalIndex].<Attribute>
  • <DataEntity>.ChildrenAverage!<Attribute>
  • <DataEntity>.ChildrenMin!<Attribute>
  • <DataEntity>.ChildrenMax!<Attribute>
  • <DataEntity>.ChildrenSum!<Attribute>
    • Where:
      • <DataEntity> is your actual data entity name
      • ordinalIndex is a numeric index number
      • <Attribute> is your actual attribute name
      • Average, Min, Max and Sum are aggregate functions which calculate its values based on the data entity children objects.
expressions list

expressions list

While you can just select from the available objects, methods or properties, you can also type any other mathematical expression made up from numeric constant values or a mix of available object attributes multiplied, sum, subtracted or divided by some constant value or another object attribute.

The Gold Parser.

Note:  Following screen-shots and code, explain a little bit how the evaluation of expressions was accomplished in InputStudio. For your actual code snippets you don’t need this.

To help with the evaluation of these expressions, the Gold Parser library arrives to the Windows Phone 7. The Gold parser library requires a grammar, previously compiled with the Gold Parser Builder.



grammar - contd

grammar – contd

grammar productions

grammar productions

grammar productions - contd

grammar productions – contd



Then some helper code implements that grammar which at the end evaluates the Business Rules expressions.




Test expressions code testing in InputStudio project.

code test for expressions

code test for expressions

code test for expressions - contd

code test for expressions – contd

That is it for now, hope this post gives you an insight on the grammar you can use when coding your Business Rules snippets.


In this second part of this series, let’s talk about the application definition files storage. As I mentioned in the introduction of this series, what a better way to store the application definitions, then the great Sterling database library.

It is pretty easy to setup the Sterling database:

  1. Create an instance of the Sterling Engine
  2. Activate the engine
  3. And register the application database with its table(s)

Then using the database it is also pretty easy:

  1. Query the database and load your objects using the LazyValue for loading
  2. Save your objects by using the Save and Flush methods.

I don’t want to go into the details of the Sterling database usage because Jeremy Likness, Jesse Liberty and some other people already explained that. What I’m going to talk is about the issues I’ve found when using it and how to work around them.

There is some issue on how the Sterling database handles the data types caching to speed up the load and saving of your application objects, but this issue may not be visible to most of the Windows Phone 7 applications using Sterling. Let me explain this:

InputStudio applications can have data entities with different attribute data types.


Transaction Attributes

Product Attributes

Product Attributes

From the previous image examples:

  • The Bank Accounts Management application has the Transaction data entity made up from decimal, datetime, integer, string and listofstring data types.
  • The Northwind application has the Products data entity made up by the same data types as the Transaction data entity plus the image data type.

From the previous two application examples; even when all applications share the same data type as the base class for all data entities which is registered as the TableDefinition data type in Sterling; the actual object instances of these two applications contain different data types in its attributes. This causes a runtime exception in Sterling saying “Index out of range” when switching between applications while executing each of the sample applications.

The solution to this issue was to manually add all possible serializable types of my application to the _typeMaster list in the PathProvider.cs class of Sterling



and comment out the _typeMaster.Clear() call to avoid clearing the manually added types and also check if the type is not in the list when adding the available types; all of this in the _InitializeTypes() method.



Another issue with Sterling was when trying to use Background workers to load asynchronously the application objects and this objects contained the WriteableBitmap type; this because the WriteableBitmap can only be created in the UI thread. The solution was once again, change a little bit of code when adding the WriteableBitmap type to the _serializers dictionary in the constructor of the ExtendedSerializer.cs class.


WriteableBitmap type added to Serializer at constructor

After this small fixes, Sterling and the app worked just smooth without any issue at all.

Well my friends, this was Sterling for storage handling, lets see what SQL-CE for Mango has for us…


Welcome, join me into this series of a Journey of a Windows Phone 7 application: from mere ideas to real deployment into Marketplace Hub.

This journey has the purpose of share with you my experiences of designing, creating and deploying the InputStudio application.

This experiences have much to do with nice people like Jesse Liberty and the SilverlightShow community whose blog posts always were for me at the exact time when I needed (sterling/OData/MVC3/Silverlight Code Testing/etc), Thank you!.

This initial post should give you an idea of the whole of the project. Subsequent posts will dig in detail on each of the aspects of the application, some with sample code.

First of all, since long time ago I had the wish burned on my mind to create an application killer, an application where you can create applications easy and quickly: the dream of every software developer. Finally, the conditions were there so I was able to start the making of my app.

As a starting point, the app needed to be bind to a specific domain: I choose to address the problem of data recording/processing, where you have specific needs:

  • you want to track your car’s mileage performance.
  • you want to track your travel expenses.
  • your wife wants to manage her small cloths business sales.
  • you want to keep a record of your house bills, and so on.

Why the Windows Phone 7 platform?

Well, some time ago I saw some podcasts about creating ipod/iphone applications and downloaded the iOS developer SDK but when starting creating an app, the language (ObjectiveC) and the tools appear to me everything but user friendly and that remembered me the old days of creating applications with ANSI C or C++ where your lost productivity fixing missing memory pointers and decrementing reference counters, stuff an evolved compiler/language/framework should do for you, so you keep focused on your business logic-code. In the other hand since I knew about Nikhil Kothari’s Silverlight FX I fell in love with Silverlight and created several applications, yes, it was web but without  JavaScript (well, just a bit).

The Design.

From previous experiences I’ve had while working at some outsourcing companies providing software solutions, I decided the app should work based on configuration vs binary code; what I mean, is the applications created in InputStudio should be just configuration files that can be then executed by some sort of interpreter (player); this is different from appMakr where each created application needs to be published into Marketplace Hub. With appMakr you end up with many binary applications in your phone while in InputStudio you just have one binary and many configurations; by the way appMakr and InputStudio solve problems for different domains.

As an obligated consequence of this selection, the configuration format had to be chosen. I choose the xml format because of several reasons:

  • Xsd2Code makes your xml definition a class.
  • you can create viewlet definitions and test classes (for testing your definitions) by applying xslt transformations.

Well, this application definition files needed to be stored at some place and the awesome Jeremy Likness‘s Sterling was the perfect fit since is fast, easy and clean to code.

Of course this application definitions (applications) needed to met certain rules like:

  • At least one data entity (business object)  must be configured.
  • At least one attribute (property) must be configured in a data entity.
  • At least one screen (page) needs to be configured.
  • At least one data entity needs to be attached (to be rendered) in a screen object, and so on.

All of this application rules and their children ones needed to be validated when saving or navigating back from the designer pages.

Regarding the Tombstoning, as each of the application definition objects and it’s children have and ID of type Guid, just saving that ID makes quite fast the saving and resurrecting of app objects.

The application should also support at least the standard languages (english, deutch, french, italian and spanish) , so  it should be a localized app.

The application should follow the Data-First approach where you first create your business objects and the business rules that drive them and then attach (render) that entities into pre-built user controls plugged in some screen (page). Mimicking the real world, this data entities which represent real world objects or concepts should be related one to the others in parent-child relationships.

Some user controls needed then, dynamically create it’s content or input controls (text boxes, list boxes, buttons, etc) based on the attributes (data type, caption, etc) of that data entities.

As you assemble some data entities and screens into a single application, some of this data entities needed to interact with others and resolve some mathematical expressions.
For example: you create an application for you Bank Accounts Management. You have the Accounts data entity which resumes all of your transactions, the Account entity and the Transaction entity. Every time you make a bank transaction you account needs to be updated since the transaction was applied to some specific account and finally, your total balance may be affected. Here is where the great David Cook’s GoldParser library arrives as an expression solver for the Windows Phone 7.

But your data means almost nothing if you can’t use it in MS Excel or another productivity tool? Then the app should be able to export your data in some way easily accessible to you. The chosen format was html.

Another main objective of the app is that the apps created could be easily shared with a community of users, in such a way that you can import apps created by others based on it’s rating the community give them. To address this feature an ASP.NET MVC 3 application with some web services support needed to be created.

Finally, obfuscating the app for free with Dotfuscator for Windows Phone and deploying in winhost.

This is all for now but stay tuned for the following series part.


Posted by: emitsorgroup | June 30, 2011

InputStudio wp7 – Create your own applications

What a great option has arrived for windows phone 7 owners: the possibility to create our own applications, yes in the very same phone and in just a few minutes. The emitsor group has made a formidable job of putting all pieces together in such a way that you can quickly design and have running your applications.

See the InputStudio site for more information.


What features are provided by InputStudio?

  • You can create your own applications
  • You can import applications created by others based on ratings
  • You can share your own applications
  • You can export your data via email as an html page
  • You can sort and filter your data
  • Featured sample applications are provided  by default
What technologies is InputStudio using?
How InputStudio has been designed?
InputStudio application follows the data definition first approach for creating applications where you first design your data entities and attributes and the rules that drive them and then attach (render) that entities into pre-built user controls plugged in some page (screen).
  • Want to have an application for tracking your personal or travel expenses?, for tracking your car gas usage performance?, to track your small business sales and customers?. For this needs and many other more, you can now easily create your own applications as closest to you as your phone device…
What are the steps to follow for creating an InputStudio application?
  1. Click the Add application command for adding a brand new application
  2. Change default names and values so they make sense for the need you are trying to solve with your application
  3. [Optional] add more objects so your application is more robust
  4. Run your application
What objects can be used to compose an InputStudio application?
  • Data entity. This is the business object holding an attribute list, code rules to be applied to attributes, Relationships between data entities and data sorting for it’s children
  • Attribute. The very basic data representation having a data type, default value, caption, height, etc.
  • Validation. Applied to an attribute. Can be non empty, a regular expression, a range of values, etc.
  • Style. Applied to an attribute for adjusting it’s rendering
  • Rule. Applied to a data entity for setting it’s attributes value at creation, update, save, etc.
  • Relationships. Applied to data entities indicating if they are parent or children, etc.
  • Sorting. Applied to children data entities. Children columns must be set and their order (ascending/descending)
  • Screen. Is the placeholder where data entities will be rendered.
  • Attachment. Is the actual data entity to be rendered on a screen.
  • Navigation. Object to define navigation between screens, based on a Boolean result script. 
  • Choice List. Comma separated list of options. 
What are the strictly required objects in order to run my application?
  • At least one data entity
  • At least one attribute in my data entity
  • At least one screen
At any step in the design phase the objects, it’s names and values are validated against InputStudio validation rules. If any object does not met this rules then it is colored as an orange object. Once passes the validation is colored as a green object.