<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>Ycros' Space</title>
 <link href="http://ycros.org/atom.xml" rel="self"/>
 <updated>2010-05-15T15:54:51+10:00</updated>
 <id>http://ycros.org/</id>
 <author>
   <name>Michael Kedzierski</name>
   <email>waikurosu@gmail.com</email>
 </author>
 
 <entry>
   <title>Launching Sorcy.org</title>
   <link href="http://ycros.org/2010/05/15/launching-sorcy-org.html"/>
   <updated>2010-05-15T00:00:00+10:00</updated>
   <id>http://ycros.org/2010/05/15/launching-sorcy-org</id>
   <content type="html">&lt;p&gt;Today I&amp;#8217;ve launched &lt;a href='http://sorcy.org'&gt;sorcy.org&lt;/a&gt;, which is a site holding various music and musical experiments I&amp;#8217;ve been working on since the beginning of last year. So far I&amp;#8217;ve put up a compilation of songs I made last year, and I&amp;#8217;ll be putting up some more stuff from this year later on (as I bring them to completion :P).&lt;/p&gt;

&lt;p&gt;I would say that most of the tracks up there aren&amp;#8217;t that good, and I realise that, but I like every single one of those tracks. I won&amp;#8217;t release something unless I like it in some way. Some of the tracks are full songs, and other tracks are more short ideas or experiments.&lt;/p&gt;

&lt;p&gt;At about the beginning of last year I decided to more seriously start teaching myself how to compose and produce music. Before that, over the years I had always dabbled, but I had never actually put in a lot of time to try to create some music.&lt;/p&gt;

&lt;p&gt;The hardest part has been trying to discipline myself to actually study some music theory, and last year I ended up mostly experimenting around on my own. At the start of this year I started taking some music lessons, but I&amp;#8217;ve had to cut those off due to work and other commitments. I still have the main course book, so I&amp;#8217;ll probably keep trying to work through that on my own.&lt;/p&gt;

&lt;p&gt;That said, there are many artists who I like who have had no formal music training at all, so I&amp;#8217;m not convinced that learning this stuff properly is the only way to go. I think a lot of it is still just practice, practice, practice, which is why I&amp;#8217;ve been trying to spend more time actually producing stuff with a goal to release it at some point.&lt;/p&gt;

&lt;p&gt;As for gear (or, instruments?), I started with a MIDI keyboard I&amp;#8217;ve had for some time and a lite copy of &lt;a href='http://ableton.com'&gt;Ableton Live&lt;/a&gt; which I got with my &lt;a href='http://www.m-audio.com/products/en_us/Audiophile192.html'&gt;soundcard&lt;/a&gt;. Later on I also bought myself a &lt;a href='http://www.behringer.com/EN/Products/BCR2000.aspx'&gt;BCR2000&lt;/a&gt;, not just because tweaking knobs is fun, but also because looking less at a screen and listening more to the sound is good. Recently, I bought myself a &lt;a href='http://www.novationmusic.com/products/launchpad?option=1'&gt;Launchpad&lt;/a&gt;, which should not only be useful for Ableton Live stuff, but also hooking into the interesting experimental tools the &lt;a href='http://monome.org'&gt;Monome&lt;/a&gt; community have come up with.&lt;/p&gt;

