<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Ali Kuru]]></title><description><![CDATA[Ali Kuru's personal weblog about geekery, gadgets and evolving web.]]></description><link>https://alikuru.com/</link><image><url>https://alikuru.com/favicon.png</url><title>Ali Kuru</title><link>https://alikuru.com/</link></image><generator>Ghost 1.21</generator><lastBuildDate>Wed, 08 Apr 2026 20:17:51 GMT</lastBuildDate><atom:link href="https://alikuru.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Limiting POST requests to WordPress with Hiawatha]]></title><description><![CDATA[I use Hiawatha for orphaned WordPress sites. It is an open source webserver with a focus on security.]]></description><link>https://alikuru.com/limiting-post-requests-to-wordpress-with-hiawatha/</link><guid isPermaLink="false">59a30bcf2324020de5357613</guid><category><![CDATA[Linux]]></category><category><![CDATA[Software]]></category><category><![CDATA[Web]]></category><category><![CDATA[wordpress]]></category><category><![CDATA[hiawatha]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Tue, 22 Aug 2017 15:31:00 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/wordpress-hiawatha-limit-post-requests.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/wordpress-hiawatha-limit-post-requests.jpg" alt="Limiting POST requests to WordPress with Hiawatha"><p>With being used by more than 25 percent of all websites, WordPress is by far the most popular CMS today. This much attention also makes it quite popular among the hackers and script kiddies, which usually rely on automated bots to check vulnerabilities and exploit them. And when successful, enslaved sites generally controlled with commands sent via <code>POST</code> requests.</p>
<p>It's best if you can keep your WordPress core, theme and plugins always up to date, but sometimes this can be problematic with a fairly old instance that can't be upgraded because of an orphaned piece in the setup. Most secure option for such a site would be going static. If that's not applicable because of a function that requires interaction, locking unnecessary features on the webserver level might help ease the pain.</p>
<p>I use Hiawatha for these kinds of legacy WordPress sites. It is an open source webserver with a focus on security; has built-in SQLi, XSS and CSRF/XSRF protection and quite easy to setup. If you are not familiar with Hiawatha, I suggest you to check out the <a href="https://www.hiawatha-webserver.org/manpages/hiawatha" title="Hiawatha webserver manual">official manual</a> and <a href="https://www.hiawatha-webserver.org/howto" title="Hiawatha webserver how-tos">how-to pages</a>. You can find a step by step guide for a secure Hiawatha installation <a href="https://samiux.blogspot.com/2017/03/howto-highest-secured-hiawatha-web.html" title="HOWTO: Highest secured Hiawatha Web Server 10.5 on Ubuntu Server 16.04 LTS">here</a>.</p>
<h3 id="creatingachainreactionwithurltoolkit">Creating a chain reaction with URL toolkit</h3>
<p>Hiawatha's URL toolkit is where you can perform actions based on the URL or on the URL itself. It is usually used for creating rewrite rules but actually more powerful than that. Using regular expressions, you can match a pattern and redirect it, limit/deny access to it or forward it to a different CGI handler.</p>
<p>It also allows you to perform actions based on request headers of the client, which I use in my solution;</p>
<pre><code class="language-json">UrlToolkit {
		ToolkitID = allowpost
		Match ^/profile/$ Return
		Header X-Dress-Code black-tie Return
		Method POST DenyAccess
}

VirtualHost {
		Hostname = www.legacysite.tld
		...
		UseToolkit = allowpost
		...
}
</code></pre>
<p>What's happening here is we first check with <code>allowpost</code> toolkit whether the user is browsing the <code>/profile/</code> page, where everyone allowed to <code>POST</code> in our hypothetical setup. If he is, we tell Hiawatha to ignore the rest of the toolkit and carry on. If he is not, Hiawatha will refer to the next line and check his request headers.</p>
<p>In this case, we have defined a custom request header <code>X-Dress-Code</code> and <code>black-tie</code> as the key. So, as long as user is sending our server this header-key pair, Hiawatha again will ignore the rest of the toolkit and the user will be allowed to <code>POST</code>.</p>
<p>Last line of the <code>allowpost</code> toolkit, where user will end up if he's not viewing his profile or not dressed correctly, is self-explanatory. He will be denied of making <code>POST</code> requests.</p>
<h3 id="dressingupforaformalvisit">Dressing up for a formal visit</h3>
<p>As you can easily guess, the <code>X-Dress-Code</code> is a totally imaginary header created by me for adding some fun to this boring tutorial :) You can use one of the official headers <a href="https://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields">listed here</a> or define yourself a new one. I suggest you create a custom header for distinguishing your authorized users.</p>
<p>If you opt to tailor your own custom header, you'll need a plugin to pass that to your server. Modify Header Value plugin for <a href="https://chrome.google.com/webstore/detail/modify-header-value-http/cbdibdfhahmknbkkojljfncpnhmacdek?hl=en" title="Modify Header Value plugin for Chrome">Chrome</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/modify-header-value/" title="Modify Header Value plugin for Firefox">Firefox</a> can handle this task for you. Here is a sample configuration, click for a bigger version:</p>
<p><a href="https://c.alikuru.com/uploads/2017/08/modify-header-value-plugin-firefox-chrome-big.png" title="Modify Header Value plugin for Firefox and Chrome"><img src="https://c.alikuru.com/uploads/2017/08/modify-header-value-plugin-firefox-chrome-small.jpg" alt="Limiting POST requests to WordPress with Hiawatha" title="Modify Header Value plugin for Firefox and Chrome"></a></p>
<h3 id="finalthoughts">Final thoughts</h3>
<p>If you are seeing unusual <code>POST</code> requests in your logs and especially those requests are being made to weirdly named PHP files located in places not common for a WordPress installation, your site is probably already compromised.</p>
<p>If somehow you are unable to upgrade your setup, again, it's best if you convert the whole site to a static one and limit CGI execution altogether. Unless that's not really an option, then you might start tinkering with the <code>POST</code> requests. It might let you breath while you clean up things and add further protection for not getting compromised again.</p>
<p>Although it's possible to limit <code>POST</code> requests in different ways with other web servers like Apache and Nginx, I recommend you to use Hiawatha for added security. The solution I offer here involves several checks, so it might hinder your performance a bit, particularly if you are getting a considerable amount of traffic. However, since Hiawatha is also a serious contender in performance, I don't believe it will lag behind of others with similar configurations. Nevertheless, your mileage may vary.</p>
<p><strong>Update:</strong> A previous version of this post offered a rather long and complicated solution for the problem at hand. Thanks to <a href="https://photo.leisink.net/">Hugo Leisink</a>, the creator and main developer of the Hiawatha, we now have a simpler config.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Running Node.js on Wheezy]]></title><description><![CDATA[Node.js repos for Wheezy are quite old and maintainers’ choice of changing main node application name from “node” to “nodejs” seems to confuse some scripts.]]></description><link>https://alikuru.com/running-node-js-on-wheezy/</link><guid isPermaLink="false">5990a3184d11750d1f534ae0</guid><category><![CDATA[debian]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Software]]></category><category><![CDATA[Web]]></category><category><![CDATA[wheezy]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Thu, 13 Jul 2017 16:23:23 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/nodejs-debian-wheezy.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/nodejs-debian-wheezy.jpg" alt="Running Node.js on Wheezy"><p>If you have a server that you are unable to install Debian versions higher than v7.x (code name Wheezy) due to a script dependence, old hardware or lack of time but still <em>need</em> to run Node.js, you must have already figured your options are quite limited.</p>
<p>Debian Node.js repositories for Wheezy are quite old for obvious reasons and maintainers’ choice of changing main node application name from <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=614907#108">“node” to “nodejs”</a> seems to confuse some scripts. Binary installations of newer versions are also not easy to work with, at least not in my case. If you haven’t figured out already, compiling is your only way out.</p>
<p>Installing v6.x branch from source is possible; however, you’ll still need some modifications in your environment. Main problem is latest GCC version on Wheezy is v4.7.2 and Node.js requires v4.8.5 and up. To overcome this issue, Node.js team decided to build the packages below v6.x for Wheezy with clang-3.4. And, they maintain a compatible package for clang at their Node source repositories. So, first thing you need to do is to add their repos to your apt sources.</p>
<pre><code class="language-bash">apt-get update
apt-get install curl apt-transport-https ca-certificates
echo &quot;deb https://deb.nodesource.com/clang-3.4 wheezy main&quot; &gt;&gt; /etc/apt/sources.list
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
</code></pre>
<p>Then, install clang.</p>
<pre><code class="language-bash">apt-get update
apt-get install clang-3.4
</code></pre>
<p>After that, download your Node.js v6.x branch source code tarball and unpack it. Before starting the build process, switch your compiler to the newly installed clang by applying these at the command line;</p>
<pre><code class="language-bash">export CC=/usr/bin/clang
export CXX=/usr/bin/clang++
</code></pre>
<p>Carry on with <code>./configure</code> and <code>make</code>, you should be able build Node.js and install it after the process completes.</p>
<p>This post is derived from the Node Source’s official description of the issue, which can be <a href="https://github.com/nodesource/distributions/blob/master/OLDER_DISTROS.md">found here</a>.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Three more invitations for OnePlus One]]></title><description><![CDATA[OnePlus issued me three more invitations several days ago and if you are still searching for an opportunity to buy a One, one of them may be yours.]]></description><link>https://alikuru.com/three-more-invitations-for-oneplus-one/</link><guid isPermaLink="false">5990a3184d11750d1f534adf</guid><category><![CDATA[Gadgets]]></category><category><![CDATA[invitation]]></category><category><![CDATA[Me]]></category><category><![CDATA[Mobile]]></category><category><![CDATA[OnePlus]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Mon, 05 Jan 2015 17:19:23 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/three-more-oneplus-one-invitations.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/three-more-oneplus-one-invitations.jpg" alt="Three more invitations for OnePlus One"><p>OnePlus issued me three more invitations several days ago and if you are still searching for an opportunity to buy a One, one of them may be yours.</p>
<p>Either leave a comment here or contact me via Twitter. You can find <a href="https://alikuru.com/about/" title="About Ali Kuru">my contact information here</a>. They all have 12 hours left, better be quick :)</p>
<p><strong>Update:</strong> All gone, will post again if I receive more invitations in the future.</p>
</div>]]></content:encoded></item><item><title><![CDATA[OnePlus One invitation giveaway]]></title><description><![CDATA[I ended up with a spare invitation at hand at the end of the day, which might be yours if you are interested in buying a One for yourself.]]></description><link>https://alikuru.com/oneplus-one-invitation-giveaway/</link><guid isPermaLink="false">5990a3184d11750d1f534ade</guid><category><![CDATA[Gadgets]]></category><category><![CDATA[Hardware]]></category><category><![CDATA[invitation]]></category><category><![CDATA[Me]]></category><category><![CDATA[Mobile]]></category><category><![CDATA[OnePlus]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Tue, 18 Nov 2014 22:24:01 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/oneplus-one-invitation.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/oneplus-one-invitation.jpg" alt="OnePlus One invitation giveaway"><p>Although I’ve managed to pre-order my <a href="https://alikuru.com/tag/oneplus-one/" title="OnePlus One">OnePlus One</a> yesterday at the latest round, it didn’t take too long to face that the commitment to pay doesn’t enough to get your device shipped immediately. So, I’ve decided not to wait for three weeks in the queue and started to seek an <a href="https://alikuru.com/tag/invitation/" title="Invitation">invitation</a>. Well, for two invitations in fact, since I’ve ordered not once, but twice.</p>
<p>Thanks to the generosity of the <a href="https://alikuru.com/tag/oneplus/" title="OnePlus">OnePlus</a> community, I was able to find the <a href="https://alikuru.com/tag/invites/" title="Invites">invites</a> I needed in less than 24 hours. What came as a surprise was an additional invitation sent from the OnePlus itself, which arrived right after I hit the “skip the queue with invite” button. So, I ended up with a <a href="https://alikuru.com/tag/spare-invitation/" title="Spare invitation">spare invitation</a> at hand at the end of the day, which might be yours if you are interested in buying a One for yourself, too.</p>
<p><img src="https://c.alikuru.com/uploads/2014/11/oneplus-one-invite-invitation-givaway-1.jpg" alt="OnePlus One invitation giveaway"></p>
<p>Since my motivation was to get rid of the queue I’m in while searching for this invitation, I’d like give it to a person who is in a situation similar to mine. Please let me know if you’ve already <a href="https://alikuru.com/tag/pre-order/" title="Pre-order">pre-ordered</a> your device on the November 17th, and have at least 2 or 3 weeks waiting time before your delivery. I’d be happy to share my spare invitation with you.</p>
<p>Don’t forget to share a screenshot of your order status while asking for the invite, and make your OnePlus account name visible while doing it. You can find my <a href="https://alikuru.com/about/" title="About Ali Kuru">contact information here</a>.</p>
<p><strong>Update:</strong> Invitation gone to the person with the longest waiting time in the queue; 5 weeks. None left at the moment, will post again if I receive more invitations in the future.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Don't kill your time with the "Bury the Dead"]]></title><description><![CDATA[I don’t know whether it’s because I haven’t seen any expressionist drama before, but it felt like a hundred minute long constant pain.]]></description><link>https://alikuru.com/dont-kill-your-time-with-the-bury-the-dead/</link><guid isPermaLink="false">5990a3184d11750d1f534add</guid><category><![CDATA[Me]]></category><category><![CDATA[theater]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Sun, 10 Mar 2013 22:41:23 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/dont-kill-your-time-with-the-bury-the-dead.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/dont-kill-your-time-with-the-bury-the-dead.jpg" alt="Don't kill your time with the "Bury the Dead""><p>Play was about six 20 years old soldiers who have been killed in an unnamed war. Their comrades dig a mass grave. But when they laid their bodies in an alphabetic row, the six dead soldiers stand up! They tell that they don’t want to give up their lives they’ve barely begun to experience and refuse to be buried.</p>
<p><img src="https://c.alikuru.com/uploads/2013/03/bury-the-dead-by-irwin-shaw-istanbul-awful-play-1.jpg" alt="Don't kill your time with the "Bury the Dead"">We went to see the <em>“Bury the Dead”</em> by Irwin Shaw with two of my friends yesterday.</p>
<p>I don’t know whether it’s because I haven’t seen any expressionist drama before or it was just a sloppy implementation of the original, it felt like a hundred minute long constant pain. I’m no expert in theater, but I still suspect the latter.</p>
<p><img src="https://c.alikuru.com/uploads/2013/03/bury-the-dead-by-irwin-shaw-istanbul-awful-play-2.jpg" alt="Don't kill your time with the "Bury the Dead""></p>
<p>According to Wikipedia, play was Shaw’s first and written in 1936. What we saw yesterday was looked like a heavily modified version with more modern clothing, armament, stage, lighting etc. Although the whole play was full of symbols; messages were too direct and the translation of the script was almost soulless.</p>
<p>Play is presented at the Cevahir, I suggest you to stay away from it.</p>
</div>]]></content:encoded></item><item><title><![CDATA[It's not Ralph who wrecks it!]]></title><description><![CDATA[I believe a scene ruined the idea behind the whole movie with its flawed message. ]]></description><link>https://alikuru.com/wreck-it-ralphs-flawed-message/</link><guid isPermaLink="false">5990a3184d11750d1f534adc</guid><category><![CDATA[Me]]></category><category><![CDATA[Movies]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Sun, 17 Feb 2013 21:19:53 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/wreck-it-ralph-oscars.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/wreck-it-ralph-oscars.jpg" alt="It's not Ralph who wrecks it!"><p><em><strong>Warning:</strong> Spoiler ahead. Don’t go any further unless you’ve already seen the movie.</em></p>
<p>Just watched the Wreck-it Ralph, which is considered by most of the critics as one of the serious contenders for the “Best Animated Film of the Year” at Oscars.</p>
<p><img src="https://c.alikuru.com/uploads/2013/02/doughnut-police-officers-from-the-wreck-it-ralph.jpg" alt="It's not Ralph who wrecks it!"></p>
<p>Movie was fun with lots of carefully crafted references to many popular arcade games, and I was really enjoying it until I see the scene where Ralph returns to the game he belongs with a medal on his neck. There, rather than the standing ovation he is expecting, he finds out that everyone has panicked and left the game. Gene, the only person hasn’t left the building yet, tells him that it’s his fault that everyone is gone. According to Gene, because Ralph left the game, Felix went looking for him and everybody left afterwards because they were afraid of Litwak’s plan to unplug the game in the morning. He tells Ralph, <em>“you actually went and did it”</em>.</p>
<p><img src="https://c.alikuru.com/uploads/2013/02/wreck-it-ralphs-disturbing-message-about-social-stratification.jpg" alt="It's not Ralph who wrecks it!"></p>
<p>After that, we all realize why he wasn’t left and waited for Ralph. Because Gene, who literally started all the adventure by insulting Ralph and refusing him to accept to their <em>“high”</em> society, is a <em>“man of his word”</em>. He throws the key to the penthouse to Ralph with another despising remark; <em>“Well, now you can live alone in the penthouse”</em>. Then we see Ralph standing devastated with a golden key in his hand, while he walks through the door.</p>
<p>I believe this scene ruined the idea behind the whole movie with its flawed message. Accept your place told you by the <em>“higher”</em> members of the society? Obey the hierarchy, or else society will fail and you’ll even lose your beloved dump? This is justifying social stratification, this is praising caste!</p>
<p>In my opinion, instead of receptively listening to his disturbing <em>“shame on you”</em> speech, Ralph should have punched Gene out of the game to the sewers of Mario, so he can chase mushrooms for the rest of his life to get high and dream of a princess that he’ll never reach. Because Ralph didn’t wreck it, they did.</p>
<p>Hope they don’t get an Oscar for this.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Easy way to automatically post your tweets to LinkedIn]]></title><description><![CDATA[It’s still possible to automate sharing your tweets to LinkedIn via third party services, like IFTTT.]]></description><link>https://alikuru.com/easy-way-to-automatically-post-your-tweets-to-linkedin/</link><guid isPermaLink="false">5990a3184d11750d1f534adb</guid><category><![CDATA[automation]]></category><category><![CDATA[ifttt]]></category><category><![CDATA[linkedin]]></category><category><![CDATA[recipe]]></category><category><![CDATA[rss]]></category><category><![CDATA[Software]]></category><category><![CDATA[twitter]]></category><category><![CDATA[twitter to linkedin]]></category><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Fri, 04 Jan 2013 15:10:53 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/post-your-tweets-to-linkedin.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/post-your-tweets-to-linkedin.jpg" alt="Easy way to automatically post your tweets to LinkedIn"><p>Before <a href="http://blog.linkedin.com/2012/06/29/sharing-on-linkedin-twitter/" title="Sharing Professional Content on LinkedIn and Twitter">LinkedIn and Twitter end their partnership</a> last summer, Twitter users were able to post their tweets automatically to LinkedIn. Users were able to choose between sharing all tweets directly and filtering tweets that has a certain hashtag (#in). Since then, the link between two platforms is severed and these options are no longer are available.</p>
<p>However, it’s still possible to automate sharing your tweets to LinkedIn via third party services. There are numerous alternatives here, but I prefer using <a href="https://ifttt.com/" title="if this, then that">IFTTT</a> because it has a clever design and offers diverse set of functions across many platforms.</p>
<p><img src="https://c.alikuru.com/uploads/2013/01/post-your-twitter-tweets-to-linkedin-with-ifttt.png" alt="Easy way to automatically post your tweets to LinkedIn"></p>
<p>IFTTT is short for <em>“if this, then that”</em>. The service basically connects different apps/platforms to each other with certain set of rules created by users, which they call <em>“recipes”</em>. To automate your tweet sharing, all you need to do is create an account, and link your LinkedIn account to the system.</p>
<p>After that, you have two options:</p>
<h3 id="theeasywayusemyrecipe">The easy way: Use my recipe</h3>
<p>It’s very easy to create a recipe, but if you don’t have time for it and looking for an easy fix, or just feeling lazy; you can always use the recipe I’ve created, which you can find it below:</p>
<ul>
<li><a href="https://ifttt.com/recipes/73009" title="Twitter to LinkedIn">Post tweets with hashtag #in to LinkedIn</a></li>
</ul>
<p>As title states, with my recipe you’ll be able to automatically update your LinkedIn status with your tweets containing #in hashtag. Don’t forget to change the <em>“alikuru”</em> at the end of the Feed URL with your Twitter user name; otherwise you’ll end up seeing my tweets in your LinkedIn profile, instead of yours :)</p>
<p>You can also change the hashtag according to your needs (i.e. use #linkedin instead of #in).</p>
<h3 id="thehardwaycreateyourownrecipe">The hard way: Create your own recipe</h3>
<p>After logging in to the IFTTT, in your dashboard, click <em>“create”</em> and choose <em>“Feed”</em> option for <em>“this”</em>. You’ll have two different <em>“trigger”</em> alternatives. Should you like to share all your tweets to your LinkedIn account, choose <em>“New feed item”</em> here. If you prefer to filter your tweets with a hashtag, try <em>“New feed item matches”</em> instead.</p>
<p>In either case we need our Twitter RSS stream. Copy and paste the link below to the <em>“Feed URL”</em> section. Don’t forget to change <em>“username”</em> with your own Twitter user name at the end of the link:</p>
<pre><code class="language-html">http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=username
</code></pre>
<p>If you have chosen <em>“New feed item”</em> in previous step, hit <em>“Create trigger”</em> first. If you have chosen <em>“New feed item matches”</em>, enter your keyword filter to the <em>“Keyword or phrase”</em> text box before proceeding to <em>“that”</em> (because it saves more characters, I’ve used #in for my recipe).</p>
<p>After <em>“that”</em>, choose LinkedIn between your linked accounts and choose <em>“Share an update”</em>. In the status text box, clear all options and choose <em>“Entry Content”</em> from the drop down menu on the right. Hit <em>“Create action”</em> and save your recipe by clicking <em>“Create recipe”</em> on the next step.</p>
<p>You are done, enjoy the web automation!</p>
</div>]]></content:encoded></item><item><title><![CDATA[Feature request: "Incognito mode" for Google Web History]]></title><description><![CDATA[Search history is on by default for new registrations and most of the users never realize that Google is recording every search they make.]]></description><link>https://alikuru.com/feature-request-incognito-mode-for-google-web-history/</link><guid isPermaLink="false">5990a3184d11750d1f534ada</guid><category><![CDATA[android]]></category><category><![CDATA[google]]></category><category><![CDATA[Me]]></category><category><![CDATA[Mobile]]></category><category><![CDATA[security]]></category><category><![CDATA[Software]]></category><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Sun, 02 Dec 2012 15:37:15 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/google-incognito-search.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/google-incognito-search.jpg" alt="Feature request: "Incognito mode" for Google Web History"><p>Thanks to <a href="http://aokp.co" title="Android Open Kang Project">AOKP</a>, I’ve recently upgraded to Jelly Bean and I met with <a href="http://www.google.com/landing/now/" title="Google Now">Google Now</a>. I really liked the idea behind it but, unfortunately, my experience with the Google Now is not even close to what’s been advertised on Google’s landing page for the product. It just couldn’t go beyond displaying weather forecast cards for the days ahead, which is quite understandable considering I’m refusing to turn my search history on :)</p>
<p>Google introduced the Web History in 2005 (was “<a href="http://googleblog.blogspot.com/2005/04/from-lost-to-found.html" title="From lost to found">Search History</a>” back then); I’ve never enabled it, not even tried it once. But I always had the feeling of missing something important.</p>
<p><img src="https://c.alikuru.com/uploads/2012/12/google-now-needs-search-web-history-turned-on-to-create-meaningful-results-3.png" alt="Feature request: "Incognito mode" for Google Web History" title="Google Now needs search (web) history to be turned on for meaningful results"></p>
<p>I’m against the idea of logging the keywords I use not because Google is gathering and storing this information and using it for research, but because search data can reveal particularly sensitive information about you. Like the facts about your political views, religion, health concerns etc.; facts that might create troubling scenarios in certain conditions if revealed.</p>
<p>Let’s be honest; we are not always searching for our favorite sports team’s scores or flight schedules. We sometimes search for our ex girl/boyfriend’s whereabouts or CV of a newly joined co-worker. It gets even naughtier on some occasions :)</p>
<p>You don’t need a massive hack attempt to gain access to someone’s private search history; it just takes a curious co-worker accessing your computer at lunch time (or your pathologically ill-minded girl/boyfriend while you’re asleep?). Also, since recent <a href="http://blog.linkedin.com/2012/06/09/an-update-on-taking-steps-to-protect-our-members/" title="An Update On Taking Steps To Protect Our Members">example of LinkedIn</a> taught us that even the biggest sites with dedicated team of security professionals are susceptible to breaches, we know that that possibility is not a far one either.</p>
<p>I believe that what we need here is a “pause” button. We must be able to suspend our search history for a brief period of time, which will allow us search for our necessary evil off the record, and then go on the record again. What I want is a state comparable to the “incognito mode” offered by most of the modern browsers or “pause protection for 5 minutes” type of flexibility offered by most of the anti-virus software programs. This way, we can enjoy the benefits of our search history without worrying about what might can be discovered if someone digs into our keywords and visited sites.</p>
<p>However, I doubt that Google will ever implement such feature.</p>
<p><img src="https://c.alikuru.com/uploads/2012/12/google-search-web-history-is-turned-on-by-default-on-new-registrations.png" alt="Feature request: "Incognito mode" for Google Web History" title="Feature request: 'Incognito mode' for Google Web History"></p>
<p>Search history is on by default on new registrations (just checked and verified it) and most of the users never realize that Google is recording every keyword they are searching and every search result they are clicking. They just enjoy the “personalized” search experience without knowing the risks. Putting a button near the “I’m feeling lucky” button wouldn’t bring good luck to Google, obviously. So, Google will just ignore this and keep trying to convince people who already disabled their web history with new products like Google Now :)</p>
</div>]]></content:encoded></item><item><title><![CDATA[Idea: Can Twitter be used for targeting patients in healthcare?]]></title><description><![CDATA[Although this sort of targeting has the potential of proving itself very effective, it also has another aspect: it might spook your customers out.]]></description><link>https://alikuru.com/idea-can-twitter-be-used-for-targeting-patients-in-healthcare/</link><guid isPermaLink="false">5990a3184d11750d1f534ad9</guid><category><![CDATA[foursquare]]></category><category><![CDATA[healthcare]]></category><category><![CDATA[marketing]]></category><category><![CDATA[Me]]></category><category><![CDATA[Science]]></category><category><![CDATA[social media]]></category><category><![CDATA[twitter]]></category><category><![CDATA[Web]]></category><category><![CDATA[data]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Thu, 02 Aug 2012 16:05:51 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/twitter-for-targeting-patients-healthcare.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/twitter-for-targeting-patients-healthcare.jpg" alt="Idea: Can Twitter be used for targeting patients in healthcare?"><p>Well, after the article I’ve just read on the NewScientist blog “One Per Cent”, it’s not really a question for me anymore. I believe it can.</p>
<p><img src="https://c.alikuru.com/uploads/2012/08/twitter-data-predicting-sick-ill-beforehand-inadvance-flu.jpg" alt="Idea: Can Twitter be used for targeting patients in healthcare?" style="float:right;margin:.4em 0 1em 1em;padding:0;width:250px;height:250px;">The article <a href="http://www.newscientist.com/blogs/onepercent/2012/07/ai-predicts-when-youre-about-t.html" title="NewScientist: AI predicts when you're about to get sick">I mentioned</a> is about how Twitter data is being used to predict a single person’s chances of getting caught by flu. According to the article, researchers analysed 4.4 million tweets tagged with GPS location data from over 630,000 users in the New York City area over one month in 2010. They used a machine-learning algorithm to tell the difference between tweets by healthy people – who might say something like “I am so sick of this traffic!” – and someone who is actually sick and showing signs of the flu. After their analysis, they were able to predict when healthy people were about to fall ill -and then tweet about it- with about 90 per cent accuracy out to eight days in the future. That’s quite impressive!</p>
<p>Do you know what was the first thing came to my mind while I was reading that result? The data mining experiment carried out by Target, for pinpointing their <a href="http://www.nytimes.com/2012/02/19/magazine/shopping-habits.html" title="NYT: How Companies Learn Your Secrets">pregnant customers</a> (a must read, by the way).</p>
<p>It wouldn’t be so hard to use a similar approach here and take advantage of the publicly -and, might I add; also <em>freely</em>– available data for marketing purposes. If you can spot a prospective patient several days in advance of his/her illness, that information clearly gives you the opportunity of mentioning him/her in a tweet like this one at the time when he start feeling his very first symptoms;</p>
<img src="https://c.alikuru.com/uploads/2012/08/twitter-data-predicting-sick-ill-beforehand-inadvance-flu-pharma-healthcare-marketing.jpg" alt="Idea: Can Twitter be used for targeting patients in healthcare?" style="float:none;margin:1em auto;padding:0;width:468px;height:289px;">
<p>Is he feeling feverish? Indeed he is; 90%. You can replace the vitamin C/flu with any relevant condition and product/service combination; as long as there is enough tweet to feed the methodology, it should work. Lastly, we can discover patient’s whereabouts from the location data embedded in his most recent tweet. So, why not point him to a pharmacy? Or, to a health center? Where he can enjoy a carefully crafted Foursquare special discount for his check-in :)</p>
<p>Now, although this sort of targeting has the potential of proving itself very effective, it also has another aspect: it might spook your customers out. In fact, that was exactly what Target experienced on their first attempt to reach out their pregnant customers. When they started sending catalogs with a “Congratulations on your first child!” note attached to these customers, because they’ve never told the company about their pregnancy, it made them uncomfortable.</p>
<p>But, I believe method has space for fine tuning. Target perfected its method with sending out specifically designed catalogs with baby ads looking random. Since people usually don’t consider flu like conditions as private as their pregnancy, it might be easier to find a smoother way for this one.</p>
<p>Anyway, because using publicly available data from social networks has a potential of rendering conventional methods obsolete, I have a feeling that we’ll see scenarios similar to what I’ve described here more often in the future.</p>
<p>Probably more often than anyone of us ever want :)</p>
<p>Images: One Per Cent Blog, <a href="https://unsplash.com/photos/aFZwjObzhDE">gpiron@unsplash</a> and <a href="https://secure.flickr.com/photos/mcfarlandmo/4014611539/" title="mcfarlandmo at Flickr">mcfarlandmo@flickr</a></p>
</div>]]></content:encoded></item><item><title><![CDATA[How to modify backspace behavior of Firefox on Linux]]></title><description><![CDATA[Although everything works perfectly, backspace action on Linux seemed to differ from Windows.]]></description><link>https://alikuru.com/how-to-modify-backspace-behavior-of-firefox-on-linux/</link><guid isPermaLink="false">5990a3184d11750d1f534ad8</guid><category><![CDATA[debian]]></category><category><![CDATA[firefox]]></category><category><![CDATA[Linux]]></category><category><![CDATA[Me]]></category><category><![CDATA[Software]]></category><category><![CDATA[wheezy]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Sat, 26 May 2012 23:05:23 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/firefox-backspace-return-behaviour-change.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/firefox-backspace-return-behaviour-change.jpg" alt="How to modify backspace behavior of Firefox on Linux"><p>Although I occasionally <a href="https://alikuru.com/firefox-4-is-slow/" title="Issues with the fourth release of Firefox">whine about it</a>, I can’t give up <a href="https://alikuru.com/inspect-web-pages-in-3d-with-firefox/" title="Inspect web pages in 3D with Firefox!">using Firefox</a>. And, I’ll probably keep using it till Chrome implements native SOCKS support.</p>
<p>I have a ten years old computer at home, which even suffers from the XP version of Windows. That’s why, recently I’ve decided to run Debian on it and I installed Firefox -the original, not the re-branded Iceweasel- as the default browser on Wheezy.</p>
<p><img src="https://c.alikuru.com/uploads/2012/05/firefox-linux-changing-browser-backspace-action-behavior-1.jpg" alt="How to modify backspace behavior of Firefox on Linux" title="Changing browser backspace action behavior of Firefox running under Linux">Everything works perfectly, except backspace action on Linux seemed to differ from Windows. While the default behavior for the backspace is to take you to the previous page on Windows, hitting backspace on Linux does nothing. Because backspace is one of my favorite shortcuts, first thing I did was to check whether if there are any references in <code>about:config</code>.</p>
<p>There was and it works :)</p>
<p>According to MozillaZine, the key <code>browser.backspace_action</code> can have <a href="http://kb.mozillazine.org/Browser.backspace_action" title="Browser.backspace action">two different values</a>: <code>0</code> and <code>1</code>. Article on MozillaZine says that giving a value other than these two will simply unmap the key. Since <code>2</code> is the default value on Linux, hitting backspace for going back (or shift + backspace for forward) does nothing on Linux.</p>
<p><img src="https://c.alikuru.com/uploads/2012/05/firefox-linux-changing-browser-backspace-action-behavior-2.jpg" alt="How to modify backspace behavior of Firefox on Linux" title="Changing browser backspace action behavior of Firefox on Linux"></p>
<p>Changing it is easy; type <code>about:config</code> on the address bar, dismiss the warning, and then search for <code>backspace</code>. After you’ve located the <code>browser.backspace_action</code> key, highlight it, hit enter and change the value to <code>0</code>. After you click “OK”, you can start enjoying seamless browsing experience with your browser :)</p>
</div>]]></content:encoded></item><item><title><![CDATA[How Gmail works?]]></title><description><![CDATA[According to Google, magic happens through sophisticated and ultra secure data centers, with the help of overweight engineers :)]]></description><link>https://alikuru.com/how-gmail-works/</link><guid isPermaLink="false">5990a3184d11750d1f534ad7</guid><category><![CDATA[gmail]]></category><category><![CDATA[google]]></category><category><![CDATA[Software]]></category><category><![CDATA[sustainability]]></category><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Wed, 16 May 2012 14:07:21 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/how-gmail-works.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/how-gmail-works.jpg" alt="How Gmail works?"><p>Google released an interesting new web site dedicated to promote their environment friendly technologies: <a href="http://www.google.com/green/storyofsend/" title="The Story of Send by Google">The Story of Send</a>. According to the site, magic happens through sophisticated and ultra secure data centers, with the help of overweight engineers :)</p>
<div class="video-container"><iframe src="https://www.youtube.com/embed/5Be2YnlRIg8" frameborder="0" allowfullscreen></iframe></div>
<p>Site tells the whole story around sending and receiving emails with Google’s mailing service, Gmail. There a lot of videos and pictures embedded throughout the neatly designed web site. Especially how they shred the hard drives that have fulfilled their mission in the data center is quite interesting, don’t miss it.</p>
<p>What really attracted my attention while watching the videos, almost all of the staff shown on them are obese, or overweight at best. Google pays well, apparently :)</p>
<p>Obesity is a serious health issue and I believe companies like Google should care about the overall health of their staff, as much as they do for the environment. I suggest Google management team to Google for “<a href="http://www.google.com/search?q=obesity" title="Search for 'obesity' on Google">obesity</a>“, as a start :)</p>
</div>]]></content:encoded></item><item><title><![CDATA[Inspect web pages in 3D with Firefox!]]></title><description><![CDATA[If you are interested in learning HTML and CSS, you should try Firefox’s 3D inspection. You can see how browsers implement the code, in a fun way :)]]></description><link>https://alikuru.com/inspect-web-pages-in-3d-with-firefox/</link><guid isPermaLink="false">5990a3184d11750d1f534ad6</guid><category><![CDATA[firefox]]></category><category><![CDATA[mozilla]]></category><category><![CDATA[Software]]></category><category><![CDATA[Web]]></category><category><![CDATA[design]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Thu, 10 May 2012 21:14:20 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/firefox-3d-website-inspection.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/firefox-3d-website-inspection.jpg" alt="Inspect web pages in 3D with Firefox!"><p>Firefox has a feature called “Inspect Element” for inspecting elements on a web page. It allows you to dig deeper in both the HTML and CSS code of a web page and lets you understand the inspected elements position and styling information in the structure. Today, while inspecting the branding features of Johnson&amp;Johnson’s YouTube page, I’ve noticed a “3D” button on the “Inspect Element” bar and found that it takes the experience in a whole new level :)</p>
<div class="video-container"><iframe allowfullscreen class="aligncenter" frameborder="0" height="268" src="https://www.youtube.com/embed/maxXTcSk2ZU?autohide=1" width="468"></iframe></div>
<p>After a search, learned that it’s been around since de v11 beta and migrated to the v11 stable after testing. If you are interested in learning HTML and CSS, you should try Firefox’s 3D inspection. You can see how browsers implement the code, in a fun way :)</p>
</div>]]></content:encoded></item><item><title><![CDATA[Is Twitpic distributing malware through advertisements?]]></title><description><![CDATA[An ad on Twitpic, which tells users that they've been tagged in someone else's photos, redirects them to an executable file named “etype_setup.exe”. ]]></description><link>https://alikuru.com/is-twitpic-distributing-malware-through-advertisements/</link><guid isPermaLink="false">5990a3184d11750d1f534ad5</guid><category><![CDATA[advertising]]></category><category><![CDATA[Me]]></category><category><![CDATA[security]]></category><category><![CDATA[social media]]></category><category><![CDATA[twitpic]]></category><category><![CDATA[twitter]]></category><category><![CDATA[Web]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Fri, 27 Apr 2012 16:56:40 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/twitpic-virus-advert.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/twitpic-virus-advert.jpg" alt="Is Twitpic distributing malware through advertisements?"><p><img src="https://c.alikuru.com/uploads/2012/04/is-twitpic-distributing-malware-virus-through-advertisements-sharp.png" alt="Is Twitpic distributing malware through advertisements?" style="float:right;margin:.4em 0 1em 1em;padding:0;width:250px;height:221px;">I saw the first of these ads today on Twitpic, one that say “I’ve been tagged” in three photos, and clicked it with curiosity on whether Twitpic started photo tagging on its system or not. It was the official account of the magazine I’m working for, hence it was important to check if the content was appropriate.</p>
<p>After I clicked the ad, it redirected me to an executable file named “etype_setup.exe”. Certainly, I haven’t downloaded or installed the executable on my system. But, since these ads are obviously misleading users to an installation file without any proper description and warning, it feels like a stinky situation.</p>
<p>Is creating its own botnet a new business model for Twitpic?</p>
<p><img src="https://c.alikuru.com/uploads/2012/04/is-twitpic-distributing-malware-virus-through-advertisements-screenshot-01.png" alt="Is Twitpic distributing malware through advertisements?" title="Is creating its own botnet a new business model for Twitpic?"></p>
</div>]]></content:encoded></item><item><title><![CDATA[Google to launch third-party commenting system]]></title><description><![CDATA[Google is about to launch a third-party commenting system that is very similar what’s been offered by Facebook.]]></description><link>https://alikuru.com/google-to-launch-third-party-commenting-system/</link><guid isPermaLink="false">5990a3184d11750d1f534ad4</guid><category><![CDATA[facebook]]></category><category><![CDATA[google]]></category><category><![CDATA[google plus]]></category><category><![CDATA[News]]></category><category><![CDATA[Web]]></category><category><![CDATA[social media]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Tue, 27 Mar 2012 23:44:35 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/google-plus-website-comments.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/google-plus-website-comments.jpg" alt="Google to launch third-party commenting system"><p>According to <a href="http://thenextweb.com/google/2012/03/27/google-to-launch-third-party-commenting-platform-to-rival-facebook/" title="Google to launch third-party commenting platform to rival Facebook">the Next Web</a>, Google is about to launch a third-party commenting system that is very similar what’s been offered by Facebook.</p>
<p>Obviously, this is not a surprise. But, it is also probably the most important update for the company since their “Social Search” implementation.</p>
<p>With on-by-default social search, Google literally forced site owners to create Google+ profiles for their businesses and for themselves. And, since Google highly values “+1” interactions on both its search engine and third-party sites, this new feature gets late adapting webmasters attention to optimize for Google+ and adopt +1s, too.</p>
<p>Because Google is still dwarfing all the competition, I believe the soon to be released third-party commenting system of the company will also be welcomed with mass adoption rates. Comments will be indexed by Google, most probably with their +1 values, and this will bring the SEO power on the most powerful search engine of all times.</p>
<p>Unless Google somehow manages to ridicule itself, no one will miss this.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Importance of online advertising finally overtook importance of the content]]></title><description><![CDATA[Who said “the content is the king”? It seems like that era has been finished already.]]></description><link>https://alikuru.com/importance-of-online-advertising-finally-overtook-importance-of-the-content/</link><guid isPermaLink="false">5990a3184d11750d1f534ad3</guid><category><![CDATA[advertising]]></category><category><![CDATA[Web]]></category><category><![CDATA[marketing]]></category><dc:creator><![CDATA[Ali Kuru]]></dc:creator><pubDate>Tue, 31 Jan 2012 10:18:56 GMT</pubDate><media:content url="https://c.alikuru.com/uploads/2017/08/online-advertising-overtook-the-content.jpg" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="https://c.alikuru.com/uploads/2017/08/online-advertising-overtook-the-content.jpg" alt="Importance of online advertising finally overtook importance of the content"><p>Who said “the content is the king”? It seems like that era has been finished already.</p>
<p>This is what I see when I open an item belong to the Wired Gadgets RSS feed on Google Reader. After they became more annoying, disturbing and interrupting with every day, online ads are finally holding the throne.</p>
<p>The King is dead. Long live the King.</p>
<p><img src="https://c.alikuru.com/uploads/2012/01/online-advertising-overtook-the-content-at-last-wired-feed-item-rss.png" alt="Importance of online advertising finally overtook importance of the content" title="No content, just ads."></p>
</div>]]></content:encoded></item></channel></rss>