Sorry, only available in German.
Blog
(Deutsch) Teurer geht’s nicht: Facebook kauft Fotodienst Instagram für Milliardenbetrag
WordPress Comment Spam
WordPress has a comment function. And with the comment you are not only giving a text, but an email address and a website Url. This is OK for the blogging world: I comment on your blog and by the way give you a hint where my blog is.
And since some people only want to applaud to your blog post, they only give a short comment. Plus the email and their website.
And then there are the bad guys, the ones that do “black hat search engine optimization”. They send automated comments to your blog and add a link to their website thus creating “more importance” to their website, fooling the search engines.
This is, where the trouble begins.
How do you separate the real ones from the bad ones?
Examples:
5 comments, all same text, same website but different email addresses. Spam, right?
3 comments, all same text, same website, same email. Spam? Real person?
A comment with a website, that does not exist, but a text that 100% reads like the typical spam texts (“e.g.:Found your blog, think it’s great, will come back, bookmarked it.”). Spam? A real person that just writes the same text as the spammers?
[Edit:] Currently I doUntil yesterday I did not use any software to check comments for Spam. Main reason is was, that WordPress comes with no default captcha solution and I did not want to send all visitors comments to a server that checks for spam. Instead, all comments are waiting for approval by me.[/Edit end]
For a few weeks, I just deleted all comments that looked like spam. And that meant: Deleting nearly all, which is OK, most comments are spam.
Then I thought: What the hell, just delete the link to the spammer website before approving them.
But one side effect of this is, that you help the spammers “sock puppet” fake account to get credibility: People that would search the web would see, that this account has been active, if they do not inspect the fake message content. And you get your database filled with junk.
So what to do? I installed two plugins – one did not work too well – the spammer knew how to go around it – and the other one worked. Since yesterday I have “silence” again. Phew. After one year on iWeb with zero spam and one real comment, the 2-10 Spams per day was getting too nasty. Now I am happy again.
APT14: Lookout, Screenshots only in HiRes
When I was doing my study on which iTunes country Apple App Store presence uses which language (for results, see here), I used my least selling worldwide available app to do this, which was Dinner Speech until today. I added a number at the end of each description to document the language I had edited this in.
Then I had to wait, since even after 4 hours, not all shops had the changes pushed.
The next day my son Jonathan carried out much of the worldwide research and edited the table. Since I was busy with other things, I did not immediately change back all App Website texts to delete the numbers at the end.
When I wanted to do this today, I received the friendly notice from iTunes Connect:
In order to save your changes, all iPhone/iPod touch screenshots must be a .jpeg, .jpg, .tif, .tiff, or .png file that is 960×640, 960×600, 640×960 or 640×920 pixels, at least 72 DPI, and in the RGB color space.
What had happened, I just deleted two chars: ” 1″?
It turns out,
- the edit button that enables me to change the text also uploads the screen shots
- my screen shots are still all 320×480 (low resolution) in size
- in the three days in between adding the 1 and today, Apple iTunes Connect had changed the rules
- it will not change my text as long as I have no new screenshots
- my old app website text and screenshots are not affected (as far as I can see)
Of course I am OK with that rule change, it is a change to the better, it is good for the customer and more correct to the iPhone 4(s) users. It is just that I now have to prepare 5 screenshots for 4 different supported languages before I am able to delete all the numbers in the text. It will cost me about 4 hours of work (guesstimate (a word the spelling checker knows!)) and it will not sell a single copy of Dinner Speech for me.
Another example of the meaning of: “Sometimes, progress is painful to the individual.”
APT13: WordPress Learnings
Here the quick list of my WordPress learnings after moving from iWeb to WordPress
- WordPress is really easy to use, install, maintain and update
The “famous 5 minute install” really is a 5 minute install – if you are a computer science pro like me. If the version number of your database is something that sounds like a mongolian city name to you, then you better ask a pro to set up your webspace. But once this is done (and since this is easy to do, it is rather cheap, call us for a quote), then you can do all other tasks on your own. Really. OK, at least probably. - Stick with the defaults if you want results
There are too many choices: Themes, Plugins, Settings… I ‘lost’ two days for browsing and previewing a lot of nice-looking “Themes”, which is the WordPress name for design and layout of your website. Even if you have a clear vision of how your website should look like, browsing for the exactly matching theme may not be the right thing to do. After some trying here and there, I decided to stick with the default theme, as so many others out there do. - By default, WordPress is a blog
If you want WordPress to be your website rather than your blog, then you can do that too, but you have to change and tweak here and there. Not much of a problem, but by default it wants to be your blog. So if you don’t want to blog, it may not feel like the best choice. - WordPress is one blog with one language
Of course there exist multiple plugins that make a multi-language blog out of WordPress. But by default, it has only one blog and one language. Although this does not seem like a big issue and although I am using one of the multi-language plugins, this is a big problem for me. If WordPress gets updated, you have to check and wait for the plugins to be checked and updated (if needed) as well. - WordPress is Web 2.0 built in
Since by default all pages and posts on your website have a built-in comment part and functionality, it really is a blog system for the web 2.0. Your definition may differ, I usually refer to web 2.0 as the version of the web tools that made user interaction possible, e.g. commenting a comment, comments being taken as serious as the blog post itself and being an important or event the important part of the web page, generating a completely new web experience. - Migrating the texts from iWeb to WordPress is easy – but only the text
I used to generate my website from a tool called iWeb that Apple ships with their Mac OS X. If your iWeb website was little more than a blog, then you can easily write out the website to local disk, look for the.rss and use the rss importer plugin to read the texts into WordPress. But do not expect support for non-blog pages, pictures, picture galleries, layout or the complete website. And sorry, no, I have not written a php script to migrate my site. - [UPDATE:] Since I switched from iWeb blogging with comments enabled to WordPress with comments, I get A LOT OF SPAM comments. With iWeb I had no (zero) Spam comments. With WordPress – without using any filter – I get about two (2) spam comments a day. So I will have to add a captcha (which is included in iWeb commenting functions, but not in WordPress). [/UPDATE]
That’s it for now, may be the list gets longer in the future!
Regards, Thomas
APT12: Which language is used in which App-Store?
When you want to publish your app in the Apple App Store, you have the choice in which countries you want your app to be offered. I have not counted the number of countries lately, but hey, it is a long list, so you probably rather click on “all countries”.
Since every app has it’s own App-Store “webpage”, you have to decide in which language the app description in this webpage will be. The easiest choice is to use only one language, e.g. english. But I decided different and used german, english, spanish and french descriptions of my apps. Nowadays, when you create a new app, you can select which language will be used as the default language. But my apps are still stuck with the options at that time and this meant: German as default language. I already wrote about the default language issue in the app store some time ago here.
Now imagine I have these 4 descriptions in those four languages. So I go to iTunes Connect and it offers me the choice of 18 languages (see picture) as of today. While you may know, that the word sundowner is listed in an australian dictionary, the question, if the Apple App Store of New Zealand will make use of my text filed under:
- UK English
- Australian English
- English
is not as easy to be answered. To answer that: Apple uses the text you store under Australian English for New Zealand as well.
But what if I did not store any text as Australian English? Then your apps webpage will get the content from your default language, of course. Unfortunately for me, the default language of my existing apps is German, which is rather inappropriate for New Zealand customers. In order to have a complete list of all stores and their iTunes-Connect language settings being used, Jonathan and I compiled this list.
Instruction: If your app website address is
http://itunes.apple.com/de/app/tischrede-app/id459096545?mt=8
then the de in the address above indicates the german store, because de is the ISO 3166-1 code for Germany. I can not guarantee that Apple really uses this code, but at least I tried the codes below and most of them worked. (If you prefer a pdf version of the list, download it here).
Enjoy and feel free to share…
iTunes Country | Code | Language | Comment |
Europe | |||
België | be | UK English | benl’ doesn’t work |
Belgique | be | UK English | befr’ doesn’t work |
България (Bulgaria) | bg | UK English | |
Česká republika | cz | UK English | |
Danmark | dk | UK English | |
Deutschland | de | German | |
Eesti | ee | UK English | |
España | es | Spanish | |
France | fr | French | |
Greece | gr | UK English | |
Hrvatska (Kroatia) | hr | UK English | |
Ireland | ie | UK English | |
Italia | it | Italian | |
Latvija | lv | UK English | |
Liechtenstein | li | English | |
Lietuva | lt | UK English | |
Luxembourg | lu | UK English | |
Macedonia | mk | UK English | |
Magyarország (Hungary) | hu | UK English | |
Malta | mt | UK English | |
Moldova | md | UK English | |
Montenegro | me | Error | |
Nederland | nl | Dutch | |
Norge | no | UK English | |
Österreich | at | German | |
Polska | pl | UK English | |
Portugal | pt | Portuguese | |
România | ro | UK English | |
Россия (Russia) | ru | Russian | |
Slovakia | sk | UK English | |
Slovenia | si | UK English | |
Schweiz | chde | Error | |
Suisse | chfr | Error | |
Suomi (Finnland) | fi | UK English | |
Sverige | se | Swedish | |
Türkiye | tr | UK English | |
UK | uk | UK English | changes to gb |
Asia Pacific | |||
Australia | au | Australian English | |
中国 (China) | cn | Simplified Chinese | |
Hong Kong (English) | hk/en | Not found | |
香港 (Hong Kong) | hk | UK English | |
Indonesia | id | UK English | |
日本 (Japan) | jp | Japanese | |
대한민국 (Korea) | kr | Korean | |
Malaysia | my | UK English | |
New Zealand | nz | Australian English | |
Philippines | ph | UK English | |
Singapore | sg | UK English | |
台灣 (Taiwan) | tw | UK English | |
Thailand | th | UK English | |
Vietnam | vn | UK English | |
Other Asia | asia | ||
Africa, Middle East | |||
Armenia | am | UK English | |
Botswana | bw | UK English | |
Bahrain | bh | UK English | |
Cameroun | cm | English | |
Centre Afrique | cf | Error | |
Côte d’Ivoire | ci | English | |
Egypt | eg | UK English | |
Guinea-Bissau | gw | Error | |
Guinée | gn | Error | |
Guinée Equatoriale | gq | Error | |
India | in | UK English | |
Israel | il | UK English | |
Jordan | jo | UK English | |
Kenya | ke | UK English | |
Kuwait | ku | English | |
Madagascar | mg | UK English | |
Mali | ml | UK English | |
Maroc | ma | Error | |
Mauritius | mu | UK English | |
Mozambique | mz | Error | |
Niger | ne | UK English | |
Nigeria | ng | UK English | |
Oman | om | UK English | |
Qatar | qa | UK English | |
Saudi Arabia | sa | UK English | |
Sénégal | sn | UK English | |
South Africa | za | UK English | |
Tunisie | tn | UK English | |
Uganda | ug | UK English | |
United Arab Emirates | ae | UK English | |
Latin America | |||
Anguilla | ai | UK English | points to lae |
Antigua & Barbuda | ag | UK English | points to lae |
Argentina | ar | Latin American Spanish | points to la |
Barbados | bb | UK English | points to lae |
Belize | bz | UK English | points to lae |
Bermuda | bm | UK English | points to lae |
Bolivia | bo | Latin American Spanish | points to la |
Brasil | br | Brazilian Portuguese | |
British Virgin Islands | vg | UK English | points to lae |
Cayman Islands | ky | UK English | points to lae |
Chile | cl | Latin American Spanish | points to la |
Colombia | co | Latin American Spanish | points to la |
Costa Rica | cr | Latin American Spanish | points to la |
Dominica | dm | UK English | points to lae |
República Dominicana | do | Latin American Spanish | points to la |
Ecuador | ec | Latin American Spanish | points to la |
El Salvador | sv | Latin American Spanish | points to la |
Grenada | gd | UK English | points to lae |
Guatemala | gt | Latin American Spanish | points to la |
Guyana | gy | UK English | points to lae |
Honduras | hn | Latin American Spanish | points to la |
Jamaica | jm | UK English | points to lae |
México | mx | Latin American Spanish | |
Montserrat | ms | UK English | points to lae |
Nicaragua | ni | Latin American Spanish | points to la |
Panamá | pa | Latin American Spanish | points to la |
Paraguay | py | Latin American Spanish | points to la |
Perú | pe | Latin American Spanish | points to la |
St. Kitts & Nevis | kn | UK English | points to lae |
St. Lucia | lc | UK English | points to lae |
St. Vincent & The Grenadines | vc | UK English | points to lae |
Suriname | sr | UK English | points to lae |
The Bahamas | bs | UK English | points to lae |
Trinidad & Tobago | tt | UK English | points to lae |
Turks & Caicos | tc | UK English | points to lae |
Uruguay | uy | UK English | points to la |
Venezuela | ve | Latin American Spanish | points to la |
América Latina y el Caribe (Español) | la | Error | |
Latin America and the Caribbean (English) | lae | Error | |
US, Canada | |||
Canada (English) | ca | Canadian English | |
Canada (Français) | ca/fr | Not found | |
Puerto Rico (English) | pr | Error | points to lae |
Puerto Rico (Español) | pr | Error | points to lae |
USA | us | English |
WordPress statt iWeb
APT11: Beim Server muss man eingeloggt sein?
Heute mal was von Laptops und Servern und nix von Apps
Es ist ja normalerweise eine tolle Sache, mit Mac OS X zu arbeiten. Beispielsweise installiere ich nie Druckertreiber oder so etwas. Einfach Gerät anschließen, ein paar Sekunden warten, fertig. Auch wenn ein Gerät im Netzwerk ist, einfach auf das „+“ (für‘s hinzufügen) klicken, man bekommt das Gerät mit Namen angezeigt, angeklickt, fertig. Mein Mac findet immer alle Treiber und alles funktioniert einwandfrei. Meistens jedenfalls…
So klappte auch alles mit der Drucker-Scanner-Kombi, die ich mir gekauft hatte, weil der alte Büroscanner mit seinem Besitzer ausgezogen ist. Leider war das USB Kabel zu kurz um den neuen Drucker-Scanner an den Router anzuschließen. Außerdem: Drucker kann der ja, der Router. Aber könnte der auch Scanner? Egal, schließen wir den Scanner einfach am Mac Server an und geben ihn dann im Netz frei.
Wenige klicks später ist alles OK: Scanner auf dem Server installiert und im Netz freigegeben und dann geht es auch von „remote“ von meinem Laptop aus den Scanner zu verwenden. Geht so etwas in Windows?
Was ich an dem Tag nicht gemerkt habe: Auf dem Server muss jemand (ich?) eingeloggt sein, sonst geht der Scanner nicht. Man sieht ihn nicht im Netz, wenn man den Scanner Dialog bei sich öffnet, sagt der nur „Scanner nicht da“ (oder so ähnlich).
Meist hilft dann einfach, sich auf dem Server einzuloggen. [Edit:] Ein paar Tage später ging es mal wieder nicht, dann wieder doch. Unterschied: Als es nicht ging, war Leonard eingeloggt, als es ging, ich. Das ist noch kein Beweis, denn zu viel war jedes mal unterschiedlich. Die Suche nach einer richtigen Lösung geht weiter, stay tuned… [/Edit ENDE]
Heute half auch das nicht – wohl weil irgend etwas mit Scanner und Remote und einloggen in der falschen Reihenfolge passiert ist. Also Server und Laptop rebootet (Ja, das ist unwissenschaftlich, man sollte erst das eine, dann noch mal testen und dann das andere Gerät booten, aber es war mir wirklich nicht wichtig, heraus zu bekommen, welches Gerät „schuld“ ist, dass es nicht geht). Danach ging alles wieder. Scanner da, alles fein.
Aber schräg ist das schon, oder? Ein Server gibt den Scanner nur dann im Netz frei, wenn man eingeloggt ist? Andererseits: Ob es auch gegangen wäre, wenn ich mich nach dem booten nicht auf beiden Systemen wieder eingeloggt hätte? Und gilt das Gleiche für den Drucker-Teil, oder geht der immer? Beim nächsten mal probiere ich‘s aus, ich verspreche es…
APT10: Schnell ist …anders
Beim Testen achte ich eigentlich immer darauf, dass ich alle meine Programme auf alten und auf neuen iOS Geräten teste. Dabei passiert meist nicht sehr viel – so selten, dass man manchmal etwas versucht ist, das viele Testen nicht so wichtig zu nehmen.
Aber ich bin ja schon ein bisschen länger im Business, daher erwarte ich immer, dass sich schnellere Geräte immer mal wieder anders verhalten, als langsame. Oft ist es so, dass korrekte Software auf einem schnelleren Gerät sich anders verhält und Fehler auftauchen, die eigentlich gar nicht da waren.
Jetzt endlich habe ich das auch mal unter iOS erlebt. Eine App funktioniert unter iOS 4.2 auf dem iPod der zweiten Generation. Aber auf dem iPhone 4S unter iOS 5 läuft das gleiche Programm etwas anders. Grund ist wohl, dass der schnellere Prozessor (oder der zweite Prozessor) eine andere Event-Reihenfolge auslöst. Kein großer Fehler, aber ein deutlicher Unterschied im Verhalten.
Eine kleine Änderung später war alles wieder in Ordnung. Tut gut, wenn man mal wieder für sein aus Erfahrung motiviertes verhalten bestätigt wird. Nun ja, unerfahrene, junge Softwerker hätten das auch gefunden, wenn sie Testen richtig ernst nehmen.
In diesem Sinne. Testen, testen, testen !
APT9: Xcode 4.2, iOS 4.2.1
Das neueste Xcode 4.2 war schon installiert, da wollte ich doch gleich mal auf meinem alten iPod der 2. Generation testen. Wie man das halt so macht.
Ja, ich weiß, Ihr jungen Hüpfer da draußen wollt immer gleich ein Release machen, wenn eine App bei Euch fehlerfrei durchgetestet ist,… Aber der echter Entwickler will erst noch alle Hardware und Software-Optionen testen. erst wenn da alles zufriedenstellend schnell ist und funktioniert, Erst dann weiß er, dass er wirklich fertig ist.
Also flugs mein iPod der 2. Generation angesteckt und getestet. Kleiner aber wichtiger Nebeneffekt: Man testet noch einmal die Installation auf einem völlig leeren Gerät – was ja nach dem 10. Test auf dem eigenen Gerät nicht immer 100% der Fall ist.
Xcode kompiliert und schwupp – der Test sagt, er ist fertig.
Hä?
Die App ist weder installiert, noch ist ein Verlauf eines Tests zu finden. Stattdessen ein
Dauer-Warte-Kreis im Log-Navigator.
Etwas später ist dann der Verdächtige gefunden: unter
project-> Build Settings -> Architectures steht: Standard(armv7)
Das ist für den alten ipod der 2. Generation nicht die richtige Einstellung.
Also noch den Wert für Architectures um die Arm6 Architektur erweitert. Dazu habe ich auf „Standard…“ geklickt, dann erscheint eine Auswahl, da auf „other…“ geklickt, dann „+“ (plus) angeklickt und „armv6“ eingegeben, dann neu kompiliert, und schon geht alles wieder. Und nur um sicher zu gehen, dass ich nichts übersehen habe, schaue ich noch nach: Nein, in den Release notes steht nichts davon, na toll. Egal, Problem gelöst!