&lt;p&gt;At this point I consider myself to be very familiar with Ableton Live, so I&amp;#8217;m ready to upgrade to the full version. I&amp;#8217;m currently tossing up as to whether to get the standard edition, or the suite edition. Both are expensive, but the suite is more so. They also have boxed editions which once again cost more, but also include more stuff.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;d also really like to get &lt;a href='http://www.ableton.com/maxforlive'&gt;Max4Live&lt;/a&gt; which is essentially the new Max/MSP, but integrated with Ableton Live. It&amp;#8217;s a visual audio programming environment, that has shared lineage with the open source Pure Data software. I really want to get more into sound design, and writing my own effects. There are also a whole lot of monome and launchpad patches for M4L popping up.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been somewhat slack the past few months in terms of working on my own tracks, but I was busy with the music classes. I&amp;#8217;m going to be getting back into it now, and hopefully you&amp;#8217;ll see some more tracks go up on &lt;a href='http://sorcy.org'&gt;sorcy.org&lt;/a&gt;. I have two in progress, but they&amp;#8217;re not really complete enough to release.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="music" label="music" />
   <category scheme="http://ycros.org/tags/" term="personal" label="personal" />
 </entry>
 
 <entry>
   <title>Linux.Conf.Au 2010 Day One</title>
   <link href="http://ycros.org/2010/01/18/lca-2010-day-one.html"/>
   <updated>2010-01-18T00:00:00+11:00</updated>
   <id>http://ycros.org/2010/01/18/lca-2010-day-one</id>
   <content type="html">&lt;p&gt;Got up bright and early and headed off to the first day of LCA 2010. First up, was the conference opening, which included a hilarious and entertaining introduction video, which introduced the conference, New Zealand, and Wellington.&lt;/p&gt;

&lt;p&gt;After all the usual notices and information of the opening, we had morning tea, where there were some nice custard/fruit pies.&lt;/p&gt;

&lt;p&gt;Next, I went to the Open Programming Languages miniconf. The first talk was about Haskell, &amp;#8220;and all the things it doesn&amp;#8217;t let you do&amp;#8221;. It was an okay basic introduction to the language, but the speaker had too much information on his slides, which he skipped by a bit too fast (and which he didn&amp;#8217;t read out either!). I hope that this brings more people to actually try out language, as in my opinion is one of the major &lt;em&gt;very different&lt;/em&gt; languages that everyone should know.&lt;/p&gt;

&lt;p&gt;After that, was the Gearman talk. Gearman is a distributed job system, which has tons of language bindings. It&amp;#8217;s simply used for running a whole bunch of tasks, in parallel across a bunch of workers. There&amp;#8217;s also a mysql module, which exposes an SQL interface to the whole system (which is &lt;em&gt;totally crack&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;There was an annoying power-cut during the Gearman talk, apparently they cut the power to try solve some audio interference issues on the video stream. Auxesis and I was quite angry at this, because they did it with no warning, cutting of the speaker mid-sentence. I&amp;#8217;m sorry, but I paid a fair bit of money to be here, and I feel that the organisers should prioritise towards the people who are actually attending the conference in person. There was a related matter towards the end of the day, where a speaker couldn&amp;#8217;t come to one of the sessions, so we ended up having a free-for-all discussion. One of the A/V guys came in bitching that we should be talking into the microphone, because the people on the stream were complaining. I&amp;#8217;m sorry, but the people on the stream are not paying anything to watch the stream, and they are free to drop into the IRC channel and start their own conversation.&lt;/p&gt;

&lt;p&gt;Next we moved up to the Distro Summit miniconf, and we watched the vcs-pkg talk, which was about how to standardise patch management across distributions. There is currently a problem in how to approach managing distribution-specific patches, as well as fixes which are waiting to be merged upstream, across multiple upstream branches and multiple distro branches, and multiple distros themselves. This project originated from Debian, but they&amp;#8217;re very keen to work with other distributions to arrive at a common solution - to encourage different distributions to share features or fixes.&lt;/p&gt;

&lt;p&gt;We went across the road the the Felix cafe to have lunch. I ate what was probably one of the most delicious burgers I&amp;#8217;ve ever had, a Wagyu beef burger. We started talking about the problems of integrating language-specific package managers (Python Eggs, Ruby Gems, Lua Rocks, etc.) with distro package management systems (which is also what the up-coming talk at the Distro Summit miniconf was about).&lt;/p&gt;

&lt;p&gt;The talk at the Distro Summit miniconf was from a Gobolinux developer, talking about how they approached integrating language-specific packages into their distro package manager. What they&amp;#8217;ve done, is they write wrappers over the top of language-specific package managers, and defer dependency/version handling to them as well. So, you can have distribution packages which depend on language-specific packages, and they will be installed using their respective language-specific package manager. This apparently works really well, but there are issues with reverse dependencies (ie. how can ruby-gtk depend on gtk+?). This is a problem I&amp;#8217;ve often thought about, but haven&amp;#8217;t arrived at a good solution. I think it&amp;#8217;s good that Gobolinux have taken an initiative to actually try a solution, which, while not perfect, gives us a focus point of discussion.&lt;/p&gt;

