<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A world in dk(decay/denmark) &#187; phone</title>
	<atom:link href="http://rotand.dk/blog/tag/phone/feed/" rel="self" type="application/rss+xml" />
	<link>http://rotand.dk/blog</link>
	<description>Just another pointless weblog</description>
	<lastBuildDate>Sat, 27 Jun 2009 19:17:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CLI voip calls</title>
		<link>http://rotand.dk/blog/2009/05/03/cli-voip-calls/</link>
		<comments>http://rotand.dk/blog/2009/05/03/cli-voip-calls/#comments</comments>
		<pubDate>Sun, 03 May 2009 08:13:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[shell script]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[voip connection]]></category>
		<category><![CDATA[voip phone]]></category>
		<category><![CDATA[voip service provider]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[wake up call]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/?p=178</guid>
		<description><![CDATA[
Sometimes it would be nice to use a script call somebody and play a message.
I &#8220;needed&#8221; a wake-up-call system and since I use a voip-phone and have access to a server. I thought i would be quite nifty if I could have the server call me. Furthermore i would like to be able to script [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rotand.dk/zen/phone/front1.jpg"><img class="ZenphotoPress_thumb alignleft" title="front1" src="http://rotand.dk/zen/phone/image/thumb/front1.jpg" alt="front1" width="180" height="180" /></a><br />
Sometimes it would be nice to use a script call somebody and play a message.<br />
I &#8220;needed&#8221; a wake-up-call system and since I use a voip-phone and have access to a server. I thought i would be quite nifty if I could have the server call me. Furthermore i would like to be able to script calls, so for instance the calendar could call me with reminders rather than sending an email.</p>
<p>I googled around but weren&#8217;t able to find such a utility. But i did find cli-sip client <a href="http://www.pjsip.org/pjsua.htm">pjsua</a>, based on <a href="http://www.pjsip.org/">pjsip</a>. Its posible to use it in conjunction with a shell script.</p>
<h4>Scripting</h4>
<p><code>jacob@vps:~./control.sh sip:108329@foobar.com "wake up you lazy bastard!"</code><br />
Is the basic usage i wanted to have. In order to get this functionality there are two steps.</p>
<p><span id="more-178"></span></p>
<h5>Generating wav file</h5>
<p>I ust use text2wave, from <a href="http://www.speech.cs.cmu.edu/festival/">festival</a>, which is available as a package on ubuntu.<br />
<code>echo $2 | text2wave - -o message.wav </code></p>
<p>$2 to use the second argument, and pipe it to text2wave. Let text2wave read sdtin and output a file message.wav</p>
<h5>Call and play the wav file</h5>
<p><code>pjsua_app --config-file=test.conf --play-file message.wav $1</code><br />
Here the magic is in the conf file. Its a rather straightforward to use, and the documentation is good.<br />
<code><br />
# we don't want the host's audio device<br />
--null-audio<br />
# SIP parameters<br />
--realm domain.com<br />
--registrar sip:number@domain.dk # DNS SRV, or FQDN</code><br />
<code> --username USERNAME<br />
--password PASS<br />
# default of 55 will be rejected as being too short by sipX<br />
--reg-timeout 3600<br />
# auto-answer all calls with "200 OK"<br />
--auto-answer 200<br />
# automatically loop incoming RTP to outgoing RTP<br />
--auto-loop<br />
# mix WAV file into the audio stream</code><br />
<code> --auto-play<br />
--auto-loop<br />
--duration=60<br />
</code><br />
This is based on a config file i found somewhere, can&#8217;t remember where. There a a lot of other options, pjsua handles nat quite nicely as well. It was easy to test it at my homebox, behind a router, just be sure to set an external ip address.</p>
<p>Now this will call and play the message, but it wont stop pjsua. It will just sit around waiting for someone to call. I couldn&#8217;t find any nice way to handle this, but since pjsua reads stdin for commands, it possible to pipe commands to it.<br />
<code>echo "sleep 60000 q" | pjsua_app --config-file=test.conf --play-file message.wav $1 </code><br />
So sleep for 60 seconds, then accept the next input from stdin, the &#8220;q&#8221;uit command.</p>
<p>Generally this configuration is set for 1 minute, it might be necessary to tweak this.</p>
<h4>Frustrations</h4>
<p>There is/were a bug in the tarball, that meant that it wouldn&#8217;t run if it couldn&#8217;t find a soundcard, since it should run on a vps this is quite annoying. But in the svn version its solved, so if you want to do something like this, use the svn version. Other than this installation is straightforward.</p>
<p>When working with cron, remember to use full paths. In the <tt>control.sh</tt> script the better solution were to add a cd working directory, in order to have all the paths correct. This were quite annoying to debug, as the script would run from the shell. And just fail when added to the crontab. Furthermore mails from crontab were delayed, so i couldn&#8217;t see the output. I did get someone to look over my shoulder and spot the bug.</p>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2009/05/03/cli-voip-calls/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DTMF dialer</title>
		<link>http://rotand.dk/blog/2008/03/20/dtmf-dialer/</link>
		<comments>http://rotand.dk/blog/2008/03/20/dtmf-dialer/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 20:23:54 +0000</pubDate>
		<dc:creator>jacob</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dtmf]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[jar file]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[nokia 6300]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[program]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/2008/03/20/dtmf-dialer/</guid>
		<description><![CDATA[UPDATE : see  dtmf-dialer-got-new-features
I got around to hacking some code together for a simple DTMF dialer on the mobile.
Its functional and simple. Enter a number, click ok and it will play the correct sequence of tones. It&#8217;s  even possible to tweak the duration and pauses.
I have only tested it on my own Nokia 6300, [...]]]></description>
			<content:encoded><![CDATA[<p>UPDATE : see <span id="sample-permalink"> </span><a href="http://rotand.dk/blog/2009/06/27/dtmf-dialer-got-new-features"><span id="sample-permalink"><span id="editable-post-name-full">dtmf-dialer-got-new-features</span></span></a></p>
<p>I got around to hacking some code together for a simple DTMF dialer on the mobile.</p>
<p>Its functional and simple. Enter a number, click ok and it will play the correct sequence of tones. It&#8217;s  even possible to tweak the duration and pauses.</p>
<p>I have only tested it on my own Nokia 6300, but as far as I can tell it should run on most java enabled mobile phones.</p>
<p><a title="dtmf logo" href="http://www.rotand.dk/blog/wp-content/phone.png"><img src="http://www.rotand.dk/blog/wp-content/phone.png" alt="dtmf logo" /></a></p>
<p>Here are the <a href="http://en.wikipedia.org/wiki/MIDlet">jad and jar files.</a> If you want to run the program download them to your mobile and have fun.</p>
<ul>
<li><a title="dtmf jad" href="http://rotand.dk/blog/wp-content/dtmfdialer.jad">dtmf jad</a></li>
<li><a title="dtmf jar" href="http://rotand.dk/blog/wp-content/dtmfdialer.jar">dtmf jar</a></li>
</ul>
<p>At the moment it converts + to 00 and removes +45, as this is appropriate for a danish setting.</p>
<p>Here is the sourcecode if you need to make changes.</p>
<p><a title="DTMF sourcecode" href="http://www.rotand.dk/blog/wp-content/dtmfsrc.zip">DTMF sourcecode</a></p>
<p><strong>Using Netbeans</strong></p>
<p>I used netbeans 6.0.1 and it was a mixed pleasure. Creating the the flow using a drag&#8217;n'drop interface, is well nice for something small and simple as this, but I found that it soon got frustrating. There&#8217;s no API to look in, and you have to use the mouse all the time.</p>
<p><a title="dtfmFlow" href="http://www.rotand.dk/blog/wp-content/flowdiagram.png"><img src="http://www.rotand.dk/blog/wp-content/flowdiagram-150x150.png" alt="dtfmFlow" width="189" height="132" /></a></p>
<p>This is the basic flow of the midlet. It was very quick to set this up, and it were indeed a pleasure to start with. Somewhere along the way a made a mistake, which the flowdesigner and codegenerator couldn&#8217;t handle. And no matter what I tried I couldn&#8217;t get rid of it, I knew exactly what i was. I had misnamed a variable and managed to let the generated code go into a never-ending recursion. (something along the lines of:<em> private TextField foo() { return new TextField(Foo);} </em>). But no matter what I tried it just wouldn&#8217;t get back to normal. In the end I just created a new project, remade the flow stuff to what you see above, and copied a few functions over.</p>
<p>And the flowdesigner is quick to work with, but I get a nagging suspicion that if you are going to make something a little more complicated than this it will be an annoyance. You might know exactly where and what to change in the source code, but do you remember where to point, click and edit in the <em>designer</em>interface? Another critique is that even when you know what to do, your workflow gets abruptted by having to constantly shift hands between keyboard and mouse.</p>
<p>To Netbeans defence i must say that I am used to using Eclipse, and changing to another IDE is in it self a frustrating experience. Whats the shortcut for blah, where do I set this. And its quite possible that I just didn&#8217;t  know enough about Netbeans structure and shortcuts to feel at home.</p>
<p>Credit goes out to : <a href="http://www.openclipart.org/">openclipart.org</a> for the image of the phone and <a href="http://dialabc.com/about/">dialabc</a> for the soundfiles.</p>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2008/03/20/dtmf-dialer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Phone images</title>
		<link>http://rotand.dk/blog/2008/03/19/phone-images-electronic-porn/</link>
		<comments>http://rotand.dk/blog/2008/03/19/phone-images-electronic-porn/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 16:15:00 +0000</pubDate>
		<dc:creator>jacob</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/2008/03/19/phone-images-electronic-porn/</guid>
		<description><![CDATA[I finally got around to snapping some pictures of the &#8220;new&#8221; rotary phone.

There are more in the gallery
I have been using gnome-blog for posting the last couple of blogpost. And Its quite neat, its an panel applet and it makes posting so much easier since its integrated into gnome. I feel that its missing some [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around to snapping some pictures of the &#8220;new&#8221; rotary phone.</p>
<p><img src="http://rotand.dk/gallery/albums/phone/normal_ringer.jpg" alt="check out those bells" /></p>
<p>There are more in the <a href="http://rotand.dk/gallery/thumbnails.php?album=7">gallery</a></p>
<p>I have been using <a href="http://www.gnome.org/~seth/gnome-blog/">gnome-blog</a> for posting the last couple of blogpost. And Its quite neat, its an panel applet and it makes posting so much easier since its integrated into gnome. I feel that its missing some features like multiple drafts and the ability to insert images. Inserting images should be possible, with the most recent version, if the blog supports it. But well i do not know if wordpress supports it or if the version in the ubuntu repositories is the most recent. I tried getting the tarball but there was some dependency issues.</p>
<p>Speaking of panel applets i highly recommend <a href="http://www.nongnu.org/bubblemon/">bubblemon</a>. It shows cpu, bandwith and memory usage as a &#8220;bubbling aquarium&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2008/03/19/phone-images-electronic-porn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retro insane asylum telephone</title>
		<link>http://rotand.dk/blog/2008/03/18/retro-insane-asylum-telephone/</link>
		<comments>http://rotand.dk/blog/2008/03/18/retro-insane-asylum-telephone/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 20:15:51 +0000</pubDate>
		<dc:creator>jacob</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Weird]]></category>
		<category><![CDATA[dtmf]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[insane asylum]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[psychiatric hospital]]></category>
		<category><![CDATA[pulsedialing]]></category>
		<category><![CDATA[retro]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[voip connection]]></category>
		<category><![CDATA[voip service provider]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/2008/03/18/retro-insane-asylum-telephone/</guid>
		<description><![CDATA[I recently bought an oldskool rotary phone. I saw it at an auction and it looked nice, but its history was even more fascinating. In its youth it was doing service at the local insane asylum.

image from the museum.
From the leaflet: &#8220;Welcome as a patient to the Psychiatric Hospital&#8221;
 About the Psychiatric Hospital
The highly regarded [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">I recently bought an oldskool rotary phone. I saw it at an auction and it looked nice, but its history was even more fascinating. In its youth it was doing service at the local insane asylum.</span></p>
<p><a title="insane asylum" href="http://www.rotand.dk/blog/wp-content/hovedbygning.jpg"><img src="http://www.rotand.dk/blog/wp-content/hovedbygning.jpg" alt="insane asylum" /></a></p>
<p>image from the <a href="http://museum-psyk.dk">museum</a>.</p>
<p>From the leaflet: &#8220;<a href="http://www.sundhed.dk/wps/portal/_s.155/1923?_ARTIKEL_ID_=1046050310131223&amp;_ARTIKELGRUPPE_ID_=1046040910163003">Welcome as a patient to the Psychiatric Hospita</a>l&#8221;<br />
<strong> About the Psychiatric Hospital</strong></p>
<p><em>The highly regarded Copenhagen architect, Gotlieb Bindsboll, built the Jyske Asylum in the middle of the 19th Century. The inspiration for the building, with its crow step gables and many beautiful courtrooms, was taken from the typical Danish manor houses. Its position, with views over the Århus bay was in keeping with the contemporary view of the healing benefits of beauty. The hospital became known as a model institution for the treatment of the mentally ill, also on a European scale. The first part of the hospital was completed in 1852 and it was extended several times over the next fifty years. </em></p>
<p><a title="kirk phone" href="http://www.rotand.dk/blog/wp-content/phone.jpg"><img src="http://www.rotand.dk/blog/wp-content/phone.jpg" alt="kirk phone" /></a></p>
<p>The phone is from <span style="text-decoration: line-through;">1951</span> 1955 and the &#8220;electronics&#8221; looks aged but in surprisingly good condition. My first plan for it were to gut it, and put a more modern telephone inside, so I could use it for voip. But when I saw that it were in good condition, I thought it would be a shame to kill it entirely.</p>
<p>So I wanted to see whether it would be possible to use it as it is.</p>
<p>For the voip connection i have a <a href="http://www.linksys.com/servlet/Satellite?childpagename=US%2FLayout&amp;packedargs=c%3DL_Product_C2%26cid%3D1117044308483&amp;pagename=Linksys%2FCommon%2FVisitorWrapper">PAP2T linksys adaptor</a> (<em>pap</em>), its quite simple to work with. Plug in power and ethernet cable and configure it with a voip service-provider. Initially I used a normal phone to make sure that i had a working setup, before trying to get the rotary phone to work. The normal phone were quite easy to setup and it &#8220;just works&#8221;.</p>
<p>For the rotary phone there is still some difficulties. But i have managed to get something to work, and I am working on the rest.</p>
<p>First of all i had to change to <em>pap</em>s power output to maximum, else it wouldn&#8217;t ring the bells. I am still in the process of fiddling with settings for impedance and/or input gain. The problem is that the microphone volume is very low, and if I just turn the input gain up it turns up for the noise as well. It isn&#8217;t a problem for me as i have a crisp and clear sound, but apparently it&#8217;s a pain to whomever I am talking to. So something has to be done.</p>
<p>Then there is the dialing. A rotary phone dials by using <a href="http://en.wikipedia.org/wiki/Pulse_dial">pulse dialing</a>, which in essence means that it disconnects/hangs up, in short intervals as a method of counting the numbers. But any modern voip-adaptor (at least a cheap one) can only function using <a href="http://en.wikipedia.org/wiki/Dual-tone_multi-frequency">DTMF</a>. That&#8217;s were sending different tones means different numbers. Which basically means that it is enough to send the correct sequence of tones into the microphone in order to dial a number.</p>
<p>I had seen some applets for dialling they did work with the modern telephone, but the rotary phone with its microphone troubles had to get something more. I had success  using &#8220;DTMF-dial&#8221; (from the ubuntu repositories), because it was possible to tweak the duration of tones and pauses.</p>
<p>Next step, as holding the phone to the PC-speaker every time i need to make a phone call, is not an option, were to make a midlet, that&#8217;s a mobile applet. A java program for the mobile. Using the mobile as a dialer may seem awkward, but it already holds all my contacts and the voip is a great deal cheaper. I have a midlet at the moment that is at the proof of concept stage. It can dial and I am able to take a number from my address-book dial it using DTMF. It still needs a bit of polishing, but its mostly cosmetic, maybe a list of recent calls would be a nice feature to implement.</p>
<p>soon to come:</p>
<ul>
<li> Nice pictures of the phone, and the electronics.</li>
<li> Some software for DTMF dialing on the mobile and a bit about devolping a simple mobile application in netbeans.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2008/03/18/retro-insane-asylum-telephone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xonix mobile edition</title>
		<link>http://rotand.dk/blog/2007/07/28/xonix-mobile-edition/</link>
		<comments>http://rotand.dk/blog/2007/07/28/xonix-mobile-edition/#comments</comments>
		<pubDate>Sat, 28 Jul 2007 02:29:49 +0000</pubDate>
		<dc:creator>jacob</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[program]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/2007/07/28/xonix-mobile-edition/</guid>
		<description><![CDATA[Having toyed around with J2ME for the freeVibes, I got a bit hooked on coding for the mobile phone.
So I started to recreate the classic oldskool game Xonix, it&#8217;s a game I really like. So simple and addictive. It&#8217;s not the first time I&#8217;m coding it, I have made it as an applet about a [...]]]></description>
			<content:encoded><![CDATA[<p>Having toyed around with J2ME for the freeVibes, I got a bit hooked on coding for the mobile phone.</p>
<p>So I started to recreate the classic oldskool game Xonix, it&#8217;s a game I really like. So simple and addictive. It&#8217;s not the first time I&#8217;m coding it, I have made it as an applet about a year ago (<a href="http://rotand.dk/xonix/xonix.php">Xonix applet</a>). As well as being a fun game to play I find it a fun game to code too. Though I have had my share of frustrations. The basic functionality is a fillalgorithm, that has to fill an area on both sides of the line / trail you make with the &#8216;pilot&#8217;.  This has to be fast and efficient &#8211; nobody likes a game where you have to wait for updates.</p>
<p><img src="http://www.rotand.dk/blog/wp-content/xonix.png" alt="xonix screenshot" /></p>
<p><span id="more-44"></span></p>
<p>When I first made the game i found a neat fill-algorithm. (<a href="http://en.wikipedia.org/wiki/Flood_fill">flood fill wikipedia</a>). So it should have been a piece of cake to implement it in J2me, its java&#8230; I deliberately choose not to reuse old code, as I  feared it would be horrible ugly. And a course in datastructures and algorithms should have given me some tools to make a better / cleaner implementation. Then the woes began. J2ME, has no ArrayList it has vector and a stack, and the are not generic so no typecasting. I made a version using Vector, but somehow i managed to use all the memory. When I look back I have a nagging suspicion that the Vector isn&#8217;t to blame &#8211; but rather me that somehow feed it to much data.  No matter what it was I got rid of the Vector and started using arrays, and using indexing like in images or c-&#8221;double&#8221;arrays (index = x + y * WIDTH). Finally it could fit in memory.</p>
<p>And then I started looking for graphics, a nice game really depends on nice sprites &#8211; much more than a beautiful algorithm.  I couldn&#8217;treally find any and its quite painful, at least for me, to make sprites. It gets real ugly, real fast &#8211; hmm no it gets real ugly real slow, because i&#8217;m no good at creating graphics. Well the frustrations grew and I ending up abandoning the project. The basic gameplay works, but is buggy and as mentioned the graphics sucks.</p>
<p><a href="http://www.rotand.dk/blog/wp-content/xonix2.png" title="xonix screenshot 2"><img src="http://www.rotand.dk/blog/wp-content/xonix2.png" alt="xonix screenshot 2" /></a></p>
<p>All in all it was quite fun programming, and some day i might give it another go.</p>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2007/07/28/xonix-mobile-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeVibes</title>
		<link>http://rotand.dk/blog/2007/06/27/freevibes/</link>
		<comments>http://rotand.dk/blog/2007/06/27/freevibes/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 11:57:33 +0000</pubDate>
		<dc:creator>jacob</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Weird]]></category>
		<category><![CDATA[cldc]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[eclipse plugin]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[images]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[jad files]]></category>
		<category><![CDATA[jar file]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java jad file]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nokia 6300]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[splash screen]]></category>
		<category><![CDATA[telephone]]></category>
		<category><![CDATA[vibelet]]></category>
		<category><![CDATA[wireless toolkit]]></category>

		<guid isPermaLink="false">http://rotand.dk/blog/2007/06/27/freevibes/</guid>
		<description><![CDATA[Finally the summer-holiday arrived, now its time to do some fun coding.
I bought myself a new mobile, a Nokia 6300, it&#8217;s got all the bells and whistles. Hmm well at least those I could afford. I choose this mobile because it has : Java, mp3 -player, bluetooth and memorycard.

specifications from nokia
review from mobilereview.com

I must admit [...]]]></description>
			<content:encoded><![CDATA[<p>Finally the summer-holiday arrived, now its time to do some fun coding.</p>
<p>I bought myself a new mobile, a Nokia 6300, it&#8217;s got all the bells and whistles. Hmm well at least those I could afford. I choose this mobile because it has : Java, mp3 -player, bluetooth and memorycard.</p>
<ul>
<li><a href="http://www.forum.nokia.com/devices/6300">specifications from nokia</a></li>
<li><a href="http://www.mobile-review.com/review/nokia-6300-en.shtml">review from mobilereview.com</a></li>
</ul>
<p>I must admit that i might be a bit of a nerd, so I just had to code something for it. And after &#8220;hello world&#8221; I found a small and some would say useless application to code.</p>
<p><strong>FreeVibes</strong></p>
<p>I must say I got inspired by <a href="http://www.vibelet.com/">vibelet</a> and the article in wired ( <a href="http://www.wired.com/techbiz/media/news/2003/04/58442">Hold the Phone, It&#8217;s a Sex Toy</a> ). As the title suggest, its well vibrating. I think that vibelet &#8211; though i haven&#8217;t seen their program, must be making quite an profit. Because getting a java-enabled phone to vibrate constantly,  is quite easy.</p>
<p>So now its Time for FreeVibes, a free software version.</p>
<p><span id="more-41"></span></p>
<table border="0" width="100%">
<tbody>
<tr>
<td><img src="http://www.rotand.dk/blog/wp-content/splash.png" alt="FreeVibes splash" /></td>
<td><img src="http://www.rotand.dk/blog/wp-content/ducky.png" alt="ducky" /></td>
</tr>
<tr>
<td>That&#8217;s the fancy splash screen</td>
<td>And when its in vibrating mode, this little duck is there. And now why a rubberduck ? ( <a href="http://www.google.dk/search?q=rub+my+duckie&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t">answers</a> )</td>
</tr>
</tbody>
</table>
<p>If you want to try it out, here are the jar  and jad files. Just put them on your java-enabled mobile phone. I have just tested it on my telephone, It should work on any new mobile (with java) :</p>
<p><a href="http://rotand.dk/j2me/vibrator.jad">Jad File</a><br />
<a href="http://rotand.dk/j2me/vibrator.jar">Jar File</a><br />
<a href="http://rotand.dk/j2me/FreeVibesSrc.zip">Source code</a></p>
<p><strong>Installation</strong></p>
<ol>
<li>Download the jar and jad file and place them on the phone in the same directory.</li>
<li>Run the applet</li>
<li>Have fun</li>
</ol>
<p><strong>Technicalities</strong></p>
<p>Getting things to work with ubuntu feisty fawn.</p>
<p>I use SUNs java 6 and the wireless toolkit for the J2me.</p>
<p>Nokia has a nice area with information about coding for their phones (<a>forum.nokia.com</a>). But i didn&#8217;t have any success using their eclipse plugin and  carbide.j seems to be a windows application. But <a href="http://eclipseme.org/">eclipseME</a> worked like a charm.</p>
<p>When setting up a device for EclipseME i had to make sure that it was MIDP 2.0 and CLDC 1.1. It wasn&#8217;t the default and the Nokia 6300 can&#8217;t handle MIDP 2.1.</p>
<p>They code and design is inspired by <a href="http://forum.nokia.com/document/Java_ME_Developers_Library/">Nokias tutorial</a> on making MIDP 2.0 games.</p>
<p>The images I used are from the <a href="http://openclipart.org/wiki/?title=Main_Page">openclipart collection</a>, hacked together with GiMP and Inkscape, and I use obexftp to transfer the files to the phone.</p>
]]></content:encoded>
			<wfw:commentRss>http://rotand.dk/blog/2007/06/27/freevibes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
