2004-09-26
GMail Invitations
I've got 6 GMail invitations. You want one? Just write a comment on this post, and include your e-mail address.
2004-09-25
Win4Eu base-library
This weekend, I'm writing a large part of the base-library (
Today I've written the class- and object-system that is the essential core of Win4Eu.
Euphoria is not an object-oriented language, and doesn't have to be object-oriented: the power of Euphoria lies in its simplicity and its advanced sequence-system.
But, the Win4Eu-architecture requires a minimal object-oriented system. So I created such a system, specifically designed to include all the functionality required by Win4Eu (classes & instances, simple inheritance, verbs (=system-defined methods), properties, events, ...).
After writing the code, I changed the design document win4eu.pdf a bit, to match the written code.
w4ebase.ew) of Win4Eu.Today I've written the class- and object-system that is the essential core of Win4Eu.
Euphoria is not an object-oriented language, and doesn't have to be object-oriented: the power of Euphoria lies in its simplicity and its advanced sequence-system.
But, the Win4Eu-architecture requires a minimal object-oriented system. So I created such a system, specifically designed to include all the functionality required by Win4Eu (classes & instances, simple inheritance, verbs (=system-defined methods), properties, events, ...).
After writing the code, I changed the design document win4eu.pdf a bit, to match the written code.
2004-09-24
New Win4Eu Design Document
I've uploaded a PDF-document, giving some more details about the architecture and ideas of Win4Eu: win4eu.pdf (64 kB).
2004-09-22
Static destructor in C#
C# (and .NET in general) offers static constructors for classes, but why are there no static destructors? I needed such a static destructor for a class that had to clean up resources. So I created a little helper-class that adds static destructor-functionality to a class:
public delegate void DestructorDelegate();
public class Destructor
{
private DestructorDelegate destructorMethod;
public Destructor(DestructorDelegate method)
{
destructorMethod = method;
}
~Destructor()
{
if (destructorMethod != null) destructorMethod();
}
}
Here's an example that shows how to use it:
public class MyClass
{
private static Destructor myDestructor;
static MyClass()
{
DestructorDelegate destructorMethod;
destructorMethod = new DestructorDelegate(this.Destroy);
myDestructor = new Destructor(destructorMethod);
}
private static void Destroy()
{
// this is the static destructor-method
}
}
Updated Nov. 4th 2005: bug fix, thanks to mIKEL.
2004-09-17
Updated Win4Eu architecture
I updated the architecture. The basic Win4Eu routines are more global.
- architecture.swf (6.10 kB)
- architecture.png (32.26 kB)
2004-09-15
Win4Eu: First design
You can view the following files, concerning the design of the Win4Eu-library:
- architecture.swf (6.35 kB): the global architecture of Win4Eu
- architecture.png (33.5 kB): the same, but is a PNG-image
- win4eu.png (11.34 kB): a logo for Win4Eu
2004-09-13
Win4Eu
I'll call my Windows-library Win4Eu: Windows programming for Euphoria. I've created a Win4Eu-forum on the UBoard (unofficial Euphoria Messageboard), where you can find the latest news, and post your ideas, suggestions and requests.
2004-09-12
Squares 2
Check out this beauty of a game: Squares 2. It's a simple concept, with very simple graphics and a nice background tune, but it's addictive as hell.
New Windows library for Euphoria
I decided to write a new Windows library for Euphoria, kind of like a new Win32Lib, but with a different architecture.
It will be designed to be modular and extensible. The design is based on the idea of components: individual parts that can work together, but who's functionality is separate. You can compare it with controls in Win32Lib: Controls are visual components.
If you have ideas of what the new library should include, please let me know. I haven't started coding yet, I'm still working on the design of the architecture. So if you send me your ideas now, I could implement them in the design, before coding has started.