User:Bart

From Lazarus wiki
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 specialze 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

  • Extend ValueListEditor (as per request by Juha)
    • (see: Vcl.ValEdit.TValueListEditor and Value_List_Editors on Emarcadero's DocWiki)
    • Override TValueListStrings.SetTextStr: Don't show editor while changing values. Edited cell would not be changed.
    • Start implementing validating: don't accept duplicate Key names.
    • Fix crash in TValueListEditor.ShowColumnTitles when TitleCaptions.Count = 1
    • Only allow FixedCols := 0 or 1
    • Do not use Columns.Add, it interferes with setting FixedCols := 1 (by adding an extra column in front).
    • Implement TValueListEditor.AdjustColumnWidths and override OnDoResize.
    • Keep FItemProps in sync with Lines, fix related memory leaks of ItemProps
  • 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

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

Usefull external links