<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Tero's blog</title><link href="https://tero.stronglytyped.org/" rel="alternate"></link><link href="https://tero.stronglytyped.org/feeds/all.atom.xml" rel="self"></link><id>https://tero.stronglytyped.org/</id><updated>2025-09-01T20:30:00+03:00</updated><subtitle>Random notes</subtitle><entry><title>Ahven 2.9 released</title><link href="https://tero.stronglytyped.org/ahven-29-released.html" rel="alternate"></link><published>2025-09-01T20:30:00+03:00</published><updated>2025-09-01T20:30:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2025-09-01:/ahven-29-released.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.9 is now released.&lt;/p&gt;
&lt;p&gt;This is a long overdue maintenance release with three changes worth the release notes item:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Alire configuration support&lt;/li&gt;
&lt;li&gt;SPDX license identifiers to all source code files&lt;/li&gt;
&lt;li&gt;Support for custom Set_Up and Tear_Down procedures for test suites&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can get Ahven 2.9 sources from …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.9 is now released.&lt;/p&gt;
&lt;p&gt;This is a long overdue maintenance release with three changes worth the release notes item:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Alire configuration support&lt;/li&gt;
&lt;li&gt;SPDX license identifiers to all source code files&lt;/li&gt;
&lt;li&gt;Support for custom Set_Up and Tear_Down procedures for test suites&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can get Ahven 2.9 sources from &lt;a class="reference external" href="https://www.ahven-framework.com/releases/ahven-2.9.tar.gz"&gt;https://www.ahven-framework.com/releases/ahven-2.9.tar.gz&lt;/a&gt; or
&lt;a class="reference external" href="https://www.ahven-framework.com/releases/ahven-2.9.zip"&gt;https://www.ahven-framework.com/releases/ahven-2.9.zip&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The detailed list of changes is at &lt;a class="reference external" href="https://hg.sr.ht/~tkoskine/ahven/raw/NEWS.txt?rev=ahven-2.9"&gt;https://hg.sr.ht/~tkoskine/ahven/raw/NEWS.txt?rev=ahven-2.9&lt;/a&gt;&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Ahven 2.7 released</title><link href="https://tero.stronglytyped.org/ahven-27-released.html" rel="alternate"></link><published>2018-07-30T22:30:00+03:00</published><updated>2018-07-30T22:30:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2018-07-30:/ahven-27-released.html</id><summary type="html">&lt;p&gt;I released &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.7 last week, but only now I had time to create
a blog post about it.&lt;/p&gt;
&lt;p&gt;Version 2.7 is pretty normal maintenance release. Probably the most
interesting this is fix for Tear_Down procedure, which was not called
if a test raised exception.&lt;/p&gt;
&lt;p&gt;The bug has …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I released &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.7 last week, but only now I had time to create
a blog post about it.&lt;/p&gt;
&lt;p&gt;Version 2.7 is pretty normal maintenance release. Probably the most
interesting this is fix for Tear_Down procedure, which was not called
if a test raised exception.&lt;/p&gt;
&lt;p&gt;The bug has been there since the beginning of Ahven (11 years) and
only now it was noticed by Jacob Sparre Andersen.&lt;/p&gt;
&lt;p&gt;You can get Ahven 2.7 sources from &lt;a class="reference external" href="https://www.ahven-framework.com/releases/ahven-2.7.tar.gz"&gt;https://www.ahven-framework.com/releases/ahven-2.7.tar.gz&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The detailed list of changes is at &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/raw/ahven-2.7/NEWS.txt"&gt;https://bitbucket.org/tkoskine/ahven/raw/ahven-2.7/NEWS.txt&lt;/a&gt;&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Ahven 2.5 and 2.6 released</title><link href="https://tero.stronglytyped.org/ahven-25-and-26-released.html" rel="alternate"></link><published>2015-08-30T16:30:00+03:00</published><updated>2015-08-30T16:30:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2015-08-30:/ahven-25-and-26-released.html</id><summary type="html">&lt;p&gt;It has been about 1.5 years since previous Ahven release. To fix the situation,
I released &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.5 and &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.6 today.&lt;/p&gt;
&lt;p&gt;Ahven 2.6 is almost identical to 2.5, but its documentation contains fixed release dates.&lt;/p&gt;
&lt;div class="section" id="hosting-and-other-changes"&gt;
&lt;h2&gt;Hosting and other changes&lt;/h2&gt;
&lt;p&gt;There aren't many code &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/src/95b5c94f0b15f90917284d2ca5b6ceddadbf1922/NEWS?at=ahven-2.6#NEWS-1"&gt;changes …&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;It has been about 1.5 years since previous Ahven release. To fix the situation,
I released &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.5 and &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;Ahven&lt;/a&gt; 2.6 today.&lt;/p&gt;
&lt;p&gt;Ahven 2.6 is almost identical to 2.5, but its documentation contains fixed release dates.&lt;/p&gt;
&lt;div class="section" id="hosting-and-other-changes"&gt;
&lt;h2&gt;Hosting and other changes&lt;/h2&gt;
&lt;p&gt;There aren't many code &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/src/95b5c94f0b15f90917284d2ca5b6ceddadbf1922/NEWS?at=ahven-2.6#NEWS-1"&gt;changes&lt;/a&gt;. Instead, the build mechanism for GNAT
is changed and the hosting of Ahven is also moved to a dedicated &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;site&lt;/a&gt;.
New release do not appear at SourceForge, since it has been &lt;a class="reference external" href="http://arstechnica.com/information-technology/2015/05/sourceforge-grabs-gimp-for-windows-account-wraps-installer-in-bundle-pushing-adware/"&gt;injecting&lt;/a&gt;
adware to many release packages.&lt;/p&gt;
&lt;p&gt;New download location is &lt;a class="reference external" href="http://www.ahven-framework.com/releases/"&gt;http://www.ahven-framework.com/releases/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As before, the development version is available from Bitbucket &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven"&gt;https://bitbucket.org/tkoskine/ahven&lt;/a&gt;
and mirror site is at &lt;a class="reference external" href="http://hg.stronglytyped.org/ahven/"&gt;http://hg.stronglytyped.org/ahven/&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;The building on Linux using GNAT now happens with comfignat.mk Makefile
template. Normal users should not see much changes, but distribution
packagers should have better configuration options. The change was
a wish from Fedora packagers. One of them, Bjorn Persson, contributed
the comfignat scripts for Ahven.&lt;/p&gt;
&lt;p&gt;Another change related change is that the documentation needs to be build
using Sphinx. Previously, Ahven's release tarballs have included the
prebuilt documentation, but this caused some problems for Debian developers
because their packaging policy warns about prebuilt things.&lt;/p&gt;
&lt;/div&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Running Ada 2012 on Olimex STM32-E407 (ARM Cortex-M4 / STM32F4)</title><link href="https://tero.stronglytyped.org/running-ada-2012-on-olimex-stm32-e407-arm-cortex-m4-stm32f4.html" rel="alternate"></link><published>2014-11-19T20:30:00+02:00</published><updated>2014-11-19T20:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-11-19:/running-ada-2012-on-olimex-stm32-e407-arm-cortex-m4-stm32f4.html</id><summary type="html">&lt;p&gt;Almost &lt;a class="reference external" href="http://arduino.ada-language.com/arduino-due.html"&gt;two years&lt;/a&gt; after
I got my first ARM Cortex-Mx device, I finally found time to build Ada ARM
Cortex-M cross-compiler using FSF GCC/GNAT. But, instead of Atmel SAM3,
I used STM32F4 processor found from &lt;a class="reference external" href="https://www.olimex.com/"&gt;Olimex&lt;/a&gt; &lt;a class="reference external" href="https://www.olimex.com/Products/ARM/ST/STM32-E407/"&gt;STM32-E407&lt;/a&gt; board.&lt;/p&gt;
&lt;p&gt;Relevant code pieces are sprinkled into three repositories at Bitbucket:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bitbucket.org/tkoskine/embedded-arm-gnat-build"&gt;embedded-arm-gnat-build …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Almost &lt;a class="reference external" href="http://arduino.ada-language.com/arduino-due.html"&gt;two years&lt;/a&gt; after
I got my first ARM Cortex-Mx device, I finally found time to build Ada ARM
Cortex-M cross-compiler using FSF GCC/GNAT. But, instead of Atmel SAM3,
I used STM32F4 processor found from &lt;a class="reference external" href="https://www.olimex.com/"&gt;Olimex&lt;/a&gt; &lt;a class="reference external" href="https://www.olimex.com/Products/ARM/ST/STM32-E407/"&gt;STM32-E407&lt;/a&gt; board.&lt;/p&gt;
&lt;p&gt;Relevant code pieces are sprinkled into three repositories at Bitbucket:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bitbucket.org/tkoskine/embedded-arm-gnat-build"&gt;embedded-arm-gnat-build&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bitbucket.org/tkoskine/embedded-arm-gnat-rts"&gt;embedded-arm-gnat-rts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bitbucket.org/tkoskine/gnat-arm-app-skeleton"&gt;gnat-arm-app-skeleton&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;First repository, &lt;a class="reference external" href="https://bitbucket.org/tkoskine/embedded-arm-gnat-build"&gt;embedded-arm-gnat-build&lt;/a&gt;, contains the build scripts for GNAT (arm-none-eabi target;
the script for binutils is missing, you need to install it manually).&lt;/p&gt;
&lt;p&gt;The second repository (&lt;a class="reference external" href="https://bitbucket.org/tkoskine/embedded-arm-gnat-rts"&gt;embedded-arm-gnat-rts&lt;/a&gt;) has simple runtime for GNAT.
It is almost direct copy of Lucretia's &lt;a class="reference external" href="https://github.com/Lucretia/tamp/"&gt;TAMP&lt;/a&gt; RTS. The runtime does not have
install script, so after building it you need to install the runtime manually.&lt;/p&gt;
&lt;p&gt;The third one (&lt;a class="reference external" href="https://bitbucket.org/tkoskine/gnat-arm-app-skeleton"&gt;gnat-arm-app-skeleton&lt;/a&gt;) contains the actual application.
I loaned the startup files from &lt;a class="reference external" href="http://www.mbed.org"&gt;mbed&lt;/a&gt; project,
in case you wonder why there are so many C and assembler files. They
could be optimized to two simple assembler files, but I haven't got that far.&lt;/p&gt;
&lt;p&gt;The most interesting parts of the app are here:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
-- blink.adb, Ada 2012 code
with Interfaces;
with STM32F4;

procedure Blink is
   use type Interfaces.Unsigned_32;

   procedure My_Delay is

      -- Mark X volatile so that GNAT does not optimize
      -- the loop. Notice the new Ada 2012 aspect syntax.
      X : Interfaces.Unsigned_32 := 0 with Volatile;
   begin
      loop
         exit when X = 1000_000;
         X := X + 1;
      end loop;
   end My_Delay;

