Showing posts with label Tools. Show all posts
Showing posts with label Tools. Show all posts

Thursday, June 16, 2011

Advocating and Opposing Agile for the wrong reasons

Development processes have fundamental problems they address, a philosophy by which they try to solve that problem and methods by which they implement that philosophy.

Problem that Agile solves is ever changing requirements of enterprise applications.

There are those who laugh at Agile for how awfully it would fail in building an air plane (technically speaking, proper agile will not fail, but it’s not at all the correct process to use there) and then go try to make an information system to a galactic government using a formal process and fail even more miserably. (I wanted to say kite, but wanted to emphasize size is not the problem). And this goes vice versa.

Smart project teams chose the right process for the right project. They don’t brand themselves as agile or formal. They are simply good engineers who are good at applying proper solution for the problem at hand right from the process itself.

Tuesday, June 14, 2011

How’s your agile process working for you?

Are you practicing an agile process in your team? Do you still find your team working through the night? Do you still find your software to be rigid, fragile and immobile? Do you still find changes of requirements to be nightmares to the developers? How do you suppose those situations are possible with an Agile process?

Unfortunately, this is the situation in almost all Agile practicing and Agile preaching companies we have around in Sri Lanka. I’ve crossed my paths with quite a few developers from these companies and they all have the same story to tell; agile for them, is the same old cycle, without the documentation and without a designing phase - which makes their development life worse. Non-technical project managers are still around, being called by other names, and to add to the misery, now the customers bring the pressure directly to the developer - because it’s “Agile”.

Is Agile a bad idea? What’s going wrong? Why can’t we make it work? Have you seen the list of names in the Agile manifesto at http://agilemanifesto.org/? Do you think those are the kind of people who would invest on a failing process? Besides, they’ve been practicing and teaching it for over a decade now. So if there’s anything wrong with Agile, it’s more likely in the way we practice it.

Management elements such as deadlines, budgets and sucking up to customers’ aside, we developers too need to change some fundamental ideologies towards development in order to make Agile, well Agile. It is not to say that the operational model doesn’t matter, indeed, that’s what makes Agile possible. Someone should be available to the team to represent the customer, acceptance tests should be automated and made available to the developers when feature requests / changes are made; team should be responding to changes than follow a plan; team should be able focus on getting a working product out instead of documenting etc. etc. which all agile gurus will tell you; but the part they don’t speak about; the part the folks came up with agile manifesto took for granted; the part that is responsible for more than half the agile failures in Sri Lanka is with the developers.

One misconception most developers in Sri Lanka have about Agile development is, it is coding without design or documentation. The other misconception is to think getting software to “work” means getting the functionality out one way or another. The Agile philosophy has very different interpretations for these and is defined with the implied expectation of strong object oriented concepts and design principles of the developers.

By the term “a working product” what’s meant is a functional, testable and maintainable product. Not just functional. If a piece of code provides the functionality required, but only the developer himself could read and understand how it does that, it is not a working product by Agile definitions. Developers are to get the code to work and then refactor till it’s readable, not duplicating code and as simple as it could be but not simpler.
Refactoring to make code readable, non-duplicative, simple and free of unused design complexities and code is a constant practice that developers are expected to follow whenever they code something.

The design focus of Agile is much more implied than explicit. In each iteration, Agile focus on getting a working product to the customer. The team narrows their focus only on the features that are planned for that iteration making it as simple and expressive as possible; yet not losing the overall picture - or at least what exist of it at the time. This practice makes sure that the design never gets complicated than necessary and serves to the problem at hand than expected (but volatile) problems of the future. One of the problems in designing the whole application at once is that the architect is force to foresee requirements of the future; with requirements ever changing and little understanding of them to begin with; this is not a task someone could get 100% right. That’s why Agile promotes this simplistic approach which could accommodate changes more easily.

Unit Tests for agile developers are a design practice than a verification step. Writing the non-compiling unit test is defining the contract for a component. Developer should do due diligence and consider who are the consumers and think how the consumers would want to use a class. Note that the tests are written for the public interface of the class, the tests care only about the functionality exposed through that. Once the developer get the unit tests to pass, he can then go on refactoring his code to be simple, readable and non-duplicative - one step at a time - without worrying about breaking the functionality unknowingly; because the tests are there to guard against that.

