<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3126243605406110937</id><updated>2011-11-27T17:24:46.734-08:00</updated><title type='text'>Banshee shoutcast extension</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-182854600657951434</id><published>2009-08-28T13:05:00.000-07:00</published><updated>2009-08-28T13:32:25.299-07:00</updated><title type='text'>Both extensions released on code.google.com</title><content type='html'>This week as planned I gave a little facelift to streamrippers configuration dialog which now looks a lot better. As I was doing this I noticed some little things that should be done to fetchers dialogs aswell. For example the dialog didn't have a "header-label" and the name of the service to which we're going to perform the search is mentioned below the header.&lt;br /&gt;Both extensions have finnish translations now.&lt;br /&gt;&lt;br /&gt;I created pages for both extensions to code.google.com. Links to the pages (also found in links-list):&lt;br /&gt;&lt;a href="http://code.google.com/p/banshee-radiostationfetcher/"&gt;http://code.google.com/p/banshee-radiostationfetcher/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/banshee-streamripper/"&gt;http://code.google.com/p/banshee-streamripper/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-182854600657951434?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/182854600657951434/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/both-extensions-released-on.html#comment-form' title='1 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/182854600657951434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/182854600657951434'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/both-extensions-released-on.html' title='Both extensions released on code.google.com'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-443494587831947315</id><published>2009-08-21T08:34:00.000-07:00</published><updated>2009-08-21T09:05:29.468-07:00</updated><title type='text'>Fixing and wrapping stuff up</title><content type='html'>I was away for weekend and when I got back I had a nice surprise waiting. Bertrand had reviewed my code, fixed some things. I am especially thankful for help with my mangled autotools-scripts. Yes they still give me headache. These fixes were for stationfetcher and I could easily apply the fixes for streamripper too.&lt;br /&gt;&lt;br /&gt;The blog has now two more links for tarballs that you can download and install. The installation process is somewhat usual:&lt;br /&gt;&lt;br /&gt;./configure --enable-user-extension&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;&lt;br /&gt;There isn't anymore too much time anymore. Actually a bit more than a week. I think in this time I will add finnish translation to both extensions and have streamrippers configuration dialog more like it should be by gnomes design-documentation. One more thing is to start thinking about a video-presentation that I have to make about this project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-443494587831947315?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/443494587831947315/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/fixing-and-wrapping-stuff-up.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/443494587831947315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/443494587831947315'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/fixing-and-wrapping-stuff-up.html' title='Fixing and wrapping stuff up'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-5711265404430493059</id><published>2009-08-14T01:07:00.000-07:00</published><updated>2009-08-14T01:33:59.855-07:00</updated><title type='text'>Some more fixing</title><content type='html'>This week I cleaned up gitorious. There is now two separate projects for the extensions. The old shoutcast-extension project isn't used anymore.&lt;br /&gt;Streamripper can now be installed with ./configure --enable-user-extension &amp;&amp; make &amp;&amp; make install -commands. Stationfetcher however needs some work with this.&lt;br /&gt;The exception handling of stationfetcher is improved now and is a bit more mature by design. It seems I have got rid of all crashing now and the occasional UI mess-up.&lt;br /&gt;&lt;br /&gt;I will continue with stationfetcher and autotools. Then make tarballs available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-5711265404430493059?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/5711265404430493059/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/some-more-fixing.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/5711265404430493059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/5711265404430493059'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/some-more-fixing.html' title='Some more fixing'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-2569884890521417227</id><published>2009-08-09T00:59:00.000-07:00</published><updated>2009-08-09T02:01:29.247-07:00</updated><title type='text'>Testing, fixing, refactoring...</title><content type='html'>This week I've been fixing the code. I gathered list of things that have been checked out:&lt;br /&gt;&lt;br /&gt;- Streamripper-extension used to check whether or not currently listened source is recordable. This check is moved to "track-level" since radio streams can appear on same songlist with "regular" media files. &lt;br /&gt;- Console.WriteLine-commands are moved to Hyena.Log.Debug which is the way to go with printing lines here. &lt;br /&gt;- Debugging messages have also been checked and made sure they are consistent. &lt;br /&gt;- All UI-messages are also checked that they are properly formatted and everything fetched from "Catalog". &lt;br /&gt;- Radiostation fetcher's statusbar-messages are now consistent. &lt;br /&gt;- All code that used threadpool is changed to use banshee's own scheduling. &lt;br /&gt;- UI isn't updated anymore from separate threads. Something I didn't know I shouldn't be doing. Thanks again for the community for straightening me out. &lt;br /&gt;- Xiph-query is now being done when the dialog is being constructed. No more slow first query (see previous text).&lt;br /&gt;&lt;br /&gt;What next? I didn't clean gitorious yet. Autotools-stuff needs to be checked. I suspect dependencies aren't correct and make install won't work as it should.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-2569884890521417227?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/2569884890521417227/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/testing-fixing-refactoring.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/2569884890521417227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/2569884890521417227'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/testing-fixing-refactoring.html' title='Testing, fixing, refactoring...'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-5531609054765104428</id><published>2009-08-02T14:20:00.000-07:00</published><updated>2009-08-02T14:34:12.929-07:00</updated><title type='text'>First version of Banshee.RadioStationFetcher in gitorious</title><content type='html'>The user interface is now rewritten and imho integrates better with banshee now. As planned stations can now be fetched from www.xiph.org too. The fetching is handled rather differently with xiph - all stations are fetched first and searching is done locally. This makes first query slow but after first one it's blazing fast. Maybe query should be done when the dialog is first shown so there would be less latency and annoyance for the user. Making new source available was kind of fun to do so maybe I try to add atleast one more. Live365 sounds promising...&lt;br /&gt;&lt;br /&gt;Anyway I feel now that this extension wont see anymore dramatic changes. I should start testing both extensions heavily now and fix all the small bugs you don't see before you really use the software. I also should start thinking how well my little extensions are packed and how to make things easy to anyone who might start using these. One more thing is to clean gitorious from stuff I don't use anymore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-5531609054765104428?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/5531609054765104428/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/first-version-of-bansheeradiostationfet.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/5531609054765104428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/5531609054765104428'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/08/first-version-of-bansheeradiostationfet.html' title='First version of Banshee.RadioStationFetcher in gitorious'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-735668439997359374</id><published>2009-07-25T06:03:00.000-07:00</published><updated>2009-07-25T09:16:04.956-07:00</updated><title type='text'>Streamripper configuration</title><content type='html'>Streamripper is now configurable. Configurable features are setting the output directory for ripped files and enabling automatic importing of new songs to media library. Changes made are pushed to gitorious. I believe this streamripper-extension won't see too big changes anymore, from now on it will be testing and bug-fixing.&lt;br /&gt;&lt;br /&gt;The shoutcast UI part however needs to be re-written in my opinion. As it is it cannot be easily extended to support other sources than shoutcast. Also having separate UI for internet-radio and for shoutcast is kinda stupid.&lt;br /&gt;&lt;br /&gt;New plan is to refactor the name of the whole thing to something like Stationfetcher and have it appear on Tools-menu. Now it would be easy to just add new sub-menus for other stream sources. I'd like to add support for xiph.com which seems to offer quite nice selection of streams. I estimate this to take a week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-735668439997359374?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/735668439997359374/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/streamripper-configuration.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/735668439997359374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/735668439997359374'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/streamripper-configuration.html' title='Streamripper configuration'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-288688493165692116</id><published>2009-07-18T03:09:00.000-07:00</published><updated>2009-07-18T03:30:18.111-07:00</updated><title type='text'>Streamripper-extension in gitorious</title><content type='html'>As planned streamripper-extension is now separated from shoutcast-extension. The new project can be found in gitorious (under the same project). Streamripper-part is also now removed from shoutcast-extension and can also be found in gitorious under a branch called 'no_streamripper'.&lt;br /&gt;&lt;br /&gt;Once compiled and installed the usage of the new extension is simple. In Banshee just click tools -&gt; Streamripper -&gt; Activate streamripper to start ripping a radiostream. Now ripped files automatically go to Music library.&lt;br /&gt;&lt;br /&gt;There's some work to be done for this extension: the output folder and disabling auto-import should be configurable, if stream listening is stopped, ripper just keeps on ripping and one particular line needs a face-lift ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-288688493165692116?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/288688493165692116/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/streamripper-extension-in-gitorious.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/288688493165692116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/288688493165692116'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/streamripper-extension-in-gitorious.html' title='Streamripper-extension in gitorious'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-116188931500824155</id><published>2009-07-12T10:39:00.001-07:00</published><updated>2009-07-12T11:32:53.693-07:00</updated><title type='text'>Cleaning up</title><content type='html'>I had a chat with gabaug last week and he gave me lots of things to think about. For one the code has now been cleaned up and re-formatted to match the Banshee c# coding style guideline. Some unneeded stuff is also removed from gitorious. He also had the idea of separating streamripper to own project. This will be the next thing that I am going to do. &lt;br /&gt;&lt;br /&gt;I put the idea of updating now playing -fields to hold. It seems that putting it together is time consuming and I have more urgent issues to work on.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;One feature that I feel banshee is missing is automatically importing songs from some certain directories. Whenever I get new music it bugs me that I have to manually import them. I'd like to make this happen. Hope I have the time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-116188931500824155?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/116188931500824155/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/cleaning-up.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/116188931500824155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/116188931500824155'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/cleaning-up.html' title='Cleaning up'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-6370672722378870446</id><published>2009-07-08T06:20:00.000-07:00</published><updated>2009-07-08T06:43:05.678-07:00</updated><title type='text'>Updating station's now playing -field</title><content type='html'>I ran into trouble with the thread that is supposed to update now playing -field (and add new stations and get rid of one's that don't exist anymore). While debugging the feature I noticed that now playing fields retrieved from shoutcast are usually very old. The latency is something like 10 minutes which in this case makes the information unusable.&lt;br /&gt;&lt;br /&gt;I also noticed that Banshee sees the currently played song of a radio-stream currently being listened without any latency. So I think there is another way to update now playing -field.&lt;br /&gt;&lt;br /&gt;The blog has now new link-element attached to the top. I plan to keep link to the newest release and link to development version in Gitorious.&lt;br /&gt;&lt;br /&gt;The "stationlist-scanner" -thingie is added to the version in Gitorious. Old stuff is now deleted from Gitorious and the only thing is the standalone extension.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-6370672722378870446?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/6370672722378870446/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/updating-stations-now-playing-field.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/6370672722378870446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/6370672722378870446'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/updating-stations-now-playing-field.html' title='Updating station&apos;s now playing -field'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-6005220236877073802</id><published>2009-07-04T08:57:00.000-07:00</published><updated>2009-07-04T09:29:53.133-07:00</updated><title type='text'>Version 0.1.1</title><content type='html'>Soon after previous release Bertnard hit me with an email giving me a whole bunch of hints with autotools and releasing related stuff. So now I have more working 'make install'-thing and less not needed stuff included in tarball. Oh and I fixed a super-ugly bug making banshee to crash when "Get"-button was pressed (I had list of genres included in database and not having these changes made banshee crash).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.student.oulu.fi/~aksu/banshee-shoutcast-extension.tar"&gt;Version 0.1.1 is found here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Installation (to ~/.config/banshee-1/addins):&lt;br /&gt; - untar the package&lt;br /&gt; - navigate to banshee-shoutcast-extension -folder with your terminal.&lt;br /&gt; - ./configure --enable-user-extension&lt;br /&gt; - make&lt;br /&gt; - make install&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've started writing the thread that will update station-information in background, but it didn't make to this release. Other issue is that there is still something funny going on with configure-scripts. I also would like to get a better grip of gitorious. There's still the very old version of the Extension and the whole banshee-project. Adding somekind of side-panel to the blog containing links to versions and to gitorious would also be nice. Tons TODO.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-6005220236877073802?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/6005220236877073802/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/version-011.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/6005220236877073802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/6005220236877073802'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/07/version-011.html' title='Version 0.1.1'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-4197131469965384569</id><published>2009-06-27T09:31:00.000-07:00</published><updated>2009-06-27T10:18:23.956-07:00</updated><title type='text'>Version 0.1 is out</title><content type='html'>Wow it has been some time since I updated this blog. So what I've been up to? Mainly just banging my head against the wall with autotools. Up till last week I have never had to touch autotools. Sure I have compiled and installed some programs before with ./configure &amp;&amp; make &amp;&amp; make install -commands but not made a release out of something I wrote. Other issue was to get the resource-files available for banshee in a right way (one day I spent two hours messing around before I realized Addin.xml should have the first letter in lowercase *sigh*).&lt;br /&gt;&lt;br /&gt;Anyway I got my little shoutcast-project now separated from the banshee-project. It's now a 'standalone' extension and more or less ready to be released. Even though the features I wanted to have are pretty much there, it still has many bugs and inconveniences in the user-interface.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.student.oulu.fi/~aksu/banshee-shoutcast-extension.tar"&gt;You can download the tar-ball here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In addition to having banshee you will need to have &lt;a href="http://streamripper.sourceforge.net/"&gt;streamripper&lt;/a&gt; installed in your computer and found in PATH if you wish to use the ripping feature. I think autotools should check this in the future.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installation:&lt;br /&gt;&lt;br /&gt;The usual: &lt;br /&gt;./configure &amp;&amp; make&lt;br /&gt;&lt;br /&gt;NOTE! make install won't do any good for now. It installs the .dll-file in to a wrong directory.&lt;br /&gt;Instead you will have to manually copy the dll to /usr/lib/banshee-1/Extensions with following command:&lt;br /&gt;&lt;br /&gt;sudo cp banshee-shoutcast-extension/bin/Release/banshee-shoutcast-extension.dll /usr/lib/banshee-1/Extensions/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next I would like to do more writing code and less figuring out how to configure my project. First I want to write the background thread for updating channel-listing then I will tackle with some UI-issues I mentioned in previous post. Then I want to have my configure.ac's and Makefile.am's set straight. After I have this done there's going to be a new release. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If someone has a good idea what I should do with the make install part, I would be glad to hear it. Also if there's people trying out this release I would love to hear some comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-4197131469965384569?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/4197131469965384569/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/version-01-is-out.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/4197131469965384569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/4197131469965384569'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/version-01-is-out.html' title='Version 0.1 is out'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-1131037628722071790</id><published>2009-06-19T07:34:00.000-07:00</published><updated>2009-06-20T13:30:06.261-07:00</updated><title type='text'>First release under construction</title><content type='html'>I thought I would have made a new prototype like the previous one. Instead I realized it would be much better to make a standalone extension which would be ./configured made and make installed. &lt;br /&gt;So now I will not touch the source code but learn how to wrap the thing up.&lt;br /&gt;&lt;br /&gt;The release-version will be able to import ripped songs to media-library, but there is still work to be done to the UI (which I won't fix in this release). &lt;br /&gt;&lt;br /&gt;Currently know issues:&lt;br /&gt;- rec-button should be toggle. Now user doesn't know if the thing is recording&lt;br /&gt;- I feel there shouldn't be a separate fetch-window. Just add genre-combobox to the main-UI?&lt;br /&gt;- fetching from shoutcast in separate thread. Now the whole UI is stuck while querying is being done&lt;br /&gt;- A statusbar would be nice to inform if a query is being done or whether currently listened song is being ripped or skipped (when you start listening to a stream you don't hear the whole song and it's being skipped)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-1131037628722071790?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/1131037628722071790/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/first-release-under-construction.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/1131037628722071790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/1131037628722071790'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/first-release-under-construction.html' title='First release under construction'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-4826087065816668263</id><published>2009-06-13T04:04:00.000-07:00</published><updated>2009-06-13T04:13:55.923-07:00</updated><title type='text'>Duh!</title><content type='html'>I got a comment. Turns out there is a need to write instructions how to get my "sandbox"-project running.&lt;br /&gt;&lt;br /&gt;I also noticed that I don't provide a database with the changes I made into it. There is a new field called SubGenre in TrackInfo. Also there is a new table Genres which just contains Titles of each shoutcast-genre.&lt;br /&gt;&lt;br /&gt;Ok I won't do this today since it's saturday and I am going to let myself work only on the more fun parts :D &lt;br /&gt;&lt;br /&gt;Anyway I appreciate getting comments since it helps a lot spotting out things I don't notice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-4826087065816668263?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/4826087065816668263/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/duh.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/4826087065816668263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/4826087065816668263'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/duh.html' title='Duh!'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-8827028317518343607</id><published>2009-06-13T03:13:00.000-07:00</published><updated>2009-06-13T14:23:43.464-07:00</updated><title type='text'>Fooling around with streamripper</title><content type='html'>Lately I have been playing around with streamripper. Currently I am able to record a stream with instance of streamripper controlled by InternetRadio-extension in Banshee. &lt;br /&gt;&lt;br /&gt;Now I'd like to get those ripped songs automatically imported into music library.&lt;br /&gt;At first I thought I would just have to move those new files into a folder that is scanned by music library itself. Turns out this is a feature I thought banshee would have (actually I heard there is an extension to do this, but I rather write a new one since I don't want my extension to have dependencies to other extension in sake of complexity).&lt;br /&gt;&lt;br /&gt;I started writing a scanner that checks for new mp3-files every n-seconds. Now I should figure out a good way to do the actual importing. I've spent much time looking into how this should be done. Good start was to check how banshee imports new files to media library and how drag and drop works. I started writing a new custom "source", but I am not too far with this one.&lt;br /&gt;&lt;br /&gt;Now that I've been playing with this background thread I got an idea to create other background thread for refreshing fetched stations' status. It would check which genres have already been fetched (get a distinct list of genres found among already fetched stations). Get a fresh list of stations from shoutcast with corresponding genres. Remove deleted stations, add new one and refresh now playing -field.&lt;br /&gt;&lt;br /&gt;I think I will write streamripper part first. Make a prototype probably on Wednesday. Start with "refresh-thread" unless I notice something that has higher priority.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-8827028317518343607?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/8827028317518343607/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/fooling-around-with-streamripper.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/8827028317518343607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/8827028317518343607'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/fooling-around-with-streamripper.html' title='Fooling around with streamripper'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-3819342907725454399</id><published>2009-06-09T06:03:00.000-07:00</published><updated>2009-06-10T02:54:49.707-07:00</updated><title type='text'>Prototype1 in Gitorious</title><content type='html'>I made a prototype of my plans and managed to get it to Gitorious after few hours of struggling (total newbie with git). This helped &lt;a href="http://toolmantim.com/articles/setting_up_a_new_remote_git_repository"&gt;http://toolmantim.com/articles/setting_up_a_new_remote_git_repository&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can find the new branch &lt;a href="http://gitorious.org/banshee-shoutcast-extension/banshee-shoutcast-extension/archive-tarball/shoutcast"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To be able to compile the thing, you need to get the build-dependencies found &lt;a href="http://banshee-project.org/download/development/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A screenshot showing genre-selector, sub-genre-selector and query-window:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.student.oulu.fi/~aksu/kesakoodi/proto1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 800px; height: 500px;" src="http://www.student.oulu.fi/~aksu/kesakoodi/proto1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-3819342907725454399?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/3819342907725454399/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/prototype1-in-gitorious.html#comment-form' title='2 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/3819342907725454399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/3819342907725454399'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/prototype1-in-gitorious.html' title='Prototype1 in Gitorious'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-7367616043422207530</id><published>2009-06-03T09:47:00.000-07:00</published><updated>2009-06-03T10:46:21.793-07:00</updated><title type='text'>First steps in making friends with Banshee</title><content type='html'>Previously I posted that I would start playing around with extensions. So I did. I got the latest code and &lt;a href="http://banshee-project.org/contribute/write-code/"&gt;set up the environment for banshee&lt;/a&gt;. I am kinda surprised how painless the operation was. Anyway instead of making hello worlds or starting new extension I took the InternetRadio-extension under my nose right away. I think eventually I will make a new extension, but for now I think it's a good place to start.&lt;br /&gt;I made a new button to the header which would bring up a dialog where stationlist queries would be made. I believe the hardest part in my project will be the UI design. For example with this kind of design refreshing already fetched channels may result in ugly tricks. I guess I am a bit hasty to get something to the screen :)&lt;br /&gt;&lt;br /&gt;Everybody loves screenshots. Here's some of the initial ideas:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_16dHRFJjsxQ/Siazj0O-cxI/AAAAAAAAAAM/IUkqYrVn7X0/s1600-h/new_header_button.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 111px;" src="http://2.bp.blogspot.com/_16dHRFJjsxQ/Siazj0O-cxI/AAAAAAAAAAM/IUkqYrVn7X0/s320/new_header_button.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5343155435819922194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_16dHRFJjsxQ/Sia2X79hpZI/AAAAAAAAAAc/D-AveNAY5Lk/s1600-h/fetch_window.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 291px; height: 233px;" src="http://1.bp.blogspot.com/_16dHRFJjsxQ/Sia2X79hpZI/AAAAAAAAAAc/D-AveNAY5Lk/s320/fetch_window.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5343158530270668178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-7367616043422207530?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/7367616043422207530/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/first-steps-in-making-friends-with.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/7367616043422207530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/7367616043422207530'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/first-steps-in-making-friends-with.html' title='First steps in making friends with Banshee'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_16dHRFJjsxQ/Siazj0O-cxI/AAAAAAAAAAM/IUkqYrVn7X0/s72-c/new_header_button.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-7178171230976795147</id><published>2009-06-01T05:29:00.000-07:00</published><updated>2009-06-01T06:25:07.478-07:00</updated><title type='text'>How winamp retrieves radiostation listing from shoutcast</title><content type='html'>So how does winamp do what it does? Maybe shoutcast would have provided API for retrieving stationlisting, but I find it always fun when I get to play with security-tools. I figured by sniffing the traffic winamp generates I might be able to find out what to do. I used wireshark for this and this is what I got:&lt;br /&gt;&lt;br /&gt;Everytime you click a genre or do a query by string winamp sends following stuff:&lt;br /&gt;&lt;br /&gt;Search by genre example:&lt;br /&gt;&lt;br /&gt;Address:  yp.shoutcast.com&lt;br /&gt;Port:     80&lt;br /&gt;&lt;br /&gt;GET /sbin/newxml.phtml?genre=Jazz HTTP/1.0&lt;br /&gt;Host:yp.shoutcast.com&lt;br /&gt;User-Agent: Winamp/5.55  &lt;br /&gt;&lt;br /&gt;What we get as a response is a XML containing stationlisting:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;stationlist&amp;gt;&lt;br /&gt;&amp;lt;tunein base="/sbin/tunein-station.pls"&amp;gt;&amp;lt;/tunein&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;station&lt;br /&gt;  name="Absolutely Smooth Jazz - S K Y . F M - the world's smoothest jazz 24 hours a day"&lt;br /&gt;  mt="audio/mpeg"&lt;br /&gt;  id="948"&lt;br /&gt;  br="96"&lt;br /&gt;  genre="Soft Smooth Jazz"&lt;br /&gt;  ct="Chuck Loeb - Water Runs Dry"&lt;br /&gt;  lc="3253"&amp;gt;&lt;br /&gt;... bunch of stations ...&lt;br /&gt;&amp;lt;/stationlist&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now the previous station can be listened with following address (note the id pasted in the end): &lt;br /&gt;&lt;br /&gt;http://yp.shoutcast.com/sbin/tunein-station.pls?id=948&lt;br /&gt;&lt;br /&gt;After googling some time I was able to get a &lt;a href="http://www.student.oulu.fi/~aksu/genrelist.txt"&gt;list of all possible genres&lt;/a&gt; which are all ID3 genres + some additional genres by shoutcast.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Additional information&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tv-station listing is fetched a bit differently. Winamp fetches a list of all channels only once and searching is done locally.&lt;br /&gt;&lt;br /&gt;Query:&lt;br /&gt;&lt;br /&gt;Address:  yp.shoutcast.com&lt;br /&gt;Port:     80&lt;br /&gt;&lt;br /&gt;GET /sbin/newtvlister.phtml?alltv=1 HTTP/1.0&lt;br /&gt;&lt;br /&gt;Again we get a XML which is very similiar to previous one.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next thing I am going to do is writing a hello world extension for banshee. And after that I am going to figure out how to compile the existing Internet radio extension so that I wouldn't have to compile the whole banshee project aswell. Next post probably on wednesday.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-7178171230976795147?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/7178171230976795147/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/how-winamp-retrieves-radiostation.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/7178171230976795147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/7178171230976795147'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/06/how-winamp-retrieves-radiostation.html' title='How winamp retrieves radiostation listing from shoutcast'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3126243605406110937.post-2123309565227284820</id><published>2009-05-31T03:43:00.000-07:00</published><updated>2009-05-31T04:07:32.896-07:00</updated><title type='text'>Hello world!</title><content type='html'>Hello!&lt;br /&gt;This will be my very first post to the blog that I am going to upkeep for atleast the next summer. The topic is about me taking my first dive into open source world as a developer.&lt;br /&gt;The project is extension for &lt;a href="http://banshee-project.org/"&gt;Banshee&lt;/a&gt; that allows users to retrieve radiostation listing from &lt;a href="http://www.shoutcast.com/"&gt;Shoutcast&lt;/a&gt; and save the songs to disk with integrated &lt;a href="http://streamripper.sourceforge.net/"&gt;Streamripper&lt;/a&gt;.&lt;br /&gt;This project was accepted as one of &lt;a href="http://www.coss.fi/"&gt;COSS's&lt;/a&gt; summer of code projects of which I am very happy about.&lt;br /&gt;The actual work will start tomorrow and I am going to tell you how &lt;a href="http://www.winamp.com/"&gt;Winamp&lt;/a&gt; handles the radiostation retrieval.&lt;br /&gt;&lt;br /&gt; - Aksu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3126243605406110937-2123309565227284820?l=aksussummerofcode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aksussummerofcode.blogspot.com/feeds/2123309565227284820/comments/default' title='Lähetä kommentteja'/><link rel='replies' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/05/hello-world.html#comment-form' title='0 kommenttia'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/2123309565227284820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3126243605406110937/posts/default/2123309565227284820'/><link rel='alternate' type='text/html' href='http://aksussummerofcode.blogspot.com/2009/05/hello-world.html' title='Hello world!'/><author><name>Aksu</name><uri>http://www.blogger.com/profile/01465726704633840437</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
