<?xml version="1.0" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

<channel>
  <atom:link href="https://www.progtools.org/rss.php" rel="self" type="application/rss+xml" />
  <title>Progtools</title>
  <description>Compilers, Graphics Programming, Games Development, Life in Germany, a bit of everything</description>
  <link>https://www.progtools.org</link>

  <item><title>Ongoing clang improvements for C and C++ safety</title><pubDate>Sun, 18 May 2025 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20250518</link><guid>http://www.progtools.org/blog.php?entry=20250518</guid><description><![CDATA[<p>The playlist for <a href="https://www.youtube.com/playlist?list=PL_R5A0lGi1AA3VCp6hZtgJKq4snmBQGDF">2025 EuroLLVM Developers' Meeting</a> has recently been made available, and it has a couple of interesting talks related to Apple's work on improving memory safety for C and C++, while having safer integration with Swift code.</p><p>Apple has added a few language extensions for bounds checking, fat pointers, that would already help quite a bit. They are quite similar to Microsoft's <a href="https://learn.microsoft.com/en-us/cpp/code-quality/understanding-sal?view=msvc-170">SAL</a> annotations used in Visual C++.</p><p>The advantage with Apple's approach is that by having this on an open source compiler like clang, there is an higher chance that the C and C++ communities adopt such extensions, and eventually make up to the respective ISO standards.</p><p>The relevant talks on security were:</p><p>
    <ul>
        <li><a href="https://www.youtube.com/watch?v=rYOCPBUM1Hs">Recipe for Eliminating Entire Classes of Memory Safety Vulnerabilities in C and C++</a></li>
        <li><a href="https://www.youtube.com/watch?v=rlevLn831R4">Adopting -fbounds-safety in practice</a></li>
        <li><a href="https://www.youtube.com/watch?v=AVmgL-97kqo">C++ interoperability with memory-safe languages</a></li>
    </ul>
</p><p>I found quite interesting the approach they decided to take to talk about current state of security, with memory safe languages being islands, the amount of existing C and C++ code in the industry, oceans, and the interop layers between languages, the beach.</p>]]></description></item><item><title>Introducing some samples for Vercel Functions with native languages</title><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20240407</link><guid>http://www.progtools.org/blog.php?entry=20240407</guid><description><![CDATA[<p>About a year ago I made the point that working with Node.js felt a bit like my old days of programming in <a href="http://www.progtools.org/blog.php?entry=20230124">Tcl with native libraries</a></p><p>While trying to make use of Vercel Functions, it became somehow a challenge to understand how to deploy Node.js based application, using C++ Addons, as the documentation hardly touches this kind of deployments.</p><p>So after finding a way to actually make it work, by wrapping the C++ addons into a local package, which is then used by the rest of the application, instead of directly calling into the respective addon, I ended up pursuing an additional goal.</p><p>Namely that with the ongoing cybersecurity discussions, it would be interesting to check out the existing Go and Rust support for Vercel Functions.</p><p>In the end, I created a <a href="https://github.com/pjmlp/vercel-native-addons">template project</a> that basically provides Hello World kind of examples for Vercel Functions, written in pure TypeScript, TypeScript with a C++ addon, Go, and Rust.</p><p>There is also a configuration file for Swagger's online editor to make it easier to play with them.</p><p>Ready to be cloned, as basis to actually write proper production code.</p>]]></description></item><item><title>Some security related updates</title><pubDate>Tue, 05 Mar 2024 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20240305</link><guid>http://www.progtools.org/blog.php?entry=20240305</guid><description><![CDATA[<p>In a couple of security related news, <a href="https://readwrite.com/the-nsa-list-of-memory-safe-programming-languages-has-been-updated/">ReadWrite</a> has a mention that the NSA has updated the set of memory-safe programming languages to the following ones:</p><ul>
    <li>Go</li>
    <li>Rust</li>
    <li>C#</li>
    <li>Swift</li>
    <li>Java</li>
    <li>Ruby</li>
    <li>Python</li>
    <li>Delphi/Object Pascal</li>
    <li>Ada</li>
</ul><p>For C and C++, the recomendation stands to the point, that if it is unavoidable to use them, then all kinds of analysers, hardware metadata are advisable to be taken into use.</p><p>Which leads to Google's recent report on security <a href="https://security.googleblog.com/2024/03/secure-by-design-googles-perspective-on.html">Secure by Design: Google’s Perspective on Memory Safety </a>, which provides an overview on how Google has been improving their security in software development practices, and point of view on NSA's recomendation.</p><p>From the report, there is also a quite interesting blog post about <a href="https://bughunters.google.com/blog/6368559657254912/llvm-s-rfc-c-buffer-hardening-at-google">C++ Buffer Hardening</a> being done on existing code bases that cannot easily migrate to safer languages, by improvements on clang's libc++ standard library, and security features in clang as well.</p><p>It is quite pleasing to see programming language safety efforts finally making waves in mainstream computing.</p>]]></description></item><item><title>.NET 8 is now available</title><pubDate>Tue, 21 Nov 2023 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20231121</link><guid>http://www.progtools.org/blog.php?entry=20231121</guid><description><![CDATA[<p><a href="https://dotnet.microsoft.com/en-us/">.NET 8</a> has finally arrived, with lots on goodies in the form of C# 12, F# 8, AOT improvements, and a surprise framework for cloud native development, <a href="https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/">.NET Aspire</a></p><p>Plenty of very interesting videos from .NET Conf 2023 are now <a href="https://youtu.be/mna5fg7QGz8?si=uXQ49iMMgKApKWwb">available</a> on YouTube to watch with great interest.</p><p>New C# and F# features, AOT improvements, united Blazor development experience, game development, machine learning, IoT, desktop and naturally cloud native development.</p><p>Definitely looking forward to project opportunities where .NET 8 might come into use.</p>]]></description></item><item><title>C++ security related news</title><pubDate>Tue, 08 Aug 2023 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20231005</link><guid>http://www.progtools.org/blog.php?entry=20231005</guid><description><![CDATA[<p>Microsoft has recently published as very interesting guide on how to <a href="https://learn.microsoft.com/en-gb/cpp/code-quality/build-reliable-secure-programs?view=msvc-170">Build reliable and secure C++ programs</a>, which everyone doing C++ development should spend some time reading.</p><p>On a similar note, CppCon 2023 started this week, Bjarne Stroustrup's keynote is already available, the subject being <a href="https://www.youtube.com/watch?v=I8UvQKvOSSw">Delivering Safe C++</a>.</p><p>Both touch on a quite relevant reality, that while greenfield projects should, or could, be written in safer system languages, there is a whole world of C++ code out there that isn't going to be easily rewritten into something else.</p><p>As such there should also exist tooling and development processes to improve the overal security of software projects, that for whatever reason still have to be written in C++.</p>]]></description></item><item><title>C++/WinRT now in maintenance mode</title><pubDate>Tue, 08 Aug 2023 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20230808</link><guid>http://www.progtools.org/blog.php?entry=20230808</guid><description><![CDATA[<p>Apparently all hopes from ever seeing C++/WinRT reach feature parity with its predecessor, C++/CX, are now gone. It has been formely declared to be in  <a href="https://github.com/microsoft/cppwinrt/issues/1289#issuecomment-1481303844">maintenance mode</a> on its Github repository.</p><p>Quite a pity really, I have expressed in the past my disappointment about its support, when  <a href="http://www.progtools.org/blog.php?entry=20221118">Windows App SDK 1.2</a> was released, and previously <a href="http://www.progtools.org/blog.php?entry=20220407">how C++/WinRT wasn't a match for C++/CX</a>.</p><p>Sadly this reveals yet another factor how Microsoft has been losing Windows desktop developers, has they have been continuously asked to rewrite their applications, only to be left with dead products in the end.</p><p>Thankfully .NET and Win32 are still around as the only stacks safe from this rewrite trendmill that doesn't seem to get right, what would be the next great UI framework for native Windows applications.</p><p>Other than that, picking cross-platform frameworks, or reaching out to the Web as alternative, are other possible sound alternatives.</p>]]></description></item><item><title>Upcoming Windows security improvements</title><pubDate>Mon, 01 May 2023 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20230501</link><guid>http://www.progtools.org/blog.php?entry=20230501</guid><description><![CDATA[<p>During last week's <a href="https://www.microsoftrnd.co.il/bluehatil/home">BlueHat IL</a> security conference, there was a very interesting talk regarding ongoing improvements on Windows security.</p><p>During the session <a href="https://youtube.com/watch?v=8T6ClX-y2AE">Default Security</a>, David Weston from Microsoft, has shown the improvements regarding adoption of UWP sandboxing into regular Win32 applications, efforts to remove Admin requirements from several applications including Visual Studio (finally!), code signing, two levels of Admin access (similar to macOS SIP), and ongoing efforts to rewrite critical kernel subsystems into Rust.</p><p>This is great news for security minded folks, as memory corruption and other types of attacks are getting more seriously acknowledged.</p><p>However it is a pity that Singularity, Midori, Longhorn and to lesser extent UWP efforts aren't taking off as they should, with COM and Win32 still playing the central role on Windows development. One would hope that with .NET's introduction in 2002, and as shown on Apple and Google's platforms, COM would already been replaced by safer IPC, instead of still being pushed as the main extension mechanism. Specially as the existing tooling hardly does anything to improve security in COM development.</p><p>Nonetheless, it is refreshing to follow up on the ongoing security improvements, and Rust's adoption at Microsoft.</p>]]></description></item><item><title>Going back to Web roots</title><pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20230124</link><guid>http://www.progtools.org/blog.php?entry=20230124</guid><description><![CDATA[<p>For several reasons I have been busy doing some Web development with Node.js, which kind of reminded me of my roots how I started into Web development.</p><p>Back when I had the pleasure to join Intervento a couple of decades ago, the company was using <a href="https://www.tcl.tk/">Tcl</a> for our application server. Built on top of a mix of Apache and IIS plugins, with the Tcl interpreter and plenty of extensions written in C.</p><p>Now writing JavaScript instead of Tcl, for Web development, while having the ability to write extensions, in a mix of native languages or WASM based ones, it kind of feels a bit like time traveling.</p><p>The main difference being that thanks to Node.js's advanced JIT, the need to write native extensions isn't as big as it used to be in Tcl's case.</p><p>It is so ironic how many ideas keep being rebooted all the time.</p>]]></description></item><item><title>Google's security blog post on Android</title><pubDate>Fri, 02 Dec 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20221202</link><guid>http://www.progtools.org/blog.php?entry=20221202</guid><description><![CDATA[<p>Google's security team just posted a blog post entitled <a href="https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html">Memory Safe Languages in Android 13</a>, which main focus is how Android 13 is the first OS version where all new code was mostly written in safe languages.</p><p>Naturally they keep using Java and Kotlin for userspace applications (I would rather have up to data Java support, but that is a subject for another day). </p><p>Additionally, since they added support for Rust about two years ago, most of the new low level systems code is now being coded in Rust. As per the article content:</p><p>
<blockquote>
    In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust. There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.
</blockquote>
</p><p>Which is kind of nice, finally to start seeing managed languages, alongside safer systems programming languages being adopted into mainstream, no matter what.</p><p>Ironically, like in many other occasions, Microsoft could have been there first, had they decided to go commercial with either their <a href="https://www.microsoft.com/en-us/research/project/singularity/">Singularity</a> or <a href="https://en.wikipedia.org/wiki/Midori_(operating_system)">Midori</a> efforts.</p><p>To a safer computing world.</p>]]></description></item><item><title>What's Old in Windows App SDK 1.2</title><pubDate>Fri, 18 Nov 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20221118</link><guid>http://www.progtools.org/blog.php?entry=20221118</guid><description><![CDATA[<p>The WinUI team just celebrated the release of the new <a href="https://blogs.windows.com/windowsdeveloper/2022/11/16/whats-new-in-windows-app-sdk-1-2/">Windows App SDK 1.2</a>.</p><p>While Microsoft's blog focus on what is new, I would rather summarize where the project is still standing since <a href="https://blogs.windows.com/windowsdeveloper/2020/05/19/developing-for-all-1-billion-windows-10-devices-and-beyond/">Project Reunion</a> was announced in 2020.</p><p>Still no designer is available on Visual Studio that can match the tooling available for Windows Forms, WPF, and UWP developers.</p><p>The CsWinRT and C++/WinRT frameworks represent a big regressation in developer experience when compared with the .NET Native and C++/CX tooling available in Visual Studio.</p><p>The C# developers while using CsWinRT have to manually write export sets of API, invoke a command line tool, and then integrate the resulting build into the project, hardly modern when compared with .NET Native taking care for us under the covers.</p><p>The C++ developers, have to manually write IDL files, which to this day keep lacking Visual Studio tooling for code completion and syntax highlighting. They have to manually merge generated code into the existing project, master lots of low level details that the C++/CX runtime used to take care for us, hardly modern when compared with <a href="https://www.qt.io/">Qt/QML</a> or <a href="https://www.embarcadero.com/products/cbuilder">C++ Builder</a> offer to C++ developers.</p><p>The cherry on the already bad C++/WiNRT developer experience is that the team doesn't seem to care to improve it past C++17, so not even C++20 modules are planned for it, hardly modern.</p><p>The Windows 11 widgets just announced, require developers to use C++ and COM, just like in the old days before .NET. Hardly a modern experience when compared with Apple and Google developer experience to create OS widgets.</p><p>The recently announced support for AppNotificationBuilder, is only for C# developers. Those that are stuck with C++, have to write XML payloads as part of strings, parse it on the fly, before calling the notification APIs, hardly a modern experience.</p><p>The issues on the respective Github repositories for all projects just keep increasing.</p><p>After all this time, it looks like the team is fighting the last war, trying to make WinUI 3.0 reach feature parity with where UWP was in 2019, while Apple platforms keep improving SwiftUI, Google keeps improving Jetpack Compose, both using modern managed languages, with design tooling, without any messy C++ macros and bare bones COM, as if coding Windows UI from the last century.</p><p>Actually in that sense, Windows Forms, WPF and even MFC, are more modern in developer experience than Windows App SDK 1.2 is capable of</p>]]></description></item><item><title>KataOS, Sparrow and RustyHermit added to safe systems article</title><pubDate>Sun, 06 Nov 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20221106</link><guid>http://www.progtools.org/blog.php?entry=20221106</guid><description><![CDATA[<p>I got around updating my <a href="https://www.progtools.org/article_new.php?name=safe_systems&amp;section=compilers&amp;type=tutorial">Safe Systems</a> article with a couple of newer systems that are making use of Rust programming language.</p><p>One set are the KataOS and Sparrow OSes being built on top of the seL4 microkernel for secure embedded development.</p><p>Another one is an unikernel project from the RWTH-Aachen university, that besides being written in Rust, it allows the packaging of  C/C++/Go/Fortran applications into unikernel deployments.</p>]]></description></item><item><title>A better strategy for safer code</title><pubDate>Mon, 31 Oct 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20221031</link><guid>http://www.progtools.org/blog.php?entry=20221031</guid><description><![CDATA[<p>While going through some online discussions today regarding how to write safe code I had a kind of epiphany on how to better spend my advocacy time.</p><p>In the C++ community there is a famous talk from Dan Sak about C++ advocacy for embedded developers still focused on the ways of C, where at a given moment he states <i>"If you're arguing, you're losing."</i>.</p><p>That is indeed a much better approach, writing C++ with safety knobs all turned on, or using compiled managed languages, for tasks that people generaly consider not possible and thus proving them wrong with hard facts of acceptable performance.</p><p>Unfortunely not even that might change some minds, but if there is at least one person changing, that is already a victory.</p><p>Changing the world one small step at a time.</p>]]></description></item><item><title>Tour of C++ book has a new revision</title><pubDate>Sun, 04 Sep 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20220904</link><guid>http://www.progtools.org/blog.php?entry=20220904</guid><description><![CDATA[<p>I just noticed that the 3rd revision of <a href="https://www.informit.com/store/tour-of-c-plus-plus-9780136816485">Tour of C++</a> has just become available.</p><p>While you will need to wait until the end of September to get the dead tree version of the book, the ebook is already available if you want to get it right away.</p><p>It has been updated for C++20, also contains some C++23 related content, and just like any other Bjarne Stroustrup's books, a pleasure to read.</p><p>Already reading my copy :).</p>]]></description></item><item><title>C++/WinRT still not ready to replace C++/CX</title><pubDate>Thu, 07 Apr 2022 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20220407</link><guid>http://www.progtools.org/blog.php?entry=20220407</guid><description><![CDATA[<p>Almost two years ago I had a blog post entitled <a href="https://www.progtools.org/blog.php?entry=20200314">C++/WinRT not yet ready to replace C++/CX</a>, about my disapointment regarding the lack of tooling in C++/WinRT, specially when compared with other C++ GUI frameworks.</p><p>Sadly it seems that these years in between have hardly brought any improvement in this regard, other than Microsoft acknowledging in their March <a href="https://youtu.be/fRpXbB8WUko?t=3219">WinUI Community Call</a> that this is indeed a common complaint.</p><p>Common or not, it is quite clear looking at the updated <a href="https://github.com/microsoft/WindowsAppSDK/blob/main/docs/roadmap.md">roadmap</a>, that improving such tooling will be very low priority and if it comes, it will be late 2023.</p><p>When we look at the public activities across WinUI 3, AppSDK, C++/WinRT, CsWinRT, Rust/WinRT repositories on Github, one must question where are the teams, as it seems they are clearly underresourced with very low commits per day.</p><p>So not only do C++/WinRT users have to wait a couple more years for an experience that they can enjoy today in competing development stacks, the overall future of WinUI as alternative to classical Win32 based development keeps unclear, with many Microsoft teams migrating to Web technolgies instead.</p><p>Sometimes I wonder how product management decisions take place.</p>]]></description></item><item><title>C++ modules example in UWP and C++/WinRT</title><pubDate>Sun, 17 Oct 2021 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20211017</link><guid>http://www.progtools.org/blog.php?entry=20211017</guid><description><![CDATA[<p>Finally managed to make C++20 modules work as part of a C++/WinRT application, targeting UWP.</p><p>For that purpose I have ported my old <a href="/projects.php?project=games&amp;show=astardemo">A* demo application</a> into a full UWP application, dropping the platforms that no longer make sense to me (Android/Windows Phone).</p><p>It was a kind of, lets say, interesting experience having to deal with all module support bugs in the compiler until all pieces of the puzzle finally reached a stated where I can take advantage of modules on my C++ code.</p><p>I have updated the project readme to describe some of the hurdles that still persist in Visual Studio 2019 v16.15, however to make it easier on the readers, I am also listing them here:</p><p>
    <li>Using header units triggers endless amount of macro redefinition warnings</li>
   <li>C++/WinRT and XAML compiler don't understand modules, hence the strange import statements done on header files</li>
    <li>Also why several places header files are included via global module fragments</li>
    <li>Intelisense gives up most of the time and ctrl+space does nothing, or shows plenty of reds while it compiles just fine</li>
    <li>Static analysis doesn't understand modules and fails to process any code</li>
    <li>You might need to kill Visual Studio when trying to navigate across modules as it occasionally hangs</li>
    <li>Mixing modules with pre-compiled headers on the same project doesn't work, so either split into two projects or disable pre-compiled headers</li>
</p><p>Although there is still some work to do, specially some leftovers to fix after the remaining issues get resolved, it is with great satisfaction that I finally managed to use C++ modules after so many years following their development at ISO C++, and major C++ compilers.</p><p>Kudos to everyone involved and looking forward to a modules world in the C++ ecosystem</p>]]></description></item><item><title>.NET 6 is looking quite interesting</title><pubDate>Sun, 05 Sep 2021 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20210905</link><guid>http://www.progtools.org/blog.php?entry=20210905</guid><description><![CDATA[<p>It has been a while since my last .NET 6 post, and with the release date approaching, Microsoft has made quite a few interesting blog posts.</p><p>For starters there are lots of  <a href="https://devblogs.microsoft.com/dotnet/file-io-improvements-in-dotnet-6">performance improvements</a> across all File IO APIs.</p><p>Several comunity <a href="https://devblogs.microsoft.com/dotnet/new-dotnet-6-apis-driven-by-the-developer-community/">contributions</a>, including C like memory management APIs as replacement for the MarshalInterop ones.</p><p>Finally for the  <a href="https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-6/">overall performance overview</a>, better grab a long coffee, or beer, as it is a very lengthy but very worthy read, of how performance has been improved across all layers of the runtime.</p><p>Unfortunely AOT seems to have been partially improved, with full support postponed for .NET 7, so it isn't this the release that will catch up with Delphi, or the already existing .NET Native, but I guess we always have to have something to look forward on upcoming releases.</p><p>Anyway, plenty of stuff to play with when .NET 6 finally reaches GA and we can use it in production.</p>]]></description></item><item><title>.NET 6 is here!</title><pubDate>Sat, 30 Jan 2021 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20210221</link><guid>http://www.progtools.org/blog.php?entry=20210221</guid><description><![CDATA[<p>This week Microsoft just made the first preview release of .NET 6 available.</p><p>The announcement <a href="https://devblogs.microsoft.com/dotnet/announcing-net-6-preview-1/">post</a> described plenty of upcoming goodies, namely ongoing unification, MAUI, AOT with PGO support, .</p><p>Lots of deep explanation and details about what to expect from .NET 6, this year's BUILD might look like quite interesting, regardless of the constraints of ongoing conferences.</p>]]></description></item><item><title>-fanalyzer, my favourite new switch on the upcoming GCC 11</title><pubDate>Sat, 30 Jan 2021 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20210130</link><guid>http://www.progtools.org/blog.php?entry=20210130</guid><description><![CDATA[<p>GCC developers are improving the capabilities of its C static analysis tools, as means to improve code quality.</p><p>As described by the blog <a href="https://developers.redhat.com/blog/2021/01/28/static-analysis-updates-in-gcc-11/">post</a> at the Red-Hat developer's blog, it checks potential memory leaks and memory corruption issues, at compiled time.</p><p>The best security measure to avoid security exploits in memory unsafe languages like C, is to avoid to use them as much as possible.</p><p>However given that this is not possible, for example in IoT and UNIX like kernels, then it is great that such tools are available to help developers writing safer code in languages like C.</p><p>So don't forget, when using C from GCC 11 onwards, <i>-fanalyzer -Wall -Werror</i>.</p>]]></description></item><item><title>Polyglot programming love from Microsoft</title><pubDate>Sun, 24 Jan 2021 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20210124</link><guid>http://www.progtools.org/blog.php?entry=20210124</guid><description><![CDATA[<p>Microsoft just released a bindings generation tool for the Win32 API.</p><p>The initial version supports C#, Rust, with a modern C++ version on the works as per their annoucement <a href="https://blogs.windows.com/windowsdeveloper/2021/01/21/making-win32-apis-more-accessible-to-more-languages/">post</a>.</p><p>Kenny Kerr, responsible for C++/WinRT development, and nowadays leading the Rust/Wint effort has additional details on a <a href="https://kennykerr.ca/2021/01/21/rust-for-windows/">post</a> of his own, specially the introduction which I am quoting below</p><blockquote>I am excited to finally talk about the grand plan we have been working on for some time, namely the unification of the Windows API. No more Win32 here, WinRT there, COM this, UWP that. Just stop it.</blockquote><p>Reading between the lines I am seeing several endevours at play here.</p><p>Rust's adoption at Microsoft keeps increasing, and we shouldn't be surprised it eventually makes into Visual Studio installer.</p><p>By focusing on C#, Rust and modern C++, Microsoft is adopting the programming language selection approach suggested by <a href="https://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/">Microsoft Security Response Center</a>.</p><p>Other .NET languages, might have to lean on C# bindings, but that is anyway not an issue on the CLR, given its original design.</p><p>A plus note on the C# generated bindings, Microsoft is using DirectX for some examples, no doubt due to the endless complaints from many of us how the managed developers were dealt by the DirectX team.</p><p>Finally, it also shows yet another milestone from Project Reunion, merging the UWP and Win32 worlds back into one Windows.</p><p>Whatever might be announced at BUILD 2021, is starting to look interesting.</p>]]></description></item><item><title>Google's Project Zero finds yet another buffer overrun exploit</title><pubDate>Wed, 02 Dec 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20201202</link><guid>http://www.progtools.org/blog.php?entry=20201202</guid><description><![CDATA[<p>Google´s Project Zero has a very lengthy and thorough analysis of an iOS exploit caused by a kernel memory corruption, usually known as buffer overrun, sadly yet another proof that we really need to move on to safer systems programming languages, as every mitigation effort is only delaying the inevitable.</p><p>The  <a href="https://googleprojectzero.blogspot.com/2020/12/an-ios-zero-click-radio-proximity.html">article</a> is available at the usual place in Project Zero's blog.</p><p>Maybe recurrence of similar exploits will help to steer Apple into focusing more heavily into improving Swift for systems programming, instead of relying only in C, Objective-C and C++ for low level coding.</p>]]></description></item><item><title>.NET 5 is here!</title><pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20201115</link><guid>http://www.progtools.org/blog.php?entry=20201115</guid><description><![CDATA[<p>Finally .NET 5 is available as a stable release, and it brings lots of interesting goodies, regarding performance, C# 9, F# 5 language features and tooling for cloud computing, micro services, GUI applications and machine learning across several platforms.</p><p>This week's <a href="https://www.youtube.com/playlist?list=PLdo4fOcmZ0oVWop1HEOml2OdqbDs6IlcI">.NET Conf 2020</a> contains several talks about all these features.</p><p>Also, happy birthday .NET, it has been 20 years improving developer lives.</p>]]></description></item><item><title>C, Go, UWP and on being wrong</title><pubDate>Sun, 04 Oct 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20201004</link><guid>http://www.progtools.org/blog.php?entry=20201004</guid><description><![CDATA[<p>Sometimes there are paths one follows as the way things should be, until being forced to be corrected. The themes today somehow fell under that umbrella.</p><p>I tend to be quite critic of the security issues cause by applications written in the C programming language, as such I was quite supportive of Microsoft's <a href="https://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99">decisions</a> not to pursue C compatibility on their Visual Studio compiler suite.</p><p>However after my previous critic of, it so happened that at CppCon, Microsoft just <a href="https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/">announced</a> C11 and C17 on the upcoming MSVC version.</p><p>I also noticed that the <a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/getting-started-with-umdf-version-2">User-Mode Driver Framework</a>, which was introduced as a C++ COM library, was rewritten in C for the version 2.0.</p><p>So this alongside their newly found Linux love, means me not getting it, and better spend time advocating on how to write better C code instead. It isn't going away on the Windows eco-system, apparently.</p><p>Moving on to Go, another language that although I like many of its ideas, its lack of generic support has always put me off.</p><p>Well for better or worse, thanks to projects like Docker and Kubernetes, and the cloud development platforms built around them, it means that even if one's favourite language is something else, sooner or later, one needs to dive into some project written in Go.</p><p>So wrong again, anyone in the DevOps space is doing themselves a disservice not having at least a passing knowledge of Go, generics or not.</p><p>Finally, I really like UWP, after its clunky start in Windows 8 and Windows 8.1, when Windows 10 came around the whole programming model was finally merged across all kinds of Windows deployment platforms, and .NET Native really felt how .NET 1.0 should have been all along.</p><p>However as Reunion keeps to shaping up, and parallel discussions about .NET 5 on desktop vs UWP, C++/CX vs C++/WinRT tooling, .NET AOT,  it is starting to feel like Project Reunion will just reboot everything back into Windows 7 kind of developer stack, with a couple of UWP goodies thrown in, and every else UWP related will just be quickly forgotten as a bad dream.</p><p>So third time wrong, UWP really isn't the reboot that would actually change Windows development as I hoped for.</p>]]></description></item><item><title>Azure Sphere after all not so secure</title><pubDate>Wed, 05 Aug 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200805</link><guid>http://www.progtools.org/blog.php?entry=20200805</guid><description><![CDATA[<p>Late 2019 Microsoft has started a bounty program to find security issues in Azure Sphere, apply named <a href="https://www.microsoft.com/en-us/msrc/azure-security-lab">Azure Sphere Security Research Challenge</a></p><p>Naturally given its underlying nature of being based on an UNIX like kernel, written in C, meant that several exploits due to memory corruption, double frees and NULL pointers, were quickly found out, despite its sandboxing model.</p><p>The bug fixes for those exploits have now been released as part of <a href="https://techcommunity.microsoft.com/t5/internet-of-things/azure-sphere-20-07-security-enhancements/ba-p/1548973">Azure Sphere 20.07 Security Enhancements</a>.</p><p>The takeway is that anyone that is security conscious should avoid platforms that require C as their main development language. Even Azure Sphere with all its sandboxing and adverstised security wasn't able to survive a red team attack on the platform.</p><p>Using managed languages, or system languages like Ada/SPARK and Rust are the way to go for security conscious developers.</p><p>Or maybe this is the final drop to make <a href="https://www.microsoft.com/en-us/research/project/checked-c/">Checked C</a> finally available out of MSR, or bring some wind into <a href="https://www.microsoft.com/en-us/research/project/project-verona/">Project Verona</a>, but those are themes for other blog posts.</p>]]></description></item><item><title>Adventures with Visual C++'s lifetime checker</title><pubDate>Sun, 28 Jun 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200628</link><guid>http://www.progtools.org/blog.php?entry=20200628</guid><description><![CDATA[<p>Now that I have ported my old A* Demo application into C++/WinRT, using Visual Studio 2019, I decided why not have a look at the Visual C++'s lifetime checker.</p><p>For those not in the known, Visual C++'s lifetime checker was introduced by Herb Sutter at his talk <a href="https://www.youtube.com/watch?v=hEx5DNLWGgA">Writing Good C++14... By Default</a> presented at CppCon 2015.</p><p>Later he has provided more information about the current state, and the Lifeme Profile for C++ Core Guidelines on his <a href="https://herbsutter.com/2018/09/20/lifetime-profile-v1-0-posted/">blog</a>.</p><p>So given that Visual C++ has support for the lifetime profile on its <a href="https://docs.microsoft.com/en-us/cpp/code-quality/using-the-cpp-core-guidelines-checkers?view=vs-2019">Core Checkers</a> static code analysis, I decided to have a go at it with the newly rejuvenated A* Demo codebase.</p><p>I have to say that I ended up having mixed feelings for the current state of the lifetime checker. While it does indeed help prevent many of the traditional C and C++ memory corruption issues due to pointer lifetimes, it also generates lots of false positives.</p><p>I ended up reporting some of the false positives myself, or if they aren't false positives and the code is indeed incorrect, the error messages are inconclusive and don't guide the developers to the possible cause of the lifetime management error.</p><p>So good idea to make C and C++ safer languages, after all 70% of security bugs are caused by such issues as per recent reports, but still far from what languages like Rust and Ada/SPARK are capable of regarding lifetime management.</p>]]></description></item><item><title>A*Demo ported to C++/WinRT</title><pubDate>Sat, 20 Jun 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200620</link><guid>http://www.progtools.org/blog.php?entry=20200620</guid><description><![CDATA[<p>Despite my rant regarding C++/WinRT, I ended up porting an old mini-project, from C++/CX into C++/WinRT, as means to get an appreciation of the C++/WinRT current tooling support.</p><p>The result is now available in the <a href="https://www.progtools.org/projects.php?project=games&amp;show=astardemo">A* Demo</a> section.</p><p>It was an interesting experience, but now I rather focus on .NET 5, C#/WinRT and Project Reunion, as announced during BUILD 2020.</p>]]></description></item><item><title>C# Source Generators, D lifetime prototype, Rust on Azure and WinRT support</title><pubDate>Thu, 30 Apr 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200430</link><guid>http://www.progtools.org/blog.php?entry=20200430</guid><description><![CDATA[<p>Today a couple of interesting news around a few of my favourite languages came together.</p><p>On the .NET eco-system Microsoft just announced the preview release of <a href="https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/">C# Source Generators</a>, which allow for metaprogramming during compile time.</p><p>It is yet another tool for our code generation arsenal in .NET, alongside reflection, T4 templates, expression trees, F# quotations and type providers.</p><p>Actually it is based on the same ideas from F#'s type providers, but applied to C#. Speaking of which, while unfortunely there are no plans to support VB.NET for the time being, they are open to suggestions to add a similar capability to F#'s compiler toolchain.</p><p>Another good news was the release of the <a href="https://dlang.org/changelog/2.092.0.html#ob">ownership/borrowing system</a> for the D programing language.</p><p>This is the first step to integrate lifetime analysis capabilities to D, alongside its GC support, thus bringing one more tool for dealing with memory management into the box. The link above contains a very good description of the initial prototype and what are the main goals for the feature.</p><p>Finally, after a couple of complains from my side regarding the use of Rust on Windows, I have to humble bend to the Rust community and the achievements at Microsoft.</p><p>Not only did the Microsoft Security Response Center publish an article about they are using <a href="https://msrc-blog.microsoft.com/2020/04/29/the-safety-boat-kubernetes-and-rust/">Rust and Kubernetes</a> together, as they used Rust to implement <a href="https://deislabs.io/posts/introducing-krustlet/">Krustlet</a>, an engine to execute WebAssemly on Kubernetes pods.</p><p>They also announced the first public release of <a href="https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/">Rust/WinRT</a>.</p><p>Naturally these are the initial baby steps, but there is hope that eventually we get Rust/WinRT on Visual Studio alongside the other projections already supported for UWP/WinUI.</p><p>So all in all, lots of very interesting news.</p>]]></description></item><item><title>C++/WinRT not yet ready to replace C++/CX</title><pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200314</link><guid>http://www.progtools.org/blog.php?entry=20200314</guid><description><![CDATA[<p>Given that Microsoft has been talking for quite some time that C++/WinRT is the replacement for C++/CX, I have decided to give it a go.</p><p>So for starters I went to MSDN, which has quite a rich set of <a href="https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/">documentation</a> regarding C++/WinRT.</p><p>Given that my focus are graphical interfaces, I decided to follow along with their <a href="https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/binding-property">Bookshelf</a> tutorial.</p><p>So while it appears that C++/WinRT has come a long way since Microsoft decided to adopt the initial project, it still needs to evolve quite a bit to match C++/CX tooling on Visual Studio.</p><p>Some of the issues that I find that downgrade the C++/CX developer experience while using C++/CX are:</p><p><ul>
    <li>Midl files have to be manually taken care of, while C++/CX just handles them for us;</li>
    <li>While we are forced to edit them manually, no support is provided in form of syntax highlighting or Intelisense;</li>
    <li>We are forced to manually copy generated code from Mdil compiler output into the respective translation units;</li>
    <li>Making use of {Binding} requires manually adding more boilerplate;</li>
    <li>For whatever reason, the team is quite into east const, so we get it everywhere now;</li>
    <li>I thought Hungary notation was gone, apparently the examples are keen in using stuff like <i>m_</i> prefixes, as if <i>this</i> did not exist.</li>
    <li>Even Microsoft libraries like <a href="http://microsoft.github.io/Win2D/html/Introduction.htm">Win2D</a> have <a href="https://github.com/Microsoft/cppwinrt/issues/328">integration</a> issues with C++/WinRT.</li>
