tag:blogger.com,1999:blog-73010689550757962262024-03-12T23:39:16.092+00:00Shane's Software on the sideShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.comBlogger37125tag:blogger.com,1999:blog-7301068955075796226.post-90143741741531475232020-07-08T09:00:00.000+01:002020-07-10T16:00:39.899+01:00Irish Covid Tracker App - Audit<span style="font-family: inherit;">Just a quick note, I went over the code base for the new covid app. There's some issues with it e.g. lack of tests and some code quality issues that you'd probably find in any app but from a data privacy and security point of view it looks good.<br /><br />Honestly we should make open sourcing of new government apps mandatory, it's amazing to be able to audit something like this and trust that it's doing what they say it's doing. I really don't think I could have used something like this without this level of transparency. <br /><br />Highly recommend anyone who hasn't already download the app, the more people who use it the better it will work.<br /><br />App:<br /><br />https://covidtracker.gov.ie/<br /><br />Code:<br /><br />https://github.com/HSEIreland</span>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com2tag:blogger.com,1999:blog-7301068955075796226.post-14139778419544023202017-01-04T15:31:00.002+00:002017-01-04T15:56:49.845+00:00SailBike Dublin probaby my last Sailfish app<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEichzFD75dOQGqJSN2_jp5ByyBY6_jCrjhLDkLO3vDTTtKkYP1qoGQMXDV6wfL-I59t5Nh68oPv0scXdFUzOqyH9eXajRNYHu3Qa_kG3uF23T7FjC90qi8Crr8Nf7ad_pgSYdBt_25CIxkz/s1600/dublinbike.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEichzFD75dOQGqJSN2_jp5ByyBY6_jCrjhLDkLO3vDTTtKkYP1qoGQMXDV6wfL-I59t5Nh68oPv0scXdFUzOqyH9eXajRNYHu3Qa_kG3uF23T7FjC90qi8Crr8Nf7ad_pgSYdBt_25CIxkz/s200/dublinbike.png" width="128" /></a>In the recent Haapajoki 2.0.5.6 Sailfish update, certain location and mapping APIs were removed. This had consequences for several apps but specifically it broke <a href="https://openrepos.net/content/sthocs/bikeme">BikeMe</a>, the app which I was using to check whether there was bikes available on the dublin bikes scheme. I'm sure this will be fixed soon by the author of BikeMe as there has been regular updates to the app but as I use dublin bikes on a daily basis I needed a replacement.<br />
<br />
First, I looked at "CityBike'me" but unfortunately the dublinbikes datasource appeared to be broken in this app so I decided to roll up my sleeves and write my own. I thought that since BikeMe would be fixed soon enough. I'd only need something simple for my own needs and MVP to get through the time while BikeMe wasn't working. So I found an <a href="https://api.citybik.es/v2/">API</a> to use and decided I just wanted a list of stations with how many bikes/spaces were available with a quick station view to how extra information like how old this information was and the location on the station on a map. <br />
<br />
A couple of hours, hacking about later I came up with SailBike Dublin, screen shots and a link to the github repo can be seen below. It's very much a stop gap but hopefully it helps a few other people out as well, I've released it on the Jolla harbour it'll be up as soon as it's passed QA. As with all software which I release opensource, it's MIT licensed. If anyone needs one for their city, let me know. It's fairly trivial to make a version which isn't Dublin specific.<br />
<br />
Unfortunately as I've recently dropped my Jolla (cracking it's screen) and missed out on the Jolla C device program this will most likely be my last app for Sailfish OS. Unless of course, the program reopened before I end up replacing my Jolla with an Android phone.<br />
<br />
Github: <a href="https://github.com/ShaneQful/SailBikeDublin">https://github.com/ShaneQful/SailBikeDublin</a><br />
<br />
Screenshots:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW37b92UmBBusMOe9tgUbWic99AoKh1uE5bp86j5q5F7MLLluxZeTgfmbOQwLW3Pc1dYftEnFdRWu_zOsBO-5iMOok1vcHawOaf6GemDDM0up1bBN4XgYGdvy5OAR0QIvROgdrmX0TRZQt/s1600/20170104005532.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW37b92UmBBusMOe9tgUbWic99AoKh1uE5bp86j5q5F7MLLluxZeTgfmbOQwLW3Pc1dYftEnFdRWu_zOsBO-5iMOok1vcHawOaf6GemDDM0up1bBN4XgYGdvy5OAR0QIvROgdrmX0TRZQt/s320/20170104005532.png" width="180" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGX_xq9X423mGrk9awOUvSKbki8j-o_Qmi_XqSJXXH6rh4htAraJHoXZBmOJ9tnee8e6PWSO0ihJes6ZYyMVa9uupHc9g2wY-nTblkcBll4ORUA59zWUbslFfoMHg_V1trPQmf3xwyw4tG/s1600/20170104023000.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGX_xq9X423mGrk9awOUvSKbki8j-o_Qmi_XqSJXXH6rh4htAraJHoXZBmOJ9tnee8e6PWSO0ihJes6ZYyMVa9uupHc9g2wY-nTblkcBll4ORUA59zWUbslFfoMHg_V1trPQmf3xwyw4tG/s320/20170104023000.png" width="180" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-zU6-aWQSIPutAYYI0IavSlDuK9RNgyPd54i-DbZkOkc7bTFUwI_28-MnzeTWqkO7Fkeo4r0VzexRKB5Nfmz4lGnGPMfamBAcuZsJYSmVqFPXJsnCfGwQvl_-zUpGAS1GS8Rs0IJwJwf/s1600/20170104005601.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-zU6-aWQSIPutAYYI0IavSlDuK9RNgyPd54i-DbZkOkc7bTFUwI_28-MnzeTWqkO7Fkeo4r0VzexRKB5Nfmz4lGnGPMfamBAcuZsJYSmVqFPXJsnCfGwQvl_-zUpGAS1GS8Rs0IJwJwf/s320/20170104005601.png" width="179" /></a></div>
<span class="separator" style="clear: both; text-align: center;">
</span>
<span class="separator" style="clear: both; text-align: center;">
</span>
<span class="separator" style="clear: both; text-align: center;">
</span>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com2tag:blogger.com,1999:blog-7301068955075796226.post-69961780484471038042016-05-13T19:50:00.001+01:002016-05-13T19:50:28.047+01:00Recovering my Jolla from a boot loop<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz4DzquXNRx3AUb6ghIz-N6PxlFpQQd_DnQpHLpLxr1bjy7_lwQfNoIx0QLVhsGEwCRwrRHT7oM6tNiJ-mIzEvoKUoA9gtZFawQ62vYAGLShezn1zBZkU1l6uBaW58hkKc-UYddznPAM0O/s1600/Screenshot+from+2016-05-13+19%253A46%253A11.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="197" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz4DzquXNRx3AUb6ghIz-N6PxlFpQQd_DnQpHLpLxr1bjy7_lwQfNoIx0QLVhsGEwCRwrRHT7oM6tNiJ-mIzEvoKUoA9gtZFawQ62vYAGLShezn1zBZkU1l6uBaW58hkKc-UYddznPAM0O/s320/Screenshot+from+2016-05-13+19%253A46%253A11.png" width="320" /></a>Recently while I was updating my Jolla phone to the latest release. I was asked to optimize the space left of the disk before updating. I did this but my phone got powered off during this process and once it was charged again it went into a bootloop. That is to say that it booted with the Jolla logo and then went to a blank screen and never went further.<br />
<br />
Upon investigating the issue, I found that the Jolla file system is btrfs and that it was during a btrfs operation the device got turned off causing some file system issues. I read over Jolla's instructions on how to reset the device to factory settings available <a href="https://jolla.zendesk.com/hc/en-us/articles/204709607#4">here</a> but I didn't want to reset my device as it had quite a bit of valuable data on it. Luckily they had instructions on how to recover that data available <a href="https://jolla.zendesk.com/hc/en-us/articles/202514138">here</a>. These instructions worked for getting data off the device although it took several trips due to the size of my SD card. As an aside always have a backup .vault file on your Jolla it will make this process easier , I didn't and I wonuld have had to write code to retrieve my contacts and message from SQLite DBs had I not been able to fix the device.<br />
<br />
Once I had my data safely off the device, I wanted to remove some of it to attempt a btrfs recovery. In order to see if I could get the device back in working order without a factory reset. However the file system which I had mounted using the instructions in the article wasn't writable so I couldn't delete any data. Eventually I found that I could mount the file system like so<br />
<br />
<script src="https://gist.github.com/ShaneQful/74441b99a09635b8b6204d77d428eed0.js"></script>
<br />
<br />
Which mounted the file system as writable, I then removed my Videos folder as it was safely backed up and would remove 2GB of space form the device. Then I ran sync and umount commands to make sure it was gone and to unmount the file system. Once I had done this I used option 5 in the recovery console to attempt a btrfs recovery and then I rebooted the device, it took a little while longer than usual to reboot but it's now back to normal and working as expected.<br /><br />I hope this helps anyone else experiencing similar issues.ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-28368776315565183312016-05-04T00:17:00.000+01:002016-05-04T00:17:54.993+01:00Using GPG as a Last Pass AlternativeI use Last Pass on my laptop but have recently been thinking of moving away from it. There have been several reasons for this e.g.<br />
<ul>
<li>Breaking accessibility in my browser</li>
<li>Lack of secure clients for some of my devices (Sailfish OS & Ubuntu Touch)</li>
<li>I wish they were open about their algorithms</li>
</ul>
but I don't want this to be an anti Last Pass article, for some people it works very well and it's certainly better than reusing the same password on different sites.<br />
<br />
My solution is a simple one, since all of my devices have a command line with gpg installed just use gpg to encrypt my passwords. I can then sync this encrypted file between all of my devices. Below you can see how to do this, in case it's something your thinking of doing yourself:<br />
<br />
<br />
<script src="https://gist.github.com/ShaneQful/6979977b4196867e4cf7b8843255e1dc.js"></script>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-10314869272363511272016-05-01T18:40:00.001+01:002016-05-02T12:56:42.382+01:00uRoku for Ubuntu TouchI've just released the first version of uRoku, a Roku remote app for Ubuntu Touch. It gives the user a remote interface along with a keyboard and the ability to launch Roku apps from their Ubuntu device. It's written using the Ubuntu Cordova SDK because the QML SDK won't work on Ubuntu 14.04. I may re-write it in QML later. It's MIT licensed and available on github and the Ubuntu app store now.<br />
<br />
Github: <a href="https://github.com/ShaneQful/uRoku">https://github.com/ShaneQful/uRoku</a><br />
uApp Exploerer: <a href="https://uappexplorer.com/app/uroku.shaneqful">https://uappexplorer.com/app/uroku.shaneqful</a> <br />
<br />
Screenshots:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7WI3jNTfq5uJmFXl3VDb4f-ae1mTVnUKcHvxnuGeZblUaeJrK5j_QLHGb6cPPem3TE5rIZhTQexhyqXJIbaxtrVykOyjNnpMSyU_kh99Z7khfCAKa9KuLOZqPu3c2RcJCS5heBWVrNsyt/s1600/screenshot20160428_004924834.png" imageanchor="1"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxpIwJHyU8VaQ0C0FwdZNBNO1oghAg0aJB8xj4hu8O_FRR-A4hWR0nB19tVtHesTpPyKSjEEoM4FgR9UG84KB8sZof4xafPiJm0lCE5I2VOq45Ye7F14Sc7OF1lLcD03RCS-WfYDlc9mAg/s1600/screenshot20160428_004854115.png" imageanchor="1"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxpIwJHyU8VaQ0C0FwdZNBNO1oghAg0aJB8xj4hu8O_FRR-A4hWR0nB19tVtHesTpPyKSjEEoM4FgR9UG84KB8sZof4xafPiJm0lCE5I2VOq45Ye7F14Sc7OF1lLcD03RCS-WfYDlc9mAg/s400/screenshot20160428_004854115.png" width="400" /> </a><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqnPkYhhbWkLWNdzidO0JKpL_SXFbAEmpWXzMSIL2I62nq-IGp-sNNNQvioMc5ZErnYj-wm4GBhyAQOJWGggfYY7HCgRXYiDUc0k7Ke8D7Z0DoGTXsGTI3dWlhyShyMXshXfWfqn80wSj7/s1600/screenshot20160428_004924834.png" imageanchor="1"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqnPkYhhbWkLWNdzidO0JKpL_SXFbAEmpWXzMSIL2I62nq-IGp-sNNNQvioMc5ZErnYj-wm4GBhyAQOJWGggfYY7HCgRXYiDUc0k7Ke8D7Z0DoGTXsGTI3dWlhyShyMXshXfWfqn80wSj7/s400/screenshot20160428_004924834.png" width="400" /></a><a href="https://github.com/ShaneQful/uRoku"></a>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-6217359319612340852016-03-24T00:27:00.000+00:002016-03-25T11:54:21.260+00:00Bash to audit your npm dependenciesWith the issues surrounding <a href="https://news.ycombinator.com/item?id=11340510">npm today</a>, I thought it would be interesting to write a bash one liner to see how many stars on github each dependency in my project's dependency tree has. The bash is below, it's only real dependencies are curl and npm. A word of warning, it does take quite sometime to run especially if you have lots of dependencies.<br />
<br />
<br />
<div style="width: 570px; word-wrap: break-word;">
<span style="font-family: "courier new" , "courier" , monospace;">npm ls | grep -oP "\w[^@]+@" | sed s/@// | sort |uniq | awk '{print "npm view " $1 " repository.url"}' | sh | grep -oP "github(\w|\W)+\.git" | sed 's/.git//g' | sed 's/.com/.com\/repos/g' | awk '{print "curl -s \"https://api."$1"\" | grep -P \"(stargazers_count|full_name)\" "}' | sh
</span></div>
<br />
<br />
Gist: <a href="https://gist.github.com/ShaneQful/aa265f9ef87449b945b1">https://gist.github.com/ShaneQful/aa265f9ef87449b945b1</a><br />
<br />
<br />
In regards to my opinion on the situation, the behavior of some of the individuals was clearly childish at best and everyone who was stung by the situation should be a little more careful about their dependencies. ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-61598742973180596152015-01-03T02:47:00.000+00:002015-01-03T03:41:03.964+00:00"MerSDK" not starting ... enable VT-x in your BIOSSo I haven't updated my SailBusDublin app in a little while because my dev tools were broken. I was getting an error:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">Error connecting to "MerSDK" virtual machine: Failed to start virtual machine "MerSDK" </span><br />
<br />
At first I thought I haven't done anything other than update the tools and was a little annoyed at jolla for breaking them but then I came to my senses, people were clearly publishing apps on the store so it was probably an issue on my end.<br />
<br />
I figured it was something easily fixable so did a little googling and couldn't find anything.This is not as weird as you might think given the size of the developer community so I decided I'd leave it a little while and someone else would run into the problem and fix it (the it's a side project and I'm being lazy approach) but alas while some people ran into <a href="http://forum.jollausers.com/sailfish-developers/failed-to-start-virtual-machine-%27mersdk%27/">it</a>, no one seemed to fix it. So I decided to put the effort in and debug the issue.<br />
<br />
It's fairly clear from that error that it's an issue with the VM so I opened virtual box rather than bother with QtCreator again and tried to start the VM and got an error about intel's VT-x which was weird because I didn't remember making any changes to my laptop in regards to virtualization. Anyway found some redhat docs on the issue:<br />
<br />
<a href="https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html">https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html</a><br />
<br />
and went into the BIOS and turned it back on and voila the "MerSDK" VM started and I was back up and running.<br />
<br />
I think I turned it off at some point because of a security issue with VT-x but the only <a href="http://seclists.org/fulldisclosure/2010/Mar/550">issue I can find of the <span id="goog_30444455"></span>subject<span id="goog_30444456"></span> </a>can't be exploited on my laptop because it's 64-bit running a 64-bit host. That said if your running a 32-bit host be careful of the VM's you use if you re-enable VT-x. ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-85188969375142452032014-04-05T21:00:00.004+01:002014-04-05T21:17:02.721+01:00Ubuntu One shutting down and what that means for the KDE plugin<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPsjMGZCbPjijmiCibGtOEUBe-y-7NNVkDv8rU01qjGpwL1yXNcG2pjS6_WOiGYDHpYVSf154hfwQdJ-vw6vpBGw1t4N-SDoGdSnU5Mt_iWzJg_fy66-L-HxQTbAp1STwFtmAbmEg97fdK/s1600/ubuntuone-installer.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPsjMGZCbPjijmiCibGtOEUBe-y-7NNVkDv8rU01qjGpwL1yXNcG2pjS6_WOiGYDHpYVSf154hfwQdJ-vw6vpBGw1t4N-SDoGdSnU5Mt_iWzJg_fy66-L-HxQTbAp1STwFtmAbmEg97fdK/s1600/ubuntuone-installer.png" height="200" width="200" /></a>I have recently learned that Ubuntu One will be shutting down on June first, with data accessible for another 2 months after that.<a href="http://blog.canonical.com/2014/04/02/shutting-down-ubuntu-one-file-services/"> See Canonical's Post for more details ...</a><br />
<br />
This is a little sad for me as I have enjoyed using the service and trusted Canonical with my data, a lot more than a great many other companies. So much so, that I wrote a plugin which allowed KDE users to access Ubuntu One through Dolphin. I intend to put an updated version of the plugin on the <a href="http://opendesktop.org/content/show.php/Ubuntu+One+Dolphin+Plugin?content=152035">opendesktop.org</a> which notifies users of this decision and I will pull the plugin on the first of June when the service goes down. The code will remain avaible under the MIT license on github if anyone wants to use it for their next cloud storage solution.<br />
<br />
I want to thank all my users for being so nice when reporting feedback, be they bugs or compliments they were always polite and informed. I would also like to thank Canonical for a wonderfully reliable service and thank them for <a href="http://beuno.com.ar/archives/318">opensourcing the back-end</a> now that they are shutting down said service.<br />
<br />
I wish everyone the best of luck if finding a new cloud storage solution, I think I will be using this opportunity to switch to a service with client side encryption by default. I whole heartedly recommend others do the same. ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-78230387535252043012014-03-23T23:49:00.002+00:002014-03-24T00:02:56.591+00:00SailBus DublinJust a quick post to announce I've released an app for the new <a href="http://jolla.com/">Jolla</a> smart-phone. "SailBus Dublin" is a bus tracking app for Dublin city based off the <a href="http://www.nationaltransport.ie/">National Transport Authority</a>'s new <a href="http://dublinked.com/datastore/datasets/dataset-300.php">Real Time Information System(RTPI) API</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6W1mr3aEtMU-pVm63ZydQuJeoVMkjn4mLmI0c6fyfzKh95b-DlTzPPH9yzqywKAI4gguZ8CJgpuZ9zKqKooapPYjzLxwFjU4CLBmtDNxRzNi0gu7-r_p7yyypy7f0-zAb8EgyBXoQg_NW/s1600/20140109223021.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="Screen Shot of SailBus Dublin" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6W1mr3aEtMU-pVm63ZydQuJeoVMkjn4mLmI0c6fyfzKh95b-DlTzPPH9yzqywKAI4gguZ8CJgpuZ9zKqKooapPYjzLxwFjU4CLBmtDNxRzNi0gu7-r_p7yyypy7f0-zAb8EgyBXoQg_NW/s1600/20140109223021.jpg" height="320" title="Screen Shot of SailBus Dublin" width="180" /></a></div>
It is free and open source, the code is available on <a href="https://github.com/ShaneQful/SailBusDublin">github</a> and <a href="https://bitbucket.org/ShaneQful/sailbus-dublin">bitbucket</a>. I'll probably write a post in the future about how it all works but for the moment I'll just list a few of the features and say a big thank you to the National Transport Authority and Dublinked for giving me API access.<br />
<br />
<b> Features:</b>
<br />
<ul>
<li>Realtime information about bus arriving to stops</li>
<li>Route information i.e. stops on a route</li>
<li>Stop Location</li>
</ul>
I'll be adding plenty more features at a later date but this should give user the basic functionality they need from an app such as this. ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-39730766451178599422014-02-22T23:38:00.003+00:002014-02-22T23:44:20.978+00:00Making sites accessible one step at a timeThere is a section of society that many of us as developers don't consider when making our applications, those who have a disability. We often represent information with colours or images not thinking of how it may affect a visually impaired user using a screen reader or unknowingly break the tab flow to make keyboard use of an application impossible.<br />
<br />
I have the privilege of working for a company which only produces accessible applications but I would like this ethic to rub off on some of my personal projects.<br />
<br />
In the next series of posts, I'm going to make my blog accessible and explain how I did it and what tools I used to do it hopefully giving insights for others into a how to make their applications accessible. In order to do this I will be making this site <a href="http://www.w3.org/TR/WCAG20/">WCAG 2.0 compliant</a>.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOIrS7Ms_nJw9FwAJVSVQFAnaZLgT5udtQwymX3LejOd7p6tjCGXsKDol1NNaPcqZJayy6kooHng5vyZLH9QuRX6UGpbBewMLA_UMRkRY8LdznTmaggv5JhSHWDOiW_5XEC1dypzcoQZZ1/s1600/blog1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="A picture of the colour contrast checker used to check the blog" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOIrS7Ms_nJw9FwAJVSVQFAnaZLgT5udtQwymX3LejOd7p6tjCGXsKDol1NNaPcqZJayy6kooHng5vyZLH9QuRX6UGpbBewMLA_UMRkRY8LdznTmaggv5JhSHWDOiW_5XEC1dypzcoQZZ1/s1600/blog1.png" height="282" title="A picture of the colour contrast checker used to check the blog" width="320" /></a>The first step in this process is to tweak the colour scheme of the site in order to be WCAG compliant. Which is to say, having a greater than 4.5 contrast between all text and it's respect background and make sure the link colour has a greater than 3.0 contrast with the surrounding text.<br />
<br />
In order to find the issues with the site I used a <a href="http://firefox.cita.illinois.edu/">firefox plugin</a>, luckily once the issues were found it wasn't much work to fix them and the blog's theme by default was mostly accessible as only two pieces of text had to be changed to a darker colour. The main issue was the github gist iframe I use to display code snippets, unfortunately this had several issues with the area surrounding the code surface. In order to fix these issues, I hid the bottom bar and added CSS to darken the line numbers on the side. I'll have to add an attribution to github somewhere else in the site.<br />
<br />
There you have it a small change which will help a certain demographic of visually impaired users to use my site more effectively. In my next post I'll be discussing keyboard usability.ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-76626710879701845172014-01-11T15:52:00.003+00:002015-01-04T21:23:10.513+00:00Jolla - ReviewSo two days before Christmas my long awaited Jolla, a new smart phone created by the Finnish startup Jolla, arrived. First impressions were great, it was pretty, the battery lasted me more than a day and the android app compatibility seemed to work really well. Unfortunately due to the hectic Christmas season I didn't get to play with it very much but it did perform flawlessly in it's primary role as a phone.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxKq2vQuT-Okq1Fy4dpBJYeQiFFH4FF_mpM409FvQbSrKiUVAS3sxaks8vPPUKzdtNjPIuKecjY2zGU7k-o6xO5D2tImc7G7Ke-mvvJUAF-ghOqg_RGd7rUUnjT5rs6i_A_fzQIiHNE-Ac/s1600/20140111154812.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxKq2vQuT-Okq1Fy4dpBJYeQiFFH4FF_mpM409FvQbSrKiUVAS3sxaks8vPPUKzdtNjPIuKecjY2zGU7k-o6xO5D2tImc7G7Ke-mvvJUAF-ghOqg_RGd7rUUnjT5rs6i_A_fzQIiHNE-Ac/s1600/20140111154812.jpg" height="320" width="180" /></a>After new years and things had quieted down a bit in life, I started to play about with it more:<br />
<ul>
<li>Setup email</li>
<li>Install Humble Bundle for Android games</li>
<li>Add more than just an album or two to the music library</li>
<li>Use the Maps app</li>
<li>Write software for the device (because this blog isn't called software on the side for nothing)</li>
<li>etc ... </li>
</ul>
Unfortunately issues did start to appear :<br />
<ul>
<li>Some music didn't get indexed properly and wouldn't show up in the media app</li>
<li>Sound stopped working for android apps</li>
<li>Camera didn't work for android apps</li>
<li>MTP is a bit flakey(not sure if this is a Jolla problem or and issue with my Kubuntu install) </li>
</ul>
Luckily I was well aware when I bought the device that some of the software was of beta quality so I didn't mind too much. They seem to give me a software update a week, so I can't really complain too much at least in comparison to other mobile operating systems(I'm looking at your every vulnerable android I've owned). In fact one of the updates has already fixed the camera. Given the pluses of the phones e.g. unique gesture based UI and proper multitasking, I can easily forgive these bugs especially since they will probably be fixed soon and I have found work arounds for every one of them.<br />
<br />
<u><b>Music Issue:</b></u><br />
I recommend you check out tracker-control on the command line it seemed to work for some people over at <a href="https://together.jolla.com/question/7449/bug-media-player-cant-find-music-on-re-boot/">together.jolla.com</a>. It only worked partially for me so I wrote a little bash to generate play-lists for artists which the indexer didn't pick properly. <br />
<br />
<script src="https://gist.github.com/ShaneQful/385f94786a1880260531.js"></script><br />
<br />
Too fully understand this have a look at the <a href="http://en.wikipedia.org/wiki/PLS_%28file_format%29">PLS format</a> it's not a very interesting read but if you ever want to create a PLS file without a media application it may be of some use.<br />
<br />
<b><u><br />Sound issue for Android Apps:</u></b><br />
<br />
You need to become root using devel-su and then run this :<br />
<br />
<script src="https://gist.github.com/ShaneQful/4585f498f9c8dd588c6e.js"></script><br />
<br />
to restart the alien dalvik VM.<br />
<br />
<a href="https://together.jolla.com/question/4101/android-apps-loses-audio-resolved/">Source</a><br />
<br />
<b><u>MTP File Transfer Issues:</u></b><br />
<ul>
<li>SSH</li>
<li>Rsync</li>
<li>Ubuntu One for Android</li>
<li>etc..</li>
</ul>
Hopefully this article helps out some users that are having issues but I'd rather conclude on a positive note.
Jolla is awesome, you really have to use it for a day or two to realize how easy it is to use but if your not convinced and don't want to do this that's ok but I'll be shocked if I ever see an Android or IPhone with a UI this well designed. ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-55618492611860354382013-07-22T22:29:00.000+01:002013-07-22T22:39:45.672+01:00Ubuntu on the Edge of Success<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVJ3TYoqVfSK2yH4m3WOqK7ZR7q2rVeDhVyj7TsXNvWGOqnB2KSvuJtkhHFLaU3Fc6hFz_8sphyefwv-zxYNbYE4OU3-wPYyEnzd5QNfmoxxaMxWhRGcJOHXOd_Dkz9ETA-uYkYVXR4KKf/s1600/edge-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVJ3TYoqVfSK2yH4m3WOqK7ZR7q2rVeDhVyj7TsXNvWGOqnB2KSvuJtkhHFLaU3Fc6hFz_8sphyefwv-zxYNbYE4OU3-wPYyEnzd5QNfmoxxaMxWhRGcJOHXOd_Dkz9ETA-uYkYVXR4KKf/s640/edge-2.jpg" width="550" /></a></div>
<br />
<br />
My eyes have been glued to Canonical's <a href="http://www.indiegogo.com/projects/ubuntu-edge">crowd funding campaign</a>, to create Ubuntu Edge. A top of the line limited edition smart phone packed with technologies everyone is too scared to ship. They are asking for a lot, 32 million dollars, in order to produce 40,000 incredibly awesome Ubuntu Touch devices. The specs of the devices are stunning:<br />
<ul style="background-color: white; font-size: 16px; line-height: 25px; margin: 1em 0px; padding: 0px 0px 0px 40px;">
<li><span style="font-family: inherit;">Fastest multi-core CPU, 4GB RAM, 128GB storage</span></li>
<li><span style="font-family: inherit;">4.5in 1,280 x 720 HD sapphire crystal display</span></li>
<li><span style="font-family: inherit;">8mp low-light rear camera, 2mp front camera</span></li>
<li><span style="font-family: inherit;">Dual-LTE, dual-band 802.11n Wi-Fi, Bluetooth 4, NFC</span></li>
<li><span style="font-family: inherit;">GPS, accelerometer, gyro, proximity sensor, compass, barometer</span></li>
<li><span style="font-family: inherit;">Stereo speakers with HD audio, dual-mic recording, Active Noise Cancellation</span></li>
<li><span style="font-family: inherit;">MHL connector, 3.5mm jack</span></li>
<li><span style="font-family: inherit;">Silicon-anode Li-Ion battery</span></li>
<li><span style="font-family: inherit;">64 x 9 x 124mm</span></li>
</ul>
I'm definitely going to picking one up but unfortunately I have to wait till pay day thereby forgoing the day one 600 dollar price tag. They go up to 800 dollars after the first day :(<br />
<br />
What's truly insane about this is that they not only have to break nearly every crowd funding record ever set in this attempt but they are on course to do so and then some. When I returned from work at 7:40 they were at about 770,000 dollars as I write this post at 22:10 t<span style="font-family: inherit;">hey are at 1,430,000 dollars. That means in about four and a half hours they have raised 660,000 dollars at a rate of 146,666 dollars every hour. At that rate they will reach their goal in a little over a week. </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">That said I think some of this has to do with the first day offer of a $600 device instead of paying $800 dollars but it is never the less promising and if they hit their goal it will send shock-waves through both the software and mobile industries. </span><br />
<br />
<span style="font-family: inherit;"></span><br />
<div style="text-align: center;">
<iframe frameborder="0" height="486px" scrolling="no" src="http://www.indiegogo.com/project/461046/widget" width="224px"></iframe></div>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com3tag:blogger.com,1999:blog-7301068955075796226.post-79003077203634241512013-06-01T19:31:00.000+01:002013-06-01T19:31:01.254+01:00Phone Gap's Build Service is AwesomeIf you haven't heard of <a href="http://phonegap.com/">Phone Gap</a> before it's a framework for turning HTML5 applications into mobile applications. I've used it before by downloading the SDK and building apps for both Android and iOS using mainly javascript with a small bit of native code. It's a pretty awesome piece of tech although it can tend to be a bit slow.<br />
<br />
Today was the first time I used <a href="https://build.phonegap.com/">Adobe's Phone Gap Build Service</a> and I have to say I was extremely impressed. Firstly it's free for opensource apps, it took maybe 2 minutes to setup, integrate with <a href="https://github.com/">Github</a> and suddenly I had an application targeting :<br />
<br />
<ul>
<li>Android</li>
<li>Windows Phone</li>
<li>Symbian </li>
<li>Blackberry</li>
<li>webOS</li>
</ul>
Obviously if your using the build service you can't take advantage of native code but still it's pretty epic. I now have an app for several platforms I've never developed for and all I did was point a web page at a git repo. They also give you one private application for free so if you want your HTML5 app on some platforms you'd otherwise never touch with a fifty foot rusty barge pole give it a go. You can see an example download page for my <a href="http://www.softwareontheside.info/2013/05/open-jog-alpha.html">Open Jog</a> app below.<br />
<br />
<div style="text-align: center;">
<a href="https://build.phonegap.com/apps/422586/share">Open Jog for all the Platforms</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://build.phonegap.com/apps/422586/share"><img border="0" height="245" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ-Nvs3PnjHno_hwrE8jAWdI3tit6VbOsKwBuVe_0vmpjHb5N-Cb5D7CnY67Okx3Ol0ZZOABRxgVqT4Kw-YwdrGYhyphenhyphenQVkCzIFW0kzSIpv_XJO8MITV4GRlL6-3VfgkxRRhUaj36LaUuq-B/s320/Screenshot+from+2013-06-01+19:27:57.png" width="320" /></a></div>
<br />ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-23755957971616768202013-05-27T02:40:00.003+01:002014-01-12T19:40:18.954+00:00Jolla, Vivaldi what do think of Ubuntu ?Just pre-ordered a new <a href="http://jolla.com/">Jolla</a> phone one of the successors to Meego and <a href="http://maemo.org/">Maemo</a>, who's devices I liked so much. It looks awesome and I can't wait to have proper Linux phone. Their launch is especially important for me due to a fall that caused the touch screen on my N810 to break and become almost unusable. Luckily the display itself still works just fine so I'll probably just use it in a hobby project or something.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6WyaffuDY_AiZeVbvD_9T9t__GCbtHlQFHzSjI0zDB-FRldUXDGmZ4Jg-_2buqiGeFCG33NEOfICSA9AwttomQQ0Ez8KLtwtMbHHSRWlfVTHMhUV2EylutkED1kvLbZ5aU4j0S47z-Lgu/s1600/wide_Jolla_devices.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6WyaffuDY_AiZeVbvD_9T9t__GCbtHlQFHzSjI0zDB-FRldUXDGmZ4Jg-_2buqiGeFCG33NEOfICSA9AwttomQQ0Ez8KLtwtMbHHSRWlfVTHMhUV2EylutkED1kvLbZ5aU4j0S47z-Lgu/s640/wide_Jolla_devices.png" width="570" /></a></div>
<br />
So you'll probably see some <a href="http://qt-project.org/">Qt</a> apps on the blog in the not to distant future. Hopefully targeting not just Jolla but <a href="http://www.ubuntu.com/phone">Ubuntu Touch</a> and <a href="http://makeplaylive.com/">KDE's Vivaldi Tablet</a>. All these other platforms do have me a little worried. Mainly in regards to which one do I want to support or more to the point which one can I support since I won't have the money to buy all three devices not to mention a Firefox OS phone. I'm slightly scared the amount of emerging platforms at the moment may make it difficult for any one of them to even get the sort of community support that went behind the Nokia N900. I think the only way to make sure they survive is to buy the first that comes out and if I have the money and it's not to wasteful the second. Here's hoping the first is a phone and the second is a tablet.<br />
<br />
There are several reasons these set of open platforms may stand a greater chance than those that came before:<br />
<div>
<ul>
<li>The main development platform is Qt and Qt is awesome, many of my favorite applications are Qt apps e.g. Skype, Kate</li>
<li>If they sort out their SDKs they should be either compatible or easily portable. Meaning, if target all of them and some fail so long as one succeeds we as developers should be able to have a viable revenue stream regardless of which platform succeeds.</li>
<li>The community is bigger and more organized, there seems to be more Linux users and r/linux pushes a lot more traffic than it used too.</li>
</ul>
<div>
Needless to say, I hope every one of these platforms succeeds but if they don't, I really hope at least one of these truly thrives. The real question is which platform the community and the public as a whole will get behind and which will succeed.</div>
<div>
<br /></div>
</div>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-56183299573840121822013-05-18T18:00:00.002+01:002013-05-18T18:00:16.718+01:00Open Jog AlphaI'm launching a new project in order to get me fit. It's called OpenJog although the name is pending review. It's a HTML5, Jquery Mobile Application to help joggers and other athletes stick to their training schedule. In particular it's helping me complete<a href="http://www.coolrunning.com/engine/2/2_3/181.shtml"> couch to 5k</a> at the moment. The major features at the moment :<br />
<br />
<br />
<ul>
<li>Display of workouts which change as activities are completed</li>
<li>Sound alerts for when you should switch activities</li>
<li>Many more to come ....</li>
</ul>
<div>
It's all open source(MIT Licensed) and up on <a href="https://github.com/ShaneQful/OpenJog">github</a>. An example can be seen <a href="http://shaneqful.github.io/OpenJog/app.html">here</a>.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Pf0xQZySTOKMeHvfe6pDZfqKF3T1JGqmAU18-C-Pis-FsYN2j3yAgkb8DOSxTgflfelhHEMG94JblSDSoCFuKWqk-qApF8AcMQRa08okGK6hyphenhyphen522QbEebmNNUnvmL84WhX_s9KlGN4ds/s1600/OJ1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Pf0xQZySTOKMeHvfe6pDZfqKF3T1JGqmAU18-C-Pis-FsYN2j3yAgkb8DOSxTgflfelhHEMG94JblSDSoCFuKWqk-qApF8AcMQRa08okGK6hyphenhyphen522QbEebmNNUnvmL84WhX_s9KlGN4ds/s320/OJ1.png" width="212" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Pf0xQZySTOKMeHvfe6pDZfqKF3T1JGqmAU18-C-Pis-FsYN2j3yAgkb8DOSxTgflfelhHEMG94JblSDSoCFuKWqk-qApF8AcMQRa08okGK6hyphenhyphen522QbEebmNNUnvmL84WhX_s9KlGN4ds/s1600/OJ1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghPuHee3K-_BnWkGtuN2uYW3EhwInnXLHOEhyphenhyphenqZ6MXVYZLavnfSJSErUX2sfN5_2e6kUiuIaq-err4OIOg0PMnIh0dSPiOI2zbxUjOigd8h0iJxs9eDeS1v6ic9xtfTXaNgTnxfK6DPgbr/s1600/Screenshot+from+2013-05-18+17:52:49.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghPuHee3K-_BnWkGtuN2uYW3EhwInnXLHOEhyphenhyphenqZ6MXVYZLavnfSJSErUX2sfN5_2e6kUiuIaq-err4OIOg0PMnIh0dSPiOI2zbxUjOigd8h0iJxs9eDeS1v6ic9xtfTXaNgTnxfK6DPgbr/s320/Screenshot+from+2013-05-18+17:52:49.png" width="204" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I'll be working out it for the next little while as I want to release it for firefox OS. If anyone finds any bugs or other issues with it please let me know on the <a href="https://github.com/ShaneQful/OpenJog/issues?state=open">github issues page</a>.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-32946526516126584302013-04-01T14:43:00.004+01:002013-04-01T14:46:49.341+01:00Android App TransaltionAndroid has quite a nice system to allow translation and localization of apps. You store all your strings in an xml file abstracted from your code called strings.xml. You can then provide a different strings.xml for each language you want to support by storing the new strings.xml in a separate values folder. For example, if I translated an app to Irish, I would add a new values folder values-ga as ga is the two letter language code for Irish. Then I would place my new translated strings.xml into that folder.<br />
<br />
Here's an example of how I added Irish language support to my Jupiter Broadcasting app<br />
<a href="https://github.com/ShaneQful/Jupiter-Broadcasting-Android-App/commit/ff2d82609839f44915652bd9c98a49ab889e5bc5">https://github.com/ShaneQful/Jupiter-Broadcasting-Android-App/commit/ff2d82609839f44915652bd9c98a49ab889e5bc5</a><br />
<br />
As you may have noticed from some of<a href="http://www.softwareontheside.info/2012/06/translate-ubuntu-one-kde-plugin.html"> my earlier posts</a>. I'm a great believer in providing software, especially opensource software to users in their own language so I have created a form to allow users to easily translate the JB app to their native tongue.<br />
<br />
<a href="https://docs.google.com/forms/d/1m7tkmIxdvCA9effm-_BAH1azW-EtwZWElOx7qlecchE/viewform">https://docs.google.com/forms/d/1m7tkmIxdvCA9effm-_BAH1azW-EtwZWElOx7qlecchE/viewform</a><br />
<br />
I also encourage anyone who would like to have a slightly more impressive Github profile to copy my example commit and send me a pull request with a strings.xml in a language which you know well*.<br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-size: xx-small;"><br /></span></span>
Another way to get involved in open source translation is to create a launchpad account and start translating your favourite project on <a href="https://translations.launchpad.net/">launchpad</a>. I myself have helped with the translation of Ubuntu's Unity and MojoSetup, an opensource cross-platform installer used by many Humble Bundle games, to the Irish language.<br />
<span style="font-family: Courier New, Courier, monospace;"><span style="font-size: xx-small;"><br /></span></span>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-size: xx-small;"><br /></span></span>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-size: xx-small;"><br /></span></span>
<span style="font-family: Courier New, Courier, monospace;"><span style="font-size: xx-small;">* Please don't just use Google translate I want the experience to be as good as possible for users.</span></span>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-78671148801642826642013-02-11T16:05:00.002+00:002013-02-15T19:10:25.322+00:00KDE is awesome because it can be other DEs<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
KDE 4.10 was released a few days ago so I decided to tell people why KDE is my favorite desktop environment (DE). I was a Gnome 2 user. I loved Gnome 2.32, the last Gnome 2 release I used, it was fast configurable and generally pretty bad ass. These are the same reasons I like KDE except KDE is better because :</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>It doesn't need compiz for fancy effects they're built in. </li>
<li>It's <a href="http://www.phoronix.com/scan.php?page=article&item=ubuntu_1210beta_desktops&num=1" target="_blank">the fastest desktop for gaming</a>, even faster than xfce and lxde. </li>
<li>You can basically make any of the other desktops using KDE. </li>
<li>It is generally more polished than any of the other environments eg. you don't need to use the extra plugins like in Gnome3 but even if you want to they are built in to the menus in KDE. There's no need to go to a random website to download them.</li>
</ul>
In my personal setup, I have an activity for regular KDE setup, a Gnome2 like activity and a Unity like activity. I even installed the <a href="http://www.omgubuntu.co.uk/2012/02/appmenu-runner-the-kde-hud" target="_blank">app menu runner for krunner</a> because I like Unity's HUD but that's the only thing that I use that isn't included in KDE from Kubuntu to get all the setups seen below.<br />
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>KDE 4 Default:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie3UrfSYS0aLrGPlAudzt4Tw5efsN5UIG5zLUDshrm8vDkuYfeOklrszEKuFfYxrZYmawwEu6x6IZMdE2Kcj8F57ZYJ7xjsAz5SlcouvMuCuHsED3Rd5-DasUiLEmdm84LCNOuGsW0oobR/s1600/StandardKDE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie3UrfSYS0aLrGPlAudzt4Tw5efsN5UIG5zLUDshrm8vDkuYfeOklrszEKuFfYxrZYmawwEu6x6IZMdE2Kcj8F57ZYJ7xjsAz5SlcouvMuCuHsED3Rd5-DasUiLEmdm84LCNOuGsW0oobR/s400/StandardKDE.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Gnome 2:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAhduBnttGDFT2XnQb9S42fsH3Rtw257oie69WUIS1vYqQtVjMJWxCKOnV3lH-V027WqwTI919axFcuksnbYdwlpckKfZVd8UAdM1l6KY3WcH3i_LQeYjFjlmfcerXQSNXubGKTkc6Zo_/s1600/KDEGnome2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLAhduBnttGDFT2XnQb9S42fsH3Rtw257oie69WUIS1vYqQtVjMJWxCKOnV3lH-V027WqwTI919axFcuksnbYdwlpckKfZVd8UAdM1l6KY3WcH3i_LQeYjFjlmfcerXQSNXubGKTkc6Zo_/s400/KDEGnome2.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Unity:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfDmAOSyKUNyja6vP8blFF8mpBRpcBxMQvjpW716hmSXj779RZVYdWbsBSk1khMapmhttURWypAymk-M3bu2xE5Qz9Xr7Ilcj4p__iWu0tOqVN5krapHMGSaOwjxiZ1yGwkkHR4RNtCtj2/s1600/UnityKDE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfDmAOSyKUNyja6vP8blFF8mpBRpcBxMQvjpW716hmSXj779RZVYdWbsBSk1khMapmhttURWypAymk-M3bu2xE5Qz9Xr7Ilcj4p__iWu0tOqVN5krapHMGSaOwjxiZ1yGwkkHR4RNtCtj2/s400/UnityKDE.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBrk0X9wbVqhM2_ZaFym3oCgPAsaS7YNCnlr8PIXQljsMRJdD-qymSP5WNT3gWGKZyoZa-Z4yF5xcE8dew8EU4oI0gVT1tD0Bdjz4cttX7cvPBYk_DmEupqlumZSGZvaNYYIcozMa7OSF-/s1600/UnityKDE2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBrk0X9wbVqhM2_ZaFym3oCgPAsaS7YNCnlr8PIXQljsMRJdD-qymSP5WNT3gWGKZyoZa-Z4yF5xcE8dew8EU4oI0gVT1tD0Bdjz4cttX7cvPBYk_DmEupqlumZSGZvaNYYIcozMa7OSF-/s400/UnityKDE2.png" width="400" /></a></div>
<br />ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com17tag:blogger.com,1999:blog-7301068955075796226.post-5738210449774181612013-02-06T09:34:00.000+00:002013-02-06T09:34:35.486+00:00Diary Down, Diary Software based on MarkdownI have been writing diary entries for the last year as part of my project and for other projects. It's a great way of not forgetting anything and I highly recommend it if nothing else other than to keep you sane on larger projects. I have been doing this in <a href="http://daringfireball.net/projects/markdown/" target="_blank">markdown</a>, which is an amazing little language to write in that converts to html.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigN5gIS7Bj5KegD5AHgp1zAaITEB7H5e4cpJe_HxzWRmeo2gvb3sM5DjfEA_fItzVBeD9A9B9_nMa2QD2Mzon5DoTNH3-Tqxp7KLVf1YwvhbTFxn_pQKFYwhFswwJq6sdihcS99ZzF3Kq7/s1600/Screenshot+from+2013-02-06+09:30:00.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigN5gIS7Bj5KegD5AHgp1zAaITEB7H5e4cpJe_HxzWRmeo2gvb3sM5DjfEA_fItzVBeD9A9B9_nMa2QD2Mzon5DoTNH3-Tqxp7KLVf1YwvhbTFxn_pQKFYwhFswwJq6sdihcS99ZzF3Kq7/s1600/Screenshot+from+2013-02-06+09:30:00.png" /></a>I had my diary in a git repo & scp'd the resulting html to a server every time I was finished writing so I could access the info anywhere. Eventually I wanted to index the entries so I wrote a little ruby script to generate a table of contents for me which worked great until I decided to over engineer the crap out of it now it's really awesome. In any case due to it's usefulness for me I decided to open source it so that it may be useful for others.<br />
<br />
It requires:<br />
markdown & ruby & a unix box (It probably won't work on windows)<br />
<br />
Here's<br />
<a href="http://shaneqful.github.com/" target="_blank">An Example Diary</a><br />
<a href="https://github.com/ShaneQful/DiaryDown" target="_blank">The Github for the project</a><br />
<br />
The README on the github show's you how to use the diary. The git & scp stuff have been commented out but they are still in the code if anyone wants to use the features. Play around with the example, re-size the windows, use the key board shortcuts & hopefully you'll see this can be useful for you too.<br />
<br />
<br />ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-11113603511888820782013-01-14T18:44:00.002+00:002013-01-14T18:44:08.098+00:00Quick Command Line TipThis is really just for me in case I forget but it should be helpful to others. The 'notify-send' can be used to send desktop notifications when your program has finished running. This is quite handy for long running commands that you might forget about like dding images or what not.<br />
<br />
<br />
<script src="https://gist.github.com/4532265.js"></script>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-76825610909988885102013-01-11T19:13:00.002+00:002013-01-11T19:23:59.767+00:00My Raspberry Pi Cluster :)<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: start;">
So my final year project is to make a cluster of raspberry pi micro computers to crack encrypted office documents and here is my pi cluster :)<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_01MqMY6KDpioyn_cTjb3jXbvckWZduIRzQSGytYlnIZgOQ6MZw5KBJUhLu9U5fP0uDz5rFqJji6entXtOuWwBhjSJ9nVhH9WA7mGwN-yQMTuvJjA5h0XWeoanzyFLiQgsmc78UwLxcj/s1600/DSC00155.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_01MqMY6KDpioyn_cTjb3jXbvckWZduIRzQSGytYlnIZgOQ6MZw5KBJUhLu9U5fP0uDz5rFqJji6entXtOuWwBhjSJ9nVhH9WA7mGwN-yQMTuvJjA5h0XWeoanzyFLiQgsmc78UwLxcj/s640/DSC00155.JPG" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
The distributed document cracker is based on <a href="http://openwall.com/john/" target="_blank">John the Ripper</a> which I've already started to contribute to</div>
<div class="separator" style="clear: both;">
</div>
<ul>
<li style="text-align: left;"><a href="https://github.com/ShaneQful/npdf2john_ruby">https://github.com/ShaneQful/npdf2john_ruby</a></li>
<li style="text-align: left;"><a href="https://github.com/magnumripper/JohnTheRipper/blob/unstable-jumbo/run/pdf2john.py">https://github.com/magnumripper/JohnTheRipper/blob/unstable-jumbo/run/pdf2john.py</a></li>
</ul>
<div style="text-align: left;">
I have a prototype for distributing John already built and while its not ready for public release everything made as part of this project will be open source once I feel the code is ready. (Probably under the MIT license)<br />
<br />
Below is a gallery of how it got to this state. Sorry about the blurry images, I'm not a great photographer.<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtrFRy8RwtC9DOHEn2K98JzH1723uNGXDNK6GIe8aRlWDX8jPetIcHE6XTf0dOCe69S49iqxPMcMsXa_Tcils1RPNM19F4IvAEgiEb2PyCwF-2cL7C69FkNp1zBsso7cDgqLS1u9GNkHge/s1600/DSC00101.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtrFRy8RwtC9DOHEn2K98JzH1723uNGXDNK6GIe8aRlWDX8jPetIcHE6XTf0dOCe69S49iqxPMcMsXa_Tcils1RPNM19F4IvAEgiEb2PyCwF-2cL7C69FkNp1zBsso7cDgqLS1u9GNkHge/s320/DSC00101.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3bJOMt5rlVLbnv9I8j_wa_ZObwC41oON-Rn5YTeZxqVEoBhTznOFnivpODUDBzwVQ2cldKJURpaTwn4DTyGdLdoiNOijmwz9zZsFfpGPasM6BdVFWv8eKz62H0SIhvWeXznEjgiLSMTXT/s1600/DSC00086.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3bJOMt5rlVLbnv9I8j_wa_ZObwC41oON-Rn5YTeZxqVEoBhTznOFnivpODUDBzwVQ2cldKJURpaTwn4DTyGdLdoiNOijmwz9zZsFfpGPasM6BdVFWv8eKz62H0SIhvWeXznEjgiLSMTXT/s320/DSC00086.JPG" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzfJz6Nkml3ISTWyJuzFAVyM4DVPpJKD0GHBLgAbNmhFDllT6nFiIOOAf-vwto0_jlL6hpcqnCyrBIf0g9sUSZFA8Fr-sxi0Vgo8x9bHE3dU4NV3TiNLgYic44VIa7Shy07r34KtiWjk-/s1600/DSC00127.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIzfJz6Nkml3ISTWyJuzFAVyM4DVPpJKD0GHBLgAbNmhFDllT6nFiIOOAf-vwto0_jlL6hpcqnCyrBIf0g9sUSZFA8Fr-sxi0Vgo8x9bHE3dU4NV3TiNLgYic44VIa7Shy07r34KtiWjk-/s320/DSC00127.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkUihh0DVqGQfHIs0bbmrMiOJIKNKA-aAk3gT_xFptzeXpSzI82MpD3f0HhCNbVsfFnilyRErOy2z0yZvZXC75UlYSmZaDoodImyb3S9nMqQJ6-stYPLTw3_uP6HO7xv0yuAdJc9A1Z1LG/s1600/DSC00129.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkUihh0DVqGQfHIs0bbmrMiOJIKNKA-aAk3gT_xFptzeXpSzI82MpD3f0HhCNbVsfFnilyRErOy2z0yZvZXC75UlYSmZaDoodImyb3S9nMqQJ6-stYPLTw3_uP6HO7xv0yuAdJc9A1Z1LG/s320/DSC00129.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjolv_zhIwDliVu91Gdh1ir6u_qUp4o8Mwogc5I-9SPcRVE3RJjwPE8bTsDXddgV2ioT048csy0ZJQ4GzM3UdRXeE_dzhWulthgt3iOkuMHqWBOoRCOoe_SBdImTWWs0U_fJDQ6_W2_bcCH/s1600/DSC00128.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjolv_zhIwDliVu91Gdh1ir6u_qUp4o8Mwogc5I-9SPcRVE3RJjwPE8bTsDXddgV2ioT048csy0ZJQ4GzM3UdRXeE_dzhWulthgt3iOkuMHqWBOoRCOoe_SBdImTWWs0U_fJDQ6_W2_bcCH/s320/DSC00128.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvXs5Nr_ANa3FngXLql_Y8_C-jTufVvVn_252BUDr2KVrIx32jYXyUpGtlRj6freqXo4LNPO5zcc0SMWShmwsHYHL8_tCBo291VUuc4pmN0JRmNpM7-a0TNQWGPxIG-jU-Hripb_ShnrNN/s1600/DSC00131.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvXs5Nr_ANa3FngXLql_Y8_C-jTufVvVn_252BUDr2KVrIx32jYXyUpGtlRj6freqXo4LNPO5zcc0SMWShmwsHYHL8_tCBo291VUuc4pmN0JRmNpM7-a0TNQWGPxIG-jU-Hripb_ShnrNN/s320/DSC00131.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2fSBxolAL7gkOQXNLOSsY_lxPh-R8csViACs2DYJ3sTrzhOIdOdA96WYXNP5UqMZ-UdOn0n0SOebt3Z1heqVtjRj7eLouVVyaWxFbZj9VJPBL1maTYjB4ZAK-or3MgGm_9a2lXd37T8xp/s1600/DSC00132.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2fSBxolAL7gkOQXNLOSsY_lxPh-R8csViACs2DYJ3sTrzhOIdOdA96WYXNP5UqMZ-UdOn0n0SOebt3Z1heqVtjRj7eLouVVyaWxFbZj9VJPBL1maTYjB4ZAK-or3MgGm_9a2lXd37T8xp/s320/DSC00132.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXvMrAMbyxPGORVwYdD97CeWMKGbGAKJ_wVrDtf1BnX1O7g83i44fiL5OeF4nG6qbqkW-ugTKuI-wFJk4JeRVdm7iptF3funvrsZWOTfG15IG_navs6lmVHwP2IioxVPrAq87nKtKF6ziN/s1600/DSC00133.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXvMrAMbyxPGORVwYdD97CeWMKGbGAKJ_wVrDtf1BnX1O7g83i44fiL5OeF4nG6qbqkW-ugTKuI-wFJk4JeRVdm7iptF3funvrsZWOTfG15IG_navs6lmVHwP2IioxVPrAq87nKtKF6ziN/s320/DSC00133.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDD0-0bFW77QEcHbysRhJfR6XICIvfgiPRQCiifqs4IPod-uTaVFaMPbjPgf0J66IYNRotk77NjMIOXWeG-6MAqFPXX7r4jO5nCV2wV1o1-y-CwnJ4gVbmMu8eTMKftACrCBXNLhI4Sfan/s1600/DSC00134.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDD0-0bFW77QEcHbysRhJfR6XICIvfgiPRQCiifqs4IPod-uTaVFaMPbjPgf0J66IYNRotk77NjMIOXWeG-6MAqFPXX7r4jO5nCV2wV1o1-y-CwnJ4gVbmMu8eTMKftACrCBXNLhI4Sfan/s320/DSC00134.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl5oBu7uDoLJ5JSNK9k7sBQl5qkMP9jxt4swRTaTku9pVGlojDtLFsRcH04jrg2RggBIWkwX3bBDMtUyL2HfCpReLjJsmPZZi6Q3zcBT0h3UVcozEx0HlCqOVqNKHWRiWjIUWuvVUd38MX/s1600/DSC00135.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl5oBu7uDoLJ5JSNK9k7sBQl5qkMP9jxt4swRTaTku9pVGlojDtLFsRcH04jrg2RggBIWkwX3bBDMtUyL2HfCpReLjJsmPZZi6Q3zcBT0h3UVcozEx0HlCqOVqNKHWRiWjIUWuvVUd38MX/s320/DSC00135.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDf7cwHUw8cNdYYLPeVOLLg06iTbcc-jlazfBmTF1XrS5RoCD81N4yQ-lUs96_FhE3B_7zJvhuFr6m7h4xWYoqCuavGP2AzeJKTeCswf4YLvUFXHkbXgeesLTna32BLvdfK1bftnuFmUfO/s1600/DSC00136.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDf7cwHUw8cNdYYLPeVOLLg06iTbcc-jlazfBmTF1XrS5RoCD81N4yQ-lUs96_FhE3B_7zJvhuFr6m7h4xWYoqCuavGP2AzeJKTeCswf4YLvUFXHkbXgeesLTna32BLvdfK1bftnuFmUfO/s320/DSC00136.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMw12lRjY9B64fC-C9gGRJ7p89hXrWPbVNyqhMaaAt-k2rBSoqk4ahuk30dzAgI6oZmh2PKeAfydNfMW4Epuceu2i7YgusJAy5rJ6dwdCAlOVgDFBJA3lVNtldIxMoga2NP4_fFhQtEhRf/s1600/DSC00138.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMw12lRjY9B64fC-C9gGRJ7p89hXrWPbVNyqhMaaAt-k2rBSoqk4ahuk30dzAgI6oZmh2PKeAfydNfMW4Epuceu2i7YgusJAy5rJ6dwdCAlOVgDFBJA3lVNtldIxMoga2NP4_fFhQtEhRf/s320/DSC00138.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZNW1s7tjcPdeIE4ui5Wdse3DnnhM2fRZPrA_bJPVeH38EHNIwunUTr1WfhfwNMxKs73HnqkMWi7dwvM3JQMKnzAFLgk_LGuCKItxPg8UTKje5YdYTD8vsy-hm-nw9aAXHAjIc-auulza/s1600/DSC00139.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4ZNW1s7tjcPdeIE4ui5Wdse3DnnhM2fRZPrA_bJPVeH38EHNIwunUTr1WfhfwNMxKs73HnqkMWi7dwvM3JQMKnzAFLgk_LGuCKItxPg8UTKje5YdYTD8vsy-hm-nw9aAXHAjIc-auulza/s320/DSC00139.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86WhTU1B__-c5Paa2LcRMic2uXPwPB85ioB3LL4kuqspuY3NgfjWLV6MEmDtZCNcUV5nHyMBRWHQquwlQb5olSPJ-mbyso71eDpibDMOLgW-WIIitx75twhMc4ElkzM38bZBGfkAsis8-/s1600/DSC00137.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh86WhTU1B__-c5Paa2LcRMic2uXPwPB85ioB3LL4kuqspuY3NgfjWLV6MEmDtZCNcUV5nHyMBRWHQquwlQb5olSPJ-mbyso71eDpibDMOLgW-WIIitx75twhMc4ElkzM38bZBGfkAsis8-/s320/DSC00137.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq1FrMxCbiti034LHm_LsE7x9-hdlSQjkPBsXhYr-LAvMKCcWLN-N76l65i7suFzer_iThz3QLdb7D5qpQlIrvO4pjE2vD3e4SktU7AiD_VlMPFAD8MZAFrMGFGHoMwd0LG1-us08_NoRn/s1600/DSC00140.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq1FrMxCbiti034LHm_LsE7x9-hdlSQjkPBsXhYr-LAvMKCcWLN-N76l65i7suFzer_iThz3QLdb7D5qpQlIrvO4pjE2vD3e4SktU7AiD_VlMPFAD8MZAFrMGFGHoMwd0LG1-us08_NoRn/s320/DSC00140.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WwHa32TDZqfA7-7J7bbLR5GL7c2lQeXn-pkC2ntPjtcsiNRrjqk5iFIDCMTcSHYrVp9G5jdXEq7b_aSqpHTsyIcUiGAejH9JEIWrvYiattIzeOXLWYcf3HWXEZWyQnEPDXBX4Y3ECeN6/s1600/DSC00141.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WwHa32TDZqfA7-7J7bbLR5GL7c2lQeXn-pkC2ntPjtcsiNRrjqk5iFIDCMTcSHYrVp9G5jdXEq7b_aSqpHTsyIcUiGAejH9JEIWrvYiattIzeOXLWYcf3HWXEZWyQnEPDXBX4Y3ECeN6/s320/DSC00141.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin6TPcu5Lg9mRU_g0Vd1-uInbs6aggGnn3tblWf2uA8ptoD-ryeGDAm2RKp2wZgckePQGCMUQc7IkXVhZcnuwI7vVzazTYQnFYOnu3fK62wdjkG9ecf2KvtP7dAqaHd7dqMvDYoYJc7Ra5/s1600/DSC00143.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin6TPcu5Lg9mRU_g0Vd1-uInbs6aggGnn3tblWf2uA8ptoD-ryeGDAm2RKp2wZgckePQGCMUQc7IkXVhZcnuwI7vVzazTYQnFYOnu3fK62wdjkG9ecf2KvtP7dAqaHd7dqMvDYoYJc7Ra5/s320/DSC00143.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq3YaGUR7QWqUhYyPHuOK5-_0rdNrBOc9qVmsjmhAxUEBWEgAuPZYTqj7n4TryujOPBaKjZc4xxEroPT01PEQ5UxFc5XOEyWzeaFHZoEpjM-pa74SYcTNhKLFTtGBAXpJ71-1-yQdv_IQ_/s1600/DSC00142.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq3YaGUR7QWqUhYyPHuOK5-_0rdNrBOc9qVmsjmhAxUEBWEgAuPZYTqj7n4TryujOPBaKjZc4xxEroPT01PEQ5UxFc5XOEyWzeaFHZoEpjM-pa74SYcTNhKLFTtGBAXpJ71-1-yQdv_IQ_/s320/DSC00142.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyzn23KUs_zc8tZ6pUmxTjdn8pZ-Xo-b6TUh-7Dvg5tuK3dWR5lXB6443VxSwD-1gW7Lkaw2pyATNv23kEsk7X0s3Ek99gkxqHqG22oyNnEsizTdNXNwpi1p7yzouXmQCiz0dhewoSboo/s1600/DSC00144.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuyzn23KUs_zc8tZ6pUmxTjdn8pZ-Xo-b6TUh-7Dvg5tuK3dWR5lXB6443VxSwD-1gW7Lkaw2pyATNv23kEsk7X0s3Ek99gkxqHqG22oyNnEsizTdNXNwpi1p7yzouXmQCiz0dhewoSboo/s320/DSC00144.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglJBp_1unt_PFxB0QD90G3eAZbSuXqigq8Aa15ig1T3ws_AaVeVx5U08oAnGcy97gnQb1tsiEImPgqFKTIouqtHD-LJUuDACfQ0ZUu68v4YaDJItuZyCgWU9f0VRghOS36-tVlq8BMhf7_/s1600/DSC00145.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglJBp_1unt_PFxB0QD90G3eAZbSuXqigq8Aa15ig1T3ws_AaVeVx5U08oAnGcy97gnQb1tsiEImPgqFKTIouqtHD-LJUuDACfQ0ZUu68v4YaDJItuZyCgWU9f0VRghOS36-tVlq8BMhf7_/s320/DSC00145.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3klfWiRgyuIBo8cc46SrX8uT6L78IBDhj4D4GDtWSJ4nWjQSfuc_nAFMr1rb15x9xKtMvy7yiRbPg_jVhIcQRNWIQ-GxvwDgyIMmFibFbcd5QerdayM0NEI7K3RtlDwlbYEiYocOeqQCc/s1600/DSC00146.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3klfWiRgyuIBo8cc46SrX8uT6L78IBDhj4D4GDtWSJ4nWjQSfuc_nAFMr1rb15x9xKtMvy7yiRbPg_jVhIcQRNWIQ-GxvwDgyIMmFibFbcd5QerdayM0NEI7K3RtlDwlbYEiYocOeqQCc/s320/DSC00146.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7uvwVji4xsFvAnzGCjcL0_L84sx9NyNypI3e7BB3dKSqKcO99z6vTBtqM8MsFAhecJJHObItnSfB7JzAGYHLqGXb6PMY2Gho2SpZudg5u95sQSEz0DBE9p1J5xpa0dxt4fIBMwZVECR0s/s1600/DSC00147.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7uvwVji4xsFvAnzGCjcL0_L84sx9NyNypI3e7BB3dKSqKcO99z6vTBtqM8MsFAhecJJHObItnSfB7JzAGYHLqGXb6PMY2Gho2SpZudg5u95sQSEz0DBE9p1J5xpa0dxt4fIBMwZVECR0s/s320/DSC00147.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVDhAbarQ23BaU0XLbFL6Z1_CqJs8ixC9q_q0m6S-Ds6HGnZI5dPUTwg-NTYYZoImiIiQsgzVxwypU3QMnD_TRR_8ZBje-sIXRI4lOQtst78pd1nvOb1gecN6cbKoLWWKnmDhDR2Zn8Xl/s1600/DSC00148.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmVDhAbarQ23BaU0XLbFL6Z1_CqJs8ixC9q_q0m6S-Ds6HGnZI5dPUTwg-NTYYZoImiIiQsgzVxwypU3QMnD_TRR_8ZBje-sIXRI4lOQtst78pd1nvOb1gecN6cbKoLWWKnmDhDR2Zn8Xl/s320/DSC00148.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYr1CoJ3VJiediMJkvJc4BfiVSPWmoAWFLJ44_tapszSYlE__qcudLx4DouNKR0K17pWz5N6_GCDzRjdTg0E3uSSrzW32IAse3J0k_wKChRnw1MpM-8pdY6ySMPJUSxHKh-c4ZivtRW2Gb/s1600/DSC00150.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYr1CoJ3VJiediMJkvJc4BfiVSPWmoAWFLJ44_tapszSYlE__qcudLx4DouNKR0K17pWz5N6_GCDzRjdTg0E3uSSrzW32IAse3J0k_wKChRnw1MpM-8pdY6ySMPJUSxHKh-c4ZivtRW2Gb/s320/DSC00150.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh140pJdt58Jh4PbUO1q_X2WDmbcNKGfLrWzSgR3UvSxOYv1OTYDpb1_WvFbP-IlDplUQmJCO4GZovIVlHQcP7Bx62zRLlNf1bjUlDiLMWNlKPBRNIrysif2remy88H3vgbzVXV7-zt9urc/s1600/DSC00149.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh140pJdt58Jh4PbUO1q_X2WDmbcNKGfLrWzSgR3UvSxOYv1OTYDpb1_WvFbP-IlDplUQmJCO4GZovIVlHQcP7Bx62zRLlNf1bjUlDiLMWNlKPBRNIrysif2remy88H3vgbzVXV7-zt9urc/s320/DSC00149.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B2xSatuPE46q5IJCcaq7JujK-4Q4lqFt8ElSqwU1_mPYOAPLiU6TOeAK8ojZ7ihlRJgkD8sRNhH4gLm6SQ-KjkoC_tWMwHxUqACG4MzJeRBoySrHHvA4wZypbCDlNPkBa-SyJU8yCtu-/s1600/DSC00151.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B2xSatuPE46q5IJCcaq7JujK-4Q4lqFt8ElSqwU1_mPYOAPLiU6TOeAK8ojZ7ihlRJgkD8sRNhH4gLm6SQ-KjkoC_tWMwHxUqACG4MzJeRBoySrHHvA4wZypbCDlNPkBa-SyJU8yCtu-/s320/DSC00151.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqDXXRVhYq2jXhfWe148inZiCd2c0T7OxMm99oqe8cn41SC5rr2aT-mQW4-d1Z0-44QLmyzKSnXP7NXJ0sq8QdIwbX0VczH_DAe64qhig5jpvly7TdGv15Z_tOW5vRUvzIwQxfseDV5tLn/s1600/DSC00153.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqDXXRVhYq2jXhfWe148inZiCd2c0T7OxMm99oqe8cn41SC5rr2aT-mQW4-d1Z0-44QLmyzKSnXP7NXJ0sq8QdIwbX0VczH_DAe64qhig5jpvly7TdGv15Z_tOW5vRUvzIwQxfseDV5tLn/s320/DSC00153.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVvA6M-ivZmAskWapmFm8vegThCiNEQE3fmZsVynG-fqtPyTXu82IZV-c2cPO5MJZ6qjZHbZTtE22vCeTkTqdTl037JXecrkbE0uME9gNayWbKi8tWJFTxLz7daKVGvYoERbz98F5MpW8/s1600/DSC00154.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRVvA6M-ivZmAskWapmFm8vegThCiNEQE3fmZsVynG-fqtPyTXu82IZV-c2cPO5MJZ6qjZHbZTtE22vCeTkTqdTl037JXecrkbE0uME9gNayWbKi8tWJFTxLz7daKVGvYoERbz98F5MpW8/s320/DSC00154.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBwzSquVzMHbyStbqqHDUnpZdOH2fvoxOlROIZ9iR3MyjiAgR5pWmtSHZCilliKPBiS_I7Fjd3whyphenhyphenVtxorJrZYEXRxq3k5XdLX9aRR97Lg5LBCwTmcu4H2KMP4EkbHDwbMHGv9T_L0ohZu/s1600/DSC00155.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBwzSquVzMHbyStbqqHDUnpZdOH2fvoxOlROIZ9iR3MyjiAgR5pWmtSHZCilliKPBiS_I7Fjd3whyphenhyphenVtxorJrZYEXRxq3k5XdLX9aRR97Lg5LBCwTmcu4H2KMP4EkbHDwbMHGv9T_L0ohZu/s320/DSC00155.JPG" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com12tag:blogger.com,1999:blog-7301068955075796226.post-87719461638865111172013-01-10T21:43:00.000+00:002013-01-10T21:43:26.570+00:00Argos runs CentOS :)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid3azNPZz2olz9EzBDMjW1CjyjBtIXEctktg_ICbhJ3vZdbMtNiXhAOoM_4ni05Ttz_mh-QNXvnv_Q9cygJ-KOL7J745fCwXrrg5_-sE4zbogwdPg8Q6DWKAfF6DWNaOwzehc3yMQDKdcG/s1600/DSC00054.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid3azNPZz2olz9EzBDMjW1CjyjBtIXEctktg_ICbhJ3vZdbMtNiXhAOoM_4ni05Ttz_mh-QNXvnv_Q9cygJ-KOL7J745fCwXrrg5_-sE4zbogwdPg8Q6DWKAfF6DWNaOwzehc3yMQDKdcG/s320/DSC00054.JPG" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf44IQZObMAkMb9zvyQz2k75A8vg1ukT-zjyoxmbw08lXa3gHnADJ_7c__nZo8170NksSue_zcT0D9l094-e-ZWDNxVzt4zdGbLXpRepRIcJMqfPPJ-QJOJsGv_KxtkYJbaYfjaUtgetqx/s1600/DSC00056.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf44IQZObMAkMb9zvyQz2k75A8vg1ukT-zjyoxmbw08lXa3gHnADJ_7c__nZo8170NksSue_zcT0D9l094-e-ZWDNxVzt4zdGbLXpRepRIcJMqfPPJ-QJOJsGv_KxtkYJbaYfjaUtgetqx/s320/DSC00056.JPG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEiYMjYoSbFeMp0RBTkV_zt5kxY2fgZHttkUOdI5iwqlznF8AbEH7aszYiDt-87Caft8Bc2xR_JCONRZAIZxvfw4j7T-w8igQDpHHeNAl8ywR58VtA2nfo2vE8bTgDh13FBlre62yvTOT5/s1600/DSC00055.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEiYMjYoSbFeMp0RBTkV_zt5kxY2fgZHttkUOdI5iwqlznF8AbEH7aszYiDt-87Caft8Bc2xR_JCONRZAIZxvfw4j7T-w8igQDpHHeNAl8ywR58VtA2nfo2vE8bTgDh13FBlre62yvTOT5/s320/DSC00055.JPG" width="240" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1aaRbOmrezvzEvaigNUUv35vXrsf8d06vvy9YJ84G8VyhysLtNe3RxBdZ4CjlAs05k098C-879E3wz8FvpFB61gWkkaeipUSqktD6UBKZx8irBjZBb_k26JNP1GYfyZzyaXZoFTWEmLnB/s1600/DSC00057.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1aaRbOmrezvzEvaigNUUv35vXrsf8d06vvy9YJ84G8VyhysLtNe3RxBdZ4CjlAs05k098C-879E3wz8FvpFB61gWkkaeipUSqktD6UBKZx8irBjZBb_k26JNP1GYfyZzyaXZoFTWEmLnB/s320/DSC00057.JPG" width="320" /></a></div>
<br />ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-41868037162483744242013-01-08T01:49:00.000+00:002013-01-10T21:52:13.250+00:00What I've been upto ... U1, JB & John the RipperSo I haven't posted here in a while not because I haven't done any development but I haven't really had the time. The reason for this is quite simply, it's my final year of college and there's a lot of work to do especially to do with my final year project. I thought I'd do a quick post detailing some of the open source development I've been doing over the last little while.<br />
<br />
<h3>
Ubuntu One KDE Plugin:</h3>
I've added a few more languages contributed by the community, specifically Russian & Brazilian Portuguese. Brazilian Portuguese being a little bit tricky since it doesn't have a standard 2 letter language code like all the other languages added so it took a bit of trial and error to figure out the code KDE wanted. For future reference for anyone googling this because they have the <span style="font-family: inherit;">problem its:</span><br />
<span style="font-family: inherit;"><span style="background-color: white; line-height: 16px; white-space: pre;"><br /></span></span>
<span style="font-family: inherit;"><span style="background-color: white; line-height: 16px; white-space: pre;"></span></span><br />
<pre><span style="font-family: inherit;"><span style="background-color: white; line-height: 16px; white-space: pre;">pt_BR</span></span></pre>
<br />
<span style="font-family: inherit;"><span style="line-height: 16px; white-space: pre;">Also while I haven't added it to the installer inside of dolphin yet. A new branch has been created at thebehest of a user using dolphin with Ubuntu's unity. It removes the program's reliance on klipper, kde's clipboard manager<span style="font-family: inherit;">, using xclip & </span></span></span><span style="line-height: 16px; white-space: pre;"><span style="font-family: inherit;">autocutsel in its place.</span></span><br />
<span style="font-family: inherit;"><span style="background-color: white; line-height: 16px; white-space: pre;"><br /></span></span>
<a href="https://github.com/ShaneQful/u1-dolphin/tree/without_kde">https://github.com/ShaneQful/u1-dolphin/tree/without_kde</a><span style="font-family: inherit;"><span style="line-height: 16px; white-space: pre;"> </span></span><br />
<br />
<br />
<br />
<h3>
Jupiter Broadcasting:</h3>
I've contributed to <a href="https://github.com/rikai/JBAR-Firefox">https://github.com/rikai/JBAR-Firefox</a> but only in a very minor way. I've done some minor bug fixes on the android app and there's a bug that I still need to fix in the Java ME but considering it has a user base of me and like one other person I'm taking my sweet time getting around to it. I was contributing to <a href="https://github.com/dominickm/jupiter_broadcasting_mobile_community">https://github.com/dominickm/jupiter_broadcasting_mobile_community</a>, a HTML5 mobile app but that project now seems dead. Hopefully some one will pick it up or I might jump back into it after college. I still have commit access to the repo and am willing to merge any pull request sent so if anyone wants to give it a go don't be shy.<br />
<br />
<h3>
Final Year Project:</h3>
<div>
I don't want to say to much on this in case some idiotic piece of academic software accuses me of plagiarizing myself but I'm writing a system to perform the distributed cracking of office documents(MSOffice, PDFs, ODFs) on a network of <a href="http://www.raspberrypi.org/" target="_blank">raspberry pi computers</a>. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5f5F_zhmuhCHoiNBG4R8aD8OiJD48vxZ2ZXCpzvPh0dR2ya9DprChMwTL08AFurkWdzkzKv0k3z3RNFvc2XOs17RNcy9Hp0Us9gdmrWh1fRSrJtQv2EttJXkXS04c406oFlzCe7njj78/s1600/DSC00101.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5f5F_zhmuhCHoiNBG4R8aD8OiJD48vxZ2ZXCpzvPh0dR2ya9DprChMwTL08AFurkWdzkzKv0k3z3RNFvc2XOs17RNcy9Hp0Us9gdmrWh1fRSrJtQv2EttJXkXS04c406oFlzCe7njj78/s320/DSC00101.JPG" width="320" /></a></div>
<div>
<br /></div>
<a name="john"></a>
<h3>
John the Ripper:</h3>
<div>
I'm using <a href="http://openwall.com/john/" target="_blank">John the Ripper</a> as the base cracker for my final year project. Unfortunately I didn't discover it could crack documents until I'd already nearly finished some <a href="https://github.com/ShaneQful/odf-dictionary-attack" target="_blank">ODF cracking software</a>. Actually the only thing left to do is finish the AES encryption which would be nearly pointless since all the lastest releases of OpenOffice & LibreOffice use Blowfish for encryption but I digress. This was more than a little irritating as it was thought that I might have to expand the project but for now helping John's development with a focus on office documents should hopefully be more than enough. You know along with a system to allowing for it to be distributed over a network with a really pretty web UI. So far I've created this <a href="https://github.com/ShaneQful/npdf2john_ruby">https://github.com/ShaneQful/npdf2john_ruby</a>. A PDF parser which takes out the necessary information from a PDF for decryption and passes it to John in the format in needs. Which lead to my first bit of code actually in John :) </div>
<div>
<br /></div>
<div>
<a href="https://github.com/magnumripper/JohnTheRipper/blob/unstable-jumbo/run/pdf2john.py">https://github.com/magnumripper/JohnTheRipper/blob/unstable-jumbo/run/pdf2john.py</a> </div>
<div>
<br /></div>
<div>
but more importantly it was the last thing they needed to get rid of the older pdf format which only supported up to PDF specification 1.4 and move to the newer format which supports all PDF's ie. up to 1.7. I would like to point out at this stage that obviously most of the work on the newer PDF format was not done by me but by <a href="https://github.com/kholia" target="_blank">Dhiru</a>. Who was amazingly helpful along with everyone else on John's mailing list when I asked about how things worked and what I should focus on in order to improve John. In fact I really think John is a great example of a project which is really easy to get involved in with and has what seems like a really nice development community.</div>
<div>
<br /></div>
<h3>
Others:</h3>
<div>
There were other things but I think I've yammered on log enough. Anything else will probably be on <a href="https://github.com/ShaneQful" target="_blank">my github page</a>.</div>
<div>
<br /></div>
<div>
<br /></div>ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-82788077004080696632012-09-11T17:53:00.002+01:002012-09-11T21:50:31.050+01:00Quick Update to the Jupiter Broadcasting Android App<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4XHMdPBhFzZnCdFlwJQuPfDlW9pG2uvEJWuj_SZrPSHNh4P74ZdttGmH48PCVyu5RdC9F-8Ey7wRfsCIQRLoDkbocDY-xPkn-74vCy9CHo1ieBUVcalTBU4qZTn5WlDOTGRxxWS1MkIm/s1600/Screenshot-6.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4XHMdPBhFzZnCdFlwJQuPfDlW9pG2uvEJWuj_SZrPSHNh4P74ZdttGmH48PCVyu5RdC9F-8Ey7wRfsCIQRLoDkbocDY-xPkn-74vCy9CHo1ieBUVcalTBU4qZTn5WlDOTGRxxWS1MkIm/s320/Screenshot-6.png" width="192" /></a>So I have replaced the parser with a variant of my parser from my JavaME app. I have also replaced the GUI from the RSS reader and will be implementing a download feature as well as the stream and go to web page features currently available. I have just replaced version on the market with the new version and will wait a few days before implementing the download feature as this will require a permission change and I want people to auto update to the latest UI before I ask anyone to update which I will have to do if I change the permission settings.<br />
<br />
<a href="https://play.google.com/store/apps/details?id=jupiter.broadcasting.live.tv" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Android app on Google Play" border="0" src="http://www.android.com/images/brand/android_app_on_play_logo_large.png" /></a><br />
<br />
<br />
<br />
<br />
The code is now on github <a href="https://github.com/ShaneQful/Jupiter-Broadcasting-Android-App" target="_blank">here</a> under the MIT License so if anyone wants to help out feel free and don't just the code to harshly as I originally wrote most of this app a year or so ago, while overly caffeinated watching a live episode of techsnap.<br />
<br />
On another note, the app now has a competitor <a href="http://code.google.com/p/callisto-app/" target="_blank">Callisto</a>. Frankly its awesome and choice is always good also since both the apps are free and open source its hardly that much of a competition as either of us could take each others code whenever we pleased. Although I think my license is more compatible with that sort of behavior. Its still in alpha but I recommend you check it out and see which one you like better. I quite liked the in built IRC client in Callisto. Another awesome thing about Callisto is that it supports from android 1.6 up which means it supports older phone that my app doesn't. Unfortunately it also means supporting the live video stream for Callisto is probably not going to happen. However the creation of Callisto might give me the opportunity to change the API version of my app to 3.0 to support the HLS video stream rather than the RTSP stream with the knowledge that my users have somewhere to turn in Callisto. Anyway best of luck to Callisto and its developer, who I have to give mad props to doing this in Android 1.6 as I personally wouldn't have creating my Jupiter Broadcasting app with out the Media API that came in 2.2.<br />
<br />
<br />ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com1tag:blogger.com,1999:blog-7301068955075796226.post-4220209361564665572012-09-06T01:24:00.002+01:002012-09-07T14:43:29.192+01:00Java ME Permissions Suck and another Jupiter Broadcasting AppSo I decided on the development platform and the app, I was going to write for the new/old phone the Sony Ericsson P1i. I would write the app for JavaME because at least then other people can use it. There are supposed to be more JavaME enabled phone in the world than androids. Therefore this way it won't be completely useless to others.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwBaEGnovAiF8upe11jBte_jE6pSjuIXSaXop4cPUFlpQlm7NvMM5b1_zcf8qLZazLTccobf5-CF7MrEe3S0Pun8Sy1v_5o_LNZQeb9U3FS6DMVqZH0EjBT99Xs3a6xVm2DLlDDkdUriSq/s1600/Screenshot-4.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwBaEGnovAiF8upe11jBte_jE6pSjuIXSaXop4cPUFlpQlm7NvMM5b1_zcf8qLZazLTccobf5-CF7MrEe3S0Pun8Sy1v_5o_LNZQeb9U3FS6DMVqZH0EjBT99Xs3a6xVm2DLlDDkdUriSq/s320/Screenshot-4.png" width="320" /></a>Getting setup up for development wasn't very difficult. I downloaded <a href="http://netbeans.org/" target="_blank">NetBeans</a> with the JavaME plugin. (Note in order for JavaME to work you'll also need the JavaEE plugin. Its a bug :( ) I also downloaded the Visual Designer Plugin which is a really nice bit of kit to help with both the flow of your application and GUI design. I felt it really helped me to keep most of the back end code abstracted from the GUI.<br />
<br />
The application I decided to write was a <a href="http://www.jupiterbroadcasting.com/" target="_blank">Jupiter broadcasting</a> app because the default RSS reader on my P1i can't handle the feeds from the Jupiter broadcasting properly. I didn't port my <a href="https://play.google.com/store/apps/details?id=jupiter.broadcasting.live.tv" target="_blank">android app</a> instead I decided to do a complete re-write. Although I'm very tempted to swap out some of the old android app's parser with the new one from this app. Deciding I wanted a videos feed and a MP3 feed. I sat down a wrote an xml parser using the java sax library.<br />
<br />
What's interesting about programming in JavaME isn't not what it can do but what it can't. I had to forgo the use of many features of Java that I'm very used too. The lack of generics and "for each" loops especially made me cringe but I persevered. The only major issue I came across was the permissions for JavaME Mid-lets. They are, to put it lightly, the most annoying thing I have ever seen on a phone(including crazy frog) and without a certificate, from Verisign or Thawte (Very Pricey), they don't go away. I mean every time a platform request or access to anything outside the app is made it asks the user about permissions and then doesn't save that as a setting !!!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIE1ecHFQ8KFluu_sTsNRz1hqhK9R8ibeKdU8au8sy5tsS4wJ7IPlyXA3E-DeBPtpL01FqYS-A79Ct50AkRJ0o8MbVm56J3WM6Jn3Es-2vzKs0kJJjhMRiyI5006w31fd6O4VaSxY-85r/s1600/capture0001.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIE1ecHFQ8KFluu_sTsNRz1hqhK9R8ibeKdU8au8sy5tsS4wJ7IPlyXA3E-DeBPtpL01FqYS-A79Ct50AkRJ0o8MbVm56J3WM6Jn3Es-2vzKs0kJJjhMRiyI5006w31fd6O4VaSxY-85r/s1600/capture0001.png" /></a></div>
I'll have to say some nice things about JavaME after that rant.<br />
<br />
<ul>
<li>Its looks and feels for the most part native. (Which isn't something you can usually say about a java app)</li>
<li>Even though its all Java. It was much easier to pick up than I remember android being.</li>
<li><a href="http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=9&qpcustomb=1" target="_blank">Its on a lot of devices.</a> It even over took android, for while at the start of this year.</li>
</ul>
<br />
Anyway for those Jupiter broadcasting fans who have JavaME enabled phones.<br />
<br />
<a href="https://github.com/ShaneQful/Jupiter-Broadcasting-Java-ME" target="_blank">Source code is on git hub</a><br />
or<br />
<a href="https://github.com/ShaneQful/Jupiter-Broadcasting-Java-ME/raw/master/dist/JupiterBroadcasting.jar" target="_blank">Download the jar to you phone.</a><br />
<br />
It's still in active development(beta) so if you have any bugs let me know. I'm currently looking at new features like a<br />
<ul>
<li>Live stream</li>
<li>Categorized show feeds (Done)</li>
<li>A file browser for previous downloads</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
</div>
I'm probably going to MIT license it.<br />
<br />
Here are a few more screenshots for those interesting. I think my phone's theme lends a lot to them but you have to admit the app looks a hell of a lot prettier than than my android version:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7MHdpaWNpBX-HIPS5wVK98SyLzTO3Aa_yQh6iywc1PQ0qGBrKWszV7yBItk9x3tCTVClLHNCL4BarsTYmXUSHbYFC3t0LdH7zwLcmZHCf6eRrqXIhcOCuXKROoi-AEOqBJbnx1uyP7YsJ/s1600/capture0005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7MHdpaWNpBX-HIPS5wVK98SyLzTO3Aa_yQh6iywc1PQ0qGBrKWszV7yBItk9x3tCTVClLHNCL4BarsTYmXUSHbYFC3t0LdH7zwLcmZHCf6eRrqXIhcOCuXKROoi-AEOqBJbnx1uyP7YsJ/s200/capture0005.png" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj7yucqnlM1IcExv7zYwb5U9WkRzqmzej213oM0Lpas5dG4Aa6McEKSNu01Ri8-TxsnZV9iRx1aYMmszvixT6wt4diuog99kmAE5q-O-vXdXO4syo0IWAlFNlsUh0tyLD7CE_IVFMpSpI6/s1600/capture0003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhj7yucqnlM1IcExv7zYwb5U9WkRzqmzej213oM0Lpas5dG4Aa6McEKSNu01Ri8-TxsnZV9iRx1aYMmszvixT6wt4diuog99kmAE5q-O-vXdXO4syo0IWAlFNlsUh0tyLD7CE_IVFMpSpI6/s200/capture0003.png" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUQiKrgrmm6JioJl_XR-ih4B2Ysg3536w4WZQkQYTBtMjq0hovd-0BfpfSGbQStiJAe5q1PURb-ldQWuGvXaGkxtekQVkl_cGvczOxOi6x1MR2UbbRnoF1DGHTYutrja8YM6jCP0foHwe/s1600/capture0002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyUQiKrgrmm6JioJl_XR-ih4B2Ysg3536w4WZQkQYTBtMjq0hovd-0BfpfSGbQStiJAe5q1PURb-ldQWuGvXaGkxtekQVkl_cGvczOxOi6x1MR2UbbRnoF1DGHTYutrja8YM6jCP0foHwe/s200/capture0002.png" width="150" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIE1ecHFQ8KFluu_sTsNRz1hqhK9R8ibeKdU8au8sy5tsS4wJ7IPlyXA3E-DeBPtpL01FqYS-A79Ct50AkRJ0o8MbVm56J3WM6Jn3Es-2vzKs0kJJjhMRiyI5006w31fd6O4VaSxY-85r/s1600/capture0001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCIE1ecHFQ8KFluu_sTsNRz1hqhK9R8ibeKdU8au8sy5tsS4wJ7IPlyXA3E-DeBPtpL01FqYS-A79Ct50AkRJ0o8MbVm56J3WM6Jn3Es-2vzKs0kJJjhMRiyI5006w31fd6O4VaSxY-85r/s200/capture0001.png" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPgD9xwmR6Ya65soPxZEUsJxdm4ngvxJO032veFScKUDAe9w-rGWboXOFNPt-UARnsXumZ-6qjhRZm_U1eeMlh2RfvWLyHN8ceM_TIpJ721gb2bu_dY8lzVrRgazdkcwKR-eiCfjWXuOfT/s1600/capture0000.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPgD9xwmR6Ya65soPxZEUsJxdm4ngvxJO032veFScKUDAe9w-rGWboXOFNPt-UARnsXumZ-6qjhRZm_U1eeMlh2RfvWLyHN8ceM_TIpJ721gb2bu_dY8lzVrRgazdkcwKR-eiCfjWXuOfT/s200/capture0000.png" width="150" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1vclM_SxLcG2EFdG3bOI4jMMQYRcLRyrH_1EmJYSxLFU6IJL_8GULNFf7OSYceQ-C1Xpk22gEKP5xexRC6GfnaLMBYy9XvheeW_Lh6fvqs-7NGzYymk_djydK9jDpWlgvsGi6nWcsMqdt/s1600/capture0006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1vclM_SxLcG2EFdG3bOI4jMMQYRcLRyrH_1EmJYSxLFU6IJL_8GULNFf7OSYceQ-C1Xpk22gEKP5xexRC6GfnaLMBYy9XvheeW_Lh6fvqs-7NGzYymk_djydK9jDpWlgvsGi6nWcsMqdt/s200/capture0006.png" width="150" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0tag:blogger.com,1999:blog-7301068955075796226.post-82969442827238220492012-08-23T19:16:00.000+01:002012-08-24T19:04:11.494+01:00A Bit of a warning<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp17yaRzDN5XWDfpeKEdNy2pGzK72cDF_Z0uwrAbMSY38IW6ILfwZPTvyq_P-V-HoCMGqYdDJZkEJUQao8roh_ZjE7dBZRvszxtREDzlqyP7sCSa5aR0egNQ3Ao78_e78V1MKRO48185J9/s1600/1199223_081222153621_SEp1i.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp17yaRzDN5XWDfpeKEdNy2pGzK72cDF_Z0uwrAbMSY38IW6ILfwZPTvyq_P-V-HoCMGqYdDJZkEJUQao8roh_ZjE7dBZRvszxtREDzlqyP7sCSa5aR0egNQ3Ao78_e78V1MKRO48185J9/s320/1199223_081222153621_SEp1i.jpg" width="314" /></a>To all those who read this for interesting pieces of software to use. I have a sad announcement I just bought a new phone or to be more specific an old phone. The Sony Ericsson p1i to be exact , much better than the IPhones and Androids of it's day and in my opinion still better at some things. (Hand writing recognition and UI) This means that I may end up writing a quite a bit of software which you won't be able to use, sorry. Unless of course you have a Symbian phone or I use a more cross platform development platform.<br />
<br />
Currently the platforms I'm looking into are:<br />
<br />
<ul>
<li>SDL/C++ </li>
<ul>
<li>My God they ported SDL to everything</li>
</ul>
<li>UIQ3/C++ </li>
<ul>
<li>Probably not going to use this unless I can find a way of making use of the UIQ 2 OpenQub GUI builder</li>
</ul>
<li>Java ME (Midlets)</li>
<ul>
<li>These will run on anything </li>
<li><a href="http://code.google.com/p/microemu/wiki/Maemo" target="_blank">Here is a cool guide to getting them running on your maemo device</a></li>
</ul>
<li>HTML/JavaScript</li>
<ul>
<li>This will be interesting as I will only be able to use a fraction of the API that I'm used to having</li>
</ul>
<li>PhoneGap</li>
<ul>
<li>Apparently early versions of this can run on UIQ</li>
</ul>
<li>PyUIQ</li>
<ul>
<li>Looks good for prototyping but not sure if it will be very useful</li>
</ul>
<li>QT/C++</li>
<ul>
<li>Basically QT only relies on the core part of the Symbian OS that both UIQ and S60 symbian phones have in common. So if I get it compiling I should be able to jump into QT creator and develop a nice QT app. Albeit with an older version of QT.</li>
</ul>
<li>Emulators</li>
<ul>
<li>The P1i has an impressive display of emulators which can all be developed for</li>
<ul>
<li>Sega Mega Drive</li>
<li>Game Boy</li>
<li>Dos</li>
<li>C64</li>
</ul>
<li>Obviously some of these aren't practical but then again some might be.</li>
</ul>
</ul>
<div>
Anyway maybe something useful for others will come out of the server side stuff or there's a couple of people who still love UIQ devices out there who will see this post.</div>
<div>
<br /></div>
<div>
<br /></div>
ShaneQfulhttp://www.blogger.com/profile/16926002979007088406noreply@blogger.com0