&lt;p&gt;Moving back to the Open Programming Languages miniconf, the next talk there was An Intro to PyPy, which was an interesting overview of what the PyPy project is. It started out as a Python interpreter written in Python, but has since evolved into a very generic tool for converting a subset of Python (RPython) into lower-level code (C, CLR bytecode, JVM bytecode). PyPy allows you to separate the language implementation, from the back-end generators, from the &amp;#8220;language feature&amp;#8221; generators. The sort of language features you can just &amp;#8220;plug in&amp;#8221;, include JITs, GCs, and various threading implementations (STM, message passing, normal threading).&lt;/p&gt;

&lt;p&gt;Then Rusty took the stage to give us a talk about his experiences with Talloc, and how it has affected the design of his code. He started off by emphasising, that if you&amp;#8217;re not working close to the hardware, and you&amp;#8217;re using C, then you&amp;#8217;re probably using the wrong language. Talloc is a tree-based memory allocator. It allows you to allocate memory based off existing allocated pointers. By doing this, you&amp;#8217;re organising all your &amp;#8220;objects&amp;#8221; in memory into a tree structure - which means you can easily clean up: freeing a parent will free all of its children. Additionally, to aid with cleanup you get the ability to hook up destructors to pointers. Rusty was explaining that the use of Talloc has changed the way that his code is structured, and it makes it easier to spot bugs earlier (ie. when two &amp;#8220;objects&amp;#8221; seem to depend on each other). The other cool thing is that you can generate a graph of all the &amp;#8220;objects&amp;#8221; in memory, which is very cool for visually spotting memory leaks.&lt;/p&gt;

&lt;p&gt;After this, it was time for the lightning talks.&lt;/p&gt;

&lt;p&gt;The first lightning talk introduced Mercury, which is a vaguely Haskellish, statically typed, function, pure language - but it uses a slightly different typing system so it&amp;#8217;s not as monad-heavy. It&amp;#8217;s also been out for around 15 years now, so has a fairly mature implementation.&lt;/p&gt;

&lt;p&gt;The next interesting lightning talk was an introduction to the Disciple language and its DDC compiler, by Erik. It&amp;#8217;s a language that&amp;#8217;s a fork of Haskell, but has various extensions to the type system that fix some of Haskell&amp;#8217;s type issues, as well as reducing the amount of monadic code you need to directly write. Erik highly recommends that people interested in this stuff read Ben Lippmeier&amp;#8217;s thesis about this.&lt;/p&gt;

&lt;p&gt;Someone got up and was talking about how compilers and programs these days have grown too big, and maybe we need to take a step back and cut out some of that approach by taking more radical approaches to our programming languages. The suggestion was to look more into concatenative languages, in particular Joy, but also including Forth, Cat and Factor.&lt;/p&gt;

&lt;p&gt;Finally, Tim Ansell got up to announce that he and Richard Jones have been discussing about the possibility of hosting a PyCon in Sydney sometime this year. He put out a call for volunteers/interest, and it&amp;#8217;s very early times at the moment, but I&amp;#8217;m hoping this will go through. I volunteered to help out a bit with the organising committee, as well as the possibility of using Zookeepr (the system that powers the LCA website) for it as well. There was a PyCon held in NZ recently, and it apparently pulled in over a hundred people, so hopefully a Sydney one would be able to pull in even more.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="linux" label="linux" />
   <category scheme="http://ycros.org/tags/" term="geek" label="geek" />
   <category scheme="http://ycros.org/tags/" term="lca" label="lca" />
   <category scheme="http://ycros.org/tags/" term="lca2010" label="lca2010" />
   <category scheme="http://ycros.org/tags/" term="nz" label="nz" />
 </entry>
 
 <entry>
   <title>Pre Linux.Conf.Au 2010</title>
   <link href="http://ycros.org/2010/01/17/pre-lca-2010.html"/>
   <updated>2010-01-17T00:00:00+11:00</updated>
   <id>http://ycros.org/2010/01/17/pre-lca-2010</id>
   <content type="html">&lt;p&gt;Flying out today, I had to wake up extra-early at 4:30am in order to make the trains to the airport. The night before, I had done my online check-in, so once at the airport all I had to do was check in my bags - and as Qantas has a separate queue for online check-ins, this was really fast. They even printed me out a proper boarding pass (you print your own and bring it with you). Totally going to do that in the future as well.&lt;/p&gt;

