SansCourier

Who needs messengers or serifs?

Meta: How to Setup a Rockstar Approved Box

Are you till using a PHP blog under apache as if it were still in 1998? Do you need an awesome C10k Approved host that can also host Python / Rails and any other framework you might need?

Follow this guide to setup a Rockstar production server that will make you look like one (Step two after getting a cool domain name to become a rockstar dev).

Grow up and break with your cheap hosting

Your cheap PHP hosting company is actually not so cheap, you can get a full linux box for the same amount of money, plus you can configure it to be a lean, mean, bit serving machine, that can withstand any Slashdot effect. (Reddit effect for you youngsters)

Some awesome providers: Slicehost Amazon EC2 Linode Heroku Joyent Google App Engine

Install Nginx

After installing a vanilla Ubuntu:

1
$ sudo apt-get install nginx

Setup Nginx

Edit /etc/nginx/sites-enabled/sanscourier.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
          listen   80;
          server_name  sanscourier.com www.sanscourier.com;

          access_log  /var/log/access.log;

          location / {
                  root   ~/sanscourier;
                  index  index.html index.htm;
          }
          # redirect server error pages to the static page /50x.html

          error_page  404  /404.html;
          location = /404.html {
                  root   ~/sanscourier.com;
          }
          error_page  500 502 503 504  /50x.html;
          location = /50x.html {
                  root   ~/sanscourier.com;
          }
  }

Setup Octopress

Before the only reason to use a PHP blog was twofold: 1. To have your posts “safely” stored in a database. 2. So your readers can comment on your posts.

But as any old school sysadmin can tell you, scaling this setup starts easily and then becomes a big, boring chore involving CDNs, caches and other dirty tricks.

Octopress deals with this in an elegant manner: 1. Use a secure Git repo to store our posts. 2. Use disqus for commenting.

And lets face it, static websites make you look cool.

Setup rvm

