Tuesday, May 11, 2010

iPad - European delivery early ?

On the 10th of May - the first day of we could order the iPad in France - the Apple Store said "Livraison le 28 mai" (Delivers on May 28).
Today the French Apple Store page is slightly different : "Livraison d'ici au 28 mai" (Delivers by May 28).
Small but important difference. We may be getting our iPads a few days earlier.

May 10:

May 11:

On the German Store they now made a similar change - with a typo - cute ;-)
In German "Lieferung biz [sic] zum 28 Mai" - (Delivers by May 28)

and in English on the UK Store: Delivers by May 28th

Thursday, September 24, 2009

New Wordpress blog online: Le Journal de Maman

This is my first Wordpress blog hosted on my home server:
Le Journal de Maman
Everything is very easy - not much to write about...
I added a few extensions:
- Akismet - against comment spam
- Capability Manager - manage user capabilities and roles
- Comment Reply Notification - subscribe to comments
- Fixed Social buttons - nice RSS button (and others which I don't use)
- Google Analytics for WordPress
- Google XML Sitemaps
- Greg's High Performance SEO - some SEO optimization
- revision delete - reduce database size
- User Permissions - per-post user permissions
- WP-Mail-SMTP - use SMTP
- WP SEO Tags - incoming searches displayed

Thursday, April 30, 2009

CouleurMariage - main site moved to new domain

This is actually old news - posted for completeness.
In September I split out the most successful part of BAOssimo! into its own site : CouleurMariage. New branding and all. The other BAOssimo! parts will be taken down soon.

Sheevaplug - my new low power web server

My Sheevaplug dev kit arrived recently.
Following the various guides and hints of the wiki and the forum on plugcomputer.org it was quite simple and quick to install everything on a fast USB flash drive, upgrade ubuntu, install LAMP and migrate my sites to the new server.
The only complicated bit is self-inflicted: I'm trying to switch from Apache to NginX at the same time. Most of that is straight forward but I'm still testing all the different URL rewrite rules.

Tuesday, July 17, 2007

Google Trends neglected? Petition to update data regularly

Google Trends has been a great source of information. It can be used for all kinds of research. For example you can easily see why Google bought YouTube (found on digg).
But the data has not been updated since February 2007...
On the 'About' page we can read: "We'll aim to update the information provided by Google Trends monthly." Apparently it is quite difficult and/or resource consuming to update this great service.
If you feel like me and would like to see monthly updates really happening contact Google at trends-support@google.com or just leave a comment on this article and I'll forward all requests as a kind of petition to them.

Update: It looks like Google has now updated trends again - just days after this posting. Maybe it helped... ?

Friday, July 13, 2007

Best free online backup solution with versioning: mozy

I have now put quite some work into my Web 2.0 project BAOssimo!
Which made me look for the best backup solution:
  • regular
  • automatic
  • with versioning (à la Apple Leopard Time Machine)
  • free or inexpensive
  • client has to run on Mac OS X (mozy works with Windows, too)
And I finally found it: mozy
It gives me 2G of free backup space which is by far enough for the code base of the drupal CMS plus the database backup.
Setup is simplistic and now mozy backs up every change I make to the code and my nightly snapshots of the database without any further interaction on my part.
From any computer I can access the complete history of my website by just typing my login and password into their website.

Mozy is ideal for my needs. But if you want to backup your media (images, music and films) the 2G of free space is not enough anymore.
Two solutions:
  • Pay $4.95 per month for unlimited space
  • Write an article saying how happy you are about mozy - like I am doing here.
    Referals to their service increase your free space.
So, if I convinced you to use mozy, please use a link in this article to sign up. No disadvantage to you and I get some more free space ;-)

Sunday, May 13, 2007

BAOssimo! goes drupal

Big change.
After long research and quite some preparation BAOssimo! is switching to drupal.
The main reason was that my PHP-Fusion code was so heavily modified that I could not reasonbly update it anymore when a new version of the CMS was available.
Drupal allows me to replicate almost every functionality which I had programmed by hand just using their modules. When a new version is out I can just install over the old one without diving into the code. Much more convenient.
There is one disadvantage: page generation is much slower - but still acceptable.

Monday, October 23, 2006

Block disposable eMails

ReMailR is the newest site/service that I have been working on.
It is an 'intelligent' textfield for html forms which disables the submit button when an email address from a blacklisted email provider is entered.
You'll find all the detail on the dedicated site for ReMailR.

Please use the comments in this post if you want to contact me.

Tuesday, August 29, 2006

Display extracts form my Website on blogs - or other pages

We're running several websites and a few blogger blogs. The websites are PHP-MySQL driven and the new (small) challenge was to show extracts from the sites in the blogger sidebar.

The easiest method I found to include something into blogger is via javascript:
<script type="text/javascript" src="URL_of_remote_file_outputting_javascript"></script>

On my end I need something producing the necessary javascript (which boils down to essentially plain html in my case).
Two PHP scripts do the job.
The first looks like this:

$string = ob_get_contents();
$string = str_replace(chr(10), "", $string); //NL
$string = str_replace(chr(11), "", $string); //vertical tab
$string = str_replace(chr(12), "", $string); //NP
$string = str_replace(chr(13), "", $string); //CR
$string = addslashes($string);

print "document.writeln ('$string')";
I found this essential hint somewhere googling around - can't find it anymore now. I'd like to put a link to the original here (especially since it may additionally explain the str_replace commands) - so please let me know if you come across it.

As you can see the second script is called by the first one. It just connects to the database and echoes out the html I want to appear on my blogger sidebar.

