<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUEHRHw6cCp7ImA9WhRaFUs.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181</id><updated>2012-02-18T11:13:55.218Z</updated><category term="linux" /><category term="plus" /><category term="calendar" /><category term="math" /><category term="mirc" /><category term="english" /><category term="web" /><category term="apple" /><category term="webcam" /><category term="znc" /><category term="fermat" /><category term="workspace" /><category term="kde" /><category term="xchat" /><category term="Steve Jobs" /><category term="blogger" /><category term="css" /><category term="xkcd" /><category term="git" /><category term="mac" /><category term="open" /><category term="irc" /><category term="football" /><category term="vcs" /><category term="reader" /><category term="google" /><title>Ward Muylaert</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://b.wardje.eu/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://b.wardje.eu/" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/WardMuylaert" /><feedburner:info uri="wardmuylaert" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A08EQHs4eSp7ImA9WhRUGU4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-1369024869367123525</id><published>2012-01-30T13:37:00.000Z</published><updated>2012-01-30T16:10:01.531Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-30T16:10:01.531Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fermat" /><category scheme="http://www.blogger.com/atom/ns#" term="xkcd" /><category scheme="http://www.blogger.com/atom/ns#" term="english" /><category scheme="http://www.blogger.com/atom/ns#" term="math" /><title>Fermat Thread</title><content type="html">&lt;p&gt;Everyone knows &lt;a href="http://www.xkcd.com/" title="xkcd, A webcomic of romance, sarcasm, math, and language."&gt;xkcd&lt;/a&gt;, an entertaining comic that a lot of us (you know who you are) can relate to. Given its popularity, &lt;a href="http://www.reddit.com/"&gt;reddit&lt;/a&gt;'s users try their best to repost and repost and repost &lt;a href="http://www.reddit.com/search?q=site%3Axkcd.com&amp;restrict_sr=off&amp;sort=relevance"&gt;every single comic&lt;/a&gt; just to get some of that &lt;a href="http://www.reddit.com/r/AskReddit/comments/mqg9v/why_do_i_need_karma_newbie_to_reddit/" title="Heh."&gt;sweet, sweet karma&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One of those reposts today was &lt;a href="http://xkcd.com/979/"&gt;xkcd 979&lt;/a&gt;, a comic describing a feeling which most of the people who have looked to the internet for the solution of their problems, have come across. You are stuck on something, you search for it online and come across a forum thread describing &lt;em&gt;exactly&lt;/em&gt; the problem you are experiencing. However, nobody ever answered it. Sometimes there's an even crueller variant where the &lt;abbr title="Original Poster, the topic starter, the guy who asked the question"&gt;OP&lt;/abbr&gt; just mentions "Never mind, I fixed it.".&lt;/p&gt;

&lt;p&gt;One redditor, &lt;a href="www.reddit.com/user/RedDyeNumber4"&gt;RedDyeNumber4&lt;/a&gt;, &lt;a href="http://www.reddit.com/r/linux/comments/p2gud/xpost_from_rcyberpunk/c3m05o9"&gt;mentions a name&lt;/a&gt; for these threads that I find particularly fitting. He uses the term &lt;strong&gt;Fermat Threads&lt;/strong&gt;. This is a joke/reference to &lt;a href="http://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem"&gt;Fermat's Last Theorem&lt;/a&gt;, a theorem conjectured by &lt;a href="http://en.wikipedia.org/wiki/Pierre_de_Fermat"&gt;Pierre de Fermat&lt;/a&gt;  in 1637. He wrote in the margin of a book that he had come up with a proof, but that the margin he had available was too small to write it down. It took mathematicians another &lt;em&gt;358 years&lt;/em&gt; to actually come up with a proof for this theorem. Fermat was, indeed, the predecessor of the forum thread mentioned earlier.&lt;/p&gt;

&lt;p&gt;As such, I hereby propose referring to this kind of thread as a &lt;strong&gt;Fermat Thread&lt;/strong&gt; from now until we manage to somehow get rid of every last one of them.&lt;/p&gt;

&lt;dl&gt;
&lt;dt&gt;Fermat Thread&lt;/dt&gt;
&lt;dd&gt;noun,&lt;br/&gt;
a term for every occurrence where someone in the past has written down the exact same problem as you are currently experiencing, without the problem ever having received a proper solution&lt;/dd&gt;
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-1369024869367123525?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/p-6wmI1ao8-Wbl8ZAa40Jzz7C8w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p-6wmI1ao8-Wbl8ZAa40Jzz7C8w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/p-6wmI1ao8-Wbl8ZAa40Jzz7C8w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/p-6wmI1ao8-Wbl8ZAa40Jzz7C8w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/GFXzbKYZgUQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/1369024869367123525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2012/01/fermat-tread.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/1369024869367123525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/1369024869367123525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/GFXzbKYZgUQ/fermat-tread.html" title="Fermat Thread" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2012/01/fermat-tread.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAMR34yeSp7ImA9WhRUFEQ.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-7838160327284566387</id><published>2012-01-25T13:04:00.002Z</published><updated>2012-01-25T13:06:26.091Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-25T13:06:26.091Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="irc" /><category scheme="http://www.blogger.com/atom/ns#" term="mirc" /><title>mIRC default colours</title><content type="html">&lt;p&gt;I was wanting to make &lt;a href="https://github.com/Wardje/xchat-scripts/blob/master/flag.py"&gt;some country flags&lt;/a&gt; in &lt;a href="http://xchat.org/"&gt;XChat&lt;/a&gt; and realized that the colours were looking slightly different than I remembered from &lt;a href="http://www.mirc.com/"&gt;mIRC&lt;/a&gt;. Given that in this case it is quite important to have some sort of default, I figured I'd look up mIRC's default colours so I could change the colours in XChat accordingly.&lt;/p&gt;

