Tools, Specialists and Faith

Quote from Michael Nygard - The Future of Software Development”:

"Speaking of languages, many of the problems we face today cannot be solved inside a single language or application.
The behavior of a web site today cannot be adequately explained or reasoned about just by examining the application
code. Instead, a site picks up attributes of behavior from a multitude of sources: application code, web server configuration,
 edge caching servers, data grid servers, offline or asynchronous processing, machine learning elements, active network
devices (such as application firewalls), and data stores. "Programming" as we would describe it today--coding application
behavior in a request handler--defines a diminishing portion of the behavior. We lack tools or languages to express and
reason about these distributed, extended, fragmented systems. Consequently, it is difficult to predict the functionality,
performance, capacity, scalability, and availability of these systems."

I couldn’t agree more with this…

Comments 7 Comments - Read the rest of this entry »

So, just when exactly are the T-800s and the WALL-Es going to be running around ?

(hopefully for us, the T-800s no time soon)

I remember taking a robotics course back during my studies in the early 2000’s, and the autonomous specific-purpose line-following 4-wheeled Number 5 ancestor that resulted from putting together a PCB, a servo, some amateur welding, some sloppy microprogramming and a lot of enthusiasm, was quite far away from David.

Nevertheless, the strong willed sheldons of the world continue to close the gap between science fiction and reality, and every once in a while, some results popup which certainly raise my eyebrows.

I recently stumbled upon the “Space & Robots” lecture given at the singularity university by NASA astronaut Dan Barry.

The entire presentation does a great job on briefly discussing adaptiveness, robotics and A.I., but what caught my eye were the various examples of current-day efforts in robotics, and specially these two:

Tags: ,

Comments 3 Comments - Read the rest of this entry »

Somehow, I am not very good at pretending I don’t know anything about computers, and I recently ended up building a essentially-simple but constraint-complex portfolio site.

Hoping that it could be useful for anybody else that frequently finds themselves in a “friend / relative / XXX” who is a “computer guy / gal “ kind of role, and who is expected to easily and quickly solve any computer related task, here goes one possible quick and simple solution for building the aforementioned portfolio site.

Building a portfolio website is certainly not the most complex of I.T. tasks nowadays, however, the constraints surrounding my business case did make it quite challenging:

  • My knowledge on Web Design and Website construction has not advanced since the early 00’s (CSS effects, Flash and HTML5 remain quite a mystery to me)
  • The total cost of construction / hosting….and anything else, must be 0
  • No ugly side effects of free hosting (such as popups) are allowed
  • The portfolio must allow easy album management: uploading, coding and any other technical aspects are to remain transparent for the end user
Tags: , ,

Comments 2 Comments - Read the rest of this entry »

Although it offers much more than GPS data logging, the eTrex Venture HC is a good choice for GPS data logging needs.

Although cheaper and more limited (functionality wise) models can be found, the eTrex Venture HC is great value for money.

The 10.000 point logging capacity, excellent reception and 14 hour battery life, and the Garmin Mac-friendly software utilities, were enough to convince me.

With Road Trip for example, it is possible to export recorded data in GPX format.

Tags:

Comments No Comments

GPX is a standard XML format used for describing GPS data.

One possible source for such information is, for example, a GPS data logger.

The path from GPX to Google Maps can be completed in 3 simple steps:

Tags: , , ,

Comments 5 Comments - Read the rest of this entry »

Almost one year after jumping into the mac world, these are my must-have (free) apps for Mac OS X:


Connect360

ffmpegx

DivX for MAC

MPEG Streamclip

vlc

Flip4Mac

Cyberduck

TextWrangler

GIMP

MAMP

Exif Viewer

Geotagger

gpsphotolinker

XCode

NeoOffice

Little Snitch

Little Snitch

UnRarX

UnRarX

ntfs3g

Tags: , , , , , , , , , , , , , , , , , , , ,

Comments 5 Comments - Read the rest of this entry »

Just as easy as resizing images with mogrify

1. Download and install GIMP

2. Open Image

Original Image

3. Filters -> Light and Shadow -> Drop Shadow

Image with Shadow

Tags: ,

Comments 95 Comments

Couldn’t be easier!

Simply:

1. Install ImageMagick

2. Setup the needed environment variables:

export MAGICK_HOME="/opt/local/var/ImageMagick-6.5.3"
export PATH="/opt/local/var/ImageMagick-6.5.3/bin:$PATH"
export DYLD_LIBRARY_PATH="/opt/local/var/ImageMagick-6.5.3/lib"

3. Resize:

bash-3.2$ /opt/local/bin/mogrify -resize 525x700 image.jpg

(NOTE: Overwrites image (does not create a new image))

Tags: , ,

Comments 2 Comments

If you like good, easy-reading and free knowledge like me, you will surely find taking a look at 97 Things Every Software Architect Should Know worthwhile.

Every software project is different, and has it’s own and unique needs, and as Edward Garson points out in Context is King:

“I feel there is a certain irony in trying to impart something about architectural ideals, when the very premise I wish to begin with is that effectively there are no ideals. If this is indeed the case, then surely there is nothing to write, I am a contradiction and by doing this I run the risk of the universe imploding or something like that.”

However:

“But alas, ceci n’est pas une pipe.”

I also believe that software engineering projects do share some common issues (or at least I hope for this, any morale booster is welcomed: software engineering is such a challenging discipline that despair is frequent !).

“97 Things” points out some topics and solutions that should probably be applicable for any software engineering endeavor.

There are some big names and many years of experience behind these tidbits of wisdom, and in my short career so far, I have found many of the described issues in “97 Things” in past and present projects.

Because 97 things are too much for my short term memory, these are the top 3 things to know that I strive to remember:

Tags: , ,

Comments 2 Comments - Read the rest of this entry »

Michael Nygard is a professional programmer and architect with over 15 years experience, and also the author of “Release It! Design and Deploy Production-Ready Software”.

Having encountered this book on many “Top Books a Software Engineer Must Read” lists, I thought i’d give it a try.

This will not be a in-depth review, as there are already many out there, but rather a summary of ideas that will stay with me after this first read.

Michael’s book is all about the problematics related to successfully executing software systems in production, and although it is centered on high availability and large scale distributed systems, many of the discussed topics can be applied to any software system.

The book covers all the possible elements and layers of software engineering I can think of: management, delivery, testing, design, coding…, front-end, back-end, deployment, etc., and rather than trying to answer all the questions, it tries to point out the good direction in which to go.

This is certainly a book that I expect to come back to in the future, as the ideas and scenarios that will stay with me after this first read are only the ones which I can relate to, because I have encountered them in current and past projects.

Tags: ,

Comments 3 Comments - Read the rest of this entry »