The next aspect of design developers ignore in Agile is how exactly the changes are accommodated. Remember that agile designs are as simple as possible meaning that when code is first written, it is not accommodating flexibility for “potential” change. But when the first change comes, the developers should follow the object oriented design principles and separate the changing elements of code from the non-changing elements of code, evolving the design in that part, so that a second change in the same area would be easier and simpler than the first. This practice prevents the code becoming stale over repeated changes, still keeping the code as simple as possible.

As always, developers should keep themselves up to date not only with the new technologies but of the time proven concepts; and the organizations who wish to harness the benefits of any methodology should invest on getting their developers in par with that methodology.


References
Agile Principles, Patterns, and Practices in C# By Robert C. Martin, Micah Martin
Agile Software Development: The Cooperative Game, Second Edition By Alistair Cockburn
Test-Driven Development By Example By Kent Beck

Wednesday, April 13, 2011

The $10 extension tube is worth the money

It's worth for $10, compared to Nikon 105mm f/2.8G ED-IF AF-S VR Micro-Nikkor Lens for $1000.. (Heck, it was less than $800 last year.. the price go up as if it's made of gold..)

Ant
I attached the 50mm f/1.8D to it's end (It was $107 when I bought it in 2008, now it's $160.. insane!). You'll need a lens with an aperture ring (not a G) or the lens would be stuck at the lowest aperture and you won't be able to get any light in. Also, a zoom would be a bad idea due to reasons I point below. 50mm f/1.4D or the 85mm f/1.4D would be slightly better, but the 50mm f/1.8D is the most cost effective.

Ant

It's really really difficult to capture something that moves with this extension tube on, and you almost always need strobes to light the subjects. The thing is, with this thing attached, the effective focal length is probably something like 150~160mm and effective aperture at F/1.8 at the lens is probably around F/6, I don't know.. do your math.. anyhow, the DOF is razor thin at F/1.8, and at F/8 and up when you start to get a decent DOF (by decent I mean something like below, the above shots were at F/16 and up) You virtually can't see the subject through the view finder without holding a flashlight at the subject..

(I shot all these at ISO 100, 1/200s and SB600 at full power  from side and on camera flash at full power)

And it only focus to like couple of inches to the front of the lens, you can't do much other than shooting small insects and flowers..

I focus by moving the camera back and forth than moving the focus ring as that shifts the frame dramatically.

Hibiscus

So, you get my point right? It's not an alternative for a $1000 solution at $10.. but, within a pretty limited scope, you can achieve some amazing results with it.

I bought it on ebay, but here's the amazon link.

There are much expensive tubes with auto focus. But, all you get for that extra money is auto focus, proper metering and aperture reported on your exif. But the limitations in DOF and focus distance would still be there.. At that point, you might just as well throw some cash on a cheap macro lens.

Monday, June 28, 2010

Kubuntu/Ubuntu: "hda-intel: spurious response" on Intel Atom and D945GCLF

If you are going to install Ubuntu / Kubuntu on an Intel Atom based computer with the D945 based chipset; be aware that there is a bug in the linux kernal which leads to printing of following line continuously on screen, preventing you from logging-in. Sometimes when you reset the machine, it goes away but not at most of the times.

       hda-intel: spurious response 0x0:0x0, last cmd=0x000000       

The error looks as if it's from the sound driver; but the workaround for it is in the graphics department :)

In the BIOS setup, Video Settings, Set the IGD Aperture size to 256MB (The default is 128MB; in which the above error occur).

P. S. You can get to BIOS setup by pressing F1 key at computer startup.

Sunday, June 27, 2010

Getting ZTE MF100 from Mobitel Lanka to work on Kubuntu 10.04

It's much easier than you would imagine. You need not use "wvdial"; the KNetworkManager works like a charm. This should work the same for other plug and play 3G modems by Sri Lanka Mobitel and Dialog too.

First; plug in your MF100. Kubuntu would auto detect the modem and show a mobile icon in the system tray. If you are already connected to a network, the icon would appear in the context menu of the KNetworkManager like below.


Click on "Mobile Broadband - Create network connection" to get the following dialog


Fill the information as follows:

Connection name: any name
Connect automatically: check "Connect automatically" if you wish to establish the connection automatically when you plug the modem