</ul></p><p>Given its current state I would rather advise Windows developers that have C++/CX codebases to keep using it, and regularly check on C++/WinRT tooling improvements, if any.</p><p>As it stands it feels more like a downgrade on tooling experience, with plenty of room for improvements.</p>]]></description></item><item><title>Awesome Modern C++</title><pubDate>Thu, 30 Jan 2020 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20200130</link><guid>http://www.progtools.org/blog.php?entry=20200130</guid><description><![CDATA[<p>I just became aware of a nice collection of Modern C++ resources,  <a href="https://awesomecpp.com/">Awesome Modern C++</a>, which provides a very
nice list of best practices, books, talks, tooling and libraries to take advantage of C++ features added to the language post C++11.</p><p>Althought it is kind of debatable what <i>Modern C++</i> is all about, one thing that most in the community agree with, is taking advantage of the abstractions and improved security options that C++ brings into the table versus bare bones C.</p><p>As such the <i>Awesome Modern C++</i> is a very good list of resources.</p>]]></description></item><item><title>TamaGo - bare metal Go framework for ARM SoCs</title><pubDate>Sun, 29 Dec 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20191229</link><guid>http://www.progtools.org/blog.php?entry=20191229</guid><description><![CDATA[<p>The 2019 edition of <i>36c3</i> conference of Computer Chaos Club, had a very interesting talk on  <a href="https://media.ccc.de/v/36c3-10597-tamago_-_bare_metal_go_framework_for_arm_socs">TamaGo</a>, yet another attempt to run Go directly on embedded hardware, as secure alternative to C.</p><p>The talk was quite interesting, and the system is already quite mature, given the examples demoed at the end of the talk.</p><p>Naturally, I also updated my safe systems overview regarding bare metal implementations in Go.</p>]]></description></item><item><title> Lilith: x86-64 OS written in Crystal</title><pubDate>Mon, 23 Dec 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20191223</link><guid>http://www.progtools.org/blog.php?entry=20191223</guid><description><![CDATA[<p>As early Christmas gift to the security minded system developers, I just saw the annoucement of <a href="https://github.com/ffwff/lilith">Lilith</a>, an OS written in a patched version of Cristal, withouth giving up on its automatic memory management capabilities.</p><p>Interestingly the author has chosen the same name as the Modula-2 based OS designed by Niklaus Wirth, however they are unrelated.</p><p>In any case, I ended up updating again my safe systems overview with this new OS entry, hoping that the safe systems trend continues.</p>]]></description></item><item><title>Updated Oberon and safe systems overview</title><pubDate>Sat, 30 Nov 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20191130</link><guid>http://www.progtools.org/blog.php?entry=20191130</guid><description><![CDATA[<p>I got contacted by someone from the Active Oberon community, regarding an updated language report. As such, I got to update the existing Oberon overview with links to the language report, new forum and Telegram community channel.</p><p>Also updated my safe systems overview with the Google IO 2019 talk regarding on how Google is making use of Go and Rust to provide a sandboxed enviroment to run GNU/Linux applications on top of Chrome OS.</p>]]></description></item><item><title>Google is adopting Arm’s Memory Tagging Extensions in Android</title><pubDate>Thu, 08 Aug 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20190808</link><guid>http://www.progtools.org/blog.php?entry=20190808</guid><description><![CDATA[<p>Google has <a href="https://security.googleblog.com/2019/08/adopting-arm-memory-tagging-extension.html">announced</a> on their security blog that they plan to adopt Arm’s Memory Tagging Extensions in future Android releases.</p><p>The reasoning behind it is explained on the blog, and it boils down to the
fact that even with all the hardening efforts that have been done up to Android 9 (Pie) release, half of Android security exploits are still related to memory corruption in C and C++ code.</p><p>Given the success Solaris enjoys with similar hardware assisted pointer validation, there is some hope that at least in the context of future Android devices, the security of C and C++ code improves drastically thanks to such measures.</p>]]></description></item><item><title>Java Language Summit 2019 videos now available</title><pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20190804</link><guid>http://www.progtools.org/blog.php?entry=20190804</guid><description><![CDATA[<p>The Java Language Summit 2019 took place this week, with some very interesting updates, namely:</p><p>
    <ul>
        <li>Project Valhalla (value types);</li>
        <li>Project Loom (fiber support);</li>
        <li>Project Panama (JNI replacement with something more developer frindly);</li>
        <li>TornadoVM (running Java across CPU, GPGPU and FPGAs);</li>
        <li>Vectorization support;</li>
        <li>AOT compilation across OpenJ9, Graal and OpenJDK VMs;</li>
    </ul>
</p><p>Lots of interesting issues being debated, regarding the ongoing project status it appears that in spite of all research, and prototypes that have been developed throughout the years, we might still need a couple more until they finally land on a public JVM implementation.</p><p>Regarding AOT compilation, it appears that while it brings a huge improvement for application startup, it still has some compromises regarding language features and peak performance from advanced JIT implementations. So the trend being having a mix of AOT/JIT, with each other helping the other one doing its work. For example, caching generated JIT code and re-using it as AOT for the subsequent run.</p><p>So if any of those themes are of interest to you just head up to the videos <a href="https://www.youtube.com/watch?v=1H4vmT-Va4o&amp;list=PLX8CzqL3ArzXFRVYmbvZfZQ0CQMfIIFCH&amp;index=1">playlist</a>, and enjoy a couple of talks done by some of the brightest minds in the Java ecosystem.</p>]]></description></item><item><title>Lisp Badge, a tiny Lisp microcomputer</title><pubDate>Sat, 12 Jan 2019 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20190112</link><guid>http://www.progtools.org/blog.php?entry=20190112</guid><description><![CDATA[<p>I came across the news that someone has put the effort to design and build an Arduino compatible microcontroller that can be programmed in Lisp instead of Wired (aka C++), it is called <a href="http://www.technoblogy.com/show?2AEE">Lisp Badge</a>.</p><p>The Lisp supported by the board is <a href="http://www.ulisp.com/show?3M">uLisp</a>, a well known Lisp variant for microcontrollers.</p>]]></description></item><item><title>Safe systems article and happy new year!</title><pubDate>Mon, 31 Dec 2018 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20181231</link><guid>http://www.progtools.org/blog.php?entry=20181231</guid><description><![CDATA[<p>Just as the new year is arriving around the corner, I got to finalize an overview about platforms written in <a href="/article_new.php?name=safe_systems&amp;section=compilers&amp;type=tutorial">safe system languages</a> since the early 60's.</p><p>Happy New Year for 2019! All the best for you dear reader, friends and family.</p>]]></description></item><item><title>Windows Forms, WPF and WinUI made open source!</title><pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20181205</link><guid>http://www.progtools.org/blog.php?entry=20181205</guid><description><![CDATA[<p>Yesterday at  <a href="https://channel9.msdn.com/Events/Connect/Microsoft-Connect--2018">Microsoft Connect(); 2018</a>, Microsoft announced that the .NET desktop toolkits are joining .NET Core as open source.</p><p>Quite glad to see that happening, lets see what the .NET open source community does with such oppportunity.</p><p>More information about it at the <a href="https://blogs.msdn.microsoft.com/dotnet/2018/12/04/announcing-net-core-3-preview-1-and-open-sourcing-windows-desktop-frameworks/">.NET Blog</a>.</p>]]></description></item><item><title>Java 10 is around the corner</title><pubDate>Fri, 02 Mar 2018 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20180302</link><guid>http://www.progtools.org/blog.php?entry=20180302</guid><description><![CDATA[<p>Now with Java 10 release around the corner, Azul Systems, has provided on their blog a list <a href="https://www.azul.com/109-new-features-in-jdk-10/">list</a> of 109 changes related to the new release.</p><p>A very interesting read for all Java developers. My favourite ones are local type inference and the continuous improvements related to Graal integration.</p>]]></description></item><item><title>Java 9 is finally here!</title><pubDate>Fri, 22 Sep 2017 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20170922</link><guid>http://www.progtools.org/blog.php?entry=20170922</guid><description><![CDATA[<p>Yesterday Oracle has finally made the final version of Java 9 <a href="http://jdk.java.net/9/">available</a>, with more information
available at the Oracle <a href="https://blogs.oracle.com/java/java-9-release-now-available">blog</a>.</p><p>Besides the well known feature of modularization, I am looking forward to the introduction of a linker and the inital support for AOT
    compilation, to be further improved on Java 10 onwards. And of course the introduction of Graal support.</p><p>As graphical focused developer the JavaFX improvements related to Gtk 3, HiDPI Graphics, Merlin renderer, TIFF support are also quite
    interesting.</p><p>Already migrated all my Java 9 beta installations to the final release.</p><p> Now only have to look forward to the day it will eventually come to Android, hopefully faster than Java 8.</p>]]></description></item><item><title>Android Studio new GPU debugger</title><pubDate>Sun, 30 Jul 2017 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20170730</link><guid>http://www.progtools.org/blog.php?entry=20170730</guid><description><![CDATA[<p>I have been complaining a bit too much on some Android related forums due to the GPU
debugger being removed from Android Studio on the upcoming 3.0 release.</p><p>As it turns out, there is actually a new project called <a href="https://github.com/google/gapid">GAPID</a>, which is supposed to be the successor of the GPU debugging tools.</p><p>However it was just a pile of source code, forcing everyone to get all the required tools to
build the application and integrate it into the development workflows.</p><p>I have been recently contacted by the GAPID team to let me know that now they are generating
<a href="https://github.com/google/gapid/releases">binary packages</a> for all three major desktop OSes.</p><p>So I got to download the variant for Windows, tried it out on a few OpenGL ES examples and must say it worked quite well.</p><p>As I was preparing to write this blog post, I have also noticed that now the GPU trace <a href="https://developer.android.com/studio/debug/am-gpu-debugger-analysis.html">documentation</a> also has a reference to GAPID.</p><p>So looking forward to improvements on the tool, and maybe now I can start playing with Android Studio 3.0 Canary as well.</p><p>As closing note, congratulations to the team, and I wish they get the necessary support from within Google to keep driving this project forward.</p>]]></description></item><item><title>Go and Rust's adoption at Oracle</title><pubDate>Mon, 10 Jul 2017 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20170710</link><guid>http://www.progtools.org/blog.php?entry=20170710</guid><description><![CDATA[<p>Go and Rust have found their use at another IT giant R&amp;D labs, namely Oracle.</p><p>I am a bit late with this information, as they actually <a href="https://blogs.oracle.com/developers/three-new-open-source-container-utilities">announced</a> it last month. It consists of three new projects, two of which in Go and one in Rust for dealing with GNU/Linux containers.</p>]]></description></item><item><title>Writing safer applications with unsafe languages</title><pubDate>Wed, 05 Jul 2017 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20170705</link><guid>http://www.progtools.org/blog.php?entry=20170705</guid><description><![CDATA[<p>So after a few months of silence, it appears security continues to be a relevant
subject across native programming language forums.</p><p>Starting with Visual C++ blog where they have a nice post entitled <a href="https://blogs.msdn.microsoft.com/vcblog/2017/06/28/security-features-in-microsoft-visual-c/">Security Features in Microsoft Visual C++</a>, about all the compiler and library features they have for writing safer C++ code.</p><p>Mozilla shared how they managed to make all <a href="https://blog.mozilla.org/nnethercote/2017/07/05/how-we-made-compiler-warnings-fatal-in-firefox/">warnings compile as errors</a> across such a big codebase like Firefox, thus reducing the surface of possible exploits caused by unsafe code.</p><p>Finally a few well renowned researchers, namely Pascal Cuoq and John Regehr, have written
yet another article about the dangers of <a href="https://blog.regehr.org/archives/1520">undefined behaviours (UB)</a> in C and C++.</p><p>A very interesting article, with an overview about the about 200 UBs that currently exist across the C and C++ standards, many of which not yet managed by modern sanitizers.</p><p>Quoting the last sentences of their conclusion:</p><p><blockquote>
Be knowledgeable about what's actually in the C and C++ standards since these are what compiler writers are going by. Avoid repeating tired maxims like "C is a portable assembly language" and "trust the programmer". 
</blockquote></p><p><blockquote>
Unfortunately, C and C++ are mostly taught the old way, as if programming in them isn't like walking in a minefield. Nor have the books about C and C++ caught up with the current reality. These things must change.
</blockquote></p><p>Basically C and C++ developers are like sushi masters dealing with very sharp knives, and learning when to put those metal gloves does come in handy.</p>]]></description></item><item><title>Cloudflare, C, Security and distributed systems</title><pubDate>Tue, 28 Feb 2017 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20170228</link><guid>http://www.progtools.org/blog.php?entry=20170228</guid><description><![CDATA[<p>What a nice way to start my 2017's post than to talk about security!</p><p>Last week's Cloudflare parser bug, appropriatly named <a href="https://en.wikipedia.org/wiki/Cloudbleed">Cloudbleed</a>, is a
good example why it is about time to stop plugging C code into the network.</p><p>Once more we had a large scale exploit caused by a <a href="https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/">buffer overrun</a>,
as it typically happens in C code.</p><p>At this point it is good to recall C. A. R. Hoare's <a href="http://amturing.acm.org/award_winners/hoare_4622167.cfm">lecture</a> at the moment of his Turing award back in 1981.</p><p><blockquote>
The first principle was security: The principle that every syntactically incorrect program should be rejected by the compiler and that every syntactically correct program should give a result or an error message that was predictable and comprehensible in terms of the source language program itself. Thus no core dumps should ever be necessary. It was logically impossible for any source language program to cause the computer to run wild, either at compile time or at run time. A consequence of this principle is that every occurrence of every subscript of every subscripted variable was on every occasion checked at run time against both the upper and the lower declared bounds of the array. Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to - they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law.
</blockquote></p><p>So almost 40 years later, we keep using languages that don't provide any mechanism to do bounds checking other than relying on external tools, that the majority of the
community tends to ignore.</p><p>For anyonet that cares about security, C should be relegated to the same though process as Assembly, using it just where no other alternative is viable, e.g. UNIX like kernels,
or very tiny microcontrollers, for anything else there are better, safer languages with compiler toolchains that also allow for AOT compilation to native code, including the
creation of dynamic libraries.</p><p>A not exhaustive small list of such languages could be:</p><ul>
<li>Ada;</li>
<li>ATS;</li>
<li>C++11 onwards (modern style, not using C like language features);</li>
<li>C# (via .NET Native);</li>
<li>D;</li>
<li>Delphi;</li>
<li>Free Pascal;</li>
<li>Go;</li>
<li>Idris;</li>
<li>Java (via ExcelsiorJET, J9, JamaicaVM, ...);</li>
<li>Nim;</li>
<li>OCaml;</li>
<li>Oberon-07;</li>
<li>Rust;</li>
<li>SPARK;</li>
<li>Swift;</li>
</ul><p>Even on APIs that require a C interface for wider FFI acceptance, a safer alternative is to make use of one of the above languages for the implementation and then provide C like entry points</p><p>Of course on scenarios that really require C, like UNIX kernels, given their interwined relationship. Or microcontrollers where even using Assembly is a challenge regarding code
size, at very least the tools and processes that help tame C, like <i>warnings as errors</i>, static analysers, code reviews, CPU bounds checking (e.g. Intel MPX), fuzzing, among
others, should be part of the overall development process.</p>]]></description></item><item><title>CppCon 2016 Videos and Presentations are out</title><pubDate>Sat, 24 Sep 2016 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20160924</link><guid>http://www.progtools.org/blog.php?entry=20160924</guid><description><![CDATA[<p>This week two interesting conferences took place, CppCon 2016 and Java ONE 2016, but I will
leave Java for another day.</p><p>Right now my focus is going through the already available set of presentations and videos.</p><p>Videos are coming up slowly on YouTube, but the ones already available are quite good:</p><ul>
<li>Bjarne's <a href="https://www.youtube.com/watch?v=_wzc7a3McOs">The Evolution of C++ Past, Present and Future</a>;</li>
<li><a href="https://www.youtube.com/watch?v=zBkNBP00wJE">Rich Code for Tiny Computers: A Simple Commodor 64 Game in C++17</a>, for those nostaligic about the C64;</li>
<li>Building up on that talk, Dan Sak's <a href="https://www.youtube.com/watch?v=D7Sd8A6_fYU">extern c: Talking to C Programmers about C++</a>;</li>
</ul><p>Dan Saks talk was quite entertaining, specially when coupled with Jason Turner's talk. Although C++ does suffer from the same ways to write insecure
code as C, due to its language compatibility, it does provide lots of improvements for writting safer code with zero overhead abstractions. So transitioning
to C++, while taking advantage of said features, would already be an improvement in our actual computing stacks. The problem is getting the message through.</p><p>And if those developers don't believe in C++, let alone switching to something like Swift, D or Rust unless it gets imposed on them.</p><p>As mentioned the slides are also available and you can get most of them from Github'a <a href="https://github.com/CppCon/CppCon2016">repository</a>.</p><p>Kenny Kerr also presented his work at Microsoft on replacing C++/CX with standard C++17 features, with the current name of C++/WinRT as framework name, and the related slides are made available on his <a href="https://moderncpp.com/">web site</a>.</p><p>Going back to the presentations, there were quite a few interesting ones related to functional programming in C++, use of algorithms and type safety, removal of deprecated features, heterogenous and parallel computing, IoT and C++'s use on the games industry.</p><p>I am also looking  forward to having Herb Sutter's talk available on YouTube, as he was presenting best practices to take advantage of automatic memory management in C++ and a new library for deferred reference counting.</p>]]></description></item><item><title>Time to focus on Android with Windows Phone's demise</title><pubDate>Wed, 10 Aug 2016 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20160810</link><guid>http://www.progtools.org/blog.php?entry=20160810</guid><description><![CDATA[<p>Given the latest movements in the Windows Phone eco-system, I decided it isn't worth any longer
to keep developing applications for the platform, namely:</p><ul>
<li>Microsoft fired another set of <a href="http://www.theregister.co.uk/2016/07/29/microsoft_redundancies/">employes</a> working in Windows Phone teams;</li>
<li>Amazon <a href="http://www.winbeta.org/news/amazon-retire-windows-phone-app-august-15th">announced</a>
they would drop their WP app;</li>
<li>The former Nokia Here Maps, also <a href="http://360.here.com/2016/03/15/important-information-about-here-apps-on-windows-phone/">dropped</a> the platform;</li>
<li>Microsoft's own Skype, <a href="http://blogs.skype.com/2016/07/20/skype-the-journey-weve-been-on/">dropped</a> support for 8.x yet it keeps XP support;</li>

