Blog Home  Home RSS 2.0 Atom 1.0 CDF  
 
hoohee.com - Thursday, June 01, 2006
 Thursday, June 01, 2006

This month's book was Paradigms Lost.

I wasn't able to attend the meeting as I was in Hong Kong at the time.
The group had a heated discussion, so I was told.

The general concensus was an 8 out of 10.

6/1/2006 9:31:09 PM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   Book Club  | 
 Tuesday, May 30, 2006

If you run a process that opens and closes connections very fast, the Oracle 10g XE listener fails with the following error:

Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12519)(ERROR_STACK=(ERROR=(CODE=12519)(EMFI=4))))

To fix this problem, simple change the number of processes in the SPFILE to a large number (see example below).

 ALTER SYSTEM SET PROCESSES=250 SCOPE=SPFILE

The alter command requires a DB restart.

This seems to have fixed my problem... or delays the error from occuring.

5/30/2006 11:16:41 AM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [4]   Oracle  | 
 Sunday, May 14, 2006

Mantis is the bug trackign system I will be using for MoneyMan.

Installing Mantis is not too hard, once you figure out the requirements and security settings to allow you to install.

Here's a step by step guide on how to install Mantis along with its required software.

  1. Install MySQL which can be downloaded from http://www.mysql.com/
  2. Install PHP which can be downloaded from http://www.php.net/
  3. Download the latest MySQL components for PHP from http://dev.mysql.com/downloads/connector/php/
  4. Extract the MySQL PHP components with the name php_*.dll to the PHP install extension directory
  5. Extract the MySQL PHP driver libmysql.dll to the PHP install directory
  6. Edit the PHP.ini file, usually installed in your Windows system directory and uncomment the MySQL extension or add them if not there
    • extension=php_mysql.dll
    • extension=php_mysqli.dll
  7. Downloadand extract the Mantis BT to your webserver directory, usually C:\InetPub\WWWRoot, to end up with Mantis installed in the following direcotry C:\InetPub\WWWRoot\Mantis
  8. Open your browser and type http://localhost/mantis in the address and follow the screens to install Mantis
  9. Delete the Admin directory from the Mantis web directory for security reasons

Make sure you enter the proper MySQL username and password with DB creation rights (e.g. root) when prompted by the Mantis installer.

Now you should have Mantis running on your system.

Note 1: When installing Mantis on my laptop, I had a few directory problems with it. What I had done was extract Mantis to my desktop and then copy the folder to C:\InetPub\WWWRoot, which basically copied the security settings of the directory along with it. All I had to do then was create another directory in C:\InetPub\WWWRoot and copy the files to it from Mantis. This worked for me.

Note 2: After installing Mantis you might be propmpted to manually copy the configuration settings to one of the php file. Follow the screen prompts, it's quite simple.

Note 3: The administrator user password for Mantis is root. Change it the first time you login.

5/14/2006 2:30:29 PM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   Money Man  | 
 Monday, May 08, 2006

Here's what I have done so far with Money Man.

I am using data binding. So far, I'm quite happy with what .NET 2.0 data binding offers. I will share some of my programing experience with data binding in a later post.

The login screen:

Login

Overview:

Overview

Suggestions anyone?

5/8/2006 10:45:14 PM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   Money Man  | 
 Sunday, April 23, 2006

In my endeavour to develop a simple to use, feature rich personal finance software, I had to trawl through the internet in search of the most convenient development tools, and here's my story.

After spending more than a couple of days searching, I eventually found what I'm looking for.

First I wanted a database to store the data in. With too many on the list to pick from, which would you have choosen? I have decided to settle on Firebird for a few reasons.

  • Can be embedded with my application
  • Has a small footprint
  • Mostly SQL compliant
  • Has .NET client library

Database: Firebird

Now that we've solved the data issue, let's move on to the next of kin, ORM.

Object-Relational Mapping is a requirement nowadays. The choices here are no lesser than the database arena. I have taken the easy solution approach to picking this one, dOOdads. dOOdads comes with the MyGeneration, code generation tool.

Other ORM options I have looked at include, Hibernate.NET and Gentle.NET. I personally prefer the Gentle.NET approach. Gentle.NET 2.0 is still in an early stage of development to be used with .NET 2.0.

