tag:blogger.com,1999:blog-76773122890760872792024-03-13T21:38:12.498-07:00Dan's BlogUnknownnoreply@blogger.comBlogger19125tag:blogger.com,1999:blog-7677312289076087279.post-18762662479148915402014-03-28T14:03:00.004-07:002014-03-28T14:04:44.154-07:00ColBrix Speed<h1>
ColBrix Speed</h1>
Available on <a href="https://play.google.com/store/apps/details?id=com.colbrixspeed" target="_blank">Google Play</a> as of now.<br />
<br />
<a href="https://play.google.com/store/apps/details?id=com.colbrixspeed" target="_blank"><img border="0" src="http://2.bp.blogspot.com/-uRzRKrYocnk/UzXjcxXe4aI/AAAAAAAADnA/O0313dNipfI/s1600/newlogo512.png" height="200" width="200" /></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-40687052510302537542014-02-24T14:18:00.002-08:002014-02-24T14:18:57.320-08:00Jumpy FoxI have just released an Android game called <a href="https://play.google.com/store/apps/details?id=com.jumpyfox" target="_blank">Jumpy Fox</a>.<br />
Obviously, this game was inspired by the Flappy Bird hype, but birds are out and FOXES ARE IN!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-p1Pvs-AUKV4/UwvFMvCejLI/AAAAAAAADlU/Jfm4M0k7oM0/s1600/logo512.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-p1Pvs-AUKV4/UwvFMvCejLI/AAAAAAAADlU/Jfm4M0k7oM0/s1600/logo512.png" height="200" width="200" /></a></div>
<br />
<br />
As a player of the game you have to help the little jumpy fox to jump over the trunks.<br />
<br />
* Easy to get get started, yet challenging to get a good score<br />
* Game speeds up after a while to make it even more challenging<br />
* Beautiful charcoal drawing style UI elements<br />
* Compare your highscore with opponents and friends world wide via Google Play Game Services<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-83512896140587359502013-09-29T06:00:00.001-07:002013-09-29T06:33:02.378-07:00ColBrixI have finally released <a href="https://play.google.com/store/apps/details?id=com.colbrix" target="_blank">ColBrix</a>, a tile-based game for Android.<br />
<div>
It's inspired by other apps and tile-laying board games like Scrabble, Qwirkle, WordFeud, etc., but it has its unique set of rules.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-2tvc1HoQ5fc/UkgfTIpCtSI/AAAAAAAADg8/xooc6xhP9zg/s1600/Screen+Shot+2013-09-29+at+2.36.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-2tvc1HoQ5fc/UkgfTIpCtSI/AAAAAAAADg8/xooc6xhP9zg/s200/Screen+Shot+2013-09-29+at+2.36.24+PM.png" width="113" /></a></div>
<div>
<br /></div>
<div>
The code for the game has been untouched for more than a year, for the following reason: </div>
<div>
I wanted to make a really good tutorial, and I knew such a tutorial would require <b>a lot</b> of time to implement. But I've never had that time.</div>
<div>
<br /></div>
<div>
Until I (yesterday) decided to <b>turn a missing tutorial into a feature</b>. I think, that deliberately not offering a tutorial makes the game actually more attractive. There's space to explore the rules, the way the points are calculated, and keeps the game play interesting for a longer time span.<br />
<br />
Actually, it became the slogan of ColBrix: <b>Finding out the rules is part of the game!</b><br />
<br />
With that decision, I could release the app in less than a day (after polishing up some parts of the app). I'm very glad that it's finally out (I hate unfinished projects ;)), and hope that you like the game.</div>
<div>
<br /></div>
<div>
<div>
<div>
<br /></div>
<div>
Check it out on Google Play: <a href="https://play.google.com/store/apps/details?id=com.colbrix">https://play.google.com/store/apps/details?id=com.colbrix</a></div>
<div>
<br /></div>
<div>
Have fun!</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-vw1VC_Xt9ws/UkgfQ6mCoKI/AAAAAAAADg0/m13Pbfck48Q/s1600/Screen+Shot+2013-09-29+at+2.36.05+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-vw1VC_Xt9ws/UkgfQ6mCoKI/AAAAAAAADg0/m13Pbfck48Q/s200/Screen+Shot+2013-09-29+at+2.36.05+PM.png" width="197" /></a></div>
<div>
<br /></div>
</div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-77047680866994907882013-04-15T12:34:00.001-07:002013-04-15T12:34:51.547-07:00Arduino-Powered Maneko Neki<div style="text-align: center;">
</div>
<div style="text-align: left;">
Yet another very practical project that will enrich your life. Extremely hard to make, believe me (just look at the complicated circuit, and you can guess how complicated the code is).</div>
<div style="text-align: left;">
<br /></div>
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/tmpzsVialDI" width="420"></iframe></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
Check out http://arduino.cc and get started yourself.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-5757504312421298092013-03-03T13:02:00.000-08:002013-03-09T03:55:36.676-08:00Arduino Project - Screen's Brightness Determines Sound (or: JavaScript powered Light Theremin)<div class="separator" style="clear: both; text-align: left;">
I just finished my first <a href="http://arduino.cc/" target="_blank">Arduino</a> project. Its individual components are very basic, but I love the combination of them.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Check this out:</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/BRAK0jBUtCE?feature=player_embedded' frameborder='0'></iframe></div>
<br />
The Arduino code is fairly simple, it takes the light sensor's value (a value between 0 and 1024 <span style="color: #999999;">(well, in fact it's a smaller range, because the screen's black is somewhere around 900, and white is about 200)</span>) and maps it to various tones (again a value between 0 and 1024) that I send to the Piezo speaker.<br />
<br />
What you can see on the screen is a simple HTML page, whose background is changed for each tone. Here's a sketch of how it works:<br />
<br />
<br />
<pre class="prettyprint lang-JavaScript">var c4 = 0, cs4 = 1, d4 = 2, ds4 = 3, e4 = 4, f4 = 5 ... as5 = 22, b5 = 23;
var melody = [
e5, ds5, e5, ds5, e5, b4, d5, c5, a4,a4,a4,
c4, e4, a4, b4,b4,b4, e4, a4, b4, c5,c5,c5, ...];
function playSong() {
var intervals = 24; // supports 2 octaves
for(var i = 0; i < melody.length; i++) {
var note = melody[i];
var lumin = 100 - 100/intervals*note;
// http://stackoverflow.com/a/6425113
setTimeout( (function(lumin) { return function() { changeBackground(lumin); } })(lumin), i*250);
}
}
function changeBackground(lum) {
document.body.style.backgroundColor="hsl(0,0%,"+lum+"%)";
}
</pre>
<b><i><br /></i></b>
<b><i>Edit 2013-03-09:</i></b><br />
I put the source code on GitHub - <a href="https://github.com/bodnerdan/js-arduino-theremin">https://github.com/bodnerdan/js-arduino-theremin</a> <br />
<br />
Looking forward to get some feedback, or even pull requests.<br />
As you can guess, it didn't take me very long to implement this code, but I'd rather see it as a seed for inspiration for better, bigger projects. Let me know if you have used my code as a basis to create something more sophisticated.<br />
<br />
Thanks for reading!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-5996997976126300312012-07-02T23:00:00.000-07:002012-07-04T10:08:54.699-07:00Miniature Photo Album with ImageMagick (montage, convert) and Some Shell Scripting<h2>
<span style="background-color: white;">How to develop photos smaller than 13x9, 15x11... </span></h2>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-OuAIHa_ec1U/T_IYUpnSnmI/AAAAAAAADZ8/CXbPJ1bBpz0/s1600/minfotos.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="300" src="http://1.bp.blogspot.com/-OuAIHa_ec1U/T_IYUpnSnmI/AAAAAAAADZ8/CXbPJ1bBpz0/s400/minfotos.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The fork is just there to indicate the size of the photos</td></tr>
</tbody></table>
<span style="background-color: white;">When ordering photos online, you usually have the option to choose between formats like 13x9cm, 15x11cm, etc. However, none of these digital photo online services (that I know) offers smaller sizes. This post describes how to easily "merge" 4 JPG files into a big one (containing these 4 files in a 2x2-grid), which you can then order online and cut with scissors (or your other favorite cutting device) in order to create an album with photos of the size 7.5x5.5cm (or smaller, by adjusting some parameters)</span><br />
<br />
<span style="color: #e06666;">Important: The shell script shown below does not touch the original files (it copies and rotates them). However, I don't give any warranty that you don't lose or ruin your original files, so make sure to have a backup!</span><br />
<br />
<h2>
Prerequisites</h2>
<ul>
<li>A set of JPEG images (optimally the same aspect ratio in order to get a seamless montage) </li>
<li>An installation of <a href="http://www.imagemagick.org/" target="_blank">ImageMagick</a> (the executables have to be in the <code>$PATH</code>)</li>
<li>A bash-terminal</li>
</ul>
<br />
<ul>
</ul>
<h2>
How to do it</h2>
<ul>
<li>Move all the JPG files in a directory</li>
<li><code>cd</code> into this directory and create an executable script with the content from below</li>
<li>Execute the script and wait</li>
<li>After that, the subdirectory <code>generated</code> contains the files you might want to upload to your online photo service </li>
</ul>
<br />
<ul>
</ul>
<br />
<pre class="prettyprint lang-bash">#!/bin/bash
g=generated
t=$g/tmp
mkdir -p $t
### STEP 1 - cloning/rotating the file to 'portrait'
### into the temporary subdirectory(0.jpg, 1.jpg, etc.)
i=0
IFS=$'\n'
for file in `find . -type f -iname "*.jp*g"`
do
echo "rotating file $file into $t/$i.jpg"
convert "$file" -rotate '90>' $t/$i.jpg
let i=i+1
done
### STEP 2 - take 4 JPG files at a time
### and compile them into new 2x2-images
i=0
nroffiles=`ls $t/*.jpg | wc -w`
let nrofiterations=nroffiles/4
while [ $i -lt $nrofiterations ]
do
## helper variables to access file names
let f=i*4
let a=f+0
let b=f+1
let c=f+2
let d=f+3
echo "creating a$i.jpg ($a.jpg $b.jpg $c.jpg $d.jpg)"
## compile the 4 separate images into a 2x2-grid.
## please change the parameter 768x1024 if you
## don't have a 3:4 aspect ratio
montage $t/$a.jpg $t/$b.jpg $t/$c.jpg $t/$d.jpg -tile 2x2 -geometry 768x1024 $g/a$i.jpg
let i=i+1
done
### remove the tmp directory
rm -rf $t
</pre>
<br />
<br />
<br />
The images created by this script look somewhat like this one (individual pictures taken from http://www.freeimages.co.uk/)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-4F7iREtKXFc/T9-m4tIobXI/AAAAAAAADZw/CVesydH-Ivw/s1600/a0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-4F7iREtKXFc/T9-m4tIobXI/AAAAAAAADZw/CVesydH-Ivw/s200/a0.jpg" width="150" /></a></div>
<br />
<br />
Not very advanced stuff, I know, but I think it's a nice combination of some handy tools to make a nice present.<br />
<br />
P.S. 1: I know that there are more elegant ways to write the shell-script, but for my purposes and skills this was the quickest way to go.<br />
<br />
P.S. 2: I think the <span style="background-color: white;">7.5x5.5cm format is optimal for a <a href="http://en.wikipedia.org/wiki/Flip_book" target="_blank">flip book</a>. Wouldn't it be easy and fun to create your own flip book story with the continuous shooting mode of your digital camera?</span><br />
<span style="color: red;"></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-59367341289022645362012-04-06T07:20:00.004-07:002012-06-21T14:17:57.517-07:00ImageUploader as Java Web StartIn older blog posts I reported about my ImageResizer/Uploader appplication.<br />
A while ago I turned it into a Java Swing application, startable via Java Web Start.<br />
<br />
<b>Short description</b><br />
It's a tiny but very useful software to resize and upload a bunch of JPG-files to a Google Picasa Web Album. It´s perfectly suitable for travellers in countries with slow Internet connections. The idea behind this software is the following: A full-sized JPG files on a digital camera with (let´s say) 3 MB has only 300 KB if it is resized to 70% of its original size, but has (nearly) the same quality. So Internet-backups can be made 10-times as fast.<br />
<br />
You can find it here:<br />
<a href="https://sites.google.com/site/dbimageuploader/home">https://sites.google.com/site/dbimageuploader/home</a><br />
<br />
Please don't forget to read the "Background" section:<br />
<a href="https://sites.google.com/site/dbimageuploader/background">https://sites.google.com/site/dbimageuploader/background</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-30801301478136349412012-03-13T13:18:00.003-07:002012-04-06T07:21:05.818-07:00Google Trends for Android Version Names<a href="http://www.google.com/trends/?q=ice+cream+sandwich,+honeycomb,+gingerbread,+froyo,+eclair&ctab=0&geo=all&date=all&sort=0" target="_blank">This</a> <i>Google Trends</i> query shows the trends for the last 5 Android version names (ice cream sandwich, honeycomb, gingerbread, froyo, eclair).<br />
I had to smile when I realized why there's a heart beat pattern for "gingerbread".<br />
<br />
<img alt="" src="data:image/png;base64,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" />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-481272178320583162011-01-25T08:28:00.000-08:002011-01-25T08:28:00.171-08:00Pragmatic Diary with LaTeXA while ago, I decided to write something like a personal diary, and wanted to do it with LaTeX. I wanted to have a pragmatic environment, which is established when typing a simple command.<br />
<br />
Before I describe the implementation, I would like to describe this environment: <br />
<ul><li>When I run the command <i>diary</i>, an instance of <a href="http://en.wikipedia.org/wiki/Kate_%28text_editor%29">kate</a> opens a file named with the current date (e.g. 2010-12-09.tex, located in a directory, let's say $DIARY)</li>
<ul><li>If this file exists, then a warning appears, and it is opened</li>
<li>Otherwise, this file is created</li>
</ul><li>This file contains a skeleton for a LaTeX document, where I immediately can start writing down my thoughts</li>
<li>In the terminal-area of kate, I simply have to type pdflatex 2010-12-09.tex to compile the tex-file into a PDF. </li>
</ul><br />
And here is how I implemented it.<br />
The template for the LaTeX-skeleton looks as follows (file named <i>$DIARY/template.tex</i>):<br />
<br />
<pre class="prettyprint lang-latex">\input{./macros.tex}
\begin{document}
\title{}
\maketitle
Here goes the text
\end{document}
</pre><br />
The file <i>$DIARY/macros.tex</i> contains document and package definitions, that define the common properties for all tex-files, and hence a unique look for all resulting pdf-files.<br />
Example:<br />
<br />
<pre class="prettyprint">\documentclass[paper=a5,pagesize=auto]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{listings}
</pre><br />
The script, that launches when typing diary is the following (<i>$DIARY/diary.sh</i>):<br />
<br />
<pre class="prettyprint">#!/bin/bash
TODAY=$(date +"%Y-%m-%d")
BASE=~/Dokumente/texs
TEXFILE=$BASE/$TODAY.tex
PDFFILE=$BASE/$TODAY.pdf
if [ -f $TEXFILE ]
then
zenity --error --text "Tex-File $TEXFILE already exists!!!"
else
cp $BASE/template.tex $TEXFILE
fi
kate $TEXFILE &
cd $BASE
pdflatex $TEXFILE
okular $PDFFILE &
</pre><br />
Some notes:<br />
<ul><li><a href="http://freshmeat.net/projects/zenity">zenity</a> simply pops up a dialog box with the given warning</li>
<li><a href="http://okular.kde.org/">okular</a> is my favorite PDF viewer - in fact it could be any other viewer</li>
</ul>Finally, I made a softlink to <i>$DIARY/diary.sh</i> in <i>/usr/bin</i>.<br />
<br />
By the end of each year I might create a document named diary-201x.pdf, which includes all entries and is a nice compilation of my diary entries. For instance, this could be done with the <a href="http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/">pdftk</a>. (pdftk *.pdf cat output diary-201x.pdf)<br />
<br />
P.S.: You may wonder, why I'm mixing Gnome and KDE software. I'm working with Ubuntu and have some KDE-packages installed. Well, that's my environment, and I'm very fine with that. If you are Ubuntu-User, too, you will find all of the necessary software in the Ubuntu repositories (<i>sudo apt-get install XXX</i>, whereas XXX stands for kate, okular, zenity, pdftkm, etc.)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-74408035470500755192011-01-24T01:23:00.000-08:002011-01-24T06:26:01.229-08:00CropPDF integrated in NautilusDuring my master thesis I had to perform the following task several times: crop a PDF, i.e. remove the outer white borders of the PDF.<br />
<br />
A software called <a href="http://pdfcrop.sourceforge.net/">pdfcrop</a> (I think it is in the Ubuntu repositories) can do this. From a console the syntax is the following:<br />
<br />
<pre class="prettyprint">pdfcrop input.pdf output.pdf
</pre><br />
I wanted to use this feature from my file browser (Nautilus), by right-clicking the file-to-be-cropped and choosing "Scripts -> Crop PDF". Here is how to do this:<br />
<ul><li>Create a file called <i>CropPDF</i> located at <i>~/.gnome2/nautilus-scripts </i>with the following content<i><br />
</i></li>
<pre class="prettyprint">#!/bin/bash
pdfcrop $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS \
$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS</pre><li>Make it executable (<i>chmod +x CropPDF</i>) </li>
</ul>That's it.<br />
<b style="color: #990000;">Caution</b>: this modifies the file, on which you execute the operation!Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7677312289076087279.post-10859090055011696312011-01-24T00:43:00.000-08:002011-01-24T00:43:43.756-08:00Portable Apps - PortableApps.comToday I found a very useful web page: <a href="http://portableapps.com/">http://portableapps.com/</a><br />
It provides (freeware, free and open source) software, that can be carried on a portable device and can be used on any Windows computer.<br />
<br />
This seems to be optimal for my journey, because Internet cafés will mostly operate on Windows machines, and I won't have the rights to install software.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-3830247894838542942011-01-22T10:15:00.000-08:002011-01-22T10:21:46.230-08:00E-Mail Obfuscation<a href="http://techblog.tilllate.com/2008/07/20/ten-methods-to-obfuscate-e-mail-addresses-compared/">This</a> blog shows nine ways to obfuscate e-mails<br />
See the HTML source of <a href="http://ch.tilllate.com/061101_emailtest.php">this</a> page to see the internals.<br />
<br />
One of the easiest "rock-solid" methods, that do not earn spam is the following:<br />
<br />
<pre class="prettyprint"><style type="text/css">
span.codedirection {
unicode-bidi:bidi-override;
direction: rtl;
}
</style>
<span class="codedirection">
moc.oof@leinad
</span>
</pre><br />
This produces daniel@foo.com.<br />
<br />
<br />
This is the other "easy" way:<br />
<br />
<pre class="prettyprint"><style type="text/css">
span.displaynone { display:none; }
</style>
daniel@<span class=”displaynone”>null</span>foo.com
</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-76344046388304026922011-01-11T11:49:00.000-08:002011-01-11T11:54:13.726-08:00Scala == Effective Java ?Well, <a href="http://grahamhackingscala.blogspot.com/2011/01/does-scala-equal-effective-java-bloch.html">this</a> is an interesting article.<br />
<br />
The author states, that most of the items in the first chapter of Josh Bloch's famous <a href="http://java.sun.com/docs/books/effective/">Effective Java</a> present recommendations that are "either unnecessary, because Scala doesn't permit the corollary bad practice, or built into the language of Scala, or made easier to implement than they are in Java".<br />
<br />
The article closes with the following words:<br />
<blockquote>"If 'Effective Java' is considered essential reading, and the best practices in it are the de facto standard for writing good programs, shouldn't we all be giving serious consideration to switching to a language that is so very close to Java, but makes good programming even easier?" </blockquote>That motivates to get deeper into Scala. Thank you, Graham!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-8091201079009300912011-01-08T02:14:00.000-08:002011-01-24T06:58:37.483-08:00Time from GeoNames' RESTful Web Service via JSON/AJAXI needed a small gadget for my travel blog (which is not published yet) to display the current time where I am currently at. As I did not find a useful one, I decided to write my own, and soon found that <a href="http://www.geonames.org/">GeoNames.org</a> offers a <a href="http://www.geonames.org/export/web-services.html#timezone">RESTful Web Service</a> for this purpose.<br />
<br />
GeoNames publishes its work under a <a href="http://creativecommons.org/licenses/by/3.0/" rel="license">Creative Commons Attribution 3.0 License.</a> <br />
<br />
Here's the code:<br />
<pre class="prettyprint"><script language="JavaScript">
var url = "http://ws.geonames.org/timezoneJSON"+
"?lat=-34.608416&lng=-58.371391";
var jo = {}; // JSON Object
var req = new XMLHttpRequest();
req.open( "GET", url, true );
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
jo = JSON.parse( req.responseText );
document.getElementById("tt").innerHTML = jo.time;
}
};
req.send(null);
</script>
<div id="tt">...wait</div> </pre><b><br />
</b><br />
<b>Short Explanation:</b><br />
The URL of the GeoNames Service contains the latitude and longitude of the place where I will stay. That's implies the only drawback: I have to change this code, but I'm sure I won't change timezones every week.<br />
The request is sent via HTTP, and the server asynchronously (i.e. AJAX) sends back the result, which is handled in the shown function. The response is a JSON object, that has an attribute <i>time</i>, which is finally written to a reserved region (the <i>div</i> at the bottom of the code).<br />
<br />
Well, to demonstrate that it works -- that is the current time of Buenos Aires:<b><div id="tt">...wait</div></b><br />
<script language="JavaScript">
var url="http://ws.geonames.org/timezoneJSON?lat=-34.608416&lng=-58.371391";
var jo = {}; // JSON Object
var req = new XMLHttpRequest();
req.open( "GET", url, true );
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
jo = JSON.parse( req.responseText );
document.getElementById("tt").innerHTML = jo.time;
}
};
req.send(null);
</script><br />
<br />
<b style="color: #cc0000;">Note</b>, that this method is <span style="color: red;">not reliable</span>, as it does not always work! Sometimes, the JSON-response contains a message like <i>"Sorry, we cannot serve your request as our servers are busy"</i>. That's why I searched for another alternative, and found it <a href="http://24timezones.com/online_clock.php">here</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-67612550127962032052010-12-14T11:01:00.000-08:002010-12-17T11:03:08.018-08:00Picasa Web Albums Data APIYesterday, I had the idea to combine my ImageResizer-application with the <a href="http://code.google.com/apis/picasaweb/overview.html">Picasa Web Albums Data API</a>.<br />
<br />
I restructured the GUI and made it very easy to use. The user has to...<br />
<ul><li>choose the directory containing the photos,</li>
<li> enter an album name of his Google/Picasa account,</li>
<li>enter username and password,</li>
<li>and click on a button!</li>
</ul>The program works in the following steps:<br />
<ol><li>Login to the Google-Account</li>
<li>Get files from the given album (remote)</li>
<li>Get files from the chosen location (local)</li>
<li>For each file, that exists local, but does not exist remotely, resize the file to the given factor and upload it to the given Picasa Web album.</li>
</ol>If the <i>Override</i>-Checkbox is checked, however, the following steps are performed:<br />
<ol><li>Login to the Google-Account</li>
<li>Get files from the chosen location (local)</li>
<li>For each of the files, delete the remote version (if there is any), resize the file to the given factor and upload it to the given Picasa Web album.</li>
</ol><ol></ol>This solution seems to be optimal for uploading photos during my journey. There is no need to worry, which fotos I have already uploaded, because the "synchronization" is done by the software. <br />
<br />
Here's a screenshot of the current version:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_fstSGewVl2Q/TQe_jMI4RoI/AAAAAAAAAgo/YaE_qDyUpPM/s1600/Screenshot-ImageResizer.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="http://2.bp.blogspot.com/_fstSGewVl2Q/TQe_jMI4RoI/AAAAAAAAAgo/YaE_qDyUpPM/s400/Screenshot-ImageResizer.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-41052561054570154462010-12-10T07:08:00.000-08:002010-12-10T08:09:14.114-08:00Code-Listings with Syntax-Highlighting - Google Code PrettifierProbably I want to post code snippets in future. So I watched out for syntax-highlighters for code listings. The easiest to use was <a href="http://google-code-prettify.googlecode.com/">Google Code Prettifier</a>.<br />
<br />
A small tutorial is <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html">here</a>. <br />
<br />
Great things about this library:<br />
<ul><li>I can use the necessary css and javascript files directly from the <a href="http://google-code-prettify.googlecode.com/svn/trunk/src/">SVN repository.</a></li>
<li>It is easy to use, lightweigth and rather small (61KB for the CSS + JavaScript code) </li>
<ul><li>I don't even have to specify the language - the prettifier "guesses". However, if a guess fails, it can be supported by specifying the language anyway.</li>
</ul></ul>Here are some tests that should show that it works:<br />
<br />
Java:<br />
<pre class="prettyprint">public class Foo {
private int x = 1;
private String y = "foo";
}
</pre><br />
Bash:<br />
<pre class="prettyprint">#!/bin/bash
# hey, just a test
echo "hello world"
cat foo.txt | head -10 | tail -1
</pre><br />
HTML (the < and > symbols are HTML-escaped, but I'm not planning to post a lot of HTML/XML code anyway) - by the way: that's the structure of the code I used for the Java code sample above:<br />
<pre class="prettyprint"><html>
<head>
<link href="prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="prettify.js"></script>
</head>
<body onload='prettyPrint()'>
<pre class="prettyprint">
public class Foo {
private int x = 1;
private String y = "foo";
}
</pre>
</body>
</html>
</pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-58311134899146978722010-12-10T06:25:00.000-08:002010-12-10T06:26:11.052-08:00Eclipse Cross-Platform with Delta Pack<a href="http://ugosan.org/eclipse-rcp-delta-pack/">This</a> source describes how to deploy RCP applications for operating systems other than the operating system you are developing on.<br />
<br />
The tutorial is just great and shows how easy cross-platform deployment is!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-8090363209758521782010-12-09T11:47:00.000-08:002010-12-09T11:47:39.577-08:00First Experience with Eclipse RCP / SWT / JFaceAbout three years ago, I bought a (german) book about Rich-Client development with the Eclipse RCP, which I did not finish reading, as I did not like it. That's why I searched for Eclipse RCP tutorials on the Internet, and I found some nice ones.<br />
So I successfully ported my ImageResizer application to Eclipse. Honestly, I did not make use of many of the RCP's features, but there was not much reason for that. <br />
<br />
Things I've learned:<br />
<ul><li>Building a GUI with SWT / JFace</li>
<ul><li>Basic components, Layouts, Listeners </li>
<li>JFace's <i>Viewer</i> mechanism with <i>ContentProvider</i>, <i>LabelProvider</i> and an <i>Input</i>-Object</li>
</ul></ul><ul><li>Create a Plugin-Project with Eclipse</li>
<ul><li>Layout the Perspective</li>
<li>Use the Error-Log-View (<i>org.eclipse.pde.runtime.LogView</i>)</li>
<li>Export the Application</li>
</ul></ul><br />
The next things is a cross-operating-system build with the <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/details.php#DeltaPack">delta pack</a> (<a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php">download page</a>).<br />
Probably I will publish source code and/or more detailed instructions when this (small) project is finished.<br />
<br />
The following tutorials are the most important ones I used, and which I can recommend:<br />
<ul><li>General Intro: <a href="http://www.vogella.de/articles/EclipseRCP/article.html">http://www.vogella.de/articles/EclipseRCP/article.html</a></li>
<li>SWT Widgets overview: <a href="http://www.eclipse.org/swt/widgets/">http://www.eclipse.org/swt/widgets/</a></li>
<li>SWT Snippets: <a href="http://www.eclipse.org/swt/snippets/">http://www.eclipse.org/swt/snippets/</a></li>
</ul> A lot of good information can be found in newsgroups, forums, etc., too.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7677312289076087279.post-14900236159840992352010-12-07T02:43:00.000-08:002010-12-10T08:34:22.232-08:00Time for new thingsAs my master thesis is done, I finally have time for other things.<br />
The first of these things is this blog. I am going to post topics related to computer science (in the broadest sense). <br />
<br />
In exactly two months I will start to travel, so the time to catch up with technologies, books, projects, etc, that aroused my interest throughout the past months and years (but had no high priority due to lack of time) is quite limited (so the lack of time might come back soon...).<br />
<br />
However, I want to stay up-to-date with the progresses in the computer world during the journey, and am planning to continue posting to this blog (that's one of the reasons why I started it).<br />
<br />
I am also planning to make a travel blog. For this purpose, I am going to prepare myself by arranging and adjusting software that might support administrating my online resources from Internet cafès with slow Internet connections.<br />
<br />
Some time ago I have written a simple, small Java program, called <i>ImageResizer</i>.<br />
It offers to load a directory of JPG files and shrink it to a configurable size into a subdirectory called <i>resized</i>. The software is really trivial and did not take a lot of time to be written. But it helps uploading lots of (small-sized) pictures to the blog, without manually resizing them and having to waste time waiting for slow connections.<br />
<br />
I always was interested in writing an <a href="http://www.eclipse.org/rcp/">Eclipse RCP</a> application. So I am going to port this small ImageResizer GUI (Java Swing) to an application based on the Eclipse platform.<br />
<br />
The purpose is to improve my skills and learn new technologies, and finally I am going to use the software on my journey.<br />
<br />
My final goal is to have a set of programs (e.g. including ftp clients, ssh clients, etc.) that are a reasonable replacement for my desktop computer.<br />
<br />
P.S.: Yeah, I know, that this is one of the most basic blogger-templates, but I like it, and do not want to spend much time on modifying it.Unknownnoreply@blogger.com0