In the Mobile Broadband tab:

Number: *99#
User name: anything but blank
Password: anything but blank
APN: "mobitel3g" (without quotes) for Mobitel. I think for Dialog it's www.dialogsl.com please verify.
Type: Any (try "Prefer 3G" or "3G UMTS/HSPA" if you have better 3G reception

Leave other fields as they are.

In the PPP tab:

Check "PAP" under Authentication and de-select every other option.

Click OK to save settings and connect to the internet, and if you did not use auto connect; you'll have to click the icon in the system tray to activate the connection.

It's that simple! :)

Saturday, June 19, 2010

Kubuntu 10.04 LTS

I've used Linux some years ago. In the days of Red Hat 6.4 and then 7.1. My career in .NET development and probably some frustrations with compatibility issues with my hardware at that time, made me switch back to Windows and never look back. I've since used and promoted Windows and had perceived all Linux compilations to be at the same level as Red Hat 6.4.

I did downloaded Fedora 11 in 2008 or so due to frustrations over Windows Vista but somehow never installed it. When Windows 7 came along, I thought Windows days are here to stay. But Janaka at office kept talking about Ubuntu once in a while and that made me want to give it a shot.

I received my CD of Kubuntu 10.04 LTS from good people at Canonical couple of days ago. I installed it on a VM on the same day and was impressed with the user experience. Today, I installed it on my father's laptop and boy! I'm loving it.

So, those of you who are using pirated copies of windows making the excuse that Linux is not in par... Take another look at Kubuntu 10.04. It's way better looking and faster than Windows 7 and is guilt free!

The DigiKam application is a feature rich image editing tool at par with Nikon's Capture NX. Open Office has come a long way to be a good office suite and Google Chrome lives by the name of Chromium in the Linux world. I haven't looked at any of the IDEs yet, but I'm sure there are some that could compete with Microsoft's Visual Studio.

So, this is me, a pro-microsoftee asking you to try out Kubuntu. Believe me, it's really nice.

Monday, May 31, 2010

A pocket camera!


Canon S90


I've had the Nikon D80 for more than two years now; even though I lust the D3s, I haven't really outgrown the D80 yet. The only drawback with the D80 however is that, with my regular 18-200 VR Nikkor attached, it's not that portable. It doesn't fit in my pocket and I'm unable to keep a low profile. I've been asked whether I'm a reporter more than I'd have liked to.

Then there are instances when I really don't want to hang couple of kilograms around my neck. Or, when I don't want to change the Nikkor 70-300mm VR just to take a single wide angle shot.

So for 101 excuses as such to treat myself to a new toy, I bought this Canon PowerShot S90.

I've been toying with it for few minutes so far and am loving it already. The two control rings in the front and the back are really pro features that even the entry level dSLRs of Canon does not have (D80, being Nikon, has them :) ). The F/2 lens coupled with 3200 ISO really give great results in low light. It shoots real RAW too on it's "biggest in class" 10MP CCD sensor. And, as a pleasant surprise, it's Made in Japan!! How many Japanese cameras do we get these days, eh?

Later this week; I will compare it's performance with the D80. And post the comparison results. I fear for the D80 that this small culprit would out perform it in low light conditions. But, otherwise, D80 has nothing to fear. :)

Friday, May 28, 2010

Update: Is there something wrong in google app hosting?

Found out the cause; If you are using SLT ADSL; you cannot reach any of the google hosted contents using a custom domain name. SLT as usual; has screwed it up.

May be they are taking advise from China and are in the process of blocking out Google.. or whatever. In all accounts.. fuck SLT; they seem to even block the Google's DNS server IPs.. I was using 8.8.8.8 and 8.8.4.4 as my DNS settings and I was experiencing a lot of failures in DNS resolving. Didn't suspect SLT. I just switched to SLT DNS servers and lot of things got corrected. But who knows.. may be they are monitoring my internet usage too.

You could use a custom proxy for now to access all those unreachable blogs with custom domains.

But long term... complain to SLT. Make demands. Or let's just switch ISPs.. Dialog?

Wednesday, May 26, 2010

Did you format your memory card?

I did; Last night.

I had given the camera to Buddhi for him to use as an extra at a wedding shoot. He didn't had an assistant so he ended up using only his camera. Halfway through he ran out of storage in his card and swap the SD cards with mine.

Yesterday; I collected my camera, and was putting it and the lenses in the desiccator when I got the urge to shoot few shots; I turned the camera on, and it said the memory card needs formatting; So I did format it, shot some random photos and placed it in the desiccator.

Then I go switch on the laptop; in a while, in gtalk, Buddhi goes


buddhi  
oh fuck
  the photos
  are in the disk
11:00 PM hope you didn't format any :)
 me: the one you gave me?
 buddhi: yup
 me: in my cam??
 buddhi: yup
 me: fuck me sideways
 buddhi: damn

So we start the search for recovery tools... Most tools were commercial products; price ranging from $10 to $400 or so.. We downloaded a few trials and did test runs on spare memory cards. And then Budhhi found this: http://dmitrybrant.com/diskdigger

It's a free life-saver data-recovery tool developed by Dmitry Brant.


So; we finished our adventure later...



me: guess i'll hit the bed now
  :)
  usual time
  :)
 buddhi: :
  :)
  so there seems to be a curse
  not letting us sleep early