&lt;p&gt;Nobody really seemed to give a proper list anywhere, except for &lt;a href="http://www.mirc.net/forums.php?view=34457"&gt;this forum post&lt;/a&gt; from years ago that didn't seem to pop up quite high in my Google search results. To make a long story short, here are the RGB values of mIRC's default colours for my and your future reference.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;Code   Colour
----   ------
00    #FFFFFF
01    #000000
02    #00007F
03    #009300
04    #FF0000
05    #7F0000
06    #9C009C
07    #FC7F00
08    #FFFF00
09    #00FC00
10    #009393
11    #00FFFF
12    #0000FC
13    #FF00FF
14    #7F7F7F
15    #D2D2D2&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-7838160327284566387?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v3SSvsgW_lcrVwVfJY_pTPJKuUU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v3SSvsgW_lcrVwVfJY_pTPJKuUU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v3SSvsgW_lcrVwVfJY_pTPJKuUU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v3SSvsgW_lcrVwVfJY_pTPJKuUU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/tmul2-gAK58" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/7838160327284566387/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2012/01/mirc-default-colours.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7838160327284566387?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7838160327284566387?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/tmul2-gAK58/mirc-default-colours.html" title="mIRC default colours" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2012/01/mirc-default-colours.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYAQ3s9fSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-4957254499525646729</id><published>2012-01-17T21:01:00.005Z</published><updated>2012-01-17T21:02:22.565Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:02:22.565Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="irc" /><category scheme="http://www.blogger.com/atom/ns#" term="xchat" /><title>Spell Check for XChat in Linux</title><content type="html">&lt;p&gt;Back when I still used &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, &lt;a href="http://xchat.org/"&gt;XChat&lt;/a&gt; (an IRC client) had a nice working spell checker. You know the kind, wrinkly red lines under every misspelled word. As a non native English speaker an extra check of what you write is always nice, even if you have to still live with your broken grammar. However, in &lt;a href="http://www.archlinux.org/"&gt;Arch Linux&lt;/a&gt; this behaviour was missing. Arch likes to &lt;a href="https://wiki.archlinux.org/index.php/The_Arch_Way"&gt;keep things simple&lt;/a&gt; and as such the right packages for XChat's spell checking weren't installed by default.&lt;/p&gt;

&lt;p&gt;That package was, according to the messages given while installing, called &lt;code&gt;enchant&lt;/code&gt;. Sadly enough, installing &lt;code&gt;enchant&lt;/code&gt; &lt;em&gt;didn't&lt;/em&gt; do the trick. You see, as it turns out, &lt;code&gt;enchant&lt;/code&gt; relies on four other packages.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;pacman -Qi enchant
[...]
Depends On     : aspell  dbus-glib  hunspell  hspell&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Yet in some weird twist of things making no sense, this &lt;em&gt;also&lt;/em&gt; wasn't enough. To get it working, you still needed to install the correct language package for &lt;code&gt;hunspell&lt;/code&gt;. Not an obvious thing to notice when it isn't mentioned whatsoever during the process. So issue a quick&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;pacman -Ss hunspell&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;and see which package it is that you need. In my case I just needed my English to be checked so I installed &lt;code&gt;hunspell-en&lt;/code&gt;, restarted XChat and was done with it. &lt;del&gt;No more&lt;/del&gt; Less faulty typing!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-4957254499525646729?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/57_9I-_9DQ5HOyFRHAveBOYL8cA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/57_9I-_9DQ5HOyFRHAveBOYL8cA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/57_9I-_9DQ5HOyFRHAveBOYL8cA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/57_9I-_9DQ5HOyFRHAveBOYL8cA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/HU4gbzkNTXU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/4957254499525646729/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2012/01/spell-check-for-xchat-in-linux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/4957254499525646729?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/4957254499525646729?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/HU4gbzkNTXU/spell-check-for-xchat-in-linux.html" title="Spell Check for XChat in Linux" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2012/01/spell-check-for-xchat-in-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNQHYyeip7ImA9WhRVEEg.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-1967379196615517648</id><published>2012-01-08T20:41:00.000Z</published><updated>2012-01-08T20:43:11.892Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T20:43:11.892Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kde" /><category scheme="http://www.blogger.com/atom/ns#" term="workspace" /><title>Moving Windows Across Virtual Desktops in KDE</title><content type="html">&lt;p&gt;If you're used to &lt;a href="http://www.gnome.org/"&gt;GNOME&lt;/a&gt;, then you're probably used to moving your window to a different Workspace (or Virtual Desktop) by using &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Arrow key&lt;/kbd&gt;. In &lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt;, this combination apparently &lt;em&gt;isn't&lt;/em&gt; part of the normal workflow. In fact, by default there isn't even a key assignment to switch your view to a different Workspace. That second problem I solved by going into System Settings &gt; Workspace Behavior &gt; Virtual Desktops &gt; Switching &gt; Shortcuts. At the time that seemed like the obvious place to look for a solution for both of my problems, but sadly that wasn't the case.&lt;/p&gt;

&lt;p&gt;The moving of windows is in fact hidden in another menu item. Opening System Settings again, we now pick Shortcuts and Gestures. In that window, pick the Global Keyboard Shortcuts tab and then switch the KDE component to KWin. Now there should be a long list of different options and most of them won't have any keys assigned to it. If you're up for even more customization, have a look at all the options, otherwise scroll down to Window One Desktop Down. This options and the three ones below it are the options that need changing to allow switching your windows across virtual desktops. You can choose your own, or just pick the ones that are also used in GNOME.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Window One Desktop Down - &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;↓&lt;/kbd&gt;&lt;/li&gt;
    &lt;li&gt;Window One Desktop to the Left - &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;←&lt;/kbd&gt;&lt;/li&gt;
    &lt;li&gt;Window One Desktop to the Right - &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;→&lt;/kbd&gt;&lt;/li&gt;
    &lt;li&gt;Window One Desktop Up - &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;↑&lt;/kbd&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In retrospect it &lt;em&gt;was&lt;/em&gt; in an obvious place, it just might be a bit confusing if you're new to KDE. For example, if you come across the switching desktops shortcuts in Workspace Behavior, you might also expect to find the moving of windows there and not expect to have to look for that elsewhere. All in all, it's not bad though. KDE is an amazing Desktop Environment, the myriad of options are more than welcome when you compare it to the recent evolution in Ubuntu's Unity and GNOME (though GNOME is at least trying). With that in mind, it's only expected all the options have to be divided and again divided into smaller categories.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-1967379196615517648?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eZvVuibDdV3UmR-TR5xbt-gBuQQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eZvVuibDdV3UmR-TR5xbt-gBuQQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eZvVuibDdV3UmR-TR5xbt-gBuQQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eZvVuibDdV3UmR-TR5xbt-gBuQQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/bENv7U0vgQw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/1967379196615517648/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2012/01/moving-windows-across-virtual-desktops.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/1967379196615517648?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/1967379196615517648?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/bENv7U0vgQw/moving-windows-across-virtual-desktops.html" title="Moving Windows Across Virtual Desktops in KDE" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2012/01/moving-windows-across-virtual-desktops.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUER3czcSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-8909128130928322742</id><published>2012-01-03T14:35:00.001Z</published><updated>2012-01-17T21:36:46.989Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:36:46.989Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="webcam" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Webcam Shows a Black Screen in Linux</title><content type="html">&lt;p&gt;Ever since doing a clean install of &lt;a href="http://www.archlinux.org/"&gt;Arch Linux&lt;/a&gt;, I've been having some troubles with my webcam randomly deciding to have a pitch black video feed. Sometimes I would show up normally on it, but on other times not even a shade of a shape was to be seen and the image was completly dark. I am using a &lt;a href="http://www.logitech.com/en-us/435/4267"&gt;Logitech Quickcam E 3500&lt;/a&gt;, but after looking around a bit for my issue, I've been led to believe that I'm by far not the only one with this black screen issue. In fact, a lot of people seemed to experience some sort of issue, but the answers they were given came in two categories.&lt;/p&gt;

&lt;p&gt;The first category of answers was mostly useless, they specified it had to do with auto exposure and that you had to turn it off, but didn't deem it important to specify how to turn it off. The second category did delve into specifics, but their answers seemed, to me, outdated and involved a tool that wasn't in my repositories from a website that has since died. Namingly, it had to do with the UVC drivers and tools, but those have since merged into the linux kernel and the tools must have been renamed or merged into something else as well, I would think.&lt;/p&gt;

&lt;p&gt;Mostly by accident, I stumbled upon what I needed in the terminal. As far as I am aware, I did not purposefully install this program at any point, so chances are you can just use it. Otherwise, you're probably best off searching your distribution's repositories for the correct package.&lt;/p&gt;

&lt;p&gt;So open up a terminal and let's going&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;v4l2-ctl -l&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;This should spew out a list of options each specifying min, max, steps, default and current values. The ones that always made sure your video was black, were the ones involved with exposure. More precisely, the option exposure_auto is like set to 3, which equals to it being turned on. Often this is the way you want it, but in our case it is overcompensating for whatever reason and ends up putting the exposure too low. To turn this automatic exposuring off, issue&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;v4l2-ctl --set-ctrl=exposure_auto=1&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Now that it's turned off, there's still the need to actually change the amount of exposure to use. As far as I could tell, there's no catch-all value for this so you might just have to experiment a bit till you find something to your liking. For example, to set it exposure on value 166, you use&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;v4l2-ctl --set-ctrl=exposure_absolute=166&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;then try out your webcam and see how it goes. It allows pretty high values, but the only ones I've had to use so far were in the 0-200s so go a bit at random there.&lt;/p&gt;

&lt;p&gt;I know this solution isn't perfect, you'll have to redo it every time the issue comes up again. The solution also came mostly through trial and error, so there's the likeliness I've missed some obvious answers. Sadly, the information available online was scarce, so this had to do. Regardless, seeing &lt;em&gt;anything&lt;/em&gt; is already a vast improvement.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-8909128130928322742?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Z37V3kx6ttHAleSmcr6teY4gT9I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Z37V3kx6ttHAleSmcr6teY4gT9I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Z37V3kx6ttHAleSmcr6teY4gT9I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Z37V3kx6ttHAleSmcr6teY4gT9I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/zgkoyOnOkqQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/8909128130928322742/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2012/01/webcam-shows-black-screen-in-linux.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/8909128130928322742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/8909128130928322742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/zgkoyOnOkqQ/webcam-shows-black-screen-in-linux.html" title="Webcam Shows a Black Screen in Linux" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2012/01/webcam-shows-black-screen-in-linux.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcHQ3g8fSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-3281664126972854294</id><published>2011-12-28T23:37:00.000Z</published><updated>2012-01-17T21:33:52.675Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:33:52.675Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="znc" /><category scheme="http://www.blogger.com/atom/ns#" term="irc" /><title>ZNC failing to connect</title><content type="html">&lt;p&gt;While setting up &lt;a href="http://wiki.znc.in/ZNC"&gt;ZNC&lt;/a&gt;, a &lt;a href="http://en.wikipedia.org/wiki/BNC_%28software%29"&gt;BNC&lt;/a&gt; for those who hadn't guessed, I ran into the following error&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;&amp;lt;*status&amp;gt; Cannot connect to IRC (Cannot assign requested address (Is your IRC server's host name valid?)). Retrying...&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Googling for the exact error didn't help much either, since most I got were pastebins with just that error repeated a few times. Quite useless. Next stop was the ZNC IRC channel on &lt;a href="http://www.efnet.org/"&gt;EFnet&lt;/a&gt;. Turns out I wasn't the first with this issue, the solution was right in the topic (newlines added by me)&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;* Topic for #znc is: Help on restoring www.znc.in is welcome | ZNC 0.202: http://tinyurl.com/znc-0202
 | Nightlies: www.znc.in/nightly | Don't PM @s
 | Try: /znc setbindhost 0.0.0.0&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Indeed, the last bit was meant for the likes of me. Issuing that command fixed the issues&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;/znc setbindhost 0.0.0.0
/msg *status jump&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;To make it permanent, I stopped ZNC and added the following line for every user in my configs/znc.conf&lt;/p&gt;

