Derek Parfit will present DeCoursey Lecture, ‘We Are Not Human Beings’

Derek Parfit will present DeCoursey Lecture, ‘We Are Not Human Beings’

When Wednesday, October 16, 2013, 7:30 – 10pm
Where Laurie Auditorium
Expected Headcount 1000

What’s the big deal with moral philosophy?

This lecture turned out to be surprisingly entertaining, despite all the meta-ethics philosophical double talk. Very Western. Very Cartesian. “We Are Not Human Beings” wasn’t addressed much while I was there, but it made me think of the quote by Pierre Teilhard de Chardin that goes something like ‘We are not human beings having a spiritual experience; we are spiritual beings having a human experience.’ He’s definitely a compatiblist on the free will issue. Also, he pulled off a brief sobbing act, something I’d heard he was famous for.

SAN ANTONIO — British philosopher Derek Parfit, considered by many to be the most original moral philosopher in the English-speaking world, will present the 2013 Trinity University DeCoursey Lecture at 7:30 p.m. Wednesday, Oct. 16, in Laurie Auditorium. The title of his talk is “We Are Not Human Beings.” His presentation is free and open to the public.

Parfit specializes in problems of personal identify, rationality, ethics, and the relations among them. His two books Reasons and Persons (1984) and On What Matters (2011) have been called the most important works to be written in the field in more than a century.

He delves into ways the self will exist in the future and draws from science fiction “thought experiments” to develop his ideas, often urging a more impersonal, non-physical, and selfless view of human life. He also explores the field of nonreligious ethics, asking questions about which actions are right or wrong.

Parfit has spent most of his academic career at Oxford where he is an Emeritus Senior Research Fellow at All Souls College, Oxford. He is also a visiting professor of Philosophy at New York University, Harvard University, and Rutgers University. Early in his career he worked as a researcher at The New Yorker and he has held appointments at Harvard, Rutgers, and New York University.

Doors to Laurie Auditorium will open at 6:45 p.m. on the evening of the lecture. The lecture series is made possible by a gift from the late Gen. Elbert DeCoursey and Mrs. Esther DeCoursey of San Antonio.

For more information, contact Trinity’s Department of Academic Affairs at 210-999-8201.

Belated Geekdom Update

Geekdom SA is an organization dear to my heart, if only because of the role in the downtown community they have assumed. Geekdom is still young, but growing faster by the month. In their first year, bi-monthly visits wouldn’t give one the impression that much was changing around there (except in the conference room).

Having been occupied with more urgent matters this year, I haven’t been able to keep up with the Geekdom scene except from what is available in the press and on their website (and now on Google+!).

This post should be converted to a page, wherein you can expect to find the bulk of my insights about this hub of geek culture in San Antonio. Onward…

The most recent experience there was pregnant with memes left behind by the 3DS event(s), most obviously the mad dry erase scribblings all over their downtown San Antonio high rise as you reach each end of their red velvet accented & wall graphic lined hallways.


us and what lies

creative geek writing

Inspiring stuff, really. I wish I had the time and/or skills to finish this. I know it’s not very smart to hit the ‘Publish’ button like this, but I’ve just got to push this sh*t out, ya know?

So, yeah, random updates will follow…

or better, embedded video with a more complete description!

all the best,


uSquare – Universal responsive grid for WordPress

Now why can’t Themify use something like this to display multiple images in posts if it’s so responsive?

This is partly in response to an email reply I received from Nick La about why there didn’t seem to be any variety provided for displaying images and posts.

I wrote: “I would like to able to include a batch of 6-12 and have them appear in a grid of thumbnails above the post content. Currently they come up at full-size, stacked on top of each other in one ghastly looking column. I know it’s possible that I overlooked some simple setting, but everything I’ve tried to fix this so far has not worked. Any help here would be greatly appreciated.”

It is definitely not troublesome to implement column style gallery. You have to understand that our themes are used on thousands of sites and users have different sizes of gallery thumbnail. I wouldn’t say using column-count is wrong and you can certainly use it if it works on your site. However, column-count is not cross browser supported yet (eg. Internet Explorer). There is nothing wrong with using those media queries, but it is just not necessary. A cleaner way to restrict the gallery to a certain amount of columns would be adding the following Custom CSS to our themes:

