<?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>Donald Jackson &#187; Work</title>
	<atom:link href="http://www.ddj.co.za/archives/category/work/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ddj.co.za</link>
	<description>Kannel, mobile and web development</description>
	<lastBuildDate>Thu, 09 Sep 2010 02:53:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CakePHP component to send SMS via Panacea Mobile</title>
		<link>http://www.ddj.co.za/archives/139/cakephp-component-to-send-sms-via-panacea-mobile</link>
		<comments>http://www.ddj.co.za/archives/139/cakephp-component-to-send-sms-via-panacea-mobile#comments</comments>
		<pubDate>Thu, 09 Sep 2010 02:44:57 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[delivery reports]]></category>
		<category><![CDATA[panacea mobile]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/?p=139</guid>
		<description><![CDATA[Here is a carbon copy of the article I posted on the CakePHP Bakery, listed here for your reading pleasure This is a component which can easily be integrated into your CakePHP application. This is a simple procedure but the benefit of using this component is it allows for easy tracking of delivery reports. In [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bakery.cakephp.org/articles/view/component-to-send-sms-text-messages"><img class="alignright size-full wp-image-143" title="CakePHP SMS Component" src="http://www.ddj.co.za/wp-content/uploads/2010/09/cakephp_logo_125_trans.png" alt="" width="125" height="125" /></a>Here is a carbon copy of the article I posted on the <a href="http://bakery.cakephp.org/articles/view/component-to-send-sms-text-messages">CakePHP Bakery</a>, listed here for your reading pleasure <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  This is a component which can easily be integrated into your CakePHP application. This is a simple procedure but the benefit of using this component is it allows for easy tracking of delivery reports.</p>
<p>In order to use this component, your PHP installation needs to support cURL and you need to have a Panacea Mobile username/password (can be obtained at http://www.panaceamobile.com).</p>
<p><a href="http://www.panaceamobile.com"><img style="padding: 3px" class="alignleft size-full wp-image-142" title="Panacea Mobile" src="http://www.ddj.co.za/wp-content/uploads/2010/09/Logo1.png" alt="" width="135" height="85" /></a>You may download the component from:</p>
<p>www.panaceamobile.com/panacea_sms_component.zip</p>
<p>Once done, save panacea_sms.php in your components directory (usually under app/controllers/components).</p>
<p>Then place the following code in your controller where you wish to use the component.</p>
<p><code><br />
var $components = array('PanaceaSms');<br />
</code></p>
<p>This will include the component into your controller.</p>
<p>Now, in your controller functions, when you wish to send an SMS/text message, your code should look something like this:</p>
<p><code><br />
$this-&gt;PanaceaSms-&gt;username = "myusername"; /* This is your Panacea Mobile username */<br />
$this-&gt;PanaceaSms-&gt;password = "mypassword"; /* This is your Panacea Mobile password */<br />
if($this-&gt;PanaceaSms-&gt;send("44881234567", "Hello there!")) {<br />
/* SMS Sent */<br />
}<br />
</code></p>
<p>Easy as that!</p>
<h3>Advanced features (optional)</h3>
<p>There are some &#8216;advanced&#8217; features available if you wish to change the from number (the number which the message appears to be from) as well as receive delivery reports. This can be done as below:</p>
<p><code><br />
$fromNumber = "44881234569";<br />
$this-&gt;PanaceaSms-&gt;username = "myusername"; /* This is your Panacea Mobile username */<br />
$this-&gt;PanaceaSms-&gt;password = "mypassword"; /* This is your Panacea Mobile password */<br />
$this-&gt;PanaceaSms-&gt;delivery_report_mask = 31; /* This is for all statuses */<br />
$this-&gt;PanaceaSms-&gt;delivery_report_url = Router::url(array('action' =&gt; 'receive_delivery_report'), true);<br />
if($this-&gt;PanaceaSms-&gt;send("44881234567", "Hello there!", $fromNumber)) {<br />
/* SMS Sent */<br />
}<br />
</code></p>
<p>Now, when a delivery report comes in for your message, it will hit the URL specified under delivery_report_url. I have included an example of how to deal with this in your controller.</p>
<p><code><br />
function receive_delivery_report() {<br />
$details = $this-&gt;PanaceaSms-&gt;getDeliveryReport();<br />
if($details !== FALSE) {<br />
/* original to, from, message and status returned in an array */<br />
}<br />
}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/139/cakephp-component-to-send-sms-via-panacea-mobile/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to motivate software developers</title>
		<link>http://www.ddj.co.za/archives/130/how-to-motivate-software-developers</link>
		<comments>http://www.ddj.co.za/archives/130/how-to-motivate-software-developers#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:18:13 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[motivate]]></category>
		<category><![CDATA[software developers]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/?p=130</guid>
		<description><![CDATA[I was thinking the other day about the importance of quality software architecture and about how the planning of such software architecture can fundamentally affect the success of a business. Indeed, the benefits of adequate planning are painfully obvious to those who have worked on projects- both badly planned and well planned ones. The following [...]]]></description>
			<content:encoded><![CDATA[<p>I was thinking the other day about the importance of quality software architecture and about how the planning of such software architecture can fundamentally affect the success of a business. Indeed, the benefits of adequate planning are painfully obvious to those who have worked on projects- both badly planned and well planned ones.</p>
<p><img class="alignleft size-medium wp-image-134" title="Frustrated Computer Geek" src="http://www.ddj.co.za/wp-content/uploads/2010/07/office-space-300x225.jpg" alt="" width="300" height="225" />The following question then occurred to me: “How does one motivate software developers to do the right thing while they are developing?” As we all know, there is an &#8216;easy&#8217; way to do things and a &#8216;hard&#8217; way. At this point it may be useful to use the analogy of building a house to explain my point. The first (easy) option of building a house would be to build it out of wood, with merely satisfactory foundations. The second (harder) option would be to build it out of cement and concrete, with deep foundations. Both options would serve their purpose; however, under extreme weather conditions, (and, in fact, inevitably over time), the first house would start to creak and no longer be able to perform its task, while the second would remain strong.</p>
<p>The same principle applies to software development. The question is thus raised regarding how to motivate the developers in a company (or on a project) to make the right choices; to lay the right foundations; and stick to these principles over time. Importantly, the issue is not simply how to motivate them to work, but rather, how to motivate them to do their job to the best of their ability.</p>
<p>I would argue that there are two major categories of developers. The first kind of developer is a developer who may have needed to make a career choice after school, and who chose IT because it was the option people suggested (s)he decide on. The choice to become a developer was, as such, essentially reducible to the choice to pursue a seemingly “good” job. The second kind of developer, however, is passionate about technology and would most likely be involved in IT regardless of any career potentials offered by the field.</p>
<p>I would not know how to motivate the first kind of developer in this example- I believe that these types rarely elevate themselves to the heights that are truly needed in the industry (unless they transition to the second type). I suppose that the pay-check at the end of each month would probably be enough motivation in most cases, although this is only likely to be motivation to simply show up at work; not to go the extra mile. If a company’s developers are of the first type only, the company or project would almost certainly need a strong architect to set policies and expectations in place, and to make sure that these are carried out.</p>
<p>The real question I would like to address here concerns the issue of motivating the second type of developer- the passionate one. (I believe that I am personally passionate about technology and software development so forgive me if I have related this question to myself too readily). Luckily, I work for myself now, so my motivation to offer excellent client service is certainly present. However, since I have begun to outsource more work, I have also been urged to think back to a time during which I worked for companies, and not for myself. In retrospect, a pressing question for me concerns what these companies did to make me lose interest. What would have kept me motivated? And more importantly, how do I keep my people motivated now? I have identified four issues that may help add clarity to this issue, and these are what I would like to share with you here.</p>
<h3><img class="alignright size-medium wp-image-131" title="Software Architecture" src="http://www.ddj.co.za/wp-content/uploads/2010/07/softDev-300x114.jpg" alt="" width="300" height="114" />1) Listen to the Senior Developers</h3>
<p>At almost every company I have worked, there has been a power-struggle about delivery and priorities, between the top levels of management and development teams. The developers are desperate for time to update the architecture and design of  software, while management push only for new features to drive short term sales. In the long term, if these managers consistently win  this debate without making any compromises, the software will inevitably fall short, as developers are not able to see their proposals met and the architecture ultimately fails. Technology is ever-changing; and if you are still developing the same way you did five years ago, your competitors are getting ahead of you and your developers will remain frustrated.</p>
<h3>2) Keep innovating</h3>
<p>Nobody who is passionate about technology wants to do the same thing for three years. They want to do new things; use new tools; use new technology and generally-speaking, innovate. This is not always an easy goal to achieve, but if followed out, it will serve two purposes. Not only will the developers be more satisfied with and excited about their day-to-day work, but innovation will also open up new revenue streams within a business.</p>
<h3>3) Give a sense of ownership</h3>
<p>By this I don&#8217;t mean giving someone a &#8220;Team Leader&#8221; title and telling them to run with it. I mean genuine ownership. I would suggest that software or technology companies should have an optional staff share plan in place. This would encourage developers to make sure that the work they conduct is sustainable for years to come, since they will benefit directly from the company&#8217;s success. Giving staff ownership options will ensure that staff remains motivated on a second account, too: When they leave the company, their software will continue to generate income for them.</p>
<h3>4) Financial reward</h3>
<p>In most organizations the senior developers are well aware of the kind of money that they are generating for the business. Therefore, if for example, a developer makes your business $10 million in revenue, why not give them a $100,000 bonus? Don&#8217;t base rewards on a percentage of their salary- base it on the revenue they generate. This will ensure that developers keep pushing to make your systems perform better, as well as ensuring that they are always available to do so, etc. (This is partially related to my third point, but direct bonuses are also a good way to keep the developer enthused).</p>
<p><img class="alignleft size-medium wp-image-132" title="tech2" src="http://www.ddj.co.za/wp-content/uploads/2010/07/tech2-300x261.gif" alt="" width="300" height="261" />In closing, I feel that any business that can develop these principles will create a place of innovation and of performance. And inevitably, this cycle is reversible, too. If for example, I was a developer and the company interviewing me had no passion, I would certainly pick up on that fact, and would no longer be interested in joining the company. If, however, they were genuinely passionate about their jobs, their rewards and their systems, that fact would be obvious to me, too, and would immediately incite me to become involved. Indeed, for a company to portray passion in interviewing potential developers is an invaluable objective, and will ultimately ensure that the right kind of developers enter the business.</p>
<p>If you’d like to share your thoughts on this topic with me, please don’t hesitate to do so. I would love to hear from other passionate guys out there, and to gain insight into what they think may be the motivating factors for software developers in today’s ever-changing, technology-driven society.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/130/how-to-motivate-software-developers/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kannel presentation to GeekDinner</title>
		<link>http://www.ddj.co.za/archives/75/kannel-presentation-to-geekdinner</link>
		<comments>http://www.ddj.co.za/archives/75/kannel-presentation-to-geekdinner#comments</comments>
		<pubDate>Sat, 03 Oct 2009 17:49:15 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Kannel]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[GeekDinner]]></category>
		<category><![CDATA[Presentation]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/73/kannel-presentation-to-geekdinner</guid>
		<description><![CDATA[Apologies for the delay as I promised to have this up the day after GeekDinner Thanks to all those involved with organizing these events, they are really enjoyed by all. Thanks to the sponsors Delheim for providing the wine for the event. Anyway, without further ado here is the presentation I gave on Kannel at [...]]]></description>
			<content:encoded><![CDATA[<p>Apologies for the delay as I promised to have this up the day after GeekDinner <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Thanks to all those involved with organizing these events, they are really enjoyed by all. Thanks to the sponsors <a href="http://www.delheim.com/">Delheim</a> for providing the wine for the event.</p>
<p>Anyway, without further ado here is the presentation I gave on <a href="http://www.kannel.org">Kannel</a> at GeekDinner on Monday the 28th of September 2009.</p>
<p>I hope it provides some insight into the gateway <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><object id="prezi_42ghl_mizc56" name="prezi_42ghl_mizc56" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="400"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=42ghl_mizc56&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no"/><embed id="preziEmbed_42ghl_mizc56" name="preziEmbed_42ghl_mizc56" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="400" bgcolor="#ffffff" flashvars="prezi_id=42ghl_mizc56&amp;lock_to_path=1&amp;color=ffffff&amp;autoplay=no"></embed></object></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Kannel" rel="tag">Kannel</a>, <a class="performancingtags" href="http://technorati.com/tag/GeekDinner" rel="tag">GeekDinner</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/75/kannel-presentation-to-geekdinner/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kannel for Windows &#8211; Some Cygwin Binaries</title>
		<link>http://www.ddj.co.za/archives/74/kannel-for-windows-some-cygwin-binaries</link>
		<comments>http://www.ddj.co.za/archives/74/kannel-for-windows-some-cygwin-binaries#comments</comments>
		<pubDate>Wed, 08 Apr 2009 15:56:27 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Kannel]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Binaries]]></category>
		<category><![CDATA[Cygwin]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/72/kannel-for-windows-some-cygwin-binaries</guid>
		<description><![CDATA[A customer of mine recently asked me for a windows version of Kannel. Prior to this I had no experience with Cygwin/Windows development at all. It was actually extremely simple to build Kannel using Cygwin (thanks to the Kannel developers for being, well, pretty cool ). Obviously it&#8217;s not the easiest thing in the world [...]]]></description>
			<content:encoded><![CDATA[<p>A customer of mine recently asked me for a windows version of Kannel. Prior to this I had no experience with Cygwin/Windows development at all. It was actually extremely simple to build Kannel using Cygwin (thanks to the Kannel developers for being, well, pretty cool <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). </p>
<p>Obviously it&#8217;s not the easiest thing in the world for non-developers so I thought I would make it easy for everyone to just simply download some binaries of Kannel and get going.</p>
<p>So with that said, I have built two installers for Kannel to run on windows. I have built against the stable release 1.4.3 and then I have done a CVS snapshot build against CVS dated 2009-04-07.</p>
<p>If you are interested in these, please navigate to my <a href="http://www.ddj.co.za/kannel-for-windows">kannel for windows</a> page which I will keep up to date as more stable releases get done.</p>
<p>Just a bit of background of how to build your own versions on Cygwin below:</p>
<ol>
<li>Download latest version of Cygwin</li>
<li>Install, making sure you select the development packages (gcc, automake, libxml2-devel, openssl-devel, etc)</li>
<li>Download and extract the source of Kannel from <a href="http://www.kannel.org">www.kannel.org</a></li>
<li>Change directory to the extracted source</li>
<li>Run ./configure</li>
<li>Run make</li>
<li>Then if you wish, run make install to install (need privileges unless alternative &#8211;prefix was specified)</li>
</ol>
<p>Easy !</p>
<p>Just as a final note, Kannel on windows should NOT be treated as a production ready piece of software, so this should be used strictly for convenience, testing, development, etc.</p>
<p>As always, if you have any questions, leave a comment or mail me via <a href="mailto:blog@ddj.co.za">blog@ddj.co.za</a></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Kannel" rel="tag">Kannel</a>, <a class="performancingtags" href="http://technorati.com/tag/Windows" rel="tag">Windows</a>, <a class="performancingtags" href="http://technorati.com/tag/Cygwin" rel="tag">Cygwin</a></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=ffdb99eb-2d6f-895b-be9b-c071d4b1408a" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/74/kannel-for-windows-some-cygwin-binaries/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Extracting meta-data from SMPP TLV’s with Kannel</title>
		<link>http://www.ddj.co.za/archives/71/extracting-meta-data-from-smpp-tlvs-with-kannel</link>
		<comments>http://www.ddj.co.za/archives/71/extracting-meta-data-from-smpp-tlvs-with-kannel#comments</comments>
		<pubDate>Sun, 15 Mar 2009 13:18:13 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Kannel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[SMPP]]></category>
		<category><![CDATA[TLV]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/69/extracting-meta-data-from-smpp-tlvs-with-kannel</guid>
		<description><![CDATA[I have been relatively quiet the past few weeks with various operations going on, but seeing as I have a few minutes to spare I thought I would do a quick post explaining how to extract SMPP TLV&#8217;s using the new Kannel meta data features which are in the current CVS branch. These are scheduled [...]]]></description>
			<content:encoded><![CDATA[<p>I have been relatively quiet the past few weeks with various operations going on, but seeing as I have a few minutes to spare I thought I would do a quick post explaining how to extract SMPP TLV&#8217;s using the new Kannel meta data features which are in the current CVS branch.</p>
<p>These are scheduled for the 1.5.0 stable release of Kannel, so for now you&#8217;ll need to do a CVS checkout of the main branch (as described in my previous posts).</p>
<p>I will be demonstrating how to set a test TLV and then extracting this data when a reply is received. Once you have setup your &#8216;smpp-tlv&#8217; group, you simply need to specify an additional parameter in your smsbox request. This parameter is named &#8216;meta-data&#8217;. The format for this variable is &#8216;?&lt;bind_type&gt;?&lt;dataset&gt;&#8217; currently the only supported bind type is &#8216;smpp&#8217; but it was done this way to allow future support.</p>
<p>The dataset argument, is a URL encoded key/value pair string. So for these tests I have configured a smpp-tlv group called &#8216;my-custom-var&#8217;. In order to set this, I need to build a string like this for meta-data purposes.</p>
<p><code><br />?smpp?my-custom-var=This+is+a+cool+var<br /></code></p>
<p>As you can see my-custom-var is set as a URL encoded variable, this will still need to be URL-encoded for submission in the meta-data parameter sent to smsbox.</p>
<p>So just to demonstrate, using PHP how you would build this string, you would use.</p>
<p><code></p>
<p>$bind_type = "smpp";<br />$my_custom_var = "This is a cool var";<br />$meta_data = "?".$bind_type."?my-custom-var=".urlencode($my_custom_var);<br />/* Now we need to urlencode this string */<br />$meta_data = urlencode($meta_data);<br />/* So URL would look like */<br />/* cgi-bin/sendsms?to=...&amp;from=...&amp;meta-data=$meta_data */</p>
<p></code></p>
<p>So now, when you set this to smsbox, it will be sent via the smpp bind as a TLV. Easy!</p>
<p>Now on the converse, if your smpp bind returns a TLV in a deliver_sm or other PDU, this will also passed to your URL (if you have configured it. Here below is a basic function for parsing the meta data out of this string.</p>
<p><code></p>
<p>/* This function will take the meta-data string and return an associative array */<br />function parse_metadata($var) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $pos = strpos($var, "?", 1) + 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Simply stripping out bind type 'smpp', this can be modified if you need it <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  */<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $var = substr($var, $pos);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $data = parse_str($var, $out);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $out;<br />}</p>
<p>/* Example: */<br />$meta_data = parse_metadata($_GET['meta-data']);</p>
<p>echo "My custom var = ".$meta_data['my-custom-var'];</p>
<p></code></p>
<p>I hope this helps you with your SMPP TLV requirements. Good luck, don&#8217;t forget to email me if you need any assistance with Kannel/SMS, etc and I will do my best to help you as best I can.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Kannel" rel="tag">Kannel</a>, <a class="performancingtags" href="http://technorati.com/tag/SMPP" rel="tag">SMPP</a>, <a class="performancingtags" href="http://technorati.com/tag/TLV" rel="tag">TLV</a>, <a class="performancingtags" href="http://technorati.com/tag/Kannel%20Support" rel="tag">Kannel Support</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/71/extracting-meta-data-from-smpp-tlvs-with-kannel/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Send SMS using Java Midlet/J2ME and Clickatell</title>
		<link>http://www.ddj.co.za/archives/68/send-sms-using-java-midletj2me-and-clickatell</link>
		<comments>http://www.ddj.co.za/archives/68/send-sms-using-java-midletj2me-and-clickatell#comments</comments>
		<pubDate>Fri, 23 Jan 2009 17:31:08 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Lightbulbs]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Clickatell]]></category>
		<category><![CDATA[J2ME]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/66/send-sms-using-java-midletj2me-and-clickatell</guid>
		<description><![CDATA[I have had some time to experiment with J2ME which is something I&#8217;ve always wanted the time to do. So during the course of this week (maybe a few hours total) I have put together my first Midlet. It&#8217;s a simple piece of software which allows you to send an SMS via the Clickatell SMS [...]]]></description>
			<content:encoded><![CDATA[<p>I have had some time to experiment with J2ME which is something I&#8217;ve always wanted the time to do. So during the course of this week (maybe a few hours total) I have put together my first Midlet. It&#8217;s a simple piece of software which allows you to send an SMS via the Clickatell SMS gateway.</p>
<p>You&#8217;ll need a Clickatell HTTP API Account to do so, if you don&#8217;t already have one click <a href="http://affiliates.clickatell.com/central/campaigns/redir.php?cid=89753" target="_blank">here</a> to get one.      </p>
<p>I have posted the source code <a href="http://www.ddj.co.za/sendsms.tar.gz">here</a> or you can point your mobile device directly at:</p>
<p><a href="http://www.ddj.co.za/s.jad">http://www.ddj.co.za/s.jad</a></p>
<p>Alternatively, download the jar file directly (I had to do this to get it working on my Windows Mobile 6.1 phone) at <a href="http://www.ddj.co.za/s.jar">http://www.ddj.co.za/s.jar</a></p>
<p>I wrote it using a Mac with Eclipse (with ME add-on&#8217;s) using mpowerplayer as the emulator. It is *just* a prototype and by no means uses best practice programming so don&#8217;t judge me on this quick hack <img src='http://www.ddj.co.za/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />Enjoy! If you like this app and you want me to modify it for you please get in touch via <a href="mailto:midlet@ddj.co.za">midlet@ddj.co.za</a></p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/SMS" rel="tag">SMS</a>, <a class="performancingtags" href="http://technorati.com/tag/J2ME" rel="tag">J2ME</a>, <a class="performancingtags" href="http://technorati.com/tag/Midlet" rel="tag">Midlet</a>, <a class="performancingtags" href="http://technorati.com/tag/Clickatell" rel="tag">Clickatell</a><br />
<center><br />
<a href='http://new.ddj.co.za/wp-content/uploads/2009/01/picture-21.png' title='J2ME Midlet Running in mpowerplayer'><img src='http://new.ddj.co.za/wp-content/uploads/2009/01/picture-21.png' alt='J2ME Midlet Running in mpowerplayer' /></a><br />
Midlet running in mpowerplayer<br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/68/send-sms-using-java-midletj2me-and-clickatell/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kannel Web Configuration Tool v0.1 available</title>
		<link>http://www.ddj.co.za/archives/67/kannel-web-configuration-tool-v01-available</link>
		<comments>http://www.ddj.co.za/archives/67/kannel-web-configuration-tool-v01-available#comments</comments>
		<pubDate>Mon, 05 Jan 2009 13:04:44 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Kannel]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Web Configuration]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/65/kannel-web-configuration-tool-v01-available</guid>
		<description><![CDATA[Hi everyone, I have &#8216;released&#8217; version 0.1 of the Kannel Web Configuration tool. I have created somewhat of a home page for it here for those who are interested. It is available as &#8216;donation-ware&#8217; with full source code. Admittedly it was done in a hurry so hopefully later releases will see some code enhancements. I [...]]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>I have &#8216;released&#8217; version 0.1 of the Kannel Web Configuration tool. I have created somewhat of a home page for it <a href="http://www.ddj.co.za/kannel-web-configuration-tool">here</a> for those who are interested.</p>
<p>It is available as &#8216;donation-ware&#8217; with full source code. Admittedly it was done in a hurry so hopefully later releases will see some code enhancements.</p>
<p>I am more than happy to provide assistance wherever necessary on this project.</p>
<p>Enjoy!</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Kannel" rel="tag">Kannel</a>, <a class="performancingtags" href="http://technorati.com/tag/Web%20Configuration" rel="tag">Web Configuration</a>, <a class="performancingtags" href="http://technorati.com/tag/SMS" rel="tag">SMS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/67/kannel-web-configuration-tool-v01-available/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kannel Web Configuration Tool</title>
		<link>http://www.ddj.co.za/archives/55/kannel-web-configuration-tool</link>
		<comments>http://www.ddj.co.za/archives/55/kannel-web-configuration-tool#comments</comments>
		<pubDate>Thu, 18 Dec 2008 16:24:44 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Kannel]]></category>
		<category><![CDATA[Lightbulbs]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Web Configuration]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/53/kannel-web-configuration-tool</guid>
		<description><![CDATA[Following on with my previous themes of making Kannel easier to use for everyone, I have spent some time creating a tool which I think makes it easier to configure Kannel. It is a web based configuration tool which edits Kannel configuration files directly (doesn&#8217;t rely on any third party databases etc). I wrote it [...]]]></description>
			<content:encoded><![CDATA[<p>Following on with my previous themes of making Kannel easier to use for everyone, I have spent some time creating a tool which <b>I think</b> makes it easier to configure Kannel. It is a web based configuration tool which edits Kannel configuration files directly (doesn&#8217;t rely on any third party databases etc). I wrote it in PHP to keep it simple.</p>
<p>Current features
<ul>
<li>Edit existing configuration files</li>
<li>Add new configuration groups (smsc&#8217;s, smsbox-route, sendsms-user, etc)</li>
<li>Based on the cfg.def from Kannel CVS 1.4.2 as of 2008/12/18</li>
</ul>
<p>Features in progress
<ul>
<li>Live updates to Kannel without restart for SMPP/EMI and smsbox-route&#8217;s (patch of Kannel CVS required)</li>
</ul>
<p>Coming soon
<ul>
<li>User authentication</li>
<li>Kannel analytics and monitoring</li>
<li>Audit trails of changes</li>
<li>Other live updates</li>
</ul>
<p>I am looking for feedback on the tool and when I believe it is stable enough and usable enough I will release it. You can see the beta of this tool here: <a href="http://www.ddj.co.za/kannel-config/web">http://www.ddj.co.za/kannel-config/web/</a></p>
<p>Enjoy! Please comment on the blog or email me at <a href="mailto:kwc@ddj.co.za">kwc@ddj.co.za</a> with feedback.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Kannel" rel="tag">Kannel</a>, <a class="performancingtags" href="http://technorati.com/tag/Web" rel="tag">Web</a>, <a class="performancingtags" href="http://technorati.com/tag/Configuration" rel="tag">Configuration</a>, <a class="performancingtags" href="http://technorati.com/tag/SMPP" rel="tag">SMPP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/55/kannel-web-configuration-tool/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Are we training enough Open Source competent people in SA?</title>
		<link>http://www.ddj.co.za/archives/30/are-we-training-enough-open-source-competent-people-in-sa</link>
		<comments>http://www.ddj.co.za/archives/30/are-we-training-enough-open-source-competent-people-in-sa#comments</comments>
		<pubDate>Wed, 25 Jul 2007 05:53:46 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/30</guid>
		<description><![CDATA[Working on the &#8220;dark side&#8221; of development, ie, the Open Source side has many distinct advantages, but it is becoming more and more apparent that there is a major skills shortage in South Africa. In all the businesses I have worked with, one of the recurring problems is finding good open source versed developers and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://static.php.net/www.php.net/images/logos/php-med-trans-light.gif" alt="PHP" style="float:right" />Working on the &#8220;dark side&#8221; of development, ie, the Open Source side has many distinct advantages, but it is becoming more and more apparent that there is a major skills shortage in South Africa. In all the businesses I have worked with, one of the recurring problems is finding good open source versed developers and unix skilled system administrators.</p>
<p>The problem as I see it is many of the Universities, Technikons and private learning institutions are still focused on teaching ASP, Visual Basic, Windows Servers, and so on, and the market is becoming more and more saturated with these skills. Where as on the other side of the spectrum there are gaping holes for competent staff.</p>
<p>With that said, if you are one of the few highly skilled PHP/MySQL (don&#8217;t be modest now!) developers, please <a href="mailto:jobs@ddj.co.za">get in touch</a> with me, with your CV and/or some code you have written, so I can point you to some companies who desperately need your skills and are willing to pay for them! Specifically in Cape Town, South Africa!</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/PHP" rel="tag">PHP</a>, <a class="performancingtags" href="http://technorati.com/tag/MySQL" rel="tag">MySQL</a>, <a class="performancingtags" href="http://technorati.com/tag/LAMP" rel="tag">LAMP</a>, <a class="performancingtags" href="http://technorati.com/tag/Open Source" rel="tag">Open Source</a>, <a class="performancingtags" href="http://technorati.com/tag/Developers" rel="tag">Developers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/30/are-we-training-enough-open-source-competent-people-in-sa/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Are we giving Google etc, too much power?</title>
		<link>http://www.ddj.co.za/archives/21/are-we-giving-google-etc-too-much-power</link>
		<comments>http://www.ddj.co.za/archives/21/are-we-giving-google-etc-too-much-power#comments</comments>
		<pubDate>Sun, 08 Jul 2007 18:06:28 +0000</pubDate>
		<dc:creator>Donald Jackson</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Lightbulbs]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.ddj.co.za/archives/21</guid>
		<description><![CDATA[I have been sick the past few days and my mind has had the time to idle away, well, just thinking. Browsing around the internet many of you may see, as I do, the many sites that are using the &#8216;Google Analytics&#8217; tool by none other than Google to track the statistics of their websites. [...]]]></description>
			<content:encoded><![CDATA[<p>I have been sick the past few days and my mind has had the time to idle away, well, just thinking. Browsing around the internet many of you may see, as I do, the many sites that are using the &#8216;Google Analytics&#8217; tool by none other than Google to track the statistics of their websites. This in itself is pretty harmless generally speaking, but using the analytics tools Google would have the ability to track your visitor&#8217;s from site to site, browsing patterns and what not. I&#8217;m not familiar with their privacy policies and I don&#8217;t think its in Google&#8217;s interests to sabotage their clients, but it is just scary knowing the power they have. Even more scary is the fact that its completely free, and at any given moment it could be switched off, leaving businesses without the necessary marketing tools they have been enjoying up to this point. <img style="float: right;" src="http://www.google.co.za/intl/en/logos/Logo_60wht.gif" /></p>
<p>Then I thought about GMail, but more specifically the &#8216;Google Apps&#8217; offering, which I now host the mail for my own domain (ddj.co.za) as well as phpusers.co.za, also free services, with no guarantees from Google, just leaves me feeling slightly insecure. I would almost feel more comfortable paying, if I wasn&#8217;t such a cheap skate :]</p>
<p>The thing that really bothers me about this is, not really the reliance on the servers as much, but just the information that these companies have about me. Google has all my mail, highly personal information (banking statements etc) and Facebook knows everything about me, and all the people I know, and all the people they know. Am I being watched, maybe if I was someone more important :] <img style="float: left;" src="http://static.ak.facebook.com/images/welcome/welcome_3.gif" /></p>
<p>All I know is, if I meet people that work for Google or Facebook I will surely be nice to them, or my mail, money and god knows what else will be at their mercy :]</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/Facebook" rel="tag">Facebook</a>, <a class="performancingtags" href="http://technorati.com/tag/Google" rel="tag">Google</a>, <a class="performancingtags" href="http://technorati.com/tag/Big Brother" rel="tag">Big Brother</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ddj.co.za/archives/21/are-we-giving-google-etc-too-much-power/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
