Category Archives: Web

Lifestream & URL shortener

I now have my own URL shortener at mcohen.me, and I’ve moved my lifestream to stream.mcohen.me. I’m using Yourls and I’ve added a redirect so simply going to mcohen.me will redirect to my lifestream.

Asian domain name scam

Today I got this email, which I thought seemed a bit fishy.
Scam Email

A little googling revealed that Marco Arment received almost the identical email, which turned out to be a scam. If you get one of these, don’t fall for it or you could end up paying a lot.

Friends on a map

Friends on a map is a great new web app developed by Spencer Schoeben that shows your friend’s checkins from FaceBook, FourSquare, and Gowalla on one map.

Friends on a map

Google web fonts can be used anywhere

Google has introduced a new web font directory of fonts available for anyone to use in their web page.

To use any of these fonts, you simply need to add a link element to your <head> and specify that font in any CSS style element:

<link href='http://fonts.googleapis.com/css?family=OFL+Sorts+Mill+Goudy+TT'
 rel='stylesheet' type='text/css'>
<style> h1 { font-family: 'OFL Sorts Mill Goudy TT', arial, serif; } </style>

Alternately, you can simply use a CSS @import to use those fonts anywhere, such as a blog entry:

<style>
@import url(http://fonts.googleapis.com/css?family=Tangerine);
      .tangerine {
        font-family: 'Tangerine', cursive, serif;
        font-size: 48px;
        text-shadow: 4px 4px 4px #aaa;
      }
    </style>

If you’re using a modern browser, you should see one of the web fonts here:

Making the Web Beautiful!

New Photoblog

I have a new photoblog at photos.mcohen.me, where I will be posting my future 365 Project photos, as well as other photos. Most of my Project 365 photos from this blog have been moved there.

MarsEdit 3.0

MarsEdit is one of my favorite applications and it just got even better with version 3.  I have been using MarsEdit for this blog almost since the beginning. I’ve looked at other blog editors, but I always came back to MarsEdit because it just seemed more comfortable and it just worked exactly the way I wanted.

Until now, MarsEdit only supported HTML editing, but version 3 also adds a new Rich Text editor. MarsEdit 3 also adds support for WordPress pages & custom fields and a new media browser that supports iPhoto, Aperture, and Lightroom.

The only thing MarsEdit is missing now is an iPad version.

Rich Text Editor

New site: mcohen.me

I’ve set up a new life streaming hub at mcohen.me using storytlr, an open source web application that lets you import & aggregate content from many of the sites you use. It’s based on plugins, so new sites can be added. For many sites that aren’t listed, you can simply use an RSS feed.

To run it on DreamHost, the newer version 0.9.3 works better than 0.9.2 since it eliminates the dependence on Tidy when importing RSS feeds and also adds several new plugins including Github.

There are few little things that aren’t really made clear in the instructions:

  • It doesn’t update automatically. You need to create a cron job that looks for new items and updates the feeds. On Dreamhost, it should be something like:
    /usr/local/php5/bin/php /home/username/sitename/protected/tools/update.php
  • To import Flickr items, you must obtain an API key at http://www.flickr.com/services/api/ and enter it in protected/config/config.ini
  • If you must run version 0.9.2 on DreamHost or any other web server that doesn’t support Tidy, comment out the following lines in both protected/applications/plugins/rss/models/RssModel.php and protected/applications/plugins/googlereader/models/GooglereaderModel.php:
    $tidy = new tidy();

    $tidy->parseString($content, $config, 'utf8');
    $tidy->cleanRepair();
    

    and change the following line:

    $data['content'] = $tidy;

    to:

    $data['content'] = $content;

TwitterFavs

Spencer Schoeben created a great new twitter utility, TwitterFavs, which lets you set up a second Twitter account that automatically retweets your favorites from your primary Twitter account.

You can follow my Twitter favorites at @mike3kfavs.

Yazzem API is live

If you haven’t heard of Yazzem, it’s a site similar to Twitter which lets you start topics about anything you want. Unlike Twitter, Yazzem is conversation oriented. You create or join a topic and add comments to the thread. Topics & comments are limited to 200 characters, making them more like a tweet and much easier to use and more lightweight than a traditional forum. Yazzem was founded by Dustin Snider and Zachary Collins, both 15, and was acquired by Teens In Tech Networks (which I’m the CTO of).

The Yazzem team has been working on an API which will allow developers to build applications that interact with Yazzem. It will be featured at the Hacker dojo API hackathon tomorrow.

Read the Yazzem team’s API announcement here. The API is documented at api.yazzem.com.

For Mac & iPhone developers, I’ve created a Cocoa wrapper class with both Mac & iPhone demo applications, available at http://github.com/mike3k/Cocoa-Yazzem.

Cheezburger app feed was down today

The FastCGI gateway on my server went down earlier today, and as a result the ICHC app stopped working for a while. I moved the feed scraper to a separate user account, so it should be less likely to go down now.

Nginx uses a fixed number of FastCGI sockets (currently 5) for each user running on the server. Certain processes (one of which seems to be the PrMac importer I use at MacMegasite) will cause it to run out of FastCGI connections resulting in a ‘Bad Gateway’ error. By moving the app feed to a separate user, it now has its own set of FastCGI sockets so other processes should be less likely to bring it down.

If you do ‘ps ax’ on a DreamHost VPS shell account, you can see how many FastCGI processes are running:

 3927 ?        Ss     0:00 /dh/cgi-system/php5.cgi -b /home/sampo/.php.sock
 3932 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/jimi/.php.sock
 3933 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3934 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3935 ?        S      0:01 /dh/cgi-system/php5.cgi -b /home/mysites/.php.sock
 3936 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3937 ?        S      0:02 /dh/cgi-system/php5.cgi -b /home/mysites/.php.sock
 3938 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock