warning: file_get_contents( [function.file-get-contents]: failed to open stream: HTTP request failed! in /var/www/ : eval()'d code on line 4.

This blog post is the third in a four-part series written in French in September 2009.


In previous posts we’ve seen the use of a timestamp based on a long integer, which brings us much in terms of efficiency, saving space and performance. Let’s now look at how to code the conversion of a date and time into a timestamp and vice-versa.

In the end, the timestamp is calculated by the number of seconds compared to a reference date. To keep it simple, we’ll use January 1st, 2000 as our reference date. This allows us to go up until 2068. Why 2068 and not 2136, assuming that 136 years corresponds to 4 billion seconds? Because long integers in 4D are signed, we must remember that the value 0 is in the middle of the range of possible values. As a result, our timestamps allow us to navigate between the years of 1932 and 2068. Of course, there’s nothing preventing you from shifting your reference date to cover your needs better.

Read more



This blog post is the second in a four-part series written in French in September 2009.


Following the example of using two fields to mark a record with date and time, let’s now look at timestamps.


The principle of the timestamp is to combine in a single field, in the most compact way possible, the information needed to memorize the date and time. Of course, the less space we attribute for storage, the smaller the amplitude of possible values.

Read more


This blog post is the first of a four-part series written in French in September 2009.


Far be it from me to rip off Marguerite Duras (writer of Hiroshima, My Love) with such a title, just that I want to express how much timestamps have simplified my life and how much I love to use them. I could even say that timestamps are the bomb, pun somewhat intended…

Read more


The end of support and end of upgrades for the 4D 2004 product line are set for late October and mid-December, respectively.

Six years after its release and one year after announcing its “Sunset” phase, the end of upgrades to newer versions and support for 4D 2004 have now been officially scheduled.


Read more


This morning, as on most days, I was taking a stroll through my code. A little walk, cool, restful – kind of a country walk. The fact is: I’m back from vacation and during the week off, I successfully managed to not launch 4D for three straight days. After such a big break, any doctor will agree: You must go back into work slowly. Very slooooooooowly.


While modifying the code for a method, I was thinking that, after all, 4D v12’s new Method Edtior really rocks.

Read more


The "Early Bird" registration period for 4D Summit 2010 in San Diego, California, has been extended until the end of August. This is your opportunity to save up to US$200, as well as take advantage of a reduced hotel rate.

Read more


If you're still thinking about participating in the biggest 4D gathering of the year, here are a few reasons to convince you that it'll be worth the trip.

Read more


Over several posts, I am spending some time on major new features of 4D v12 (released last June). Today, I’ll focus on a new major major-new-feature: The PHP Execute command, which allows the execution of PHP code.

Read more


Every major new version of 4D brings with it some new features. Whether major or minor, what is immediately interesting for a developer does not necessarily have the same importance to another. And vice versa, when you think about it.


I readily admit that this is stating the obvious. On the other hand, this is my place to write such things, even when they’re obvious.

Read more


While a program is running, we often need to access to some types of object properties. For example, we can dynamically move and resize an object, change it to bold or italic, or modify the title of a button...

Read more