2:05 AM me: yeah
 buddhi: :)

Wednesday, May 12, 2010

Why Google search is still the best

I use GhostDoc for code documentation.

Today, I was working on a different machine and found that it doesn't have ghost doc installed. I opened up a browser and typed ghostdoc in the search box and hit enter. For my surprise, I couldn't find the SubMain site on the first page of search results. Puzzled; I looked what's wrong to find out that the search engine was Bing...

Open up google and search GhostDoc and the first hit is the correct download site.

Search Google for "Mahasen" and the first hit is this blog.. it even suggest "Mahasen Bandara"; Bing doesn't fetch this seven year old blog till the 9th page; But it fetches my  two weeks old site photoweaver.net in the first page.

I don't see myself using Bing anytime sooner...

Monday, May 10, 2010

Wordpress acts Linux (or worse?)

Our team decided to start a group blog to write about tech stuff. After spending at least couple of hours deciding on the domain name (I'll refrain from posting the name now as it's not in proper shape yet) we spent only a few minutes in deciding on the host (blogger/wordpress) to finally deciding to use wordpress.

If you own a blogger blog, you know that Google offer a domain name and Google Apps (docs, email, sites, chat and so much more) for your blog for just $10 per month. If you already have a domain name, everything above is free. Yes, FREE.

Wordpress on the other hand is charging 9.97$ for using a custom domain name (No. That's not for the domain name. That's just for using a custom domain name on the blog) But of cause they offer the domain name for a subsidized price of $5. What do they offer for 9.97$? Just the blog of cause. No email, no nothing. Just the blog. You have control over DNS so, if you do have an email hosting account somewhere, you could add a MX record.

How do you customize your Google profile in blogger? You just go there and change things right? It's all intuitive. Wordpress, on the other hand haven't heard of the concept of intuitiveness. It's all a mess there.

So what's with Linux you ask? it's like this. Linux is secure, powerful and so on; but the effort and the learning curve it takes a beginner to accomplish a very common task like installing a printer is quite high. So it is in Wordpress; but worse; this is a paid service.

Thursday, December 04, 2008

Nokia E66

I bought a Nokia E66! And am composing and posting this entry (which also happens to be my 400th post!) using that! So far I love all the features. I'd have liked it to be a litte bit faster though.
GPS works great with google maps. And the productivity tools are nice as well. I remember the time I bought phones for their cameras..
I was eyeing the E71 with the qwerty key pad. But decided for the slider at the last moment.
I'll be uploading some mobile photographs in days to come.. So stay tuned..

Thursday, July 31, 2008

AF-S DX VR Zoom-NIKKOR 18-200mm f/3.5-5.6G IF-ED

I had a Sigma 17-70mm f2.8-4.5 DC Macro HSM as my "mostly on" lens. It was a sharp and wonderfully build lens which could do macro as well. I loved it. But I wanted more range. I was looking at the 18-200mm Nikkor even as my first lens, but decided against it as I felt it's too expensive.

But now, since I feel I have some money to spare on my hobby, I decided to go for a 18-200mm Nikkor. But didn't want to keep the 17-70 too as it has only a subset of the range of 18-200.. So I put it for sale in Craigslist and gave it away to Steve.

