Skip to main content

Posts

Showing posts from November, 2010

Printing Unicode on the Windows Console and the importance of of i/o layers

I wanted to take a look on printing Unicode on the windows console by using the Win32 api and also check how is done in other languages, rather than directly from Perl which hides a lot of details

Problems when wanting to print to the console :

1.The windows console uses an internal buffer that can mangle output

2.Invoking the console using the Unicode switch (cmd.exe /u) does not have an effect

3.Windows supports UTF-16 inherently, not utf8

4.Documentation on Unicode and the console is hard to find.MSDN library, as usual, is a labyrinth with no beginning and end where you can loose track easily

The need arose when I needed to print an old style dos box using the cp437 box drawing characters on the console using their Unicode code points rather than their ASCII representation. The output was mangled/overlapped

Take a look at this pictorial output to get a clear view of the problem

The code that generated the incorrect result is :

#unicode_box_incorrect.pl use Win32::API; binmode(STD…

iProgrammer - Type Systems Demystified part 1 (repost)

Part 1 of Type Systems Demystifed was released. It explores dynamic and static typing.
Link: Type Systems Demystifed

Description:
"This article is intended to help to someone who has a dynamic language background and wants to jump into the .NET platform, someone with VB.NET experience that wants to know how things work in C#, the C# programmer interested in dynamic programming, and any programmer who wants to know how type systems work."

Type Systems Demystifed part 2 - weak vs strong

Part 2 of Type Systems Demystifed was released. It explores weak and strong typing.
Link: Weakly typed languages

Description:
"Weakly typed languages
In Part 1 of this series we explored and compared the static and dynamic systems. Now we are going to focus on weak and strong typing and discover once more that the boundaries (which languages are considered strong and which weak) are not clearly defined."