<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Reading List on ilikeorangutans</title><link>https://kuelzer.ca/tags/reading-list/</link><description>Recent content in Reading List on ilikeorangutans</description><generator>Hugo</generator><language>en</language><copyright>© 2026 Jakob Külzer</copyright><lastBuildDate>Sun, 12 Apr 2026 14:27:24 -0400</lastBuildDate><atom:link href="https://kuelzer.ca/tags/reading-list/index.xml" rel="self" type="application/rss+xml"/><item><title>Golang Reading and Notes for April 2014</title><link>https://kuelzer.ca/posts/2014/04/27/golang-reading-and-notes-for-april-2014/</link><pubDate>Sun, 27 Apr 2014 13:59:40 -0400</pubDate><guid>https://kuelzer.ca/posts/2014/04/27/golang-reading-and-notes-for-april-2014/</guid><description>&lt;p&gt;Last week I attended the &lt;a href="http://golang.meetup.com/cities/ca/on/toronto/"&gt;Toronto Golang Usergroup Meetup&lt;/a&gt; and it was plenty of fun. If you&amp;rsquo;re in or near Toronto and like to dabble with Go, come out. Oh, and did I mention free pizza?&lt;/p&gt;
&lt;h3 id="notes"&gt;Notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Casting in Go is slightly different than in C related languages. Instead of a cast, you perform &lt;a href="http://golang.org/doc/effective_go.html#interface_conversions"&gt;a type conversion&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; var myVariable SomeGenericType = ...

 casted, ok := myVariable.(MoreSpecificType)
 // ok is a bool
 if ok {
 	// Type conversion successful
 } else {
 	// myVariable does not implement MoreSpecificType
 }
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;range&lt;/code&gt; keyword when used with two return values does not return references, but rather copies. This had me struggle for a while as my code was not behaving as I thought it would. I had a slice of structs and was happily iterating over it:&lt;/p&gt;</description></item><item><title>JSR-269 Annotation Processing</title><link>https://kuelzer.ca/posts/2013/08/13/jsr-269-annotation-processing/</link><pubDate>Tue, 13 Aug 2013 13:59:40 -0400</pubDate><guid>https://kuelzer.ca/posts/2013/08/13/jsr-269-annotation-processing/</guid><description>&lt;p&gt;I&amp;rsquo;ve been contemplating compile time bytecode manipulation for the &lt;a href="http://www.objectmapper.org/"&gt;Object Mapper Framework&lt;/a&gt; for a while now. Compile time instrumentation of classes seems to be a better approach and does away a whole lot of class loading issues, especially in OSGI environments. In any case, I remembered &lt;a href="http://projectlombok.org/"&gt;Project Lombok&lt;/a&gt; and reading about &lt;a href="http://jcp.org/en/jsr/detail?id=269"&gt;JSR-269&lt;/a&gt;, which was introduced with Java 1.6. It&amp;rsquo;s an API that allows you to plug custom annotation processors into javac.&lt;/p&gt;
&lt;p&gt;After experimenting and reading a bit, here is my reading list:&lt;/p&gt;</description></item><item><title>Reading List: JVM Internals, Rugged Software, and 12 Factor Apps</title><link>https://kuelzer.ca/posts/2012/12/04/reading-list-jvm-internals-rugged-software-and-12-factor-apps/</link><pubDate>Tue, 04 Dec 2012 13:59:40 -0400</pubDate><guid>https://kuelzer.ca/posts/2012/12/04/reading-list-jvm-internals-rugged-software-and-12-factor-apps/</guid><description>&lt;p&gt;Recently I&amp;rsquo;ve been reading a lot about software development and philosophies on how to write better software. I really enjoyed the &lt;a href="https://www.ruggedsoftware.org/"&gt;Rugged Manifesto&lt;/a&gt; as it emphasizes how software is crucial in our world and the responsibilities that come with it.
Another great guide is &lt;a href="http://www.12factor.net/"&gt;Twelve-Factor App&lt;/a&gt;, a list of 12 principles on how to effectively implement and operate applications.
And last but not least, &lt;a href="http://www.cubrid.org/blog/dev-platform/understanding-jvm-internals"&gt;Understanding JVM Internals&lt;/a&gt;, a really well written cross cut through the JVM, including class file format, JVM structure and stack memory layouts.&lt;/p&gt;</description></item><item><title>OSGI Classloading Reading List</title><link>https://kuelzer.ca/posts/2012/10/12/osgi-classloading-reading-list/</link><pubDate>Fri, 12 Oct 2012 13:59:40 -0400</pubDate><guid>https://kuelzer.ca/posts/2012/10/12/osgi-classloading-reading-list/</guid><description>&lt;p&gt;I&amp;rsquo;ve been doing a lot of reading on how OSGI handles class loading. I&amp;rsquo;m starting to fully understand and leverage OSGI and I&amp;rsquo;m trying to keep my framework &lt;a href="https://github.com/ilikeorangutans/omf"&gt;Object Mapper&lt;/a&gt; as compatible with OSGI as I can.&lt;/p&gt;
&lt;p&gt;In OSGI classloading is very restricted, similar to what happens in enterprisy Java application servers, and completely unlike traditional Java applications where everything shares a single classloader. In OSGI each bundle has its own classloader and what is visible accross the bundle boundaries is subject to strict export rules. In order to use a class outside of a bundle you&amp;rsquo;ll have to explicitly declare its package as exported. There are many benefits to this strict architecture, clean architectures, reusable components and the ability to update bundles at runtime are probably the most important ones.&lt;/p&gt;</description></item></channel></rss>