&lt;code&gt;&lt;pre&gt; BindHost   = 0.0.0.0&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Then just save and start up ZNC.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-3281664126972854294?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4t1iHdvZesgcjEEBa_PLHG7HByA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4t1iHdvZesgcjEEBa_PLHG7HByA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4t1iHdvZesgcjEEBa_PLHG7HByA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4t1iHdvZesgcjEEBa_PLHG7HByA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/qSr8jOhFwuE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/3281664126972854294/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/12/znc-failing-to-connect.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/3281664126972854294?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/3281664126972854294?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/qSr8jOhFwuE/znc-failing-to-connect.html" title="ZNC failing to connect" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/12/znc-failing-to-connect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMCRnY8eCp7ImA9WhRXFko.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-596206040105019563</id><published>2011-12-23T20:50:00.001Z</published><updated>2011-12-23T21:07:47.870Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-23T21:07:47.870Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="calendar" /><category scheme="http://www.blogger.com/atom/ns#" term="kde" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Add Google Calendar to KDE</title><content type="html">Recently I decided to use &lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt; on my clean install of &lt;a href="http://www.archlinux.org/"&gt;Arch Linux&lt;/a&gt;. Though not minding &lt;a href="http://www.gnome.org/gnome-3/"&gt;Gnome 3&lt;/a&gt; on my laptop, it didn't seem like something I felt like using on the big dual monitor setup of my desktop.&lt;br /&gt;
&lt;br /&gt;
Venturing through KDE settings and discovering little tidbits, I came upon the Calendar widget. This is the widget that pops up when you click on the clock in the bottom right, but you can also place it on the desktop if you want. KDE is flexible like that. It seemed nice enough, but I manage all my calendar needs in &lt;a href="https://www.google.com/calendar"&gt;Google Calendar&lt;/a&gt; so &lt;i&gt;naturally&lt;/i&gt; I wanted the calendar widget to render my Google Calendar events.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;To do this, there's a little detour past another program in KDE. Akonadi is, to my understanding, a system that manages a whole lot of information in KDE making it easily available to all the other applications. For example, your name, your contacts, ... only have to be set in Akonadi and are from there on available to other programs. Akonadi was part of my base KDE install, so I can only assume that every KDE user has it installed.&lt;br /&gt;
&lt;div style="text-align: right;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: right;"&gt;
&lt;a href="http://2.bp.blogspot.com/-bOdCzrwyAyE/TvTocYuIqtI/AAAAAAAACsc/UWFn_wtHNBg/s1600/kdecaldav1.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="143" src="http://2.bp.blogspot.com/-bOdCzrwyAyE/TvTocYuIqtI/AAAAAAAACsc/UWFn_wtHNBg/s200/kdecaldav1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;ol&gt;&lt;a href="http://1.bp.blogspot.com/-1XVoYpD-qf0/TvTodCmCfQI/AAAAAAAACsg/jMKA6y5_Cqc/s1600/kdecaldav2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="153" src="http://1.bp.blogspot.com/-1XVoYpD-qf0/TvTodCmCfQI/AAAAAAAACsg/jMKA6y5_Cqc/s200/kdecaldav2.png" width="200" /&gt;&lt;/a&gt;
&lt;li&gt;Open up Akonadi Configuration.&lt;/li&gt;
&lt;li&gt;Choose "Add..." from the buttons on the right.&lt;/li&gt;
&lt;li&gt;In the screen that pops up, choose DAV groupware resource.&lt;/li&gt;
&lt;li&gt;You will be asked for login credentials, but Google won't be one of the options in the next screen so just click "Cancel".&lt;/li&gt;
&lt;li&gt;A general configuration screen will pop up, pick any display name that makes sense to you. I just wrote &lt;i&gt;Google Calendar&lt;/i&gt;. Adjust refresh rate to whatever you want, the default is every 5 minutes.&lt;/li&gt;
&lt;li&gt;Click the "Add" button after filling in the general details. You'll have to add every calendar you want to see one-by-one through this method.&lt;/li&gt;
&lt;li&gt;In the window that pops up, you'll need the CalDAV URL for your calendar. Follow these steps to find out your CalDAV URL.&lt;/li&gt;
&lt;ol&gt;&lt;a href="http://1.bp.blogspot.com/-AJ7xVyXKcrQ/TvTodliWaMI/AAAAAAAACso/In0kKdMRmkQ/s1600/kdecaldav3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-AJ7xVyXKcrQ/TvTodliWaMI/AAAAAAAACso/In0kKdMRmkQ/s200/kdecaldav3.png" width="188" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-AJ7xVyXKcrQ/TvTodliWaMI/AAAAAAAACso/In0kKdMRmkQ/s1600/kdecaldav3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-ts09ph2t7lc/TvToemoQBuI/AAAAAAAACs0/bdU9vy20dYk/s1600/kdecaldav4.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-ts09ph2t7lc/TvToemoQBuI/AAAAAAAACs0/bdU9vy20dYk/s200/kdecaldav4.png" width="107" /&gt;&lt;/a&gt;
&lt;li&gt;Go to Google Calendar site and open the Calendar Settings.&lt;/li&gt;
&lt;li&gt;In the Calendar Details tab you will find your Calendar ID, this will look like an email address (and if it is your main calendar it &lt;i&gt;will&lt;/i&gt; be your email address).&lt;/li&gt;
&lt;li&gt;Insert it at the indicated place in this URL: https://www.google.com/calendar/dav/&lt;b&gt;ID&lt;/b&gt;/events. So for example if your ID is bla@example.com, then the URL will become https://www.google.com/calendar/dav/bla@example.com/events.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Fill in the found URL at "Remote URL". In "Username" and "Password" come your Google username and password.&lt;/li&gt;
&lt;li&gt;With everything filled in, click fetch and it should fetch the calendar you fetched. Click "Ok".&lt;/li&gt;
&lt;li&gt;Repeat steps 6 to 9 for other calendars. Click "Ok" when you're done.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
After going through these steps, calendar-related applications should be able to read your calendars. More specifically, the little Calendar widget I mentioned earlier should now automatically get populated with your Google Calendar events.&lt;br /&gt;
&lt;br /&gt;
Sidenote, if you are making use of one of the Google features where your GMail contacts' birthday appear in your Google Calendar (it would appear as a calendar called &lt;i&gt;Contacts' birthdays and events&lt;/i&gt;), then the Calendar ID you will get is probably #contacts@group.v.calendar.google.com and it is probably giving you troubles. The solution is simple, change the # to %23, so it becomes %23contacts@group.v.calendar.google.com, use this ID as you would otherwise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-596206040105019563?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KARsOFIKYD0x7JqLuNU5QwwlLrk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KARsOFIKYD0x7JqLuNU5QwwlLrk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KARsOFIKYD0x7JqLuNU5QwwlLrk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KARsOFIKYD0x7JqLuNU5QwwlLrk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/RZEE0TCrZ0s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/596206040105019563/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/12/add-google-calendar-to-kde.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/596206040105019563?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/596206040105019563?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/RZEE0TCrZ0s/add-google-calendar-to-kde.html" title="Add Google Calendar to KDE" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-bOdCzrwyAyE/TvTocYuIqtI/AAAAAAAACsc/UWFn_wtHNBg/s72-c/kdecaldav1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/12/add-google-calendar-to-kde.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08CSXwyfip7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-238482592500908187</id><published>2011-12-02T19:48:00.001Z</published><updated>2012-01-17T21:31:08.296Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:31:08.296Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="football" /><category scheme="http://www.blogger.com/atom/ns#" term="calendar" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Google Calendar for UEFA Euro 2012 (http, xml, ical)</title><content type="html">&lt;p&gt;I added the UEFA Euro 2012 games to my Google Calendar and I figured at least some of you out there would be able to profit from it.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Links&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.google.com/calendar/embed?src=n29nq9o237lgglgaicdruthfbg%40group.calendar.google.com&amp;amp;ctz=Etc%2FGMT"&gt;http&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/calendar/feeds/n29nq9o237lgglgaicdruthfbg%40group.calendar.google.com/public/basic"&gt;xml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.google.com/calendar/ical/n29nq9o237lgglgaicdruthfbg%40group.calendar.google.com/public/basic.ics"&gt;ical&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Calendar&lt;/b&gt;&lt;/p&gt;
&lt;iframe frameborder="0" height="600" scrolling="no" src="https://www.google.com/calendar/embed?title=UEFA%20Euro%202012&amp;amp;showCalendars=0&amp;amp;height=600&amp;amp;wkst=2&amp;amp;bgcolor=%23FFFFFF&amp;amp;src=n29nq9o237lgglgaicdruthfbg%40group.calendar.google.com&amp;amp;color=%23711616&amp;amp;ctz=Etc%2FGMT" style="border-width: 0;" width="800"&gt;&lt;/iframe&gt;

