miércoles, diciembre 08, 2010

Smalltalk in the Enterprise

This week we had a very interesting discussion about Pharo integration in the Enterprise on the Pharo list.

I want to save here some interesting concepts I read on such mails:

From Tudor Girba:

I recently introduced Pharo in a small-medium software company (parametrix.ch). They use it for Moose (moosetechnology.org) to analyze their systems written in various languages and to introduce an assessment approach in their day to day development process (humane-assessment.com). A number of them are now learning to program in Pharo and Moose.

Moose is a valuable platform exactly because it is built in Smalltalk. Developers understand the power of Smalltalk in the context of Moose quite quickly after they do a couple of tutorials. The result is that they end up wanting to learn Smalltalk. 

In fact, I argued for quite a while that vendors should use Moose to promote Smalltalk. The cool thing about it is that it addresses directly programmers that develop in all sorts of languages (especially Java). This gives us a nice back door.  

The Smalltalk success stories (at the enterprise level) come from solving problems that are very difficult to solve in the first place.

Looking at some of GemStone's customers there are two common characteristics:

   - large complex problems
   - problems whose domain is rapidly changing

The large problems have to be broken down into pieces that are small enough for a small team of people to attack effectively and the work of these small teams has to be integrated to address the larger problem.
This plays into the strength of Smalltalk in that Smalltalk code (and developers) can thrive in an environment where the code base is inconsistent/fluid ... 
For problems whose domain is rapidly changing it is a requirement that the _architecture_ of the system be able to migrate over time. As business rules change the architecture of the system has to evolve.
Again the requirement of having a malleable code base where functionality can migrate and the architecture can evolve play into the strengths of Smalltalk... 

Smalltalk improves developer productivity ... pure and simple ... the reason that developing in Smalltalk is fun is that there is very little that gets in between the developer and the solution of a problem ... the debugger, inspector and all of the tools mean that a developer can focus on the problem at hand ... the dynamic nature of Smalltalk means that I can add instance variables and change interfaces without having to fight the compiler or the tools ... or lose track of what I am doing ....

With that said (here comes the rant:) ... the _enterprise_ is not necessarily interested in developer productivity...productive developers is way down the list for the enterprise ... just look at the waste (not just in software) in a typical corporation ... (end of rant) ...

Smaller companies (not at the enterprise level) _are_ interested in developer productivity, so that should be the sweet spot for Smalltalk and there is work to be done to make Smalltalk more attractive to those Smaller companies and it seems that Pharo is headed in the right direction to become more attractive ... Note that many development groups within the enterprise operate like smaller companies, it's just that a CTO of a Fortune 500 company isn't going to wholesale switch his company from using Java to using Smalltalk (at least not this year:)... 

Oh and GemStone also has enterprise customers who don't necessarily advertise their Smalltalk success stories. 

We must continue teaching in the universities..and why not.. The companies.. For free.... Only for introduce the technollogy in the market

