Tuesday, November 27, 2012

One thing that really bugs me is seeing a repository full of .DS_Store files. I am an offender myself, but now it's time to put an end to this tragedy. The .DS_Store file is a OS X proprietary format for storing information about the folder such as where the icons are placed, the background image etc.

When you run git init it should automatically create a .gitignore file and mark these files as evil!


Add the following to your .gitignore file (if you don't have one yet you can run touch .gitignore):


Run the following in your git repository root:

find . -name ".DS_Store" -depth -exec rm {} \;

Now just commit your changes, and although they might show up again locally they will never be committed to the repository again.

Monday, November 26, 2012

I've tidied up the code for this site and decided to open source it if anyone is interested. It's running on Rails with Postgres as the database. Posts are stored as markdown using the fantastic EpicEditor markdown editor.

To get started you need to create a user. You can either uncomment out the user resources in the routes file and create the user using the web interface or use the console to generate the user. I recommend using the console at this point since any registered user has access to the admin console.

Steps to create a new user via the console

$ rails console
Loading development environment (Rails 3.2.8)
irb(main):001:0> User.create(email: 'andrew@andru.co', password: 'mypassword')

Once your user is created you can login via /login and access the admin via /admin.

You can find the blog engine on GitHub at https://github.com/andruu/blog-engine. One big thing I still need to add is testing which should come this week.

If you see any bugs go ahead and send a pull request and if you have any questions you can leave them in the comments below.

Monday, November 26, 2012

Polytalk is my latest open source project. I developed it out of the need to communicate with a legacy system running PHP while writing code in Ruby and Node.js to leverage the existing business logic.

The amazing thing with Polytalk is you don't need to write any extra APIs or write any additional code. All that's needed is the server which is a long running process that exposes classes to the client via TCP.

Here is a quick overview of what Polytalk taken from the project's page:

Polytalk is a simple protocol which allows communication between different languages via TCP. The protocol uses a simple JSON object to pass back and forth request and response information from the server and client.

Polytalk currently supports Ruby, Node.js and PHP. Each language module consists of a server and client that both follow the exact same API so implementation is simple. Installation of all the modules is equally as simple, utilizing the popular package managers for each language.

Polytalk is plug and play meaning you don't have to do any extra coding to expose your methods from your existing code base. This is great for legacy code or teams of polyglot developers.

Polytalk is currently available for Ruby, PHP and Node.js.

Monday, November 26, 2012

After letting my last blog die I've decided to try my hand at writing again. I've been working with a lot more tools and contributing more to the open source community and wanted a place to document the things that I'm learning and an outlet for some of the cool stuff that I'm working on.

I developed and designed this blog over the course of the weekend. Nothing special really, just a typical hand rolled Rails CMS running on Heroku. One thing cool that this site is using is the new Turbolinks library from Rails 4. It is similar to pjax although there is really no configuration. It's basically just plug and play.

One thing that I didn't want to do was reinvent a commenting system but after wasting an afternoon trying to get disqus working with Turbolinks with no luck I caved in and wrote a really basic one. Hopefully once disqus has better integration with ajax sites I will be able to integrate them.

Well stay tuned. I have some interesting posts planned for the next week. Let's hope that I can keep this blog updated more frequently than my last.