&lt;em&gt;Feel free to mention corrections in the comments.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-238482592500908187?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HLvbysbPZh4ynnhKQByb3mN_VoE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HLvbysbPZh4ynnhKQByb3mN_VoE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HLvbysbPZh4ynnhKQByb3mN_VoE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HLvbysbPZh4ynnhKQByb3mN_VoE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/GWLtYIPhWZo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/238482592500908187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/12/google-calendar-for-uefa-euro-2012-http.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/238482592500908187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/238482592500908187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/GWLtYIPhWZo/google-calendar-for-uefa-euro-2012-http.html" title="Google Calendar for UEFA Euro 2012 (http, xml, ical)" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>6</thr:total><feedburner:origLink>http://b.wardje.eu/2011/12/google-calendar-for-uefa-euro-2012-http.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0AHRngycSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-6270330687972286167</id><published>2011-11-26T20:50:00.000Z</published><updated>2012-01-17T21:28:57.699Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:28:57.699Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="plus" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Analyzing +1 button on any page bookmarklet</title><content type="html">&lt;p&gt;I wanted something to &lt;a href="http://www.google.com/+1/button/"&gt;+1&lt;/a&gt; a page no matter if the page had put &lt;a href="http://www.google.com/webmasters/+1/button/index.html"&gt;Google's button&lt;/a&gt; on its page or not. A Firefox add-on seemed too over the top and it might have ended up giving extra requests on every page load. I couldn't be bothered with that.&lt;/p&gt;

&lt;p&gt;Instead, I had a quick peek for a bookmarklet to help my cause. To follow the masses, I simply went with the &lt;a href="http://www.labnol.org/internet/google-plus-one-bookmarklet/19474/"&gt;first Google result&lt;/a&gt;. It seemed nice enough, making a box in the upper right corner of my browsing window, a close button and of course the +1 button itself. These days when clicking +1 though, a little popup appears to share the page to your &lt;a href="https://plus.google.com/"&gt;Google Plus&lt;/a&gt; stream. The bookmarklet had made the encapsulating box too small, effectively hiding the pop up to share the page. Fixing that seemed easy enough, edit some code in the bookmarklet to make a bigger box and tadaaa.&lt;/p&gt;

&lt;p&gt;Except it wasn't. Here's the code for the bookmarklet, spaced out better for your convenience.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;javascript:
(function() {
  var%20c;
  c=document.createElement("script");
  c.type="text/javascript";
  c.src="http://www.ctrlq.org/plusone/index.js?r="+Math.random();
  document.body.appendChild(c);
})();&lt;/pre&gt;&lt;/code&gt;


&lt;p&gt;Indeed, all it does is inject some &lt;em&gt;remote&lt;/em&gt; JavaScript into the page. I don't use bookmarklets a lot, dare I say never, so I don't know if this is common practice, but this annoys me for three reasons.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I have to rely on this other website to not go down.&lt;/li&gt;
&lt;li&gt;I have to trust these people to not change their code to something to their liking in the future.&lt;/li&gt;
&lt;li&gt;I can't make a small notification without effectively having to rehost the modified code myself.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ignoring these annoyances, I continued checking how the script worked out of curiosity. The included script page was the obvious next step.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;(function(){
  var iframe_url = "http://ctrlq.org/plusone/" + "?u=" + encodeURIComponent(document.location.href);
  var div = document.createElement("div");
  div.id = "labnol_plusone";
var str = "&amp;lt;style&amp;gt;#labnol_plusone{position: fixed; top: 10px; right: 20px; width: 150px; height: 90px;z-index: 9999;background: #f4f4f4;padding: 10px;border: thin solid #999;}#ex small {font:Verdana, Geneva, sans-serif;font-size:9px;float:right;display:block}&amp;lt;/style&amp;gt;&amp;lt;div id='ex'&amp;gt;&amp;lt;small&amp;gt;&amp;lt;a href='#' onClick=\"document.getElementById('labnol_plusone').style.display='none'; return false;\" title='Click to close this window'&amp;gt;Close&amp;lt;/a&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;iframe frameborder='0' scrolling='no' src='" + iframe_url + "' width='120px' height='75px' style='backgroundColor: white;'&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/div&amp;gt;";
  div.innerHTML = str;
  document.body.insertBefore(div, document.body.firstChild);
})()&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;A div element is created, some styling added, as well as a close button and an iframe containing the +1 button. Another extra request to this site beyond our control, in other words. Also note that to solve my original problem, the styling defined there is what would need editing. However, let's continue, we're going good now. This iframe's source is as follows.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;&amp;lt;&lt;span class="start-tag"&gt;html&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;head&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;title&lt;/span&gt;&amp;gt;Google +1&amp;lt;/&lt;span class="end-tag"&gt;title&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;link&lt;/span&gt;&lt;span class="attribute-name"&gt; rel&lt;/span&gt;=&lt;span class="attribute-value"&gt;"canonical" &lt;/span&gt;&lt;span class="attribute-name"&gt;href&lt;/span&gt;="http://www.labnol.org/" &lt;span class="error"&gt;&lt;span class="attribute-name"&gt;/&lt;/span&gt;&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;script&lt;/span&gt;&lt;span class="attribute-name"&gt; type&lt;/span&gt;=&lt;span class="attribute-value"&gt;"text/javascript" &lt;/span&gt;&lt;span class="attribute-name"&gt;src&lt;/span&gt;="https://apis.google.com/js/plusone.js"&amp;gt;    &amp;lt;/&lt;span class="end-tag"&gt;script&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="end-tag"&gt;head&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;body&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;style&lt;/span&gt;&amp;gt;body {padding:20px; background-color:#f4f4f4}&amp;lt;/&lt;span class="end-tag"&gt;style&lt;/span&gt;&amp;gt;
&amp;lt;&lt;span class="start-tag"&gt;g:plusone&lt;/span&gt;&lt;span class="attribute-name"&gt; size&lt;/span&gt;=&lt;span class="attribute-value"&gt;"standard" &lt;/span&gt;&lt;span class="attribute-name"&gt;count&lt;/span&gt;=&lt;span class="attribute-value"&gt;"true" &lt;/span&gt;&lt;span class="attribute-name"&gt;href&lt;/span&gt;="http://b.wardje.eu/"&amp;gt;&amp;lt;/&lt;span class="end-tag"&gt;g:plusone&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="end-tag"&gt;body&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class="end-tag"&gt;html&lt;/span&gt;&amp;gt;&amp;nbsp;&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Finally the good part! This is more-or-less code as you would put in your own webpage when &lt;a href="http://www.google.com/webmasters/+1/button/index.html"&gt;adding the button to your own website&lt;/a&gt;. So to summarize what all is done just to &lt;em&gt;present&lt;/em&gt; the button to you.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You click the bookmarklet, this step can obviously not be skipped.&lt;/li&gt;
&lt;li&gt;Some remote JavaScript gets injected into the page you are on.&lt;/li&gt;
&lt;li&gt;This remote JavaScript created a div element and adds an iframe to it.&lt;/li&gt;
&lt;li&gt;The iframe has the code that Google tells you to add to your pages to get a +1 button.&lt;/li&gt;
&lt;li&gt;That code includes a call to Google's server for a JavaScript file that does the rest, this step can also not be avoided.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ideally, in my eyes anyway, steps two, three and four should be skipped.&lt;/p&gt;

