Javier Caceres – jacace

Javier's blog about C#, Software Architecture and Design



[OT] Becoming a… researcher?

This is a quick note just to let you know that I’ve started a mid-term plan to become a PhD. The first stage is undertaking a MSc in something I love: Software Architecture. I’ve started an academic project to define a Software Architectural Pattern for sensor/massive data. Attached you’ll find the current draft. If you have any contribution to this work please let me know. Working and studying is something I love to do.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer


Intel Developer Forum 2013 – A summary #IDF13

Hello everybody,

Previously I shared my favorite list of sessions at the Intel Developer Forum (a.k.a. #IDF13) here, today I’d like to share what I think was most valuable. This is not a complete/detailed description, it’s just a recopilation of some interesting notes of mine.

  • New Chips: Intel started as a chip maker, so this event was an opportunity to showcase the Atom Z3770, based on the Bay Trail platform. For non-chip expert readers this means better performance and lower power consumption. For tech readers there are two links I recommend about that here and here. This SoC is intended to be used in the tablets and smart phones market. A  side note about this: Intel thinks in mobility in terms of wearable technology, so this is the transformation of the PC for the next era: Internet of Things. I feel IoT is about to become mainstream, not just an academic term anymore. In that world where tiny devices come into play, tiny chips play an important role. I’d recommend to keep an eye on Quark, which a 14 nm Soc.
  • Big data: one great learnt lesson: to construct graph-like models use Hadoop. To analyze them use Graph Lab (because Hadoop does massive data replication and suffers bottlenecks in graph processing, plus is not a natural abstraction for developers, so WE have to re-image the problem) and for Query processing/storage use Mine Graph. Dear readers just learning about Hadoop: bear in mind that Hadoop is a disk based engine, so get ready for faster in-memory computing like Spark. This world is envolving faster than ever. One of the highlighted companies actually using big data tools is Duke Energy, as you could imagine utility companies are collecting and analyzing data. Keep an eye on traditional data tool makers like Informix and non-traditional like Marklogic.
  • NUI’s  and/or gesture: this segment is getting mature. Maybe not highly recognizable, but mature. If you’re still amazed for touch devices or multi-touch SDK’s I’d have to say that you have been living on a cave. Check Nuance’s Dragon Assistant or the Intel Perceptual Computing SDK.
  • The potentially next big thing in HW/SW: Cloud Foundry (open PAAS), Aepona (NAAS) and Mahsery (Cloud Based API Management) in Software/Services (cloud computing). NI CompactRIO (a compact/open architecture control/monitoring system) and Aeroscout (Wi-Fi tags with telemetry and other sensors) in hardware.
  • Android: I know some readers are actually Java/Android developers, so here I share these technical slides just for you: Building Android* Systems with Intel® Architecture Based PlatformsDevelop, Optimize, Debug, and Tune Applications for Android,

    Developing Native Applications on Android and Optimizing for Intel® Architecture and

    Accelerating Your Software Development for Android* on Intel® Platforms.

I’d like to share some picture because IDF is not only a great professional experience, is a life experience indeed:

El pase de diapositivas requiere JavaScript.

See you at the next IDF, I hope you find this information valuable as well.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer

My Favorite List Of Sessions in the #IDF13

Hello Everybody,

It’s this time of the year again when Intel showcases the most impressive stuff done during the last months. If you’re a technology follower these times are exciting. Every year the guys behind the event agenda surprises us with topics of interest for everyone, from business devices/software to Hi-Tech (sci-fi like) demos. For this year I just finished hand picking a list of my favorite sessions which I would like to share with you:

TECS003 – Beyond Queries: Finding Patterns in Big Data Using Graph Analytics with Hadoop* Software

ACAS001 – Beyond Hadoop* MapReduce: Processing Big Data

AIOS004 – Developing Software for Portable All-In-One Devices

EDCS005 – Big Data Analytics Software Technologies for the Developer and Deployer

EDCS006 – Moore’s Law And Big Data – Let’s Make Big Data Matter

FUTS004 – Making Big Data Relevant

SFTS004 – Build Effective and High Performance Hybrid Applications Targeting Windows* 8 UI and Desktop Environments

SPCS006 – Technology Insight: HTML5 – The Most Viable Path to Seamless Computing 

BCSS001 – 4th Generation Intel® vPro™ Platforms: Developing Compelling User Experiences

BCSS002 – Intel® Setup and Configuration Software: Discover and Configure Intel® vPro™ Platforms

BCSS003 – Meshcentral.com – Using Intel® AMT and Intel® Smart Connect Features From the Cloud

Finally I would like to give a special mention to the keynotes, which are highly valuable source of information for visionaries and to the sessions to be delivered by Ylian Saint-Hilaire because his sessions are not only very interesting for Intel vPro – related professionals but they’re also great examples of how to mix trendy technologies like HTML5, cloud and so on. See you there!

Thanks a lot!

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer

MVP Award 2013 – Visual C#

Hello everybody,

I have been pretty busy during the last months, but I wanted to write about this before time goes on (also, I just woke up at 3:00 AM after flying from SNN to SFO, perfect time for writing!). So I got good news, I was re-awarded as a Microsoft Most Valuable Professional in Visual C# during last April, 2013 (very busy I’d say!). I would like to thank you to all of you who reads/follows/sponsors my blogs (this and my another one @ Intel) and my offline activities (e.g.:  SQL Saturday # 229 @ Dublin) because your questions, comments and compliments/suggestions make feel that I’m contributing  to make this world a better place through knowledge sharing in computer science. Here a nice pic :


Thanks a lot!

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer

Explicacion del mensaje: No se han especificado valores para algunos de los parámetros

Hola a todos,

Recibi la siguiente pregunta de un exalumno:

Profe. otra vez a molestar tengo esta consulta:
OleDbCommand cm1 = new OleDbCommand(“Select IdCliente, NombreCompania, NombreContacto, CargoContacto, Direccion FROM Clientes WHERE IdCliente=”+id_cliente, cn1);

Y me genera un error en:
OleDbDataReader leerc = cm1.ExecuteReader();
error:  No se han especificado valores para algunos de los parámetros requeridos
Si a la consulta no le agrego la variable +id_cliente, me muestra los datos ubicándose al final de la tabla

Este tipo de errores tiene una clara descripcion pero puede presentarse por varias causas relacionadas con el paramentero de la condicion where. Algunas posibles causas son:

Si la variable id_cliente es de tipo string y esta vacia entonces la sentencia SQL sera concatenada sin ningun valor para comparar la igualdad con IdCliente. En este caso la sentencia resultante seria erronea como se describe a continuacion:

“Select IdCliente, NombreCompania, NombreContacto, CargoContacto, Direccion FROM Clientes WHERE IdCliente=”

Si la variable es de tipo string en la tabla y se ejecuta la sentencia sin las correspondientes indicaciones de tipo literal en la variable se podria presentar este error (u otro aun mas extrano). La sentencia incorrecta seria:

“Select IdCliente, NombreCompania, NombreContacto, CargoContacto, Direccion FROM Clientes WHERE IdCliente=CUALQUIER_TEXTO”

En lugar de:

“Select IdCliente, NombreCompania, NombreContacto, CargoContacto, Direccion FROM Clientes WHERE IdCliente=’CUALQUIER_TEXTO'”

Siguiendo las aclaraciones anteriores se puede solucionar el error, sin embargo lo mejor seria utilizar procedimientos almacenados.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP

Intel Black Belt Software Developer

Highcharts right-click support: An example of community contributions

I have been following the growing of the HighCharts java script charting framework for some time. I would like to comment a nice story about it.

The framework does not officially support right-click at the moment but its first class forum support is ready to accept and quickly respond to community feedback and questions in their forum or user voice site.

The story started when someone needed the right click functionality and as it was not supported then He came up with a fix (because this is an open source framework). I’d say that fix has been used widely in the development community so the original code contribution was changed in order to keep it separated from the official HighCharts code in a plugin form (so future updates will work).

I’d like to contribute as well in the plugin by commenting 4 things you should pay attention:

  1. The Highcharts.wrap method is the preferred way to extend the framework in order to call your own code AND the current/official code.
  2. Change the code from series (Highcharts.Chart.plotOptions.series.point.events) to your specific need (i.e. columns: Highcharts.Chart.plotOptions.column.point.events)
  3. If you’re using HighStock, do not forget adding a reference to the highstock.js file in the same scope that your rendering code, otherwise the HighChart object will be used instead of the HighStock (so you’ll get no right click).
  4. The original code was cleaned in order to remove the ExtJs dependencies (in the original code ExtJs/Sencha is used to draw a menu). So if you need something different than an “alert” customize it using ExtJs/Sencha or another framework.

I’m Über grateful for it, you cannot imagine how frustating it’s when you ask and get no response (compared with the Telerik’s comme ci comme ça responsiveness. See here, here and here). Kudos to the Highsoft team (there in beautiful Vik i Sogn -Norway- ).


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

5 things I don’t like about the Microsoft Windows Simulator

  1. Runs only Microsoft software (I tried to run Chrome and FireFox and did not work).
  2. The IE desktop browser can navigate local development web sites but the IE “Store/WinRT” can not.
  3. It supports too few gestures (only basic touch and a creepy pinch/zoom).
  4. The developer license for Windows 8. I know is free but come on. It’s my PC/tablet. Maybe this makes sense for tablet/smartphone only devices.
  5. All changes are reflected in your machine. If you delete a system file in the simulator you’re in fact deleting it from your development machine. I know the Windows Simulator is not an emulator, so it’s not supposed to completely imitate the target machine as an emulator does (because is supposed to be the same architecture) but I would prefer complete access to my files and software (see point 1) OR a completely isolated storage (and thus an emulator).

At the moment (02/Nov/2012) items 1 to 3 are a pain for me. I hope in upcoming VS releases they be addressed.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

Intel Black Belt Software Developer Summit 2012

During the second week of September 2012, I attended to the Intel Developer Forum in San Francisco, CA. I’d say that most of the main information and announcements were already twitted/retwitted under the #IDF2012 hash tag by me and others. By other hand at the hearth of the IDF I attended to the Intel Black Belt Software Developer Summit as well. I want to say this is an amazing group of professionals and fun colleagues from all around the world. I was honored by third time and it was awesome.

I shared a lot of wonderful time there talking about culture, science and of course technology.

See you soon guys,

Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

Are you a Software Developer or a Graphic Designer?

If you’re reading this blog maybe you’re involved in any phase of the software development process, typically mostly people is involved in the development stage.

This is not a philosophical question; it’s just a straight forward reflection about the amount of time which is actually spent in UI-related development activities (by the way, have you ever measured your development efforts? If so, have you categorized them? I’m sure you will find interesting findings). According to my practical findings the UI activities account up to 54% of the total time.

Please don’t get me wrong, the UI category includes working with UI controls, HTML templates and interaction functionality, so this category only includes the code necessary to make the UI work and not the time required to design the UI elements of your application (that’s the graphical designer’s work!). I have found this number consistent across different UX approaches, projects and server technologies.

Over the pass of the years the UI have become a big deal, don’t believe me? Just count the numbers of times you hear from your team or customers words like: look, feel, easier, modern, friendly and so on. The UI was considered in past years like the iceberg’s peak, the minimal and less interesting challenge, but now, the UI becomes the contract or artifact the customer wants to negotiate on.

By other hand, 16% of the time is spent is general administration and planning activities conducting to do internal work products. An internal work product can be (depending on your policies and methodologies) a mockup, a schedule, a manual, a status report and so on. This category covers all the work which is not programming related per se.

The 15% is spent is data base related work, doesn’t matter if it’s a schema creation, a store procedure activity or a ORM aided task, all of them account in my numbers as data base. The last 15% is spent in coding, pure coding period; I mean the task is about algorithmic, logical and business programming.

These results led me to ask: ok, you’re a Software Developer (in any language, i.e. C#) but you only code 15% of your time (remember that the database stuff can be done by a data base professional while the 53% by a UX Engineer or by a heroic graphical designer), so is your job title according with your daily activities? I don’t expect you answer the question; I just want to help you figuring out where is the time.

If this trends continues, tooling manufactures should focus on create products to decrease the time required to developed a modern and friendly UI. I imagine a near future where UI is not a hand-craft master piece but it’s instead a systematic and controlled output. Hey software giants and community members please stop reinventing the fast-methodologies, the paradigms and patterns to plug the UI with code! Please prioritize and focus in helping us creating, reusing and improving the UI itself.


Javier Andrés Cáceres Alvis

Microsoft Most Valuable Professional – MVP
Intel Black Belt Software Developer

Crea un blog o un sitio web gratuitos con WordPress.com.

Subir ↑