begin
   STM32F4.RCC_ENABLE := STM32F4.RCC_ENABLE
     or STM32F4.GPIOC_ENABLE_BIT or STM32F4.GPIOD_ENABLE_BIT;

   --                            13 c  b a  9 8  7         3
   STM32F4.GPIOC_MODE  := 2#0000_0101_0101_0000_0000_0000_0000_0000#;
   STM32F4.GPIOC_TYPE  := 2#0000_0000_0000_0000_0000_0000_0000_0000#; -- push-pull
   STM32F4.GPIOC_SPEED := 2#0000_1100_0000_0000_0000_0000_0000_0000#; -- fast
   STM32F4.GPIOC_PUPD  := 2#0000_0000_0000_0000_0000_0000_0000_0000#; -- no pull

   STM32F4.GPIOD_MODE  := 2#0000_0101_0101_0000_0000_0000_0000_0000#;
   STM32F4.GPIOD_TYPE  := 2#0000_0000_0000_0000_0000_0000_0000_0000#; -- push-pull
   STM32F4.GPIOD_SPEED := 2#0000_1100_0000_0000_0000_0000_0000_0000#; -- fast
   STM32F4.GPIOD_PUPD  := 2#0000_0000_0000_0000_0000_0000_0000_0000#; -- no pull

   STM32F4.GPIOC_BSRR  := 2#0111_1000_0000_0000_0000_0000_0000_0000#;
   STM32F4.GPIOD_BSRR  := 2#0000_0000_0000_0000_0011_1100_0000_0000#;
   loop
      STM32F4.GPIOC_BSRR := 2#0111_1000_0000_0000_0000_0000_0000_0000#;
      STM32F4.GPIOD_BSRR := 2#0111_1000_0000_0000_0000_0000_0000_0000#;
      My_Delay;
      STM32F4.GPIOC_BSRR := 2#0000_0000_0000_0000_0111_1000_0000_0000#;
      STM32F4.GPIOD_BSRR := 2#0000_0000_0000_0000_0111_1000_0000_0000#;
      My_Delay;
   end loop;