Yesterday, I received the 18-200mm. Needless to say, I'm really excited about it and am loving it.

But one small problem! It does not have serious macro capability like the 17-70 sigma!!

Now you all know that I like macro... So this means only one thing. I'm going to need a dedicated macro lens as well. :D

BTW, did I write that I also intend to buy the Nikkor 50mm f/1.8 prime?

Sunday, April 27, 2008

Prabath's podcast

Prabath recently did a podcast on OpenId integration of WSO2 Identity Solution.

According to podcast page "Prabath Siriwardene is a member of the WSO2 Identity Solution team and is currently working on integrating OpenID support. He has over 3 years industry experience in Microsoft .NET technologies."

But take my word, he's one heck of a techie than that.

Saturday, February 23, 2008

What I should do


Right now is to clean this mess up. See those boxes? Did you notice the Amazon.com logo on them? Yeah, that's right, a quite a lot of purchasing from Amazon during past three months. The problem is, I didn't clean them from my living room. The problem with living alone is that there's no one to care about how tidy you keep you place. And as long as you can live with it - that's all it takes. But now it has come to a point where I no longer can. During this weekend, I'd make this place as clean as I can. And shall post a photo on Sunday.


And that is what's sitting on my desk right now. Not the dumb looking HP 6910p I was given from the office. Although way less expensive than the HP, this Dell Inspiron 1525, 1.66GHz 667MHz FSB Intel Core 2 Duo, 2GB RAM, 128MB on controller and 256MB shared video memory, 120GB HDD, 15.4" HD display (which shows far better and accurate colours than the HP), 2MP inbuilt webcam, 2 mics (!), 8 in 1 card reader, DVD writer running Windows Vista Home Premium is so cute and does a whole lot more.

Hmm.. it's 12.30 PM and I haven't had breakfast.

Friday, February 08, 2008

MetaWater Looking Good

The settings page has one-time configuration settings for the watermarks.

The main UI allows to browse for the images and preview them with/without the watermarks


Images look the way I want when saved.

Future: I'd add resizing of the saved images and batch processing on folders

Tuesday, February 05, 2008

MetaWater CTP

No, it's not the photo, It's the watermarks.

I've been spending few hours last weekend in writing a small application to write exif data and copy right information on the photo. Right now it works fine. I named it MetaWater :P. Right now it's being beta tested by close friends.

I can customize the exif data that's written, the copyright message, font sizes, colours and the locations from a config file. Font size is proportionate to a base image size - meaning it sizes with different image sizes.

I'd do some touch ups, add batch processing and other things I feel like - when I feel like and upload the code for who's interested.

May be there are other tools doing the same out there, I searched for couple of weeks but couldn't find one (free I mean).

Wednesday, January 30, 2008

Some external storage


I bought a Seagate FreeAgent 500GB 7200RPM 3.5" hard disk drive.
My laptop crashed couple of weeks back and I lost some of my early photos from the D80 along with some other personal documents and source code. So I decided to get a decent backup drive. I was looking for more GBs for money than the size or the looks. This I think is worth at $125.
I usually shop at Amazon but this one, I bought from NewEgg. It's quite fast and I don't have anything to complain about it so far.

Friday, December 28, 2007

It's on its way!

Right now a Nikon D80 is on its way to my apartment!!

:-S But the lens (Nikon 70-300mm f/4.5-5.6G ED-IF AF-S VR Zoom Nikkor) is getting delayed... Amazon says they'd ship it as soon as it becomes available... So I'm going to have to admire the looks of the D80 for few days before I can admire its output.

I also bought a Nikon branded backpack for the camera together with an extra Li-Ion battery and a Sandisk Extreme III 2GB SD memory card.

I'm going to miss a macro lens for a while... but hopefully not for long.

Thursday, June 28, 2007

Google calendar SMS support for Dialog and Celtel

Perhaps it's old news for most of you, but Google calendar now supports SMS alerts for Dialog and Celtel subscribers in Sri Lanka. I find it really cool. I can synchronize my outlook calendar in to Google calendar and have it send me SMSs reminders.

More than for me, this should be really useful for those busy people on the move. try it out at http://www.google.com/calendar/render