&lt;p&gt;So I quickly threw the following together&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;(function() {
 var a,b;
 a=document.createElement('script');
 a.type='text/javascript';
 a.async=true;
 a.src='https://apis.google.com/js/plusone.js';
 b=document.createElement('div');
 b.id='ward_plusone';
 b.style.position='fixed';
 b.style.top='10px';
 b.style.right='10px';
 b.style.padding='10px';
 b.style.zIndex=99999;
 b.style.background='#FFFFFF';
 b.style.border='1px solid #000000';
 b.innerHTML='&amp;lt;g:plusone&amp;gt;&amp;lt;/g:plusone&amp;gt;';
 document.body.insertBefore(b, document.body.firstChild);
 document.body.insertBefore(a, document.body.firstChild);
})();&lt;/pre&gt;&lt;/code&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/1396284"&gt;&lt;i&gt;Source&lt;/i&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No need for any extra remote calls and it works as far as my first tests tell me. Only downside (for now?) is the lack of a close button.&lt;/p&gt;

&lt;p&gt;And finally, here is the link for you to bookmark: &lt;a href="javascript:%20(function(){var%20a,b;a=document.createElement('script');a.type='text/javascript';a.async=true;a.src='https://apis.google.com/js/plusone.js';b=document.createElement('div');b.id='ward_plusone';b.style.position='fixed';b.style.top='10px';b.style.right='10px';b.style.padding='10px';b.style.zIndex=99999;b.style.background='#FFFFFF';b.style.border='1px%20solid%20#000000';b.innerHTML='&amp;lt;g:plusone&amp;gt;&amp;lt;/g:plusone&amp;gt;';document.body.insertBefore(b,document.body.firstChild);document.body.insertBefore(a,document.body.firstChild)})();"&gt;Bookmarklet&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-6270330687972286167?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pY2S2LiOG6KV4Qrnc56SmR6yETY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pY2S2LiOG6KV4Qrnc56SmR6yETY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pY2S2LiOG6KV4Qrnc56SmR6yETY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pY2S2LiOG6KV4Qrnc56SmR6yETY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/KWVprSiPIis" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/6270330687972286167/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/11/analyzing-1-button-on-any-page.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6270330687972286167?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6270330687972286167?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/KWVprSiPIis/analyzing-1-button-on-any-page.html" title="Analyzing +1 button on any page bookmarklet" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/11/analyzing-1-button-on-any-page.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QEQnozeSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-7947329263476996461</id><published>2011-11-15T00:15:00.000Z</published><updated>2012-01-17T21:21:43.481Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:21:43.481Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="plus" /><category scheme="http://www.blogger.com/atom/ns#" term="reader" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Google Reader's +1</title><content type="html">&lt;p&gt;Google has been trying to push its &lt;a href="http://www.google.com/+1/button/" target="_blank"&gt;+1 button&lt;/a&gt; and who can blame them, it only makes sense to try self-promotion whenever possible. (As I found out while checking some info, there are some complainers, but that's not to be avoided I guess) So when &lt;a href="http://www.google.com/reader" target="_blank"&gt;Google Reader&lt;/a&gt;, one of my favourite parts of Google, &lt;a href="http://googlereader.blogspot.com/2011/10/new-in-reader-fresh-design-and-google.html" target="_blank"&gt;updated their look&lt;/a&gt; two weeks ago, it was expected that the old Google Reader "Like" button would end up being replaced by Google Plus' +1.&lt;/p&gt;

&lt;p&gt;So far, so good... if it wasn't broken. More specifically, the incorrect page gets +1'd. When I'm reading &lt;a href="http://www.lefthandedtoons.com/1122/" target="_blank"&gt;a comic&lt;/a&gt; in Google Reader and end up clicking +1, the page that I want to give my +1 to is, quite obviously,&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;http://www.lefthandedtoons.com/1122/&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Instead, the page that ends up appearing in my +1 list is&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;http://feedproxy.google.com/~r/lefthandedtoons/awesome/~3/sVdTlgfETrE/&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Sure, that redirects to the page I intended, but it's obviously not what I wanted it to do.&lt;/p&gt;

