after migrating websites and databases onto new hardware last weekend, I took the chance and did, what was way long overdue: I made an upgrade to WordPress 3.0 yesterday. Even though several other blogs of friends and those all around the world mentioned heavy problems and various plugins malfunctioning after the upgrade, it worked very well for me. Hier geht's weiter... » // Read more... »

Due to critical hardware failure, I’m forced to shut down and migrate all my websites and those hosted on my server soon. This might happen this afternoon already.

Right now, most of the websites are still working properly. Nevertheless, several database queries, depending on MySQL’s temporary directory, currently fail since the temp filesystem unfortunately is read-only. Most likely, this effects categories and article tagging in WordPress.

Even though I’ve prepared and tested the migration so far, there will be a downtime of at least several minutes. After the migration, there might be character problems due to a required change from LATIN1 to UTF8. This may result in not properly displayed German characters like “ä”, “ö”, “ü”.

If you encounter problems in the next few days, please contact me.

Thanks.

Hi there,

during the past few days, unfake.it‘s performance increased dramatically. Several scripts and jobs have been moved onto new servers, the database structure and various SQL statements have been enhanced and even SQL SELECT statements have been optimized to more and more use readonly slave servers. Most URLs are being faked in much less than a tenth of a second. The magical previews of faked URLs are generated almost instantly, since performance increased dramatically.

Unfortunately, faked URLs weren’t posted to Twitter when using the WordPress Plugin during the past 4 hours due to a tiny misconfiguration. This issue could be solved.

unfake.it has become a more and more commonly used URL shortener during the past months. Almost 1.000 URLs are faked in a 24 hour period, even though this magic edge has not yet been crossed. See the stats for more information ’bout that.

Bye, Thomas

Seit einigen Tagen jedoch bereitet der Safari Probleme: immer wieder kommt die Popup-Meldung "Safari Web Browser funktioniert nicht mehr". Teilweise tritt dies vereinzelt auf, teilweise sofort nach dem Start von Safari. Hier geht's weiter... » // Read more... »

Hi there!

Quite a while ago, I started writing my first and own facebook application. I got stuck while trying to publish content to my own profile page and also to my friends’ newsfeeds. I stumbled upon several problems. Either there was no content displayed, it was formatted in a wrong way, it was not published on my friends’ newsfeeds or it even was published on behalf of my friends’ username. It was quite strange to me and I could not find an easy documentation on how to do it the right way.

I played around with Stream.publish, Feed.publishUserAction or Notifications.send – none of those functions did what I wanted them to do. This may be so, because I did not fully understand their purposes.

So, this is my way to do it. I am using the FBJS (FaceBook JavaScript) popup call Facebook.showFeedDialog. This is truely (as far as I’m concerned) the best and easiest way.

First of all, I assume you are familiar with how to build an facebook application from scratch. If not, please read the developer’s documentation.

Step 1: build and register your Feed Template Bundle

  1. go to the Feed Template Console
  2. choose your application and hit “Next”
  3. create a template for your “One Line Story” and hit “Next”
  4. create a template for your “Short Story” and hit “Next”
  5. create Action Links and hit “Next”
  6. hit “Register Template Bundle”
  7. copy and save the Template Bundle ID given in the popup (you will have to paste it into your application’s code later)

When doing this, you may enter any text or even HyperText in the fields for the One Line or Short Story. You also may enter predefined tags such as {*actor*} or your own defined tags such as {*foobar*}. In the Sample Template Data, you may enter the tag definitions and display a preview. What you enter there and at this very moment has no effect on the content displayed within your application later! That’s just for previewing purposes. The real content will be defined later in your application’s script. Remember that! Some Examples for your Sample Template Data at this point may be:

{"foobar": "This is a foobar text"}

Or a bit more complex:

{&quot;foolink&quot;: &quot;&lt;a href=&quot;http://www.google.com/&quot;&gt;Google&lt;/a&gt;&quot;,</p>
<p>&quot;images&quot;:[{&quot;src&quot;:&quot;http://domain.com/image1.jpg&quot;, &quot;href&quot;:&quot;&lt;a href=&quot;http://www.facebook.com/&quot;&gt;http://www.facebook.com&lt;/a&gt;&quot;},</p>
<p>{&quot;src&quot;: &quot;http://anotherdomain.com/image2.jpg&quot;, &quot;href&quot;:&quot;&lt;a href=&quot;http://www.facebook.com/&quot;&gt;http://www.facebook.com&lt;/a&gt;&quot;}]}

You see, e.g . the {*images*} tag is defined as some sort of array consisting of multiple SRC and HREF values. Attention: the special tag {*images*} is displayed automatically on Short Stories, you don’t need to call them!

2. write your application’s content

<?PHP</p>
<p>require_once 'facebook-platform/php/facebook.php';</p>
<p>$appid = 'xxxxxxxxx'; // your app ID</p>
<p>$appapikey = 'XXXXXXXXXXXXXXXX; // your app key</p>
<p>$appsecret = 'XXXXXXXXXXXXXXXX'; // your app secret</p>
<p>$template_bundle_id = 'xxxxxxxxxxxxxxxx'; // the ID you got in Step 1</p>
<p>$facebook = new Facebook($appapikey, $appsecret);</p>
<p>$user_id = $facebook->require_login();</p>
<p>echo "<p>Hello, <fb:name uid=\"$user_id\" useyou=\"false\" />!</p>";</p>
<p>?></p>
<p><script type="text/javascript"><!--</p>
<p>    var template_bundle_id ="";</p>
<p>    var url="http://www.google.com/";</p>
<p>    var user_message_prompt = "Share this URL with your friends?";</p>
<p>    var user_message = {value: "wants to share a greate website."};</p>
<p>    var image ="http://www.google.com/intl/en_ALL/images/logo.gif";</p>
<p>    var template_data = {"url": url,</p>
<p>                                  "images": [{'href': url, 'src' : image}]};</p>
<p>    Facebook.showFeedDialog(template_bundle_id, template_data, '', '', '', user_message_prompt, user_message);</p>
<p>// --></script></p>
<p>

This is it.

Every time you call your application’s page, you’ll get a facebook popup asking you to display the content on your profile and even in your friends’ newsfeeds. Of course, it does not make any sense to share some data every time you call your application’s canvas page, so you may want to add some more code to your application.

The text to be shared is the text you entered when registering the Template Bundle in Step 1. If you get an error, please make sure the defined variables (such as “url” or “images”) are valid and do exist. In other words: whatever you call in your Template Bundle, it has to be defined in your script.

Of course, you may generate the content dynamically from a database or any other source.

I hope this HOWTO helped.

Bye, T.

Hi there,

after several months, unfake.it has become even more important in the Web2.0 community. A few weeks ago, I was talking to some guys and co-workers about programming and such things. I then told about unfake.it and a co-worker of mine said, he somehow stubled upon http://unfake.it/ and uses it irregular. That was quite funny to me.

I’ve had very few time the past months and since I got stuck on the half way because of some WordPress problems and also some problems with facebook’s API and FBML, there was no more development. But now I’m proud to announce that today, I released a completely new version including new features:

WordPress plugin version 1.2

The new plugin comes with its own settings page and adds two own tables to your WordPress installation. The main purpose is to let you configure, whether or not you wish to be taken to facebook and add the shortened URL for your new blog post (including a thumbnailed screenshot) to your facebook profile page and even in your friends newsfeeds.

Facebook application

unfake.it now has its own facebook application which lets you add shortened URLs, lists them as screenshots in a profile box, displays about new URLs on your profile wall and even tells your friends about it in their newsfeeds. Want an example? See:

uf_v12

Since a few hundred URLs are shortened every single day, I also had to do some enhancements to the database structure and especially to the thumbnailing process. Just think about it: at the moment, we have more than 20,000 shortened URLs, each of them was once and initially thumbnailed, stored and is re-fetched every few days, if still hits occur. That’s a lot of traffic and a lot of CPU power. Just take a look how MySQL handlers and Apache traffic increased the last months:

uf_mysql_200908

uf_apache_200908

You may see most recent stats at http://unfake.it/stats.php.

Please let me know, if you have any problems with the new version of the WordPress plugin and especially what you think about the facebook application.

Bye, T.

Hallo zusammen,

erst heute bin ich durch http://www.zensursula.net/ auf das nachfolgende kurze Telefoninterview mit Ursula von der Leyen zum Thema DNS-Sperren gegen Kinderpornographie gestossen. Was ich da gehört habe, schlägt dem Fass den Boden aus!

Frau von der Leyen gibt an, dass rund 80% der Internetnutzer die ganz normalen User des Internets” sind, während die restlichen 20% die versierten Benutzer sind, die Sperren im Internet umgehen könnten, die zum Teil “schwer pädokriminelle sind, die sich “in ganz anderen Foren” bewegen und “natürlich auch geschult im Laufe der Jahre in diesem widerwärtigen Geschäft sind.

Ein Klick hier spielt das Interview (38 Sekunden) ab

Frau von der Leyen, das war ja wohl mal ziemlich daneben. Ich bezeichne mich selbst als sehr versierten Internetnutzer, falle also in Ihre 20%-Gruppe und fühle mich ziemlich über einen Kamm mit Straftätern und Kinderschändern geschoren.

Ich denke und hoffe, die 20% der versierten Internetnutzer werden so viel wie möglich der restlichen 80% darüber aufklären, wie Ihre DNS-Manipulation und damit Ihre Zensur im Internet umgangen werden kann. Ihr Ansatz, Frau von der Leyen, ist grundfalsch. Warum packen Sie das Problem nicht da an, wo es nötig wäre: beim wirklichen Übel?

Guten Abend.

Hi there!

digsby-logo

 

Do you use facebook and facebook’s chat function once in a while? Yes? And do you know Digsby? No? Not yet?! Well, you should!

I used to use Trillian as Instant Messaging client like for years, but last autumn, I switched to Digsby: http://www.digsby.org/.

It’s a high performant IM client with lots of features and (that’s what I like most about Digsby!) some great Web 2.0 implementations.

digsby-fb1

I guess, some of you might use facebook’s chat function. So did I but I did not like it that much. It totally wrecked my nerves to use my webbrowser for a chat. You may know the tiny little conversation windows as it appears on the very bottom of your browser tab. And that’s (at least for me) the first problem: conversations are bound to exactly this browser and this tab.

If I open facebook’s website at work and forget to close the browser or the tab before I leave for home, I appear as online to all my friends, they write me and wonder, why I don’t reply – even if I’m online at home, but did not check into facebook’s website.

It might be a great function – but I really don’t like it. I’m used to certain applications for instant messaging. Such as Digsby.

digsby-fb2

Digsby has even more than a full Web 2.0 integration – you may use this IM client as a fully compatible and realtime instant messanger for facebook. Simply check “Tools” in the applications menu, then “Preferences”, then hit “Add IM Account” and select “Facebook Chat”.

Once you entered your correct account data, your online facebook friends will appear in Digsby’s Buddy List – right between your Buddies from ICQ, MSN, Jabber, …

And this really is realtime. I noticed no lag so far. The sign-on and sign-off popups even show your friends most recent status, which turned out to be very usefull for me. This is how I noticed, one of my facebook friends had a BBQ yesterday, so I could join 🙂

Once you double click one of your friends in your Buddy List, a conversation window opens – just like every IM client should behave.

You may also use the shortcuts to your friend’s profile, wall, photos and so on. Check out the following screenshots:

 

digsby-fb3digsby-fb4

 

 

 

 

 

 

 

For me, this is a very useful IM integration. Check it out! 🙂

Bye, T.

Hi there!

I have to thank you! All of you, using unfake.it as URL shortening service!

It’s been 100 days, since I faked the first URL with unfake.it – my very own URL shortening service. I started this project, ’cause I always forgot the names of all the other URL shortening providers, so I very quickly wrote my own application, which now is used every day by lots of users.

new shortened URLs by day

What began for my personal use only, has now become a huge and important project. A few days after the initial launch – and even without heavy announcement, the first people started using unfake.it to shorten URLs. Using the bookmarklet, some friends and co-workers started using unfake.it and spreading the URL all over the world.

Then, I implemented an API and wrote a standalone WordPress plugin to shorten URLs for new blog postings before sending them to Twitter. Since March, this plugin is downloaded and installed on new WordPress blogs almost every day a couple of times, which really makes me proud. Today, several co-workers as well as absolutely unknown users all over the globe are using my plugin. And there’s an huge number of hits per day:

number of hits by day

Then, I implemented the magic preview function with thumbnailed images of the destination websites. Then I wrote a facebook application to add faked URLs and their thumbnails to your facebook profile. Those are just toy-like features, but I relly like them – as well as lots of users.

Some facts of what has happened so far (or is happening):

  • more than 3.000 URLs have been faked up to now
  • there are more than 42.000 hits to those URLs up to now
  • the last 3 days, more than 100 new URLs have been added per day
  • URLs for more than 130 unique websites have been faked up to now
  • the WordPress plugin has been downloaded and most likely installed more than 80 times
  • Twitter knows more than 850 faked URLs of the last 7 days
  • Google knows more than 20 pages of faked URLs
  • unfake.it is growing every day

I’m really looking forward to unfake.it‘s future. Sure, there is an increasing number of shortening services, but I guess, some of ’em will disappear again.

Bye, T.

  • Hi there!

stopp-pageFor several weeks now, there’s an incredible story going all over German web pages and blogs. I’ve read a lot about this and I gotta state my 2 cent today.

In Germany, we have the “Basic Constitutional Law” (“Grundgesetz”) which says (translated on my own): “Everyone has the right to express and publish his opinion in the word of mouth, in writing and in any illustrating way and to teach himself in an unresisted way from every generally accessible source. The freedom of press and the freedom of reporting by radio and television are guaranteed. A censorship does not take place.

(Original, German text goes like this: “Jeder hat das Recht, seine Meinung in Wort, Schrift und Bild frei zu äußern und zu verbreiten und sich aus allgemein zugänglichen Quellen ungehindert zu unterrichten. Die Pressefreiheit und die Freiheit der Berichterstattung durch Rundfunk und Film werden gewährleistet. Eine Zensur findet nicht statt.)

The most important part is: A censorship does not take place!

Most recently, this is a lie! Why?

Mrs. Ursula von der Leyen (Federal Minister for Family Affairs, Senior Citizens, Women and Youth) fought a long and (in my opinion) unrespectful fight to fulfill someones dream: control and censor internet usage in Germany. The main reason was and is to prevent child pornography, which is a great and heroic goal. But the technical ways, this is supposed to be done, it quite ridiculous.

  • A list of website, which are likely to host child pornography, is provided by German authorities.
  • German internet providers must filter internet traffic (most likely: DNS requests)
  • Requests for an address on the list will be redirected to a “stop page”
  • German authorities will be informed about this request (including client IP address) automatically
  • Things may happen

You may now think: “okay, no more child pronography – what’s the problem?”.

The main problems (in my opinion) are:

  1. Since the list does contain confidential information, it cannot be published and so cannot be controlled
  2. There surely will be ways to avoid the usage of filtering DNS server
  3. If you tried to display a web page, whichs address is on the list, German authorities will be informed and it’s not unlikely, they will knock at your door hours later

Imagine you click a link like http://sho.rt/URL which takes you to an address being on the list. Well, there might be a knock at your door the next morning – good luck!

Interesting links concerning this topic:

Since Germany states in its constitution that there won’t be a censorship in any way, this development is totally shocking. Mrs. von der Leyen, if you wanna stop child pornography, this is totally okay. But you doing it the wrong way.

At least (open question): are you sure, there is a way?

T.