So my mobile phone provider says I can eat as much data as I like on the current tariff; the truth of the matter is that I don’t really surf the web whilst I am out and about. At the end of my billing period I have tonnes of unused bandwidth. Luckily I have managed to download a USB tethering utility, PdaNet, that allows me to use my phone as a wi-fi hotspot via USB cable. Sweet. Let the feasting begin…
15.3.11
13.3.11
Fleet Management Platform codenamed Z-Track now in development
Zainco Ventures is developing a fleet management and asset tracking platform, Z-track , aimed at providing deep integration with back office systems. The first beta release is planned for Q3 2011.
Chisamba order confirmed
After a difficult trading period in February, business is definitely picking up. Zainco Ventures has been engaged again by the Food Reserve Agency to help with the movement of 300 metric tonnes of vital grain stocks. This is a ringing endorsement of the services provided by the company. Last year Zainco Ventures helped the Zambian government to move over 4000 metric tonnes of grain to safe storage.
With a forecast yield of 2.8 million metric tonnes in the 2010/11 agriculture season, we will definitely be busy.
Reviewing the £100 Android tablet
There is a tablet for almost any budget. My tablet arrived 1 week ago and since then I have been evaluating the wowPad.
I have successfully upgraded the firmware using a download from the internet. Everything works as it should.
The camera is low spec, but this is to be expected for a budget tablet.
Overall – I am quite impressed with device. Would I buy more units? Definitely yes!
8.2.11
Description Resource Path Location Type error: No resource identifier found for attribute 'onClick' in package 'android' main.xml /HelloFieldroid/res/layout line 9 Android AAPT Problem
Appears there is a problem with using events declaratively, so have ended up implementing the event handler in code
An SDK Target must be specified when you try to create a new Android Project in Eclipse
This is caused by the SDK path not being set in the Eclipse IDE. This is resolved by selecting Window—>Preferences—>Android and enter the path to your Android SDK, then hit OK. You will see a list of all your Android Platforms as shown below:
1: <?xml version="1.0" encoding="utf-8"?>
2: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3: android:orientation="vertical" android:layout_width="fill_parent"
4: android:layout_height="fill_parent">
5: <TextView android:layout_width="fill_parent"
6: android:layout_height="wrap_content" android:text="@string/hello" />
7: <EditText android:id="@+id/editText1" android:layout_height="wrap_content"
8: android:layout_width="fill_parent" android:autoText="false"></EditText>
9: <Button android:layout_height="wrap_content"
10: android:layout_width="wrap_content" android:id="@+id/button1"
11: android:text="save note"
12: android:onClick="saveNote"
13: ></Button>
14: </LinearLayout>
Monodroid vs Eclispe with ADT
For 400USD looks like Monodroid is definitely an expensive way for .NET developers to join the Android game. Using Eclipse and the Android Development Toolkit(ADT) an experienced .NET developer will be productive in no time. I downloaded the tools 1st thing in the morning and by midday I had a simple data driven application with the appropriate test coverage.
The Eclipse tool support for Android is unbeatable. You get design surfaces, inbuilt editors for resource files and the comfort that these tools are mature and bug free. The other side effect is that you end up learning Java.
Viva free tools!
5.2.11
4.2.11
Monodroid resource generation fails
------ Rebuild All started: Project: Com.Fieldroid.Search, Configuration: Debug Any CPU ------
C:\Program Files\MSBuild\Novell\Novell.MonoDroid.Common.targets(281,2): error MSB6006: "aresgen.exe" exited with code 1.
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Another Successful release... times are good
We STP Heroes J - YES, We have done it AGAIN! J Another milestone success!!
We hear from Business that Sprint 13 Release in PROD is doing great!
Thanks to all for all the hard work on this one other major milestone release that has gone LIVE this morning.
Celebrations… we are just shot of balloons – that is all …J
I have brought in a little Sainsbury's Sweet shop, yes really!!!!!
Keep up the nice work J
Grab the sweets before they vanish. I am running a TPL Parallel LINQ query to eat all sweets….
// A little celeberation in my style… ;) with C#
// Sundar: Start diving into the sweets… use TPL so I can eat ALL, FAST… J
// But of course, I am running an i7 980X 12 MB cache, with Six-cores… hyper-threaded to 12 virtual cores, mind you…. wohoooo……..
Parallel.ForEach ( sweetsOnMyDesk, oneSweet =>
{
// The more sweets I eat here, the greater the speed compared to if I used a non-parallel foreach loop for my eating process J
var sweet = CeleberationsHelperUtils.UnPackSweet(oneSweet);
this.Eat(sweet); // I really wanted to say Me.Eat(…) but that would sound like VB.NET ;) Grrrrrrr……… I am "C# house", baby! J
}
// Wow!! what a sweet C# lambda expression I have got there – don't you love it? J
);
// Execution done!
// Let others know I am eating… very fast… using Parallel extensions ;)
Console.WriteLine("Sundar has completed eating ALL (?) sweets. Press any key to let me continue to work on Sprint 14 J.");
11.1.11
6.11.10
Software archaeology
A recent addition to our portfolio of problems is a widely successful application that has been developed by business users to process commission payments.
The application has largely been built by the client over a period of time and continues to be useful to this day. A change in the operational landscape means that this software won’t scale beyond its current functionality and processing capacity. An upgrade to a full-scale enterprise system is a must rather than a luxury.
As is the case with such organic systems, the entire concepts of the domain are embedded in functions with lines in excess of 1000. You start off following the code and break pointing every significant statement, and before you know it you have lost your bearings. The questions then becomes - “what was the intention of the civilization that built this technology”; with curiously named variables and loops nested to a depth of 5+ deciphering the intention is non-trivial. One has to methodically piece together all the inputs, configuration data and perhaps chant some voodoo spells to get the system to work.
UML Interaction diagrams seem to be a powerful tool in understanding the runtime intention of legacy software, but the subtlety contained in conditional statements can be quite problematic to document. It is tempting to ignore the body of knowledge embodied in the legacy application, but doing so makes the reverse and forward engineering unnecessarily complex. So like the archaeologist sifting through the fossilised remains of a once flourishing civilization, I crack open the IDE and good old NotePad in an attempt to gain understanding.