ORM: dOOdads

A couple of main features I liked about the unit testing tools I've chosen, namely, VS.NET integration and perfornmance statistics on tests.

Unit Test: Zanebug

To integrate Zanebug with VS .NET, I had to use TestDriven.NET. One caveat, though, is that you cannot run VS.NET using a regular user account and get the VS.NET integration for Zanebug. You will have run VS.NET with a user account belonging to the Administrators of the machine to allow TestDriven.NET to start an external process.

Next comes the source control requirements. SVN was my choice. I haven't created the tree for MoneyMan yet, but will surely use SVN.

Source Control: Subversion (SVN)

It's a fact, software programs will have problems, unless you spend big $$$$$....$$$$ on development and especially QA. How long it will take to uncover an issue in a piece of software is, based on statistics, a matter of time and user engenuity. Our project is no exception, but I hope to keep bugs under control. To help manage this part of the development process, I picked BugNET for issue management.

Issue Management: Mantis

Check our the post on Installing Mantis.

TO DO: Look for a continuous integration engine. I'm in two minds between CruiseControl.NET and NANT.

What would you have picked?

4/23/2006 9:12:48 PM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   Money Man  | 
 Monday, April 17, 2006

I have developed an application which uses SQL Server as a data store and was looking for a way to install it with my appliation in a seamless fashion. With a lot of trial and error and a couple of hours trawling the internet for a decent source for this kind of info, I found a very interesting page on Microsoft's website.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsse/html/EmSQLExCustApp.asp

Finally, I decided to use the command prompt to  launch the installer.

SQLEXPR.EXE -q /norebootchk /qb reboot=ReallySuppress addlocal=all instancename=SQLCatalog SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=1 SQLAUTOSTART=1 SAPWD=SQLPassword SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0

Then I adapted an NSIS script I had (see below). All you need to do then is call the function UpdateMSDE from your NSIS script.

; English
!define URL_MSDE "
http://www.microsoft.com/downloads/info.aspx?na=46&p=8&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=57856CDD-DA9B-4AD0-9A8A-F193AE8410AD&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2fd%2f4%2ffd407f12-0845-4d51-b084-779860d57ba5%2fSQLEXPR.EXE&oRef=http%3a%2f%2fwww.microsoft.com%2fsql%2feditions%2fexpress%2fdefault.mspx"


Function TestMSDE

        ;MessageBox MB_OK "Checking $1   $2"
 ReadRegStr $0 HKLM \
        "$1" "$2"

        IfErrors SQLServerNotFound SQLServerFound

 SQLServerFound:
                ;MessageBox MB_OK "Checking $3   $4"
  ReadRegStr $5 HKLM  $3 $4
                IfErrors SPNotFound SPFound

 SPFound:
  ;Check the first digit of the version; must be 8
  StrCpy $0 $5
  StrCpy $1 $0 1
  StrCmp $1 "8" SQLServer2000Found SQLServerVersionError

 SQLServer2000Found:
                Push 1
  Goto ExitCheckMinSQLVersion

 SQLServerVersionError:
  ;MessageBox MB_OK|MB_ICONEXCLAMATION  "This product requires a minimum SQLServer version of 8; detected version $0. Setup will install SQLExpress 2005."
  Push 0
  Goto ExitCheckMinSQLVersion

 SQLServerNotFound:
  ;MessageBox MB_OK|MB_ICONEXCLAMATION  "SQLServer was not detected; this is required for installation. Setup will install SQLExpress 2005."
                Push 0
  Goto ExitCheckMinSQLVersion

 SPNotFound:
  ;MessageBox MB_OK|MB_ICONEXCLAMATION  "SQLServer version $0 was detected. SQLServer version 8 (or later) is required for installation. Setup will install SQLExpress 2005."
  Push 0
  Goto ExitCheckMinSQLVersion

 ExitCheckMinSQLVersion:
 
FunctionEnd