&lt;p&gt;I managed to meet up with James Purser, as well as some other LCAers who were on the same plane. We had a bit of a chat about Google Wave, its problems, and the cool stuff that people such as James are working on (ie. federation, and the upcoming new Python wave robot APIs).&lt;/p&gt;

&lt;p&gt;The flight was mostly dull, as flights are, but I started reading Charlie Stross&amp;#8217; &amp;#8220;Halting State&amp;#8221;. I figured I should read it soon, as it&amp;#8217;s near-future sci-fi, and one of the events described in the books has apparently recently actually occurred. So far, it&amp;#8217;s a fantastic book, but I&amp;#8217;m not that far into it yet.&lt;/p&gt;

&lt;p&gt;Arriving in Wellington, ended up in a shuttle bus with some other LCAers, though while they were only going to the U-stay, I was going further as I was going to stay with friends (i386 and auxesis). There was a hilarious moment where some woman wanted to be dropped off from the shuttle at a particular spot, and the shuttle driver just stopped in the middle of the road! People started honking their horns, and we created a traffic jam that was backed up as far as the eye could see. There was a maori builder in the house, laughing his arse off about it as well.&lt;/p&gt;

&lt;p&gt;Once I got to Brandon Street, where my apartment apparently was, I quickly realised that while the apartment documents that i386 had forwarded to me had the code to open the box where the keys to the apartments were held - it did not actually specify the room number. This was on the envelopes containing the keys, which had been picked up by i386 and auxesis (arriving the day before). I never enabled global roaming on my phone, and with no local sim, I had no way to call them to come down - so I stood in the street, found some wifi, and bitched at i386 on IRC, which fortunately worked.&lt;/p&gt;

&lt;p&gt;The apartment we have is fantastic, it&amp;#8217;s clean, it has a nice big kitchen, bathroom and laundry - and the lounge area is huge, and has very, very comfortable suede leather couches. The wifi situation is a bit poor, we can only access the apartment&amp;#8217;s hotspot, which is stupidly overpriced - but we have some ideas on how to fix this situation.&lt;/p&gt;

&lt;p&gt;After going to the conference venue to register, we discovered that there was a Belgian Beer Cafe/Bar on block next to our apartment. We went there and had totally delicious beers and food. I had venison sausages, and for desert Belgian waffles. To go with the waffles, I also had a cherry beer (Kreik), which was delicious.&lt;/p&gt;

&lt;p&gt;Then we came back to our apartment and talked into the night.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="geek" label="geek" />
   <category scheme="http://ycros.org/tags/" term="linux" label="linux" />
   <category scheme="http://ycros.org/tags/" term="lca2010" label="lca2010" />
   <category scheme="http://ycros.org/tags/" term="lca" label="lca" />
   <category scheme="http://ycros.org/tags/" term="nz" label="nz" />
 </entry>
 
 <entry>
   <title>Borderlands Browse Source Released</title>
   <link href="http://ycros.org/2009/11/22/borderlands-browse-source.html"/>
   <updated>2009-11-22T00:00:00+11:00</updated>
   <id>http://ycros.org/2009/11/22/borderlands-browse-source</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve just put up the source code for &lt;a href='http://ycros.org/2009/11/19/borderlands-browse.html'&gt;Borderlands Browse&lt;/a&gt; up onto launchpad, here: &lt;a href='http://launchpad.net/borderlands-browse'&gt;http://launchpad.net/borderlands-browse&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m releasing it under the BSD license - I would have GPL&amp;#8217;d it except that one of the components I&amp;#8217;ve used isn&amp;#8217;t GPL compatible. You can also file bugs and stuff at the launchpad project page.&lt;/p&gt;

