Wednesday, February 24, 2010
Firstly, if you are reading this blog entry you are likely to be privileged. Although they now have electricity and water, this was not the case for many years. Furthermore, in the really poor shacks, there is very little space, no water and often just a single light. The shacks are connected to one another, and there are small passages through which people can walk (you sometimes have to bend down, and squeeze aside if someone is walking the opposite way). Nonetheless, there is an atmosphere of positivity and community in the township.
With South-Africa having one of the largest gaps between rich and poor people, it was interesting to see that this is also evident in the Township. We visited a hosting establishment which provides light meals, drinks entertainment and a B&B facility. We heard the tough time which the owner had experienced, which gave us an understanding of the challenges and constraints these businesses have to survive.
We had a nice lunch, and some interesting discussions. Overall the day was very meaningful. I have developed a lot of respect for these people who have managed to build successful businesses in this environment.
We should all do our bit to understand differences and do something to help uplift and support the development of these communities. You are only limited by your imagination and the opportunities are out there!
Wednesday, May 20, 2009
Master Data Management (MDM) is a set of disciplines, processes, tools, and solutions used to ensure consistency, completeness, control and accuracy of Master Data. MDM impacts the creation, capturing, storage, synchronization and maintenance of the organization’s Master Data for all stakeholders across the organization. The Master Data is defined as the cure business and reference data (structured or unstructured) and may include items such as: products, customers, vendors, data warehouse information, and content repositories. MDM spans across different applications, systems and databases, business processes, functional areas, geographies and channels.
1. Fisher T., (MDM)—creating a single, unified view of an organization, cio.com, 30 April 2007
2. Druker D., Rich R., Master Data Management, ibmdatabasemag.com, July/2005.
3. Wikipedia, MDM, Last accessed 19 May 2009.
4. evancarmichael.com, The Importance of Master Data Management, Last accessed 19 May 2009.
5. Powell Media LLC. (2006). Master Data Management: Creating a single view of the business, 2006.
6. http://www.mdmsource.com/master-data-management-defined.html, May 2009:
a. Jim Whyte, Dow Chemical
c. Colin White, BI Research
d. Dan Power, Hub Solution Designs
e. Steve Delien, Accenture
7. Smith A.M. (Ph.D), Enterprise Information Overview, ewsolutions.com, November 2008.
Meta-Data is a structured definition or description of data. It describes information such as content, quality, condition that characterizes a set of measurements or records. It may include individual datum, content item, or a collection of data including multiple content items and hierarchical levels. A database schema is a good example of metadata which describes for each data-field - its size, name, type, etc. Metadata may also describe the environment of the data which may include: how recent the data is; where it originates from, what the data is used for etc.
1. Dictionary.com, Metadata, Last accessed May 2009.
2. The university of Queensland, An Introduction to Metadata, http://www.library.uq.edu.au/ iad/ctmeta4.html, 29 July 2003.
3. Wekepedia.org, Metadata, Last accessed May 2009.
4. Health informatics in New Zeland, Metadata Repositories in Health Care, http://www.hinz.org.nz/journal-pdf/995, Last accessed May 2009.
5. Climate Variability And Predictability, CLIVAR Data Policy, http://www.clivar.org/data/
data_policy.php, Last accessed May 2009.
6. Smith A.M. (Ph.D), Enterprise Information Overview, ewsolutions.com, November 2008.
Monday, February 18, 2008
Wednesday, September 19, 2007
' Created by Gabriel Marcan (C) 2007
Public doList(10) As SavedRange
Public tempDo As SavedRange
Private isDo As Boolean
Public did As Boolean
Public bIndex As Integer
Public Const bLimit = 30
Public Type SavedRange
Val As Variant
isDo As Boolean
RngName As String
WsName As String
WbName As String
Private Function ArraysEqual(a As Variant, b As Variant)
On Error GoTo ReturnFalse
Dim i As Integer
Dim j As Integer
If IsArray(a) And IsArray(b) Then
For i = 1 To UBound(a, 1)
For j = 1 To UBound(b, 2)
If Not CStr(a(i, j)) = CStr(b(i, j)) Then GoTo ReturnFalse
ArraysEqual = True
If a = b Then ArraysEqual = True
ArraysEqual = False
On Error GoTo NoDo
If isDo Then MoveIndex
If IsEmpty(doList(bIndex).Val) Then doList(bIndex).Val = ""
did = True
Dim rg As Range
If doList(bIndex).WbName = "" Then Err.Raise 51, , "No History available"
Set rg = Workbooks(doList(bIndex).WbName). _
If doList(bIndex).isDo = isDo Then Err.Raise 51, , "No History available"
If ArraysEqual(rg.Value, doList(bIndex).Val) Then Err.Raise 51, , _
"Cell corner actions (drag or double click) are not supported"
rg.Formula = doList(bIndex).Val ' IsArray ubound
If Not isDo Then MoveIndex
did = False
Dim reun As String
If isDo Then reun = "Re" Else reun = "Un"
did = False
If isDo Then
isDo = False
MsgBox "Cannot " + reun + "do. " + "More Details: " + Err.Description, , "Message"
did = False
Public Sub Undo_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not did Then
isDo = True
tempDo.isDo = True
If Not did Then MoveIndex
doList(bIndex) = tempDo
Public Sub MoveIndex()
bIndex = bIndex + ((2 * Abs(CInt(isDo))) - 1)
If (bIndex > bLimit) Then bIndex = 0
If bIndex < 0 Then bIndex = bLimit
Public Sub Undo_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo SkipSub
tempDo.WbName = Sh.Parent.Name
tempDo.WsName = Sh.Name
tempDo.RngName = Target.Address
tempDo.isDo = isDo
If (Target.Rows.Count > 1000) Then
tempDo.RngName = _
CStr(Target.Cells(1, 1).Address) + ":" + _
tempDo.Val = Range(tempDo.RngName).Formula
Private Sub setupDo()
Application.OnUndo "Undo Last action", "MyUndo"
Application.OnRepeat "Redo Last action", "MyRedo"
isDo = False
isDo = True
Sunday, September 2, 2007
The solution is based on an add-in. Data changes are audited internally on a hidden spreadsheet and then synchronized to a database when the spreadsheet closes (if the connection is available).
The solution has the ability to prompt the user to integrate any new spreadsheet created (i.e. on-the-fly integration), but requires locking away the embedded VB code (automated naturally).
It is an efficient audit, that also promotes the use of external add-ins (which is better for reusability). It has virtually no impact on performance and requires at a minimum a database where the audit information will be to stored.
Tested on Office 2003 & 2007 successfully
Sunday, August 5, 2007
1. Total Commander - Absolute must: Free, zip and unzip files, built-in editor, edit registry, search function, other stuff.
2. vBar: Free, switch between application, close applications, miniature memory and battery monitor.
3. PHM tools: Free, I use mainly TrayLaunch for profile changing etc.
4. NetFront - Free trial, a significantly better alternative to pocket IE. Supports Java scripts, different browsing mode, in-page search, and 2 tabbed windows on the trail version.
5. Calc98 - Free, a good Scientific calculator. http://www.calculator.org/DownloadFile.html?filename=c9853a.exe
6. TCPMP - Free, Supports viewing of various images and video formats.
7. Pocket FreeMind - Free, fully compatible with FreeMind desktop files. Read, create and modify mind maps (I use the text version - 0.2) http://eringal.com/pocketfreemind/
8. TodayAgenda - Free, Enhanced calendar presentation on to the "Today" screen. http://www.pocketpcfreewares.com/en/index.php?soft=1475
9. Sun'n'Moon - Free, Shows rise and set times + moon phase on your "Today" screen.
10. pRSSreader - Free, good RSS reader http://pda.jasnapaka.com/prssr/
11. Virtual Earth Mobile - Free, navigate roads / satellite image, supports goto lat/long. http://www.viavirtualearth.com/vve/Gallery/VEMobile.ashx
Wednesday, July 25, 2007
This tutorial is short, but must be read word-for-word
This short tutorial aims to give you a simple hands-on example of what pivot tables are
Pivot tables allow you to report and analyze data.
It provides automatic filtering and grouping of data depending on the selections you make.
* Let us illustrate it with a gradual approach:
Our Data sample (note that the values for each COLUMN represent a single result, hence related):
VA a b c d
VB e e f g
VC h i j k
VD l m m n
VE o o o p
1. Single variable
1.1 For a single list of data, if there is no repetition of the data -> you can only get the same table
Pivot Table 1.1:
VA a b c d
TT 1 1 1 1
1.2 For a single list of data, with repetition -> you can get a summary (count) of all instances in the list
Pivot Table 1.2:
VC e f g
TT 2 1 1<-- grouping count
2. Two variables
2.1 If the data is unique for both sets -> you can get the list of the data or a matrix with a single entry in each cell
VA/VC h i j k
a 1 0 0 0
b 0 1 0 0
c 0 0 1 0
d 0 0 0 1
2.2 If one of the sets has repetitions -> you can get (besides using one variable only)
2.2.1 a list grouping one list against the other (composite row / column list)
e a 1
f c 1
g d 1
o l 1
p n 1
2.2.2 a matrix showing the breakdown of the two variables in the same row (ie more than one entry in each cell)
VB / VE o p
e 2 0
f 1 0
g 0 1
2.2.3 a count of the variable for all instances of the other variable (group by the second)
3. Three or more
Expand the concept of grouping and filtering
* "Page" is a location for specifying overall filters on the variables
* You can also filter on the rows and columns selection
* Obviously, this methodology can get complex with large dimensions of data (refer to "Cubes")