Jan072007

How the workplace impacts productivity for developers

When analyzing developers performance and how outside factors influence their productivity, there’s little to no reference regarding the work environment, not particularly a developer’s relation to their coleagues, but mostly to the physical location on which their work is being undertaken.

In Argentina and most countries with at least some offshore culture, most big software factories believe that productivity increase is the sole result of salary increases, neglecting how important an office location / disposition is to make a substantial difference. It is very common to find hundreds of developers working side by side on a flat table, with little to no independence among each other.

Continue Reading »



Dec132006

Limiting the associated models returned with CakePHP

Tom OReilly produced a handy solution on the bakery (Keeping bindModel and unbindModel out of your Controllers) to allow to overcome performance issues when querying a model that has a lot of associations with other models. While his solutions prooves useful, I wanted to change it mainly because I didn’t want to have to re-define the way associations are defined on Cake.

So I’ve built a function hooked to AppModel to allow to define what associated models you want to get when querying a model. If you don’t use the function, you get CakePHP’s usual result. If you call it with no parameters, you only get the model you are querying (no associated models.) Finally, you define your relations the normal way.

I’ve produced a tutorial on the bakery that illustrates this: An improvement to unbindModel on model side. It is still pending publication so if you get Article Invalid be patient and try tomorrow :) The following is an example of how you would use it to query the Post model and only get the related author, eventhough the Post model may have associations to other models (such as Category, Comment, etc.)

$this->Post->expects(array('Author'));

$result = $this->Post->findAll();


Dec102006

Something to consider when saving HABTM records in CakePHP

Just the other day I was in the process of saving an HABTM (Have And Belongs To Many) field with CakePHP, specifically for saving the relations between a model Project and another model Category. I first had to do a small extension to the helper since Category was also a n-depth level tree, so I’ve used findAllThreaded on the Category model to get the tree and build a nice tree of checkboxes. All good there.

I was then building the screen that would let the user check these checkboxes and save the relations. Now, since the project was already saved and all I had to do in that screen was present the user with the checkboxes, I figured I didn’t need to set any project details when saving, other than the ID of the project that I was relating to. Big mistake.

Continue Reading »



Nov292006

CakePHP Web Service native support

Today an interesting discussion went on CakePHP Google Group regarding the native support for web services Cake offers. After that a couple of articles got written on different blogs (they are still awaiting authorization to be published on the bakery) and are available at:

Quick and Dirty getting your CakePHP to REST: a short article showing how to offer a REST service from CakePHP.

Using CakePHP’s Native Web Service Support: Chris Hartjes’ thorough explanation regarding how to build a web service using CakePHP native support for web services.

BAKE ON!



Nov282006

New articles on the Bakery

I just got published a couple of articles regarding CakePHP on the bakery. Check them out:

Adding friendly URLs to The Cake Blog Tutorial: On this tutorial we’ll learn how to modify The Cake Blog Tutorial to allow friendly URLs when accessing posts.

PayPal Direct Payment API Component: Useful component that provides a wrapper for PayPal’s Direct Payment API, allowing any cake based application to accept payments via Direct Payment (processing credit cards and payments without leaving your website) and Express Checkout (allowing users to use their PayPal account to pay).

BAKE ON



Oct012006

Understanding LOST sequence of numbers

Anyone who’s a fan of LOST is familiar with a sequence of numbers: 4 8 15 16 23 42. These are the numbers that almost connect all strange things in the series. During the second season of LOST it was revealed that the numbers are the code that must be entered into the computer located inside The Swan every 108 minutes (by the way 4 + 8 + 15 + 16 + 23 + 42 = 108). Entering the numbers resets the countdown timer to 108 minutes. If an individual does not push the button in time, the numbers flip to a series of glyphs . While the numeric sequence is flipping into these icons, an individual can still finish typing in the numbers, press execute, and return the counter to 108 minutes. Where do these numbers come from? In mathematics, there’s something known as the Shaw-Basho Polynomial. It’s an equation that reads:

Continue Reading »



Aug252006

Argentina on the Basketball World Championship

Argentina has started the basketball world championship the best way possible. They finished first in their zone with a perfect 5-0 record, and are currently waiting to play New Zealand on the first match of the play offs this Friday.

Yesterday, Carlos Delfino led a fourth quarter rally by Argentina as they recovered from a five point deficit at the end of the third period to take a 83-79 win over Serbia & Montenegro. Argentina, last Olympic champions, are currently ranked the 3rd team on the FIBA ranking, and four years after a close loss in the finale, Argentina’s golden generation is looking for the title that could have been theirs long ago.

New Zealand, a strong yet not very difficult team, is going to be the first step in Argentina’s way to the finals. Two teams appear to be strong contendents to Argentina’s champisonship intentions: United States, and the very strong Spanish team.



Jun282006

Loose Change 2nd Edition, a documentary about 9/11

Thanks to Diego, I have just finished watching a very interesting documentary called Loose Change, produced by Korey Rowe, Dylan Avery, and Jason Bermas. It certainly raises some serious questions about the real facts of what happend before, during, and after September 11, 2001. I strongly recommend you take a look, even if you are not from the United States.

Continue Reading »



Jun232006

The danger of MBA types running software development firms

Reading Joel’s blog, I picked up on something he said that got me thinking: “Watching non-programmers trying to run software companies is like watching someone who doesn’t know how to surf trying to surf [...] The cult of the MBA likes to believe that you can run organizations that do things that you don’t understand.”

Through my own working experience, I find this statement to be absolutely true. A lot of MBA types go in to great MBA schools, get their praised degrees, and come out thinking: “Ok, now on to conquer the world… Which company should I be running?” When in fact they should be thinking something like: “What can I really do to manage a company and not sink it down?” There are tons of examples in the world of this kind of “executives as a life style” type of people who believe just because they’ve got an MBA they can understand anything that is put on their desk. Well, they can’t.

Continue Reading »



Jun072006

First Google Analytics results for Java Users Group Argentina

After some short setting up (about two minutes per site), I’ve added Google Analytics code to start getting some statistics to these sites: CRICAVA Technologies corporate site, CRICAVA Technologies Open Source, CRICAVA Offshore Development Portfolio and Java Users Group Argentina. I must say I’m quite happy with the ammount of data Analytics is starting to provide after a couple of days. Eventhough you have to get used to the way they organized the information (I see a lot of UI theory work there), you can get valuable conclusions that are hard to obtain with any standard statistics package. Let’s see some of those.

Continue Reading »



 
Powered by Wordpress and MySQL. Clauz's design for by Cricava