end Blink;
&lt;/pre&gt;
&lt;p&gt;The program blinks various leds at port C and port D.&lt;/p&gt;
&lt;p&gt;On &lt;a class="reference external" href="https://www.olimex.com/"&gt;Olimex&lt;/a&gt; &lt;a class="reference external" href="https://www.olimex.com/Products/ARM/ST/STM32-E407/"&gt;STM32-E407&lt;/a&gt;,
which I used for testing, the status led is at port C13. If you use the same
board, you should see the led blinking.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://flic.kr/p/q5zXfo"&gt;
&lt;img alt="Olimex STM32-E407" src="https://farm9.staticflickr.com/8641/15804452966_d54f4b5ed5.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;Note: My build scripts, GNAT runtime for ARM Cortex-Mx, and other Ada code
are still very rough. I just wanted to try is it possible to use FSF GNAT
for ARM Cortex-Mx development. As my time permits, I will continue to
improve things, but it will take some time.&lt;/p&gt;
</content><category term="ada"></category><category term="stm32"></category><category term="stm32f4"></category><category term="olimex"></category><category term="gnat"></category><category term="arm"></category><category term="cortex-m"></category></entry><entry><title>Building the development version of Ahven</title><link href="https://tero.stronglytyped.org/building-the-development-version-of-ahven.html" rel="alternate"></link><published>2014-06-04T23:00:00+03:00</published><updated>2014-06-04T23:00:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-06-04:/building-the-development-version-of-ahven.html</id><summary type="html">&lt;p&gt;The next version of &lt;a class="reference external" href="http://www.ahven-framework.org/"&gt;Ahven&lt;/a&gt; (2.5) will use &lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; based
Makefile system by default. This is done to make the life
of Linux, especially Fedora Linux, package managers easier.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; will take care of all the details how to build suitable
shared libraries, install the documentation where …&lt;/p&gt;</summary><content type="html">&lt;p&gt;The next version of &lt;a class="reference external" href="http://www.ahven-framework.org/"&gt;Ahven&lt;/a&gt; (2.5) will use &lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; based
Makefile system by default. This is done to make the life
of Linux, especially Fedora Linux, package managers easier.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; will take care of all the details how to build suitable
shared libraries, install the documentation where it belongs,
etc. As a downside, the complexity of the building process
increases exponentially. Therefore, I decided to explain how
one can build parts or all of &lt;a class="reference external" href="http://www.ahven-framework.org/"&gt;Ahven&lt;/a&gt; using the upcoming Makefile
system.&lt;/p&gt;
&lt;p&gt;Also, I should note that the layout of the source code files
has not changed. You still can use the source code from &lt;em&gt;src&lt;/em&gt;
and &lt;em&gt;src/unix&lt;/em&gt; (or &lt;em&gt;src/windows&lt;/em&gt;) directories directly and ignore
the Makefile system, which is nicely confined inside &lt;em&gt;gnat&lt;/em&gt; directory.&lt;/p&gt;
&lt;p&gt;Like-wise, Janus/Ada users are not affected by this change. Scripts
in the &lt;em&gt;janusada&lt;/em&gt; directory are mostly untouched.&lt;/p&gt;
&lt;div class="section" id="installing-prerequisites"&gt;
&lt;h2&gt;Installing prerequisites&lt;/h2&gt;
&lt;p&gt;You of course need Ada compiler. FSF GNAT 4.6 or GNAT GPL 20xx is
good enough. For the documentation you need Python and packages
called &lt;a class="reference external" href="http://sphinx-doc.org/"&gt;sphinx&lt;/a&gt; and &lt;a class="reference external" href="https://pypi.python.org/pypi/sphinxcontrib-adadomain/0.1"&gt;sphinxcontrib-adadomain&lt;/a&gt;. To build the system
using comfignat.mk, you need GNU Make. Other Make tools, for example
from BSD systems, do not work.&lt;/p&gt;
&lt;p&gt;If your Linux distribution does not provide python-sphinx and
sphinxcontrib-adadomain packages, it is best to install
python-virtualenv package and create virtual environment
where to install the other packages.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
mkdir -p $HOME/python-virtual/ahven
virtualenv $HOME/python-virtual/ahven
. $HOME/python-virtual/ahven/bin/activate
pip install sphinx
pip install sphinxcontrib-adadomain
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="build-steps"&gt;
&lt;h2&gt;Build steps&lt;/h2&gt;
&lt;p&gt;The top level Makefile contains multiple targets:
&lt;em&gt;base&lt;/em&gt;, &lt;em&gt;check&lt;/em&gt;, &lt;em&gt;check_xml&lt;/em&gt;, &lt;em&gt;html&lt;/em&gt;, &lt;em&gt;install&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;From these, &lt;em&gt;base&lt;/em&gt; and &lt;em&gt;check&lt;/em&gt; are the most useful ones when developing
Ahven itself. Target &lt;em&gt;base&lt;/em&gt; will compile the library and &lt;em&gt;check&lt;/em&gt; will
compile the tests and run them also. Variation of this is &lt;em&gt;check_xml&lt;/em&gt;,
which will run the tests and output the results in XML format.
Various continuous integration systems, like Jenkins, know how to interpret
this XML format and produce nice statistics and graphs.&lt;/p&gt;
&lt;p&gt;Target &lt;em&gt;html&lt;/em&gt; will generate the documentation using &lt;a class="reference external" href="http://sphinx-doc.org/"&gt;sphinx&lt;/a&gt;. For this,
you need to have &lt;a class="reference external" href="http://sphinx-doc.org/"&gt;sphinx&lt;/a&gt; and &lt;a class="reference external" href="https://pypi.python.org/pypi/sphinxcontrib-adadomain/0.1"&gt;sphinxcontrib-adadomain&lt;/a&gt; packages installed
and necessary sphinx binaries available in PATH.&lt;/p&gt;
&lt;p&gt;Finally, &lt;em&gt;install&lt;/em&gt; will install the library and GNAT project files
to the system so all users can use them. Usually, only distribution
packagers want to use this.&lt;/p&gt;
&lt;p&gt;The default action for the main Makefile is to compile the library
and the documentation (default = base + html).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="known-issues"&gt;
&lt;h2&gt;Known issues&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; supports &lt;em&gt;gprbuild&lt;/em&gt; and &lt;em&gt;gnatmake&lt;/em&gt; build tools.
gprbuild is more recent and I think that is what Adacore recommends.
However, for example, on Ubuntu 14.04 gprbuild does not produce
working executables (when used for &lt;a class="reference external" href="http://www.ahven-framework.org/"&gt;Ahven&lt;/a&gt;). This is why &lt;em&gt;gnatmake&lt;/em&gt; is
the default.&lt;/p&gt;
&lt;p&gt;If you want to use gprbuild, you can change GNAT_BUILDER variable
in Makefile to &lt;em&gt;gprbuild&lt;/em&gt;. Another word of caution: if you plan
to use &lt;em&gt;gprbuild&lt;/em&gt; on Fedora, make sure that you have locale
settings configured to value &amp;quot;C&amp;quot;. Otherwise, gprbuild might
fail to build the library.&lt;/p&gt;
&lt;p&gt;Example command could be something like this:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
LANG=C make OPTS=&amp;quot;GNAT_BUILDER=gprbuild&amp;quot;
&lt;/pre&gt;
&lt;p&gt;or:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
cd gnat &amp;amp;&amp;amp; LANG=C make GNAT_BUILDER=gprbuild
&lt;/pre&gt;
&lt;p&gt;The second command will enter gnat directory first and then run make
from there. The main level Makefile will do that automatically, so
you don't need to do that usually.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="windows"&gt;
&lt;h2&gt;Windows&lt;/h2&gt;
&lt;p&gt;So far, all of above has applied to Linux and BSD systems with
GNAT installed. comfignat.mk should work on Windows also, but
you need to have GNU Make, and probably some other Linux tools
installed also. These usually can be found via mingw or cygwin
projects.&lt;/p&gt;
&lt;p&gt;However, I also provide &amp;quot;old style&amp;quot; project file which can be
used directly:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
gnatmake -p -P gnat/ahven_lib
&lt;/pre&gt;
&lt;p&gt;It only builds the library itself, but usually that should be
enough.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="i-do-not-get-it"&gt;
&lt;h2&gt;I do not get it!&lt;/h2&gt;
&lt;p&gt;If this still sounds too complicated, you can also compile
all of the source code as-is with plain gnatmake and run
the resulting tester executable:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
gnatmake -aIsrc -aIsrc/unix -aItest tester
./tester
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="other-compilers"&gt;
&lt;h2&gt;Other compilers&lt;/h2&gt;
&lt;p&gt;Currently, I provide build scripts only for GNAT and Janus/Ada.
In addition to those two compilers, I also regularly test
the code with ICCAda, but ICCAda build tools are so easy to use
that I haven't bothered to create separate build scripts for it.&lt;/p&gt;
&lt;p&gt;For Janus/Ada the compilation process is following:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
janusada\prepare.bat
janusada\update.bat
janusada\compile.bat
&lt;/pre&gt;
&lt;p&gt;The first command prepares the Janus/Ada project files and you
need to run it only once. The second command scans the source
code for changes and determines which source files need to be
compiled again. First time you of course need to compile all of the code.
The third command then actually compiles the code.&lt;/p&gt;
&lt;p&gt;You can combine the second and the third command using build.bat:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
janusada\build.bat
&lt;/pre&gt;
&lt;p&gt;Later, when you change some source file and want to recompile the
project, you need to run only update.bat and compile.bat
or build.bat only. Of course, if you want to do full clean build,
then you can run prepare.bat first.&lt;/p&gt;
&lt;p&gt;ICCAda users will find the build process very similar:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
icm new
icm scan src\*.ad? src\windows\*.ad? test\*.ad?
icm make tester
&lt;/pre&gt;
&lt;p&gt;The first command creates the necessary project files. The second
command scans the source code for changes and finally the third
command compiles the source code.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="documentation"&gt;
&lt;h2&gt;Documentation&lt;/h2&gt;
&lt;p&gt;The documentation is written in &lt;a class="reference external" href="http://en.wikipedia.org/wiki/ReStructuredText"&gt;reStructuredText&lt;/a&gt; format.
It is basically plain text with some simple formatting instruction
sprinkled here and there. It originates from &lt;a class="reference external" href="http://www.python.org/"&gt;Python&lt;/a&gt; project.&lt;/p&gt;
&lt;p&gt;A tool which which converts reStructuredText to HTML is called
&lt;a class="reference external" href="http://sphinx-doc.org/"&gt;sphinx&lt;/a&gt;. To make sphinx work better
with Ada documentation, I have written separate &lt;a class="reference external" href="https://bitbucket.org/birkenfeld/sphinx-contrib/src/06d85a8deb26275024d6bf3c12eeb9a2357af464/adadomain/?at=default"&gt;adadomain&lt;/a&gt; plugin.&lt;/p&gt;
&lt;p&gt;The documentation lives in doc/manual/en/source directory.
If you make changes to it, you can run &lt;em&gt;make html&lt;/em&gt; which
rebuilds the changed parts and places the output to
gnat/obj/sphinx/html directory.
for sphinx.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="final-words"&gt;
&lt;h2&gt;Final words&lt;/h2&gt;
&lt;p&gt;The new comfignat.mk based build system is still somewhat experimental.
If you find bugs, please report them to me, so I can fix them
before next release (which happens at some point later this year).&lt;/p&gt;
&lt;p&gt;If you want to see what a full build of Ahven using some of
my compilers looks, you can check it from
&lt;a class="reference external" href="http://build.ada-language.com/view/Ahven/"&gt;build.ada-language.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a class="reference external" href="https://www.rombobjörn.se/Comfignat/"&gt;comfignat.mk&lt;/a&gt; build system
is contributed by &lt;a class="reference external" href="https://www.rombobjörn.se/"&gt;Björn Persson&lt;/a&gt;. Big
thanks to him!&lt;/p&gt;
&lt;/div&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="sphinx"></category></entry><entry><title>New Ada tips blog</title><link href="https://tero.stronglytyped.org/new-ada-tips-blog.html" rel="alternate"></link><published>2014-03-14T22:30:00+02:00</published><updated>2014-03-14T22:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-03-14:/new-ada-tips-blog.html</id><summary type="html">&lt;p&gt;Some weeks ago I took an advantage of new domain .tlds and
registered &lt;a class="reference external" href="http://ada.tips/"&gt;ada.tips domain&lt;/a&gt; for myself.&lt;/p&gt;
&lt;p&gt;My plan is to publish there small tips related to Ada programming language.&lt;/p&gt;
&lt;p&gt;In theory, I could publish those tips in this blog also, but
I could not resist getting such a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Some weeks ago I took an advantage of new domain .tlds and
registered &lt;a class="reference external" href="http://ada.tips/"&gt;ada.tips domain&lt;/a&gt; for myself.&lt;/p&gt;
&lt;p&gt;My plan is to publish there small tips related to Ada programming language.&lt;/p&gt;
&lt;p&gt;In theory, I could publish those tips in this blog also, but
I could not resist getting such a short domain for myself.&lt;/p&gt;
&lt;p&gt;In addition, I registered a few other Ada related domains,
like &lt;a class="reference external" href="http://www.ada-language.guru"&gt;ada-language.guru&lt;/a&gt;, but
since I don't feel like guru yet, the web page there is just a place holder
for my future plans.&lt;/p&gt;
</content><category term="ada"></category><category term="tips"></category><category term="blog"></category><category term="guru"></category><category term="domains"></category></entry><entry><title>build.ada-language.com fixed</title><link href="https://tero.stronglytyped.org/buildada-languagecom-fixed.html" rel="alternate"></link><published>2014-02-18T09:30:00+02:00</published><updated>2014-02-18T09:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-02-18:/buildada-languagecom-fixed.html</id><content type="html">&lt;p&gt;I managed to fix &lt;a class="reference external" href="http://build.ada-language.com/"&gt;build.ada-language.com&lt;/a&gt; synchronization problems.
Now builds on Windows (and other) systems are updated again.&lt;/p&gt;
</content><category term="ada"></category><category term="build"></category></entry><entry><title>Ahven 2.4 released</title><link href="https://tero.stronglytyped.org/ahven-24-released.html" rel="alternate"></link><published>2014-02-09T23:10:00+02:00</published><updated>2014-02-09T23:10:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-02-09:/ahven-24-released.html</id><summary type="html">&lt;p&gt;Today, I released &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;Ahven&lt;/a&gt; 2.4. It is mostly a maintenance release, since
despite my plans, I didn't get much done last year. The biggest changes
are a compile fix for Apex Ada, documentation improvements, and a comfignat-based
build system in contrib/comfignat directory.&lt;/p&gt;
&lt;p&gt;I will be making this comfignat-based …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today, I released &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;Ahven&lt;/a&gt; 2.4. It is mostly a maintenance release, since
despite my plans, I didn't get much done last year. The biggest changes
are a compile fix for Apex Ada, documentation improvements, and a comfignat-based
build system in contrib/comfignat directory.&lt;/p&gt;
&lt;p&gt;I will be making this comfignat-based build system to be default build system for GNAT
in Ahven 2.5, but I am already including it to Ahven, so people can get used to it
and possibly report bugs.&lt;/p&gt;
&lt;p&gt;As usual, you can get the source code from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/"&gt;SourceForge&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Build script for NetBSD on Olinuxino-imx233</title><link href="https://tero.stronglytyped.org/build-script-for-netbsd-on-olinuxino-imx233.html" rel="alternate"></link><published>2014-02-07T22:15:00+02:00</published><updated>2014-02-07T22:15:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2014-02-07:/build-script-for-netbsd-on-olinuxino-imx233.html</id><summary type="html">&lt;p&gt;I created a simple build script, which can build NetBSD/evbarm for Olinuxino-imx233
from scratch on Linux system.&lt;/p&gt;
&lt;p&gt;Basically, you need to do following:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
hg clone https://bitbucket.org/tkoskine/build-netbsd-imx233
cd build-netbsd-imx233
sh -x ./build-imx233.sh
&lt;/pre&gt;
&lt;p&gt;After a while, you have kernel, base system sets, boot partition image (containing …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I created a simple build script, which can build NetBSD/evbarm for Olinuxino-imx233
from scratch on Linux system.&lt;/p&gt;
&lt;p&gt;Basically, you need to do following:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
hg clone https://bitbucket.org/tkoskine/build-netbsd-imx233
cd build-netbsd-imx233
sh -x ./build-imx233.sh
&lt;/pre&gt;
&lt;p&gt;After a while, you have kernel, base system sets, boot partition image (containing the kernel),
and rootfs image (containing the sets) built.&lt;/p&gt;
&lt;p&gt;However, at the moment, rootfs image is not ready to use. File owners are wrong and
the system in general is unconfigured (no /etc/fstab, no /etc/rc.conf settings, ...).&lt;/p&gt;
&lt;p&gt;Also, you need to figure out how to create correct partitions to the sd card.
While in theory, it is doable from Linux, this is easiest to do from an existing
NetBSD system.&lt;/p&gt;
&lt;p&gt;Example binaries are available at &lt;a class="reference external" href="http://files.tkoskine.me/netbsd/imx233/2014-02-04/"&gt;files.tkoskine.me&lt;/a&gt;.&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://www.flickr.com/photos/terokoskinen/12370332084/player/e76b213727"&gt;
&lt;img alt="Olinuxino-imx233" src="http://farm4.staticflickr.com/3719/12370332084_e76b213727_d.jpg" style="width: 500px; height: 299px;" /&gt;
&lt;/a&gt;
</content><category term="bsd"></category><category term="build"></category><category term="netbsd"></category><category term="bsd"></category><category term="imx233"></category><category term="olimex"></category><category term="olinuxino"></category></entry><entry><title>build.ada-language.com status</title><link href="https://tero.stronglytyped.org/buildada-languagecom-status.html" rel="alternate"></link><published>2013-12-01T11:30:00+02:00</published><updated>2013-12-01T11:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-12-01:/buildada-languagecom-status.html</id><content type="html">&lt;p&gt;Jenkins update broke the distributed builds, so
other than Debian 7 builds at &lt;a class="reference external" href="http://build.ada-language.com/"&gt;http://build.ada-language.com/&lt;/a&gt;
are not updating at the moment.&lt;/p&gt;
&lt;p&gt;I am waiting for Jenkins fix and also looking for alternative
build systems, but that might take a while.&lt;/p&gt;
</content><category term="ada"></category><category term="build"></category></entry><entry><title>sphinxcontrib-adadomain 0.1 released</title><link href="https://tero.stronglytyped.org/sphinxcontrib-adadomain-01-released.html" rel="alternate"></link><published>2013-06-12T21:45:00+03:00</published><updated>2013-06-12T21:45:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-06-12:/sphinxcontrib-adadomain-01-released.html</id><content type="html">&lt;p&gt;After sitting on this &lt;a class="reference external" href="http://tero.stronglytyped.org/adadomain-merged-to-sphinx-contrib.html"&gt;2 years&lt;/a&gt;, I finally released version 0.1 of sphinxcontrib-adadomain to Python Package Index (pypi).&lt;/p&gt;
&lt;p&gt;See &lt;a class="reference external" href="https://pypi.python.org/pypi/sphinxcontrib-adadomain"&gt;https://pypi.python.org/pypi/sphinxcontrib-adadomain&lt;/a&gt; for details.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="sphinx"></category><category term="python"></category></entry><entry><title>New web site mirror (domain) for Ahven</title><link href="https://tero.stronglytyped.org/new-web-site-mirror-domain-for-ahven.html" rel="alternate"></link><published>2013-06-05T21:45:00+03:00</published><updated>2013-06-05T21:45:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-06-05:/new-web-site-mirror-domain-for-ahven.html</id><summary type="html">&lt;p&gt;As a small promotional move, I setup Ahven a dedicated
domain/website, &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;www.ahven-framework.com&lt;/a&gt;, and also
subdomain &lt;a class="reference external" href="http://docs.ahven-framework.com/"&gt;docs.ahven-framework.com&lt;/a&gt; for Ahven documentation.
This way Ahven does not need to &amp;quot;live&amp;quot; just at &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt;
subdomain.&lt;/p&gt;
&lt;p&gt;In addition, I put all release tar balls and zip files under …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As a small promotional move, I setup Ahven a dedicated
domain/website, &lt;a class="reference external" href="http://www.ahven-framework.com/"&gt;www.ahven-framework.com&lt;/a&gt;, and also
subdomain &lt;a class="reference external" href="http://docs.ahven-framework.com/"&gt;docs.ahven-framework.com&lt;/a&gt; for Ahven documentation.
This way Ahven does not need to &amp;quot;live&amp;quot; just at &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt;
subdomain.&lt;/p&gt;
&lt;p&gt;In addition, I put all release tar balls and zip files under
&lt;a class="reference external" href="http://www.ahven-framework.com/releases/"&gt;releases&lt;/a&gt; directory.
Now you can skip all the Sourceforge advertisements. The Sourceforge
downloads will continue to work, if the /releases/ directory is not accessible
for some reason.&lt;/p&gt;
&lt;p&gt;Old address (&lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt;) will also continue to work
normally. I don't have any plans to deprecate it. For a while,
some links were not working correctly, but I think I have fixed
everything now.&lt;/p&gt;
&lt;div class="section" id="technical-details"&gt;
&lt;h2&gt;Technical details&lt;/h2&gt;
&lt;p&gt;Originally, I &lt;a class="reference external" href="http://tero.stronglytyped.org/upcoming-ahven-roadmap.html"&gt;planned&lt;/a&gt; to host most of my web sites from a shared web host.
But, thanks to &lt;a class="reference external" href="http://www.reddit.com/user/marc-kd"&gt;someone&lt;/a&gt; who &lt;a class="reference external" href="http://www.reddit.com/r/programming/comments/1eow5e/tero_does_neat_little_arduino_projects_and_makes/"&gt;submitted&lt;/a&gt; my &lt;a class="reference external" href="http://arduino.ada-language.com/"&gt;Arduino blog&lt;/a&gt;
to &lt;a class="reference external" href="http://www.reddit.com/r/programming/"&gt;reddit/r/programming&lt;/a&gt;, my shared hosting plan proved to
be too small for all the traffic, and I had to find a bigger host.
So, now most of the things are hosted on a dedicated OpenBSD server
from &lt;a class="reference external" href="http://www.edis.at/en/home/"&gt;EDIS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The web server software is nginx, as it comes with OpenBSD by default
these days. In theory, I could also try running Ada Web Server, but
making it run on OpenBSD requires some work and I want to concentrate
my free time efforts on developing Ahven (and AVR-Ada) instead of it.&lt;/p&gt;
&lt;/div&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="website"></category></entry><entry><title>OpenBSD 5.3</title><link href="https://tero.stronglytyped.org/openbsd-53.html" rel="alternate"></link><published>2013-05-15T21:30:00+03:00</published><updated>2013-05-15T21:30:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-05-15:/openbsd-53.html</id><summary type="html">&lt;ul class="simple"&gt;
&lt;li&gt;OpenBSD 5.3 cd set, mug, poster, and t-shirt ordered and received - OK&lt;/li&gt;
&lt;li&gt;OpenBSD 5.3 hosting most of my web sites - OK&lt;/li&gt;
&lt;li&gt;Absolute OpenBSD/2nd (describing OpenBSD 5.3) bought - OK&lt;/li&gt;
&lt;li&gt;GNAT 4.7 usable on OpenBSD 5.3, after some patching &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt; - OK&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After a long hiatus in …&lt;/p&gt;</summary><content type="html">&lt;ul class="simple"&gt;
&lt;li&gt;OpenBSD 5.3 cd set, mug, poster, and t-shirt ordered and received - OK&lt;/li&gt;
&lt;li&gt;OpenBSD 5.3 hosting most of my web sites - OK&lt;/li&gt;
&lt;li&gt;Absolute OpenBSD/2nd (describing OpenBSD 5.3) bought - OK&lt;/li&gt;
&lt;li&gt;GNAT 4.7 usable on OpenBSD 5.3, after some patching &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt; - OK&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After a long hiatus in a Fedora land, I am again starting to
ramp up my OpenBSD activities.&lt;/p&gt;
&lt;p&gt;This is mostly because I found a cheap OpenBSD server provider, &lt;a class="reference external" href="http://www.edis.at/"&gt;edis.at&lt;/a&gt;
and because VMWare + OpenBSD combination works reliably on my main
development machine (which still runs Fedora Linux).&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="reference external" href="http://marc.info/?l=openbsd-ports&amp;amp;m=136847406509052&amp;amp;w=2"&gt;patch at openbsd-ports mailing list&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content><category term="misc"></category><category term="openbsd"></category></entry><entry><title>Web host changed</title><link href="https://tero.stronglytyped.org/web-host-changed.html" rel="alternate"></link><published>2013-01-29T22:00:00+02:00</published><updated>2013-01-29T22:00:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-01-29:/web-host-changed.html</id><content type="html">&lt;p&gt;I changed hosting of &lt;a class="reference external" href="http://arduino.ada-language.com/"&gt;arduino.ada-language.com&lt;/a&gt;,
&lt;a class="reference external" href="http://tero.stronglytyped.org/"&gt;tero.stronglytyped.org&lt;/a&gt;, and
&lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt; (plus a few others)
to another web host. You shouldn't notice anything, but in case you see some errors,
please be patient and try again tomorrow.&lt;/p&gt;
</content><category term="misc"></category><category term="hosting"></category></entry><entry><title>Ahven 2.3 released</title><link href="https://tero.stronglytyped.org/ahven-23-released.html" rel="alternate"></link><published>2013-01-23T22:45:00+02:00</published><updated>2013-01-23T22:45:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2013-01-23:/ahven-23-released.html</id><summary type="html">&lt;p&gt;As &lt;a class="reference external" href="http://tero.stronglytyped.org/upcoming-ahven-roadmap.html"&gt;promised&lt;/a&gt; earlier, Ahven 2.3 is now released. The official release date mentioned in the package is 2013-01-24,
while currently it is still 2013-01-23 in Finland, but that mostly because I managed to get everything ready a few
hours earlier than I estimated. If that bothers you, ignore this …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As &lt;a class="reference external" href="http://tero.stronglytyped.org/upcoming-ahven-roadmap.html"&gt;promised&lt;/a&gt; earlier, Ahven 2.3 is now released. The official release date mentioned in the package is 2013-01-24,
while currently it is still 2013-01-23 in Finland, but that mostly because I managed to get everything ready a few
hours earlier than I estimated. If that bothers you, ignore this message until tomorrow. ;)&lt;/p&gt;
&lt;p&gt;Anyway, the biggest new feature is the exception backtrace reporting. It should work with all compilers, but
output is different for each compiler. This is because compilers do not report backtraces in identical format.
Other changes include documentation improvements and few minor bug fixes.&lt;/p&gt;
&lt;p&gt;As usual, you can get the source code from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/"&gt;SourceForge&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Upcoming Ahven Roadmap</title><link href="https://tero.stronglytyped.org/upcoming-ahven-roadmap.html" rel="alternate"></link><published>2012-12-31T17:31:00+02:00</published><updated>2012-12-31T17:31:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-12-31:/upcoming-ahven-roadmap.html</id><summary type="html">&lt;p&gt;Here is a small status update about Ahven, my unit testing framework
for Ada 95.&lt;/p&gt;
&lt;p&gt;In 2012, Ahven got only one release. this is mostly because it was
put in the maintenance mode while I concentraceted on other projects,
like &lt;a class="reference external" href="http://sourceforge.net/projects/avr-ada/"&gt;AVR-Ada&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I do have plans to put more effort to …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Here is a small status update about Ahven, my unit testing framework
for Ada 95.&lt;/p&gt;
&lt;p&gt;In 2012, Ahven got only one release. this is mostly because it was
put in the maintenance mode while I concentraceted on other projects,
like &lt;a class="reference external" href="http://sourceforge.net/projects/avr-ada/"&gt;AVR-Ada&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I do have plans to put more effort to Ahven development in 2013.
For example, a new release is planned for January.&lt;/p&gt;
&lt;p&gt;In addition, I am looking for ways to reduce costs related to
Ahven's web site maintenance, and also simplify it a little more.&lt;/p&gt;
&lt;p&gt;Currently, Ahven's infrastructure is scattered to three different places:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Downloadable files at Sourceforge&lt;/li&gt;
&lt;li&gt;Source code repository, bug tracker, and wiki at Bitbucket&lt;/li&gt;
&lt;li&gt;Actual website on one Linode instance&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most likely I'll move downloads to Bitbucket and change the web site to
a cheaper shared web hosting service.&lt;/p&gt;
&lt;p&gt;What comes to actual new features, Ahven 2.3 will include support
for exception backtraces when an unknown exception is raised.
Support for the backtraces is compiler dependant and at the moment
Janus/Ada offers the &amp;quot;prettiest&amp;quot; backtraces. You also get something with
GNAT and Irvine ICCAda, but usefulness might vary.&lt;/p&gt;
&lt;p&gt;Other feature, which I have under work, is parallel execution of the tests.
The idea is to run the tests concurrently in N tasks, where N is
something between 1 and the maximum number of the tests. However,
the feature adds quite lot of code to Ahven and makes some not so simple
changes into the internals of Ahven, so I am not sure yet, should I
integrate the feature at all.&lt;/p&gt;
&lt;p&gt;I have also considered adding system tests for Ahven. Now, Ahven is
tested only by unit tests ran by the framework itself. While it
gives you some amount of test coverage, even a small suite of
system tests would be nice. Only problem is finding an easy to use
framework for the tests. So far, I have tried Test::Simple (Perl),
&lt;a class="reference external" href="http://www.pytest.org/"&gt;py-test&lt;/a&gt; (Python) and
&lt;a class="reference external" href="https://bitbucket.org/brodie/cram"&gt;cram&lt;/a&gt; (framework in Python, tests as shell scripts).
cram looks the most promising, but py-test is not bad either.&lt;/p&gt;
&lt;p&gt;And as always, if you have a patch or idea to submit, please
contact me (&lt;a class="reference external" href="mailto:tero.koskinen&amp;#64;iki.fi"&gt;tero.koskinen&amp;#64;iki.fi&lt;/a&gt;). The source code can be found
from &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/"&gt;Bitbucket&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="ahven"></category></entry><entry><title>Year 2012 summary</title><link href="https://tero.stronglytyped.org/year-2012-summary.html" rel="alternate"></link><published>2012-12-31T17:30:00+02:00</published><updated>2012-12-31T17:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-12-31:/year-2012-summary.html</id><summary type="html">&lt;p&gt;Like &lt;a class="reference external" href="http://tero.stronglytyped.org/year-2011-summary.html"&gt;last year&lt;/a&gt;, here is a summary of my Ada-related activities in 2012:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Only one Ahven release (2.2). In 2012, Ahven was a bit on
the maintenance mode while I concentrated on other things.&lt;/li&gt;
&lt;li&gt;Improvements to AVR-Ada, mostly for attiny(2313,4313) models.&lt;/li&gt;
&lt;li&gt;New &lt;a class="reference external" href="http://arduino.ada-language.com/"&gt;Arduino blog&lt;/a&gt; showing how to …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;Like &lt;a class="reference external" href="http://tero.stronglytyped.org/year-2011-summary.html"&gt;last year&lt;/a&gt;, here is a summary of my Ada-related activities in 2012:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Only one Ahven release (2.2). In 2012, Ahven was a bit on
the maintenance mode while I concentrated on other things.&lt;/li&gt;
&lt;li&gt;Improvements to AVR-Ada, mostly for attiny(2313,4313) models.&lt;/li&gt;
&lt;li&gt;New &lt;a class="reference external" href="http://arduino.ada-language.com/"&gt;Arduino blog&lt;/a&gt; showing how to
play with AVR-Ada and Arduino. Nine articles in 2012, about one per month.
Writing articles to the Arduino blog ate my time from this blog, which
is why you haven't seen many updates here.&lt;/li&gt;
&lt;li&gt;I was invited to ACAA Advisory Board, which is a group of people who
discuss about ACATS maintenance.&lt;/li&gt;
&lt;li&gt;Ported &lt;a class="reference external" href="http://lists.debian.org/debian-ada/2012/04/msg00027.html"&gt;GNAT to Debian/armhf&lt;/a&gt; so it can be then run on systems like Gumstix Overo.
I think Ubuntu people independently ported GNAT to Ubuntu/armhf at the same time
and I am not sure what is the origin of the current gnat on Debian/armhf.
But anyway, if you have an ARM board running Debian armhf (or armel), you
can simply do &lt;em&gt;apt-get install gnat&lt;/em&gt; to get GNAT on your system.&lt;/li&gt;
&lt;li&gt;Co-authored one new paper related to ACATS with Dan Eilers (presented at HILT 2012).&lt;/li&gt;
&lt;/ul&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/8027303583"&gt;
&lt;img alt="" src="http://farm9.staticflickr.com/8453/8027303583_18b1fd634e.jpg" /&gt;
&lt;/a&gt;
</content><category term="ada"></category><category term="summary"></category><category term="ada"></category></entry><entry><title>Ada Lovelace Stickers!</title><link href="https://tero.stronglytyped.org/ada-lovelace-stickers.html" rel="alternate"></link><published>2012-10-18T08:00:00+03:00</published><updated>2012-10-18T08:00:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-10-18:/ada-lovelace-stickers.html</id><summary type="html">&lt;p&gt;While ago I ordered some &lt;a class="reference external" href="https://www.adafruit.com/products/701"&gt;Ada Lovelace stickers&lt;/a&gt; (&lt;a class="reference external" href="https://www.adafruit.com/products/696"&gt;black and white also available&lt;/a&gt;) and now finally managed to place them on my laptops:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/8099002569/"&gt;
&lt;img alt="" src="http://farm9.staticflickr.com/8184/8099002569_4ee8c7bd46.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;So next time, if you local &lt;a class="reference external" href="http://www.ada-europe.org/"&gt;Ada organization&lt;/a&gt;
isn't giving any goodies and you are making an order from &lt;a class="reference external" href="http://www.adafruit.com/"&gt;Adafruit&lt;/a&gt;, remember to order some stickers also.&lt;/p&gt;
&lt;p&gt;PS …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While ago I ordered some &lt;a class="reference external" href="https://www.adafruit.com/products/701"&gt;Ada Lovelace stickers&lt;/a&gt; (&lt;a class="reference external" href="https://www.adafruit.com/products/696"&gt;black and white also available&lt;/a&gt;) and now finally managed to place them on my laptops:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/8099002569/"&gt;
&lt;img alt="" src="http://farm9.staticflickr.com/8184/8099002569_4ee8c7bd46.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;So next time, if you local &lt;a class="reference external" href="http://www.ada-europe.org/"&gt;Ada organization&lt;/a&gt;
isn't giving any goodies and you are making an order from &lt;a class="reference external" href="http://www.adafruit.com/"&gt;Adafruit&lt;/a&gt;, remember to order some stickers also.&lt;/p&gt;
&lt;p&gt;PS. Happy &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Ada_Lovelace#Commemoration"&gt;Ada Lovelace Day&lt;/a&gt;! (little late, but better than never).&lt;/p&gt;
</content><category term="ada"></category><category term="stickers"></category><category term="ada"></category><category term="thinkpad"></category></entry><entry><title>Two new Arduino blog entries</title><link href="https://tero.stronglytyped.org/two-new-arduino-blog-entries.html" rel="alternate"></link><published>2012-07-08T20:00:00+03:00</published><updated>2012-07-08T20:00:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-07-08:/two-new-arduino-blog-entries.html</id><content type="html">&lt;p&gt;My &lt;a class="reference external" href="http://arduino.ada-language.com/"&gt;Arduino blog&lt;/a&gt; contains two new
blog entries:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://arduino.ada-language.com/blinking-led.html"&gt;a blinking LED example&lt;/a&gt;, for those who are just starting with Ada and Arduino&lt;/li&gt;
&lt;li&gt;and &lt;a class="reference external" href="http://arduino.ada-language.com/recovering-ibm-thinkpad-t42-bios-password-with-avr-ada-and-arduino.html"&gt;IBM Thinkpad T42 BIOS password recovery&lt;/a&gt; for people who own Thinkpad, have some soldering skills, and are already familiar with Arduino and Ada.&lt;/li&gt;
&lt;/ul&gt;
</content><category term="ada"></category><category term="ada"></category><category term="arduino"></category></entry><entry><title>Status update, June 2012</title><link href="https://tero.stronglytyped.org/status-update-june-2012.html" rel="alternate"></link><published>2012-06-12T12:30:00+03:00</published><updated>2012-06-12T12:30:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-06-12:/status-update-june-2012.html</id><summary type="html">&lt;p&gt;I have been quiet a while. This is mostly because I have been busy IRL (like always).&lt;/p&gt;
&lt;p&gt;However, there are some things which I have done lately:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Most notably I ported GNAT to Debian armhf.
It is available from Debian armhf repositories already, but you can
still fetch my original …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;I have been quiet a while. This is mostly because I have been busy IRL (like always).&lt;/p&gt;
&lt;p&gt;However, there are some things which I have done lately:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Most notably I ported GNAT to Debian armhf.
It is available from Debian armhf repositories already, but you can
still fetch my original versions from &lt;a class="reference external" href="http://iki.fi/tero.koskinen/debian/armhf"&gt;my homepage&lt;/a&gt;.
Story and porting details are available on &lt;a class="reference external" href="http://lists.debian.org/debian-ada/2012/04/msg00027.html"&gt;debian-ada mailing list&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I also prepared &lt;a class="reference external" href="http://arduino.ada-language.com/building-avr-gnat-for-avr-ada.html"&gt;instructions&lt;/a&gt; how to install AVR-Ada on Fedora. They are available from my new &lt;a class="reference external" href="http://arduino.ada-language.com"&gt;Arduino blog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;After some discussion with Mr. Dewar, I managed to push Adacore to
fix &lt;a class="reference external" href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49346"&gt;GCC bug 49346&lt;/a&gt;. It is interesting to note, that the code is from ACATS and those tests are written in 1985 and 1986. And when I tested, GNAT 3.15p, GPL 2010, and GPL 2011 all had the same bug. I suspect that the bug has been in GNAT since the first version and no one has noticed it before. (=Very old code and very old bug.)&lt;/li&gt;
&lt;/ul&gt;
</content><category term="ada"></category><category term="ada"></category></entry><entry><title>Ahven 2.2 released</title><link href="https://tero.stronglytyped.org/ahven-22-released.html" rel="alternate"></link><published>2012-03-05T10:52:00+02:00</published><updated>2012-03-05T10:52:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-03-05:/ahven-22-released.html</id><summary type="html">&lt;p&gt;This (2.2) is long overdue bug fix release for Ahven.
Ahven.XML_Runner had same bug as Ahven.Text_Runner and this release fixes it.
Now your XML test result files should have skipped tests correctly reported.
Another bigger change is API documentation generator change from Adabrowse
to &lt;a class="reference external" href="http://sphinx.pocoo.org/"&gt;Sphinx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As usual …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This (2.2) is long overdue bug fix release for Ahven.
Ahven.XML_Runner had same bug as Ahven.Text_Runner and this release fixes it.
Now your XML test result files should have skipped tests correctly reported.
Another bigger change is API documentation generator change from Adabrowse
to &lt;a class="reference external" href="http://sphinx.pocoo.org/"&gt;Sphinx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As usual, you can get the source from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%202.2/ahven-2.2.tar.gz/download"&gt;Sourceforge&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Building custom Arduino LCD shield to be used with AVR-Ada</title><link href="https://tero.stronglytyped.org/building-custom-arduino-lcd-shield-to-be-used-with-avr-ada.html" rel="alternate"></link><published>2012-02-28T00:30:00+02:00</published><updated>2012-02-28T00:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-02-28:/building-custom-arduino-lcd-shield-to-be-used-with-avr-ada.html</id><summary type="html">&lt;p&gt;Using 16x2 LCD display for text output purposes is sometimes more
convenient than serial communication via UART/USB.&lt;/p&gt;
&lt;p&gt;But if you do the wiring on the breadboard you get quite a mess:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6935132661/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7177/6935132661_2a282a329e_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;So, I wanted to create a shield for Arduino to make the LCD usage easier.&lt;/p&gt;
&lt;p&gt;AVR-Ada includes &lt;a class="reference external" href="http://avr-ada.git.sourceforge.net/git/gitweb.cgi?p=avr-ada/avr-ada;a=tree;f=avr/lcd;h=68972f478cc51eb926acb97f05b17de24bf1c6ed;hb=HEAD"&gt;library …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Using 16x2 LCD display for text output purposes is sometimes more
convenient than serial communication via UART/USB.&lt;/p&gt;
&lt;p&gt;But if you do the wiring on the breadboard you get quite a mess:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6935132661/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7177/6935132661_2a282a329e_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;So, I wanted to create a shield for Arduino to make the LCD usage easier.&lt;/p&gt;
&lt;p&gt;AVR-Ada includes &lt;a class="reference external" href="http://avr-ada.git.sourceforge.net/git/gitweb.cgi?p=avr-ada/avr-ada;a=tree;f=avr/lcd;h=68972f478cc51eb926acb97f05b17de24bf1c6ed;hb=HEAD"&gt;library&lt;/a&gt; for HD44780-compatible LCD using 4 bits for data.&lt;/p&gt;
&lt;p&gt;That means we need to use 4 pins for data, one pin for Enable signal, and one pin for Register select.
Wiring on the shield therefore is something like this:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6790147584/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7070/6790147584_8c6420bc87_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;We also want a trimpot on the shield:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6790151176/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7062/6790151176_6a2e36361f_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;The middle pin of the trimpot is connected to the LCD pin 3 (Contrast adjust), other two pins are connected to GND and VCC.&lt;/p&gt;
&lt;p&gt;After placing the wires and the trimpot, we put the display there:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6790153290/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7189/6790153290_9d39217ac4_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;Finally, using code from &lt;a class="reference external" href="https://bitbucket.org/tkoskine/arduino-lcd"&gt;my Bitbucket repository&lt;/a&gt;, we get some visible text:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6790087746/"&gt;
&lt;img alt="" src="https://farm8.staticflickr.com/7178/6790087746_ecdf322b18_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;Some notes:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;I used here Arduino UNO r3 with Arduino Protoshield r3.&lt;/li&gt;
&lt;li&gt;The Ada code requires AVR-Ada 1.2
(the latest development version from AVR-Ada git repository at the moment).&lt;/li&gt;
&lt;li&gt;If you fear that the LCD display might get damaged, you probably don't want to solder it directly
to the proto shield but place female header between instead.&lt;/li&gt;
&lt;li&gt;My LCD display did not have working backlight, so I left those pins (15,16) disconnected.&lt;/li&gt;
&lt;/ul&gt;
</content><category term="ada"></category><category term="avr"></category><category term="ada"></category><category term="lcd"></category><category term="shield"></category><category term="arduino"></category></entry><entry><title>Year 2011 summary</title><link href="https://tero.stronglytyped.org/year-2011-summary.html" rel="alternate"></link><published>2012-01-09T20:00:00+02:00</published><updated>2012-01-09T20:00:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2012-01-09:/year-2011-summary.html</id><summary type="html">&lt;p&gt;When it comes to Ada and its community, last year (2011) was pretty
interesting to me. Here is a small summary what I managed to do:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;I did three Ahven releases (1.9, 2.0, and 2.1). I had hoped
to do yet another (2.2), but didn't find …&lt;/li&gt;&lt;/ul&gt;</summary><content type="html">&lt;p&gt;When it comes to Ada and its community, last year (2011) was pretty
interesting to me. Here is a small summary what I managed to do:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;I did three Ahven releases (1.9, 2.0, and 2.1). I had hoped
to do yet another (2.2), but didn't find time for that.&lt;/li&gt;
&lt;li&gt;I became AVR-Ada contributor. I started playing with Arduino and AVRs
some years ago (2009, I think) and AVR-Ada is quite pleasant to use
on them, after you overcome the installation issues.&lt;/li&gt;
&lt;li&gt;Ada Connection 2011 conference in June was the real highlight of the year.
I saw a lot of Adaists face to face and they are no longer only
random email addresses on newsgroups and mailing lists.&lt;/li&gt;
&lt;li&gt;Dan Eilers kindly accepted me as second writer for his papers
about ACATS (and Ahven). The first paper was presented at
Ada Connection 2011 and the second at SigAda 2011.&lt;/li&gt;
&lt;li&gt;I registered domain &lt;a class="reference external" href="http://www.ada-language.com/"&gt;http://www.ada-language.com/&lt;/a&gt; (.net, .info, .org also).
For now, the content there is pretty light, but I do have some plans for it.&lt;/li&gt;
&lt;li&gt;My Twitter and Identi.ca client &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ladybird/"&gt;Beautiful Ladybird&lt;/a&gt; is progressing nicely (although somewhat slowly). Homeline and status update functionality works from the command line, I just need to do UI with Claw and GtkAda.&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://bitbucket.org/tkoskine/jdaughter/"&gt;Jdaughter&lt;/a&gt; library for reading and writing JSON data was a by-product of Ladybird. It is still missing some features, but I can parse Twitter and Identi.ca feeds with it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, here some pictures from AdaConnection 2011 in Edinburgh:&lt;/p&gt;
&lt;p&gt;The John McIntyre conference centre (rainy day, like most days that week):&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6668258957/"&gt;
&lt;img alt="" src="http://farm8.staticflickr.com/7021/6668258957_2e82fd3a83_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;Jacob Sparre Andersen giving a presentation:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6668250263/"&gt;
&lt;img alt="" src="http://farm8.staticflickr.com/7169/6668250263_055c8a2978_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;I also visited Holyrood Park, which was nearby:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6668232857/"&gt;
&lt;img alt="" src="http://farm8.staticflickr.com/7006/6668232857_ce09a751e7_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;PS. Notice, that &lt;a class="reference external" href="http://www.adaic.org/"&gt;Ada Information Clearinghouse&lt;/a&gt; is showing videos from the conference. Be sure to check them out!&lt;/p&gt;
</content><category term="ada"></category><category term="summary"></category><category term="ada"></category><category term="ahven"></category><category term="twitter"></category><category term="adaconnection2011"></category></entry><entry><title>New year coming, new blogging engine also</title><link href="https://tero.stronglytyped.org/new-year-coming-new-blogging-engine-also.html" rel="alternate"></link><published>2011-12-27T21:01:00+02:00</published><updated>2011-12-27T21:01:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-12-27:/new-year-coming-new-blogging-engine-also.html</id><content type="html">&lt;p&gt;Like &lt;a class="reference external" href="https://www.varnish-cache.org/docs/trunk/phk/sphinx.html"&gt;others&lt;/a&gt;, I am slowly converting all my documentation into
&lt;a class="reference external" href="http://docutils.sourceforge.net/rst.html"&gt;reStructuredText&lt;/a&gt;. I did it earlier for &lt;a class="reference external" href="http://ahven.stronglytyped.org/api-2.1/index.html"&gt;documentation&lt;/a&gt; of Ahven
and now I changed my blog to it also.&lt;/p&gt;
&lt;p&gt;For blogging, I decided to use &lt;a class="reference external" href="https://github.com/ametaireau/pelican/"&gt;Pelican&lt;/a&gt;, which generates static blog pages
from a set of reStructuredText files.&lt;/p&gt;
</content><category term="misc"></category><category term="pelican"></category></entry><entry><title>Nice Christmas Present from Paeae</title><link href="https://tero.stronglytyped.org/nice-christmas-present-from-paeae.html" rel="alternate"></link><published>2011-12-13T23:40:00+02:00</published><updated>2011-12-13T23:40:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-12-13:/nice-christmas-present-from-paeae.html</id><content type="html">&lt;p&gt;I recently ordered some Arduino and electronics stuff from Finnish Arduino
store called Paeae. The delivery was smooth and fast as usual, but in
addition they had put there a nice little Christmas present for me,
a small green breadboard (resistor was not included):&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/6506718435/"&gt;
&lt;img alt="" src="http://farm8.staticflickr.com/7025/6506718435_656d5bab92_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
</content><category term="misc"></category><category term="christmas"></category><category term="paeae"></category></entry><entry><title>Oops, I really messed up skipped tests in Ahven 2.0</title><link href="https://tero.stronglytyped.org/oops-i-really-messed-up-skipped-tests-in-ahven-20.html" rel="alternate"></link><published>2011-10-11T15:06:00+03:00</published><updated>2011-10-11T15:06:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-10-11:/oops-i-really-messed-up-skipped-tests-in-ahven-20.html</id><summary type="html">&lt;p&gt;I managed to mess up skipped test reporting also in the XML test result
reporter. I filed &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/issue/4/xml-test-reporter-does-not-list-skipped"&gt;an issue&lt;/a&gt; about it.&lt;/p&gt;
&lt;p&gt;Since the bug appears only if you skip some tests and use the XML result
format, it isn't really fatal and therefore I won't immediately fix it.
However, I …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I managed to mess up skipped test reporting also in the XML test result
reporter. I filed &lt;a class="reference external" href="https://bitbucket.org/tkoskine/ahven/issue/4/xml-test-reporter-does-not-list-skipped"&gt;an issue&lt;/a&gt; about it.&lt;/p&gt;
&lt;p&gt;Since the bug appears only if you skip some tests and use the XML result
format, it isn't really fatal and therefore I won't immediately fix it.
However, I do plan to create a bug fix release within a month or two.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Version numbers are cheap - Ahven 2.1 released</title><link href="https://tero.stronglytyped.org/version-numbers-are-cheap-ahven-21-released.html" rel="alternate"></link><published>2011-09-24T15:06:00+03:00</published><updated>2011-09-24T15:06:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-09-24:/version-numbers-are-cheap-ahven-21-released.html</id><content type="html">&lt;p&gt;A small but unfortunate and annoying bug slipped into Ahven 2.0 release: Ahven.Text_Runner silently ignored all skipped tests and did not report them. This is now fixed in Ahven 2.1.&lt;/p&gt;
&lt;p&gt;Again, you can get the source from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%202.1/ahven-2.1.tar.gz/download"&gt;Sourceforge&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Ahven 2.0 released</title><link href="https://tero.stronglytyped.org/ahven-20-released.html" rel="alternate"></link><published>2011-09-23T16:07:00+03:00</published><updated>2011-09-23T16:07:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-09-23:/ahven-20-released.html</id><summary type="html">&lt;p&gt;I just released &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;Ahven&lt;/a&gt; 2.0. You can grab the source code from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%202.0/ahven-2.0.tar.gz/download"&gt;SourceForge&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release includes two new features:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Test timeouts&lt;/li&gt;
&lt;li&gt;Test skipping programmatically&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When running tests, you can specify a timeout value for the tests. If test runs longer than the timeout value, the test is stopped. This …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I just released &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;Ahven&lt;/a&gt; 2.0. You can grab the source code from &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%202.0/ahven-2.0.tar.gz/download"&gt;SourceForge&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This release includes two new features:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Test timeouts&lt;/li&gt;
&lt;li&gt;Test skipping programmatically&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When running tests, you can specify a timeout value for the tests. If test runs longer than the timeout value, the test is stopped. This is implemented by running each test in a separate task and aborting the task if the test runs too long.&lt;/p&gt;
&lt;p&gt;The feature of course depends on code being abortable,
which might not be the case always. For example, many
Ada compilers do not abort task which runs in a tight loop and
does some calculations, like &amp;quot;loop Counter := Counter + 1;end loop;&amp;quot;.&lt;/p&gt;
&lt;p&gt;The another feature is simple procedure called &amp;quot;Skip&amp;quot;. Calling this inside a test allows you to skip the test and move to the next one. The skipped test is considered as passed, but some test runners might add extra &amp;quot;SKIP&amp;quot; info for them.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Adadomain merged to sphinx-contrib</title><link href="https://tero.stronglytyped.org/adadomain-merged-to-sphinx-contrib.html" rel="alternate"></link><published>2011-08-04T15:07:00+03:00</published><updated>2011-08-04T15:07:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-08-04:/adadomain-merged-to-sphinx-contrib.html</id><summary type="html">&lt;p&gt;I merged my Adadomain to &lt;a class="reference external" href="https://bitbucket.org/birkenfeld/sphinx-contrib"&gt;sphinx-contrib&lt;/a&gt;. This way it is one step more official extension.&lt;/p&gt;
&lt;p&gt;For those who do not know: &lt;a class="reference external" href="http://sphinx.pocoo.org/latest"&gt;Sphinx&lt;/a&gt; is a documentation tool and
it is used in Ahven. In release 1.9 of Ahven, I included the generated
HTML documentation to the tarball, but I might …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I merged my Adadomain to &lt;a class="reference external" href="https://bitbucket.org/birkenfeld/sphinx-contrib"&gt;sphinx-contrib&lt;/a&gt;. This way it is one step more official extension.&lt;/p&gt;
&lt;p&gt;For those who do not know: &lt;a class="reference external" href="http://sphinx.pocoo.org/latest"&gt;Sphinx&lt;/a&gt; is a documentation tool and
it is used in Ahven. In release 1.9 of Ahven, I included the generated
HTML documentation to the tarball, but I might emit the generated content from
2.0 since the Adadomain extension is now merged.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="sphinx"></category><category term="python"></category></entry><entry><title>Reading I2C EEPROM with Arduino and AVR-Ada</title><link href="https://tero.stronglytyped.org/reading-i2c-eeprom-with-arduino-and-avr-ada.html" rel="alternate"></link><published>2011-05-21T16:43:00+03:00</published><updated>2011-05-21T16:43:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-05-21:/reading-i2c-eeprom-with-arduino-and-avr-ada.html</id><summary type="html">&lt;p&gt;Recently, I wanted to access I2C EEPROM with Arduino. However, AVR-Ada (1.1.0) provides no support for I2C interface which many AVR processors and Arduinos have. So, I had to write a package (&amp;quot;Two_Wire&amp;quot;) for it.&lt;/p&gt;
&lt;p&gt;Example code is available at &lt;a class="reference external" href="https://bitbucket.org/tkoskine/arduino-eeprom"&gt;arduino-eeprom&lt;/a&gt; repository and below is the used circuit …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Recently, I wanted to access I2C EEPROM with Arduino. However, AVR-Ada (1.1.0) provides no support for I2C interface which many AVR processors and Arduinos have. So, I had to write a package (&amp;quot;Two_Wire&amp;quot;) for it.&lt;/p&gt;
&lt;p&gt;Example code is available at &lt;a class="reference external" href="https://bitbucket.org/tkoskine/arduino-eeprom"&gt;arduino-eeprom&lt;/a&gt; repository and below is the used circuit:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/5744158742/"&gt;
&lt;img alt="" src="http://farm4.static.flickr.com/3092/5744158742_d3763f3b75_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;The package is far from perfect, but it should provide a place to start if someone needs to use I2C with AVR-Ada.&lt;/p&gt;
</content><category term="ada"></category><category term="avr"></category><category term="ada"></category><category term="arduino"></category><category term="eeprom"></category><category term="i2c"></category></entry><entry><title>IPv6 support for stronglytyped.org</title><link href="https://tero.stronglytyped.org/ipv6-support-for-stronglytypedorg.html" rel="alternate"></link><published>2011-05-09T14:18:00+03:00</published><updated>2011-05-09T14:18:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-05-09:/ipv6-support-for-stronglytypedorg.html</id><summary type="html">&lt;p&gt;My AWS-powered sites &lt;a class="reference external" href="http://stronglytyped.org/"&gt;stronglytyped.org&lt;/a&gt; and Ahven's homepage &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt; now support IPv6 connections also.&lt;/p&gt;
&lt;p&gt;This was possible after Linode started supporting native IPv6 in some of its datacenters.&lt;/p&gt;
&lt;p&gt;Again, only Ada Web Server and iptables were used. There is no separate frontend http server written in another language …&lt;/p&gt;</summary><content type="html">&lt;p&gt;My AWS-powered sites &lt;a class="reference external" href="http://stronglytyped.org/"&gt;stronglytyped.org&lt;/a&gt; and Ahven's homepage &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;ahven.stronglytyped.org&lt;/a&gt; now support IPv6 connections also.&lt;/p&gt;
&lt;p&gt;This was possible after Linode started supporting native IPv6 in some of its datacenters.&lt;/p&gt;
&lt;p&gt;Again, only Ada Web Server and iptables were used. There is no separate frontend http server written in another language. Just plain Ada all the way.&lt;/p&gt;
</content><category term="misc"></category><category term="ipv6"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>Small attiny13 development board</title><link href="https://tero.stronglytyped.org/small-attiny13-development-board.html" rel="alternate"></link><published>2011-05-07T15:25:00+03:00</published><updated>2011-05-07T15:25:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-05-07:/small-attiny13-development-board.html</id><content type="html">&lt;p&gt;To test AVR-Ada with small attiny13 processors, I made a little &amp;quot;development board&amp;quot; for me:&lt;/p&gt;
&lt;a class="reference external image-reference" href="http://www.flickr.com/photos/66708330&amp;#64;N00/5730682589/"&gt;
&lt;img alt="" src="http://farm4.static.flickr.com/3114/5730682589_f985632170_m.jpg" /&gt;
&lt;/a&gt;
&lt;p&gt;It can run &lt;a class="reference external" href="https://bitbucket.org/tkoskine/arduino-hello/"&gt;hello example&lt;/a&gt; out of the box and blink the green led. The red led indicates power.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="avr"></category><category term="attiny13"></category></entry><entry><title>Ahven 1.9 released</title><link href="https://tero.stronglytyped.org/ahven-19-released.html" rel="alternate"></link><published>2011-04-14T16:03:00+03:00</published><updated>2011-04-14T16:03:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-04-14:/ahven-19-released.html</id><summary type="html">&lt;p&gt;I finally managed to release Ahven 1.9 (download &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%201.9/ahven-1.9.zip/download"&gt;zip&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This is a small bug fix release only to allow Ahven compile with GNAT GPL 2010 also.&lt;/p&gt;
&lt;p&gt;If everything goes as planned, the next 2.0 will include new features, like timeouts, improved documentation, and possibly an ability to skip …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I finally managed to release Ahven 1.9 (download &lt;a class="reference external" href="http://sourceforge.net/projects/ahven/files/ahven/Ahven%201.9/ahven-1.9.zip/download"&gt;zip&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;This is a small bug fix release only to allow Ahven compile with GNAT GPL 2010 also.&lt;/p&gt;
&lt;p&gt;If everything goes as planned, the next 2.0 will include new features, like timeouts, improved documentation, and possibly an ability to skip some tests.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="ahven"></category></entry><entry><title>Blog engine changed to blogsum</title><link href="https://tero.stronglytyped.org/blog-engine-changed-to-blogsum.html" rel="alternate"></link><published>2011-03-24T01:10:00+02:00</published><updated>2011-03-24T01:10:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-03-24:/blog-engine-changed-to-blogsum.html</id><summary type="html">&lt;p&gt;I changed the blog engine running my blog from bloxsom to &lt;a class="reference external" href="http://trac.obfuscurity.com/blogsum/"&gt;blogsum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This might cause some extra spam in the planet aggregators, I am sorry about that. I try not to do this too often. :)&lt;/p&gt;
&lt;p&gt;The reason for the change was that I wanted to use software which works well …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I changed the blog engine running my blog from bloxsom to &lt;a class="reference external" href="http://trac.obfuscurity.com/blogsum/"&gt;blogsum&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This might cause some extra spam in the planet aggregators, I am sorry about that. I try not to do this too often. :)&lt;/p&gt;
&lt;p&gt;The reason for the change was that I wanted to use software which works well with OpenBSD, in case I some day migrate this web server from Linux to OpenBSD.&lt;/p&gt;
&lt;p&gt;RSS feed URLs now follow form &lt;a class="reference external" href="http://tero.stronglytyped.org/rss2.xml?search=TAG"&gt;http://tero.stronglytyped.org/rss2.xml?search=TAG&lt;/a&gt; where TAG can be for example &lt;em&gt;ada&lt;/em&gt; or &lt;em&gt;monotone&lt;/em&gt;.&lt;/p&gt;
</content><category term="misc"></category><category term="blog"></category><category term="blogsum"></category></entry><entry><title>Arduino Mega 2560 and Attiny13a/Attiny2313 support to AVR-Ada</title><link href="https://tero.stronglytyped.org/arduino-mega-2560-and-attiny13aattiny2313-support-to-avr-ada.html" rel="alternate"></link><published>2011-02-14T22:04:00+02:00</published><updated>2011-02-14T22:04:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2011-02-14:/arduino-mega-2560-and-attiny13aattiny2313-support-to-avr-ada.html</id><summary type="html">&lt;p&gt;I recently got write access to the &lt;a class="reference external" href="http://sourceforge.net/projects/avr-ada"&gt;AVR-Ada&lt;/a&gt; repository and now I have pushed my changes there.&lt;/p&gt;
&lt;p&gt;These changes improve support for Atmega2560, Attiny13a, and Attiny2313 processors. Attiny13a and Attiny2313 are pretty uninteresting, although common, AVR processors. I happen to use them in my projects because they are cheap and …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I recently got write access to the &lt;a class="reference external" href="http://sourceforge.net/projects/avr-ada"&gt;AVR-Ada&lt;/a&gt; repository and now I have pushed my changes there.&lt;/p&gt;
&lt;p&gt;These changes improve support for Atmega2560, Attiny13a, and Attiny2313 processors. Attiny13a and Attiny2313 are pretty uninteresting, although common, AVR processors. I happen to use them in my projects because they are cheap and that is why I also wanted better support for them.&lt;/p&gt;
&lt;p&gt;On the other hand, Atmega2560 processor is used in the new Arduino Mega 2560 board. This means that next release of AVR-Ada will support the new Mega board out of the box. Some bits, like support for timers 3..5 and extra UARTS, are missing, but at the moment Atmega2560 should have about same features as Atmega328p supported.&lt;/p&gt;
</content><category term="ada"></category><category term="avr"></category><category term="ada"></category><category term="arduino"></category><category term="atmega2560"></category><category term="attiny2313"></category><category term="attiny13"></category></entry><entry><title>OpenBSD port for Monotone 0.99.1</title><link href="https://tero.stronglytyped.org/openbsd-port-for-monotone-0991.html" rel="alternate"></link><published>2010-11-09T22:30:00+02:00</published><updated>2010-11-09T22:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-11-09:/openbsd-port-for-monotone-0991.html</id><content type="html">&lt;p&gt;I updated my &lt;a class="reference external" href="http://bitbucket.org/tkoskine/monotone-openbsd"&gt;OpenBSD port&lt;/a&gt;
for Monotone to version 0.99.1.&lt;/p&gt;
&lt;p&gt;It is tested on 4.8/amd64, but should work with -current also&lt;/p&gt;
</content><category term="monotone"></category><category term="openbsd"></category><category term="monotone"></category></entry><entry><title>Ada bindings for cURL</title><link href="https://tero.stronglytyped.org/ada-bindings-for-curl.html" rel="alternate"></link><published>2010-10-13T22:23:00+03:00</published><updated>2010-10-13T22:23:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-10-13:/ada-bindings-for-curl.html</id><summary type="html">&lt;p&gt;I put my Ada bindings to &lt;a class="reference external" href="http://curl.haxx.se/libcurl/"&gt;libcurl&lt;/a&gt;
available at &lt;a class="reference external" href="http://hg.stronglytyped.org/curl-ada/"&gt;http://hg.stronglytyped.org/curl-ada/&lt;/a&gt;. At the moment,
they are pretty simple and contain only a small subset of libcurl,
but they allow me to fetch data over http/https and that is good
enough for my current purposes.&lt;/p&gt;
&lt;p&gt;The bindings …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I put my Ada bindings to &lt;a class="reference external" href="http://curl.haxx.se/libcurl/"&gt;libcurl&lt;/a&gt;
available at &lt;a class="reference external" href="http://hg.stronglytyped.org/curl-ada/"&gt;http://hg.stronglytyped.org/curl-ada/&lt;/a&gt;. At the moment,
they are pretty simple and contain only a small subset of libcurl,
but they allow me to fetch data over http/https and that is good
enough for my current purposes.&lt;/p&gt;
&lt;p&gt;The bindings should work with GNAT and Janus/Ada on 32-bit and 64-bit
systems. The build scripts are less than optimal, but with some effort
you should figure out how to build the bindings&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="curl"></category></entry><entry><title>Arduino Ethernet Shield support for AVR-Ada</title><link href="https://tero.stronglytyped.org/arduino-ethernet-shield-support-for-avr-ada.html" rel="alternate"></link><published>2010-09-20T20:53:00+03:00</published><updated>2010-09-20T20:53:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-09-20:/arduino-ethernet-shield-support-for-avr-ada.html</id><content type="html">&lt;p&gt;I finally got my code working with
&lt;a class="reference external" href="http://www.arduino.cc/en/Main/ArduinoEthernetShield"&gt;Arduino Ethernet Shield&lt;/a&gt;
and put it available at &lt;a class="reference external" href="http://bitbucket.org/tkoskine/arduino-ethernet/"&gt;http://bitbucket.org/tkoskine/arduino-ethernet/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Only receiving data via TCP client connections is supported, but I plan to improve the library as my time permits.&lt;/p&gt;
</content><category term="ada"></category><category term="arduino"></category><category term="ethernet"></category><category term="avr"></category><category term="ada"></category></entry><entry><title>AVR-Ada 1.1.0 port with AVR-GCC 4.3.2 for OpenBSD</title><link href="https://tero.stronglytyped.org/avr-ada-110-port-with-avr-gcc-432-for-openbsd.html" rel="alternate"></link><published>2010-09-01T07:00:00+03:00</published><updated>2010-09-01T07:00:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-09-01:/avr-ada-110-port-with-avr-gcc-432-for-openbsd.html</id><summary type="html">&lt;p&gt;I updated my AVR-Ada port to version 1.1.0. It consists of three parts:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;AVR-GCC 4.3.2 with Ada support - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-gcc"&gt;http://bitbucket.org/tkoskine/avr-gcc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AVR-Ada 1.1.0 runtime files - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-ada-rts"&gt;http://bitbucket.org/tkoskine/avr-ada-rts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AVR-Ada 1.1.0 library files (AVR.* packages) - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-ada-lib"&gt;http://bitbucket.org/tkoskine …&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</summary><content type="html">&lt;p&gt;I updated my AVR-Ada port to version 1.1.0. It consists of three parts:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;AVR-GCC 4.3.2 with Ada support - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-gcc"&gt;http://bitbucket.org/tkoskine/avr-gcc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AVR-Ada 1.1.0 runtime files - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-ada-rts"&gt;http://bitbucket.org/tkoskine/avr-ada-rts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AVR-Ada 1.1.0 library files (AVR.* packages) - &lt;a class="reference external" href="http://bitbucket.org/tkoskine/avr-ada-lib"&gt;http://bitbucket.org/tkoskine/avr-ada-lib&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;For now, only Arduino (atmega328p) is supported in avr-ada-lib package.&lt;/p&gt;
</content><category term="ada"></category><category term="openbsd"></category><category term="avr"></category><category term="ada"></category></entry><entry><title>Documentation using Sphinx</title><link href="https://tero.stronglytyped.org/documentation-using-sphinx.html" rel="alternate"></link><published>2010-08-06T21:04:00+03:00</published><updated>2010-08-06T21:04:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-08-06:/documentation-using-sphinx.html</id><summary type="html">&lt;p&gt;I &lt;a class="reference external" href="http://hg.stronglytyped.org/ahven/changeset/ae9744b0377b"&gt;recently&lt;/a&gt; converted Ahven's DocBook documentation to use Sphinx and reStructuredText.&lt;/p&gt;
&lt;p&gt;I did this to make it simpler to write documentation.
reStructuredText is almost like plain text, so in theory it should be
easier than XML-based DocBook.&lt;/p&gt;
&lt;p&gt;As an unfortunate side-effect, this change introduces Python dependency
to the project, while …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I &lt;a class="reference external" href="http://hg.stronglytyped.org/ahven/changeset/ae9744b0377b"&gt;recently&lt;/a&gt; converted Ahven's DocBook documentation to use Sphinx and reStructuredText.&lt;/p&gt;
&lt;p&gt;I did this to make it simpler to write documentation.
reStructuredText is almost like plain text, so in theory it should be
easier than XML-based DocBook.&lt;/p&gt;
&lt;p&gt;As an unfortunate side-effect, this change introduces Python dependency
to the project, while on the other hand, I get rid of Java-based XSLT
tool dependencies.&lt;/p&gt;
</content><category term="ada"></category><category term="ada"></category><category term="ahven"></category><category term="python"></category><category term="sphinx"></category></entry><entry><title>New blog location!</title><link href="https://tero.stronglytyped.org/new-blog-location.html" rel="alternate"></link><published>2010-07-17T21:01:00+03:00</published><updated>2010-07-17T21:01:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-07-17:/new-blog-location.html</id><content type="html">&lt;p&gt;Hello, I transferred my blog from &lt;a class="reference external" href="http://tkoskine.spaces.live.com/"&gt;Microsoft's live.com&lt;/a&gt; to &lt;a class="reference external" href="http://tero.stronglytyped.org/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The blog uses &lt;a class="reference external" href="http://www.blosxom.com/"&gt;Blosxom&lt;/a&gt; blogging engine with a few plugins.&lt;/p&gt;
</content><category term="misc"></category><category term="blosxom"></category></entry><entry><title>mtn disapprove PARENT-REV CHILD-REV</title><link href="https://tero.stronglytyped.org/mtn-disapprove-parent-rev-child-rev.html" rel="alternate"></link><published>2010-07-15T22:07:00+03:00</published><updated>2010-07-15T22:07:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-07-15:/mtn-disapprove-parent-rev-child-rev.html</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="http://mtn-view.1erlei.de/revision/info/ab0d1c7f1e09e5b0edd1779272e9d191c546bfb1"&gt;Starting&lt;/a&gt; from version 0.99 Monotone's &lt;em&gt;disapprove&lt;/em&gt; command understands a revision range in addition to a single revision.&lt;/p&gt;
&lt;p&gt;This means that you can disapprove bigger group of changes at once.&lt;/p&gt;
&lt;p&gt;Of course, there are some limitations on the group of revisions. For example, there cannot be merge revisions inside the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="http://mtn-view.1erlei.de/revision/info/ab0d1c7f1e09e5b0edd1779272e9d191c546bfb1"&gt;Starting&lt;/a&gt; from version 0.99 Monotone's &lt;em&gt;disapprove&lt;/em&gt; command understands a revision range in addition to a single revision.&lt;/p&gt;
&lt;p&gt;This means that you can disapprove bigger group of changes at once.&lt;/p&gt;
&lt;p&gt;Of course, there are some limitations on the group of revisions. For example, there cannot be merge revisions inside the range.&lt;/p&gt;
&lt;p&gt;This was my first bigger change to Monotone's code and along with that I gained commit access to monotone.ca, yay!.&lt;/p&gt;
</content><category term="monotone"></category><category term="cpp"></category><category term="monotone"></category></entry><entry><title>Ahven 1.8 released</title><link href="https://tero.stronglytyped.org/ahven-18-released.html" rel="alternate"></link><published>2010-06-02T20:22:00+03:00</published><updated>2010-06-02T20:22:00+03:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-06-02:/ahven-18-released.html</id><content type="html">&lt;p&gt;Today I released &lt;a class="reference external" href="http://ahven.stronglytyped.org/"&gt;Ahven&lt;/a&gt; 1.8. You can find release notes from &lt;a class="reference external" href="http://ahven.stronglytyped.org/release_1_8.txt"&gt;here&lt;/a&gt;.&lt;/p&gt;
</content><category term="ada"></category><category term="ahven"></category><category term="ada"></category></entry><entry><title>New Computer</title><link href="https://tero.stronglytyped.org/new-computer.html" rel="alternate"></link><published>2010-03-03T21:30:00+02:00</published><updated>2010-03-03T21:30:00+02:00</updated><author><name>Tero Koskinen</name></author><id>tag:tero.stronglytyped.org,2010-03-03:/new-computer.html</id><summary type="html">&lt;p&gt;No new blog posts for a while. That is because I got a new computer some
time ago this year and have been playing with it.
It has 3.4GHz AMD Phenom II X4 965 processor, 4GB RAM, 1x 64GB SSD disk,
and 2x 150GB 10krpm Velociraptors. And the graphics …&lt;/p&gt;</summary><content type="html">&lt;p&gt;No new blog posts for a while. That is because I got a new computer some
time ago this year and have been playing with it.
It has 3.4GHz AMD Phenom II X4 965 processor, 4GB RAM, 1x 64GB SSD disk,
and 2x 150GB 10krpm Velociraptors. And the graphics adapter is
ATI Radeon HD 4890. In other words, it should have enough computing power
for a while. :)&lt;/p&gt;
</content><category term="misc"></category></entry></feed>