Function ExistsMSDE

   ; search for SQL server
   StrCpy $1 "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion"
   StrCpy $2 "CurrentVersion"
   StrCpy $3 "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion"
   StrCpy $4 "CSDVersion"
   Call TestMSDE
  
   pop $1
   IntCmp $1 1 Found
  
   ; search for SQLExpress 2005 instance
   StrCpy $1 "SOFTWARE\Microsoft\Microsoft SQL Server\$SQLCatalog\MSSQLServer\CurrentVersion"
   StrCpy $2 "CurrentVersion"
   StrCpy $3 "SOFTWARE\Microsoft\Microsoft SQL Server\$SQLCatalog\MSSQLServer\CurrentVersion"
   StrCpy $4 "CSDVersion"
   Call TestMSDE
  
   pop $1
   IntCmp $1 1 Found
  
   ;jump to not found which will then start the installer
   ;IfFileExists 'C:\MSDERelA\Setup.exe' NotFound
  
   ; let's try to download SQLExpress 2005
   MessageBox MB_YESNO|MB_ICONEXCLAMATION  "SQLExpress 2005 not found. Do you want me to download installer from ${URL_MSDE}?" IDYES true IDNO false

true:
   nsisdl::download /TIMEOUT=30000 "${URL_MSDE}" "$PLUGINSDIR\SQLEXPR.EXE"
   Pop $0
   StrCmp $0 "success" Downloaded
   MessageBox MB_OK "Download failed: $0"
  
false:
   MessageBox MB_OK "Failed to detect MSDE or SQLExpress on this machine. The installer will continue but the application will fail to start. You will have to manually install the database engine and run the database creation scripts."
   Goto NotFound
  
Downloaded:
   ; run installer
   ExecWait "$PLUGINSDIR\SQLEXPR.EXE -q /norebootchk /qb reboot=ReallySuppress addlocal=all instancename=$SQLCatalog SCCCHECKLEVEL=IncompatibleComponents:1;MDAC25Version:0 ERRORREPORTING=1 SQLAUTOSTART=1 SAPWD=$SQLPassword SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0"
   ;ExecWait 'net start mssql$$$SQLCatalog'
   Sleep 10000 ; wait for a 10 seconds
   Goto Found
  
NotFound:
   Push 0
  
   Goto Exit
  
Found:
   Push 1
  
Exit:
  
FunctionEnd

Function UpdateMSDE
   Call ExistsMSDE
   pop $1
  
   IntCmp $1 1 Found
 
Found:
 
Exit:

FunctionEnd

Yes I know. The script needs a bit of cleaning. But I trust you can do it.

4/17/2006 9:45:35 AM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   MSSQL  | 
 Sunday, April 16, 2006

I've looked around for a decent personal finance software, which is free and simple to use, but couldn't find one.

I have started working on an application which I have called "Money Man". Once I finish the first cut of code, I will publish on this site for grabs.

The architecture I have devised will have the following constituents:

  • .NET 2.0
  • Firebird embedded

I do not expect the final package to be bigger than 4 MB.

Stay in touch for more...

4/16/2006 9:52:10 AM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [1]   Money Man  | 
 Wednesday, April 12, 2006

The world is changing, you better believe it and get on the bandwagon.

The next big change in the corporate world is going to be KNOWLEDGE related. This is not the kind of knowledge that you only use, rather, it comes in a variety of flavours and textures. There is the "soft" and the "hard".

You will have to deal with: knowledge capture, knowledge capital, knowledge workers, knowledge economy, knowledge management, knowledge transfer, knowledge innovation, knowledge enablement, and me.

Interested? Read on.

If you're in the software industry you would understand that what we do, day in and day out, is deal with knowledge. We develop software using knowledge. We license our software to companies wanting to use it. We charge for our knowledge as a service. Does this sound familiar to you?

To succeed in a competative market, software companies have to build and leverage this knowledge and the way to do it is by being innovative and creative. They will have to convert into knowldge specialists organizations with sharp cuts in middle management.

The problem that most organizations have when faced with change is that most individuals become defensive and mistakes are repeated. We all know the issue but no one wants to take responsibility to resolve it. My opinion is to be honest and take a lead.

Before I leave you to ponder, here are a few links of interest on this topic:

4/12/2006 9:11:06 PM (AUS Eastern Standard Time, UTC+10:00)  #    Comments [0]   Management  | 
Copyright © 2008 Emile Bassil. All rights reserved.