Tidhr Reader

My team made Tidhr Reader as our entry in Node Knockout 2013.

Fork me on GitHub
Posted in Other things, Programming, Software, Web development & design | Leave a comment

Running web apps in Google Chrome App mode

20131111-desktop-screenshotAre you running a lot of web apps in Google Chrome? You can start them in a app mode.

...\Google\Chrome\Application\chrome.exe --new-window --app=https://www.google.com/calendar/

On Windows 7 I just copied Google Chrome icon on the desktop and edited properties to have these arguments.

Posted in Other things, Software, Web development & design | Leave a comment

Tabs or spaces? I use both.

It seems most programmers don’t understand how tabs should be used in text files. (Since I always end up arguing about it.)

I use them both. Tabs to indent, spaces to align.

There really is no problems when you understand how it works.

For example here’s a simple function code:

<T>function example() {
<T><T>console.log('Hello World!');
<T><T>var foo = "bar",
<T><T>SSSShello = "world";
<T><T>return [foo, hello];

For ease of reading I wrote tabs with <T> and spaces as S.

Some readers will see my fictional tabulators with 4 spaces, some with 8 spaces — depending how they have configured their text editor — and I hope that’s their favorite amount of space. Please note: some users might be using GUI editor, where that could be set as 50 px!

Single S is of course written with single (1) space.

You say it will break somehow? I would like to know how. It really doesn’t unless you do something wrong.

Keep in mind that you cannot:

  • Mix tabs and spaces on the same horizontal (x) dimension in the file — of course that would break it! However likely for you, there’s never need to do that!
  • Never use tabs on the same line after you use spaces
  • Use broken text editor that converts your tabs to spaces on disk.

For more details see also this another blog post, Why tabs are clearly superior.

Posted in Programming | Leave a comment

PowerShell is just awesome

I’ve known for a while that PowerShell is useful but I never got myself to take that two hours to learn to actually use it. Today I did just that. And it’s simply awesome!

Tasks like reading a remote RSS feed can be done with just few lines of code. However the cool part is that these small programs (or cmdlets) can be easily used together.

Maybe the most powerful feature of PowerShell is it’s ability to pipe any collection of objects to an other program as they are. No need for parsing string streams. I would really like to see a portable version of that kind of piping shell — that works on *nix as well as in Windows!

Here’s my test application. It takes an URL for RSS feed as an argument and will return items from it.

param ([string]$url)
$wc = New-Object Net.WebClient
[xml]$resp = $wc.DownloadString($url)

Then you can use it like:

.\rssreader.ps1 http://www.jhh.me/blog/feed/

The raw output from this command to the console is quite detailed since it includes everything:


You can pipe the results to Out-GridView to get more graphical presentation of it:

.\rssreader.ps1 http://www.jhh.me/blog/feed/|Out-GridView

Notice that the table is formatted nicely. That’s because the piping is done with real objects instead of outdated string streams.


Maybe one reason why PowerShell takes time to learn is that it has quite strict security model by default. For example you cannot just write and run that example on your system without signing it or changing default security model. Read more about it from an article Running Scripts at TechNet.

PS: I bought also an ebook of O’Reilly’s PowerShell for Developers. I think it’s much softer crash course to PowerShell than most online articles.

Posted in Programming, Software, System Administration, Web development & design | Leave a comment

Setting up HTTP server on Windows with Node.js

Some years ago I dreamed about running JavaScript applications on Windows systems as easy as it was on Linux. It seems the future is here.

Today it’s really easy to setup Node.js and install NPM apps on Windows systems. Here’s a guide how to setup a HTTP server. No programming skills required! (Basically it’s the same process for any OS!)

  1. First you must install NodeJS.
  2. Open the command prompt to run following commands.
    • Windows 7: Open Start and write cmd into the search and press enter.
    • Windows XP: Open Start and select Run and write cmd and press enter.
  3. Run this command to install a HTTP server: npm install http-server -g
  4. And start the HTTP server: http-server /path/to/docroot with a path to the folder you want to share. Your folder must have some files before it works.
  5. Now just open http://localhost:8080/ in your browser.

I wonder if there is a GUI for NodeJS/NPM yet. However I don’t think running some simple commands is so hard thing to do.

NPM isn’t just for installing HTTP servers. There’s a lot of apps and libraries available and ready to be installed with APT-like interface. You can even publish your own software there!

Posted in Programming, Software, Web development & design | Tagged , , , , , , , , | 1 Comment

HBO started at Finland

This month great things happened. HBO launched HBONordic.com for customers at Finland.

That’s great improvement because we haven’t been able to watch these series instantly (not legally at least) before now — without waiting months or years for a DVD release or until our national TV stations bought those series — if they had enough money or interest to do so. Now we can pay directly to the source and watch them (almost) instantly — HBO is promising to publish their own series within 24 hours of US premiere.

We got Netflix some months ago, too, and I also have account there. However biggest problem with Finnish Netflix is that there isn’t much new content available and most of it is really old. Most content is so old that even our national TV stations have newer content. Of course that’s also a good thing — some of those are hard to find from elsewhere. (And yes, I know about the trick to watch US Netflix here but I don’t count it nor support doing that.)

Last week I got my invite to HBO. Of course there isn’t as much content as Netflix has but there certainly is newer content to watch — especially HBO’s own series.

Here’s a list of content available at HBO Nordic. Please note that it might have some mistakes because I made it with automated scripts.

HBO Nordic Series

HBO Nordic Movies

Posted in Movies, Series | Tagged , | Leave a comment

NKO 2012 — two days left!

I am participating in NKO once more this year.

We have a four member team and we’re planning to make a website with some hopefully interesting features.

I hope we get the first version of the site up before Saturday 8:00 UTC so we can get feedback from users before the competition ends Monday 0:00 UTC.

I took Monday free from the military so I can fully invest in the competition and recover from it.

Posted in Programming, Software, Web development & design | Leave a comment

I’m In The Army Now

So I have been in the Finnish Defence Forces in the basic training as a rookie a month now.

For you international readers I must state that it’s mandatory civil service in Finland from 6 to 12 months depending on type of training.

So far it’s been (almost) fun and we have more free time than I thought. However it’s obvious that I don’t have as much of it as I had in civil job(s) — don’t be alarmed if it will take time to reply to issues.

Posted in Programming | Leave a comment

PHP’s json_decode behaving badly

Funny thing with PHP’s json_decode…

$ php
<?php echo var_export(json_decode("true ", true), true) ?>

(Press ctrl-d after you write “?>”.)

The same using node.js:

$ node
> JSON.parse("true ")
> exit

Of course it could be argued that it’s a good feature to not ignore leading white spaces.

However most text editors are going to write at least one line break at the end of files — and that kind of line break was the problem of my bug at the moment.

Original available as gist #2353872.

Posted in Programming, Web development & design | Leave a comment

CSS Anti Spam Trick with content attribute

Some time ago I stumbled upon a simple way to add email addresses on web pages — that are not easy to read by bots — using only CSS.

First you add new class .email with your domain into your style sheet:

.email:after {
content:attr(title) "@example.com";

..then use it inside HTML code like this:

<span class="email" title="info"></span>

First part of the email address is written inside a title attribute and the content should be left empty.

Resulting HTML code looks like this:

Update: Look also CSS support for content. (It’s not supported in IE7 and older.)

Posted in Programming, Web development & design | Tagged , , , | Leave a comment