Seeking Abstraction

The History of iOS and the Introduction of iOS 7

| Comments

The History of iOS - An infographic by the team at ChaiOne iphone app development company

Embed The History of iOS on Your Site: Copy and Paste the Code Below

Rails Content Management Systems

| Comments

Over the last two years I’ve been looking for a rails CMS. For those that don’t know and for those that know that CMS is an overloaded term in the web development world, CMS stands for Content Management System.

Here’s the definition from wikipedia:

A Content Management System is a computer program that allows publishing, editing and modifying content as well as maintenance from a central interface.

And that’s pretty much it. There hundreds of CMSs in every language. If I remember correctly, building your own CMS was a rite of passage in the early 2000s. Although the basics of all CMSs are the same, each CMS does it in a different way. There are heavy, own the world CMSs and light, bare minimum CMSs. I want to talk about one of the latter.

Back in April of the year I was in a perl testing training class. While I was following the class I was also reading my news feeds. I ran across an article about a rails CMS I’ve never heard of. It was called Comfortable Mexican Sofa. Look at the acronym it makes. Get it? Good. I didn’t do much with it back then. Fast Forward to now. I’m in a new rails job and one of my first tasks was to fix a bug in a CMS we are build for a client. Guess the CMS. You got it. I’ve spend about 2 weeks on Comfortable Mexican Sofa, and I have to say I like it.

Comfy, I’m going to call it comfy for short, is a rails engine. That fact allows it to be added to any rails application. To be honest, most of the rails CMSs are engines. BrowerCMS be the only one I can think of that isn’t. But one of the things that make comfy stand out is it’s the only rails 4 compatible rails CMS. RefineryCMS just hit version 2.1.0 but won’t be rails 4 ready until 4.0.

So what are the other feature I like about comfy? I’m glad you asked.

Comfortable Mexican Sofa Features

  • Simple integration with Rails 4 apps
  • Build your application in Rails, not in CMS
  • Powerful page templating capability using Tags
  • Multiple Sites from a single installation
  • Multilingual
  • Fixtures for initial content population
  • Revision History
  • Great extendable admin interface built with Bootstrap, CodeMirror and WYSIHTML5

I think the best feature is the second one.

Build your application in Rails, not in CMS

And because comfy is a light weight CMS it doesn’t get in your way when you need to add features for your users. It has a simple but extendable authentication system for the CMS and for other pages you want to secure.

It works very well on heroku. Files can be uploaded to the file system or to S3. It was a little hard to get S3 working the first time. Mostly becaue the version I was using had a bug with it’s S3 support but the problem is fixed in the most recent versions.

Comfortable Mexican Sofa is a great CMS that is supremely hackable. The fact that it can just get out of your way and let you code is one of its best features. I plan on using it in many of my own projects I think you should give it try as well.

Big Decisions

| Comments

No one has perfect knowledge. We can only guess our futures. This week I’m facing a pretty big decision. I could turn back but I think I would regret it. The sad thing is I’ve been here before. I’ve had to made a similar decision and I felt the same way. While everything didn’t happen the way I wanted to, I think I made the right decision then. I’m about to do it again.

Here I go. The adventure is before me.

Objects on Rails

| Comments

This week I was at YAPC::NA in Austin, Tx. While there I took the time to get some reading done. The first book I read was Everyday Rails Testing with RSpec by Aaron Summer. This was an excellent book on how to think about testing in rails. The mix of RSpec, factory_girl, capybara, and other gems serve as a good base for tackling most testing issues.

The other book I read, Objects On Rails by Avid Grimm, was the one that made me rethink many things on how to write apps in rails. The simple idea of starting with plain ruby objects to model the problem domain was an eye opener. I have toyed with web development in common lisp and one of the aspects I liked was I could start with simple lisp lists to persist objects at the start instead of jumping right in to a database.

I knew the decorator pattern but the only real example I had of one was java’s decorator pattern for IO and because of that I avoided it. But Avid’s use to decorate a model for the view was beautiful. I plan to explore this pattern more.

There was so much information in the book that I can’t explain here. I plan to re-read the book to get a better understanding of the ideas and the techniques. I also want to do a talk at my local ruby group so I need to build an example rails app that uses the ideas from the book. Avid uses a blog as an example. I think I want to do an online election system. Anyway, great book. I recommend to anyone studying rails or object oriented design.

Org-mode TODOs

| Comments

I’m going to start a little series on org-mode. If you find it boring or want to talk about something else let me know.

The first use of org-mode is a todo list.

Headlines start with a *. For example:

* Case 42453: Fix spelling error

Multiple * will setup a hierarchy so that when you hit [tab] on a Headline at the top of the hierarchy the rest will be folded under it.

* Top ** Detail

Hitting tab on Top will result in

* Top…

The ellipses alway mark that something is underneath that header.

To mark something as a TODO you must be on a header line at hit S-right. That is the Shift and the Right arrow. This will add the keyword TODO to the RIght after the ‘*’. This can also be done with C-c C-t.

You can also add more TODO keywords by adding lines like this to the top of your file:


Remember to C-c when you add headers like this to the file.

Keyword after the pipe are consider Closed conditions for the TODO. Also as you S-right the keywords will cycle through the list.

Tags may also be added for any headline. As when adding TODO keywords you must be on the line of the header then hit C-c C-c. In the minibuffer you will be asked for the name of a tag.

Once added a take will look like this:

* Start orgmode tutorial :blog:

The colons will be add for you. The next time you want to add a tag in the minibuffer you can use tab completion to find previously added tags. You can also add more than one tag. In the minibuffer you just need to separate the tags with a colon. For example:

* Start orgmode tutorial :blog:

You can also add tags to the top of the file like the todo keywords.

#+TAGS: @work @home #+TAGS: laptop car

Tags can have letters, numbers, the _ and @.

That’s all for today. I’m think about org-mode agendas for next time.