&lt;p&gt;Now, since I don't see a "Send feedback" in Google Reader, I guess I'll report it on Google Plus?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-7947329263476996461?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AQxQtBCVV8GDa7OAlCeFzfa3XHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AQxQtBCVV8GDa7OAlCeFzfa3XHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AQxQtBCVV8GDa7OAlCeFzfa3XHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AQxQtBCVV8GDa7OAlCeFzfa3XHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/MWeRdYVWeHE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/7947329263476996461/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/11/google-readers-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7947329263476996461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7947329263476996461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/MWeRdYVWeHE/google-readers-1.html" title="Google Reader's +1" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/11/google-readers-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YNRX8_eyp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-5543878280415893658</id><published>2011-11-02T22:26:00.000Z</published><updated>2012-01-17T21:19:54.143Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:19:54.143Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="plus" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Google+ Platform Preview</title><content type="html">&lt;p&gt;&lt;a href="https://plus.google.com/"&gt;Google+&lt;/a&gt; users interested in doing some preview-testing of upcoming Google+ features, might be interested in the &lt;a href="https://groups.google.com/group/googleplus-platform-preview/about?hl=en-GB&amp;amp;noredirect=true"&gt;Google+ Platform Preview Group&lt;/a&gt;. This is a &lt;a href="https://groups.google.com/forum/#%21overview"&gt;Google Group&lt;/a&gt; which, when joined, will make your account view some Google+ things earlier than others. As they put it in their description:&lt;/p&gt;

&lt;blockquote class="tr_bq"&gt;&lt;p&gt;
Subscribe to this group if you would like to preview the latest updates 
to the Google+ platform (such as to the +1 button) before they are 
launched to the general public. &amp;nbsp;New features will be enabled on your 
account and announced to this group. &amp;nbsp;You must use a Gmail address for 
the preview to work.&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Obviously this may put you at risk of having slightly broken content, something you should always keep in mind when being part of a test group (eg alpha/beta releases etc).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-5543878280415893658?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NNvU3nPf6eouSTulJBdMHqOu6_A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NNvU3nPf6eouSTulJBdMHqOu6_A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NNvU3nPf6eouSTulJBdMHqOu6_A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NNvU3nPf6eouSTulJBdMHqOu6_A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/mEq02yetQRA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/5543878280415893658/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/11/google-platform-preview.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/5543878280415893658?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/5543878280415893658?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/mEq02yetQRA/google-platform-preview.html" title="Google+ Platform Preview" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/11/google-platform-preview.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0YERXk6fyp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-6226025849806062524</id><published>2011-10-12T20:17:00.000+01:00</published><updated>2012-01-17T21:18:24.717Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:18:24.717Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="vcs" /><title>Google Code and git</title><content type="html">&lt;p&gt;I was trying to set up a git project in &lt;a href="https://code.google.com/hosting/"&gt;Google Code&lt;/a&gt;, but didn't seem able to push anything to their site with my regular&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;git push&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;Pulling seemed to work even less, giving me the following error:&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;[ward@hathor]$ git pull
Your configuration specifies to merge with the ref 'master'
from the remote, but no such ref was fetched.&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;I know, it's my own fault for not at least skimming through their &lt;a href="http://code.google.com/p/support/wiki/GitFAQ"&gt;FAQ&lt;/a&gt; beforehand. You see, the issue here is that when starting out, there isn't any branch on their end. So just push your master branch.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;[ward@hathor]$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Scanning pack: 100% (3/3), done.
remote: Storing objects: 100% (3/3), done.
remote: Processing commits: 100% (1/1), done.
To https://code.google.com/p/.../
 * [new branch]      master -&gt; master
[ward@hathor]$ git pull
Already up-to-date.&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;And everything should go a-ok (for now).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-6226025849806062524?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2sv9DpzUZQgj2kqAxAbliOqVcSE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2sv9DpzUZQgj2kqAxAbliOqVcSE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2sv9DpzUZQgj2kqAxAbliOqVcSE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2sv9DpzUZQgj2kqAxAbliOqVcSE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/H5h7UKL8drE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/6226025849806062524/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/10/google-code-and-git.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6226025849806062524?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6226025849806062524?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/H5h7UKL8drE/google-code-and-git.html" title="Google Code and git" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/10/google-code-and-git.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4HRnw7cSp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-6399378629441946974</id><published>2011-10-06T21:04:00.000+01:00</published><updated>2012-01-17T21:15:37.209Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:15:37.209Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Steve Jobs" /><category scheme="http://www.blogger.com/atom/ns#" term="open" /><category scheme="http://www.blogger.com/atom/ns#" term="mac" /><category scheme="http://www.blogger.com/atom/ns#" term="apple" /><title>Apple Tribute (well not really)</title><content type="html">&lt;p&gt;My condolences go out to Steve Jobs' loved ones.&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://plus.google.com/109855165514267244938/posts/SYopNS243Gr"&gt;message&lt;/a&gt; by &lt;a href="https://plus.google.com/109855165514267244938/posts"&gt;+Malcolm Locke&lt;/a&gt; caught my eye&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;
Meanwhile, on twitter, all the Mac users are tweeting a solitary U+F8FF 
unicode character, which to them appears as an Apple logo, but displays 
nothing on non-Apple fonts.  A poignant tribute to the empire's views on
 interopability.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;For those wondering whether they can see it --&amp;gt; "". I could, but most other people apparently couldn't. I don't care particularly much about fonts so I didn't decide to delve deeper into that.&lt;/p&gt;

&lt;p&gt;Mr. Locke (I found it cooler to say this than Malcolm, who knows why) does indeed raise a very valid point. Apple seems to have almost made a point out of pushing everybody away. You're either 100% with them or you can get the fuck out. As a company, you can see their reasoning on it. People buying one of their devices are almost forced to buy the rest too to have any decent form of interoperability. The other reason of course is that they are assholes. No seriously, fuck them. They're the Microsoft of this decade, trying to create a monopoly by pushing every competition into illegality.&lt;/p&gt;

&lt;p&gt;Apple's philosophy is nice enough "keep it as simple as possible for the consumer". I'm with them on that one, people don't need to be forced to delve into the depths of their technological devices just to do what they want. However, when you feel like "jailbreaking" your device, when you &lt;em&gt;do&lt;/em&gt; feel like exploring every little cranny of the hardware you paid too much money for (I really do hope you have or get that craving), then you should be allowed to. You shouldn't have to worry that the company you got it from will send update after update your way to make sure that you cannot use the device in any other way than the one they intended. Let alone they come sue you about it.&lt;/p&gt;