</ul><p>So it was quite fun to develop some proof of concept applications for the Windows Phone 8.x with C# and C++/CX, but given all these changes
it is quite obvious that the future of UWP is everywhere but the mobile space.</p><p>It will surely thrive on the desktop, hybrid laptops, HoloLens and XBox, but I very much doubt that there is any life left on mobile phones for it.</p><p>As such I have been focusing only on Android and to finish with a positive note I was quite happy to find out that the upcoming Android Studio 2.2 has a much
improved support for C++, specially the new integration with CMake.</p><p>Although Google doesn't state it officially, it seems that ndk-build and
the Gradle experimental plugin might eventually both be deprecated and replaced by the newly introduced CMake support.</p>]]></description></item><item><title>Virtual Machines Summer School 2016 videos are now available</title><pubDate>Mon, 25 Jul 2016 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20160725</link><guid>http://www.progtools.org/blog.php?entry=20160725</guid><description><![CDATA[<p>The videos from this year's The Virtual Machines Summer School have been published and are
now <a href="http://soft-dev.org/events/vmss16/">online</a>.</p><p>There are lots of interesting talks available, the ones I have found most interesting were:
<ul>
<li>Bits of Advice for the VM Writer</li>
<li>Building High Performance, Fully Concurrent Garbage Collectors</li>
<li>A Concise and Opinionated History of Virtual Machines</li>
</ul>
</p><p>The talks were full of juicy technical details about implementing VMs and improving their performance.</p>]]></description></item><item><title>C++17 and C++ NDC track</title><pubDate>Sun, 26 Jun 2016 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20160626</link><guid>http://www.progtools.org/blog.php?entry=20160626</guid><description><![CDATA[<p>The C++17 Committee Draft (CD) just got approved last Saturday, the 25th. There
is a nice <a href="https://www.reddit.com/r/cpp/comments/4pmlpz/what_the_iso_c_committee_added_to_the_c17_working/">list</a>
of all the features that got approved over at Reddit.</p><p>Also the NDC conference organizers just release their videos and the ISO C++ web site has a
<a href="https://isocpp.org/blog/2016/06/ndc-oslo-2016-videos-are-online">list</a> of all the C++ related
presentations.</p><p>From those ones I personally have enjoyed:
<ul>
<li>The ones from Andrei Alexandrescu as always</li>
<li>The C++ Type System is your Friend</li>
<li>Using the C++ STL Without Dynamic Memory</li>
<li> The C++ and CLR Memory Models, quite interesting for anyone doing multicore programming.</li>
</ul>
</p>]]></description></item><item><title>Rust 1.4 got released!</title><pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20151029</link><guid>http://www.progtools.org/blog.php?entry=20151029</guid><description><![CDATA[<p>Rust just got a new <a href="http://blog.rust-lang.org/2015/10/29/Rust-1.4.html">release</a>.</p><p>The best news for those of us that spend most of our time on Windows is the integration wiht the Visual C++ tooling, instead
of relying on the MinGW/MSYS2 toolchain.</p><p>Time to update the current installation.</p>]]></description></item><item><title>JavaOne 2015 is ongoing!</title><pubDate>Mon, 26 Oct 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20151026</link><guid>http://www.progtools.org/blog.php?entry=20151026</guid><description><![CDATA[<p>The JavaOne 2015 started last Sunday and the <a href="https://www.oracle.com/javaone/on-demand/index.html">keynotes</a> are
already available to watch on demand for those not able to attend.</p><p>Looking forward to the presentations regarding the modules work in Java 9, the value types and improved native interoperability
targeted for Java 10.</p>]]></description></item><item><title>C++ Core Guidelines, improving C++ safety</title><pubDate>Sun, 27 Sep 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150927</link><guid>http://www.progtools.org/blog.php?entry=20150927</guid><description><![CDATA[<p>This week the <a href="http://cppcon.org/">CppCon 2015</a> took place, with a very important presentations
done by Bjarne Stroustrup and Herb Sutter, among a few other C++ celebrities.</p><p>They presented the <a href="https://github.com/isocpp/CppCoreGuidelines">C++ Core Guidelines</a> a set of guidelines for using C++ well, focused on writing
safe code.</p><p>Currently the main focus was on memory safety, but more areas are planned like e.g. concurrency.</p><p>The guidelines are written in a way that they can be enforced by either a compiler or a static analysis tool. Herb Sutter
and Neil MacIntosh demoed the prototype that Microsoft is planning to deliver with Visual Studio 2015 Update 1.</p><p>One of the most interesting outcomes from the guidelines is that C++ community is aware of the work being
done on Rust and see affine types as a way to improve C++'s safety. However instead of making the language even
more complex, the plan is that the same type of ownership rules can be validated with help of a guidelines validation
tool.</p><p>As someone that likes memory safe languages, I admire the work the C++'s community is putting on safety.</p>]]></description></item><item><title>Rust 1.3 Released</title><pubDate>Tue, 22 Sep 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150922</link><guid>http://www.progtools.org/blog.php?entry=20150922</guid><description><![CDATA[<p>Rust version 1.3 has just been <a href="http://blog.rust-lang.org/2015/09/17/Rust-1.3.html">released</a>. You can get it at the usual
<a href="https://www.rust-lang.org/">place</a>
</p><p>The main focus were performance and improving Windows support, which should be fully done by the 1.4 release.</p>]]></description></item><item><title>Videos from 2015 C++ Russia</title><pubDate>Sun, 14 Jun 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150614</link><guid>http://www.progtools.org/blog.php?entry=20150614</guid><description><![CDATA[<p>From all talks shown at C++ Russia, two of them called my attention for:</p><ul>
<li><a href="https://www.youtube.com/watch?v=eCUfzvz7Z20&amp;index=3&amp;list=PLrs_DcVZNww22J_uDSJn7bLNOlly7n8p2">Bartosz Milewski. Categories for the Working C++ Programmer</a></li>
<li><a href="https://www.youtube.com/watch?v=N0Tj2bDxQGo&amp;index=5&amp;list=PLrs_DcVZNww22J_uDSJn7bLNOlly7n8p2">Mikhail Matrosov. C++ without new and delete </a></li>
</ul><p>Both talks are about themes that bring modern C++ forward in terms of explaining how to enjoy memory safe programming, even if the
language is unsafe by default. And also how to enjoy functional programming in C++.</p><p>The presentation language is English.</p>]]></description></item><item><title>Swift goes open source. OpenGL gets sidestepped by Metal</title><pubDate>Sun, 07 Jun 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150608</link><guid>http://www.progtools.org/blog.php?entry=20150608</guid><description><![CDATA[<p>Apple just announced on the WWDC 2015 Keynote that Swift is being made open source and available across multple
OSes. I wonder how this will impact Rust, given the languages similarities.</p><p>Metal is now available on Mac OS X as well and all the accelerated rendering frameworks that were
built on top of OpenGL have been migrated to use Metal instead. This might be the start of OpenGL dismissal
on the Apple platforms.</p><p>I doubt now that Apple will spend any effort improving OpenGL support or adding Vulkan support on their operating systems.</p><p>So in a twist of irony, the same company that rescued OpenGL from being ignored by game developers, by including it as the iOS
3D API, decides to replace it with its own API.</p>]]></description></item><item><title>Windows Phone the way of OS/2 ?</title><pubDate>Sun, 07 Jun 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150607</link><guid>http://www.progtools.org/blog.php?entry=20150607</guid><description><![CDATA[<p>For the upcoming Windows 10, Microsoft has been researching easing the life
of developers from iOS and Android eco-systems to bring their applications into the
Windows eco-system.</p><p>Android migration support will be support be done via
<a href="https://dev.windows.com/en-us/uwp-bridges/project-astoria">Project Astoria</a>,
while iOS support will be provided via <a href="https://dev.windows.com/en-us/uwp-bridges/project-islandwood">Project Islandwood</a>.</p><p>While both share the common goal of running other OS applications as Universal Windows Applications,
they offer different levels of integration.</p><p>Project Astoria will offer Android compatibility inside of a container environment, a kind
of Windows Android Runtime, even if the example is a bit stretched.</p><p>Whereas the Project Islandwood, will make Objective-C a first class language in Visual Studio,
offering the same OS access level than C++ enjoys.</p><p>In any case, it seems that Microsoft might be trying their own version of the OS/2 compatibility
that ended up killing the OS.</p><p>While it is clear the OS needs a big push to make it relevant for the developers, I am not sure if
it was a good decision, given how similar attempts have continuously failed at it. </p>]]></description></item><item><title>DConf 2015</title><pubDate>Mon, 01 Jun 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150601</link><guid>http://www.progtools.org/blog.php?entry=20150601</guid><description><![CDATA[<p>While the world was focused on Google IO 2015, other interesting events were happening. One
of those events was <a href="http://dconf.org/2015">DConf 2015</a>. The
developer's conference for the D programming language.</p><p>The slides are already available from the respective talks that are listed on the 
conference's <a href="http://dconf.org/2015/schedule/index.html">schedule</a>.</p><p>The non edited videos are already available on YouTube for those eager to watch
what happened at the conference:
<ul>
<li><a href="https://www.youtube.com/watch?v=-OCl-jWyT9E">Day 1, afternoon</a></li>
<li><a href="https://www.youtube.com/watch?v=AH35IxWkx8M">Day 2</a></li>
<li><a href="https://www.youtube.com/watch?v=oA1exjdEIWw">Day 3</a></li>
</ul>
</p><p>Better versions will be later posted. Just watch out the D programming language
<a href="http://dlang.org/">website</a> for the news.</p><p>Some of the more interesting ones for me were:
<ul>
<li>How D is being used to implement a storage system.</li>
<li>A case study about D being used for Hedge Fund development</li>
<li>Chuck Allison 's talk about his transition from C++ to D</li>
<li>Andrei Alexandrescu's talk about the new allocators coming to D</li>
</ul>
</p><p>Just hop into the web site, as there are quite a few interesting ones, besides those.</p>]]></description></item><item><title>Finalizing my A* Search exercise</title><pubDate>Tue, 26 May 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150526</link><guid>http://www.progtools.org/blog.php?entry=20150526</guid><description><![CDATA[<p>After playing around with Qt, SDL and other attempts for a portable implementation
between Android and Windows Phone, my experiment is now coming to an end.</p><p>It was an interesting experiment, combining Java and C++ on the Android side and C++ with C++/CX on
the Windows Phone/Store side.</p><p>Althought the application isn't fully productified, the goal of understanding the effort of writing
portable applications without additional third party libraries has been achieved.</p><p>For companies targeting multiple platforms, Qt and Xamarin are really the best way to go native. Qt has improved a lot
since my last rant. The effort to add aditional native wrappers is smaller than the whole development process.</p><p>However for single developers, it might be better to focus on single platform. Those portability layers add up
an extra cost to the whole development process, specially in terms of extra wrappers and debugging, which might
be too costly for single developers.</p><p>All in all, it was very rewarding experience.</p><p>The final <a href="/projects.php?project=games&amp;show=astardemo">result</a> is now available on the web site.</p>]]></description></item><item><title>Rust has finally reached version 1.0</title><pubDate>Fri, 15 May 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150515</link><guid>http://www.progtools.org/blog.php?entry=20150515</guid><description><![CDATA[<p>Time to celebrate for fans of ML languages and memory safe systems programming. The first
stable version of Rust has been <a href="http://blog.rust-lang.org/2015/05/15/Rust-1.0.html">released</a>!</p><p>Quite a different language when compared with the original design, still it was for the better.</p><p>I am looking forward to see how its adoption is going to turn out.</p><p>Congratulations to everyone involved in making it come true.</p>]]></description></item><item><title>Functional Programming in Swift</title><pubDate>Sat, 18 Apr 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150418</link><guid>http://www.progtools.org/blog.php?entry=20150418</guid><description><![CDATA[<p>Just watched a <a href="http://realm.io/news/functional-programming-swift-chris-eidhof/">presentation</a> from
Chris Eidhof about functional programming in Swift.</p><p>He goes over the process of adapting what are originally imperative OO algorithms into functional ones.</p><p>Quite interesting to watch for those thinking about moving over from Objective-C into Swift, specially how to adapt multi-paradigm
languages.</p>]]></description></item><item><title>Rust 1.0 beta has been released!</title><pubDate>Sat, 04 Apr 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150404</link><guid>http://www.progtools.org/blog.php?entry=20150404</guid><description><![CDATA[<p>The Rust team just <a href="http://blog.rust-lang.org/2015/04/03/Rust-1.0-beta.html">announced</a> the release of
the 1.0 beta version.</p><p>The date of a 1.0 stable release is now 6 weeks away, according to the current plan.</p><p>I wish Rust becomes mainstream, as a way to increase the set of available ML based languages to choose from.</p>]]></description></item><item><title>Make a Lisp. Polyglot tutorial for interpreters.</title><pubDate>Sun, 08 Mar 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150308</link><guid>http://www.progtools.org/blog.php?entry=20150308</guid><description><![CDATA[<p>A recent discussion on HN made me aware of the project <a href="https://github.com/kanaka/mal">Make a Lisp</a>.</p><p>An interesting idea of following a multi-step tutorial on how to implement a Clojure inspired Lisp interpreter proposed by Joel Martin.</p><p>If you are into programming language development, just clone the Github repository, pick your favourite programming language and have a go at the implementation guide.</p>]]></description></item><item><title>Rust 1.0.0.alpha.2 released</title><pubDate>Tue, 24 Feb 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150224</link><guid>http://www.progtools.org/blog.php?entry=20150224</guid><description><![CDATA[<p>Mozilla has recently <a href="http://blog.rust-lang.org/2015/02/20/Rust-1.0-alpha2.html">released</a>
the Rust 1.0.0.alpha.2 version.</p><p>Another step closer to having version 1.0.0 ready for prime time.</p><p>Really looking forward to have another modern alternative for systems programming.</p>]]></description></item><item><title>CoreCLR has now landed on GitHub!</title><pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20150203</link><guid>http://www.progtools.org/blog.php?entry=20150203</guid><description><![CDATA[<p>Microsoft just <a href="http://blogs.msdn.com/b/dotnet/archive/2015/02/03/coreclr-is-now-open-source.aspx">announced</a>
that the CoreCLR component for the open source.</p><p>This is really great. Now besides having Mono as alternative implementation for .NET, we have the platform
owner bringing to reality what was discussed a few months ago about embracing the .NET community across platforms.</p><p>Nowadays I really enjoy the platform and have lots of fun developing C# and F# applications on it.</p><p>Quite funny to lock back to .NET early days, which I was priviledged to take part on, thanks to the company I was working
at the time being a Microsoft Partner.</p><p>Like many Java devotees, I loudly complained about .NET being a flagrant copy of Java.</p><p>Fast forward almost 15 years and while both platforms still share a lot of concepts and frameworks, they are quite
different nowadays.</p><p>And my opinion also changed, regardless of the business reasons behind its inception, .NET is a very good platform to develop
software on, and .NET Native will make it even better.</p><p>So it is quite pleasing to see Microsoft sharing .NET with the world at large, and with it, allow developers outside
the Windows eco-system to also be able to deploy .NET based applications on their platform of choice.</p>]]></description></item><item><title>C++14 Libraries</title><pubDate>Tue, 04 Nov 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20141104</link><guid>http://www.progtools.org/blog.php?entry=20141104</guid><description><![CDATA[<p>While browsing for C++14 related information, I discovered that the
<i>C++ Rocks!</i> website contains a 
<a href="http://cpprocks.com/spotlight-on-libraries-relying-on-c14/">list</a>
of C++14 compliant libraries.</p><p>Have a look at them, they make quite a good use of Modern C++ features.</p><p>There are libraries for a LINQ-like usage, unit testing, JSON parsing, image processing,
safe string formating, reactive functional programming and many others.</p>]]></description></item><item><title>Rust on Windows.</title><pubDate>Mon, 03 Nov 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20141103</link><guid>http://www.progtools.org/blog.php?entry=20141103</guid><description><![CDATA[<p>I just managed to get <a href="http://www.rust-lang.org/">Rust</a> 0.12.0 running on Windows!</p><p>This is great signs of the progress done by the Rust team. As for the previous versions still had a few
issues to be installed into Windows and specific mingw versions.</p><p>Finally I am able to play with it on my work laptop. Sweet!</p>]]></description></item><item><title>CppCon videos being now made available.</title><pubDate>Sat, 04 Oct 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20141004</link><guid>http://www.progtools.org/blog.php?entry=20141004</guid><description><![CDATA[<p>The biggest C++ conference of the year, CppCon, ended a couple of weeks ago.</p><p>The videos are now available at
<a href="https://www.youtube.com/watch?v=tOxi-cH7n8A&amp;list=UUMlGfpWw-RUdWX_JbLCukXg&amp;index=1">YouTube</a>
and the slides at <a href="https://github.com/CppCon/CppCon2014/tree/master/Presentations">Github</a>.</p><p>Some of the best talks were related to the use of modern C++, meaning to use the C++ collections library, RAII and
automatic memory management. C like coding should be left the the few cases where every performance increase counts.</p><p>Now that C++ has lambdas, a few of talks were also focused in functional programming, which was quite interesting to see
the community embracing functional programming, specially given that &lt;algorithm.h&gt; already exists since C++98.</p><p>An interesting talk to get to know the point of view of the gaming industry about C++ was Mike Acton's talk about
data oriented design and its use in game development. Althought I don't agree with some of his points of view, his talk
is quite interesting.</p><p>All in all, modern C++ is looking quite good and I have to conceed a few of my old complaints are no longer valid when
compared against C++14.</p>]]></description></item><item><title>Qt is still not quite ready for mobile. A short rant.</title><pubDate>Sun, 21 Sep 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140921</link><guid>http://www.progtools.org/blog.php?entry=20140921</guid><description><![CDATA[<p>During the last days I have tried to use Qt with C++ to give an UI to my A* search
implementation that I also could easily port between the desktop and mobiles platforms I
have at my disposal.</p><p>As it usually happens in what we, software developers, consider a simple task. It ended
up taking more time than expected with disapointing results.</p><p>The first issue was the size. 40 MB is just too much for a simple window that renders a
map with the respective path, if found. Specially when targeting devices where space is at premium.</p><p>Then came the first showstopper. When I tried to deploy the application to Android, the
file dialog that gets shown is a standard desktop one. Impossible to use in tiny screens and completly
out of place in Android.</p><p><img src="/articles/images/qt-screen.png" height="300"/></p><p>The current Qt version is 5.3 and apparently the upcoming 5.4 will sort out this issue. But
only when using Qt Quick for the UI as pure Qt/C++ seems to be on the way out.</p><p>I pondered to write a file dialog myself, but that would beat the purpose of using a multi-platform toolkit in first place.</p><p>So in order to prepare the application for the updated controls, a rewrite was in order. Which led
to more wasted time as I tried to understand the differences between the initial QML version and the
current one, how to recode the C++ widgets to be usable from QML and fighting the QML editor that
had some issues seeing the latest changes from the C++ side.</p><p>This also added the complexity of having yet another layer in this portability sandwich. In order
to work around an usability problem, not only did my program had to deal with the C++ and Java interactions.
Now it also needed to take care of Qt Quick (JavaScript) and C++ interactions.</p><p>After the re-write was finished and working properly on the simulator, it was time to deploy it into
real devices. Only to be greeted by an empty white screen!</p><p>So in conclusion, my Qt experience was a failure. With the amount of time I lost fighting these issues,
I could have implemented an Android and Windows Phone UIs using their native supported languages instead.
And the overall UX that I could provide would be much better.</p><p>Which was in fact, what I ended up doing. Ditching Qt and a final re-write using only the technologies
provided with the mobile SDKs.</p><p>Sometimes too much abstraction hinders, instead of helping.</p>]]></description></item><item><title>CppCon 2014 Speaker Materials</title><pubDate>Mon, 15 Sep 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140915</link><guid>http://www.progtools.org/blog.php?entry=20140915</guid><description><![CDATA[<p>The C++ conference of the year, CppCon 2014, took place last week and it was a huge
success.</p><p>According to Herb Sutter is was a very good
<a href="https://isocpp.org/blog/2014/09/trip-report-cppcon-2014">conference</a> as C++11 and C++14 standards really
brought a new life into the language. Thanks to the missteps of other language vendors, currently
C++ is the only language common to all mobile SDKs.</p><p>There were lots of talks about modern C++ and also from the gaming industry.</p><p>Just take the <a href="https://github.com/CppCon/CppCon2014">presentations</a> while they are still hot.</p>]]></description></item><item><title>C++14 is now the latest C++ standard revision</title><pubDate>Fri, 19 Sep 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140909</link><guid>http://www.progtools.org/blog.php?entry=20140909</guid><description><![CDATA[<p>This is what happens when one is on vacations.</p><p>The new <a href="https://isocpp.org/blog/2014/08/we-have-cpp14">C++14</a> got released and I just recently got to check it.</p><p>This is another step improving the language in terms of safety and modern paradigms. Still looking forward to eventually have
lite concepts and modules support, but that is only planned for the next revision.</p><p>While C++ is not Ada in terms of safety, C++11/14 does improve a lot the ability to write safe code when the corresponding
language abstractions are taken into use.</p><p>Michel Wong does provided an C++14 <a href="https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/c_14_is_ratified_the_view_from_the_june_2014_c_standard_meeting?lang=en">overview</a> on IBM's C/C++ Cafe</p><p>Now lets see how long all major C++ compilers take to achieve full compliance, on desktop, server and embedded platforms.</p>]]></description></item><item><title>An introduction to Rust for OCaml programmers at air mozilla presentations</title><pubDate>Sun, 17 Aug 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140817</link><guid>http://www.progtools.org/blog.php?entry=20140817</guid><description><![CDATA[<p>There is a  <a href="https://air.mozilla.org/introduction-to-rust-for-ocaml-programmers/">talk</a>
at the air mozilla website about Rust for developers with ML experience, namely OCaml.</p><p>I like how Rust is evolving towards the 1.0 version.</p>]]></description></item><item><title>Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language</title><pubDate>Sun, 27 Jul 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140727</link><guid>http://www.progtools.org/blog.php?entry=20140727</guid><description><![CDATA[<p>A couple of months ago, Anil Madhavapeddy, one of the main drivers behind the <a href="http://www.openmirage.org/">Mirage</a> operating system
was interviewed at the Software Engineering Radio.</p><p>I just found about it now and was quited pleased with the interview.</p><p>Their approach in using a functional programming language like OCaml for operating system design, with
emphasis in correctness and security is the way forward for operating system design in the 21st century.</p><p>Nowadays we have stagnated with lots of UNIX clones, and approaches like this are commendable, by trying to
improve the operating systems architectures. Specially by proving it is possible to use a language like OCaml
for such tasks.</p><p>Without further ado, the interview is available <a href="http://www.se-radio.net/2014/05/episode-204-anil-madhavapeddy-on-the-mirage-cloud-operating-system-and-the-ocaml-language/">here</a>.</p>]]></description></item><item><title>Swift, the new language on Mac OS X and iOS ecosystems</title><pubDate>Fri, 06 Jun 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140604</link><guid>http://www.progtools.org/blog.php?entry=20140604</guid><description><![CDATA[<p>The best announcement at this year's WWDC keynote was a new programming language developed by Apple, named Swift.</p><p>The language has a certain ML feel to it, my favourite features being:</p><ul>
<li>Descriminate unions</li>
<li>Pattern matching</li>
<li>ML type inference</li>
<li>Extension methods</li>
<li>Generics</li>
<li>Automatic memory management</li>
<li>Value types</li>
<li>Memory safe</li>
</ul><p>The associate tooling also has some relevant features:</p><ul>
<li>AOT compilation to native code (really like how Apple favours AOT over JIT)</li>
<li>REPL with an interactive storyboard for exploratory programming</li>
<li>Objective-C interoperability for code reuse</li>
</ul><p>I am looking forward to see Swift take Objective-C's as the main programming language in the Mac ecosystem. It might not be Dylan, but it is quite close.</p>]]></description></item><item><title>Oberon article updated with new download information</title><pubDate>Mon, 19 May 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140519</link><guid>http://www.progtools.org/blog.php?entry=20140519</guid><description><![CDATA[<p>The developer responsible for Oberon/A2/AOS ISO images just notified my that the location
has changed.</p><p>The <a href="/article.php?name=oberon&amp;section=compilers&amp;type=tutorial">article</a> has been updated accordingly. Many thanks for the given feedback.</p>]]></description></item><item><title>Lisp, Clojure, F# set of talks</title><pubDate>Sat, 22 Mar 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140322</link><guid>http://www.progtools.org/blog.php?entry=20140322</guid><description><![CDATA[<p>I just watched a set of talks around functional programming, all of
them very interesting.</p><ul>
<li><a href="https://skillsmatter.com/skillscasts/4484-build-your-own-lisp-for-great-justice">Build Your Own Lisp for Great Justice</a>,
by Bodil Stokke.</li>

<li><a href="https://skillsmatter.com/skillscasts/4485-my-other-operating-system-is-a-mirage">My other operating system is a Mirage</a>,
by Anil Madhavapeddy.</li>

<li><a href="https://skillsmatter.com/skillscasts/4964-railway-oriented-programming">Railway Oriented Programming</a>,
by Scott Wlaschin.</li>

<li><a href="http://www.infoq.com/presentations/fp-languages-bug-free-fault-tolerant">
Programming, Only Better</a>, by Bodil Stokke.</li>

</ul><p>The first three talks are located at <i>Skills Matter</i> and require registration to watch them, but it very
worthwhile.</p><p>Quite interesting seeing functional programming finally becoming just one more tool in our toolbox.</p>]]></description></item><item><title>TownGL sample available</title><pubDate>Sun, 16 Mar 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140316</link><guid>http://www.progtools.org/blog.php?entry=20140316</guid><description><![CDATA[<p>A new graphics project, <a href="http://progtools.org/projects.php?project=graphics&amp;show=towngl">TownGL</a>,
has been added to the section.</p><p>It is a port of an old exercise initially done in C with OpenGL 1.1. back in 1999, to two distinct modern platforms.</p><p>The Web, via JavaScript with WebGL and ThreeJS libraries.</p><p>The native mobile world, via C++11 with OpenGL ES and SDL 2.0, only Android was tested thus far.</p><p>The main goal was to refresh a bit my OpenGL knowledge, while a the same time having some fun both with JavaScript and C++.</p>]]></description></item><item><title>Controling the past to direct the future</title><pubDate>Sat, 15 Mar 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140315</link><guid>http://www.progtools.org/blog.php?entry=20140315</guid><description><![CDATA[<p>Just watched a <a href="http://www.infoq.com/presentations/past-present-future-programming">presentation</a>
by Gilad Bracha funnily named <i>"Onward! - Does Thought Crime Pay?"</i>.</p><p>The point being made, is how more productive and coherent languages like Lisp, Smalltalk, Beta, Newspeak
were, and how they failed to impress the average developers, due to the hard time innovators have changing the present
mindset of how things should be.</p><p>Most so called modern languages, are actually rediscovering what these languages offered in terms of features and
tooling, but usually done halfway. Which only offers a kind of experience, when compared how it use to feel
using such functionality.</p><p>So language designers should look properly look into the past, when designing the experience of the
programming languages of the future.</p><p>Very interesting talk, as Gilad Bracha always does.</p>]]></description></item><item><title>D port of the memory queue tutorial updated</title><pubDate>Mon, 24 Feb 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140224</link><guid>http://www.progtools.org/blog.php?entry=20140224</guid><description><![CDATA[<p>The D port of the Memory Queue tutorial, <a href="http://progtools.org/article.php?name=queue-d&amp;section=compilers&amp;type=tutorial">queue-d</a>
, has been updated.</p>]]></description></item><item><title>Writing a Nanopass Compiler</title><pubDate>Sun, 09 Feb 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140209</link><guid>http://www.progtools.org/blog.php?entry=20140209</guid><description><![CDATA[<p>So this weekend I have been busy with Scheme and compiler related development.</p><p>In order to keep up the trend, there was a
<a href="https://www.youtube.com/watch?v=Os7FE3J-U5Q">presentation</a>
at Clojure TV about the use of Nanopass as compilation technique for Chez Scheme.</p><p>The main idea behind it, is to design the compiler passes in such a way that they are composed
by very small passes that are then plugged together. In comparisasion with traditional compiler
passes, it allows for a more modular development of such passes.</p>]]></description></item><item><title>Incremental Parallelization of Dynamic Languages presentation</title><pubDate>Sat, 08 Feb 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140208</link><guid>http://www.progtools.org/blog.php?entry=20140208</guid><description><![CDATA[<p>There is a very interesting 
<a href="https://air.mozilla.org/incremental-parallelization-of-dynamic-languages/">presentation</a>
over at air Mozilla channel about making Racket's runtime, a Scheme dialect, capable of parallel and concurrent operations.</p>]]></description></item><item><title>Making peace with Go</title><pubDate>Mon, 03 Feb 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140203</link><guid>http://www.progtools.org/blog.php?entry=20140203</guid><description><![CDATA[<p>Long time ago I 
<a href="http://www.progtools.org/blog.php?entry=20100801">posted</a> how disappointed
I was with the decisions being taken about Go's design.</p><p>Since then, I have been spending time around <a href="http://dlang.org/">D</a> and
<a href="http://www.rust-lang.org/">Rust</a> communities.</p><p>I also started to follow the work being done at Cisco with <a href="http://ocaml.org/">OCaml</a>
safe <a href="http://openmirage.org/">systems programming</a>.</p><p>Meanwhile, Go has been taking up speed by many startups, mainly by developers that consider
Go's simple design as a positive feature and not an impediment as I and others see it.</p><p>Currently, at least dynamic linking, dynamic loading are being working on and there is a way to fake enumerations with <i>const</i> groups.</p><p>Given that the uprise in any safe compiled language should be actually considered a good thing,
I think to carry on discussing about generics in Go is a waste of time.</p><p>Most likely they will never come. So instead of wasting energy discussing it, better to spend time contributing to any FOSS project, even Go.</p><p>As a concluding thought, if you are planning to write any application in C and Go's simplicity is attractive to you,
I would advise to try to prototype it in Go.</p><p>You might never come back to C afterwards.</p>]]></description></item><item><title>HTML 5 vs native development</title><pubDate>Wed, 29 Jan 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140129</link><guid>http://www.progtools.org/blog.php?entry=20140129</guid><description><![CDATA[<p>The persons that know me are well aware that I am really supporting of
native technologies, even though I do take part in many web projects.</p><p>Maybe because of it, as most of those projects tend to have a mix of
spaghetti code composed of scattered JavaScript, CSS and HTML hacks, as
a means to work properly across all required platforms.</p><p>This is just plain wrong, when compared how simple it is to handle layouts
and components in native frameworks and older systems like
<a href="http://en.wikipedia.org/wiki/HyperCard">HyperCard</a> or
<a href="http://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a>.</p><p>However, regardless of how one thinks about it, the industry is going more
and more into the HTML 5 direction, so the best way it to adapt rather than being left behind.</p><p>So I was rather pleased to discover <a href="http://angularjs.org/">AngularJS</a>,
as it seems to bring a bit of native code development sanity to the web.</p><p>I will surely be playing quite a bit with it.</p>]]></description></item><item><title>Using Rust for OS development</title><pubDate>Sun, 05 Jan 2014 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20140105</link><guid>http://www.progtools.org/blog.php?entry=20140105</guid><description><![CDATA[<p>I just read an <a href="http://rust-class.org/pages/using-rust-for-an-undergraduate-os-course.html">article</a>
article posted on Hacker News about using Rust on an undergraduate course for operating system design.</p><p>While I don't agree with everything that is said on the article, specially in regard to D, I find it very
positive that a teacher decided to pick up a safer language for systems programming besides C.</p><p>We need safer languages for systems programming and new generations are usually unaware that there were
operating systems developded in other programming languages, besides C. And being safe does not mean requiring
a VM runtime.</p><p>C++ does improve lots of defiencies about C, specially when using C++11/14, coupled with STL, but the C
underpinnings of the language are the Achilles ankle in security.</p><p>Who knows, maybe sometime in the future we will have a mainstream OS developed in such language.</p>]]></description></item><item><title>.NET gets a new JIT compiler</title><pubDate>Thu, 10 Oct 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20131010</link><guid>http://www.progtools.org/blog.php?entry=20131010</guid><description><![CDATA[<p>The .NET team at Microsoft just announced a new JIT compiler named.
 <a href="http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx">RyuJIT</a>.</p><p>Apparently it is based on the same backed as Visual C++ and they are planning to bring all the optimization goodies from
their compiler into .NET land.</p><p>This are quite good news, given that Microsoft hasn't invested that much on their JIT compiler in the last .NET releases in
terms of automatic vectorization of code, access to SIMD operations and similar optimizations.</p>]]></description></item><item><title>Going Native 2013 videos now available!</title><pubDate>Fri, 13 Sep 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130913</link><guid>http://www.progtools.org/blog.php?entry=20130913</guid><description><![CDATA[<p>The videos and slides from the sessions at
 <a href="http://channel9.msdn.com/Events/GoingNative/2013">Going Native 2013</a>
 are now available at Microsoft's Channel 9.</p><p>It is full of worthwhile content about C++'s use in the industry, specially
