Caves Travel Diving Graphics Mizar Texts Cuisine Lemkov Contact Map RSS Polski
Trybiks' Dive Texts YAC Software
  Back

List

Intraweb and MaxConnections

A Case for FreeAndNIL

Intraweb as an Apache DSO module

"Device not supported" in Intraweb

Automated GUI Testing

Fix for Highslide HTML Slides

Random()'s Determinism

Rounding and precision on the 8087 FPU

Clicking on links in JavaScript

PHP's mail()

File | Save Atavism

SessionTimeout in Intraweb

Using TChart with Intraweb

Unknown driver: MySQL

Automated GUI Testing in VMs

TIdMessage's CharSet

Product Peer Reviews - Introduction

Software Guarantees

Automated Testing of Window Forms

TChart - Missing Labels in Axes

Calculating Positions of HTML Elements

Memory Leaks and Connection Explosions in DBExpress

CSS for Scrollbars on Pages and in Frames

Controlling Conditional Defines and Compilation Switches

Turning Browser Caching off when Displaying Images Using PHP

Detecting Memory Leaks with DUnit

last_insert_id() and DBExpress

YAC Data Language

Registering Extensions

DBExpress and Thread Safety

Forms as Frames

Checking Dangling Pointers vs. the New Memory Manager

</form> ... <form>

Accessing Protected Members

Texts
Below you will find links to my articles and texts about various, usually programming, stuff;
Mizar articles were moved here,
and articles dealing with market research and data processing - here.

Intraweb and MaxConnections

Having problems with running out of connections in Intraweb? Check out my solution - maybe it will help.

A Case for FreeAndNIL

Allen Bauer, Embarcadero Chief Scientist, wrote an interesting blog entry - A Case Against FreeAndNIL. Though I agree with the general gist of that article (when fixing a defect, don't fix the symptoms, but find out what the root cause of the problem is and fix that), I don't agree at all that the problem here is in FreeAndNIL usage. IMO, FreeAndNIL can help in tracking defects down and should be considered a mandatory coding guideline.

Intraweb as an Apache DSO module

Always when I tried to upload a Apache module written in Delphi / Intraweb (VCL for the Web), something didn't work quite as expected. Either the service didn't want to start, or Apache couldn't find / run the module, etc. Apart from the required changes to HTTPD2.pas (that depend on the specific version of your Apache installation), you also need to configure access to your module in the httpd.conf file. And this texts should just how to do that.

"Device not supported" in Intraweb

Getting a "Device not supported" exception when running your Intraweb (VCL for the Web) application in a standard web browser? One possible cause is described in this short text.

Automated GUI Testing

Ever head problems with testing GUI applications using an external testing program? Or maybe you just want to test a single window/form without the need of running your whole program? Start unit testing you GUIs - it's as simple as standard unit tests.

Fix for Highslide HTML Slides

A fix for a small defect in the Highslide library in the displaying of HTML slides.

Random()'s Determinism

The determinism of (pseudo)random number generators is usually described in pejorative terms. :-)
In this text we describe an application of random number generators, where their determinism plays a key role.

Rounding and precision on the 8087 FPU

After moving my testing to a virtual machine it turned out that newly generated results of statistical calculations differ from reference results (calculated and saved earlier). Although the differences appear on the least significant digits of floating-point values, the root cause of the problem was unknown to me, thus to serious to be ignored. It turns out that results of calculations may depend on the Intel's numerical coprocessor's control word. The issue is discussed in more detailed in the text.

Clicking on links in JavaScript

Simulating clicking on links in JavaScript that works in IE, Firefox, and Opera.

PHP's mail()

Having problems with character encoding when using PHP's mail() function?
Maybe this text will help you some.

File | Save Atavism

Sometimes it is really worth going back to basics and solutions not discussed in a long while... to find out that they're really needed. In a new version of one of my applications I thought about dropping Save from the File menu. The option wasn't really needed since the program did automatic saves often enough. No way - users, including myself, don't trust their programs / computers enough yet!

SessionTimeout in Intraweb

A solution to better handling of Intraweb's session timeouts and automatic destruction of inactive user sessions.

Using TChart with Intraweb

A method for displaying TChart charts in Delphi applications based on the Intraweb (VCL for the Web) framework.