#body .gallery {
width: 500px;
max-width: 100%;

#body .gallery dl {
width: 30%;
margin-right: 3%;
Then you can set the gallery <dl> element to width:30% so it displays as 3-column and scales responsively.

A Photo Gallery

The above css assume you have 150x150px thumbnail size, setting 500px width will make the images run into new lines and setting max-width:100% will prevent the gallery from extending over the boundary (for responsive purpose). Then you can set the gallery
element to width:30% so it displays as 3-column and scales responsively.
Then you can set the gallery <dl> element to width:30% so it displays as 3-column and scales responsively.

A Photo Gallery

You’re probably wondering why we didn’t implement this? Simply because it will cause another issue if users have smaller thumbnails like the screenshot below (see the empty space between images). Making it to run inline is the most ideal solution for general use.
Hope this gives you a better understanding of CSS and our themes.
A Photo Gallery

A Photo Gallery

On 2012-11-14, at 11:57 PM, Lars Hundere <> wrote:Block/column thumbnails will cause issues when user resize the browser. We make them run inline so it automatically adapts with any viewport.
That’s a totally half-baked answer. I think you make them run inline because other display options are too troublesome to implement, since you seem to lean heavy on IDs and classes. Tell me if I’m wrong, please.What about this: img {
 -webkit-column-count: 4;
 -webkit-column-gap:   0px;
 -moz-column-count:    4;
 -moz-column-gap:      0px;
 column-count:         4;
 column-gap:           0px;
 } img {
 width: 100% !important;
 height: auto !important;
 } @media (max-width: 900px) { img {
 -moz-column-count:    3;
 -webkit-column-count: 3;
 column-count:         3;
 } } @media (max-width: 640px) { img {
 -moz-column-count:    2;
 -webkit-column-count: 2;
 column-count:         2;
@media (max-width: 300px) { img {
 -moz-column-count:    1;
 -webkit-column-count: 1;
 column-count:         1;

ABOUT uSquare

uSquare is a responsive squared grid that can display your content in a unique and interesting way. You can use it for displaying team members, products, services, designs, blog posts or anything else that comes to your mind. In our live preview we have included 3 modifications of the original file in order for you to see how uSquare can serve your purpose.

responsive post image handling

Looks like a great solution to responsive post image handling to me!

Here you can do a lot of things:

  • Add unlimited number of items
  • Add items automatically from existent post or from all posts from some category
  • Change every detail of item… name, description, content, backround, social icons…
  • Change order of items (just drag&drop items)
  • Change global options for uSquare grid (options are on right side)

Here’s some links to a bunch of other plug-in solutions (probably incompatible with Themify) that are worth investigating, if  this article leaves you in want for more on this topic:

WordPress – Global Gallery – WordPress Responsive Gallery | CodeCanyon

WordPress – Complete Gallery Manager for WordPress | CodeCanyon

WordPress – PhotoMosaic for WordPress | CodeCanyon


Finish What You Start

This is one of those blog post drafts that seemed doomed to never get completed. I’m finishing it tonight because I’m convinced that it’s futile to believe that anything could ever really get completed in the first place. This post is dedicated partly to Darcy Clarke’s, Scared… which I always seem to draw confidence from whenever I get nervous about hitting the Publish button.

We should stop running from our problems and learn to RUN TO THEM.

Maybe I’m scared, too. Lots of bad things happening that we have so little control over… Scared because it seems many of my efforts seem to only make matters worse.

All we can do sometimes is to maintain our focus on what matters most and stay informed well enough to keep from getting SPOOKED. There are lessons to learn from every single experience throughout our day and if we are preoccupied with bad thoughts, we miss the opportunity to learn from each of them.

So if you struggle yourself with finishing the projects you start, take heart in the simple fact that finishing is the hardest part and that letting go of your attachment to your less deserving goals will give you the freedom of mind to conquer those that are the most deserving of your attention.

Tired of typing, tired of this WP interface… Yet somehow this post still seems unfinished… A topic for another post maybe…

But just in case anyone would gripe that I made it too short, here’s some helpful sh*t ripped from an old Coding Horror post that I couldn’t resist remixing and passing on:

This page summarizes the tips and checklists found in The Pragmatic Programmer.

For more information about The Pragmatic Programmers LLC, source code for the examples, up-to-date pointers to Web resources, and an online bibiography, visit us at

Provide Options, Don’t Make Lame Excuses
Instead of excuses, provide options. Don’t say it can’t be done; explain what can be done.
Be a Catalyst for Change
You can’t force change on people. Instead, show them how the future might be and help them participate in creating it.
Remember the Big Picture
Don’t get so engrossed in the details that you forget to check what’s happening around you.
Invest Regularly in Your Knowledge Portfolio
Make learning a habit.
It’s Both What You Say and the Way You Say It
There’s no point in having great ideas if you don’t communicate them effectively.
DRY – Don’t Repeat Yourself
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
There Are No Final Decisions
No decision is cast in stone. Instead, consider each as being written in the sand at the beach, and plan for change.
Estimate to Avoid Surprises
Estimate before you start. You’ll spot potential problems up front.
Keep Knowledge in Plain Text
Plain text won’t become obsolete. It helps leverage your work and simplifies debugging and testing.
Fix the Problem, Not the Blame
It doesn’t really matter whether the bug is your fault or someone else’s – it is still your problem, and it still needs to be fixed.
Learn a Text Manipulation Language.
You spend a large part of each day working with text. Why not have the computer do some of it for you?
Write Code That Writes Code
Code generators increase your productivity and help avoid duplication.
Finish What You Start
Where possible, the routine or object that allocates a resource should be responsible for deallocating it.
Abstractions Live Longer than Details
Invest in the abstraction, not the implementation. Abstractions can survive the barrage of changes from different implementations and new technologies.
Don’t Think Outside the Box – Find the Box
When faced with an impossible problem, identify the real constraints. Ask yourself: “Does it have to be done this way? Does it have to be done at all?”
Start When You’re Ready.
You’ve been building experience all your life. Don’t ignore niggling doubts.

An Unconvential American Voter’s Guide for 2012

An Unconvential American Voter’s Guide for 2012

I would first like to convince you that you aren’t who you think you are. Whether we like it or not, our views are formed more and more by what we want to believe than what really is. And yet, this diabolical deception is masterminded by no one other than ourselves. That’s right. There’s no conspiracy theory to blame for your delusions. You did it to yourself. The freedoms of choice that you delight in have given you the freedom to be stupendously ignorant of the world around you. How can you expect to make an informed choice at the ballot box if you’re completely unreliable in all your other choices? Blame the filter bubble.

The filter bubble feeds people with information that’s relevant only to them. The only way to avoid this is to allow yourself to consume content from sources that you normally wouldn’t, to tune into channels you normally couldn’t imagine yourself viewing or listening to, or (heaven forbid) to thoughtfully consider the views of people you don’t identify with or who hold opposing beliefs. Only when you deny yourself the delectable sugary coating your unbridled instincts are apt to slather on when interpreting new information (that would otherwise be a hard pill to swallow) can you even begin to consider yourself well-informed or even moderate.

So before you cast your vote, ask yourself: What do I really know about the candidate I’m supporting? Am I voting for him because he’s the best fit for the job, or because I identify with him? …because he’s got the right plan, or because he’s got that ‘presidential look’? Do I want the world to be a better place, or just more like me? How you identify yourself with a potential candidate is the lamest criteria a voter could ever use. To base your choice of candidate solely on your powers of intuition does your country as much good as praying for an economic recovery. Trust your facts more than your conclusions based on them.

While I can’t exactly say who you should vote for, I will say you should keep your mind open. I predict that Obama will most likely win this presidential election, perhaps by another scandalously narrow margin. The polls are wrong. We live in an era of two-term presidents. Voters just aren’t comfortable throwing out a president after 4 years of experience, it seems to me.

Towards a brighter future…

Would the United States of America be better off without straight party voting? I think so. If not, then we should find alternative ways of making information about candidates more easily available to voters. This won’t make the task of voting all that much easier (it should be more difficult, if anything), but should benefit the whole nation by lightening the burden on the voter’s conscience, paving the way for a more cooperative Congress moving ahead.

Where I live everyone seems to avoid openly discussing politics (as with sex or religion). But as I look out into the larger world,  I am aware of some exciting political movements, like peer progressivism, introduced to me recently from reading Steven Johnson’s just released Future Perfect, who defines it so succinctly I decided to quote him directly on the subject:

Steven Johnson's “Future Perfect”

Steven Johnson’s “Future Perfect”

…Peer progressives are wary of excessive top-down government control and bureaucracy; they want more civic participation and accountability in public-sector issues that affect their communities. They want more choice and experimentation in public schools; they think, on the whole, that the teachers’ unions have been a hindrance to educational innovation. They think markets can be a great force for innovation and rising standards of living, but they also think that corporations are far too powerful and top-heavy in their social architecture. They believe the rising wealth and income gaps need to be restored to levels closer to those of the 1950s. They believe that the campaign-finance system is poisoning democracy, but want to retain an individual’s right to support candidates directly. They want lower prices for prescription drugs without threatening the innovation engine of the pharmaceutical industry. They are socially libertarian, and consider diversity to be a key cultural value. They believe the decentralized, peer-to-peer architecture of the Internet has been a force for good, and that governments (or corporations) shouldn’t mess with it.

This might smack of a rebranding of SOPA or the open source movement. While they’re all related, peer progressivism’s roots run deep in American politics. The least I can say, in conclusion, is that our narrow polical views are merely symtomatic of the shortage of innovative solutions to campaigning. We have a long road ahead of us that warrants heaps of optimism for all citizens committed to self-governance and smart enough to escape the filter bubble.

Review of Themify’s WordPress Themes

Themify WordPress Themes

I have been using Nick and Darcy’s themes for over two years. Most of their themes are gorgeous right out of the box, no need to fuss or fiddle with complicated settings. I’m a total newbie to web development as well as WordPress, so a high-quality product like theirs was extremely helpful and saved me a lot of headaches. I’m also fanatically committed to responsive web design and theirs, I’ve found, is responsive like no other. So I bought quite a few already and consider myself a happy customer. They even comped me one way back, with the impression that I was expending some kind of effort to promote them. What I offer here will hopefully make up for my past silence. Onward…


  • Nick’s graphics are phenomenal.
  • Darcy’s back-end magic is equally hard to beat.
  • The documentation is more thorough than any other theme developer that I know of.
  • Super solid support.

As to Themify themes’ performance in the browser, it’s awesome when viewed on narrower screen widths. The content is more responsive than so many of the websites out there with ‘responsive’ re-designs. More on that later. Let’s just say that it’s so good that I found it hard to switch to any other theme.

If I were like any other consumer, this would be an easy home run. But I happen to be a very fickle artist who insists on subverting the form and structure of any medium I express myself with. While I’ve begun to make sense of the source code behind websites, blogs/CMSs like this are just too much to take in casually. I usually love to look at code, as long as it’s not a WordPress install. The criticism that follows then, should be interpreted as coming from a laymen’s point of view.


  1. Does anybody care about browser viewports wider than 1000px?
  2. Who's designing for wider reports?

    Who’s designing for wider reports?

  3. What’s with all the form fields and dropdown boxes, anyway?

    1. This is, I suppose, the most legitimate beef I have, since it’s glaringly omitted by just about every other developer. It’s as if everyone’s designing for a web of Netbooks. People behind the web still have to be reminded that to be truly responsive, they MUST deliver their content to the full range of viewport widths available.

    2. Gee guys, are you sure you included every CSS property? Wouldn’t it be easier to comment out the CSS to allow authors to find the values they want to edit, all on one page? Isn’t that how you prefer to edit your own stylesheets?

    And good luck customizing this stuff. I’ve done everything I can to hack my child theme, and still haven’t gotten anywhere. Many of the files, such as the media-queries.css, are both in the theme folder as well as in the framework’s folder. So I still have to wonder, who is the target audience for this software? Because if it’s inexperienced designers who use Macs, then I should feel right at home. But I don’t. Maybe this is the kind of visual interaction people are used to with Adobe software? Or Microsoft?

    The content is what counts, anyway, I guess.

    I’ve looked around at all the competition and despite my misgivings with Themify, they’re still the top dogs on the block. You might say it’s the kind of product where once you try it you never want to go back. Still though, the best Themify experience might be restricted to those with WordPress experience who can tweak the CSS values and customize the PHP, delivering to their client a Themify dashboard with only relevant adjustments and truly minimal fuss. The rest of us will have to enjoy what wonders Themify offers out of the box. Below I’ve included the latest changes to Elemin.


    Version 1.2.1 (Aug 15, 2012)

    • Remove custom_style.css duplicate load.
    • Better markup formatting for styling, custom css, header code, footer code and open graph tags.
    • Change Header code, Footer code, Custom CSS, Welcome Message to use a monospaced font for better legibility when adding CSS, HTML or JS.

    Version 1.2.0 (Aug 9, 2012)

    • Fixed issue serving skin without https in servers using ISAPI with IIS
    • If no styling is set, <style> tags are not outputted in header
    • Added Open Graph description for categories, tags, custom taxonomies, search results
    • Improved Open Graph description for single views: if no excerpt is defined, a description will be created using the post content with tags stripped
    • Flickr Widget: added optional link to account

    Version 1.1.9 (Aug 3, 2012)

    • Fixed typo after serving skin stylesheet url that left an ‘n’ character
    • Fixed image function that led to incorrect logo in single pages

    Version 1.1.8 (Aug 2, 2012)

    • Themes are protected from upgrade checking against WordPress themes repository with the same name
    • Skin stylesheets are served with HTTPS if needed.
    • Themes now include Open Graph tags in page head.
    • Featured Image: if using img.php, will try to first server ‘large’ size if it’s a WordPress Featured Image. If it doesn’t exist it will serve the original image.
    • author_box shortcode: markup includes the author nicename as a CSS class.
    • Categories ID are now shown in categories list in admin.
    • slider/post_slider shortcodes: CSS width of carousel set to auto, fixes cropped height.
    • Most commented widget: comment count appears on new line.
    • In Themify Custom Panel, Remove Image is now hidden unless there is a Featured Image or a Post Image

Time is the most misunderstood standard of measurement

Our experiences flow in the present moment. Since most people’s minds tend to be occupied by ruminating over the past or worrying about the future, Now is actually a precious commodity.

While a few of us can afford the luxury of enjoying it, we shouldn’t pass up the opportunity to meditate on it whenever we get the chance, preferably on a daily basis. If not for all the obvious therapeutic reasons, then at least for the benefit of sheer pleasure.

My favorite time for this is at dusk, but the time of day isn’t as important as the attentiveness you give to this exercise. The first few times you try it you will no doubt feel like you have failed. This is okay. Now there’s this whole riff I could go into about how all of the impersonal constituent parts that make up the super-organism that is you don’t need you or how the monkey on the back of the tiger knows as much about where the tiger’s going as you do about your next thought, but I’ll save the whole free-will-is-an-illusion speech for some other time.

Here’s your homework assignment:
Every day take a moment to drop every thought in your mind, if only for a moment; your only job being to breath and pump blood. As your errant thoughts continue to ramble in and out of focus, resist the urge to complete them. If you’re outside, hold your face up to any breeze that might be blowing.

Some of the guidelines for mindfulness meditation have an uncanny resemblance to the age old prayer traditions:

  • Silence
  • Reverence
  • Stillness (Whether seated, standing, hands clasped or at your side

The biggest challenge is to break the spell of discursive thought. Once achieved, though, it is possible to find such fulfillment in one’s present moment that can be called sacred, and to cease to have a problem…


And then I learned that [“As a software developer, you are your own worst enemy. The sooner you realize that, the better off you’ll be.

I know you have the best of intentions. We all do. We’re software developers; we love writing code. It’s what we do. We never met a problem we couldn’t solve with some duct tape, a jury-rigged coat hanger, and a pinch of code. But Wil Shipley argues that we should rein in our natural tendencies to write lots of code:
The fundamental nature of coding is that our task, as programmers, is to recognize that every decision we make is a trade-off. To be a master programmer is to understand the nature of these trade-offs, and be conscious of them in everything we write.
In coding, you have many dimensions in which you can rate code:
•    Brevity of code
•    Featurefulness
•    Speed of execution
•    Time spent coding
•    Robustness
•    Flexibility
Now, remember, these dimensions are all in opposition to one another. You can spend three days writing a routine which is really beautiful and fast, so you’ve gotten two of your dimensions up, but you’ve spent three days, so the “time spent coding” dimension is way down.
So, when is this worth it? How do we make these decisions? The answer turns out to be very sane, very simple, and also the one nobody, ever, listens to: Start with brevity. Increase the other dimensions as required by testing.
I couldn’t agree more.

yeah, yeah

I’ve given similar advice when I exhorted developers to Code Smaller. And I’m not talking about a reductio ad absurdum contest where we use up all the clever tricks in our books to make the code fit into less physical space. I’m talking about practical, sensible strategies to reduce the volume of code an individual programmer has to read to understand how a program works. Here’s a trivial little example of what I’m talking about:
if (s == String.Empty)
if (s == “”)
It seems obvious to me that the latter case is better because it’s just plain smaller. And yet I’m virtually guaranteed to encounter developers who will fight me, almost literally to the death, because they’re absolutely convinced that the verbosity of String.Empty is somehow friendlier to the compiler. As if I care about that. As if anyone cared about that!
It’s painful for most software developers to acknowledge this, because they love code so much, but the best code is no code at all. Every new line of code you willingly bring into the world is code that has to be debugged, code that has to be read and understood, code that has to be supported. Every time you write new code, you should do so reluctantly, under duress, because you completely exhausted all your other options. Code is only our enemy because there are so many of us programmers writing so damn much of it. If you can’t get away with no code, the next best thing is to start with brevity.
If you love writing code– really, truly love to write code– you’ll love it enough to write as little of it as possible.
Posted by Jeff Atwood

The “everyone should learn to code” movement isn’t just wrong because it falsely equates coding with essential life skills like reading, writing, and math. I wish. It is wrong in so many other ways.
•    It assumes that more code in the world is an inherently desirable thing. In my thirty year career as a programmer, I have found this … not to be the case. Should you learn to write code? No, I can’t get behind that. You should be learning to write as little code as possible. Ideally none.
•    It assumes that coding is the goal. Software developers tend to be software addicts who think their job is to write code. But it’s not. Their job is to solve problems. Don’t celebrate the creation of code, celebrate the creation of solutions. We have way too many coders addicted to doing just one more line of code already.
•    It puts the method before the problem. Before you go rushing out to learn to code, figure out what your problem actually is. Do you even have a problem? Can you explain it to others in a way they can understand? Have you researched the problem, and its possible solutions, deeply? Does coding solve that problem? Are you sure?
•    It assumes that adding naive, novice, not-even-sure-they-like-this-whole-programming-thing coders to the workforce is a net positive for the world. I guess that’s true if you consider that one bad programmer can easily create two new jobs a year. And for that matter, most people who already call themselves programmers can’t even code, so please pardon my skepticism of the sentiment that “everyone can learn to code”.
•    It implies that there’s a thin, easily permeable membrane between learning to program and getting paid to program professionally. Just look at these new programmers who got offered jobs at an average salary of $79k/year after attending a mere two and a half month bootcamp! Maybe you too can teach yourself Perl in 24 hours! While I love that programming is an egalitarian field where degrees and certifications are irrelevant in the face of experience, you still gotta put in your ten thousand hours like the rest of us.

I suppose I can support learning a tiny bit about programming just so you can recognize what code is, and when code might be an appropriate way to approach a problem you have. But I can also recognize plumbing problems when I see them without any particular training in the area. The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.
Please don’t advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Instead, I humbly suggest that we spend our time learning how to …
•    Research voraciously, and understand how the things around us work at a basic level.
•    Communicate effectively with other human beings.
These are skills that extend far beyond mere coding and will help you in every aspect of your life.
Posted by Jeff Atwood

Related posts:
•    Coding For Violent Psychopaths
•    Pseudocode or Code?
•    The Best Code is No Code At All
•    When Understanding means Rewriting

1: The Ruby language itself
The Ruby language is pretty impressive. It combines some of the best features of dynamic languages, while taking some of the best ideas from strongly typed, static languages and blending them with an object-oriented paradigm that is focused on “getting things done” and not “writing lots of code.” The Ruby language is an excellent language, and you may very well find it makes you quite productive.
2: Code-based data model
In Ruby on Rails, you define your data model with code. In fact, once the initial data model is made, any changes to it are made through scripts that manipulate the model. While this may feel a little unusual, it means that it is trivial to replicate a Rails project on another server or even target it against another database.
3: Open source
Rails (and Ruby) are not just “open source,” they have a thriving, helpful community around them. Although the magic of open source is often overstated, the reality of Ruby and Rails is close to the ideal, which is great for new developers.
4: Well documented
You may not see a row of Ruby or Rails books at your local bookstore, but Ruby and Rails are both well documented. I’ve been very impressed by the amount of video tutorials available on the Web, both for free and for pay. Not only are there lots of these tutorials, but they are often of high quality, fun to follow, and much more effective than most books.
5: Good jobs
Rails may not have a pile of open positions, but the Rails jobs I have seen advertised all look attractive. I’ve talked to a number of recruiters and people running Rails shops, and the general attitude is that the superior efficiency allows them to pay a bit more and still save money. Also, the lack of experts means that they often employ people who work from home or otherwise get benefits that a .NET or Java developer would be hard pressed to get.
6: Rapid development model
The Rails development model depends upon convention, not configuration. This means that if you learn to do things the way Rails expects you to do them, it will do a lot of the heavy lifting for you. This applies to a wide variety of development tasks, and as long as you keep yourself from trying to micromanage Rails, you can work very quickly in it.
7: Direct access to the HTML, JavaScript, and CSS
Rails makes no presumptions about how to turn your logic into output. Instead, you get 100% control over the presentation layer of your code. This makes tying your application’s logic to AJAX’ed front ends mighty easy. It also allows you to work closely with design experts, to produce nice looking sites that are difficult to do in less-flexible systems.
8: Vendor support
Is Rails available on every host out there? Not at all. But most hosts do offer it now. Even better, a number of them now specialize in Rails hosting and can provide a high level of service and support. In fact, Engine Yard employs a significant number of developers who are core members of the Rails and Ruby teams, giving them a massive amount of in-house knowledge of the product. As a result of specialization, you can get great help from these vendors, in stark contrast to the experience that most vendors typically provide.
9: Tool options
The relative simplicity of the Rails system means that there are already a number of good IDEs for Rails development. In addition to IDEs, the Rails ecosystem is filled with excellent tools that fill just about any need you may have, and most of them are free and/or open source. If you want to work in an ecosystem with topflight tools support, Rails is a good place to be.
10: Better fit
There is something distinct about the Rails philosophy (and toolset) in comparison to the Java or .NET environments. If you are the type of person who “thinks in code” and likes to work with scripts to get things done, Rails may be a great fit for you. While the focus on command-line tools may feel like a quaint anachronism, this mode of working simply suits some people better. There is a good possibility that you will find yourself very comfortable working in the Rails style, and it is worth your time to check it out.

Compared to C/C++/Java – Python/Ruby allow you to write the same program with much, much fewer lines of code. It is estimated that a typical Python or Ruby program will require 5 times fewer lines of code than a corresponding Java code. Why spend that much more time on writing programs unless it is absolutely necessary? Also, someone said that a good programmer can reasonably maintain 20000 lines of code. It does not matter whether those are in assembly, C, or Python/Ruby/PHP/Lisp. So, if you write in Python/Ruby, whatever you do alone would probably need a 5-person team in Java/C/C++.

Compared to VB/PHP – Python/Ruby are much, much better designed languages than PHP/VB. PHP and VB are very popular for writing websites, and desktop applications respectively. The reason they’re popular is that they are very easy to learn and even non-programmers can pick them up quickly. But write any large program in these languages and you’ll start seeing the huge problems with these languages because they’re so badly designed. Friends don’t let friends program in PHP/VB.

Compared to Lisp/Scala/Haskell/Closure/Erlang – Python/Ruby are still quite “mainstream”. Sure these languages have some really cool features, and for advanced programmers, exposure to these languages can really improve the way they think about programming. But there will be time later in your career to decide whether you want to pick up one or more of these. But for now, Python/Ruby do a much better job of balancing the power of the language against commercial applicability.

Compared to Perl1 – Both Python & Ruby owe a lot to Perl, and Perl was the biggest and best dynamic language before they started gaining prominence. But now, Perl’s popularity is reducing and more and more people are adopting Ruby/Python. I find Perl’s object-orientedness a bit contrived and ugly. In general, I think Perl is a harder language to learn since it has so many different ways of doing things, and the syntax tends to be cryptic and non-intuitive until you get the hang of it. Overall, I feel that Perl is not the best language for a student to pick up, unless there is a very good reason to do so (i.e. if you have lots of regular expression processing, then Perl shines)

Which Programming Language To Focus On?
***You MUST learn basic HTML & CSS: It’s foundational!***

Don’t choose Java, C, C++, C#, or PHP: Too much time and knowledge required to accomplish seemingly small things.

Don’t choose Javascript: You can’t do much with Javascript alone (although it’s essential as part of a web stack).  Node.js is only 3 years old, and documentation, tutorials make this a bigger challenge than those with more history.

Don’t choose Scheme, Logo, LISP, Ada:  Their applications are too special-purpose for you to show your results to your girlfriend and have her be impressed.

Don’t choose VB.NET: Your hosting costs will be silly for toy projects. (plus I’m a language snob).

BEST – Learn Python with Django and Heroku: The combination of extremely well documented online tutorials, sensible language design, simple/free hosting is a slam-dunk.  If you get serious, there’s lots of Python work out there (3,946 hits on a job search for “Python”)

Runner up – Ruby with Sinatra and Heroku: There were only 2,238 hits on a Dice job search for “Ruby”, so maybe there’s less work out there if you decided to get serious.  Otherwise, I kind of like this one myself.

Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal)

Recent iOS updates worth getting excited about

###Textastic, WordPress, Google Earth, Instapaper, Elements, and many others…###

If you’re into coding and keyboard control, check out Textastic! You won’t believe your eyes. Just look at these features:
* Syntax highlighting for many languages:
HTML, XML, Objective-C, C++, C#, PHP, SQL, JavaScript, CSS, shell scripts and a lot more
* Code completion for HTML, CSS and PHP functions
* Full external keyboard support
* Symbol list to quickly navigate in a file
* Adds a row of additional keys above the virtual keyboard to make it easy to type characters often used for programming
* Cursor can be moved using swipe gestures
* Different encodings like UTF-8, ISO-8859-1 or MacRoman
* Auto-indentation
* Supports different tab widths and soft tabs (spaces instead of tabs)
* Different fonts, font sizes and themes
* Undo & Redo
* Search & Replace
* Web preview for HTML and Markdown files
* Mail HTML and Markdown files
There’s still not a lot of support out there for the keyboard. But if that’s what you’re into, Textastic is tops, IMO.

WordPress 3.1
The new WordPress update makes mobile blogging even more attractive. Below I pasted an excerpt of’s 3 week old article on this subject. The author, Steven Sande, claims that 3.1 had crashed on him ‘on several occasions on both iPad and iPhone. (I remember when it wasn’t even worth using because of crashing issues)

Version 3.1 of the free WordPress app brings a new look to the universal application. There’s a sidebar for quickly navigating through your site, and on the iPad, sliding panels make navigation a piece of cake. The app can now be used in landscape mode, which makes me quite happy as that’s the way I prefer to type on the iPhone and iPad. There are allegedly “updated colors and graphics”, but if so, they are almost invisible changes.

Blogsy for the iPad is worth mentioning. It has a lot of formatting and media options that WordPress’ app lacks. I doubt I’ll ever find a GUI-app/middleware consumer oriented solution to online publishing, especially given that I’m so dissatisfied with the WordPress admin UX on any and all browsers.

But in light of iOS 6 around the corner, it’s hard to really get excited about new apps until then. That’s all for now. Gotta go!