what is nowadays currently known as Modern C++, thanks to the use of C++11 and C++14
constructs.</p><p>For a graphics loving guy like myself, the informations about <a href="http://www.openframeworks.cc/">openFramewors</a>
and <a href="http://libcinder.org/">Cinder</a> C++ libraries was also quite interesting!</p><p>Myself I am currently looking into Cinder. :)</p>]]></description></item><item><title>Deep C++</title><pubDate>Wed, 17 Jul 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130717</link><guid>http://www.progtools.org/blog.php?entry=20130717</guid><description><![CDATA[<p>Olve Maudal did a <a href="http://vimeo.com/68390478">presentation</a>
about C++ undefined behaviors at the Norwegian Developers Conference 2013.</p><p>Very worth a look, specially if you think you are quite confortable with C and
C++.</p><p>In case you enjoyed the presentation and want to improve your knowledge about it,
there are some <a href="http://de.slideshare.net/olvemaudal/deep-c">slides</a> available at slideshare. Take care
of preparing some coffee as the presentation is quite long (445 pages).</p>]]></description></item><item><title>A very nice introduction to Clojure</title><pubDate>Thu, 11 Jul 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130711</link><guid>http://www.progtools.org/blog.php?entry=20130711</guid><description><![CDATA[<p>Neal Ford has done an introduction <a href="http://vimeo.com/68378228">session</a>
about Clojure at the Norwegian Developers Conference 2013.</p><p>If you still not know much about Clojure, it is very worthwhile to spend one hour of your time
getting yourself acquainted with the wonders of Lisp based languages.</p>]]></description></item><item><title>The C++ Programming Language (4th Edition) just arrived!</title><pubDate>Thu, 04 Jul 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130704</link><guid>http://www.progtools.org/blog.php?entry=20130704</guid><description><![CDATA[<p>The <a href="http://www.stroustrup.com/4th.html">The C++ Programming Language</a> book, just arrived!</p><p>Even with my complaints about how C and by implication C++ tend to be insecure, C++ is a powerful
language that I always enjoyed exploring. Even using it as my main language in some of the jobs I worked on.</p><p>Therefore I have been salivating for the new version, waiting for Bjarne Stroustrup to update it for
the C++11 standard.</p><p>The new edition is full of updated examples how to use modern C++, coupled with learnings how C++ evolved since C++98 standard,
it will surely be an interesting reading.</p>]]></description></item><item><title>An Incremental Approach to Compiler Construction</title><pubDate>Fri, 31 May 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130531</link><guid>http://www.progtools.org/blog.php?entry=20130531</guid><description><![CDATA[<p>Someone called my attention to a nice paper about compiler construction, called
<a href="http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf">An Incremental Approach to Compiler Construction</a>.</p><p>The document goes over the process of implementing a Scheme subset compiler in Scheme itself using an easy
understandable way.</p><p>If you are looking to learn how compilers work, this is a very nice tutorial and I advise you to give it a shot.</p>]]></description></item><item><title>L98 compiler has been updated and made available on GitHub</title><pubDate>Wed, 08 May 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130508</link><guid>http://www.progtools.org/blog.php?entry=20130508</guid><description><![CDATA[<p>Sometime ago I discovered that the compiler project I have made available on this site
was not compilable with recent versions of Java.</p><p>The main issue being that it was developed back when Java initially released, and it was relying
in quite a few compiler bugs that have since then been fixed, thus making the code not compilable.</p><p>So I ended up porting the build system from a bunch of Makefiles into Maven, replacing the code which
I didn't have distribution rights by a new runtime written in Assembly and taking advantage of new Java 7
features.</p><p>Just head up to the <a href="/projects.php?project=compilers&amp;show=l98">L98 project</a> area for the new version.</p>]]></description></item><item><title>The 2013 European LLVM Conference Videos are now available</title><pubDate>Sat, 04 May 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130504</link><guid>http://www.progtools.org/blog.php?entry=20130504</guid><description><![CDATA[<p>The last LLVM conference took place on the 29/30 April, the videos and corresponding
slides are now <a href="http://llvm.org/devmtg/2013-04/">available</a>.</p><p>Lots of nice stuff for developers with interest in compiler design.</p>]]></description></item><item><title>Using Ada in embedded design</title><pubDate>Sat, 02 Mar 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130302</link><guid>http://www.progtools.org/blog.php?entry=20130302</guid><description><![CDATA[<p>The <a href="http://www.embedded.com">embedded</a> UBM Site about application development in
embedded hardware, has published a <a href="http://e.ubmelectronics.com/audience/eetnewsletters/02-19-2013-EmbeddedNL.html">newsletter</a>
about the current state of Ada for embedded development.</p><p>I find it very interesting, because although C and Assembly still rule this space, Ada is a much better language in terms of safety to
develop applications on.</p><p>The reliance on C for application development is a path full of security holes unless you couple your development with <i>warnings as errors</i> compiler options and static code analyzers that bring C to the same safety level enjoyed by default in languages like Ada.</p><p>I will be interesting to see how Ada's adoption might improve in this space.</p>]]></description></item><item><title>Analyzer section updated</title><pubDate>Sun, 17 Feb 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130217</link><guid>http://www.progtools.org/blog.php?entry=20130217</guid><description><![CDATA[<p>Keeping up the trend to update site sections related to old projects without
much information, the SWI Prolog <a href="/projects.php?project=compilers&amp;show=analyzer">Pascal analyzer</a> has been updated.</p>]]></description></item><item><title>MapEditor updated for Visual C++ 2010</title><pubDate>Wed, 30 Jan 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130130</link><guid>http://www.progtools.org/blog.php?entry=20130130</guid><description><![CDATA[<p>The 2D tile <a href="/projects.php?project=games&amp;show=mapeditor">editor</a> that I created for the 3P
team project a few years ago, has been updated to compile against Visual C++ 2010.</p><p>In the process I removed a few C style code parts by their MFC code, as now MFC offers better ways to
write similar algorithms.</p><p>Always a good excuse to improve code quality.</p>]]></description></item><item><title>MSDN Patterns and Practices publishes article about C++ XAML applications</title><pubDate>Tue, 29 Jan 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130129</link><guid>http://www.progtools.org/blog.php?entry=20130129</guid><description><![CDATA[<p>Microsoft just published an <a href="http://msdn.microsoft.com/en-us/library/windows/apps/jj160316.aspx">article</a>
from their Patterns and Pratices team, targeting the Windows Store (aka Metro applications) with C++ and XAML.</p><p>The application is the already known Hilo sample, that Microsoft also used when Windows 7 was launched.</p>]]></description></item><item><title>RoboVM, LLVM based ahead-of-time Java compiler, with iOS target</title><pubDate>Fri, 25 Jan 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130125</link><guid>http://www.progtools.org/blog.php?entry=20130125</guid><description><![CDATA[<p><a href="http://www.robovm.org/">RoboVM</a> is a new native code compiler for Java, targeting the iOS operating system.</p><p>Finally someone is making some effort to allow Java developers to target native code compilation
on iOS devices. It still surprises me that although many Java vendors do provide ahead of time compilation
for their Java enviroments, Sun and now Oracle don't provide them.</p><p>This leaves many developers with the wrong idea that there are only VM environments for Java, when
actually that is not the case.</p><p>I wish all the luck the RoboVM developers.</p>]]></description></item><item><title>Niklaus Wirth talk at GTAC 2009</title><pubDate>Sat, 19 Jan 2013 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20130119</link><guid>http://www.progtools.org/blog.php?entry=20130119</guid><description><![CDATA[<p>Welcome to my first post of 2013! I wish you had good time during the festivities and
an year full of health and good times, with family and friends!.</p><p>Now for the theme of this post. While searching for information about the Oberon
family of operating systems, I discovered a video of a talk done by Niklaus Wirth
at GTAC (Google Test Automation Conference), back in 2009.</p><p>I find it always very interesting to hear what he says, specially given his background,
which tends to not follow whatever is considered mainstream in the industry.</p><p>He talks about the evolution of programming languages and testing along the years he
has been involved in the computing world since his early days at the university.</p><p>Here is the <a href="http://www.youtube.com/watch?v=8W5Jd_wzB90">video</a>. Enjoy!</p>]]></description></item><item><title>Great chefs don't use mixes</title><pubDate>Sun, 09 Dec 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121209</link><guid>http://www.progtools.org/blog.php?entry=20121209</guid><description><![CDATA[<p>I just saw a short <a href="http://vimeo.com/28885655">presentation</a>
(around 8m) from Christin Gorman about the bloat ORMs add to applications.</p><p>Based on my ORM experience I fully agree, ORMs seems to be quite nice way
of making a database mapping quite fast, however the time won in designing the
application is lost keeping track of database mappings or tracking down which queries need
optimization and ending up with a frankenstein application of ORM mappings and SQL.</p><p>Usually if the project does not require any form of database ORM to be used, it is way
better to make use of light weight mappings, or if constrained to a single database backend,
to write the SQL directly.</p><p>You will be saved from annotation/xml mapping verbosity by doing so, while being able to achieve
high database performance.</p>]]></description></item><item><title>Inventing on Principle</title><pubDate>Sat, 24 Nov 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121124</link><guid>http://www.progtools.org/blog.php?entry=20121124</guid><description><![CDATA[<p>A very nice presentation by Bret Vitor entitled
<a href="http://www.youtube.com/watch?v=PUv66718DII">Inventing on Principle</a>.</p><p>This presentation goes around how the environment and the programming language should mingle and
provide an interactive way to develop applications. In a way much more powerful than the usual REPL environments,
or even what the typical Smalltalk and Lisp environments do offer.</p><p>Khan Academy has a series of <a href="http://www.khanacademy.org/cs">tutorials</a> using JavaScript that apply the principles described on the talk.</p><p>This talk also inspired another developer to create a dynamic environment for Clojure development
entitled <a href="http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/">Light Table</a>.</p><p>The <i>Frogatto and Friends</i> game also has adopted some of these ideas into their <a href="http://www.youtube.com/watch?v=ri614C_Buwg">game editor</a>.</p><p>A Mozilla developer also created a Firefox plugin to explore JavaScript development following the same principles,
a <a href="http://vimeo.com/39627655">video</a> is available, showing how everything works.</p><p>Althought the concepts shown at the talk are more relevant for doing UI related programming, it is an interesting
concept that is surely worth one hour of time to go through the presentation.</p>]]></description></item><item><title>How the Dalvik VM JIT works</title><pubDate>Tue, 13 Nov 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121113</link><guid>http://www.progtools.org/blog.php?entry=20121113</guid><description><![CDATA[<p>I just found out the Google I/O 2010's
<a href="http://www.youtube.com/watch?v=Ls0tM-c4Vfo">presentation</a> about how the Dalvik VM JIT was
designed for the Android 2.2 release.</p><p>I know it is a bit outdated, but it is still worth watching if you care about compiler development.</p>]]></description></item><item><title>MDIL, also known as .NET gone native</title><pubDate>Sat, 10 Nov 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121110</link><guid>http://www.progtools.org/blog.php?entry=20121110</guid><description><![CDATA[<p>Another announcement from Microsoft at BUILD 2012 is that for Windows Phone 8 devices, .NET applications
are actually also compiled to native code.</p><p>There is no JIT on the devices, the applications downloaded from the Windows Store are already compiled
for the specific device.</p><p>Still it isn't 100% like C++ applications, because .NET only uses dynamic linking and Microsoft wants the
applications to keep working after security or operating system updates are done to the device.</p><p>So they went with a solution which keeps symbolic locations for the memory addresses while everything else
is plain assembly code. The references are replaced by real memory locations when the application gets installed,
by using an on device linker.</p><p>This executable format is known as MDIL, Machine Dependent Intermediate Language. The compilation from MSIL
into MDIL occurs on the Windows Store servers with an optimizing compiler.</p><p>
<ul>
<li><a href="http://channel9.msdn.com/Events/Build/2012/3-005">Deep Dive into the Kernel of .NET on Windows Phone 8</a></li>
<li><a href="http://channel9.msdn.com/Shows/Going+Deep/Mani-Ramaswamy-and-Peter-Sollich-Inside-Compiler-in-the-Cloud-and-MDIL">Inside Compiler in the Cloud and MDIL</a></li>
</ul>
</p><p>Now the question is when will Microsoft replace NGEN by MDIL for desktop applications. So far they don't confirm nor deny it.</p>]]></description></item><item><title>Herb Sutter announces updated C++11 support at BUILD 2012</title><pubDate>Fri, 02 Nov 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121102</link><guid>http://www.progtools.org/blog.php?entry=20121102</guid><description><![CDATA[<p>Herb Sutter just did a presentation at BUILD 2012 presenting the new set of C++11 features
to be made available with the upcomming <a href="http://blogs.msdn.com/b/vcblog/archive/2012/11/02/visual-c-c-11-and-the-future-of-c.aspx">Visual C++ 2012 November CTP release</a>:</p><p>
<ul>
<li>explicit conversion operators</li>
<li>initializers lists (STL support will be updated in the CTP following this one)</li>
<li>Raw string literals</li>
<li>delegating constructors</li>
<li>variadic templates (with perfect forwarding!)</li>
<li>default template arguments</li>
</ul>
</p><p>Additionally it was announced the ammount of work Microsoft, Google, Intel, ARM and many other
companies are putting into the C++ standard.</p><p> A new web site for the C++ community is now
<a href="http://www.isocpp.org/">available</a>. The web site is backed from a new C++ foundation,
which is a mix of ISO/ANSI members, C++ known individuals and companies with vested interest into the language.</p><p>An overview of the ISO ongoing work was also announced, the biggest one being the new target date of having a
standard update in 2014, before the schedule update of 2017.</p><p>C++ is becoming a much more safer language for systems programming than C, as long as developers use modern C++ features.</p><p>As a supporter of strong type languages for systems programming, it is rewarding to see C++ improving, even with better
languages trying to get its place.</p><p>It is a nice time to use languages with native code generation compilers.</p>]]></description></item><item><title>Advanced iOS Development</title><pubDate>Sat, 27 Oct 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121027</link><guid>http://www.progtools.org/blog.php?entry=20121027</guid><description><![CDATA[<p>InfoQ has placed an interesting
<a href="http://www.infoq.com/presentations/Advanced-iOS-Development">presentation</a>
about advanced development in iOS with Objective-C.</p><p>This is really the best way to bring wonderfull experiences to the customers,
by exploring the <i>native</i> features each platform makes available to developers.</p>]]></description></item><item><title>Google uses Common Lisp</title><pubDate>Sat, 13 Oct 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20121013</link><guid>http://www.progtools.org/blog.php?entry=20121013</guid><description><![CDATA[<p>So it seems that after <a href="http://www.itasoftware.com/">IAT Software</a>'s aquisition
by Google, Google has become another company also Common Lisp.</p><p>To reinforced this, Common Lisp has made to the list of style guides Google keeps for
all languages that are accepted for internal projects.</p><p>So without further ado, here is the <a href="https://google-styleguide.googlecode.com/svn/trunk/lispguide.xml">Google Common Lisp Style Guide</a>.</p>]]></description></item><item><title>Writing a Raytracer in Common Lisp</title><pubDate>Sun, 16 Sep 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120916</link><guid>http://www.progtools.org/blog.php?entry=20120916</guid><description><![CDATA[<p>So after some vacations, it is time to update this blog again. :)</p><p>As two areas in computing that I like a lot are graphics programming and functional
programming, it was very warming to have discovered
a tutorial in YouTube that brings both of them together, by showing on how to implement a
ray tracer in Lisp.</p><p>
<ul>
 <li><a href="http://www.youtube.com/watch?v=N1oMRw04W3E">Part 1.0.0</a></li>
 <li><a href="http://www.youtube.com/watch?v=cYN3aosPGsA">Part 2.1.0</a></li>
 <li><a href="http://www.youtube.com/watch?v=WTDvpjTu3e0">Part 2.1.1</a></li>
 <li><a href="http://www.youtube.com/watch?v=Zq5yA78X1t0">Part 2.1.2</a></li>