I also added some variables into the inital call to modify the output from the blogger side.
For example the first php file might call a second file which is defined in by the calling site.
Let's take the theory above into my practical example:
1. I've got a php file called resto_blogger.php which spits out some html by using echo generated with data from my database (this is the second file using the above nomenclature).
2. I've got a generic php file called blogger_js.php which accepts a GET variable to choose the page to call.
3. The call from the blog passes this variable.

content of blogger_js:

here some code to check the validity of the $_GET variables
I also save the $_GET variable 'page' into $page

$string = ob_get_contents();
$string = str_replace(chr(10), "", $string); //NL
$string = str_replace(chr(11), "", $string); //vertical tab
$string = str_replace(chr(12), "", $string); //NP
$string = str_replace(chr(13), "", $string); //CR
$string = addslashes($string);

print "document.writeln ('$string')";

call from the blog:
<script type="text/javascript" src="http://mysite.bla/blogger_js.php?page=resto"></script>

One more thing...
The sites being in French there are a lot of special characters. To display them correctly just tell blogger which charset to expect in the script tag:
<script type="text/javascript" src="http://mysite.bla/blogger_js.php?page=resto" CHARSET="ISO-8859-1"></script>

Wednesday, July 12, 2006

backpaddeling on some Ajax - for search engine optimization (SEO)

ealier I wrote about some nifty ajax I had put on my website.

I now think that I went too far and that I have been missing out in search engine referencing.

Implementation was:
  • such that the central page content was loaded asynchronously - after the actual page load finished
  • navigation over several pages of content just repulled the central content via Ajax, too
  • the initial page load pulls in the full content - allowing search engine crawlers to see it
  • navigation over several pages is still done through Ajax - i.e. pages further down may not be visible to search engines crawlers
  • therefore I added a 'view all' link which is a classic href and shows all pages in one - this can be followed by search engine crawlers, allowing them to crawl to all of my content
  • some users may find this 'show all' link very useful, too ;)
Google here I come!
See the page for yourself (as always in French) on BAOssimo! Resto

Tuesday, July 11, 2006

BAOssimo! eMail now hosted by Gmail

Do you agree that gmail is the best webmail out there?
Now you can have gmail for your own domain - at least in beta.
It took only a few days after applying with Google that I received an ok by eMail with instructions.
It's all very easy - you just need to have access to the MX DNS records of your domain and you're ready to go.
It actually comes with all sorts of features from gmail - including Talk and Calendar.
There is one big uncertainty, though: the beta is (obviously) free but they don't say anything concerning the roll-out. This might well turn into a paying service - at which point I'd have to migrate back to my own hosting.
Apparently Microsoft offers a similar service. I didn't test that one since their webmail doesn't run in Safari.

Have fun shaking off your mail server worries: security, updating, uptime, etc.

Sunday, July 09, 2006

Properspell and PHP

When I first discovered Properspell I immediately wanted to use it on my sites, too.
Spell check suggestions for your search box on your site powered by Google. Have a look at their site (Properspell) to find out more.
And yes it was actually pretty easy to get to work. At least on HTML/javascript pages.
1. Sign up for a Google API key
2. Sign up for a Properspell API key using your oogle API key
3. Properspell will generate the code for you to insert into your pages

But my pages are generated by PHP. I did not get it to work.
Does anyone have a working implementation of Properspell using PHP? I haven't found any article googling.

Wednesday, July 05, 2006

Blogger Tips and Tricks: Blogger Categories: Easy Method

Blogger Tips and Tricks: Blogger Categories: Easy Method

Do you like the Categories workaround in the sidebar?
The link above gives the (very easy) instructions of how to add this feature using del.icio.us (you can use any other social bookmarking service - the set-up is still relatively easy).
Only disadvantage: you visually leave blogger for the list of articles to show up. Works smoothly nonetheless.

Another very nice workaround uses the search feature - very easy set-up, too.
Have a look at both and choose your personal favorite.

Tuesday, July 04, 2006

A Day In The Life: Surf Secure...

A Day In The Life: Surf Secure...
(came accross this digging - so most of you may have seen it already)
Still I thought I'll pick it up because it's so simple and effective:

How to read your gmail more securely - for example at work.

Secure the connection in-between you and the gmail server (apparently works similarly with hotmail) just by logging in through a https:// login form.
That's great. Careful: this secures only you reading email already on your server. Emails are still being sent in clear to and from gmail when you send or receive.

Monday, July 03, 2006

some more Ajax where it really makes sense

I've put some more Ajax into BAOssimo!
looking around at the different frameworks it was quickly evident that the minimal solution would be the best: my-bic just does the dirty work around the asynchronous communication - all the set-up is completely configurable by the developer
This means more manual work but also more flexibility.
Another big plus for me is that it is readily wrapped in PHP.
I want to share some points that made initial deployment difficult for me:

1. in one of the tutorials given by my-bic an element id of 'content' is used - this seems to be a keyword for the global document --> changing the innerHTML of 'content' replaced the entire document for me
Solution: use a different id like 'changingContent'.

2. depending on the browser special characters got mixed up. BAOssimo is a site in French language and therefore uses lots of special characters everywhere (using iso-8859-1) .
Solution: edit mybic_server.php and add the following line
header("Content-type: text/html; charset=iso-8859-1");
echo $response;
similarly if you need to convert postings back to iso-8859-1 on the server side (they arrive there as utf-8) as follows before plugging them into your mysql database:
$posted_text = mb_convert_encoding(urldecode($this->queryVars['posting_textfield']), "ISO-8859-1", "UTF-8");

In general: be careful not to open up any new holes in your secure CMS ;) - SQL injection etc...

For an example have a look at the filter implementation on BAOssimo! Resto (site in French, as I said, but you'll see how it works easily enough).

Several other blogs have discussed my-bic before me: