<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Jan Hančič</title><link>https://6b690e88.hancic-info.pages.dev/</link><description>Recent content on Jan Hančič</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><lastBuildDate>Wed, 22 Apr 2026 18:10:00 +0000</lastBuildDate><atom:link href="https://6b690e88.hancic-info.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Base for Yoto Mini Player</title><link>https://6b690e88.hancic-info.pages.dev/base-for-yoto-mini-player/</link><pubDate>Wed, 22 Apr 2026 18:10:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/base-for-yoto-mini-player/</guid><description>I&amp;rsquo;ve been really enjoying my 3D printer over the last year or so since I got it. Printed many things, some of which I&amp;rsquo;ve designed myself (and even documented some). Not all are worthy of talking about, but I thought this one was pretty nice.
We recently got a Yoto Mini Player (referral link) for our 5 year old with the hope of prolonging when we inevitably buy her a tablet.</description></item><item><title>Fume extractor</title><link>https://6b690e88.hancic-info.pages.dev/fume-extractor/</link><pubDate>Sun, 20 Apr 2025 17:00:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/fume-extractor/</guid><description>TL;DR: I designed a 3D printed fume extractor for soldering; you can make your own if you read this.
I recently got into 3D printing, electronics, and related topics. I want to write more about this in the future, as there is quite a lot to say on this wonderful subject. Today, however, I wanted to showcase my latest creation. This is significant because it is the first complete &amp;ldquo;product&amp;rdquo; I have created that could be used by anyone, not just me.</description></item><item><title>LEGO is not vegan</title><link>https://6b690e88.hancic-info.pages.dev/lego-is-not-vegan/</link><pubDate>Sun, 14 Jan 2024 17:00:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/lego-is-not-vegan/</guid><description>I&amp;rsquo;ve been a life-long fan of LEGO. Some of my earliest memories are of either playing with LEGO, and endlessly reading the catalogues (which I&amp;rsquo;ve still got). As I got older my life-style (i.e. living in a small, one-bedroom London apartment) made it hard to play with and display my LEGO, so I didn&amp;rsquo;t buy any for quite a long time. That changed a few years back when we moved to a much bigger place and I suddenly realised that I&amp;rsquo;m now an adult with a lot of space and a disposable income.</description></item><item><title>Hello there!</title><link>https://6b690e88.hancic-info.pages.dev/hello-there/</link><pubDate>Sun, 31 Dec 2023 14:30:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hello-there/</guid><description>Right, it seems this is my fifth first blog post, sort of. The fourth one was on this domain, but was done on the previous incarnation of the website (it used to run on WordPress). I&amp;rsquo;ve also not written anything in a terribly long time and after my website completely died earlier this year (a story for another day) I decided it&amp;rsquo;s time to renovate and to, maybe, start writing here a bit more frequently.</description></item><item><title>About</title><link>https://6b690e88.hancic-info.pages.dev/about/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/about/</guid><description>My name is Jan Hančič and this is my little corner of the world wide web. By profession I&amp;rsquo;m a software engineer. In my personal life things are a bit less certain; who I am changes yearly, which is exactly how I like it. However, there are a few things that I hope never change. I am a father to my exceptional daughter, partner to my amazing companion and I&amp;rsquo;m a vegan.</description></item><item><title>I helped build an augmented reality table tennis</title><link>https://6b690e88.hancic-info.pages.dev/i-helped-build-an-augmented-reality-table-tennis/</link><pubDate>Mon, 17 Nov 2014 19:33:02 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/i-helped-build-an-augmented-reality-table-tennis/</guid><description>We had an awesome Hackday at Caplin a couple of weeks ago. My team built, in 24 hours, something very special: augmented reality table tennis. I&amp;rsquo;ve written a blog post summarising how we did it on our company blog. You can read it here. Or, if you don&amp;rsquo;t feel like reading, you can watch a video of it here.</description></item><item><title>MirrorKey</title><link>https://6b690e88.hancic-info.pages.dev/mirrorkey/</link><pubDate>Sat, 16 Aug 2014 17:30:57 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/mirrorkey/</guid><description>Inspired by React&amp;rsquo;s keyMirror function I decided to roll my own, with one extra feature. It was really more of an excuse to start contributing to my GitHub account again, as I realise that the thing I made isn&amp;rsquo;t really note worthy. But then again, around 120 people have downloaded it in the last month, so maybe it&amp;rsquo;s not that useless.
So what is it? It&amp;rsquo;s a really simple utility function that saves you some keystrokes when defining constants in a object literal.</description></item><item><title>The state of mobile browsers</title><link>https://6b690e88.hancic-info.pages.dev/the-state-of-mobile-browsers/</link><pubDate>Tue, 12 Aug 2014 21:16:33 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/the-state-of-mobile-browsers/</guid><description>This isn&amp;rsquo;t a technical post, but a rant from a user&amp;rsquo;s point of view rather. I&amp;rsquo;m going to talk about mobile browsers on Android, as that&amp;rsquo;s the device I own. I don&amp;rsquo;t know what the situation is like on iOS, Windows or other. But I do hope it&amp;rsquo;s better.
Currently I have three browsers installed on my phone, and that is just ludicrous. The three browsers are: Dolphin, Chrome &amp;amp; Firefox.</description></item><item><title>I wrote two blog posts</title><link>https://6b690e88.hancic-info.pages.dev/i-wrote-two-blog-posts/</link><pubDate>Tue, 05 Aug 2014 21:03:30 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/i-wrote-two-blog-posts/</guid><description>I haven&amp;rsquo;t posted here in a while. But I have written two blog posts for my company&amp;rsquo;s blog. The first one is about me attending a London JS classes lecture, where I learned how to use JavaScript to control an Arduino. You can read it here.
The other one was published more recently, and talks about using git bisect and a product we make, BladeRunnerJS. Read it here.</description></item><item><title>Creating a faster forEach shim</title><link>https://6b690e88.hancic-info.pages.dev/creating-a-faster-foreach-shim/</link><pubDate>Sat, 15 Feb 2014 15:30:21 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/creating-a-faster-foreach-shim/</guid><description>Unfortunately we still need to support IE8 at our company, as that is what customers demand. Frustrating but necessary. So we have to spend a great deal of time fixing performance issues in this old browser. Recently a lot of us had serious performance problems with looping over arrays with the ES5 Array#forEach, so we had to change the code to &amp;ldquo;regular&amp;rdquo; for loops. And in one case even create an asynchronous forEach because IE8 just can&amp;rsquo;t handle the amount of data we are throwing at it.</description></item><item><title>Fixing console.log()</title><link>https://6b690e88.hancic-info.pages.dev/fixing-console.log/</link><pubDate>Sun, 09 Feb 2014 13:30:05 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/fixing-console.log/</guid><description>I&amp;rsquo;ve written about the problems of console.log(). I&amp;rsquo;ve also said that I&amp;rsquo;m going to do something about it once I have some spare time. Well, I had some spare time, so I fixed it.
The result is this little repository: console.real. There really isn&amp;rsquo;t much to it. You either call console.real.log() instead of console.log(), or you call console.real.install() and then just use the normal console methods. In both cases the log (and other methods such as ìnfo`) will start behaving as a real log.</description></item><item><title>console.log() is not a log</title><link>https://6b690e88.hancic-info.pages.dev/console.log-is-not-a-log/</link><pubDate>Wed, 13 Nov 2013 21:15:34 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/console.log-is-not-a-log/</guid><description>Today I&amp;rsquo;ve stared in my screen in disbelief when I&amp;rsquo;ve found out that console.log(), in Chrome (haven&amp;rsquo;t tested other browsers), doesn&amp;rsquo;t work the way I thought it works. I&amp;rsquo;d rather not think back on how many hours I&amp;rsquo;ve wasted by missing a bug because of this. So what&amp;rsquo;s the big deal? Well, it turns out that when you log an object to the console, it might not actually log what you think it should log.</description></item><item><title>Notifications overload</title><link>https://6b690e88.hancic-info.pages.dev/notifications-overload/</link><pubDate>Sun, 10 Nov 2013 13:03:58 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/notifications-overload/</guid><description>This is one of those first world problems, for sure, but it&amp;rsquo;s also a good startup/pet project idea. I&amp;rsquo;m sure anyone with a smartphone has the same problem, they might just not realise they have it. Notifications. They&amp;rsquo;re great, they let you know what&amp;rsquo;s going on. But it&amp;rsquo;s a problem because you get notified two, or more, times for everything.
Let&amp;rsquo;s take me for an example. At home I&amp;rsquo;ve linked my OS X with Facebook and I also have Facebook on my phone.</description></item><item><title>On semicolons &amp; brackets in JS</title><link>https://6b690e88.hancic-info.pages.dev/on-semicolons-brackets-in-js/</link><pubDate>Fri, 25 Oct 2013 13:37:43 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/on-semicolons-brackets-in-js/</guid><description>JavaScript allows you to omit semicolons at the end of certain statements as they will be inserted for you automatically. One can also put opening curly brackets on a new line. These two things are optional. Until they aren&amp;rsquo;t. And then it hurts.
JavaScript has a thing called automatic semicolon insertion (ASI), which basically means that you don&amp;rsquo;t have to put semicolons into your source code, as the JS engine will do it for you.</description></item><item><title>30 days of GitHub</title><link>https://6b690e88.hancic-info.pages.dev/30-days-of-github/</link><pubDate>Wed, 02 Oct 2013 21:12:17 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/30-days-of-github/</guid><description>Today marks my 30 day streak on GitHub. I didn&amp;rsquo;t start off with the goal of reaching 30 days, it just kinda happened. Sure after a while I didn&amp;rsquo;t want to break the streak, so I&amp;rsquo;ve &amp;ldquo;cheated&amp;rdquo; a bit occasionally with just opening a issue or by removing a space here and a new line there. But most of the days I&amp;rsquo;ve actually done something meaningful. And I plan to continue.</description></item><item><title>grunt-stitch-js</title><link>https://6b690e88.hancic-info.pages.dev/grunt-stitch-js/</link><pubDate>Sat, 21 Sep 2013 16:13:01 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/grunt-stitch-js/</guid><description>I&amp;rsquo;ve been working on a small JS library lately and as things started getting bigger and bigger it was time to split the code across multiple files. Having small pieces of functionality in separate files is great for reusability and testability. But then I had a problem of how to create the output file that would contain all the code, wrapped in a IIFE.
So naturally, in the heat of the moment, I created my own grunt task that would do the job for me.</description></item><item><title>No more comments</title><link>https://6b690e88.hancic-info.pages.dev/no-more-comments/</link><pubDate>Thu, 12 Sep 2013 22:41:54 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/no-more-comments/</guid><description>I&amp;rsquo;ve decided to disable new comments on this blog. To be honest I just got feed up with all the SPAM that was coming through the Akismet filters and I haven&amp;rsquo;t seen a legitimate comment in months (which is a bit sad, but entirely my fault since I haven&amp;rsquo;t been writing all that much lately).
I would receive at least one email from my blog telling me to review a new comment and it was always SPAM (and that got annoying rather quickly).</description></item><item><title>ExterminateGlobals.JS</title><link>https://6b690e88.hancic-info.pages.dev/exterminateglobals.js/</link><pubDate>Mon, 09 Sep 2013 21:59:41 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/exterminateglobals.js/</guid><description>Unwanted globals can sneak into your JS codebase quite quickly, all you need to do is forget that pesky var. That can off course introduce all sorts of trouble to your code base. If you&amp;rsquo;re lucky you&amp;rsquo;ll just be a bit embarrassed when your co-worker finds the global. But if you&amp;rsquo;re unlucky, that global can cause all sorts of bugs through your code base.
That&amp;rsquo;s why I&amp;rsquo;ve created this JavaScript utility that will tell you if you have any unwanted globals (as opposed to the globals you create intentionally, such as third party libraries).</description></item><item><title>Working alone is bad for me</title><link>https://6b690e88.hancic-info.pages.dev/working-alone-is-bad-for-me/</link><pubDate>Sat, 17 Aug 2013 14:10:05 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/working-alone-is-bad-for-me/</guid><description>I haven&amp;rsquo;t written in a while here, I know, I&amp;rsquo;ll try to amend this in the future. But the reason for my lack of writing is quite simple: I switched jobs and moved to another country. So you can imagine I&amp;rsquo;ve been quite busy and simply hadn&amp;rsquo;t had the time (+ I had to wait for more than 3 months to get broadband at my new place, but that&amp;rsquo;s a different story).</description></item><item><title>Callback parameter should always be last</title><link>https://6b690e88.hancic-info.pages.dev/callback-parameter-should-always-be-last/</link><pubDate>Sun, 10 Feb 2013 14:05:29 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/callback-parameter-should-always-be-last/</guid><description>Node.js is famous for being asynchronous. That means you&amp;rsquo;ll have a lot of callbacks or anonymous functions in your code. This can quickly lead to somewhat hard to follow code (hello callback pyramids). But that&amp;rsquo;s not what I want to talk about today.
What I want to talk about is the order of parameters in functions that also accept callbacks as parameters. To be fair in most of the libraries (that I&amp;rsquo;ve come across) this isn&amp;rsquo;t a issue.</description></item><item><title>hnHiringFilter - filter jobs on Hacker News</title><link>https://6b690e88.hancic-info.pages.dev/hnhiringfilter-filter-jobs-on-hacker-news/</link><pubDate>Fri, 01 Feb 2013 20:33:44 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hnhiringfilter-filter-jobs-on-hacker-news/</guid><description>I&amp;rsquo;m currently looking for a full time web-dev job in London. And a few days ago I remembered the monthly &amp;quot; Ask HN: Who is hiring?&amp;quot; threads on Hacker News. I also remembered what a pain it is to browse that thread. Especially if you&amp;rsquo;re not from the Bay area, for where most of the jobs are.
So I fired up my favourite editor and started making a simple bookmarklet that would remove all the jobs that are not from the city (or cities) I&amp;rsquo;m interested in.</description></item><item><title>Load JavaScript and CSS with one request</title><link>https://6b690e88.hancic-info.pages.dev/load-javascript-and-css-with-one-request/</link><pubDate>Wed, 23 Jan 2013 17:39:36 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/load-javascript-and-css-with-one-request/</guid><description>When it comes to web pages I&amp;rsquo;m a bit of a speed freak. I&amp;rsquo;m constantly on the lookout for new techniques to make my pages faster. So it&amp;rsquo;s a great pleasure that I can now say that I came up with a new * technique to speed up page rendering.
The idea came to me while I was analysing one of my pages and trying to figure out how to reduce the number of requests.</description></item><item><title>Client side validation on mobile</title><link>https://6b690e88.hancic-info.pages.dev/client-side-validation-on-mobile/</link><pubDate>Mon, 14 Jan 2013 09:11:30 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/client-side-validation-on-mobile/</guid><description>We all know that client side form validation leads to a better user experience, but why are so many pages out there without it?
JavaScript validation can save your users a lot of time and frustration by informing them that they did something wrong as early as possible. And this is especially important on mobile. Everything takes at least twice as long (and I&amp;rsquo;m being generous here) on mobile than on desktop.</description></item><item><title>Nobody cares you use Bootstrap</title><link>https://6b690e88.hancic-info.pages.dev/nobody-cares-you-use-bootstrap/</link><pubDate>Thu, 10 Jan 2013 16:58:16 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/nobody-cares-you-use-bootstrap/</guid><description>Reading Hacker News threads, related to Twitter Bootstrap, is lately kinda like going on a walk with a child, that just learned the word &amp;ldquo;car&amp;rdquo; and is now pointing and shouting &amp;ldquo;car, car, car!&amp;rdquo; all the time. Yes, it&amp;rsquo;s a car now, please, shut up.
Seriously, every time there is a story posted about some project/startup/hack, that happens to use bootstrap, people of HN suddenly forget why they are here, and somehow can&amp;rsquo;t get past that &amp;ldquo;it looks too bootstrapy&amp;rdquo;.</description></item><item><title>SDSzombi - a weekend hack</title><link>https://6b690e88.hancic-info.pages.dev/sdszombi-a-weekend-hack/</link><pubDate>Sun, 30 Dec 2012 13:17:10 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/sdszombi-a-weekend-hack/</guid><description>Last weekend I came up with an idea for a mini web page: SDSzombi.com. The idea came to me after the friday protests in our capital city. I won&amp;rsquo;t explain the issues in Slovenia at the moment, but suffice to know that our government (or rather the leading party) has labeled all protesters as zombies. They&amp;rsquo;ve done that on Twitter, where they also regularly block anyone who expresses disagreement with them.</description></item><item><title>Facebook messages UX</title><link>https://6b690e88.hancic-info.pages.dev/facebook-messages-ux/</link><pubDate>Fri, 21 Dec 2012 15:18:22 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/facebook-messages-ux/</guid><description>I was reading this article on how Facebook is experimenting with taking payments to deliver your message to some person&amp;rsquo;s inbox and not the &amp;ldquo;other&amp;rdquo; folder.
That reminded me that I should check that infamous &amp;ldquo;other&amp;rdquo; folder, just to check if somebody was trying to get in touch. Luckily there wasn&amp;rsquo;t since people still use email, not this half-assed messages thing from Facebook.
But I digress. I then checked the &amp;ldquo;spam&amp;rdquo; folder and decided to delete the three messages that ware in it (all ware moved there by me and not by FB&amp;rsquo;s filters mind you).</description></item><item><title>Missed opportunity for Instagram</title><link>https://6b690e88.hancic-info.pages.dev/missed-opportunity-for-instagram/</link><pubDate>Tue, 18 Dec 2012 10:59:52 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/missed-opportunity-for-instagram/</guid><description>Today the internet is filled with news about Instagram changing their Terms of Use. The meat of this changes, for me at least, is this:
You agree that a business or other entity may pay us to display your username, likeness, photos (along with any associated metadata), and/or actions you take, in connection with paid or sponsored content or promotions, without any compensation to you,
This basically means that Instagram/Facebook will be able to take your beautiful photo (and in case you are famous, your name) and sell it to some other company to use in their advertisements.</description></item><item><title>After mentoring Rails Girls</title><link>https://6b690e88.hancic-info.pages.dev/after-mentoring-rails-girls/</link><pubDate>Mon, 17 Dec 2012 14:28:58 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/after-mentoring-rails-girls/</guid><description>The first Rails Girls event in Ljubljana was great fun and a huge success. I volunteered to be a mentor and I&amp;rsquo;m really glad that I did. The whole day went by in the blink of an eye, and I&amp;rsquo;ll be more than happy to do it again someday.
Me coaching @ManjaUZ and @AndrejaCokl (© Katarina Jazbec &amp;amp; Rails Girls Ljubljana)
The whole point of the event was to introduce girls to the world of programming, and to expose the fact that there basically aren&amp;rsquo;t any women in IT.</description></item><item><title>Pick a style, any style</title><link>https://6b690e88.hancic-info.pages.dev/pick-a-style-any-style/</link><pubDate>Thu, 13 Dec 2012 14:24:00 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/pick-a-style-any-style/</guid><description>I&amp;rsquo;m sorry, but if you sometimes put spaces around parentheses and sometimes you don&amp;rsquo;t, I just can&amp;rsquo;t be your friend any more.
I&amp;rsquo;m talking about source code writing style of course, or rather lack of it. Whenever I open some file that looks something like this &amp;hellip;
&amp;hellip; I get a sudden urge to punch however wrote that in the face.
If you are writing code like that, you are telling other people that you haven&amp;rsquo;t got the slightest interest in what you do.</description></item><item><title>How to be cool in Google search</title><link>https://6b690e88.hancic-info.pages.dev/how-to-be-cool-in-google-search/</link><pubDate>Fri, 23 Nov 2012 16:30:17 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/how-to-be-cool-in-google-search/</guid><description>You may have noticed, in recent months, that some search results on Google have extra stuff displayed next to the regular title and small text that we are used to. Some even have images displayed! So, what&amp;rsquo;s this all about?
There are actually two different things going on. One thing are schemas (more on them later) and what you see on the image above is a Google-only trick, that allows you to link your Google+ profile with the content you publish on the internet (your blog most likely).</description></item><item><title>HN Favourite Users</title><link>https://6b690e88.hancic-info.pages.dev/hn-favourite-users/</link><pubDate>Sun, 18 Nov 2012 18:50:47 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hn-favourite-users/</guid><description>Let&amp;rsquo;s face it, Hacker News could do with a make over and some new features, but I don&amp;rsquo;t think that that&amp;rsquo;s going to happen anytime soon. So I&amp;rsquo;ve decided to scratch one of my own itches with it and made a new extension for Chrome: HN Favourite Users. What it does is highlights your favourite users on any HN page that you are on. Nothing fancy really but it gives me a feature I&amp;rsquo;ve always wanted.</description></item><item><title>Mentoring Rails Girls</title><link>https://6b690e88.hancic-info.pages.dev/mentoring-rails-girls/</link><pubDate>Fri, 16 Nov 2012 15:14:17 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/mentoring-rails-girls/</guid><description>There&amp;rsquo;s a lovely new event coming up here in Ljubljana, aimed at women who&amp;rsquo;d like to learn programming. Apparently this has already been done across the globe and it&amp;rsquo;s been quite a success. Rails Girls is a two-day workshop for women who don&amp;rsquo;t have any experience with programming, and the aim is to introduce this subject to more females in hopes that the IT world wouldn&amp;rsquo;t be so male dominated. I think that this is a fantastic idea so I&amp;rsquo;ve volunteered to help them out with mentoring.</description></item><item><title>New design</title><link>https://6b690e88.hancic-info.pages.dev/new-design/</link><pubDate>Sat, 03 Nov 2012 10:25:46 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/new-design/</guid><description>You are looking at a new design for this page. The old one was really, well &amp;hellip; old. And it gave me a perfect opportunity to play around with Twitter Bootstrap. I must say that I like this bootstrap thing a whole lot. It&amp;rsquo;s really amazing when you see what you can come up with in ridiculous small amounts of time. And if you are brain dead as far as design goes (like me) it really can help you build some amazing stuff.</description></item><item><title>How to serve JS&amp;CSS files properly (part 2)</title><link>https://6b690e88.hancic-info.pages.dev/how-to-serve-jscss-files-properly-part-2/</link><pubDate>Wed, 24 Oct 2012 18:16:07 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/how-to-serve-jscss-files-properly-part-2/</guid><description>In the first part of this post I talked about how you can minify and combine your CSS and JavaScript files. Now, let&amp;rsquo;s have a look at the rest of the items:
compress cache serve from cookie-less domain Compress .js and .css files
Again, smaller is better and with flicking the right switches in your web server you can save a lot of bandwidth and download time for your users. Since there are many web servers I won&amp;rsquo;t go into details on how to do that, but it&amp;rsquo;s fairly straight-forward on most of them.</description></item><item><title>OSX leave my USB key alone</title><link>https://6b690e88.hancic-info.pages.dev/osx-leave-my-usb-key-alone/</link><pubDate>Sat, 06 Oct 2012 11:38:08 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/osx-leave-my-usb-key-alone/</guid><description>I&amp;rsquo;ve been using OSX for almost a year now which, naturally, makes me an expert on all things OSX and gives me the right to rant about it. It&amp;rsquo;s been a mostly pleasant year, but there are some issues with this god-sent operating system. The single most annoying thing about OSX is how it&amp;rsquo;s handling USB keys (or any other external storage for that matter). I really want to smack somebody for this cock-up.</description></item><item><title>How to serve JS&amp;CSS files properly (part 1)</title><link>https://6b690e88.hancic-info.pages.dev/how-to-serve-jscss-files-properly-part-1/</link><pubDate>Thu, 20 Sep 2012 14:35:16 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/how-to-serve-jscss-files-properly-part-1/</guid><description>In the world of front end optimization you will want to start with how you serve CSS and JavaScript files. Same rules can be applied to both types of files:
minify combine compress cache serve from cookie-less domain In this first part I&amp;rsquo;ll explain the first two items from the list:
Minify .js and .css files
Minifying your CSS&amp;amp;JS files will reduce their size which means that clients will be able to download them faster.</description></item><item><title>Google analytics and cookies</title><link>https://6b690e88.hancic-info.pages.dev/google-analytics-and-cookies/</link><pubDate>Fri, 14 Sep 2012 17:00:06 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/google-analytics-and-cookies/</guid><description>If you are using Google Analytics you&amp;rsquo;ve probably noticed that it sets a bunch of cookies on your computer. They have to set those cookies to be able to track users activity on your page. But unfortunately this has a rather annoying side affect of always sending those cookies as part of the request when user navigates your web page. That means that if you host all your assets (images, css&amp;amp;js files, &amp;hellip;) on the same domain (or sub domain) as your page, that every request for every one of those assets will contain that, to you, useless information:</description></item><item><title>Optimize JPG/JPEG images automatically with JpegTran</title><link>https://6b690e88.hancic-info.pages.dev/optimize-jpg/jpeg-images-automatically-with-jpegtran/</link><pubDate>Fri, 14 Sep 2012 11:55:55 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/optimize-jpg/jpeg-images-automatically-with-jpegtran/</guid><description>Optimizing front end performance of your web page is both a hard and really rewarding job. Hard because there are so many things you have to take care of. And rewarding because you will gain a lot more out of it than optimizing your back end (most of the time spent rendering a web page is spent in the browser). And speed does matter when it comes to web pages.</description></item><item><title>Run SQL queries in the background with PHP</title><link>https://6b690e88.hancic-info.pages.dev/run-sql-queries-in-the-background-with-php/</link><pubDate>Wed, 12 Sep 2012 12:59:19 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/run-sql-queries-in-the-background-with-php/</guid><description>As any developer working with SQL will tell you, sometimes some queries are just slow and there isn&amp;rsquo;t much you can do about it. MySQL&amp;rsquo;s InnoDB can be painfully slow at inserts for instance. I was recently dealing with this exact problem and after some thinking I&amp;rsquo;ve came up with a really nice solution that offloads slow inserts to the background. The end result is that the user making a request does not have to wait for that query to finish.</description></item><item><title>Open Source Software and Me</title><link>https://6b690e88.hancic-info.pages.dev/open-source-software-and-me/</link><pubDate>Sat, 24 Dec 2011 12:31:29 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/open-source-software-and-me/</guid><description>I&amp;rsquo;m a big fan of open source software, my job would be totally different if it wouldn&amp;rsquo;t exist. So I am really super excited because my boss granted me 4 hours a week to work on any OS project I find interesting. The plan here is for me to learn some team work and to give back to the community that has given us so much.
Yesterday was the first day of my endeavor.</description></item><item><title>SimplePageCheck</title><link>https://6b690e88.hancic-info.pages.dev/simplepagecheck/</link><pubDate>Sat, 25 Dec 2010 16:24:06 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/simplepagecheck/</guid><description>I forgot to write about this. I&amp;rsquo;ve made a simple PHP5 class that you can use to check web pages if they contain various string(s) (you can also use regular expressions).
I&amp;rsquo;ll just copy/paste the description from the project&amp;rsquo;s github page:
I often build a &amp;ldquo;debug&amp;rdquo; sub-page on my projects that list various things about the state of the web page (memcache keys, memory usage, &amp;hellip;). And it got boring to check the page every now and then by hand to see if everything is OK.</description></item><item><title>Announcing SimpleBugz.com</title><link>https://6b690e88.hancic-info.pages.dev/announcing-simplebugz.com/</link><pubDate>Sun, 17 Oct 2010 17:08:59 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/announcing-simplebugz.com/</guid><description>There was a thread on Hacker News recently that captured my attention. User secos suggested that we make November &amp;ldquo;launch an app month&amp;rdquo;. The idea is that you *have to* create a new application or launch one that you are already working on, by the end of November. The premise being that a lot of hackers work on some great idea but never release it because it&amp;rsquo;s , in their mind, never quite finished yet, and stating publicly that you will launch gives you motivation and pressure to actually do so.</description></item><item><title>FuglyDo5 on GitHub</title><link>https://6b690e88.hancic-info.pages.dev/fuglydo5-on-github/</link><pubDate>Mon, 11 Oct 2010 22:05:18 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/fuglydo5-on-github/</guid><description>I&amp;rsquo;ve created a GitHub repository for my 10k Apart challenge entry FuglyDo5 (more about that in my previous post). You can find/fork the repository here.</description></item><item><title>Google Chrome extension bug</title><link>https://6b690e88.hancic-info.pages.dev/google-chrome-extension-bug/</link><pubDate>Sun, 03 Oct 2010 18:09:33 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/google-chrome-extension-bug/</guid><description>I&amp;rsquo;m working on a new extension for chrome, which will add, now missing, functionality to Facebook. The extension uses a &amp;ldquo;content script&amp;rdquo; which is only run on URLs that match a certain pattern and it also loads a CSS file which has some styles for the elements I inject into the page. But I had a problem that the CSS simply did not load and no amount of googling helped me resolve the issue, it seems as if no one had ever had a problem like this.</description></item><item><title>HN Unread Comments</title><link>https://6b690e88.hancic-info.pages.dev/hn-unread-comments/</link><pubDate>Sun, 26 Sep 2010 14:25:04 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hn-unread-comments/</guid><description>I often have problems keeping up with the huge amount of comments on Hacker News submissions, so I developed a simple Google Chrome extension that shows which comments are new. It works on individual items and on the &amp;ldquo;threads&amp;rdquo; page.
You can install the extension from the Google Chrome extensions page.
I&amp;rsquo;ve also decided to put the code on GitHub so feel free to fork and improve the extension. You&amp;rsquo;ll see that it&amp;rsquo;s really simple, only 39 lines of code including comments at this point.</description></item><item><title>My first github repository</title><link>https://6b690e88.hancic-info.pages.dev/my-first-github-repository/</link><pubDate>Wed, 22 Sep 2010 16:27:15 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/my-first-github-repository/</guid><description>I&amp;rsquo;ve decided to open a GitHub account so I can keep track on what&amp;rsquo;s happening with my favourite projects. I&amp;rsquo;ve also decided to create some projects of my own there. So here it is my first GitHub repository: Chrome badge animator. It&amp;rsquo;s just a simple JavaScript class you can use if you are building Chrome extensions. I have already posted about it some time ago. Nothing special, just something to get me started with this social coding thing.</description></item><item><title>10K Apart challenge</title><link>https://6b690e88.hancic-info.pages.dev/10k-apart-challenge/</link><pubDate>Fri, 13 Aug 2010 18:08:53 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/10k-apart-challenge/</guid><description>An Event Apart has put together a 10K Apart challenge in which participants must write a fully functional HTML5 application while using only 10K. I had to take part, so I&amp;rsquo;ve made a simple, totally unoriginal and ugly todo app called FuglyDo5 (I&amp;rsquo;ll appreciate a vote). It uses some new HTML5 tags some basic CSS3 and localStorage so that data is persistent across browser sessions. You can export/import your data and you can undo if you mark a item as completed or deleted.</description></item><item><title>I may, or may not, be incompetent</title><link>https://6b690e88.hancic-info.pages.dev/i-may-or-may-not-be-incompetent/</link><pubDate>Fri, 04 Jun 2010 17:11:53 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/i-may-or-may-not-be-incompetent/</guid><description>By I, I mean we, and by we, I mean me and my boss. And by me and my boss, I mean everybody who manages other people or their experiences of whatever sort. For example, you walk into a groceries store and immediately see 10 things that are just wrong or plain old stupid. And you think: &amp;ldquo;if I ran this I&amp;rsquo;d be so much better&amp;rdquo;. For instance, I would open the second (and the third), cash register when there are 20 people queuing behind one that is open (and operated by an old lady whose source of joy, it seems, is making other people wait indefinitely).</description></item><item><title>Knowledge is a tricky business</title><link>https://6b690e88.hancic-info.pages.dev/knowledge-is-a-tricky-business/</link><pubDate>Thu, 01 Apr 2010 20:51:43 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/knowledge-is-a-tricky-business/</guid><description>Working in IT, I&amp;rsquo;m painfully aware that technology I learn about today can, and most probably will, be obsolete tomorrow. And I&amp;rsquo;m quite happy with that as it gives me reason to learn new stuff constantly. But recently I was reminded that even stuff that you think you know and generally doesn&amp;rsquo;t change can &amp;hellip; well change, some APIs change constantly and you have to re-learn them all the time. But that usually isn&amp;rsquo;t a problem as you will be reminded of the change by your program not working (and by the yelling of your customers, off course).</description></item><item><title>Why I worked on Sunday?</title><link>https://6b690e88.hancic-info.pages.dev/why-i-worked-on-sunday/</link><pubDate>Thu, 21 Jan 2010 18:41:09 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/why-i-worked-on-sunday/</guid><description>I was in the office almost all day this past Sunday. Many people asked me: &amp;ldquo;why&amp;rdquo;? Here is my answer: I love what I do, I don&amp;rsquo;t consider my work as a job but something I do because I enjoy it. The fact that I&amp;rsquo;m living off of it is just a bonus.
It never ceases to amaze me, how almost nobody I know, outside of my colleagues, likes what he is doing.</description></item><item><title>What I've done in 2009</title><link>https://6b690e88.hancic-info.pages.dev/what-ive-done-in-2009/</link><pubDate>Thu, 31 Dec 2009 13:01:22 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/what-ive-done-in-2009/</guid><description>I don&amp;rsquo;t really get the whole new year thing. Everybody is talking about change and good wishes and what not, but I don&amp;rsquo;t see how anything will change just because of a simple date increment. I guess humanity needs this artificial mile stones to reflect on what has been done and what has happened. Having said that, today probably is a day, as good as any, to look back and think a little.</description></item><item><title>My lecture at WebCampLjubljana - video</title><link>https://6b690e88.hancic-info.pages.dev/my-lecture-at-webcampljubljana-video/</link><pubDate>Wed, 30 Dec 2009 15:06:23 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/my-lecture-at-webcampljubljana-video/</guid><description>As I&amp;rsquo;ve mentioned in my previous post, I had a lecture about Sass at WebCampLjubljana in November. Guys that put the whole thing together now published the videos (every lecture was recorded) and here is my lecture:
Sass – a better way to write CSS from Jan Hančič on Vimeo.
It was my first time doing something like this, so I was a wee nervous but I think it doesn&amp;rsquo;t show (except that I used &amp;ldquo;amm&amp;rdquo; as every second word).</description></item><item><title>Badge animator for Chrome extensions</title><link>https://6b690e88.hancic-info.pages.dev/badge-animator-for-chrome-extensions/</link><pubDate>Sat, 05 Dec 2009 17:15:01 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/badge-animator-for-chrome-extensions/</guid><description>I&amp;rsquo;ve been playing with extensions in Chrome lately. It&amp;rsquo;s amazing how simple it is to make an extension, if you know JavaScript, HTML and CSS you are all set to go. Read this tutorial from Google to see for yourself. I&amp;rsquo;m now coding something that will, hopefully, someday become a &amp;ldquo;new private message notifier&amp;rdquo; for Mojvideo.com, nothing fancy but a great start for someone who has never developed an extension for anything (well OK I have written some jQuery plugins).</description></item><item><title>simple jQuery optimization tips</title><link>https://6b690e88.hancic-info.pages.dev/simple-jquery-optimization-tips/</link><pubDate>Fri, 04 Dec 2009 14:40:27 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/simple-jquery-optimization-tips/</guid><description>JavaScript is getting more and more important in the development of web pages and web applications. Unfortunately JavaScript is rather slow on some of the browsers (I&amp;rsquo;m looking at you IE), so we must strive to make our code as efficient as possible so that our users get a quick and responsive user interface. I use jQuery on all of my projects so I&amp;rsquo;ll share some tips on how to improve the performance here.</description></item><item><title>My lecture at WebCampLjubljana</title><link>https://6b690e88.hancic-info.pages.dev/my-lecture-at-webcampljubljana/</link><pubDate>Mon, 16 Nov 2009 23:06:47 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/my-lecture-at-webcampljubljana/</guid><description>I will have a lecture next weekend at WebCampLjubljana. I will be lecturing about Sass (Syntactically Awesome Stylesheets), a better way of writing CSS. I don&amp;rsquo;t know at what time my lecture will be so come and stay the whole day, there will be tons of other great lectures.
I am a little bit nervous since this will be my first talk before about 100 people and in English to top it off (and my English, as you can read, is not all that good).</description></item><item><title>Hey Opera ... I hate you!</title><link>https://6b690e88.hancic-info.pages.dev/hey-opera-...-i-hate-you/</link><pubDate>Thu, 12 Nov 2009 19:41:01 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hey-opera-...-i-hate-you/</guid><description>Based on recent experience, Opera is a really crappy browser to develop for. It&amp;rsquo;s developer tools are almost totally useless and it has this wired bugs that you can&amp;rsquo;t find any info on how to fix them. At least with IE every bug and quirk is covered in great detail on many pages over the internet. Once you start doing something fancy and try to make it work in Opera you are pretty much on your own.</description></item><item><title>Mojalbum.com launch</title><link>https://6b690e88.hancic-info.pages.dev/mojalbum.com-launch/</link><pubDate>Wed, 28 Oct 2009 18:18:21 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/mojalbum.com-launch/</guid><description>I have updated my showcase page, notice the first item in the list: Mojalbum.com. This web page is not new (it was &amp;ldquo;born&amp;rdquo; more than 5 years ago), but our company has bought it earlier this year. And now we have re-realesed it after we have built it from scratch. All that is left is the data (over 4.3 million images), everything else (including the database) is brand new. This is one of the on-going projects so expect to see some related posts in the future.</description></item><item><title>Change page title with jQuery</title><link>https://6b690e88.hancic-info.pages.dev/change-page-title-with-jquery/</link><pubDate>Wed, 14 Oct 2009 15:15:16 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/change-page-title-with-jquery/</guid><description>I just had a need to change the title of the page with JavaScript, and since I use jQuery I imediatelly wrote this:
$( &amp;#39;title&amp;#39; ).html ( &amp;#39;new title&amp;#39; ); and it didn&amp;rsquo;t work. Ok, how about this:
$( &amp;#39;title&amp;#39; ).val ( &amp;#39;new title&amp;#39; ); nope. So after some googling I found out that jQuery just can&amp;rsquo;t do that. You have to use plain old JavaScript:
document.title = &amp;#39;new title&amp;#39;; I posted this because I think it&amp;rsquo;s interesting how one gets to rely on a tool he uses, without even thinking to use the technology on which the tool is build, even if that is clearly the better way to go.</description></item><item><title>Setting PHP variables from JavaScript</title><link>https://6b690e88.hancic-info.pages.dev/setting-php-variables-from-javascript/</link><pubDate>Thu, 08 Oct 2009 08:10:02 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/setting-php-variables-from-javascript/</guid><description>There&amp;rsquo;s a great deal of forum threads floating around internet where someone is asking &amp;ldquo;how to set a PHP variable from JavaScript/client&amp;rdquo;. In most cases the author just doesn&amp;rsquo;t know how the technology (html, JavaScript, PHP, http, &amp;hellip;) he is using works. I&amp;rsquo;m assuming he somehow thinks that if he will (somehow) set/change a PHP variable from JavaScript that it will change the execution flow of PHP for that request (not that he knows what a request is).</description></item><item><title>Pretty textbox jQuery plugin</title><link>https://6b690e88.hancic-info.pages.dev/pretty-textbox-jquery-plugin/</link><pubDate>Sat, 26 Sep 2009 11:00:05 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/pretty-textbox-jquery-plugin/</guid><description>Some time ago I made a pretty search box for our latest project (not yet released) and I thought I&amp;rsquo;d make it into a jQuery plugin and share it with you. The goal was to have a text input with some default text (search this, or search that) and a pretty magnifying glass image in the right. And when you click (or give focus to) into the input the default text and the image would disappear.</description></item><item><title>Conditional CSS</title><link>https://6b690e88.hancic-info.pages.dev/conditional-css/</link><pubDate>Tue, 22 Sep 2009 23:14:32 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/conditional-css/</guid><description>CSS is a lovely thing, but it can get out of your hands very quickly (especially if you are programmer first and HTML code-monkey second). I often find myself having some element that appears on various sub-pages of a page, comments for example. HTML is stored in a template file and included where needed and styles, that make the comments pretty, are usually in the main CSS file. No problem with this approach if comments are exactly the same on whichever sub-page they resist.</description></item><item><title>Be progressive and do community a favor at the same time</title><link>https://6b690e88.hancic-info.pages.dev/be-progressive-and-do-community-a-favor-at-the-same-time/</link><pubDate>Fri, 24 Jul 2009 19:07:32 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/be-progressive-and-do-community-a-favor-at-the-same-time/</guid><description>Currently there are around 5% of internet users that have JavaScript disabled or their browser doesn&amp;rsquo;t support it. I&amp;rsquo;m all for progressive enhancement and degrading gracefully,whether you do it or not, depends on you. I, for one, look forward to the day when this percentage will be zero, and we can all forget about this. Until then I will do my best to keep my web pages friendly to users without JavaScript (I am a prefectionist after all :).</description></item><item><title>@ operator is slow</title><link>https://6b690e88.hancic-info.pages.dev/@-operator-is-slow/</link><pubDate>Sun, 21 Jun 2009 09:44:13 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/@-operator-is-slow/</guid><description>The @ &amp;ldquo;operator&amp;rdquo; in PHP is used to silence any warnings or errors that would otherwise be shown (in the browser or the log). It&amp;rsquo;s really useful, because sometimes you know you can safely ignore a warning or error, when checking if a GET variable is set for instance. Until today I though that, if used properly and with caution, the @ operator can be freely used. Then I read this article.</description></item><item><title>Aliiike recommendation engine</title><link>https://6b690e88.hancic-info.pages.dev/aliiike-recommendation-engine/</link><pubDate>Tue, 16 Jun 2009 19:21:14 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/aliiike-recommendation-engine/</guid><description>We updated igre123.com today and one of the main new features is the recommended games you see on the right of the game you are playing:
You may not see this if you go see for yourself. Either you are viewing a game that hasn’t got enough data collected to show the recommendations or you are one of the &amp;ldquo;lucky&amp;rdquo; 20% of users who don&amp;rsquo;t see the recommendations (we are comparing how well this new feature influences bounce rate, time on page, &amp;hellip;).</description></item><item><title>Anonymous paradise</title><link>https://6b690e88.hancic-info.pages.dev/anonymous-paradise/</link><pubDate>Thu, 11 Jun 2009 15:57:39 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/anonymous-paradise/</guid><description>Google&amp;rsquo;s gmail is great; I can&amp;rsquo;t imagine working with email without it. Unfortunately, as with everything, there are some issues with it.
Did you know that the following email addresses all &amp;ldquo;translate&amp;rdquo; to the same account: not.a.real.email@gmail.com,notarealemail@gmail.com, not.arealemail@gmail.com, n.o.t.a.r.e.a.l.e.m.a.i.il@gmailcom, &amp;hellip; ?
This is great, because who could remember where the dots are when somebody tells you his email? But this also means that a user can register on your site using one email multiple times (how many times depends on the length of his email), because he can just randomly rearrange the dots and voila a valid unused email.</description></item><item><title>php konferenca 2009</title><link>https://6b690e88.hancic-info.pages.dev/php-konferenca-2009/</link><pubDate>Sat, 06 Jun 2009 18:15:23 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/php-konferenca-2009/</guid><description>This year’s Slovenian PHP conference just finished. This was the second installment of the only PHP event here in Slovenia. It&amp;rsquo;s a shame I wasn&amp;rsquo;t there last year so I can&amp;rsquo;t compare. Overall I was really impressed with everything, all but two talks ware magnificent. Guys from videolectures.net have recorded the whole thing so you will be able to see the conference if you weren’t able to make it.
Below are my opinions on the lectures:</description></item><item><title>IE6 is dead ... over the weekend</title><link>https://6b690e88.hancic-info.pages.dev/ie6-is-dead-...-over-the-weekend/</link><pubDate>Thu, 04 Jun 2009 21:28:32 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/ie6-is-dead-...-over-the-weekend/</guid><description>Every time I&amp;rsquo;m writing new HTML&amp;amp;CSS I check google analytics to see what browsers our users are using. I do this so I can determine what browsers must be supported and if Internet Explorer 6 is, by any chance, dead yet. This is, annoyingly, still not the case (I shall be very drunk when that day comes). IE6 still has, on one of our web pages, 47.30% share between different IE versions (IE7 trails it closely with 47,06%).</description></item><item><title>Facebook like rounded images</title><link>https://6b690e88.hancic-info.pages.dev/facebook-like-rounded-images/</link><pubDate>Sun, 31 May 2009 09:30:38 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/facebook-like-rounded-images/</guid><description>We are currently renewing Igre123 with a wider design to accommodate the new standard web resolution. Somewhere along the way, we decided that it would be nifty if user&amp;rsquo;s avatars would be rounded like on Facebook:
I thought the task would be difficult at first, but after I tossed some CSS around, I found out that this is not the case. In a nutshell: you have a regular rectangular image and then you make another (overlay) image that you put on-top of the first image.</description></item><item><title>The Invisible Man</title><link>https://6b690e88.hancic-info.pages.dev/the-invisible-man/</link><pubDate>Wed, 20 May 2009 20:59:12 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/the-invisible-man/</guid><description>If you have a web page such as YouTube or Mojvideo, where the sole reason for a pages success is user generated content and the quantity (and quality off course) of it, it&amp;rsquo;s easy to forget about the users who don&amp;rsquo;t contribute to the content of the page. We (at Popcom) spent most of the time developing and improving features for registered users, which isn&amp;rsquo;t bad per se, but unregistered users (who account for the majority of visitors) usually don&amp;rsquo;t gain anything from that.</description></item><item><title>The rage</title><link>https://6b690e88.hancic-info.pages.dev/the-rage/</link><pubDate>Wed, 13 May 2009 23:11:11 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/the-rage/</guid><description>Another common usability mistake most make, is the step after a user signs into a web page. Most web pages will redirect a user to the front page or his profile page, which is fine if he is signing in from the front page. But most commonly a user will sign in when he is forced to do so, when he tries to leave a comment for instance:
The text translates as &amp;ldquo;Sign in, if you want to comment, rate or add the game to your favorites&amp;rdquo;.</description></item><item><title>Generate sitemap(s) with PHP</title><link>https://6b690e88.hancic-info.pages.dev/generate-sitemaps-with-php/</link><pubDate>Sat, 09 May 2009 14:45:53 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/generate-sitemaps-with-php/</guid><description>Sitemaps are XML files that help web crawlers (google, yahoo, &amp;hellip;) get to know your web page better. The sitemap file contains information about when a web page or sub page was last modified, how often it is updated, etc. It also includes a &amp;ldquo;priority&amp;rdquo; information which tells the crawler how important is one page in comparison with other web pages on the same domain. I won&amp;rsquo;t go into any details here as you can read all about sitemaps here.</description></item><item><title>Another One Bites the Dust</title><link>https://6b690e88.hancic-info.pages.dev/another-one-bites-the-dust/</link><pubDate>Fri, 08 May 2009 17:15:28 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/another-one-bites-the-dust/</guid><description>I like talking about usability, so today I&amp;rsquo;ll talk about another easy way to improve your web page. There are many web pages which use AJAX to post the contents of a form back to the server. The problem is that most of them don&amp;rsquo;t act as regular forms, where you can hit enter on your keyboard and submit the form. The problem is that most developers use a type=&amp;ldquo;button&amp;rdquo; instead of the type=&amp;ldquo;submit&amp;rdquo; button in their AJAX forms, so you have to click on the button to submit the form.</description></item><item><title>Lazy Days</title><link>https://6b690e88.hancic-info.pages.dev/lazy-days/</link><pubDate>Thu, 07 May 2009 16:21:25 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/lazy-days/</guid><description>Most developers just go &amp;ldquo;the usa what now?&amp;rdquo; when you mention usability. And it shows if you browse the internet a little. And it&amp;rsquo;s really sad that this is the case, as there are so many quick and easy ways to improve the usability of your web page.
I&amp;rsquo;ll talk about labels today. They are a very useful but often neglected tags. Take this web site for example (there are many other):</description></item><item><title>Harvester Of Sorrow</title><link>https://6b690e88.hancic-info.pages.dev/harvester-of-sorrow/</link><pubDate>Wed, 06 May 2009 21:32:32 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/harvester-of-sorrow/</guid><description>Contrary to popular belief, on various developer forums, I&amp;rsquo;m, in fact, not a two headed monster crushing hopes and dreams of new comers.
Every now and then a new user registers who&amp;rsquo;d like to be a programmer. All is good up until the moment he click&amp;rsquo;s on the submit button of the new thread form. What usually happens then is a thread in which the new user is asking for complete source code for his problem/answer to something way out of his league/homework solution/&amp;hellip;</description></item><item><title>It&amp;#039;s so easy</title><link>https://6b690e88.hancic-info.pages.dev/it#039s-so-easy/</link><pubDate>Wed, 29 Apr 2009 21:44:10 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/it#039s-so-easy/</guid><description>Time has proven that the best ideas are dead simple. Think YouTube, Flickr, Hotmail, Twitter, etc. And once again somebody beat me to the punch and made a something that was under my nose the whole time, I just didn&amp;rsquo;t see it.
Anyways, the other day my father asked if there was any way for him to edit the web page of his singing choir. They have a simple HTML only page with some sub pages.</description></item><item><title>Have a cake and eat it too</title><link>https://6b690e88.hancic-info.pages.dev/have-a-cake-and-eat-it-too/</link><pubDate>Tue, 28 Apr 2009 19:01:06 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/have-a-cake-and-eat-it-too/</guid><description>Using jQuery (or prototype or whatever) is a standard tool in my tool belt nowadays. It&amp;rsquo;s so useful I can&amp;rsquo;t think how I&amp;rsquo;d do without. You can make some pretty nifty user interfaces with it. And not just pretty ones, but useful ones to. Take our latest project for example, on the front page (and sub pages also) there is a list of TV stations and it&amp;rsquo;s current program (2 or 3 items per station).</description></item><item><title>Class_Exists, __autoload &amp;amp; third-party code</title><link>https://6b690e88.hancic-info.pages.dev/class_exists-__autoload-amp-third-party-code/</link><pubDate>Sun, 26 Apr 2009 18:35:16 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/class_exists-__autoload-amp-third-party-code/</guid><description>I had some problems with my new PHP framework. I was trying (for the first time in this framework) to use a third-party library in my code ( SimplePie). And that turned out to be a problem. See, my framework uses __autoload to dynamically load classes that aren&amp;rsquo;t yet included. And SimplePie (like many other libraries) uses the Class_Exists function to check if some component is present or not (which is great).</description></item><item><title>Handling layout breaking text #2</title><link>https://6b690e88.hancic-info.pages.dev/handling-layout-breaking-text-#2/</link><pubDate>Sat, 31 Jan 2009 18:13:36 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/handling-layout-breaking-text-#2/</guid><description>This is a follow-up post to the previous one. I have made some modifications so that you can have HTML tags in your text and my code will still work. I&amp;rsquo;ve packed the whole thing in a PHP5 class which you can get here. I wanted to put a demo up, but apparently I don&amp;rsquo;t have PHP5 support here, and Mb_* functions seem to be a mystery to GoDaddy also, so no demo&amp;hellip;</description></item><item><title>Handling layout breaking text</title><link>https://6b690e88.hancic-info.pages.dev/handling-layout-breaking-text/</link><pubDate>Fri, 30 Jan 2009 18:56:23 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/handling-layout-breaking-text/</guid><description>Displaying user entered content on a web page can be a pain in the ass. The biggest problem I was always having was long words (usually something like this: &amp;ldquo;hahahahahahahahah&amp;rdquo; spanning 100 characters etc) and how to prevent them breaking the layout of the web page. I tried various techniques but none worked as I would like.
So today when I was working on a new web page I decided to find a solution once and for all.</description></item><item><title>Eye Of The Beholder</title><link>https://6b690e88.hancic-info.pages.dev/eye-of-the-beholder/</link><pubDate>Tue, 27 Jan 2009 00:47:36 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/eye-of-the-beholder/</guid><description>Working with users and their problems on a daily basis and developing new features for them to use, I&amp;rsquo;m becoming more and more envious of their ignorance regarding computers. I simply, for a long time, couldn&amp;rsquo;t wrap my mind around some of the issues they ware having, and I failed to understand how they couldn&amp;rsquo;t use a feature that was painfully obvious for me to take advantage off. But then I figured out that the problem was not in the users, but in me.</description></item><item><title>Fetch YouTube video data with PHP</title><link>https://6b690e88.hancic-info.pages.dev/fetch-youtube-video-data-with-php/</link><pubDate>Sun, 18 Jan 2009 19:48:50 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/fetch-youtube-video-data-with-php/</guid><description>I&amp;rsquo;ve written a simple PHP5 class for fetching information about YouTube&amp;rsquo;s videos (nothing fancy). You can fetch title, description, key words, author, thumbnail URL, flv URL and you can save the flv file (like keepvid.com). You can grab the source code here. You can use it freely, just remember that I can&amp;rsquo;t guarantee anything.
You use the class like so:
$yt = new YouTubeFetcher (); $yt-&amp;gt;Fetch ( &amp;#39;youtube url&amp;#39; ); // you can pass the URL to the constructor, and save a line Then you have various getter methods you can use:</description></item><item><title>The thing that should not be</title><link>https://6b690e88.hancic-info.pages.dev/the-thing-that-should-not-be/</link><pubDate>Wed, 07 Jan 2009 16:35:50 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/the-thing-that-should-not-be/</guid><description>&amp;ldquo;Generate static HTML content pages&amp;rdquo;, should never, ever, ever be an answer to any question. Ever. Unless you replace &amp;ldquo;generate&amp;rdquo; with &amp;ldquo;cache&amp;rdquo; and there&amp;rsquo;s a &amp;ldquo;database&amp;rdquo; somewhere in there too. This is probably painfully obvious to most of you, but, annoyingly, it isn&amp;rsquo;t to all software developers out there.
I&amp;rsquo;m working on converting one of our big web sites, which uses the &amp;ldquo;bake HTML pages&amp;rdquo; &amp;ldquo;technique&amp;rdquo;, to a database driven web site (using PHP).</description></item><item><title>Working at home is hurting my brain</title><link>https://6b690e88.hancic-info.pages.dev/working-at-home-is-hurting-my-brain/</link><pubDate>Sat, 03 Jan 2009 16:21:33 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/working-at-home-is-hurting-my-brain/</guid><description>I started working in the software industry in the summer between my first and second high school year. I worked during my school holidays in a company called K&amp;amp;S Consulting d.o.o.
It was all very exciting; I learned new things, worked on web pages, had a lunch breaks, poped out for a fag every now and then and didn&amp;rsquo;t think much about the work environment I was in. That went on for about 4 years and then I went to collage, which brought me more time to work there and with that, bigger projects.</description></item><item><title>Hello world!</title><link>https://6b690e88.hancic-info.pages.dev/hello-world/</link><pubDate>Sat, 03 Jan 2009 05:48:30 +0000</pubDate><guid>https://6b690e88.hancic-info.pages.dev/hello-world/</guid><description>This is my fourth first blog post. I had my old page here before (which you can see here). Now there is this one, and knowing me this will probably the only thing written here for a long time. Unless, of course, it won&amp;rsquo;t be. I shall see. And this &amp;ldquo;new&amp;rdquo; page is not a result of some new year&amp;rsquo;s resolution. That would be silly.
Anyway, in the meantime you can see what I have done and who I am.</description></item></channel></rss>