Unknown driver: MySQL

Getting an "Unknown driver: MySQL" message in your Delphi application?
Just add DBXMySql to the uses clause!

Automated GUI Testing in VMs

GUI testing, when being run on the development machine, blocks work because you can't use the keyboard or the mouse during the tests. Well, use a virtual machine for your tests while continuing work on the host.

TIdMessage's CharSet

Wanted to encode a TIdMessage in Delphi using some ISO character set, like, for instance, ISO-8859-2? And had problems with that? This text should help at least some of you (I hope).

Product Peer Reviews - Introduction

A short introductory text on product peer reviews.

Software Guarantees

If you are a customer of software applications, if these don't work as advertised, and you can't get bug fixes for free and in a timely manner - dump them! Software developers aren't so special not to be responsible for their work. Software guarantees will not annihilate IT! So, go ahead and vote with your wallet!

Automated Testing of Window Forms

Tired of continuously verifying tab orders and accelerators in your window forms? How many times have you shipped a program that duplicates shortcuts, doesn't have FocusControl assigned in labels, doesn't have default buttons in dialog windows, etc.? Well, this text describes an approach for automatic testing of window forms (and other controls, for that matter). An approach that, at least for me, saves hours of testing time each week.

TChart - Missing Labels in Axes

Description of the problem and the solution of missing labels in TChart axes when different numbers of values are added to the chart's data series.

Calculating Positions of HTML Elements

Description of the problem and the solution of calculating positions of HTML elements in Internet Explorer.

Memory Leaks and Connection Explosions in DBExpress

Delphi 2009 fixes both problems when accessing MySQL via DBExpress. However, if you're still on Delphi 2007 and are experiencing one of these problems, you may want to try the fix in D2007 that was added to DBExpress in D2009.

CSS for Scrollbars on Pages and in Frames

Do you have problems with centered pages in HTML that are shifted left or right depending on the length of the page, thus visibility of scrollbars? Or maybe you would like to show or hide scrollbars in frames / iframes? If so, maybe you'll find the solution in this post.

Controlling Conditional Defines and Compilation Switches

An idea on how to augment software build / release processes by automatically checking compilation settings and combinations of conditional defines during compilation.

Turning Browser Caching off when Displaying Images Using PHP

Many examples can be found on the Internet showing how one can display images using PHP (either from a file or from a DB). But usually nothing is said about caching those images by internet browsers. However, when updating a picture on my profile, for example, I would like to view the new version, and not the previous one... :-)

Detecting Memory Leaks with DUnit

It's much easier to fix coding faults when these are discovered in the unit testing phase than when they're discovered in further phases of the development cycle. A category of such defects - memory leaks - are usually hard to track down because of their irregular behavior. Then, tracking down the root cause of the problem is often difficult and time consuming.

When programming in Delphi, DUnit is the obvious choice for unit testing, and thanks to its memory leak detector, helps in the problem mentioned above (and, for other languages, similar unit testing frameworks can be used). However, there are certain caveats to deal with here, and one of these is discussed in the article.

last_insert_id() and DBExpress

MySQL's last_insert_id() function gets the last automatically generated value for a given table. That's pretty helpful, for instance, when you're inserting records and want to retrieve their newly generated IDs. I spent some time on solving this in Delphi's DBExpress framework, and this text documents the issue.

YAC Data Language

Description of a language that is used in YAC applications, often in place of XML, for defining various elements, such as questions, responses, 3D objects, DB entries, etc.

Registering Extensions

Delphi code for registering application-specific file extensions in Windows.

DBExpress and Thread Safety

Description of the problem and the workaround of intermittent Access Violation errors on WideStrings.TWideStrings.GetValue and System.TObject.Free when using DBExpress components for communication with MySQL databases (under heavy load).

Forms as Frames

Placing standard forms (TForm) as frames on other forms.

Checking Dangling Pointers vs. the New Memory Manager

Description of the problem and the solution of intermittent Access Violation errors when using DBExpress components for communication with MySQL databases.

</form> ... <form>

Description of the problem and the solution when using nested layout managers (TIWLayoutMgrHTML) do generate pages under Opera.

Accessing Protected Members

The text describes a simple trick for accessing protected members of instantiated classes without instantiating descendants of those classes - descendants that would make these protected members public.

Top