We must support projects such Seaside, Reef, Glorp, SqueakDBX or Mars (and it's futures version for linux and windows). This cain of projects are the bridge from the mainstream world to smalltalk.. 

We must make deal's with the traditional software companies.. And don't be scare for sign a contract where the project have webservices and java, php or .net front-end. although the solution is not needed‬. (Obviously if you don't will be the architect :) )

We need make the peace with commercial people and the technology publications..

At last and over all, when any one from this group, have the chance, one chance, to have a CIO position, take it, and make the difference. 

This one, please don't think as traditional CIO, think different. 

I think an effective way to evangelize Pharo/Squeak/Smalltalk is to when anybody has the liberty to do so, use it in the small areas where the business has a need and no dependencies or any particular bureaucratic requirements. 

Encourage coworkers to try it for personal projects, invite them to local user groups. Even if it is simply to explore something different and unknown. Find out some of their interests and where possible and reasonable demonstrate a Pharo solution for their interests.

I think the more people we can get to choose Pharo/Squeak/Smalltalk for personal interests, the more people will begin to use it for the jobs at work that they have the liberty to choose. Over time this could lead to understanding of the benefits that Pharo/Squeak/Smalltalk can bring to the enterprise environment or to the developers life in general. If they use it at home, they may also help to improve our enterprise story so that they can make a living using their tool of choice. 

Pic Info:

lunes, noviembre 22, 2010

New Prices for PasswordsPro

PasswordsPro Single License
From November 22, 2010 we set  up new prices for PasswordsPro:

1 License: $ 14.90
5 Licenses Pack: $ 46.25 ( $ 9,25/lic)
10 Licenses Pack: $ 77.50 ($ 7.75/lic)

Also we have FREE licenses for do-gooders (a thing we learned from Balsamiq).

Finally we have also free license by our agreement with TrialPay.

Check the PasswordsPro site!

All prices in US dollars.

domingo, noviembre 14, 2010

Smalltalks 2010 ended

A new edition of the Argentinian conference about Smalltalk ended and was really an excellent event, with a very very good organization,  thanks to the hard work of FAST people, and a high level technical talks.

Lot of international guests shared their knowledgment here mixed with lot of argentinian people showing their Smalltalk work. A big oppotunity to learn from others and to share three nice days, talking with other smalltalkers in the breaks and lunchs and dinners.

Also a very friendly and relaxing environment with excellent attention of the people of UTN Concepción. 



I really enjoyed a lot to be there and think that all people interested in objects technology can't miss the next conference in Argentina!

jueves, noviembre 11, 2010

Smalltalks 2010 started

Today started Smalltalks 2010 at UTN Concepción del Uruguay, Argentina. 

The conference started with the welcome talks from authorities of the University and the major of the city.

Then, Hernán Wilkinson gave the opening.

We had a lot of interesting talks and also very distinguished guests sharing their knowledgment.

The first talk was from Gilad Bracha about the Newspeak language and also we had the opportunity of hear Eliot Miranda talking about Code Generation

Further, we had a complete day plenty of interesting topics as you can check on the Schedule tab of the conference site.

In such important event also I had the opportunity to give my talk about Smalltalk & MicroISV's and I'm very happy of share these sort of things with the Smalltalk community.

Thanks FAST by the hard working to organize this event in Argentina!

jueves, noviembre 04, 2010

Smalltalk and MicroISVs

This is the talk I'll be giving on Smalltalks 2010 next week.

The idea behind this talk is show the potential of Smalltalk to be used on MicroISV world (small companies, mostly of only one person, developing packaged or custom software).

Being Arduino Software itself a MicroISV, the talk will comment the own experiences, with different tools, and the advantages obtained with Smalltalk.

A quick pane for the different solutions developed from year 2003 (Year of definitive adoption of Smalltalk in Arduino Software) to show the audience the wide range of possibilities and how Smalltalk helps also on the entrepreneurial spirit.

Finally, some references to the MicroISV world (organizations, sites, forums, events) to help introduce the audience on this world.

Pic information:
http://www.flickr.com/photos/dimmerswitch/3609801758/sizes/m/in/photostream/ / License

viernes, septiembre 03, 2010

Building Cog VM on Ubuntu Lucid Lynx

Finally I decided to build Cog on my Ubuntu 10.04 box.

The first step is download the needed sources:

     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/platforms
     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/src
     svn co http://www.squeakvm.org/svn/squeak/branches/Cog/unixbuild

Then, I followed the 3d. instructions from Eliot, because I want to build the VM on a 64-bit OS.

I have an Ubuntu 64 bits without special installations, I mean, installed exactly as the ISO installs, with no special packages selected.

Then, the first step is install the following packages needed to compile in 32-bit mode on 64-bit ubuntu:


At this point I run the configuration script, but it failed with an error message for complaining about missing XShm.h. Doing a bit of googling I found that I probably need to do this:

    sudo apt-get install libx11-dev libxpm-dev x11proto-xext-dev libxext-dev  

Again run configure script and this time the error message was for complaining about missing X11/Intrinsic.h. Google found the solution once more time, another no istalled package:

    sudo apt-get install libxt-dev

And now, the configuration script: 

      ../../platforms/unix/config/configure CC="gcc -m32" CXX="g++ -m32" CFLAGS="-g -O2 -msse2 -D_GNU_SOURCE -DNDEBUG -DITIMER_HEARTBEAT=1 -DNO_VM_PROFILE=1 -DCOGMTVM=0" LIBS=-lpthread

run ok.

Remember to run it from unixbuild/bld directory.

And finally, execute:

    make install prefix=WhereYouWantTheVmToGo

And voila, the Cog vm is built!

Pic information:
http://www.flickr.com/photos/hugo90/1719493630/ / CC BY 2.0

sábado, agosto 28, 2010

¿Qué hacemos en Arduino Software?

Desde hace tiempo, tengo pendiente un post explicando todas las actividades que relizamos en Arduino Software asi que el presente artículo tiene ese fin, realizar una presentación de nuestros productos y servicios.

Nuestras áreas de trabajo son las siguientes:

Desarrollo de Software Desktop, Web y Embebido:

El objetivo es desarrollar software que permanezca lo más inmune posible a los cambios tecnológicos y que funcione en la mayor cantidad de plataformas (Linux, Windows, Macintosh,Unixes, Móviles).

Ello se logra con el uso de tecnología de objetos reales (no simplemente orientado a objetos), utilizando diferentes variedades de Smalltalk (el ambiente de objetos por excelencia).

Desarrollamos productos a medida, proyectos específicos para otras software house y también software empaquetado o para comercialización como servicio (SaaS).

Además, estamos dando los primeros pasos en software de control industrial (microprocesadores plc, etc) desde un enfoque de producción con tecnología
de objetos (Squeak, Pharo).

Algunos de nuestros productos más importantes son:

A1-Business CMS:

Es un sistema que pertenece a la categoría de los CMS o sistemas de gestión de contenidos, especialmente desarrollado para rubros de negocios específicos. La
versión actual soporta su uso como catálogo web de compañías inmobiliarias o bienes raíces.

También existe una versión para manejo de información documental escaneada.

Sitio Web A1 en Español: http://www.arsol.biz/a1
Sitio Web A1 Versión Expedientes: http://www.arsol.biz/a1/expindex.html

Passwords Pro:

Es un producto para almacenar en forma segura (encriptada) contraseñas y todo tipo de información confidencial.

Sitio Web: http://www.passwordspro.com


Es un producto orientado a automatizar tareas manuales y repetitivas como identificarse a un sitio web, seleccionar opciones, rellenar formularios, subir y bajar archivos, etc.

Este producto puede ahorrar muchas horas de trabajo manual repetitivo y de poco valor agregado y puede ser fácilmente extendido para automatizar cualquier tipo de tareas de este estilo (Especialmente indicado para financieras, bancos, mutuales, tarjetas de crédito, y toda empresa que necesite manejar tareas vía web intercambiando archivos y datos).

Desarrollo de Sitios Web e Implementación de Software Libre:

Desarrollamos sitios web estáticos y dinámicos con especial enfoque en la implementación y adaptación de productos open source para fines específicos (por ejemplo OS-Commerce para Comercio Electronico, Sistemas ERP, CRM, BPM, CMS, Workflow, etc).

En estos casos proveemos también el alojamiento y la administración (backups, etc) como una solución completa llave en mano.

Consultoría y Mentoring en Desarrollo de Software con Tecnología de Objetos:

Brindamos capacitación para profesionales de informática interesados en incursionar en el mundo del desarrollo con objetos utilizando diferentes variedades de Smalltalks, pero con especial foco en Pharo. Además supervisamos proyectos específicos con estas tecnologías en empresas que comienzan con la utilización de las mismas, con particular foco en el desarrollo web, utilizando Seaside.

Administración y Configuración de Alojamiento de Sitios Web y Nombres de Dominios:

Administración y configuración de alojamiento para sitios web (webhosting) en servidores ubicados en los mejores datacenters de USA y Europa. Planes Windows y Linux con paneles de control para autoadministración, Servidores Virtuales y Dedicados con especial enfoque en Sistema Operativo Linux y tecnologías open source.
Además, administración y configuración de nombres de dominios .com; .net; .org; .info; .biz; .us; .tv y .es.
Presencia Internacional.

Luego de muchos años de trabajo serio y responsable, además de una dedicación continua a la mejora tecnológica hoy tenemos el orgullo de contar con clientes en Argentina, Bolivia, Paraguay, Uruguay, Costa Rica, México, USA, Ucrania, Australia, España, Suiza, República Dominicana y Bélgica. 
Muchas gracias a todos quienes confían en nuestros productos y servicios.

http://www.flickr.com/photos/dnorman/3533040651/ / CC BY 2.0

viernes, julio 02, 2010

WebPostAutomation released.

A local customer contacted me to solve a repetitive task on his business.

Such task is login on a website (of a provider of him), select some options, and upload until four different file types (The server software of the website upload the files using POST method).

The task must be made lot of times by day, in the moment that each one of the four file types is generated by an internal system.

The customer wanted a program to solve this manual and time consuming task. Then I developed a small piece of software named WebPostAutomation to make this task automatic.

My system is basically a Pharo 1.0 image with WebClient loaded with some adaptations to make upload of files using multipart/form-data through POST method.

WebPostAutomation have a configuration file with the parameters that need to know to make its job.

Also, each operation of WebPostAutomation is logged using a simple log mechanism I developed to this project (The logging engines I found on Squeaksource were so complicated to my current needs). A sample of the log file next:

Being that the customer is using Windows on his daily work, I deployed WebPostAutomation with the latest Pharo VM for Windows, tweaking somethings with the configuration of the vm file.

To inform the result of each upload I parse the HTML returned by the server and log that info.

I know is a simple solution, but also is a clean solution, far better than automate the task using Internet Browser macros (that is the first obvious option).

Using WebPostAutomation is simple and straightforward and the communication is directly with the remote web server with no other pieces of software in the middle.

I wrote this article to show another possibility of make business using our lovely Smalltalk.

Pic Information:
http://www.flickr.com/photos/sepblog/3941048713/ / CC BY 2.0

sábado, junio 26, 2010

ESUG will sponsor the XMLRPC project!

ESUG will sponsor my project XMLRPC Support for Pharo/Squeak HTTP Clients.

Scope: XMLRPC is a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet. Such calls are on XML format and sent by HTTP POST method.

The proposal of this project is implement XMLRPC, as a general purpose protocol, for clients written in Pharo and Squeak make requests of servers supporting the protocol.

My plan is start from a client named Spy, currently on Squeaksource that is from 2005 and update it with the current state of the protocol XMLRPC and Pharo/Squeak tools (XML Parser, HTTP Clients, Installers, etc). I already added ByteString support.

Also I plan develop a set of examples to use XMLRPC against the best know sites that support the protocol on its servers, as for example Flickr, Youtube, etc.

Motivation: The main motivation of this project is develop a new interface needed to people using Pharo/Squeak can interact with servers supporting XMLRPC.

Of course, the result of this project, will be released with the MIT license.

And the very good new to me is that ESUG selected this project on their "Support your project" program, so they will be helping me financially. Thanks you very much ESUG!

The page to documentation and news about this project is this: XMLRPC Project.

miércoles, abril 07, 2010

Pharo/Squeak Tips - Counting lines of code

I will try to publish here some tips I found useful and that may be of help to others. Of course, some of them, will be very basic, but still may be useful for newbies.

Said that, a thing that I like to know is the approximate lines of code of my projects, the lines of code I write in a period of time, etc. 

To know that you can use the following code:

Being, in this case, 'G1' the two letters that identify all the classes of the project I want to measure.

The output looks like:

Ok, now you can measure how many lines of Smalltalk code you write at day! :)

miércoles, marzo 31, 2010

domingo, enero 03, 2010

Interview on Entrepreneurship Interviews

I was interviewed by Cristian Dorobantescu to his site Entrepreneurship Interviews.

The interview is available on English and Spanish.

Cristian also wrote two intros to the interview: here and here. (Only English).

Thanks Cristian.

Fui entrevistado por Cristian Dorobantescu para su sitio Entrepreneurship Interviews.

La entrevista está disponible en Inglés y Español.

Cristian también escribió dos intros para la entrevista: aquí y aquí. (Sólo en inglés).

Gracias Cristian.