&lt;p&gt;Jobs was a visionary, I have to give him that. However I hope, now that Apple needs to go on without him, that the company might finally become less of a stickler on those kind of things. Stop trying to block any form of creativity or innovation that doesn't come from your end, things will only go better for all of us in the end.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-6399378629441946974?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jAQi3nDJ7Tfui54m9z3UTxso3r0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jAQi3nDJ7Tfui54m9z3UTxso3r0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jAQi3nDJ7Tfui54m9z3UTxso3r0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jAQi3nDJ7Tfui54m9z3UTxso3r0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/dWQEo3bC9Mk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/6399378629441946974/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/10/apple-tribute-well-not-really.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6399378629441946974?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/6399378629441946974?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/dWQEo3bC9Mk/apple-tribute-well-not-really.html" title="Apple Tribute (well not really)" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Philadelphia, PA, USA</georss:featurename><georss:point>39.96238554917604 -75.12725830078125</georss:point><georss:box>39.76766104917604 -75.44311530078124 40.15711004917604 -74.81140130078126</georss:box><feedburner:origLink>http://b.wardje.eu/2011/10/apple-tribute-well-not-really.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkECSX08eCp7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-7028129919568171737</id><published>2011-10-04T21:19:00.000+01:00</published><updated>2012-01-17T21:11:08.370Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:11:08.370Z</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogger" /><category scheme="http://www.blogger.com/atom/ns#" term="google" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><category scheme="http://www.blogger.com/atom/ns#" term="css" /><title>Disallowing View Choices in Blogger</title><content type="html">&lt;p&gt;For the sake of starting somewhere, here's something that I did about as soon as making this new blog. By default the Dynamic Views template of Blogger will show a multitude of choices for the user to view your blog. "Magazine", "Classic", "Timeline", ... I liked one of the choices it offered, but didnt really feel like having the choices show on top, as I found it rather ugly.&lt;/p&gt;

&lt;p&gt;Luckily, Blogger allows you to add CSS (Template -&amp;gt; Customise -&amp;gt; Advanced) so the "problem" was quickly remedied by adding&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;#views {
    display: none;
}&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-7028129919568171737?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xIhuLPC5kcZMYE0RqO7t_f8F33w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xIhuLPC5kcZMYE0RqO7t_f8F33w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xIhuLPC5kcZMYE0RqO7t_f8F33w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xIhuLPC5kcZMYE0RqO7t_f8F33w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/bkGI-9mLtgA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/7028129919568171737/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/10/disallowing-view-choices-in-blogger.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7028129919568171737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/7028129919568171737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/bkGI-9mLtgA/disallowing-view-choices-in-blogger.html" title="Disallowing View Choices in Blogger" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://b.wardje.eu/2011/10/disallowing-view-choices-in-blogger.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIGRHc5fip7ImA9WhRVGE4.&quot;"><id>tag:blogger.com,1999:blog-7840971200052989181.post-8455806082976210525</id><published>2011-10-04T20:54:00.001+01:00</published><updated>2012-01-17T21:08:45.926Z</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T21:08:45.926Z</app:edited><title>Greetings!</title><content type="html">&lt;p&gt;I grew bored of &lt;a href="https://www.tumblr.com/"&gt;Tumblr&lt;/a&gt;, so while being totally not impulsive, I decided to ditch it for &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What about all the old posts? They'll remain available at &lt;a href="http://wardje.tumblr.com/"&gt;Tumblr's default blog page&lt;/a&gt;. Sadly enough Tumblr has no obvious way to export things so this new blog will be pretty empty until I find interesting things to write about. You know, assuming that actually happens.&lt;/p&gt;

&lt;p&gt;I'm guessing this will also totally destroy my Google rank, but if that's a reason you blog then you're a sad little panda anyways.&lt;/p&gt;

&lt;p&gt;&lt;del&gt;For now &lt;a href="http://b.wardje.eu/"&gt;b.wardje.eu&lt;/a&gt; doesn't actually redirect here yet, due to DNS settings taking a while to update. Or I completely goofed up in the settings of course, I guess I'll notice that in a few days time.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Update 2011-12-05&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Due to some failing in making Google accept that the old &lt;a href="http://b.wardje.eu/"&gt;b.wardje.eu&lt;/a&gt; went to &lt;a href="http://wardje.tumblr.com/"&gt;wardje.tumblr.com&lt;/a&gt; ("blabla, subdomain isn't proper owner") and because I'm still not running this blog myself, but using Blogger instead, it seems that old traffic ends up stuck on these few pages.&lt;/p&gt;

&lt;p&gt;Here some links that come to mind. As it turns out, Tumblr has a search feature equivalent to a blind man and a file cabinet.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/512782609/creative-writing-gone-wrong"&gt;Creative Writing Gone Wrong&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/4750559045/keep-supertuxkart-up-to-date-revisited"&gt;Keep SuperTuxKart Up To Date, revisited&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/2130824770/unlock-all-supertuxkart-tracks"&gt;Unlock All SuperTuxKart Tracks&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/558104051/qt-applications-using-different-cursor-in-ubuntu-using" target="_blank"&gt;Qt Applications Using Different Cursor in Ubuntu (using GNOME)&lt;/a&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/4132220373/changing-supertuxkart-ingame-ranking-display"&gt;Changing SuperTuxKart Ingame Ranking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/1290253183/turn-off-firefox-add-on-compatibility-check"&gt;Turn Off Firefox Addon Compatibility Check&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/916789863/eindafrekening-1989"&gt;Eindafrekening 1989&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/384434851/virgins-vs-whores"&gt;Virgins vs Whores&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wardje.tumblr.com/post/1052348737/this-and-87-other-brilliant-examples-of-forced" target="_blank"&gt;This and 87 other Brilliant Examples of Forced Perspective Photography may truly amaze you.&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And for anything else: &lt;a href="http://wardje.tumblr.com/archive" target="_blank"&gt;Archive&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7840971200052989181-8455806082976210525?l=b.wardje.eu' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mMEhDNxnCbM0NhzUws6AySzr4SY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mMEhDNxnCbM0NhzUws6AySzr4SY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mMEhDNxnCbM0NhzUws6AySzr4SY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mMEhDNxnCbM0NhzUws6AySzr4SY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WardMuylaert/~4/ypqUGp6in8I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://b.wardje.eu/feeds/8455806082976210525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://b.wardje.eu/2011/10/greetings.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/8455806082976210525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7840971200052989181/posts/default/8455806082976210525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/WardMuylaert/~3/ypqUGp6in8I/greetings.html" title="Greetings!" /><author><name>Ward Muylaert</name><uri>https://profiles.google.com/104669630327539668127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3TuNZeSsEDM/AAAAAAAAAAI/AAAAAAAAAmo/4WBz2-c2RoQ/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://b.wardje.eu/2011/10/greetings.html</feedburner:origLink></entry></feed>