</ul>
</p><p>Slides are also <a href="http://home.in.tum.de/~lehmanna/lisp-tutorial.html">available</a>
at the author's web site.</p><p>Enjoy.</p>]]></description></item><item><title>Faith, Evolution, and Programming Languages</title><pubDate>Sun, 19 Aug 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120819</link><guid>http://www.progtools.org/blog.php?entry=20120819</guid><description><![CDATA[<p>An interesting <a href="http://www.infoq.com/presentations/Faith-Evolution-Programming-Languages">presentation</a> done by Philip Wadler, about the influence of functional programming in mainstream languages.</p><p>It is quite nice that after decades of being imprisoned inside academia, functional programming
is becoming just another paradigm that most languages are starting to make available to common
programmers.</p>]]></description></item><item><title>Functional-Style Programming in C++</title><pubDate>Fri, 17 Aug 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120817</link><guid>http://www.progtools.org/blog.php?entry=20120817</guid><description><![CDATA[<p>This month's MSDN Magazine has a very intersting <a href="http://msdn.microsoft.com/en-us/magazine/jj553512.aspx">article</a> about
doing functional programming in C++, while taking advantage of the new C++11 standard.</p>]]></description></item><item><title>Thinking in Functional Style using F# and (some) C#</title><pubDate>Sun, 12 Aug 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120812</link><guid>http://www.progtools.org/blog.php?entry=20120812</guid><description><![CDATA[<link href="http://vimeo.com/43676936"/><p>Carrying on the functional programming subject, there is a nice <a href="http://vimeo.com/43676936">presentation</a> in the Nordic Developers Conferece 2012 about
functional programming with F#, as well as how to apply the same concepts in C# 4.0.</p><p>Quite handy, specially for those .NET developers that are only able to use C# at work.</p>]]></description></item><item><title>Functional Programming in the Wild</title><pubDate>Sat, 04 Aug 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120804</link><guid>http://www.progtools.org/blog.php?entry=20120804</guid><description><![CDATA[<link href="https://research.microsoft.com/apps/video/default.aspx?id=169976"/><p>A 1h30 <a href="https://research.microsoft.com/apps/video/default.aspx?id=169976">session</a> are
length about real world usages of F# and Haskell.</p><p>This is a set of three talks done at Microsoft Research, showing how functional programming 
languages are slowly getting into the industry.</p>]]></description></item><item><title>WWDC 2012 videos and slides now available</title><pubDate>Wed, 11 Jul 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120711</link><guid>http://www.progtools.org/blog.php?entry=20120711</guid><description><![CDATA[<p>I just noticed that the presentation materials from <a href="https://developer.apple.com/videos/wwdc/2012/">WWDC 2012</a> are
now available.</p><p>If you are a Mac OS X or iOS developer, there are lots of good stuff to watch there.</p><p>I'm still going through the presentations, but one that I can already advise is <a href="https://developer.apple.com/videos/wwdc/2012/?id=405">Modern Objective-C</a>. Apple is really spending some effort to make the language a bit more modern, bit by bit.</p><p>This is specially important if you care about native code development.</p><p>Even if you are not an Apple developer you can still enjoy the videos after doing the free registration as Apple developer.</p>]]></description></item><item><title>The C++Now! 2012, former BoostCon videos now available</title><pubDate>Sun, 08 Jul 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120708</link><guid>http://www.progtools.org/blog.php?entry=20120708</guid><description><![CDATA[<p>Last month I <a href="http://www.progtools.org/blog.php?entry=20120603">blogged</a> that the papers from The C++Now! 2012 were
made available, with the videos following some time later.</p><p>The videos are now <a href="http://www.youtube.com/user/BoostCon">available</a>. Enjoy.</p>]]></description></item><item><title>Having fun with Qt and C++</title><pubDate>Mon, 02 Jul 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120702</link><guid>http://www.progtools.org/blog.php?entry=20120702</guid><description><![CDATA[<p>I just got asked to develop a desktop application.</p><p>After considering the deployment scenarios and how users are supposed to use it, the decision
which technologies to use ended up being C++ and Qt. As they are currently the best solution to develop
native based applications for multiple operating systems.</p><p>It really feels refreshing having to code in C++, compared with my daily job of JVM and .NET languages. Sure
the application takes a few more seconds to compile, but it is really worth it as seen by the application speed
when using it.</p><p>Coupled with Qt, C++ feels like a language with batteries, as quite a lot of funtionality is made available out
of the box, without having to search the Internet for libraries. Plus it also offers quite a few helper classes that
minimize the need of explicit memory management.</p><p>Qt Creator IDE is a pleasure to use when compared to Java based IDEs, everything just works in less than one
second, while keeping a nice IDE like experience.</p>]]></description></item><item><title>Microsoft caves in for Visual Studio Express version for Windows</title><pubDate>Mon, 11 Jun 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120611</link><guid>http://www.progtools.org/blog.php?entry=20120611</guid><description><![CDATA[<p>As it seems Microsft has given up on their plans to have the Visual Studio Express versions target
only Metro in the upcoming Windows 8.</p><p>On the
<a href="http://blogs.msdn.com/b/visualstudio/archive/2012/06/08/visual-studio-express-2012-for-windows-desktop.aspx">Visual Studio Blog</a> they have now stated that a version targeting the desktop will be made available as well.</p><p>Nice to see Microsoft being reasonable and accepting that they can't push Metro down our throat in the current state. Developers
have to be able to decide on our own, which environments we want to target. Now if they just fixed the all caps menus.</p>]]></description></item><item><title>LINQ and Rx for C++ from Microsoft</title><pubDate>Tue, 05 Jun 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120605</link><guid>http://www.progtools.org/blog.php?entry=20120605</guid><description><![CDATA[<p>Microsoft is developing libraries to add LINQ and Reactive Extensions to their C++
compiler.</p><p>More information available on the
<a href="http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-9-LINQ-for-C-Native-Rx-RxC-Meet-Aaron-Lahman">Going Native</a> show.</p><p>If you are doing Windows only development with C++, this can be a nice addition to your toolchest.</p>]]></description></item><item><title>Lots of nice C++ stuff</title><pubDate>Sun, 03 Jun 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120603</link><guid>http://www.progtools.org/blog.php?entry=20120603</guid><description><![CDATA[<p>If you are a bit bored on the weekend and feel like picking up speed about C++11, C++ on
Windows 8, or latest C++ freebies from Facebook, then there are lots of cool stuff to read about.</p><p>The C++Now! 2012, former BoostCon, 
<a href="https://github.com/boostcon/cppnow_presentations_2012">slides</a> are now available. Video
presentations will follow. If you can read German, there is a nice overview of the conference at
<a href="http://www.heise.de/developer/artikel/developer_artikel_1586999.html">heise</a>.</p><p>Microsoft has also made available the videos from the 
<a href="http://channel9.msdn.com/Events/Windows-Camp/Developing-Windows-8-Metro-style-apps-in-Cpp">Developing Windows 8 Metro style apps with C++</a>
conference. Regardless of your position on Microsoft's latest moves in regard to Metro, C11, C++/CX and Express editions,
this videos are quite interesting to watch, and Metro is here to stay no matter what. So the best way is to improve
a bit our knowledge about it.</p><p>Facebook has released a new C++ library named
<a href="https://www.facebook.com/notes/facebook-engineering/folly-the-facebook-open-source-library/10150864656793920">Folly</a>.
Just have a <a href="https://github.com/facebook/folly/blob/master/folly/docs/Overview.md">look</a> at it as it is full of nice stuff.</p>]]></description></item><item><title>A very good introduction to Monads with Clojure</title><pubDate>Sat, 02 Jun 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120602</link><guid>http://www.progtools.org/blog.php?entry=20120602</guid><description><![CDATA[<p>To keep on a Lisp note, there is a very good presentation from Carin Meier on 
<a href="http://www.infoq.com/presentations/Why-is-a-Monad-Like-a-Writing-Desk">InfoQ</a>
about the Identity, Maybe and State monads in Clojure.</p><p>If you ever heard of Monads and still fight to grasp how they really work, this presentation is well worth one hour
of your time.</p><p>She blends the presentation with the <i>Alice in Wonderland</i> story, make it entertaining while learning.</p>]]></description></item><item><title>Deploying a Common Lisp web application</title><pubDate>Thu, 17 May 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120517</link><guid>http://www.progtools.org/blog.php?entry=20120517</guid><description><![CDATA[<p>Just found out a nice
<a href="http://kuomarc.wordpress.com/2012/05/13/12-steps-to-build-and-deploy-common-lisp-in-the-cloud-and-comparing-rails/">tutorial</a>
on how to deploy a web application to Heroku.</p><p>Nice to know that Lisp is still having some visibility, maybe <a href="http://clojure.org/">Clojure</a> also helps
a bit.</p>]]></description></item><item><title>Microsof is  looking for compiler developers </title><pubDate>Tue, 08 May 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120508</link><guid>http://www.progtools.org/blog.php?entry=20120508</guid><description><![CDATA[<p>Herb Sutter just mentioned on his blog, that Microsoft is looking for engineers
to join the Visual C++ team. You can find more information
<a href="http://www.compilerjobs.com/db/jobs_view.php?editid1=620">here</a>.</p><p>Good luck, in case you apply for the job.</p>]]></description></item><item><title>Do not rely on proprietary programming languages for your business.</title><pubDate>Sat, 28 Apr 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120428</link><guid>http://www.progtools.org/blog.php?entry=20120428</guid><description><![CDATA[<p>The idea for this post originated after I started 
<a href="http://www.groklaw.net/index.php">following</a> the
Oracle vs Google Java litigation case, as well as, discussing about
it on <a href="http://www.osnews.com/comments/25877">OSnews</a>.</p><p>I have started to realize, that while some of the mainstream languages
provide quite nice abstractions and productivity, they are tainted with
lack of freedom.</p><p>Languages that are mainly brought to market by big companies, enjoy the
benefit to quickly gather market share, have a big ecosystem around them, and
have a better rate of supporting new features.</p><p>But hidden in a dark corner of all this cosy ecosystems, lies a trap. All business
decisions become hostage of the whims from the company selling the language.</p><p>I have seen this happen too many times. Company X introduces a new programming
language, eventually it gets adopted in the industry, later this company drops support
for the programming language. All the companies that invested on the language are now
stuck with a legacy language, where they have to invest a lot to find developers with
the desired skill set, or to migrate their product to a newer programming language.</p><p>So what seems to save development costs, and delivery time to the market, because
language X is so great. Ends up costing a lot more when the owning company decides otherwise.</p><p>Both options are costly. If a standard programming language had been used, the possibilities
of having longer support would be greater, because thanks to the laws of the market several
companies would be offering development environments for such languages.</p><p>The best way to assure business independence from such scenarios, is to rely in programming
languages with available ISO/ANSI standards, or open source ones. This way there is more confidence
that the language will subsyst much longer than the proprietary ones, and the possibility of
litigation regarding existing implementations will be minimal.</p>]]></description></item><item><title>Betting on the wrong horse</title><pubDate>Sun, 08 Apr 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120408</link><guid>http://www.progtools.org/blog.php?entry=20120408</guid><description><![CDATA[<p>While reading the Go <a href="http://twitter.com/go_nuts">tweeter feed</a>
    I've discovered a company called Wakoopa, decided to move their code from
    Ruby to C, after a failed attempt to use Go. As described on the company
    <a href="http://blog.wakoopa.com/post/20520683378">blog</a>.</p><p>Apparently they were disappointed with Go's GC performance and decided
    to move then to C instead.</p><p>This is a typical example of hackers having a say on company business,
    instead of thinking what makes business sense.</p><p>Go's GC will certanly get better, lets not forget that the language is only
    2 years old, with version 1 released last week. And there are plenty of nice
    languages with runtimes making use of industrial strenght GC. Any of these
    languages would smoke Ruby's performance.</p><p>So the company decides to invest time and money recoding the said Ruby software
    two times. First to Go, then trying to understand what was going wrong with the new
    implementation, to finally recode it once again in C.</p><p>All this would have been spared had they decide to use a more mature language.</p><p>Don't take this blog entry as something against Go, as I think that the current GC problems
    will eventually be fixed, I just think it is an error to bet the company business in it
    for the time being and developers should use tools based on technical merit, not on what
    they like to use.</p><p>In business you don't get many second chances.</p>]]></description></item><item><title>WebGL Stats Web Site</title><pubDate>Thu, 05 Apr 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120406</link><guid>http://www.progtools.org/blog.php?entry=20120406</guid><description><![CDATA[<p>I just discovered the <a href="http://webglstats.com/">WebGL Stats</a> web site. Quite
    handy to know which WebGL are generaly available on most people computers.</p><p>If you want to know more about WebGL, don't forget to visit the
     <a href="http://learningwebgl.com/blog/">Learning WebGL</a> blog.</p>]]></description></item><item><title>Two new C++ videos available on Channel 9</title><pubDate>Thu, 05 Apr 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120405</link><guid>http://www.progtools.org/blog.php?entry=20120405</guid><description><![CDATA[<p>I just come across two C++ videos about modern C++ on Microsoft's
    channel 9 web site. Even thought I don't agree 100% with everything Herb Sutter
    says on the first video, I have to agree that C++ is the best language to use
    nowadays for native performance.</p><p>Maybe in some years, another language will take its place. But like C, it will
    stay around for many decades still.</p><p>So the best way is to enjoy the videos and see some goodies from C++11:
    <ul>
      <li><a href="http://channel9.msdn.com/Shows/The+Knowledge+Chamber/C-A-Language-for-Modern-Times">C++: A Language for Modern Times</a></li>
      <li><a href="http://channel9.msdn.com/Shows/C9-GoingNative/GoingNative-7-VC11-Auto-Vectorizer-C-NOW-LangNEXT">VC11 Auto-Vectorizer</a></li>
    </ul>
    </p><p>I would also like to wish an happy Easter for those of you celebrating
    it.</p>]]></description></item><item><title>New C++ programming article</title><pubDate>Fri, 24 Feb 2012 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20120224</link><guid>http://www.progtools.org/blog.php?entry=20120224</guid><description><![CDATA[<p>The other day I was reading some exercises the game studios do on their
    job interviews and decided to have my go at one of such exercises.</p><p>It felt quite refreshing actually, since it has been a while I have
    done the type of low level memory management required by the exercise.</p><p>The article together with a possible solution is available on the Compilers
    <a href="tutorials.php?tutorial=compilers">tutorials</a> area.</p>]]></description></item><item><title>Sony is using C#/.NET for PlayStation Suite/PS Vita</title><pubDate>Wed, 28 Dec 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20111228</link><guid>http://www.progtools.org/blog.php?entry=20111228</guid><description><![CDATA[<p>Thanks to Mono's <a href="http://www.go-mono.com/monologue/">Monologue</a> feed, I just discovered that Sony is
    investing into C# and .NET for their new PlayStation Suite and PS Vita platforms.</p><p>You can watch the GDC 2011 videos about it here:
    <ul>
      <li><a href="http://www.youtube.com/watch?v=clk3uu6o5KY">Part 1</a></li>
      <li><a href="http://www.youtube.com/watch?v=hUQk-tuPFmY">Part 2</a></li>
      <li><a href="http://www.youtube.com/watch?v=9L_oXvIhOWM">Part 3</a></li>
    </ul>
    </p><p>I just did not like the comments about Java's GC in the third part, as it shows that the guy is not aware
    that the GC in most Java commercial JVMs are actually much more performant than what Mono or Microsoft have to offer.
    This is actually one area of improvement in the upcoming .NET 4.5.</p><p>It will be interesting to watch how well this will be picked up by the game developer community, as this is a place
    where native development is still king. Currently XNA and jMonkeyEngine are mostly used by indies or for the
    toolsets.</p>]]></description></item><item><title>Having fun with Android</title><pubDate>Tue, 25 Oct 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20111025</link><guid>http://www.progtools.org/blog.php?entry=20111025</guid><description><![CDATA[<p>Last weekend I have spent some time playing around with Android for a small demo, and it was very interesting.</p><p>The platform has a few concepts that althought not new in the computing world, they are new in mainstream
    OS, like <i>Intents</i> for example. Where multiple applications cooperate by offering the capabilities to handle certain
    data types and in the end the application is actually a <i>mashup</i> of activities.</p>]]></description></item><item><title>Disappointment with what Microsoft is doing to C++</title><pubDate>Fri, 30 Sep 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110930</link><guid>http://www.progtools.org/blog.php?entry=20110930</guid><description><![CDATA[<p>As many developers out there I was eagerly waiting for the BUILD conference and
    what changes it could bring to the C++ developers on Windows.</p><p>It was nice to get to know the <a href="http://en.wikipedia.org/wiki/Windows_RunTime">WinRT</a> framework
    that will be part of the Windows 8, and the possible long term replacement of the Win32 apis.</p><p>Another good side-effect from WinRT is that the Hungarian notation has gotten another death stab in the Windows
    platforms.</p><p>What is not so good about it, is that Microsoft on their usual way, prefered to taint native C++ with their own C++/CLI
    extensions instead of investing into a way of using standard C++ constructs with WinRT. It is a sad state of affairs, specially
    if you are old enough to remember how Borland was criticised for doing something similar with Borland C++ and later with C++ Builder.</p><p>Another consequence is that Visual C++ 11 will bring almost zero new features in what concerns the new C++11 standard, which has
    made many developers angry, as one can see in Visual C++ <a href="http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx">blog</a>
    and <a href="http://channel9.msdn.com/posts/GoingNative-Live-at-BUILD-Herb-Sutter-Joanna-Mason-Tony-Goodhew">channel9</a> comments.</p><p>The only good thing is that at least Microsoft has made C++ development again a bit more visible in their developer tools roadmap. They
    should however take care with the availability of competing C++ compilers that take C++ and C standards compliance seriously.</p>]]></description></item><item><title>The return of native code</title><pubDate>Thu, 25 Aug 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110825</link><guid>http://www.progtools.org/blog.php?entry=20110825</guid><description><![CDATA[<p>A few weeks ago there was an
    <a href="http://www.infoworld.com/d/application-development/hail-the-return-native-code-and-the-resurgence-c-170142">article</a>
    about the new C++11 standard and the ressurgence of native code.</p><p>I am slowly starting to share the same opinion as the article portrays. For a few years I have been hoping that the 
    JVM and .Net based languages would reach the performance level of pure native languages.</p><p>To a certain extent, the JIT offered by these languages are quite powefull, but still you can feel when using native
    applications or VM based ones.</p><p>Java's <i>write once, run anywhere</i> has never been quite true, due to bugs across JVM implementations that force developers
    to write workarounds, when changing the JVM is not a solution. .Net is mostly a Windows based VM even though Mono does provide
    support for part of it in another systems.</p><p>Lately there has been a trend to put VMs on top of VMs. So we have a JVM/.Net based application that runs inside a VM emulating
    hardware in some cloud, and I see this as a waste of resources.</p><p>We have multicore processors, with SIMD instructions and GPGPU, which are wasted by not being accessible to VM based languages.
    The access, when available, are usually via libraries and not provide the same access level that C and C++ allow.</p><p>So even myself, have started to play around with native languages for my home projects. There are a still a few around
    Delphi, Free Pascal, Ada if you like Algol style. C, C++, Objective-C, Go and D for C lovers and finally Haskell, Ocaml and
    Common Lisp for the funcional lovers.</p><p>Maybe having native compiler implementations for Java or .Net languages could be a nice addition to the developers toolset. For Java
    we have <a href="http://gcc.gnu.org/java">GJC</a>, but it seems to be abandoned since 2009, even thought it is still part of gcc. For .Net,
    Microsoft has created <a href="http://en.wikipedia.org/wiki/Bartok_%28compiler%29">Bartok</a>, maybe they could eventually make it part of
    the .Net SDK.</p><p>Interesting times ahead.</p>]]></description></item><item><title>Mini-ML converted to F#</title><pubDate>Wed, 18 May 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110518</link><guid>http://www.progtools.org/blog.php?entry=20110518</guid><description><![CDATA[<p>Back in 1997, I did a Mini-ML interpreter in Caml together with a very good friend of mine
    for the Programming Languages course, at the University.</p><p>Years later I made the interpreter available <a href="http://www.progtools.org/projects.php?project=compilers">here</a>
    in Progtools.</p><p>Due to my interest in F#, I decided that porting the Mini-ML source code F# would be a good exercise to learn about the
    differences between Caml/Ocaml and F#. So now the Mini-ML is also available as a F# based application.</p><p>The experience was nice. It was a bit hard to me to find out all the differences, but in the end I got the interpreter
    code without any dependence on Ocaml migration support libraries.</p><p>Enjoy!.</p>]]></description></item><item><title>Ceylon</title><pubDate>Sat, 30 Apr 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110430</link><guid>http://www.progtools.org/blog.php?entry=20110430</guid><description><![CDATA[<p>So I finally managed to live through the Ceylon presentation now available at
    <a href="http://www.infoq.com/presentations/ceylon">InfoQ</a>.</p><p>Not sure what to think about this. They should just have bet on one of the existing languages that
    target the JVM, Scala, Clojure or Groovy. From the presentation I got the feeling that they have a bit
    of <i>"not invented here"</i> syndrome.</p><p>As it is, I pretty much think that Ceylon is another language dead at birth. Specially since they have
    spent two years designing the language, and no compiler is still available.</p><p>Personally my time is better invested in C++/Go/D for native programming, Scala/Clojure for JVM or F# for
    .Net.</p>]]></description></item><item><title>C++ Renaissance</title><pubDate>Thu, 24 Feb 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110224</link><guid>http://www.progtools.org/blog.php?entry=20110224</guid><description><![CDATA[<p>After bashing a bit on Microsoft on my last posts, here comes again a bit of praise. :)</p><p>Just watched last evening the <a href="http://channel9.msdn.com/Shows/Going+Deep/Craig-Symonds-and-Mohsen-Agsen-C-Renaissance">C++ Renaissance</a>
    video in Channel 9.</p><p>Again it is nice to see that Microsoft has noticed that native development still plays a big
    role, and that many developers would like to see a bit more of love for C++ in Microsofts tooling.</p><p>Quite different from the lets go 100% .Net speech from the early .Net 1.0 days.</p><p>Nowadays both environments have their place in the IT world, it was just that C++ developers fellt
    negleted by Microsoft, now Microsoft is finally acknowleding that it needs to give more attention.</p><p>It is nice to see C++ back into the game. Or as some people would say "Back? But I never went away!".</p>]]></description></item><item><title>In praise of C++ and Linux</title><pubDate>Thu, 17 Feb 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110217</link><guid>http://www.progtools.org/blog.php?entry=20110217</guid><description><![CDATA[<p>The new London Stock Exchange software has finally gone live and is working without any
    major issue.</p><p>The new system is written in C++ and runs on top of Linux. It replaced a .Net based solution
    that was giving lots of downtime problems to the London Stock Exchange.</p><p>They are not the first to take such decision, the German stock exchange is also running on top
    of Linux.</p><p>You can read about the complete story <a href="http://www.computerworlduk.com/in-depth/open-source/3260982/london-stock-exchange-the-road-to-linux/">here.</a>.</p><p>For me this reveals a few issues. First of all, I imagine that maybe the .Net solution was not
    properly written, having seen quite a few monster architecture designs on my work life, that would
    be better with minimalist approaches.</p><p>Whatever the reason behind such failure, it gave lots of bad press to Microsoft, and to the Accenture
    team responsible for creating the said application. I bet the team might not even be working for Accenture,
    knowing jobs work in UK.</p><p>So as a Linux fan it was nice to see such turn of events.</p><p>Another thing I noticed was that they decided to use C++, instead of Java, which probably would make more
    sense if we look at the trends that see C++ as legacy. But as much as I like managed environments, they still
    cannot deliver the raw performance of C and C++, or any other native language for that matter.</p><p>After so many years of IT dating with managed enviroments, I imagine that people are now realizing that except
    for Web applications and low demanding response applications, native languages still win and will continue to do so.</p><p>In a way this a Deja-vu von the late seventies where P-Code enviroments, Lisp based machines and Smalltalk VMs where
    all the rage. Eventually they faded out, only to be taken up again by Java and later .Net.</p><p>I do program every day in Java and still like a lot the language, and lets be honest, it allows for very nice tools.
    But I am also having fun keeping my C++ skills up to date.</p>]]></description></item><item><title>Why Nokia? Why?!</title><pubDate>Sat, 12 Feb 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110212</link><guid>http://www.progtools.org/blog.php?entry=20110212</guid><description><![CDATA[<p>So against all odds, Nokia did realy decide to make Windows Phone 7 the main OS for its mobiles.</p><p>This is really a sad decision, Nokia is moving a way from a company that did quite some nice
    research work into one more OEM that just packs third party operating systems into their mobiles.</p><p>I have become a bit pragmatic over the years, and don't hold a bias against Microsoft as I did on
    my early open source days, but history has shown that most companies that did a partnership with them,
    got burned somehow.</p><p>I did work for Nokia, like any other company there were up and down moments, but it was a special
    company, and it is sad to see all the good people that still work there being put through this situation.</p><p>Having been a Nokia employee and known how the company works, makes the think that Symbian and MeeGo are
    now dead. Sure the <a href="http://blogs.forum.nokia.com/blog/nokia-developer-news/2011/02/11/letter-to-developers">message</a>
    that they are trying to give to the developers is not to abandon the platforms and belive in Nokia.</p><p>But who can still believe in them? Maemo was going to be replaced by MeeGo, while GTK based framework became legacy
    and Qt was the future. Similary the Symbian developers were told how easy they could bring their software to the platform
    thanks to Open C/C++ and Qt. Later on, the strategy changed in a way that everyone was
    <a href="http://blogs.forum.nokia.com/blog/nokia-developer-news/2010/10/21/nokia-focusing-on-qt">told</a> to develop with Qt, this way
    both MeeGo and Symbian platforms could be targeted, but there would still be place for Java, Flash and Python.</p><p>Now a few months later, Nokia throws all these promisses out the window, and asks the developer community to belive
    in them, that 150 milion Symbian headsets are still planned to be sold and the platform will still be <i>somehow</i> around.</p><p>Problem is, I bet most hobby developers are just going to go away. The desilusion with out things turned out is just too
    big. And I fear that in a few years Nokia will just be known as Microsoft Mobiles, and what we are seeing today will be a use
    case in many management courses.</p><p>The only winner in this case will be Microsoft, they get Nokia to ship Windows Phone 7 based mobiles and thanks to their market
    size, finally manage to get a visible mobile platform, which many developers decided to ignore until this deal took place.</p><p>My thoughts are with the Nokia employees that gave so much for the internal development and will now be severely affected with
    this decision.</p>]]></description></item><item><title>STL C++ tutorials at MSDN</title><pubDate>Sun, 30 Jan 2011 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20110130</link><guid>http://www.progtools.org/blog.php?entry=20110130</guid><description><![CDATA[<p>Stephan T. Lavavej from Microsoft Visual C++ Libraries team has made a series of tutorials
    about how to use the STL, which are quite interesting.</p><p>Some of the tutorials already make use of C++0x features, showing how modern proper C++ can
    be really made to look like.</p><p>Just go to <a href="http://blogs.msdn.com/b/vcblog/archive/2011/01/07/rvalue-references-and-type-traits-video-introduction-to-the-stl-parts-9-and-10.aspx">MSDN</a>
    page to have a look on the tutorials.</p><p>A little warning, the videos make use of Silverlight, which might be a problem if you don't like this sort of browser plugins,
    but the sessions contents are really worth installing it.</p><p>Enjoy the sessions.</p>]]></description></item><item><title>Android 2.3 (Gingerbread) has been announced</title><pubDate>Mon, 06 Dec 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101206</link><guid>http://www.progtools.org/blog.php?entry=20101206</guid><description><![CDATA[<p>The new features of the upcoming Android 2.3 are now public. Just go over to
    the Android release <a href="http://developer.android.com/sdk/android-2.3-highlights.html">announment</a>
    to know more about it.</p><p>One of the more interessing features is the ability now to fully develop in native code, plus the
    possibility to use STL with C++.</p><p>I am looking forward for a possible 2.3 upgrade, in case HTC makes it available.</p>]]></description></item><item><title>Haskell has a redesigned web site</title><pubDate>Thu, 02 Dec 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101202</link><guid>http://www.progtools.org/blog.php?entry=20101202</guid><description><![CDATA[<p>The Haskell official web site has now a new design. You
    can check the new design <a href="http://www.haskell.org/haskellwiki/Haskell">here</a>.</p><p>What I like about the new design is that it makes the information more attractive. It should not
    matter for a programming language, but sometimes it does. For some users this is the type of small
    change that keeps them reading the available information on the web site or jump somewhere else.</p><p>I really enjoy the increase in visibility that funcional programming in now starting to have
    in the industry and having Haskell to be amog the chosen ones is really great.</p>]]></description></item><item><title>Space Architects</title><pubDate>Mon, 29 Nov 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101129</link><guid>http://www.progtools.org/blog.php?entry=20101129</guid><description><![CDATA[<p>Some videos of Oredev 2010 are now <a href="http://oredev.org/2010/Programme">available</a>.</p><p>One of the best videos to watch is the one from
       <a href="http://oredev.org/2010/sessions/java--http--1-billion-transactions-per-month">Jim Webber</a> about
       doing 1 billion transactions per month in Java + HTTP.</p><p>One of the best parts of the talk is how Jim critics the SOA enterprise architectures that only lead to
     complexity and layers and layers of nonsense.</p><p>This is actually my opinion on SOA, for me it is a nice way of selling consulting services. There are lots
    of ways of doing similar architectures, without the Gigabyte stack of software required to do SOA.</p>]]></description></item><item><title>Microsoft open sources F#!</title><pubDate>Fri, 05 Nov 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101105</link><guid>http://www.progtools.org/blog.php?entry=20101105</guid><description><![CDATA[<p>Microsoft just announced that they made the source code for the F# compiler available under
    the Apache 2.0 License. The has been reported by Don Syme on his
    <a href="http://blogs.msdn.com/b/dsyme/archive/2010/11/04/announcing-the-f-compiler-library-source-code-drop.aspx?wa=wsignin1.0">blog</a>.</p><p>I really think it is important what Microsoft is doing by briging the functional progamming to the mainstream.
    Thanks to Microsoft, we have now some people in the enterprise using a functional programming language, and lets not forget
    that some of the main Haskell researchers do work at Microsoft research.</p><p>If you like to learn more about functional programming and have to develop applications in .Net, maybe now is the time
    to have a look at F#.</p>]]></description></item><item><title>Apple deprecates Java on MacOS X</title><pubDate>Fri, 22 Oct 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101022</link><guid>http://www.progtools.org/blog.php?entry=20101022</guid><description><![CDATA[<p>Apple just decided to stop investing on Java for newer MacOS X releases, as stated
    on their
    <a href="http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html#//apple_ref/doc/uid/TP40010380-CH4-DontLinkElementID_2">
    release</a> notes of MacOS X 10.6 Update 3 and MacOS X 10.5 Update 8.</p><p>Since until now Apple always developed their own JVM, which they have licensed from Sun, it is now an open question
    what will Java developers on the Mac platform do.</p><p>Will they rely on a custom build of the OpenJDK, or will Oracle step in and also provide a JDK for MacOS X like they
    do for other platforms?</p><p>Now I am really happy that I haven't bought a Mac so far. This news coupled with the Apples idea of having an App Store
    for MacOS X, only shows how the computing world can become if Apple was in charge.</p><p>Now even Microsoft is looking a very nice guy.</p><p>For more information about the news just check <a href="http://apple.slashdot.org/story/10/10/21/125222/Apple-Deprecates-Their-JVM">Slashdot</a>
    or <a href="http://www.infoq.com/news/2010/10/apple-deprecates-java">InfoQ</a>.</p><p>So it is now it is clear to me, that most likely I won't ever get a Mac.</p>]]></description></item><item><title>Quite a few updates from the C++ world</title><pubDate>Sat, 09 Oct 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101009</link><guid>http://www.progtools.org/blog.php?entry=20101009</guid><description><![CDATA[<p>Many people deslike C++, even I have a love/hate relationship with it, but I also
    think that there is no other mainstream language that can replace it for the time being.</p><p>Sure it is a complex language, which requires some years to get the C++ Jedi Master level, but
    it also allows a level of multi-paradigm programming flexibility and performance, that few languages offer.</p><p>So with this in mind, there are a few ways for you to refresh your C++ knowledge. The first one
    is the video that is now available from the Bjarne Stroustrups's <a href="http://www.ixonos.com/index.php?mid=1440">roadshow</a>.</p><p>The othe information is the set of video tutorials created by Stephan T. Lavavej from the Microsoft Visual C++
    team. They provide a nice overview over the STL capabilities, and you can find them
    <a href="http://blogs.msdn.com/b/vcblog/archive/2010/09/16/video-introduction-to-the-stl-part-5.aspx">here</a>.</p><p>If you feel like playing around with the upcoming features of C++0x, you can get yourself a copy of GNU
    <a href="http://gcc.gnu.org/">GNU gcc 4.5.0</a> or the
    <a href="http://www.microsoft.com/express/Downloads/#2010-Visual-CPP">Microsoft Visual Studio 2010 Express</a>.</p>]]></description></item><item><title>What Killed Smalltalk Could Kill Ruby, Too</title><pubDate>Fri, 01 Oct 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20101001</link><guid>http://www.progtools.org/blog.php?entry=20101001</guid><description><![CDATA[<p>I just discovered a very interesting video from the RailsConf 09, discussing
    the reasons that kept Smalltalk out of the enterprise and how they could happen
    again with Ruby.</p><p>The presentation is available <a href="http://blip.tv/file/2089545?utm_source=player_embedded">here</a>
    and is very amusing to watch.</p><p>Even though I lean towards Python in the dynamic language's world, I would like that Ruby also stays around. :)</p>]]></description></item><item><title>HTC Desire arrived! Sorry for the downtime</title><pubDate>Sat, 25 Sep 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100930</link><guid>http://www.progtools.org/blog.php?entry=20100930</guid><description><![CDATA[<p>First of all, let me excuse myself for the downtime on the last days. I had a problem with the
    domain, which made the site inaccessible.</p><p>On a positive note, my HTC Desire just arrived and I am now exploring its capabilities, stay tuned
    for more information.</p>]]></description></item><item><title>HTC Desire on its way</title><pubDate>Sat, 25 Sep 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100925</link><guid>http://www.progtools.org/blog.php?entry=20100925</guid><description><![CDATA[<p>So I finally decided to order my Android based mobile, and ended up chosing a HTC Desire.</p><p>It ships with the Android 2.1 version, but I know that it can be upgraded to the 2.2 version, which
    I will surely do.</p><p>Then it will be the time to start exploring the device capabilities and toying with the idea of developing
    some applications.</p><p>For a Linux fan like myself, the big plus will be the ability to carry Linux on my pocket as well. Who would
    say that the small Unix clone from the early 90's would be in the heart of so many mobile phones?</p>]]></description></item><item><title>Symbian is still not developer friendly enough</title><pubDate>Fri, 27 Aug 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100827</link><guid>http://www.progtools.org/blog.php?entry=20100827</guid><description><![CDATA[<p>This week I decided to try to use the new
     <a href="http://www.forum.nokia.com/Develop/Qt/Tools/">Nokia Qt SDK</a> and check
     how friendly it is now to develop for Symbian.</p><p>I was really hoping that now with Qt, I could finally have some fun developing
     for Symbian mobiles.</p><p>Boy was I wrong! While trying to install the Qt libraries into the mobile, I get
    a simple <i>Error -14</i> message. Very user friendly!</p><p>I even tried to
    <a href="http://discussion.forum.nokia.com/forum/showthread.php?208099-Error-14-while-installing-QT-into-my-mobile">ask</a>
    the forum, but none of the advices did help.</p><p>I am now left with the possibility of going through the trouble of installing OpenC, Qt manually and hope it works.</p><p>But then again, it might not be worth it, because only applications for the N97 Mini and the X6 are accepted in the
    Ovi Store, as Nokia <a href="http://www.forum.nokia.com/Distribute/Packaging_and_signing.xhtml#article1_a">says</a> on their
    site. They say another devices are going to be supported, but if I remember what they did to N-Gage users, the support will
    never come.</p><p>So I'm done with Symbian. Even with the recent Oracle/Google issue going on, my next mobile is going to be most likely an
    Android one.</p>]]></description></item><item><title>Why Oracle!? Why Oracle?!</title><pubDate>Sat, 14 Aug 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100814</link><guid>http://www.progtools.org/blog.php?entry=20100814</guid><description><![CDATA[<p>It had to happen sonner or later. So the last Oracle's move concerning Java's future was to
    process Google over Java patents on their Dalvik VM. As you can now 
    <a href="http://www.osnews.com/story/23681/Oracle_Sues_Google_Over_Java_in_Android">read</a>
    all over the Internet.</p><p>When Sun did it to Microsoft a few years ago, it made sense. Microsoft was developing their
    own non standard Java implementation, while extending it to be Windows only, thus breaking the
    write once, run anywhere marketing campaign.</p><p>So Sun's move did make sense as a way to keep the language and runtime compatible across implementations.</p><p>When Google released Dalvik, this same discussion came back again, but somehow Sun seemed to
    be happy with it. Google was maintaining Java the language, while providing another runtime environment.
    Plus they were very carefull not to refer to it as a Java implementation.</p><p>But apparently Sun was not that happy about it, and their financial situation was the only thing
    preventing them to be more active against Google.</p><p>New reports about this case, seem to imply that this possibility was
    <a href="http://nighthacks.com/roller/jag/entry/the_shit_finally_hits_the">discussed</a> during Sun's sale.</p><p>The problem is that Google is  not Microsoft. On those days the programming community was on Sun's side,
    because Microsoft was seen as the bad guy. On the other hand Google is still a hero on the eyes of the majority
    of the open source community and Oracle is not Sun.</p><p>Regardless how this case ends up to be, most likely Oracle has just killed Java.</p><p>Sure there are millions of lines of code being written in Java every day. It is also my main programming language,
    at least for the time being. But Java was already loosing its appeal as programming language, now thanks to Oracle,
    many developers will desdain the language for political reasons as well.</p><p>On a side note, it seems Oracle has
    <a href="http://www.osnews.com/story/23683/Oracle_Kills_OpenSolaris_Moves_Development_Behind_Closed_Doors">killed</a>
    OpenSolaris development as well.</p><p>It only goes to show how bad it was for Sun products to be bought by Oracle. On the long run they will alianate
    everyone that still had a positive remark about Java or Solaris.</p>]]></description></item><item><title>No Go for Go!</title><pubDate>Sun, 01 Aug 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100801</link><guid>http://www.progtools.org/blog.php?entry=20100801</guid><description><![CDATA[<p>I have been playing around with the latest programming language, whose development is sponsorend by Google,  
    <a href="http://golang.org/">Go</a>.</p><p>The language is a nice evolution from C, and might be able to replace it as the next language to use for systems
    programming. It provides some nice concepts to help developing multicore applications, like message channels and go
    routines. It is also a type safe language, with garbage collection, type inference and interface programming.</p><p>But I am not sure that the language is going to get widespread use if their developers don't provide features that
    we have got used to have available in other languages.</p><p>I speak namely of enumerations, generics, dynamic linking, dynamic loading and exceptions.</p><p>Most of the Go users seem to be against having these features available in Go, with the argument that they would render
    the language too complex.</p><p>I think that without supporting what every mainstream language already provides, Go will be just another language. Unless
    due to Google's influence it happens to get a broad userbase.</p><p>Me personally I will follow every now and then how the language evolves, but I think my time is better spent with F#/Scala/Haskell.</p>]]></description></item><item><title>Google releases App Inventor for Android</title><pubDate>Tue, 13 Jul 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100713</link><guid>http://www.progtools.org/blog.php?entry=20100713</guid><description><![CDATA[<p>If you are old enough you might remeber a nice point-and-click development environment for Macintosh called
    <a href="http://en.wikipedia.org/wiki/HyperCard">Hypercard</a>. This way of developing applications has been the foundation of a few RAD environments like Visual Basic or Delphi.</p><p>Now it has come to the Android world, allowing several people to acquire a bit of task what programming is all about.</p><p>You can read more about it at the official <a href="http://appinventor.googlelabs.com/about/index.html">web site</a>.</p><p>Another piece of information that is also quite nice to know, is that they make use of Scheme environment for the JVM, as their solution
    to generate and compile the visual code.</p>]]></description></item><item><title>Java 7 closure's syntax is awfull</title><pubDate>Thu, 03 Jun 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100605</link><guid>http://www.progtools.org/blog.php?entry=20100605</guid><description><![CDATA[<p>The first version of the upcoming closure functionality for Java 7 has just been
    made available on the OpenJDK repositories. You can read more about it on this InfoQ <a href="http://www.infoq.com/articles/lambdas-java-analysis">article</a>.</p><p>But has you can see, the proposed syntax is really bad. I cannot understand how come they have choosen such an awfull way
    to declare closures. Any other language with such a feature has better syntax than what is being proposed for Java.</p><p>As you can see from another InfoQ <a href="http://www.infoq.com/news/2010/06/lambda-syntax-debate">article</a>, most people are not
   that happy with the current decision.</p><p>I used to be a Java fan, and I use it everyday on my work, but with the way that generics were introduced and now this awfull syntax for
    dealing with closures in the language, they (Sun/Oracle) are killing the language.</p><p>I just hope that they get some common sense before the final syntax gets decided.</p>]]></description></item><item><title>Intel releases Intel Concurrent Collections for Haskell</title><pubDate>Sun, 30 May 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100530</link><guid>http://www.progtools.org/blog.php?entry=20100530</guid><description><![CDATA[<p>Intel just made a big step in increasing Haskell's visibility in the industry, by releasing
   the first version of their concurrent libraries for Haskell.</p><p>Now available at Intel's <a href="http://software.intel.com/en-us/blogs/2010/05/27/announcing-intel-concurrent-collections-for-haskell-01">Blog</a>.</p><p>Haskell programmers around the world, rejoice! Functional programming is slowly becoming mainstream.</p>]]></description></item><item><title>Modern OpenGL tutorial</title><pubDate>Wed, 21 Apr 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100421</link><guid>http://www.progtools.org/blog.php?entry=20100421</guid><description><![CDATA[<p>Joe Groff from Durian Software has posted an online tutorial explaining how to
   make use of modern OpenGL programming techniques. You can have a look at it
   <a href="http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html">here</a></p><p>Have fun updating your OpenGL skills.</p>]]></description></item><item><title>Bye Sony</title><pubDate>Tue, 30 Mar 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100330</link><guid>http://www.progtools.org/blog.php?entry=20100330</guid><description><![CDATA[<p>As some of you might recall, I had mixed feelings for the Linux support
    provided by Sony on their PS3 games console. Their lack of support for something
    similar to the PS2 Linux always kept me away from buying a PS3.</p><p>Now they have done me a favour. I will never buy a PS3, after their decision to
    remove support for Linux from the older PS3 version, as reported by
    <a href="http://games.slashdot.org/story/10/03/29/0227251/Install-Other-OS-Feature-Removed-From-the-PS3">Slashdot</a>
    and <a href="http://www.osnews.com/story/23075/Sony_Does_180_Removes_Other_OS_Feature_from_PS3">OSNews</a> web sites.</p><p>Even if you don't like Linux, this is an attack to consumers. When you buy a product, you buy it for a specific
    set of funcionalities. How can a company dare to come back, after they got your money, and say that will remove
    one feature from something that is suppoesed to be yours?!</p><p>I for one, will stay away from Sony game related products from now on. Now getting a XBox 360 is really getting appeling,
    regardless of how you see Microsoft, they care much more about consumers.</p>]]></description></item><item><title>Finally OpenGL 3.2 on my laptop thanks to NVidia</title><pubDate>Wed, 13 Jan 2010 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20100113</link><guid>http://www.progtools.org/blog.php?entry=20100113</guid><description><![CDATA[<p>It has been a long time since my last post. So before I say anything
    else, have a very nice 2010 full of only good things in life and in all areas
    of your life better as 2009 was.</p><p>I am using my first 2010's post to say a big thank you to NVidia. I think I own
    them this much because I am always complaining about their love/hate relationship with
    OpenGL.</p><p>On one side, they are one of the big players in the Khronos Group pushing for the new
    versions of the OpenGL standard, but on the other hand many of their freely available tools
    don't provide proper OpenGL/GLSL/OpenCL support. Which always leaves indie developers and
    hobbists like me to wonder how commited they really are.</p><p>But yesterday I got something nice from NVidia. Thanks to their new
      <a href="http://www.nvidia.co.uk/object/notebook_drivers_uk.html">NVidia Verde</a> program
      it is now possible to update laptop drivers, instead of being forced to fight with the laptop
      manufactuer to provide them.</p><p>The first time I tried to update my drivers, the laptop was still not supported by the program
    and I gave my feedback, and I guess many other users.</p><p>So yesterday it was a pleasant surprise not only to find that it was possible to update to a newer
    version, but that now I can also properly play around with OpenGL 3.2 and OpenCL 1.0 on my laptop.</p><p>So many thanks to NVidia, and I hope that they continue they good work supporting OpenGL and developers
    on the move like myself.</p>]]></description></item><item><title>GDC Europe 2009</title><pubDate>Wed, 19 Aug 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090819</link><guid>http://www.progtools.org/blog.php?entry=20090819</guid><description><![CDATA[<p>This week I was attending the GDC Europe 2009, that took place in Cologne. It used to take
    place in Leipzig, but now the event organizers have move it to Cologne. Since it is just 60Km
    away from Dusseldorf, I had to attend it as well.</p><p>This was my second time attending the conference, the first being back in 2003 at Earls Court in
    London. I must say that comparing both conferences, the one in London was better organized in terms
    of Lectures. This time I attended a few ones lacking content and sounding more to marketing sessions
    than anything else.</p><p>Still I did manage to learn a few things along the conference and even talked to a few people.</p><p>The Keynote sessions were all quite interesting. Today I also managed to see live one of the best
    game designers out there, Peter Molyneux.</p><p>A few trends that I observed during the conference.</p><p> C# seems to have settled as the election language for tool development. OpenGL is pretty much dead in what
    concerns the Windows platform. Most Studios will only care about OpenGL on the platforms where it is the oficial
    graphics API, like the iPhone or the PS3. Which is kind of sad, but understandable if we take into consideration
    all the issues around game development.</p><p>Since many attendees were Americans, there were lots of iPhones and Blackberries going around. On the mobile development front
    iPhone is getting all the attention.</p><p> The new Crytech engine is just great. I saw two live demos of it and both were quite amazing.</p><p>Finally, there were quite a few attendees carrying Macs around, but a few of them were actually running Windows!</p><p>Oh! I am eagerly waiting for Larrabee to be fully disclosed, but we still need to await around one year.</p>]]></description></item><item><title>OpenGL 3.2 got released</title><pubDate>Thu, 06 Aug 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090806</link><guid>http://www.progtools.org/blog.php?entry=20090806</guid><description><![CDATA[<p>Great news, even though I came a bit late to write about them. The Khronos
    group has announced on Monday the new revision of the OpenGL 
    <a href="http://www.khronos.org/news/press/releases/khronos-releases-opengl-3.2-third-major-opengl-release-within-twelve-months/">standard</a>.</p><p>I really have to congratulate them. Besides all the negative press that they got around the OpenGL 3.0 release,
    they have been doing a good job after that and the industry has been a good supporter. Assuming it keeps going like
    this, we may still have a future for OpenGL.</p><p>Together with the announcement, they have also made available a nice <a href="http://www.khronos.org/files/opengl-quick-reference-card.pdf">reference card</a>.</p><p>On Windows, DirectX might have woon the number one position as the main API, but OpenGL keeps on leaving as the only portable 3D API
   that there is currently available. I have a love/hate relationship with Microsoft products, and having OpenGL around is also a nice way to
   force improvements to products coming out of Redmond.</p><p>Since we are still talking about OpenGL related stuff, just have a look at recent OpenCL
      <a href="http://fireuser.com/blog/free_opencl_for_cpu_beta_download_from_amd/">video</a> published by AMD.</p>]]></description></item><item><title>Concepts dropped from C++0x</title><pubDate>Thu, 23 Jul 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090723</link><guid>http://www.progtools.org/blog.php?entry=20090723</guid><description><![CDATA[<p>Today is a sad day for the C++ community, as the news about Concepts being
    dropped from the upcoming standard got known.</p><p>The best way to get yourself informed about it, is to read the Bjarne's
    <a href="http://www.ddj.com/cpp/218600111?cid=RSSfeed_DDJ_All">article</a>
    at Doctor Dobbs Journal.</p><p>It is pity that a feature, which could improve C++ error messages got dropped like that.
    I do however understand the reasoning behind, specially due to the fact of it being a commitee feature
    without real life experience. The <i>exception specifications</i> and <i>external templates</i> features
    already showned us that is not a good idea.</p><p>On top of that, it is now visible that C++0x will become C++1x, since there is still too much work to
   finish, before the first compilers can be fully compliant with the standard.</p><p>Would this be a good signal for a new systems language to appear? Who knows, but for the time being C++
   has still its place on the industry.</p>]]></description></item><item><title>Article: Interviewing Java Developers With Tears in My Eyes</title><pubDate>Tue, 21 Jul 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090721</link><guid>http://www.progtools.org/blog.php?entry=20090721</guid><description><![CDATA[<p>Nice <a href="http://java.sys-con.com/node/1040135">article</a> about interviewing developers that don't get
    anything about their real job.</p><p>While you might not agree with the article, it is true that many supposed developers are only doing <i>configuration file
   programming</i> and lack many skills you would expect from a developer.</p><p>This is specially true with people working in the industry without a proper CS background, and because of that complain that
   somethings are too complex. Although it is true that many programming tasks could be simplified, people should know how to use their
   tools of trade, and more important, why they work as they do.</p>]]></description></item><item><title>Presentations from Nokia Developer Summit 2009 now online</title><pubDate>Tue, 26 May 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090526</link><guid>http://www.progtools.org/blog.php?entry=20090526</guid><description><![CDATA[<p>Nokia has put the presentations from the latest Nokia Developer Summit
       <a href="http://www.forum.nokia.com/Learning_and_Events/Nokia_Developer_Summit.xhtml">online</a>. And  I already
       went through them, and have found what seems to be a hidden message.</p><p>Nokia seems to be promoting the use of language runtimes, meaning Java, Flex, Python and Widgets as a way to
    easily write applications. And for C++ developers the rote seems to be related to QT for mobiles.</p><p>For me this clearly shows that Nokia might be receiving lots of negative feedback when comparing the pain of
    using Symbian C++ with the development process to the iPhone, Android or Linux based mobiles.</p><p>So I for one applaud their effort to ease our lives as developers, just don't know if they will come on time
    to fight the advance of the other platforms, specially the Apple based ones.</p>]]></description></item><item><title>2009 Lang.NET Symposium Videos</title><pubDate>Sat, 25 Apr 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090425</link><guid>http://www.progtools.org/blog.php?entry=20090425</guid><description><![CDATA[<p>Uff! It has been already a month since my last update, I really need to try be more
 active.</p><p>Lately I have been watching the videos from the latest <a href="http://langnetsymposium.com/2009/speakers.aspx">Lang.NET Symposium</a>.
 Most of them are quite interesting.</p><p>Regardless of what you might think about Microsoft, I see as a good think that they push people to research managed languages. And
 the conference even had quite a few speakers doing JVM related work.</p><p>I just did not like the talk about dropping C/C++ in favour of C# for doing Linux development. I think that the speaker really
 does not understand what is behind Linux. If Microsoft makes the full .Net stack available as a ECMA standard, without patents, then
 we might have some reason, but that is all.</p><p>Remember that you will need Silverlight to watch the videos.</p>]]></description></item><item><title>OpenGL 3.1 Specification got released</title><pubDate>Tue, 24 Mar 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090324</link><guid>http://www.progtools.org/blog.php?entry=20090324</guid><description><![CDATA[<p>Today at GDC 2009, Khronos announced the
 <a href="http://www.khronos.org/news/press/releases/khronos-releases-streamlined-opengl-3.1-specification/">new specification</a>
 for OpenGL. This
 is really good news. After the desilusion that many of us had with the 3.0 specification,
 I can say that I am really impressed with what they managed to deliver in 6 months.</p><p>NVidia has already made 3.1 compliant drivers <a href="http://developer.nvidia.com/object/opengl_3_driver.html">available</a></p><p>If Khronos keeps with the current rhythm, the OpenGL fans don't need to be scared
 of OpenGL fading away. Lets hope that is the case, the world really needs a nice portable
 3D API.</p>]]></description></item><item><title>Getting ready to release an updated site version</title><pubDate>Sun, 22 Mar 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090322</link><guid>http://www.progtools.org/blog.php?entry=20090322</guid><description><![CDATA[<p>I am playing around with PHP and jQuery in order to update the remaining parts of
 the site that still look a bit too ugly and have the old look.</p><p>It is improving quite well and I'll be able to release this updated version in the
 next few days. jQuery really rocks.</p>]]></description></item><item><title>FOSDEM</title><pubDate>Sat, 07 Feb 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090207</link><guid>http://www.progtools.org/blog.php?entry=20090207</guid><description><![CDATA[<p>I am attending for the first time <a href="http://www.fosdem.org">FOSDEM</a>. So
 far it has been quite interesting to see what the morning talks were talking about
 the Open Source community spirit.</p><p>On the afternoon I am planning to attend talks about GNUStep, XWindows and Graphics
 programming in Java.</p><p>I will later post some informations about how those talks went.</p><p><b>Update:</b> Here goes a small update, now that the first day has ended. I ended
 up attending the following conferences:</p><p><ul>
    <li>New theme engine in GNUStep</li>
    <li>Changes introduced in XRanR</li>
    <li>What has happened on Nouveau's development</li>
    <li>Accelerating embeded Java with OpenGL ES</li>
    <li>Increasing Java 2D performance with XRender</li>
    </ul></p><p>From all talks, what I enjoyed most was the X development related ones. The other ones were
 a bit dry. But one thing I already learned, X talks have a lot of interested people, one really
 needs to arrive early, otherwise there one stays outside.</p><p>I also enjoyed the projects that were showing something on their booths. More on that when I return
 to Dusseldorf.</p>]]></description></item><item><title>Getting a proper development enviroment for F#</title><pubDate>Thu, 29 Jan 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090129</link><guid>http://www.progtools.org/blog.php?entry=20090129</guid><description><![CDATA[<p>If you want to play around with F# but do not want to be left with just the command line
 compiler and a text editor, there is a solution.</p><p>In case you don't own the Microsoft Visual Studio, there is the possibility to install just
 the running part of the IDE. The F# installer will then use it as the normal Visual Studio.</p><p>You should do the following steps:
 <ul>
 <li>Download the Microsoft Visual Studio Shell, integrated mode</li>
 <li>Run the installation.</li>
 <li>This will only unpack the real installation, so you need to execute it again.</li>
 <li>Now install F#</li>
 <li>You will have now a Visual Studio installation, with support for F#</li>
 </ul>
 </p><p>Happy coding with F#. :)</p>]]></description></item><item><title>Windows 7</title><pubDate>Fri, 16 Jan 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090116</link><guid>http://www.progtools.org/blog.php?entry=20090116</guid><description><![CDATA[<p>I just installed Windows 7 on my laptop and I am quite impressed with it.</p><p>Vista does not support it that well, but with Windows 7, even though it is a Beta, thus slower
 and heavier than a release build, it is lighter than XP.</p><p>The only negative thing so far, seems to be that the fan is working more than with XP, but that
 might be because of Aero using DirectX, making the graphics card work more, or some driver problem.</p><p>Either way it is the first public beta, so we cannot ask for perfection.</p><p>From this first experience, I am looking forward for the final release and will continue to play with
 it.</p><p>I guess I am being atracted to the dark side of the force. :)</p>]]></description></item><item><title>Orion Tear</title><pubDate>Mon, 05 Jan 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090105</link><guid>http://www.progtools.org/blog.php?entry=20090105</guid><description><![CDATA[<p>While I was in vacations in Portugal, I saw a program about <a href="http://www.vimeo.com/788373">Orion Tear</a>,
 a portuguese 3D movie made with open source tools.</p><p>It was made by Rogerio Perdiz, with help of <a href="http://www.blender.org/">Blender</a>, <a href="http://www.gimp.org">Gimp</a>
 and <a href="http://www.inkscape.org">Inkscape</a>.</p><p>It is very interesting to see how far he managed to go with these tools, a very good example that others can follow to try to
 get a footstep into the industry.</p>]]></description></item><item><title>State of Linux game development</title><pubDate>Fri, 02 Jan 2009 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20090102</link><guid>http://www.progtools.org/blog.php?entry=20090102</guid><description><![CDATA[<p>Because of Jeff's <a href="http://blog.wolfire.com/2008/12/why-you-should-support-mac-os-x-and-linux/">blog entry</a>
 about how important it is for the game studios to support Mac OSX and Linux, I have found
 out a blog discussing the state of affairs of Linux <a href="http://braid-game.com/news/?p=364">game
 development</a>.</p><p>Jonathan Blow is unfortunely right about the state of affairs, and I guess it is the main reason why many
 game developers stay away from the platform. Another problem is the type of answer one does get sometimes. Even
 Jonathan complains about it. Nowadays there are lots of teenagers full of anger against anything besides Linux and
 don't have any idea what real developer tools look like.</p><p>Anyway we are at the begining of a new year and we can hope that the situation will improve. Happy 2009!</p>]]></description></item><item><title>xubuntu disappoints on old laptop</title><pubDate>Sun, 28 Dec 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081228</link><guid>http://www.progtools.org/blog.php?entry=20081228</guid><description><![CDATA[<p>My father has an old Toshiba 4070 CDT laptop, with 192 MB RAM and 
 a Celeron 300 Mhz processor. A perfect candidate to use a Linux distribution
 and thus improve its current usage. Since it is already an adventure to run
 Windows 2000 plus an anti-virus on the system.</p><p>So I have settled on Xubuntu as Linux distribution, because most of the provided
 software is correctly translated into European Portuguese, and it uses XFCE as desktop
 environment. It seemed a good choice, but it was not. I am not able to configure X with
 more than 800x600 resolution, and network still does not work.</p><p>A friend of mine is having similar
 <a href="http://blog.karroum.dyndns.org/andreas/2008/12/22/how-to-upgrade-from-ubuntu-804-hardy-heron-to-810-intrepid-ibex-without-internet-access/">problems</a>
 with the latest Ubuntu.</p><p>I still might try with PuppyLinux or with Slackware, but I am not willing to spend that much time
 with it.</p>]]></description></item><item><title>No Closures on Java 7</title><pubDate>Sat, 13 Dec 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081213</link><guid>http://www.progtools.org/blog.php?entry=20081213</guid><description><![CDATA[<p>It has been confirmed at this year's Devoxx08 that closures won't be
 part of Java 7. As presented by <a href="http://java.dzone.com/articles/java-7-update-mark-reinhold-de">Mark Reinhold</a>.</p><p>I am disappointed, so Java will be one of the few mainstream languages not supporting
 closures. Maybe we are able to get them on Java 8.</p><p>Luckly Sun is now backing another languages on the JVM, so at least we are able to
 be productive with Scala, Groovy, Jython and JRuby on the JVM.</p><p>I really don't understand these sort of programmers that fear closures, for me they seem
 like people that only understand Java, and are average programmers. Based on my experience, any
 programmer with a proper CS curriculum will have full understanding of closures and their benefits.</p><p>Maybe the problem is that many universities are now producing dumb programmers?</p>]]></description></item><item><title>OpenCL 1.0 specification is out</title><pubDate>Mon, 08 Dec 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081208</link><guid>http://www.progtools.org/blog.php?entry=20081208</guid><description><![CDATA[<p>The specification for the OpenCL has been announced today on SC08.</p><p>You can get all the information on the Khronos web <a href="http://www.khronos.org/opencl/">site</a></p><p>Lets hope that the graphic card manufacturers get OpenCL aware drivers, released quite soon.</p>]]></description></item><item><title>Linux almost back to my Laptop</title><pubDate>Sun, 07 Dec 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081207</link><guid>http://www.progtools.org/blog.php?entry=20081207</guid><description><![CDATA[<p>This week I have decided to buy an extra harddrive and play around with the
 idea of having Linux installed into it.</p><p>It was not easy task. I had to play around with a few distributions, but in the
 end I managed to find one that almost worked with everything.</p><p>I started with the latest Fedora, <b>Fedora Core 10</b>, which was a very big
 disappointment. The distribution seems to have a few new interesting features. However
 it never managed to recognized my network. Something that all other distributions never
 failed to do. Besides it has some strange behaviours where the CPU has a 100% load most of
 the time!.</p><p>At first I thought it might be a problem with the KDE version, so I ended up resinstalling
 the GNOME one, just to experience the same results.</p><p>Then I was using the <b>Mandriva ONE 2006</b> live CD, just to help me download the new 2009 ISO.
 Which did not work because any of the available browsers were able to keep up with the download,
 thus making it an impossible task.</p><p>Luckly I also have a <b>Knoppix</b> CD, so with it I was able to download the <b>Mandriva ONE 2009</b> ISO,
 and burn it.</p><p>The Mandriva distribution is really nice, and to my liking is still one of the best desktop distributions
 around. And amazingly it is the first time, all my laptop special buttons worked out of the box.</p><p>Still I am writting this post from my XP installation, because even though I was able to
 run Mandriva almost without problems, there were still a few that prevented it from being my
 main OS.</p><p>My laptop fans have thermostat and only work when it is really hot, or the CPU is having some
 hard work. With all tried distributions, even Mandriva, my fans kept working at full speed, and <i>lm_sensors</i>
 does not recognize my motherboard.</p><p>Using libdvdcss I was able to watch DVDs, but without sound, which does not help that much.</p><p>Finally, I do use Windows Media Player a lot, because as someone living abroad, I really enjoy the ability
 to see some TV or radio shows, on the web. The main problem is that currently many of these senders are
 using WMP 11 codecs, which are not properly supported by Win32Codecs package. The other solution would be to
 use the Fluendo codecs, but I still need to think if I really want to pay for something that I get for free on
 Windows and MacOSX.</p><p>So, until I can sort out these problems, I am back to XP.</p>]]></description></item><item><title>Orishas!!!</title><pubDate>Sun, 23 Nov 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081123</link><guid>http://www.progtools.org/blog.php?entry=20081123</guid><description><![CDATA[<p>I went yesterday with two friends to Frankfurt, where we had the opportunity to enjoy a
 very nice concert from Orishas.</p><p>They have put up a nice show, and all the bands acting before them, were also very good
 to hear. Only Stereo MCs seemed to be a bit out of place for the Orishas type of public. Still
 they have also given a good show.</p>]]></description></item><item><title>Sony and PS3 Linux</title><pubDate>Sun, 09 Nov 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081109</link><guid>http://www.progtools.org/blog.php?entry=20081109</guid><description><![CDATA[<p>I did complain already a few times about what Sony is allowing Linux to do on the
 Playstation 3.</p><p>As you might recall from previous postings, or by reading around the Web, Sony does not
 allow access to the RSX chip, thus preventing Linux to make use of accelerated 3D graphics.</p><p>There are a few people from the <a href="http://forum.blu-ray.com/showthread.php?t=65607">Homebrew</a>
 community trying to get around the Hypervisor, and there is also a Mesa <a href="http://www.mesa3d.org/cell.html">driver</a>
 that does software rendering using the Cell processors.</p><p>Both solutions help alleviate the problem, but that don't make it go away.</p><p>But lately I have started wondering if the community isn't the one to blame for such state of
 affairs. If you go to the former Playstation 2 Linux Web <a href="http://playstation2-linux.com/forum/?group_id=1">site</a>,
 you will see most people are worried to use the PS2 as a router, mini-server, or a plain desktop.</p><p>What won't you see, is too many discussions regarding game development on the PS2 Linux.</p><p>So was this deviation from the PS2 main goal, that made Sony think that it isn't worth to give Linux
 access to the RSX chip?</p>]]></description></item><item><title>Meeting an old friend</title><pubDate>Sun, 26 Oct 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081026</link><guid>http://www.progtools.org/blog.php?entry=20081026</guid><description><![CDATA[<p>Sometimes life is really surprising. This weekend I did not had big plans except for something
 going on, on Saturday, but even that was kind of changed on the last minute.</p><p>Then, I met a friend by chance on the tram, and thanks to her, I've found out that a mutual friend
 would be in town. Someone that I haven't met since 2006 and is now in Germany for some trainings.</p><p>So in the end, we ended up meeting, and talked about what each of us has been doing on these last
 two years and life in general.</p><p>It was really great. I wish all surprises in life could be that good.</p>]]></description></item><item><title>New Apple Laptops! Or not. :(</title><pubDate>Thu, 16 Oct 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20081016</link><guid>http://www.progtools.org/blog.php?entry=20081016</guid><description><![CDATA[<p>Apple has released this Tuesday a new set of laptops, and they are really beatiful to look at.</p><p>However it is still not this time that I will get one. My 17 inches laptop is still in great shape
 and it was 1000 euros cheaper than the 17 inches MacBook Pro.</p><p>The only thing the Apple laptop has going for it, is a dual core processor. Even my graphics card,
  a GeForce 6800, has more internal memory.</p><p>So if what you care about is graphics programming, better stay with a PC, at least until Apple starts
 to offer more options.</p><p>Oh! And did I mention that they do not support Firewire anymore?</p>]]></description></item><item><title>Cla</title><pubDate>Sat, 27 Sep 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080927</link><guid>http://www.progtools.org/blog.php?entry=20080927</guid><description><![CDATA[<p><a href="http://www.cla.pt">Cla</a> are one of my favorite Portuguese bands. Yesterday I had the opportunity to
 see them alive after several years of absence from their concerts.</p><p>What can I say? They continue as great as always! I wish that they still have a long life ahead of them as band.</p>]]></description></item><item><title>FADA</title><pubDate>Mon, 15 Sep 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080915</link><guid>http://www.progtools.org/blog.php?entry=20080915</guid><description><![CDATA[<p>Last week, during my vacations, I was able to attend the Theatre festival <a href="http://www.teatroaveirense.pt/ciclo_detalhe.asp?id=60">FADA</a> in Aveiro, Portugal.
 It was  really nice to watch all the Theatre groups that attended the festival. I hope that my hometown gets to see more of such events.</p><p>If you happen to live in Aveiro, I can only advise you to keep watching for the next ones.</p>]]></description></item><item><title>Sun Certified Java Programmer</title><pubDate>Wed, 27 Aug 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080827</link><guid>http://www.progtools.org/blog.php?entry=20080827</guid><description><![CDATA[<p>So, now I am a certified Java developer as well!</p><p>I think that the value our industry gives to certifications is a bit overheighted, but they play a major role nontheless, so
 I decided that it was time to get certified.</p><p>Now I have free time again to dedicate to jME :)</p>]]></description></item><item><title>Carmack's comments on Linux gamming</title><pubDate>Sun, 17 Aug 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080817</link><guid>http://www.progtools.org/blog.php?entry=20080817</guid><description><![CDATA[<p>John Carmack has commented his view on the Linux gamming, on the last Quakecon convention. You can read his
 comments on the Linux Gamming <a href="http://www.linuxgames.com/archives/10532">site</a>.</p><p>His is kind of right. What many people on the Linux community don't understand is that supporting portable
 APIs is not enough. On commercial titles there is a whole set of support to expect that Linux just don't have.</p><p>Windows, with all its problems, is still more manageable than Linux in what concerns managing to run a game sucessfuly.
 Many people moved from PCs to consoles because you just need to plug a disc to play the game, without further configuration
 problems.</p><p>I can't image tech support telling normal users to change configuration scripts under <i>/etc</i> to make their game able to
 run on a given distribution. Sadly I have to agree with John.</p>]]></description></item><item><title>OpenGL 3.0! Is here, kind of.</title><pubDate>Sat, 16 Aug 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080816</link><guid>http://www.progtools.org/blog.php?entry=20080816</guid><description><![CDATA[<p>Last monday, it has finally communicated to the community, the new OpenGL 3.0
  <a href="http://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of">standard</a>.
  However it ended up being more like a OpenGL 2.2 than what has been promissed to the community.</p><p>As a result, the OpenGL forums <a href="http://www.theregister.co.uk/2008/08/13/opengl_firestorm/">exploded</a>
 with complaints that people would drop support for OpenGL and that the CAD companies are to blame for what happened.</p><p>Now the sentiments seem to have settled down a bit, and the SIGGRAPHs BOF also helped to calm down the people. Lets see what the future holds
 for OpenGL.</p><p>Me personally, as a Linux fan, I would like to see that OpenGL as a relevant multiplatform API. But I see the danger of OpenGL going to join PHIGS,
 Glide, among others, on the 3D API heaven, if Khronos doesn't fulfill their promisse regarding the 6 months delivery for OpenGL 3.1.</p>]]></description></item><item><title>Love Parade: The Good, Bad and Ugly</title><pubDate>Sat, 19 Jul 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080719</link><guid>http://www.progtools.org/blog.php?entry=20080719</guid><description><![CDATA[<p>Yesterday it was time to go for my first time to the Love Parade. It was great! I already went
 to another Parade like events, specially while living in Switzerland, but this was the first time
 at the real one.</p><p>I did meet a few nice people and enjoyed most of it. That was the good part of the whole day.</p><p>The bad part was having to endure the rain that was falling every now and then, spoiling a bit the
 fun that we would otherwise have if it was a shinny day.</p><p>I decided to leave the ugly part to the end. The ugly part was having to go thru four police control points
 that were simply not prepared for the amount of people that came to the Love Parade. There were people
 faiting, having bruises and it was very unpleasant to move between check points. Had the police left the
 people to walk on their on to the train station, everything would have gone a way lot better. At least that
 is my gut feeling.</p>]]></description></item><item><title>SCRUM applied to game development</title><pubDate>Fri, 18 Jul 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080718</link><guid>http://www.progtools.org/blog.php?entry=20080718</guid><description><![CDATA[<p>There is a nice article in Gamasutra about the <a href="http://www.gamasutra.com/view/feature/3724/top_10_pitfalls_using_scrum_.php">Top 10 pitfalls Using Scrumm</a>,
 while applying it to the game development process.</p>]]></description></item><item><title>Java Monkey Engine site renewed!</title><pubDate>Mon, 02 Jun 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080602</link><guid>http://www.progtools.org/blog.php?entry=20080602</guid><description><![CDATA[<p>I have been tracking the <a href="http://www.jmonkeyengine.com/">Java Monkey Engine</a> project for quite sometime.
 Unfortunely on the last months, not much care has been taken for the site. Leaving many visitors
 to wonder if the project was still alive.</p><p>The project sure was, and is, alive! The thing was, that time is a limited quantity and priority
 has given to some other tasks.</p><p>But now the site has goten a clean face that really shows the framework is alive and waiting for
 you to try it out.</p><p>Picking on XNA as well, I think that XNA and Java Monkey Engine, are two good examples for frameworks,
 which can be used to produce cool games. Not all games need to be the next Crysis.</p>]]></description></item><item><title>XNA 3.0 CTP is out!</title><pubDate>Tue, 20 May 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080520</link><guid>http://www.progtools.org/blog.php?entry=20080520</guid><description><![CDATA[<p>Finally the new XNA for Visual Studio 2008 is <a href="http://blogs.msdn.com/xna/archive/2008/05/07/announcing-xna-game-studio-3-0-community-technical-preview-ctp.aspx">available</a>.
  This is only the technical preview, the final version should be made available at the begining of the Summer time.</p><p>At the same time, the <a href="http://creators.xna.com/">Creators Club Online</a> has been updated for the online community, the so called <i>You Tube for Games</i>.</p><p>Independent of my position regarding what Microsoft does and their business practices, I find XNA a very good tool. It allows many students and bedroom coders to do something that
  might give them an entry point into the Game Industry. Sure they can still do it with C, C++, Java and whatever toolkit they like. But XNA provides an infrastructure that helps them into
  the right direction and for the good or bad, some important companies are starting to give an important look to XNA.</p><p>Me personally would like that the <a href="http://www.jmonkeyengine.com/">Java Monkey Engine</a> would be something similar to XNA. But while Sun doesn't have a clear picture what to do with Java3D, JOGL and other
  similar graphics projects, Microsoft does have a clear goal. When they realize what they should do, most game developers will be happily developing with XNA.</p><p>I know that at least I will play at little with it.</p>]]></description></item><item><title>Spain is looking for Engineers</title><pubDate>Tue, 06 May 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080506</link><guid>http://www.progtools.org/blog.php?entry=20080506</guid><description><![CDATA[<p>It seems that Spain is lacking 25 000 Engineers, according to <a href="http://www.elpais.com/articulo/internet/buscan/25000/ingenieros/elpeputec/20080506elpepunet_1/Tes">El Pais</a>.
  If you fancy working in Spain, now might be the time to look for an opportunity.</p>]]></description></item><item><title>Portugal's Usage Manual</title><pubDate>Wed, 23 Apr 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080423</link><guid>http://www.progtools.org/blog.php?entry=20080423</guid><description><![CDATA[<p>Recently I have bought the book <i>Gebrauchsanweisung fur Portugal</i>. Sorry for not providing a direct URL but
  PHP's simple_xml() seems to have problems with the Amazon URL.</p><p>Anyway back to the book. The book was written by a German that lived for some time in Portugal and it is really cool! It contains a
  few sterotypes and some exageration sometimes, but it is overall funny, and I as a Portuguese really had a laugh while reading it. So
  if you know German, I advise you to read it, specially if you are Portuguese.</p>]]></description></item><item><title>Spieleentwickler Treffen NRW</title><pubDate>Fri, 04 Apr 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080404</link><guid>http://www.progtools.org/blog.php?entry=20080404</guid><description><![CDATA[<p>Yesterday, I attended the <a href="http://www.frozen-code.de/gamedevnrw/">4th Spieleentwickler Treffen NRW</a>
  at the <a href="http://www.mediadesign.de/">Media Design Hochschuele</a>,  here in Dusseldorf.
  It was very nice, with lots of interesting persons full of desire to make fun games.</p><p>I also enjoyed the presentations that were done. I'm already thinking about attending the next one. :)</p>]]></description></item><item><title>Back from vacations</title><pubDate>Sun, 30 Mar 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080330</link><guid>http://www.progtools.org/blog.php?entry=20080330</guid><description><![CDATA[<p>I am finally back to Dusseldorf after some vacations where I travelled to Vienna,
  Amersfoot and Amesterdam.</p><p>You might think that this was a lot of travelling around, but actually when one
  lives on the middle of Europe it is kind of easy to travell around like that.</p><p>Vienna was really nice. My last time there was back in 2003, and now I had a bit
  more time to get to know the city. We really found lots of nice places and the Austrian
  gastronomy is also very tasty. :)</p><p>Amersfoot was then the opportunity to meet some of my friends on a new stage of their
  life. The city seems very welcoming. And we also took the oportunity to spend a day in Amesterdam
  because both cities are quite close to each other. And in Netherlands I also got the opportunity
  to taste new gastronomy trends. Also very nice. :)</p><p>Now it is time to get back to work.</p>]]></description></item><item><title>New Site Design</title><pubDate>Mon, 03 Mar 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080303</link><guid>http://www.progtools.org/blog.php?entry=20080303</guid><description><![CDATA[<p>Finally after several years with the same design, I have decided to refresh the way the
  site looks. Thanks to <a href="http://www.oswd.org">owsd</a> I could quickly change it. I
  might still change the template but I also like this one.</p><p>This is work in progress, currently only the blog page has the new layout. I will update the
  rest during this week or on the next weekend.</p>]]></description></item><item><title>NVidia's GDC 2008 Papers are now Available</title><pubDate>Sat, 01 Mar 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080301</link><guid>http://www.progtools.org/blog.php?entry=20080301</guid><description><![CDATA[<p>For those of you that aren't always tracking down all the comunications from our beloved
  graphics hardware developers, NVidia has just published the papers from their talks at <a href="http://www.gdconf.com/">GDC 2008</a>.
  You can get them <a href="http://developer.nvidia.com/object/gdc-2008.html">here</a>.</p><p>And the best of all is that they are all in PDF format. :)</p>]]></description></item><item><title>Talks from Lang.NET available</title><pubDate>Sun, 24 Feb 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080224</link><guid>http://www.progtools.org/blog.php?entry=20080224</guid><description><![CDATA[<p>The slides from the 2008 Lang.NET Symposium are now <a href="http://langnetsymposium.com/talks.asp">available</a>.
  The downside is that you need to install <a href="http://silverlight.net/">Silverlight</a> in order to see them. I really
  would like that Microsoft would be more standards friendly instead of having their own standards for everything.</p><p>Anyway, if you can overcome the prejudice of having to have Silverlight installed, the talks
  are quite interesting.</p><link href="http://langnetsymposium.com"/>]]></description></item><item><title>Super Concert!</title><pubDate>Tue, 19 Feb 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080219</link><guid>http://www.progtools.org/blog.php?entry=20080219</guid><description><![CDATA[<p>Yesterday I went to the Phoneheads concert together with the Dusseldorfs Orchestra.
  That was a really nice concert!</p><p>In case you don't know them, the <a href="http://www.phoneheads.de/">Phoneheads</a> are
  a Drum and Bass band from Dusseldorf. It was very enjoyable to see how they were able to mix
  their music with classic music.</p>]]></description></item><item><title>Microsoft's Channel 9</title><pubDate>Mon, 18 Feb 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080218</link><guid>http://www.progtools.org/blog.php?entry=20080218</guid><description><![CDATA[<p>This weekend I spent a great deal of time watching <a href="http://channel9.msdn.com">Channel 9</a>
   videos. Surely you get a lot of Microsoft propaganda, but they also have very interesting
   subjects with developers/researchers working outside Microsoft world.</p><p>So even if Microsoft technologies aren't your cup of tea, Channel 9 might be worth a look.</p>]]></description></item><item><title>Portuguese Game Studio on the News</title><pubDate>Mon, 11 Feb 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080211</link><guid>http://www.progtools.org/blog.php?entry=20080211</guid><description><![CDATA[<p>I just saw an article at the <a href="http://www.developmag.com">Develop Magazine</a> about
   a Portuguese studio using the Gamebryo engine.</p><p>The Portuguese game studio is called <a href="http://www.biodroid-entertainment.com/">Biodroid</a>, and
   they seem to have on their <a href="http://www.developmag.com/news/29251/Biodroid-picks-Gamebryo">plans</a>
   a game for the Wii.</p><p>As a side note, Reuters will <a href="http://www.ddj.com/blog/javablog/archives/2008/02/reuters_chooses.html">use Java</a>
   for their Real Time Systems.</p>]]></description></item><item><title>Helau! Carnaval is in Town!</title><pubDate>Sat, 02 Feb 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080202</link><guid>http://www.progtools.org/blog.php?entry=20080202</guid><description><![CDATA[<p>Hi! Currently we are in Carnaval, and it is pretty big here in Germany.
   So we are having lots of partys to attend to. :)</p><p>On a side note, I have found that the videos from the last Ruby conference
   are <a href="http://rubyconf2007.confreaks.com">online</a>, and even though I
   tend to lean more to the Python side, I've been watching the conference videos.
   There is pretty cool stuff to watch. Even if you don't intend to develop applications
   in Ruby, I advice you to take a look at the videos. You can always learn something new.</p>]]></description></item><item><title>Software Engineering Podcasts</title><pubDate>Tue, 22 Jan 2008 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20080122</link><guid>http://www.progtools.org/blog.php?entry=20080122</guid><description><![CDATA[<p>Hi! So the year already goes far advanced for my first 2008 entry, but since
   we are still in January. Happy New Year! :) </p><p>Now for the blog entry subject. If you are into software development, I have
   found out a very nice site with podcasts about software development. It is called the 
   <a href="http://se-radio.net/">Software Engineering Radio</a>.</p>]]></description></item><item><title>Merry Christmas and a Happy New Year!!</title><pubDate>Wed, 26 Dec 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071226</link><guid>http://www.progtools.org/blog.php?entry=20071226</guid><description><![CDATA[<p>Even though I'm posting this entry after Christmas day, we are still on Christmas Hollidays.
   So enjoy the season and all the best for 2008!</p>]]></description></item><item><title>Portuguese Winner on the NVidia Shader Contest</title><pubDate>Sun, 09 Dec 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071209</link><guid>http://www.progtools.org/blog.php?entry=20071209</guid><description><![CDATA[<p>I just discovered that one of the winners from the <a href="http://news.developer.nvidia.com/2007/11/the-winners-sha.html">Shade Your World</a>
   competition is Portuguese!</p>]]></description></item><item><title>Bye Symbian C++</title><pubDate>Mon, 26 Nov 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071126</link><guid>http://www.progtools.org/blog.php?entry=20071126</guid><description><![CDATA[<p>You guys might remember how happy I was last year with the possibilty
   of trying out C++ on Symbian mobiles.</p><p>After some experiments, like a tic-tac-toe game and some OpenGL/ES examples,
   I failed to find the platform as interessant as I was expecting. First of all,
   one has to program on a weird C++ dialect, full of concepts like <i>"Two phase initialization"</i>,
   functions that can leave and lack of full ISO-C++ support. And STL is also missing.</p><p>The reasoning for many of the design decisions behind Symbian-C++ is due to the hardware
   constraints of the devices where SymbianOS used to run. However the latest handsets are more powefull
   that my first PCs (386-&gt;Pentium), so I don't see why I have to use a weaker version of C++ than
   I had to use on those days.</p><p>And at least on my handset, the J2ME performance is quite good. So I'm giving up on Symbian-C++
   until it gets more programmer friendly or I get paid to endure its pains.</p>]]></description></item><item><title>A little Ruby</title><pubDate>Mon, 19 Nov 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071119</link><guid>http://www.progtools.org/blog.php?entry=20071119</guid><description><![CDATA[<p>Due to the increased interest in the <a href="http://www.ruby-lang.org/en/">Ruby</a>
   programming language, I took some time to play with the language during a business travel last week.</p><p>The language really looks quite nice, and I specially like the Smalltalk feel that one can see
   on the language itself. However I don't see myself making a huge investment into taking Ruby into use.
   And the main reason for it is that I have been using Python for quite some time now. Besides code blocks,
   I don't see many advantages of Ruby over Python.</p><p>Sure I might use it the future, if the need arises. But for the time being, Python serves my dynamic
   language programming requirements, specially due to the wider support it has.</p>]]></description></item><item><title>The increase in functional programming</title><pubDate>Sun, 11 Nov 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071111</link><guid>http://www.progtools.org/blog.php?entry=20071111</guid><description><![CDATA[<p>Last week I came to know a little know fact that pleased me. Microsoft
   is turning <a href="http://research.microsoft.com/fsharp/fsharp.aspx">F#</a>
   into a product, as noticed in <a href="http://blogs.msdn.com/dsyme/archive/2007/10/17/s-somasegar-on-taking-f-forward.aspx">
   Don Syme's</a> blog.</p><p>For those of you that don't know iti, F# is a funcional language for .Net based
   on the ML familly of languages. I've always been a great fan of funcional programming, having
   had my first contact with <a href="http://caml.inria.fr/">Caml Light</a>. One of the things that attracted me to
   Python was the functional programming possibilities that the language somehow offered at the time.</p><p>Python and Ruby offer many funcional based contructs and they somehow helped more people
   to become more aware of funcional programming.
   <a href="http://www.haskell.org/haskellwiki/Haskell">Haskell</a> keeps on attracting users
   and since <a href="http://en.wikipedia.org/wiki/Pugs">Pugs</a> makes use of it,
   it gained a bit more of traction. Not to forget that one of the research institutes using the language
   it Microsoft Research itself.</p><p>Now having a big company like Microsoft backing a functional language in their official
   set of programming languages will only help the cause, regardless of one may think about the
   company itself.</p><p>I for one, am not a super fan of Microsoft, but I am glad that they are productizing F#
   and will for sure have a look at the language. Who knows maybe functional programming might be the
   next breakthrough in the industry, after OOP. :)</p>]]></description></item><item><title>C++0x, will anyone care?</title><pubDate>Sat, 20 Oct 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071020</link><guid>http://www.progtools.org/blog.php?entry=20071020</guid><description><![CDATA[<p>I started programming in C++, back in 1992. At the time there were lots
   of C++ related magazines discussing the language along with the standardization
   process. The <i>C++ Report</i> and <i>The C/C++ Users Journal</i> became
   part of my monthly reading.</p><p>Since then I became well versed in the language and even had the oportunity
   to use it in HPC scenarios, during my stay at <a href="http://www.cern.ch">CERN</a>.</p><p>But currently I spend most of my working time with managed languages (Java, Python, etc),
   and only code in C++ when need arises. I only use C++ for personal projects, or when it is
   the best tool for a given job. Otherwise I stay on the cosy world of higher level languages
   as C++. :)</p><p>But I try to keep me up to date with the C++ language revision, and some of the changes,
   like concepts, which appeal to me. However I am a bit sceptisc that the world will notice C++0x
   when it comes out.</p><p>We are in 2007 and as far as I know, there isn't a single C++ compiler that fully implements the
   Ansi C++ 98. Assuming that C++0x will be C++ 09, when will the first 100% compliant compiler appear?
   And how should we write portable code in the mean time?</p><p>This was always a plague in the C++ world, how to take advantage of new language features and yet
   keep the programs portable.</p><p>Currently C++ is the best language for doing systems programming, however the world moves on, and
   new solutions keep on appearing. There were other languages for systems programming before C++ and there
   will be surely other ones afterward.</p><p>In a world, where most IT projects moved away from C++ to Java, C# and even on a smaller scale to Objective-C,
   will there be any major project taking advantage of C++0x? In my area C++ is only being used when the
   other languages are not performant enough, or for legacy projects.</p><p>C++ will still be a long time with us, and many new applications are still being written on it, I just don't know
   if anyone will care for C++0x.</p><p>However if you care about it, have a look at <a href="http://en.wikipedia.org/wiki/C++0x">Wikipedia's article</a>, Gcc's
   <a href="http://gcc.gnu.org/gcc-4.3/cxx0x_status.html">support</a> of the language and the
   <a href="http://www.generic-programming.org/software/ConceptGCC/">ConceptGCC</a> compiler.</p>]]></description></item><item><title>PS3 at 400 euros. At what price?</title><pubDate>Wed, 10 Oct 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20071010</link><guid>http://www.progtools.org/blog.php?entry=20071010</guid><description><![CDATA[<p>Sony made the announcement of a PS3 at 400 euros. We should probably
   be happy with it, since even I paid more than that for my PS2. But I'm
   personally not that happy.</p><p>When PS3 was announced, I as PS fan was already salivating for getting
   one. It was going to play blue-ray, have Cell processors and support Linux
   from day one, what more could a techie savy person wish for?</p><p>What do we have now? A console that when compared to its American or Asian
   counterparts is handicaped. And Sony continues to keep on hold the support for
   the graphics processor on the PS3 Linux.</p><p>It seems that Sony lost touch with their fans. The ones that made PS1 and PS2
   famous and now have to depart somewhere else.</p><p>I'm still hoping that the situation will change, but I'm not waiting forever.</p>]]></description></item><item><title>Animation Generator available</title><pubDate>Sat, 29 Sep 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070929</link><guid>http://www.progtools.org/blog.php?entry=20070929</guid><description><![CDATA[<p>I have made a small Java utility to convert Sony's Multiburst image files into a
   more convenient file format. Which currently means animated GIF files. Just follow
   the header link to get the utility.</p><link href="http://www.progtools.org/graphics/projects/animgen/animgen.html"/>]]></description></item><item><title>Vacations!</title><pubDate>Tue, 04 Sep 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070904</link><guid>http://www.progtools.org/blog.php?entry=20070904</guid><description><![CDATA[<p>I'm still on vacations, now in Aveiro, after a well spent week in Lisbon.</p><p>I was there showing the city and surroundings to a few german friends. They seemed
   to have enjoyed it. I did as well, after all it not all the time that we get to enjoy
   our city together with some foreign friends. I hope everyone returned safely back home
   and see you guys in some days.</p>]]></description></item><item><title>Got Approved!</title><pubDate>Sun, 19 Aug 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070819</link><guid>http://www.progtools.org/blog.php?entry=20070819</guid><description><![CDATA[<p>Just got the result of my german exam that I did in may. Yes I know that is long time ago
   however the exams are corrected all together in Munich so they take sometime to get corrected.
   But I can say that I did pass the exam and now have officially C1 german level! :)</p><p>Switching to another theme, if you haven't seen the Simpsons movie, please do so. And stay
   all the way until the end, the movie is hillarious and full of small surprises.</p>]]></description></item><item><title>Back from Finland</title><pubDate>Sun, 29 Jul 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070729</link><guid>http://www.progtools.org/blog.php?entry=20070729</guid><description><![CDATA[<p>I'm now back in Dusseldorf after a short stay in Helsiki due
   to one of our projects. Since I had some time after work to
   walk around the city, I took the oportunity to take some pictures
   of the city. Specially this time of the year, since they still almost
   have no night. You can have a look at them <a href="http://www.progtools.org/gallery/helsiki_2007/">here</a>.</p><p>I also found out that the <a href="http://www.rtp.pt">Portugese National TV</a> now has a few
   live transmitions via Internet. Way to go RTP!! If at least the other
   TVs would follow you. We can only wish. :) </p>]]></description></item><item><title>Blog finally updated!</title><pubDate>Mon, 09 Jul 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070709</link><guid>http://www.progtools.org/blog.php?entry=20070709</guid><description><![CDATA[<p>Hello! Those of you that were coming to my blog for the
   past few months may have thought that the site was dead.
   Actually I have done a few updates, but nothing much. Now I
   have using PHP5 for the blog part, and for my photo gallery.
   Well the photo gallery is only visible to my friends but it
   is a very important part of the site.</p><p>I know that last year I was considering other technologies
   besides PHP, and to be honest I don't like it that much. But it
   gets the job done and is easily portable for other servers if
   needed. But I would gladly play around with Ruby on Rails if the
   oportunity comes up. :)</p><p>Last week I went to the <i>Chemical Brothers</i> concert here in
   Dusseldorf. If you like them, and you happen to live nearby one of their
   tour places, then I advise you to go to their concert. Here it was quite
   cool.</p>]]></description></item><item><title>Busta Rhymes concert</title><pubDate>Tue, 24 Apr 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070424</link><guid>http://www.progtools.org/blog.php?entry=20070424</guid><description><![CDATA[<p>Last Friday I went to Busta Rhymes' concert here in Dusseldorf. It was nice
   to be able to watch him live, but the concert felt somehow short. Somehow it seems
   that more time was spent on the bands that played before him than on his concert.</p><p>But I've also got to know Spezializtz from <a href="http://www.gbz-imp.com">G.B.Z.</a> which
   seem to be very well known over here.</p>]]></description></item><item><title>Easter Time</title><pubDate>Fri, 06 Apr 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070406</link><guid>http://www.progtools.org/blog.php?entry=20070406</guid><description><![CDATA[<p>Hi everyone. I wish you all an Happy Easter.</p>]]></description></item><item><title>Games for Mobiles, is it really worth it?</title><pubDate>Sun, 25 Mar 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070325</link><guid>http://www.progtools.org/blog.php?entry=20070325</guid><description><![CDATA[<p>I have been a long time fan of J2ME games, always hoping for them to get
   better but that doesn't seem to be the case. Currently mobile games are a
   good busines with lots of people downloading games to play on their mobiles
   mostly while commuting. And lots of them are really cool, however there is
   one big disavantage to them while comparing to a PSP or DS. Lack of proper controls.</p><p>I think there is really good potencial for proper games on cell phones,
   but developers need to focus on the available controls and not do simple
   ports of known games. My disappoint has been growing everytime I try a new
   mobile version of known games from Amiga or SNES days, the mobiles just weren't
   made for them.</p><p>Maybe every game developer and publisher should take care that a cell phone
   keyboard is not the same thing as a PS2 controller.</p>]]></description></item><item><title>Noubless Oblige</title><pubDate>Sat, 03 Mar 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070303</link><guid>http://www.progtools.org/blog.php?entry=20070303</guid><description><![CDATA[<p>Yesterday at Salon des Amateurs I was able to get to know a very
   cool Drum and Bass band. I don't know if they will support my understanding
   of their music style, but they are really cool nontheless. Check them out
   at their <a href="http://www.noblesseoblige.co.uk">web site</a>.</p><p>I just add a new application for doing very simple image processing,
   creativily named <a href="graphics/projects/processor/processor.html">ImageProcessor</a>.</p>]]></description></item><item><title>Helau! Karneval!</title><pubDate>Thu, 15 Feb 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070215</link><guid>http://www.progtools.org/blog.php?entry=20070215</guid><description><![CDATA[<p>So it is time again for Carnaval in Germany. Here in NRW the country will surely almost
   stop until next Wednesday. If you are around just be prepared to take part into the action,
   or to run away if this is not your kind of thing. :)</p>]]></description></item><item><title>Better support for Symbian</title><pubDate>Thu, 08 Feb 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070208</link><guid>http://www.progtools.org/blog.php?entry=20070208</guid><description><![CDATA[<p>It seems that the Symbian consortium is finally realizing the pain
   it is to program for the Symbian OS. So they are releasing POSIX support
   for the OS. The project name is known as <a href="http://forum.nokia.com/main/resources/technologies/open_c/index.html">Open C</a>.
   </p><p>Now if they just could improve the C++ support as well.</p>]]></description></item><item><title>Linux out again :(</title><pubDate>Thu, 01 Feb 2007 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20070201</link><guid>http://www.progtools.org/blog.php?entry=20070201</guid><description><![CDATA[<p>It's been a long time since my last blog entry, so first of all I take the
   oportunity to wish you all a Happy New Year, even though we are already in February.</p><p>This week I've finally removed Linux from my laptop. So why did I, a Linux fan,
   irradicated Linux from my own laptop?</p><p>The answer is quite simple, lack of support. My last attempts were based on
   Mandriva 2007 and Fedora Core 6. These distributions were the first ones that properly
   supported my screen resolution and sound card out of the box.</p><p>But they kept on hanging! Surely an X Windows/NVidia driver problem, as I have seen
   before. But these crashes always meant a cold reboot, the last one even made me reflash
   my BIOS. I still don't understand how a OS crash can be related to a corrupted flash BIOS 
   but it happened.</p><p>And even if the Linux would be working ok, I would still need to configure the support
   to multimedia using the binary only win32codes, using binary drivers for my WiFi card, not
   be able to use my laptop remote, and I would still need Windows for gamming and Symbian
   development.</p><p>So I just lost my patience and my laptop is again a Windows only one. Please note that this
   doesn't mean I lost my faith on Linux. My work is mostly done in Linux, and I have other
   computers with Linux installed, but this laptop will not have Linux for the time being.</p><p>The sad fact about this is that we are now in 2006, 12 years after I started using Linux
  (slackware 2) and some problems are still the same.</p><p>And even though more manufacters support Linux, some of them just do it as a marketing
   thing. Just look for all those network adapters manufacters that use Linux on their rooters
   but don't provide support for the WiFi cards. Or Sony that supports Linux on PS3 but without
   graphics acceleration. And I could surely get more examples.</p>]]></description></item><item><title>Linux is back in. Time for XBox 360?</title><pubDate>Tue, 21 Nov 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20061121</link><guid>http://www.progtools.org/blog.php?entry=20061121</guid><description><![CDATA[<p>
   So after some experiments I was able to use Mandriva 2007 and also
   Fedora Core 6. Both seem to support most of the laptop, exception made
   to the usual Winmodem stuff and maybe the WiFi system. Anyway Mandriva
   default X installation kept on hanging, so now I'm trying my luck with
   Fedora.
   </p><p>
   I should also praise Microsoft for them opening XBox  360 to game hobbyists.
   This time they seem to have an edge start to PS3. As an happy PS2 Linux owner
   I was expecting better support from Sony, but they seem to think otherwise. Most
   available reports so far seem to suggest that even the officially supported Yellow
   Dog Linux isn't able to use the graphics hardware. So what the use of running Linux
   on PS3 if it is just for looking cool?
   </p>]]></description></item><item><title>Time to drop Linux out of my Laptop?</title><pubDate>Mon, 02 Oct 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20061002</link><guid>http://www.progtools.org/blog.php?entry=20061002</guid><description><![CDATA[<p>
   This title may seem bombastic to my friends that know me as a Unix lover
   even though I also work with Microsoft tools every now and then. The problem
   is that we are currently in 2006 and after several experiments, I still 
   haven't found a distribution that supports all the hardware in my Laptop.
   </p><p>
   The sound system and WiFi are still not working. I could tweak configuration
   files, but somehow along the years I lost the motivation to keep on doing it.
   </p><p>
   And my current usage of the laptop requires the use of Windows due to some Windows
   only software like the Symbian SDK. So my Linux distribution is only getting digital
   dust.
   </p><p>
   If Mandriva 2007 or Fedora Core 6 still do not support it, maybe it's time
   to regain that lost partition.
   </p>]]></description></item><item><title>Some new stuff</title><pubDate>Wed, 27 Sep 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060927</link><guid>http://www.progtools.org/blog.php?entry=20060927</guid><description><![CDATA[<p>
    It has been a while since I lasted posted here. Lots of stuff have
    been happening. For a starters I'm back to the VHS, now at medium
    level B2. Yep, that's right I passed my "Deutsch als Fremdsprache"
    exam! :)
   </p><p>
    Paralel to that I'm also doing some Photo development workshop, let's
    see how it goes.
   </p><p>
    And to end this update, I'm now playing with Symbian OS in C++. It's
    kind of cool because it is a bit like old school coding. I'll put some
    results on my site when I have them ready. As usual my friends have priority
    over my hobby coding, so these projects tend to go a bit slow.
   </p>]]></description></item><item><title>Mera Luna</title><pubDate>Mon, 14 Aug 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060814</link><guid>http://www.progtools.org/blog.php?entry=20060814</guid><description><![CDATA[<p>
    This weekend I attended <a href="http://www.meraluna.de">Mera Luna</a>
    and it was very nice. I was afraid of attending it because of the
    weather conditions. But in the end it did not rain and I manage to
    see some interesting bands. And I also enjoyed meeting my friends.
   </p><p>
   So see you next year Mera Luna!
   </p>]]></description></item><item><title>See you in Lisbon</title><pubDate>Tue, 08 Aug 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060808</link><guid>http://www.progtools.org/blog.php?entry=20060808</guid><description><![CDATA[<p>
    A portuguese friend that I met in Dusseldorf just returned home
    this weekend. It was sad to see a friend go. In one hand I felt
    sad because it is always a sad to see a friend leave. But on the
    other hand I also understand that each one has to live its own
    life.
   </p><p>
    So all the best to you Ines, and see you in Lisbon in a few weeks
    time.
   </p>]]></description></item><item><title>World Cup is over</title><pubDate>Sun, 09 Jul 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060709</link><guid>http://www.progtools.org/blog.php?entry=20060709</guid><description><![CDATA[<p>
     So today it's the last day of the World Cup. It was
     a very interesting World Cup. Specially if you were
     lucky enough to live in Germany. It was very nice to
     live thru all the ambiance that surrounds an international
     event like this one.
   </p><p>
     Another reason was that it was very good to see how far
     Portugal managed to go. It's true we got defeated yesterday
     but we managed to come all the way to 4th place. Most
     of the other countries are already at home. :)
   </p>]]></description></item><item><title>Meetin Paris</title><pubDate>Tue, 30 May 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060530</link><guid>http://www.progtools.org/blog.php?entry=20060530</guid><description><![CDATA[<p>
    I just came back from Paris after spending some time
    there for the MeetIn convention. I must say that it
    was great and I enjoyed a lot all the activities that
    the MeetIn Paris members organized. It was also great
    to get to know so many nice people from all over the
    world.
   </p><p>
   So thanks once more and see you around in some event. The
   pictures will be made available still this week for the
   persons with access to my gallery.
   </p>]]></description></item><item><title>Barcelona!</title><pubDate>Thu, 18 May 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060518</link><guid>http://www.progtools.org/blog.php?entry=20060518</guid><description><![CDATA[<p>
    My favorite spanish football team just manage to
    win the Champions League. It might not have been
    a super match, but in the end they managed to succeed.
    So "Felicitaciones Barca!".
   </p>]]></description></item><item><title>Friends</title><pubDate>Wed, 19 Apr 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060419</link><guid>http://www.progtools.org/blog.php?entry=20060419</guid><description><![CDATA[<p>
    Last week a friend of mine had to go back to her
    country. Someone that I got to know last year and
    became a good friend of mine, and hopefully we'll
    keep on touch.
   </p><p>
    And during the Easter hollidays I had a visit from
    two good friends from my time in Geneva. We amused
    ourselfs touring around Dusseldorf and all its terraces.
   </p><p>
    This made me think a bit about friendship, and I decided
    to publish as a blog entry, something that everyone knows
    but is good to write it down. Friends is one of the best
    things you can get during life, just be sure you keep them!
   </p>]]></description></item><item><title>How it is possible!?!</title><pubDate>Fri, 07 Apr 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060407</link><guid>http://www.progtools.org/blog.php?entry=20060407</guid><description><![CDATA[<p>
    Sometimes is incredible how people put up with buggy IDEs.
    I've been trying to generate EJB mapping code with the mapping
    tool from a very well know IDE, and the generation keeps on
    failing due to some strange IDE bugs. This task is keeping me
    busy for a week already. How can big companies release such a
    buggy products?!  
   </p><p>
    And before someone starts wondering. The mappings are correctly
    defined. Only with this IDE, things keep on failing.
   </p><p>
    This really makes me miss the days when using a Tcl application
    server where this type of mapping would just take some minutes
    and work out of the box. Somewhat similar to the currently famous
    <i>Ruby on Rails</i>.
   </p>]]></description></item><item><title>Juanes' Concert</title><pubDate>Tue, 28 Mar 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060328</link><guid>http://www.progtools.org/blog.php?entry=20060328</guid><description><![CDATA[<p>
    Yesterday I went with a friend to the Juanes' Concert here
    in Dusseldorf. It was really cool. We took lots of pictures
    and he played most of his hits. In the end it was a very good concert.
    My only complain is that the concert could have been a bit longer.
   </p><p>
    Stay tuned for the photos. I'll make them available as soon as I
    have some free time.
   </p>]]></description></item><item><title>Cebit 2006 Video and Tcl</title><pubDate>Sat, 18 Mar 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060318</link><guid>http://www.progtools.org/blog.php?entry=20060318</guid><description><![CDATA[<p>
    I just got an email from a friend telling me that one his
    Cebit videos, just made its way to the
    <a href="http://lg3d-core.dev.java.net/"> Looking Glass</a> web
    site. Congratulations Oliver!
   </p><p>
    It seems that IBM uses Tcl as a scripting language for the
    Websphere server. This is quite cool, it's been a while since
    I've used the language for the last time. The language is
    quite cool and it brought me found memories from when I was
    working at Altitude Software.
   </p><p>
    As a final note, I should add that Spring seems to be arriving
    to Dusseldorf. Finally I can continue to do inline skating!
   </p>]]></description></item><item><title>Cebit 2006</title><pubDate>Mon, 13 Mar 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060313</link><guid>http://www.progtools.org/blog.php?entry=20060313</guid><description><![CDATA[<p>
    This weekend I traveled together with a friend to my first Cebit's visit.
    It was kind of cool to attend Cebit. The exibithion was quite big and we
    got to see some cool stuff first hand. I was pleased to see a section with
    old computers. I consider it a travel into childihood.
   </p><p>
    The Linux and Sun sections were also interesting to attend. NVidia's section
    took a few booths and was always croweded. As usual I took some
    <a href="http://www.progtools.org/gallery/cebit/">pictures</a> of the events.
   </p>]]></description></item><item><title>Cool Concert last night!</title><pubDate>Tue, 24 Jan 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060124</link><guid>http://www.progtools.org/blog.php?entry=20060124</guid><description><![CDATA[<p>
    Yesterday, I've attend the <a href="http://www.misia-online.com/">Misia's</a> concert
    here in Dusseldof. It was a very
    nice concert. A big part of the audience was Portuguese, but many Germans
    were also there. And I can say that everyone enjoyed the concert. We even
    had 3 encores! Good luck for the next concerts, Misia.
   </p>]]></description></item><item><title>Happy New Year</title><pubDate>Thu, 05 Jan 2006 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20060105</link><guid>http://www.progtools.org/blog.php?entry=20060105</guid><description><![CDATA[<p>
    It's a bit late, but I guess it's still on time. HAPPY NEW YEAR everyone!</p>]]></description></item><item><title>First snowfall in Dusseldorf</title><pubDate>Sun, 27 Nov 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20051127</link><guid>http://www.progtools.org/blog.php?entry=20051127</guid><description><![CDATA[<p>
    The first snow of 2005 Winter has just arrived! I managed to take some <a href="http://www.progtools.org/gallery/snow/">photos</a> from my house.
   </p><p>And I've <a href="http://www.progtools.org/compilers/tutorials/cxx_and_bison/cxx_and_bison.html">updated</a> my C++
      and Bison tutorial for a more recent version of g++.</p>]]></description></item><item><title>Petzold's article</title><pubDate>Mon, 07 Nov 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20051107</link><guid>http://www.progtools.org/blog.php?entry=20051107</guid><description><![CDATA[<p>
    I just read a very nice <a href="http://charlespetzold.com/etc/DoesVisualStudioRotTheMind.html">article</a> from Charles
    Petzold about the complexity of todays IDEs. Even though is
    talk was target to Visual Studio, I think we can apply the
    same reasoning to other IDEs as well.
   </p>]]></description></item><item><title>Back to Germany</title><pubDate>Tue, 01 Nov 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20051101</link><guid>http://www.progtools.org/blog.php?entry=20051101</guid><description><![CDATA[<p>I am back to Germany, after some vacations in Portugal and decided to
   update the site as well.</p><p>And I will start by removing my contratulations to the SIC Portuguese
   Channel. Those guys only had their site open for connections outside Portugal
   for a few days. I've sent them a complaint email, joking a bit, I must confess.
   Got their <a href="articles/sic.html">reply</a> saying that they can't transmit
   outside of the county. Feel free to read it if you understand portuguese.</p><p>Now the funny thing is. The RTP and TVI channels are able to transmit outside
   of the country, even if they charge for it. How come SIC can't do the same?!</p>]]></description></item><item><title>SIC is now available outside Portugal!</title><pubDate>Mon, 19 Sep 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050919</link><guid>http://www.progtools.org/blog.php?entry=20050919</guid><description><![CDATA[<p>
    Hurray! I just discovered that the Portuguese TV network <a href="http://www.sic.pt">SIC</a>
    is now available outside Portugal. MUITO OBRIGADO!
   </p><p>Of course, my main reason is to be able to keep in touch with SIC Radical.</p><p>I've also added an entry to a new parser generator, <a href="compilers/parserscan.html">Gardens Point</a></p>]]></description></item><item><title>Oita Cinema gets a new life!</title><pubDate>Mon, 12 Sep 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050912</link><guid>http://www.progtools.org/blog.php?entry=20050912</guid><description><![CDATA[<p>
   I've just learned that one of my favorite cinemas back home
   is getting a new life thanks to the city's <a href="http://www.cineclubedeaveiro.com/">cinema club</a>.
   Sorry but they only have information in Portuguese.
   </p><p>
    I've always had a love for good movies, you know, the type of movies that aren't made just to sell
    popcorns. So it's nice to see the cinema club getting the Oita cinema back into action. I do understand
    they also need to show some more comercial movies from time to time. But at least we have a group of
    people to thank for keeping the cinema running.
   </p><p>
    Now they just need your presence. So if you are in Aveiro, Portugal just pay a visit to Oita's cinema.
    You might get to see a good movie.
   </p>]]></description></item><item><title>M'era Luna</title><pubDate>Tue, 16 Aug 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050816</link><guid>http://www.progtools.org/blog.php?entry=20050816</guid><description><![CDATA[<p>
      Last weekend I went to the <a href="http://www.fkpscorpio.com/meraluna/">M'era Luna</a>
      festival to meet some friends and enjoy the music festival.
    </p><p>
     Even though the weather could have been better, I had lots of fun
     and discovered several cool bands, like <a href="http://www.faune.de">Faun</a>,
     <a href="http://www.schandmaul.de/">Schandmaul</a>,
     <a href="http://www.leaveseyes.de/">Leave's Eyes</a>, among others.
    </p><p>
     If you apreciate Gothic Music then I would advise you to come by next
     year.
    </p>]]></description></item><item><title>Bukovina Club</title><pubDate>Mon, 25 Jul 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050725</link><guid>http://www.progtools.org/blog.php?entry=20050725</guid><description><![CDATA[<p>
     This Saturday I went to a concert here in <i>Salon des Amateurs</i>
     that was very good. So if you like musicians like Kusturica, take
     a look at <a href="http://www.bucovina.de">Bukovina</a> web site.
     If you follow the link you will get to hear some samples.
    </p>]]></description></item><item><title>Trip to Bruges</title><pubDate>Mon, 18 Jul 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050718</link><guid>http://www.progtools.org/blog.php?entry=20050718</guid><description><![CDATA[<p>
     The last weekend I was in Bruges, very nice town. I strongly
     advise you to visit it.
    </p><p>
     It was lots of monuments to see, mostly churches. Exhibitions, channels
     like Amesterdam, and a nice gastronomy. :)
    </p><p>
     If you have time, rent a bike, it's really the best way to go around
     the city.
    </p>]]></description></item><item><title>Spanish night</title><pubDate>Wed, 13 Jul 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050713</link><guid>http://www.progtools.org/blog.php?entry=20050713</guid><description><![CDATA[<p>
     Yesterday I went to a <a href="http://www.zakk.de/termine/details.php?ID=4501">Spanish night</a>
      here at Zakk.
     Very nice party and I recomend it.
   </p><p>
    I just don't know why they also had <a href="http://www.aveleda.pt/html_i/botao_1e.html">Casal Garcia</a> on
    the list of Spanish wines when it is a Portuguese one. Oh well,
    at least it helps spread the knowledge about it. :)
   </p>]]></description></item><item><title>Another sad day</title><pubDate>Thu, 07 Jul 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050707</link><guid>http://www.progtools.org/blog.php?entry=20050707</guid><description><![CDATA[<p>
     So when the world thinks that we are safe, we get another
     attack just to remind us that it isn't so. I can't understand
     what makes these guys make this sort of things.
   </p><p>
    My condolonces to everyone that lost a loved one in the London
    attack.
   </p>]]></description></item><item><title>Blogs and other stuff</title><pubDate>Fri, 15 Apr 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050415</link><guid>http://www.progtools.org/blog.php?entry=20050415</guid><description><![CDATA[<p>
     I'm really thinking about improving this blog section. But alas,
     real life keeps holding my progress. So probably in a few more
     months before the new site version becomes available. 
   </p><p>
     As you might have noticed from previous entries, I've started
     to put some pictures in the site. The new version will of the
     site will have some sort of gallery. :)
   </p><p>
     Now I just have to try to go thru the rest of my working day
     and prepare for another weekend! Have a nice weekend.
   </p>]]></description></item><item><title>New site engine part 2 and Karneval</title><pubDate>Sun, 13 Feb 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050213</link><guid>http://www.progtools.org/blog.php?entry=20050213</guid><description><![CDATA[<p>
     I'm playing around with <a href="http://www.rubyonrails.org">rails</a>
     and really like it. It makes me remeber of a framework that I used to
        work with while at <a href="http://www.altitude.com">Altitude
           Software</a>. It shares many of the same concepts but used Tcl instead.
    </p><p>
     Will it be the foundation of the next version of this site?
     Probably not due to lack of availability where to run it, but
     let's see.
    </p><p>
      Last week it was Carnaval (or in german Karneval) and I took
      the opportunity to grab some photos of the parade. You can
      see them in my <a href="gallery/duesseldorf">gallery</a>. Enjoy.
   </p>]]></description></item><item><title>Ideas for a new site engine</title><pubDate>Thu, 06 Jan 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050106</link><guid>http://www.progtools.org/blog.php?entry=20050106</guid><description><![CDATA[<p>
     I'm starting to be fed up of using these XML/XSLT files for the
     web site without much support from something else. So I've decided
     to automate the generation of these files with something like PHP or
     Perl. What I want is the ability to add new content using a browser
     and nothing else. I already looked into some PHP CMS systems like
     Mambo and XOOPS but they seem overkill for my simple site.
   </p>]]></description></item><item><title>Help the victims of the Tsunami</title><pubDate>Tue, 04 Jan 2005 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20050104</link><guid>http://www.progtools.org/blog.php?entry=20050104</guid><description><![CDATA[<p>
      What can I say? The amount of images that we can see from the
      area are nothing compared to the suffering and losses that
      Asien people are going thru now. So just help the international
      organizations so they can help them.
   </p><link href="http://edition.cnn.com/2004/WORLD/asiapcf/12/28/tsunami.aidsites"/>]]></description></item><item><title>Moving into Dusseldorf</title><pubDate>Wed, 01 Dec 2004 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20041201</link><guid>http://www.progtools.org/blog.php?entry=20041201</guid><description><![CDATA[<p>
     Even though I am making this entry, the 6th of January, I wanted
     to leave the date that I officially moved here. :)
   </p><p>
     It's been two years since I left Portugal and went to work for CERN
     in Switzerland and leaving in France. Funny situation but pretty common
     in the Geneva area.
   </p><p>
     Eventually I got a job at Nokia in the Dusseldorf R&amp;D center. So
     here I am now in a new city, new country and starting to now German.
   </p>]]></description></item><item><title>Updated the Delphi's Lex/Yacc entry</title><pubDate>Wed, 15 Sep 2004 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20040915</link><guid>http://www.progtools.org/blog.php?entry=20040915</guid><description><![CDATA[<p>
     The entry for the Lex/Yacc tool for Delphi has been updated. The
     owner changed the web site location.
   </p><link href="http://www.progtools.org/compilers/parserscan.html"/>]]></description></item><item><title>Tactics being tested in real hardware!</title><pubDate>Tue, 16 Mar 2004 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20040316</link><guid>http://www.progtools.org/blog.php?entry=20040316</guid><description><![CDATA[<p>
      I was finally able to download tactics into my mobile phone, a
      Nokia 3510i. I'm now in the process of tailoring the code so
      that the game makes the best use of the phone.
   </p><link href="http://www.progtools.org/games/projects/index.html"/>]]></description></item><item><title>Eli entry updated</title><pubDate>Fri, 12 Dec 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20031212</link><guid>http://www.progtools.org/blog.php?entry=20031212</guid><description><![CDATA[<p>
      The Eli entry in <a href="compilers/comptool.html">Compilers Toolkits</a>, has been updated.
     My personal information was also updated.
    </p><link href="http://www.progtools.org/compilers/comptool.html"/>]]></description></item><item><title>Tactics ported to Nokia Series 60</title><pubDate>Wed, 03 Dec 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20031203</link><guid>http://www.progtools.org/blog.php?entry=20031203</guid><description><![CDATA[<p>
      The tactics J2ME game has been ported to the Nookia Series 60
      platform.
   </p><link href="http://www.progtools.org/games/projects/index.html"/>]]></description></item><item><title>PyGgy - New compilers section entry</title><pubDate>Tue, 30 Sep 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030930</link><guid>http://www.progtools.org/blog.php?entry=20030930</guid><description><![CDATA[<p>
     Information about the PyGgy parser/lexer generator was added
     to the compilers section.
   </p><link href="http://www.progtools.org/compilers/parserscan.html"/>]]></description></item><item><title>MapEditor was updated</title><pubDate>Sun, 28 Sep 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030928</link><guid>http://www.progtools.org/blog.php?entry=20030928</guid><description><![CDATA[<p>
     Finally I've managed to fixe some of the help files
     in the MapEditor.
   </p><link href="http://www.progtools.org/graphics/projects/mapeditor/mapeditor.html"/>]]></description></item><item><title>A new game is available</title><pubDate>Sun, 21 Sep 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030921</link><guid>http://www.progtools.org/blog.php?entry=20030921</guid><description><![CDATA[<p>
     A simple tanks game that I started developing when
     <a href="http://via.vodafone.com">Vodafone</a> anounced their
     game competition has been added to
     the games section.
    </p><p>
     It is called tactics.
    </p><link href="http://www.progtools.org/games/projects/index.html"/>]]></description></item><item><title>A gallery generator in Python</title><pubDate>Wed, 16 Jul 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030716</link><guid>http://www.progtools.org/blog.php?entry=20030716</guid><description><![CDATA[<p>
      Added a small Python script that generates web galleries from a
      set of image files.
    </p><link href="http://www.progtools.org/graphics/projects/index.html"/>]]></description></item><item><title>Flipcode talks about my port</title><pubDate>Tue, 17 Jun 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030617</link><guid>http://www.progtools.org/blog.php?entry=20030617</guid><description><![CDATA[<p>
      Today I saw that Flipcode has a news about my 'The Art of Demomaking'
      port. This was really great. :)
    </p><p>
      If you have anything to suggest in the port, please let me know.
    </p>]]></description></item><item><title>The Art of Demomaking ports updated(again)</title><pubDate>Fri, 23 May 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030523</link><guid>http://www.progtools.org/blog.php?entry=20030523</guid><description><![CDATA[<p>
      The missing samples, ta-demo15 &amp; 16 were finally added.
    </p><link href="http://www.progtools.org/graphics/projects/index.html"/>]]></description></item><item><title>The Art of Demomaking ports updated</title><pubDate>Tue, 29 Apr 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030429</link><guid>http://www.progtools.org/blog.php?entry=20030429</guid><description><![CDATA[<p>
      The code now compiles with gcc 3.2.X in the latest Linux
      distributions.
    </p><link href="http://www.progtools.org/graphics/projects/index.html"/>]]></description></item><item><title>The Art of Demomaking ports updated</title><pubDate>Wed, 19 Mar 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030319</link><guid>http://www.progtools.org/blog.php?entry=20030319</guid><description><![CDATA[<p>
      The timer related code of the ports has been updated.
    </p><link href="http://www.progtools.org/graphics/projects/index.html"/>]]></description></item><item><title>The Art of Demomaking ported to SDL</title><pubDate>Thu, 13 Mar 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030313</link><guid>http://www.progtools.org/blog.php?entry=20030313</guid><description><![CDATA[<p>
      The Alex Champandard's 
       <a href="http://www.flipcode.com/demomaking">tutorial</a>
      samples have been ported to SDL.
    </p><link href="http://www.progtools.org/graphics/projects/index.html"/>]]></description></item><item><title>RSS now supported</title><pubDate>Wed, 05 Mar 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030305</link><guid>http://www.progtools.org/blog.php?entry=20030305</guid><description><![CDATA[<p>
      My first RSS version goes live!
    </p>]]></description></item><item><title>New game added</title><pubDate>Tue, 18 Feb 2003 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20030218</link><guid>http://www.progtools.org/blog.php?entry=20030218</guid><description><![CDATA[<p>
      A new game has been added to <a href="games/projects/index.html">games</a>
     section.
    </p><link href="http://www.progtools.org/games/projects/index.html"/>]]></description></item><item><title>Parser/Scan Generators Updated</title><pubDate>Thu, 12 Dec 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20021212</link><guid>http://www.progtools.org/blog.php?entry=20021212</guid><description><![CDATA[<p>
      The Delphi Parser Generator has been added to the <a href="compilers/parserscan.html">Parser/Scan Generators</a>
      section.
    </p><link href="http://www.progtools.org/compilers/parserscan.html"/>]]></description></item><item><title>AI article now online</title><pubDate>Wed, 11 Dec 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20021211</link><guid>http://www.progtools.org/blog.php?entry=20021211</guid><description><![CDATA[<p>
      My AI article is now online at the <a href="http://ai-depot.com/LogicGames/MiniMax.html">AI Depot</a>
    </p><link href="http://ai-depot.com/LogicGames/MiniMax.html"/>]]></description></item><item><title>SableCC entry updated</title><pubDate>Thu, 28 Nov 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20021128</link><guid>http://www.progtools.org/blog.php?entry=20021128</guid><description><![CDATA[<p>
      The SableCC entry in the <a href="compilers/comptool.html">Compilers Toolkits</a>
      section has been updated.
    </p>]]></description></item><item><title>Checkers localized</title><pubDate>Mon, 28 Oct 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20021028</link><guid>http://www.progtools.org/blog.php?entry=20021028</guid><description><![CDATA[<p>
     <a href="games/projects/checkers/checkers.html">Checkers</a> has
     been localized to English and Portuguese.
    </p>]]></description></item><item><title>Checkers goes LGPL</title><pubDate>Mon, 21 Oct 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20021021</link><guid>http://www.progtools.org/blog.php?entry=20021021</guid><description><![CDATA[<p>
     <a href="games/projects/checkers/checkers.html">Checkers</a> is now
     under LGPL.
    </p><link href="http://www.progtools.org/games/projects/checkers/checkers.html"/>]]></description></item><item><title>Checkers interface gets a new look</title><pubDate>Wed, 25 Sep 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020925</link><guid>http://www.progtools.org/blog.php?entry=20020925</guid><description><![CDATA[<p>
     The Java version of <a href="games/projects/checkers/checkers.html">checkers</a> has
     been upgraded from AWT to Swing. Nothing like bringing the interface up to date. :)
    </p><link href="http://www.progtools.org/games/projects/checkers/checkers.html"/>]]></description></item><item><title>Compilers section updated</title><pubDate>Mon, 09 Sep 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020909</link><guid>http://www.progtools.org/blog.php?entry=20020909</guid><description><![CDATA[<p>
     Added new entries to the <a href="compilers/parserscan.html">Parser/Scan Generators</a>
     and <a href="compilers/treetransform.html">Tree Transformations</a> sections.
    </p>]]></description></item><item><title>New article</title><pubDate>Sun, 18 Aug 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020818</link><guid>http://www.progtools.org/blog.php?entry=20020818</guid><description><![CDATA[<p>
     Added the article that I submited to a contest in <a href="ai-depot.org">AI Depot</a>.
     It is available in the <a href="games/tutorials/index.html">tutorials</a> section of
     the games area.
    </p>]]></description></item><item><title>A games section is now available</title><pubDate>Thu, 15 Aug 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020815</link><guid>http://www.progtools.org/blog.php?entry=20020815</guid><description><![CDATA[<p>
      Added a new section, entitled Games. Moved the games that were available
      in the Graphics section to the new section.
    </p>]]></description></item><item><title>FNC-2 entry is updated</title><pubDate>Wed, 31 Jul 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020731</link><guid>http://www.progtools.org/blog.php?entry=20020731</guid><description><![CDATA[<p>
      The FNC-2 entry in the <a href="compilers/attrgrammar.html">Attribute Grammars</a>
      section has been updated.
    </p>]]></description></item><item><title>New compilers information available</title><pubDate>Fri, 07 Jun 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020607</link><guid>http://www.progtools.org/blog.php?entry=20020607</guid><description><![CDATA[<p>
      A new entry in the compilers section is available!
      It contains information about
      The <a href="compilers/parserscan.html">Parsers and Scanners</a> 
      tools that are available on the Net.
    </p>]]></description></item><item><title>Programming in GNOME with C++</title><pubDate>Fri, 03 May 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020503</link><guid>http://www.progtools.org/blog.php?entry=20020503</guid><description><![CDATA[<p>
      The <a href="graphics/tutorials/index.html">tutorials</a>
      section of graphics has been created. It has an article about programming
      in GNOME with the gtkmm/gnomme framework.
    </p>]]></description></item><item><title>SharpCheckers was updated</title><pubDate>Fri, 22 Feb 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020222</link><guid>http://www.progtools.org/blog.php?entry=20020222</guid><description><![CDATA[<p>
      <a href="games/projects/sharp_checkers/sharp_checkers.html">SharpCheckers</a>
      has been updated to the .Net release edition.
    </p>]]></description></item><item><title>Checkers now in .Net</title><pubDate>Tue, 05 Feb 2002 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20020205</link><guid>http://www.progtools.org/blog.php?entry=20020205</guid><description><![CDATA[<p>It's been a long time since I've updated the site. Well I guess
    that is what happens when you have a site as an hobby and not much
    free time. :(</p><p>A new game has been added, or should I say a new version of an
    old one ?</p><p>The Java Checkers game has been ported to .Net/C# and is now
    
     on the site. Have fun !</p>]]></description></item><item><title>New hosting</title><pubDate>Sun, 23 Sep 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010923</link><guid>http://www.progtools.org/blog.php?entry=20010923</guid><description><![CDATA[<p>Finally I've decided to get myself a domain and the ability to script
    my site the way I want to.</p>]]></description></item><item><pubDate>Mon, 13 Aug 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010813</link><guid>http://www.progtools.org/blog.php?entry=20010813</guid><description><![CDATA[<p>It's been a while since I last updated the site, so I added a small
     <a href="games/projects/checkers/checkers.html">checkers</a> game
     that I done a few years ago. I am in the process of learning C# and
     WinForms, so stay tuned for an updated version of the game.</p>]]></description></item><item><pubDate>Wed, 16 May 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010516</link><guid>http://www.progtools.org/blog.php?entry=20010516</guid><description><![CDATA[<p>The 
    <a href="compilers/tutorials/discovering_cxx/discovering_cxx.html">Discovering C++</a>
    document has been updated!</p>]]></description></item><item><title>C++ programming document</title><pubDate>Mon, 14 May 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010514</link><guid>http://www.progtools.org/blog.php?entry=20010514</guid><description><![CDATA[<p>I realized that there are many C++ developers that don't know
    anything about how different is standard C++ from the one they are
    using. So I decided to create a
    <a href="compilers/tutorials/discovering_cxx/discovering_cxx.html">FAQ</a>
    with information targeted at them.</p>]]></description></item><item><title>A MapEditor</title><pubDate>Tue, 27 Mar 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010327</link><guid>http://www.progtools.org/blog.php?entry=20010327</guid><description><![CDATA[<p>Finally I got some free time and added an entry for the
    <a href="graphics/projects/mapeditor/mapeditor.html">MapEditor</a>.
    An editor for 2D tile based games.</p>]]></description></item><item><title>CV Update</title><pubDate>Mon, 29 Jan 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010129</link><guid>http://www.progtools.org/blog.php?entry=20010129</guid><description><![CDATA[<p>Well, instead of updating my online CV on Friday, I am updating it
    today.</p>]]></description></item><item><title>New CV versions</title><pubDate>Thu, 25 Jan 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010125</link><guid>http://www.progtools.org/blog.php?entry=20010125</guid><description><![CDATA[<p>OK, I have updated my CV in the authors section. Now there are
   RTF and PDF versions. The online version will be updated tomorrow.</p>]]></description></item><item><title>Fixed folder's names</title><pubDate>Tue, 16 Jan 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010116</link><guid>http://www.progtools.org/blog.php?entry=20010116</guid><description><![CDATA[<p> Apparently some of the folders were misspelled :((. But that's
    solved now, thanks for your patience.</p>]]></description></item><item><title>A new version appears</title><pubDate>Wed, 03 Jan 2001 00:00:00 +0000</pubDate><link>http://www.progtools.org/blog.php?entry=20010103</link><guid>http://www.progtools.org/blog.php?entry=20010103</guid><description><![CDATA[<p>Finally the third version of <b>Programmers' Toolbox</b> is up
  and running :). A section about parsers and scanners is missing
  because is being updated, but it will be added very soon.</p><p>Feel free to take a look around. Please mail me if you have any
    suggestions to make</p>]]></description></item>
</channel>
</rss>