In your server (or linux box or Mac running homebrew) (Why RVM? for the same reason we use Python’s virtualenvs, don’t dump where you eat, oh and yes you don’t need XCode nowadays.

1
2
3
4
5
6
7
8
9
10
11
12
13
$bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
  $rvm list known #(choose the latest one in the MRI list)
  $rvm install 1.9.3
  $rvm use 1.9.3

  $mkdir my_octopress_site
  $cd my_octopress_site
  $git init
  $git remote add octopress git://github.com/imathis/octopress.git
  $git pull octopress master
  $git remote add origin your/repository/url
  $git push origin master
>

Setup octopress

Why Ruby? Because rubyists are rockstars thats why. (Actually I’m mostly a Python guy, but who cares anyway? I was using HP before! so go and try the right tool for the job).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$mkdir my_octopress_site
  $cd my_octopress_site
  $git init
  $git remote add octopress git://github.com/imathis/octopress.git
  $git pull octopress master
  $git remote add origin your/repository/url
  $git push origin master
  $rvm rvmrc trust
  $rvm reload
  $gem install bundler
  $gem install rake
  $bundle install
  $rake install
  $git add .
  $git commit -m 'Installed Octopress theme'
  $git push

Write something and deploy it.

You shoulb probaly read this instead. But here’s a quick intro:

1
2
3
4
5
$rake new_post["whatever"]
Creating new post: source/_posts/[blah].markdown
  $vim source/_posts/[blah].markdown #or emacs you berkeley hippie
  $rake generate
  $rake deploy

Don’t forget to deploy to your ~/sanscourier.com/ folder or some other safe place.

Meet Gunicorn

Did you know you can have a production ready server for Django in four simple steps? Please thank Eric Holscher for the tip

  • Install django in a virtualenv
1
2
3
4
5
6
$easy_install virtualenv
  $virtualenv env/
  $. env/bin/activate
  $python easy_install pip
  $python pip install django
  $ython pip install gunicorn
  • Add ‘gunicorn’ to your installed apps
  • ./manage.py run_gunicorn -w 3 -/etc/gunicorn.conf.py
1
2
3
4
5
logfile = "/var/log/gunicorn.log"
  bind = "127.0.0.1:1337"
  workers = 3
  proc_name = "Django Revel"
  worker_class = "eventlet"

And make nginx forward traffic to it

1
2
3
4
5
6
7
8
9
server {
          listen 80;
          server_name  example.com;
          access_log  /var/log/nginx/example.log;

          location / {
                  proxy_pass   http://127.0.0.1:1337;
          }
  }

Buzz Isn’t Wave in Disguise but an Open Social Experiment (and What Makes It Tick)

As expected Google has done it again, they’ve released a nice new tool and now everyone is talking about it. And that’s great, but the problem is that like just like it happened with Google Wave few people understand its Technology and why it was created.

Google Wave was Created to Modernize Email just as easy as that. Google Engineers thought email was slow so they used an instant messaging protocol called XMPP that allows you to have your own private Google Talk and wrapped some “Cool but no one understand” features like video embedding, instant polls and similar.

Why Google did this? Easy they want to become a platform where all online collaboration is done, did it work, not so much mainly of UX errors.

Now, what about Buzz?

Well Buzz is based on a publishing protocol called PubSubHubBub (and that’s why you don’t let engineers come with snappy names) created for a single task, getting blog posts out is slow and boring.

First you put a post on your blog and then your subscribed users read the small version in their RSS feeds and if they want to talk about it they click on the page, go to the section and so and so. Its Boring.

The main reason its boring is that the users have to go and fetch the RSS Feed any given time, and the truth it would be quite nicer if it worked like the Push Messaging in cellphones, it notifies you only each time there is something new.

So PSHBB servers do exactly that, and with the nice feature that it can get synchronized among many servers, freeing the developer the hassle of scaling and similar chores.

So here Google is trying to be that, the center hub where all action takes place and it looks good. Specially because they decided to be disruptive they decided that your network, your friends are yours and not property of some evil corporation (if being disruptive isn’t) and they made this by using OpenSocial and other Open Data standards.

What does this mean to us users? It means that we don’t have to add our friends to Facebook to play Raise a pet/alien/farm, if they have Gmail they already can.

What does this mean to Google? That they now have this platform for OpenSocial apps, location based apps (yes, Google latitude was just like Wave, a cool tech without use) and personal publishing.

And where does this leave Twitter and Facebook? Well Twitter has a good established brand and lots of loyal customers (plus also many apps like foursquare, formspring and others) but just like Facebook everything comes down to privacy.

For users Twitter is like a bar (or starbucks), Facebook is, well a face book of your buddies and your blog is your support group where does Google Buzz fit here?

Can it be a single destination where all this activities happen? Not sure.

But one thing I’m sure, this isn’t wave, this is not another try to kill email, this is a try to change social media.

Barcamp Mexico and Why the Noise Matters (or Never Mind the Valley, Here We Have Tequila)

The original idea for this post was to talk about the tech communities in Mexico and how it’s starting to become an interesting ecosystem where great ideas are starting to grow.

But, something happened this week in one of this communities that it’s really worth to talk about.

The disapproval by the community of the registry of the brand “Barcamp” in Mexico.

Everything began with a post by @_Hyde where he linked a document where @paw requested to legally own the brand Barcamp in Mexico and have all the legal power to all matters related (registering herself as the owner of those legal rights).

Apparently what @paw is trying to do is to become (as it is common in many open source software) to become the ”Benevolent dictator for life” (like Guido van Rossum or Larry Wall) of this event in Mexico.

And the community didn’t like it, specially since there have been other (And much more successful) events like Destilando Web, SHDHMC, etc. that never felt the necessity of branding and even their organizers (@mpastrana, @lauradark, @cesarsalazar, @arturogarrido, @adanvecindad, @isopixel) always have said that they promote an decentralized control of them; letting the own community chose what this events will be about, and allowing to similar events to be taken place.

Chris Messina the creator of Barcamp stated that:

BarCamp has been and will continue to be, a Community Mark. The BarCamp community is a far better mechanism for detecting fraud and shutting it down than any obnoxiously-expensive legal department.

And in an email to @paw he stated the following:

That said, my continued concern about registering a BarCamp trademak is that does two things: 1 . It forces you to actually enforce the trademark. While this may not be a huge burden, per se. at least under US law. If you DON’T enforce your trademark, then you lose it. Are you ready/willing/able to enforce the BarCamp trademark if you find someone willfully violating it? 2. It can also create a chilling effect where Barcamps that otherwise would have been organized are not for the fear of having to pay to license the BarCamp name. […] Lastly in those cases where there are abuses have you reached out to the organizers and explained why they shouldn’t be calling their events BarCamps? Have you taken a more diplomatic way? I’ve historically found that that path works just as well – If not better– than the more controversial legal path. What do you say?

After all this @paw in an interview in the Akirareiko Late Night show stated that her intention was to create an non profit with the objective of protecting this brand. And she agreed to the following compromises:

1. Help in the organization of the non profit 2. Make and pay for the paperwork required for it and hand over the BarCamp trademark to it. 3. Create tools that help the organization of new BarCamps 4. To quit the non profit once it’s correctly established.

The truth is, in the end all this is just noise regarding the BarCamp event, and in a way is bringing back to life a Community that wasn’t mature enough to become an Non Profit but was mature enough as Chris Messina said (and also @adanvecindad and other twitters) can take care of themselves.

All this noise matters because like it happens in Dither with audio/image processing, it allows us to see patterns, to see around all this noise what’s really important.

And what’s important here is that in Mexico there are strong Tech Communities that get us closer to our true goal, to create a true Tequila Valley where great ideas are born, made and will make Mexico a stronger better Country.

References:

http://frontera42.com/2010/01/21/barcamp-de-todos/

http://barcamp.org/El%20futuro%20de%20Barcamp%20en%20Mexico

http://www.paolavillarreal.name/2010/01/20/los-motivos-para-registrar-barcamp-en-mexico/

http://www.facebook.com/group.php?gid=259716561218

http://laurahoyos.com/2010/01/21/seguimos-trabajando/

http://twitpic.com/z173b

Updates: Cesar Salazar’s meeting with Chris Messina (In Spanish)

Examples of noise: Techcrunch, ReadWriteWeb (Boulder, Los Angeles, Austin), Wikipedia scandals, etc.

Why “Sans Courier”?

Courier is the most common Programmers Font, but who likes Common?

Courier is also the English word for Messenger, Do we really need them?

Hence, Sans Courier 100% Sans* Messengers, Serifs or Courier

*Sans: Without.