&lt;p&gt;I also released a new version today which fixes some internal issues, which should make it a bit more reliable in getting connected.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="programming" label="programming" />
   <category scheme="http://ycros.org/tags/" term="geek" label="geek" />
   <category scheme="http://ycros.org/tags/" term="games" label="games" />
   <category scheme="http://ycros.org/tags/" term="C#" label="C#" />
   <category scheme="http://ycros.org/tags/" term=".net" label=".net" />
 </entry>
 
 <entry>
   <title>Borderlands Browse</title>
   <link href="http://ycros.org/2009/11/19/borderlands-browse.html"/>
   <updated>2009-11-19T00:00:00+11:00</updated>
   <id>http://ycros.org/2009/11/19/borderlands-browse</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve been playing the excellent new game &lt;a href='http://en.wikipedia.org/wiki/Borderlands'&gt;Borderlands&lt;/a&gt; recently, which is an FPS/RPG hybrid. One thing that really annoyed me (and others) however, was the built-in server browser. Co-operative play is one of the major fun points of this game, and finding a server to play on is currently a nightmare. The built-in browser lacks filtering, and does not display countries or latencies. Also, it seems to miss many servers.&lt;/p&gt;

&lt;p&gt;I managed to track down a neat little command line tool called &lt;a href='http://en.wikipedia.org/wiki/Gslist'&gt;gslist&lt;/a&gt;, which is an open source game server query tool. It took me a while to work out the right combination of arcane command line parameters in order to actually get a list of games out of it. Using a command line tool like this, under windows, is pretty unwieldy - especially if all I want to do is quickly find a game and hop in. In addition, I couldn&amp;#8217;t get gslist&amp;#8217;s ping functionality working, so I couldn&amp;#8217;t filter games out by latency.&lt;/p&gt;

&lt;p&gt;So, I decided to write a Borderlands-specific frontend to gslist in C#. I chose C# because this is only useful on Windows, and because C# apps are trivial to deploy on Windows. The result is &lt;a href='http://ycros.org/borderlandsbrowse/'&gt;Borderlands Browse&lt;/a&gt;. I&amp;#8217;ve had a few people test it already, and they tell me it works well. One thing to keep in mind, is that you should be logged into GameSpy within the game for it to connect to servers (ie. don&amp;#8217;t logout in-game, just hit escape to get out of the online menu). If you just end up at the main-menu, chances are that either you weren&amp;#8217;t logged in - or the server didn&amp;#8217;t let you connect for some reason (firewall, full server).&lt;/p&gt;

&lt;p&gt;Interesting things I learnt during this project:&lt;/p&gt;

&lt;p&gt;Storing settings for your app is as easy as going into your project&amp;#8217;s Properties folder, and into the Settings.settings file, defining your settings in there, then simply using Settings.Default.YourSetting throughout your app.&lt;/p&gt;

&lt;p&gt;ClickOnce deployment is awesome for quickly being able to churn out an installer (with self-updating capabilities!) out of a .net app. Though working out the right parameters (especially when you&amp;#8217;re not running IIS or a site with frontpage extensions) can be tricky.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://golang.org'&gt;Threading still sucks&lt;/a&gt;. ;)&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ll post the source up once I get around to working out a license and maybe doing a bit of a cleanup.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://ycros.org/borderlandsbrowse/'&gt;Borderlands Browse&lt;/a&gt;&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="programming" label="programming" />
   <category scheme="http://ycros.org/tags/" term="geek" label="geek" />
   <category scheme="http://ycros.org/tags/" term="games" label="games" />
   <category scheme="http://ycros.org/tags/" term="C#" label="C#" />
   <category scheme="http://ycros.org/tags/" term=".net" label=".net" />
 </entry>
 
 <entry>
   <title>Byteside</title>
   <link href="http://ycros.org/2009/09/29/byteside.html"/>
   <updated>2009-09-29T00:00:00+10:00</updated>
   <id>http://ycros.org/2009/09/29/byteside</id>
   <content type="html">&lt;p&gt;I thought I&amp;#8217;d mention &lt;a href='http://byteside.com'&gt;Byteside&lt;/a&gt;, it&amp;#8217;s a new, bi-weekly online geek/tech/gaming show (actually, two shows, one for tech and one for games). It&amp;#8217;s filmed with a live audience on Tuesday nights, at the Shelbourne Hotel&amp;#8217;s Altitude Bar in Sydney (with future plans to move around the country).&lt;/p&gt;

&lt;p&gt;The two shows consist of panels of Australian tech and gaming journalists and industry people. I went to the inaugural filming two weeks ago, and it was all a very laid-back and fun experience. And I got to meet a few interesting people.&lt;/p&gt;

&lt;p&gt;You can see the first shows up on the &lt;a href='http://byteside.com'&gt;Byteside website&lt;/a&gt;, where the tech show focused on smartphones, and the games show focused on MMOs. However, the shows also comprise of looking at current news, and an audience Q&amp;amp;A segment.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m going to the next show tonight, where the games show will be discussion the R18+ video games issue - which is an issue that I care about. That panel will include Paul Hunt, the former Deputy Director of the Classification Board; it will be interesting to hear his views on the matter. The tech show tonight is going to be talking about video: cameras, gadgets and online audiences.&lt;/p&gt;

&lt;p&gt;If you&amp;#8217;re in Sydney, I don&amp;#8217;t think it&amp;#8217;s still too late to &lt;a href='http://byteside.com/byteside-live-audience-rsvp/'&gt;RSVP for a spot&lt;/a&gt;.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="geek" label="geek" />
   <category scheme="http://ycros.org/tags/" term="events" label="events" />
   <category scheme="http://ycros.org/tags/" term="social" label="social" />
 </entry>
 
 <entry>
   <title>A Blog, Reborn</title>
   <link href="http://ycros.org/2009/09/19/a-blog-reborn.html"/>
   <updated>2009-09-19T00:00:00+10:00</updated>
   <id>http://ycros.org/2009/09/19/a-blog-reborn</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve finally gotten around to setting up a blog for myself again. This time round, based on &lt;a href='http://holmwood.id.au/~lindsay/'&gt;auxesis&amp;#8217;&lt;/a&gt; suggestion, I&amp;#8217;ve gone with using &lt;a href='http://wiki.github.com/mojombo/jekyll'&gt;Jekyll&lt;/a&gt; instead of the usual &lt;a href='http://wordpress.org'&gt;Wordpress&lt;/a&gt; fare.&lt;/p&gt;

&lt;p&gt;Jekyll is a Ruby-based blog engine, that spits out a static site based on a collection of html/markdown/template files. It&amp;#8217;s taken me longer to get it up and running, but I think it will be easier to maintain and customise over the long term.&lt;/p&gt;

&lt;p&gt;Since my blog is static, I&amp;#8217;ve outsourced comments and trackbacks to &lt;a href='http://disqus.com/'&gt;Disqus&lt;/a&gt;. Also, I&amp;#8217;ve used the lovely &lt;a href='http://cufon.shoqolate.com/generate/'&gt;Cufón&lt;/a&gt; to embed custom fonts into the page for my headings. I used &lt;a href='http://www.blueprintcss.org/'&gt;Blueprint&lt;/a&gt; as a starting point for my CSS, to get a quick layout going, as well as to take advantage of the resetting and typography stuff.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m not sure whether I&amp;#8217;m going to attempt to migrate content from my old blog. However, that content by now is years old.&lt;/p&gt;</content>
   <category scheme="http://ycros.org/tags/" term="misc" label="misc" />
   <category scheme="http://ycros.org/tags/" term="personal" label="personal" />
 </entry>
 
</feed>