User:Bart

From Lazarus wiki
Revision as of 22:59, 15 April 2014 by Bart (talk | contribs) (→‎ToDo List)
Jump to navigationJump to search

Who Am I

Full name: Bart Broersma
Country of origin: The Netherlands.
What I do in real life: I am a health care professional working in a nursing home where I specialize in geriatric rehabilitation.

My homepage: http://home.tiscali.nl/~knmg0017 (it is in Dutch).
It has a general software section (Delphi and Lazarus) and FreePascal and Lazarus units.
My Subversion repository is at: http://svn.code.sf.net/p/flyingsheep/code/trunk/

Me and programming

In 1983, while I was a first year med student, I followed a summer course in programming in MUMPS (on a mini-computer). This was my first experience in programming.
It was not until 1991 that I had another encounter with a (Personal) Computer. This time at my very first job.
Soon I began reading books on DOS and WordPerfect 5.1, and I started writing WordPerfect macro's (in a really horrible language).
I saved up some money and bought a 286.
Then a friend gave me a copy of Turbo Pascal 3.0 and an introduction book on structural programming using Pascal.
As time past by I upgraded to TP 5.5, TP 6.0, Delphi 1 and Delphi 3.0.
Some of my early TP programs evolved along the way.
After Delphi 3 the new Delphi's became either to heavy for my machine (as I am writing this my machine is 11 years old), or they were just way too expensive for, what is only my hobby.

Then one day I learned about Lazarus in a Dutch magazine on Pascal programming (appropriately called Blaise) and I took a quick look. Lazarus then was appr. at version 0.9.10, and it was not very stable yet, so I left it for a while.
But I had also grown an interest in Linux, and of course wanted to program in Pascal there as well. So I came back again after some time, to find that progress was made steadily on, and from appr. 0.9.16 I jumped on board, this time to stay.
In 2007 I submitted my first patch for the Lazarus project.

Since 0.9.26 Lazarus IMO outperforms Delphi 3.0 regarding available components (some of them unavailable in D3) and the IDE (in particular the codetools).
I now hardly ever use Delphi anymore, most of the time only to compare Delphi VCL/RTL behaviour against Lazarus/FreePascal.
I have grown so used to Lazarus that the Delphi 3 IDE now feels very sluggish and cumbersome to use. (OTOH, the Borland compiler/linker is still much faster, and integrated debugging is easier.)

Working with Lazarus, I have of course encountered bugs in both FreePascal and Lazarus. Many of these were in rather "basic" components, that make up most of my programs (it seems to me that many Pascal users do database applications and web-related stuff, and use lots of fancy controls, where most of my apps are just very basic).
And since not very many people seemed bothered by the bugs I encountered, I tried fixing them myself (with the help and support of many of the Lazarus community). The spirit of this Open Source project has caught me, and I find trying to contributing to it a very pleasant spending of my spare time.

My current goal for Lazarus :-)

To keep Fpc and Lazarus Windows98/WinME compatible.
I therefore implemented a replacement (and a very simple fallback) for WideStringManager.UpperWideStringProc and WideStringManager.LowerWideStringProc using the shlwapi.dll library. http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/winunits-base/src/win9xwsmanager.pp?view=markup

Lazarus interests

Maintaining the MaskEdit unit.
Utf8 related file functions on Windows
General LCL
Win32 widgetset

ToDo List

  • Sanitize the LazFileUtils and FileUtil units. They share several functions, some with different implementations, which is a maintanance nightmare.

Things I would like to have in Lazarus/FreePascal

  • A native ObjectPascal debugger

Notes for myself

To prevent unwanted update/commits, do a

svn -q status

before committing something.

Also, when only some subdir changed, commit the subdir only:

svn commit --message "foo" path/to/changes


FPC_FULLVERSION construction:
Major*10000 + Minor*100 + Revision

patch.exe on Windows

  • Files need to have CrLf line endings
  • You need to use the -p0 parameter or else it fails when filenames contain paths (assuming folder layout fits)

So e.g to test the patch, in ($LazarusDir):

C:\devel\lazarus>patch -l --dry-run -p0 < patchfile.diff


Add a new icon to the component pallette.

  • Add the icon (.png) with the name of the component type (like tbuttonedit.png) to ($lazarusdir)/images/components
  • Add the filename of the new icon, preceded by components/, (e.g. components/tbuttonedit.png) to ($lazarusdir)/images/components_images_list.txt
  • from with ($lazarusdir)/images run the components_images.bat, this will rebuild the components_images.res file
  • do a clean build of Lazarus

Useful wiki links (for myself, to refer people in the bugtracker amongst others)

Usefull external links