Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do.
-- Steve Jobs

Tuesday, August 30, 2011

Mobile development with HTML5 | Engine Yard Ruby on Rails Blog

Mobile development with HTML5 | Engine Yard Ruby on Rails Blog
If you read blogs that are even slightly related to tech, you likely hear about HTML5 on a near-weekly basis. Although the new web standard does not do your laundry, it has features that enable the creation of powerful applications—using only HTML, CSS and JavaScript (a Rails back-end can bring additional firepower to the table). This post will go over some key concepts and features of HTML5, setting the stage for more advanced subjects.
Introducing HTML5 (2nd Edition) Pro Android Web Apps: Develop for Android using HTML5, CSS3 & JavaScript (Books for Professionals by Professionals) HTML5 and CSS3: Develop with Tomorrow's Standards Today (Pragmatic Programmers)

Improving Communication Between QA and Development | Software Quality Connection

How to Improve Communication Between QA and Development
When programmers and testers work together, the resulting software delivers the quality characteristics that the customers want. Yet too often, testers and programmers are on either side of a defect tracking system. Here’s how QA and developers can get on the same page and communicate better – from the programmer’s viewpoint.
Agile Testing: A Practical Guide for Testers and Agile Teams Agile Software Development: Best Practices for Large Software Development Projects Agile Software Development Quality Assurance

Scala: The Android programming language you didn't know you had | Application Development - InfoWorld

Scala: The Android programming language you didn't know you had | Application Development - InfoWorld
While developers already are aware of Java and C++ language usage for Android, they also can use other JVM languages because Android leverages the Java-compatible Dalvik VM, reasoned developer Mike Burns, of Thoughtbot, a Web and mobile application development company. "There's a growing community of people [developing] with Scala," he said.

Members of the Boston Android Developers Group, for instance, have begun to leverage Scala for Android development, said Burns, who runs the group: "Scala lets you write the code more quickly and share the code more easily than you can in Java."
Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd EditionSteps in Scala: An Introduction to Object-Functional Programming  Programming Android

Those evil frameworks and their complexity - Java Code Geeks

Those evil frameworks and their complexity - Java Code Geeks
Frameworks like Hibernate and Spring are industry-standards. JSF, EJB and the likes are also standards and used in many applications. But there are always people that are against these frameworks. The usual arguments against using frameworks are:
  • it is very complex, we don’t need it
  • we can make our own framework that will be better for us
  • we doubt their quality and don’t think they can do the job
  • we don’t want to learn yet another framework, core java should be enough
  • we’ve never heard of those…what’s so good about them?

The bad thing is you can’t argue with these people. And if they happen to be leads or architect – here’s another screwed project.
 Spring in Action Hibernate in Action (In Action series) Java Persistence with Hibernate

Microsoft Wants Your Feedback On Its New Python IDE - Slashdot

Microsoft Wants Your Feedback On Its New Python IDE - Slashdot
First time accepted submitter phoolishcyrus writes "Dear Slashdot: would you kindly take a look at our little project, PTVS — Python Tools for Visual Studio? It helps you develop Python (using any interpreter, not just IronPython) and comes with a few other goodies. Spare no punches."
Programming Python Learning Python: Powerful Object-Oriented Programming Professional Visual Studio 2010 (Wrox Programmer to Programmer)

Thursday, August 25, 2011

From Windows to Android with Glassboard | Nick Bradbury

Nick Bradbury: From Windows to Android with Glassboard
I can tell you that switching to Android wasn't easy after almost two decades of Windows development. I had to learn a new language (Java), a new IDE (Eclipse), a new platform (Android) and a new programming mindset (mobile) in a very short time. Oh, and just to make it harder, I decided to do it all on a Mac. I guess you could say I was looking for a challenge :)
And a challenge it definitely was.

Why is test automation the backbone of Continuous Delivery? | ranjan sakalley

ranjan sakalley: Why is test automation the backbone of Continuous Delivery?
As Jez rightly says in his excellent text about Continuous Delivery, automated tests "take delivery teams beyond basic continuous integration" and on to the path of continuous delivery. In fact, I believe they are of such paramount importance, that to prepare yourself for continuous delivery, you must invest in automation. In this text, I explain why I believe so.
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler)) Continuous Integration: Improving Software Quality and Reducing Risk Continuous Integration: High-impact Strategies - What You Need to Know: Definitions, Adoptions, Impact, Benefits, Maturity, Vendors

Text of Steve Jobs' Commencement address (2005)

Text of Steve Jobs' Commencement address (2005)
This is a prepared text of the Commencement address delivered by Steve Jobs, CEO of Apple Computer and of Pixar Animation Studios, on June 12, 2005.

I am honored to be with you today at your commencement from one of the finest universities in the world. I never graduated from college. Truth be told, this is the closest I've ever gotten to a college graduation. Today I want to tell you three stories from my life. That's it. No big deal. Just three stories.

Steve Jobs’s Best Quotes - Digits - WSJ

Steve Jobs’s Best Quotes - Digits - WSJ
Steve Jobs has stepped down as CEO of Apple, the company he founded and turned into the largest technology company in the world. Although his tenure as CEO will be remembered for ushering in fundamental changes in the way people interact with technology, he has also been known for his salesmanship, his ability to turn a phrase – and a knack for taking complicated ideas and making them easy to understand. Below, a compendium of some of the best Steve Jobs quotes.

Java 7: What's In It For Developers - Slashdot

Java 7: What's In It For Developers - Slashdot
GMGruman writes "After five years of a torturous political process and now under the new ownership of Oracle, Java SE 7 is finally out (and its initial bugs patched in the Update 1 release). So what does it actually offer? Paul Krill surveys the new capabilities that matter most for Java developers, from dynamic language support to an improved file system."

Wednesday, August 24, 2011

It's Not Just Standing Up: Patterns of Daily Stand-up Meetings | Martin Fowler

It's Not Just Standing Up: Patterns of Daily Stand-up Meetings | Martin Fowler
The daily stand-up meeting (also known as a "daily scrum", a "daily huddle", a "morning roll-call", etc.) is simple to describe: the whole team meets every day for a quick status update. We stand up to keep the meeting short. That's it. But this short definition does not really tell you the subtle details that distinguish a good stand-up from a bad one.
Given the apparent simplicity of stand-ups, I was quite surprised the first time I saw one that wasn't working. It was immediately obvious to me what was wrong but I realized that it was not obvious to the team. I realized that my team was not aware of the underlying principles and details that would allowed them to diagnose and solve problems with stand-ups.
People who have experienced good stand-ups will generally know what can be done when things aren't working well. For novice stand-up attendees, when things go wrong, it is much less likely that they'll figure out what to do. One way to approach this issue is to claim that it's all a matter of tacit knowledge and novices just need to attend more well-run stand-ups. I believe, however, that it's much more likely that given no assistance, novices will simply abandon the practice of daily stand-ups. This would be unfortunate since well-run stand-ups add significant value to projects.
This is my attempt to communicate some of the previously tacit knowledge on the benefits and consequences of common practices for daily stand-ups. These patterns of daily stand-up meetings are intended to help new practitioners as well as remind experienced practitioners of what they might already know in their gut.

Using Micro Cloud Foundry from Grails | SpringSource Team Blog

Using Micro Cloud Foundry from Grails | SpringSource Team Blog
Back in April, VMware introduced Cloud Foundry to the world and with it came super-simple application deployment for Grails developers. Fast forward several months and now another piece of the jigsaw is in place: Micro Cloud Foundry. You can now have your own Cloud Foundry instance for testing or any other use case. And of course, it's incredibly easy to use from Grails.

Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility | Google Testing Blog

Google Testing Blog: Lessons in a 21st Century Tech Career: Failing Fast, 20% Time and Project Mobility
If your name is Larry Page, stop reading this now.

Let me first admit that as I write this I am sitting in a company lounge reminiscent of a gathering room in a luxury hotel with my belly full of free gourmet food waiting for a meeting with the lighthearted title "Beer and Demos" to start.

Let me secondly admit that none of this matters. It's all very nice, and I hope it continues in perpetuity, but it doesn't matter. Engineers don't need to be spoiled rotten to be happy. The spoiling of engineers has little to do with the essence of a 21st century tech career.

Now, what exactly does matter? What is the essence of a 21st century tech career that keeps employees loyal and engaged with productivity that would shame the most seasoned agile-ist? I don't yet have the complete story, but here are three important ingredients...

The Application of Pareto's Principle to the Adoption of Agile Practices - Part 1 of N | BigJimInDC

BigJimInDC: The Application of Pareto's Principle to the Adoption of Agile Practices - Part 1 of N
If you believe in Pareto's Principle (otherwise known as the 80-20 Rule), then you believe that it can be applied literally everywhere. At its heart, Agile practices are about doing what works and ignoring the rest (at least until the time is right). In a world where people are constantly searching for silver bullets, getting distracted by zealot turf wars, and feeling the crunch of deadlines, novice adopters of Agile practices need to learn what out of"agile" is immediately important for their situation, and what they can safely ignore until a latter point in time.

jQuery datatable with FancyBox and auto refresh - Shaun McCran

The blog of Shaun McCran - JQuery datatable with added FancyBox and auto refresh
Recently I've had a few questions about how to use the datatables plugin to display data, and also integrate a pop up or lightbox function. The pop up would have an edit form in it, and when the user completes the edit the light box goes away and the datatable refreshes.
This is relatively straightforward to do, but there are several key concepts to getting everything working correctly, so I've broken it down into a few chunks.
You can see an example of a datatable with added FancyBox here.

DataTables editing example | datatables.net

DataTables example
Using DataTables in-combination with the excellent jEditable plugin for jQuery allows you to produce a table which can have individual cells edited. The table can then be updated such that filtering, sorting etc. will all work as expected. This is showing in the demo below.

Tuesday, August 23, 2011

Code Refurbishment | Javalobby

Code Refurbishment | Javalobby
Within our industry we use a huge range of terminology. Unfortunately we don’t all agree on what individual terms actually mean. I so often hear people misuse the term “Refactoring” which has come to make the business in many organizations recoil in fear. The reason for this fear I’ve observed is because of what people often mean when misusing this term.

The Cowboy Coder | KodefuGuru

The Cowboy Coder
Back in the 90s, I was a certified cowboy coder. Even in 2000 when I started working on a team project, the team and the product had little to no discipline. Requirements were handed off as features the owner of the company would like, and they were divided up to be tackled by individuals based on interest. Some might call this “agile,” but there were no cycles, no unit testing, little shared ownership, and little accountability. I did things my own way, and learned from others around me.
As I matured as a developer, I came to realize how important certain skills were in working with teams. I found myself worrying about the maintainability of code as I knew it would one day be handed off to others. I found myself wanting to ensure my code does what I expected it to do. I found myself caring less about what I was doing specifically and more about the success of the team.

The Semantic Grid System: Page Layout For Tomorrow - Smashing Magazine

The Semantic Grid System: Page Layout For Tomorrow - Smashing Magazine
CSS grid frameworks can make your life easier, but they’re not without their faults. Fortunately for us, modern techniques offer a new approach to constructing page layouts. But before getting to the solution, we must first understand the three seemingly insurmountable flaws currently affecting CSS grids.

How To Answer A Programming Interview Question And Look Good Doing It | Skorks

How To Answer A Programming Interview Question And Look Good Doing It
Rather than continuing to talk about how hardcore developers should have hardcore math fu, I'd like to shift the focus a little to softer skills (although, as I said, I will come back to math stuff often). I believe that technical people should place even more of an emphasis on soft/people skills than non-techies (I mentioned this in one of the comments to my last post). I will expand on my reasons for this in a later post. In the meantime let's just take it as a given and look at the value of these skills in a technical interview situation.

The Five Essential Phone-Screen Questions | steveyegge2

The Five Essential Phone-Screen Questions - steveyegge2
I've been on a lot of SDE interview loops lately where the candidate failed miserably: not-inclined votes all around, even from the phone screeners who brought the person in initially.
It's usually pretty obvious when the candidate should have been eliminated during the phone screens. Well, it's obvious in retrospect, anyway: during the interviews, we find some horrible flaw in the candidate which, had anyone thought to ask about it during the phone screen, would surely have disqualified the person.
But we didn't ask. So the candidate came in for interviews and wound up wasting everyone's time.

The SOLID Principles :: BlackWasp Software Development

The SOLID Principles :: BlackWasp Software Development


The SOLID Principles
This is the first article in a series of six that describe the SOLID principles of object-oriented design and programming. The SOLID principles provide five guidelines that, when followed, can dramatically enhance the maintainability of software.

Single Responsibility Principle
The second article in the SOLID Principles series describes the Single Responsibility Principle (SRP). The SRP states that each class or similar unit of code should have one responsibility only and, therefore, only one reason to change.

Open / Closed Principle
The third article in the SOLID Principles series describes the Open / Closed Principle (OCP). The OCP states that all classes and similar units of source code should be open for extension but closed for modification.

Liskov Substitution Principle
The fourth article in the SOLID Principles series describes the Liskov Substitution Principle (LSP). The LSP specifies that functions that use pointers of references to base classes must be able to use objects of derived classes without knowing it.

Interface Segregation Principle
The fifth article in the SOLID Principles series describes the Interface Segregation Principle (ISP). The ISP specifies that clients should not be forced to depend upon interfaces that they do not use. Instead, those interfaces should be minimised.

Dependency Inversion Principle
The sixth and final article in the SOLID Principles series describes the Dependency Inversion Principle (DIP). The DIP states that high level modules should not depend upon low level modules and that abstractions should not depend upon details.


Spring Roo samples on Google App Engine | SpringSource.org

Spring Roo samples on Google App Engine | SpringSource.org
Google App Engine now runs Roo MVC and GWT applications without the need to tweak configuration settings. Check out the Vote and Expenses samples on the app engine.

[Dude|Sir], That's Not Programming | Dr Dobb's Journal

[Dude|Sir], That's Not Programming | Dr Dobb's Journal
Programming, as Knuth wisely pronounced, is an art. And reading through elegant code evokes the same sense of wonder and admiration that I feel when I experience other more traditional forms of art. It has a sense of beauty, but here commingled with an inherent practicality that gives it a unique and highly agreeable aspect.

Our trade requires problem-solving skills, imagination, curiosity, discipline, hard work, and especially experience. Add talent to these and you have Knuth's art. Note that these facets do not bar the way to anyone — unlike engineering or real science, which won't acknowledge skills no matter how demonstrable until they have been certified in academia.

Jolt Awards: The Best Books | Dr Dobb's Journal

Jolt Awards: The Best Books | Dr Dobb's Journal
Every year for the past 20 years, we've recognized the best products in the main classes of software development tools. No category gets more entrants than books, and this year was no exception with 51 nominees submitted by publishers, vendors, and readers. The award covers all books published from July 1 of last year to June 30th of this year.

Lessons in Software Reliability | Agile Zone

Lessons in Software Reliability | Agile Zone
What does it take to build reliable and stable enterprise software?

First, stop writing lousy code.

Monday, August 22, 2011

Rapid Cloud Development with Spring Roo – Part 2: VMware Cloud Foundry | Javalobby

Rapid Cloud Development with Spring Roo – Part 2: VMware Cloud Foundry | Javalobby
Spring Roo is a tool to offer rapid application development on the Java platform. I already explained when to use it: http://www.kai-waehner.de/blog/2011/04/05/when-to-use-spring-roo. Spring Roo supports two solutions for Cloud Computing at the moment: Google App Engine (GAE) and VMware Cloud Foundry. Both provide the Platform as a Service (PaaS) concept. This article will discuss the Cloud Foundry support of Spring Roo. GAE was discussed in part 1 of this article series (http://www.kai-waehner.de/blog/2011/07/18/rapid-cloud-development-with-spring-roo-%E2%80%93-part-1-google-app-engine-gae).

Solving Symptoms - Esther Derby on Agile Retrospectives | Agile Zone

Solving Symptoms | Agile Zone

Esther Derby on Agile Retrospectives:
Too many people teaching Scrum or Agile short-change retrospectives–teaching new ScrumMasters and coaches to make lists, rather than help the team think, learn, and decide together.

Good Unit Test CheckList | Javalobby

Good Unit Test CheckList | Javalobby
Here are a few items I try to respect every time I write unit tests.

Grails 1.4: The new Resources stuff « Glen Smith

Grails 1.4: The new Resources stuff « Glen Smith
I’ve recently migrated one of my applications over to Grails 1.4M1 (mainly because I was busting to try out the new testing stuff that Peter was writing about). In the process, I had a chance to kick the tyres on the new resources infrastructure that Marc has baked into 1.4.
So what’s the verdict? The new Resources framework is jam-packed-full-of-awesome! This stuff has significantly reduced the amount of js/css dependency nightmares that I have been dealing in my view layer. Not only is there far less code to write, I can now migrate between versions of libraries without the drama of updating any of my ref links.

On Code Quality « SourceForge.net: Project ogsa-dai

On Code Quality « SourceForge.net: Project ogsa-dai
As part of my work work on the OGSA-DAI Visual Workbench project, I needed to evaluate the ADMIRE codebase. This led me to investigate the issue of how to define software code quality and how to assess it. Note that I wasn’t investigating the functional qualities of the code – whether or not it meets the user’s requirements – but how well written is the code itself?

Are Frameworks Making Developers Dumb? | Javalobby

Are Frameworks Making Developers Dumb? | Javalobby
Last week I got to take interviews to hire senior Java developers with around five years experience. But after the interview process was over I felt like that frameworks are making developers life easier, but at the same time making them dumb. Everyone puts almost all the new frameworks on their resume claiming they have "Strong, working experience on Spring, Hibernate, Web Services etc".

Here is how the interviews went on.

Jay Fields' Thoughts: Passionate, Not Dogmatic

Jay Fields' Thoughts: Passionate, Not Dogmatic
In the past 3.5 years I had the opportunity to interact with some of the smartest people in our industry. I consider many of those smart people to be among the best software developers in the world. Unfortunately, some of the smart people I met weren't much more than assholes. The big difference I noticed between the two groups was -- The assholes were dogmatic, while the best developers were passionate
passionate: expressing, showing, or marked by intense or strong feeling
dogmatic: asserting opinions in a doctrinaire or arrogant manner
--dictionary.com
The difference between passionate and dogmatic is slim, but the result is dramatic.

Coding Horror: Programming: Love It or Leave It

Coding Horror: Programming: Love It or Leave It
I mean this in the nicest possible way, but not everyone should be a programmer. How often have you wished that a certain coworker of yours would suddenly have an epiphany one day and decide that this whole software engineering thing just isn't working out for them? How do you tell someone that the quality of their work is terrible and they'll never be good at their job -- so much so that they should literally quit and pursue a new career? I've wanted to many times, but I never had the guts.

HP TouchPad Android Ports Already Under Way | Android Community

HP TouchPad Android Ports Already Under Way | Android Community
I must say for $99 crisp dollar bills, the HP TouchPad rocking Android would be a pretty awesome deal. That would be a great price for a tablet and once we get some Honeycomb or Ice Cream Sandwich running on it everyone will be glad they snagged one for $99 dollars. After HP discontinued the TouchPad it went on a firesale and is now in the bargain bin. The specs compare to that of the HTC Sensation with that 1.2 Ghz dual-core Qualcomm processor, but with a 9.7″ 1024×768 IPS display. All that running Android sounds like something I’d be okay with.

Adding jQuery Mobile to an Existing Grails App | Greg Stephens Blog

Grails + jQuery UI + GAE - Startup Guide Part One | INhouse 32

Grails + jQuery UI + GAE - Startup Guide Part One
This tutorial shows the steps required to create a simple Grails application with jQuery UI, the Grails AppEngine plugin and the GORM-JPA plugin. The tutorial will also point out criticals steps that require special attention.

Thinking Of Buying A $99 TouchPad? Don't - Forbes

Thinking Of Buying A $99 TouchPad? Don't - Forbes
The TouchPad is dead, but Hewlett-Packard is giving it a hell of a wake. HP has slashed the price of its $399 tablet computer to $99 after killing the product on Thursday, sparking a buying frenzy.
Finally, an Apple competitor has found a price low enough to start an online shopping stampede. And why not? Sure it’s bulkier than an iPad, the battery life is relatively poor, and it’s got just one camera — instead of two, but 99 bucks seems pretty good for anything with a 1.2 Ghz Snapdragon processor and an operating system with the ease of use and sophistication of WebOS.
Don’t do it.

5 Things You Should Never Say While Negotiating | Inc.com

5 Things You Should Never Say While Negotiating | Inc.com
Every entrepreneur spends some time haggling, whether it is with customers, suppliers, investors, or would-be employees. Most business owners are street smart, and seem to naturally perform well in negotiations. You probably have a trick or two—some magic phrases to say, perhaps—that can help you gain the upperhand. But, often, the moment you get into trouble in a negotiation is when something careless just slips out. If you are new to negotiation, or feel it is an area where you can improve, check out these tips on precisely what not to say.

Getting Real: Make Opinionated Software (by 37signals)

Getting Real: Make Opinionated Software (by 37signals)
Some people argue software should be agnostic. They say it's arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible.
We think that's bullshit. The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide what your vision is and run with it.

CLOSED-LOOP: Craftsmanship means we should refuse to work in dysfunctional environments!

CLOSED-LOOP: Craftsmanship means we should refuse to work in dysfunctional environments!
My post "From coding whore to opinionated developer" last year had quite some comments.
I was taking the position, that we developers do not have to put up with everything. As professionals we should set some minimal standards and if they are not achievable then we should not be here.

Why Amazon Can't Manufacture a Kindle In the US - Slashdot

Why Amazon Can't Manufacture a Kindle In the US - Slashdot
theodp writes "Ever wonder why all those job listings for Amazon subsidiary Lab126 — the internal group behind the Kindle and, by all accounts, an upcoming Android tablet — have travel requirements? Over at Forbes, Steve Denning explains why Amazon can't make a Kindle in the U.S., and why that really does matter. 'The idea that there is a lot of outsourcing going on is hardly news', writes Denning. 'The idea that it is irreversible and destructive of the economy's ability to grow is less well known. Even so, it's not exactly new news: the HBR article that I cite is two years old. What is really new news is that (1) these fairly obvious truths haven't yet dawned on economists at the Federal Reserve Bank of San Francisco, CEOs, accountants, politicians, among others and (2) the way to manage in a radically different way to deal with these issues is now more fully articulated than it has been before.' Denning concludes his trilogy-of-management-terror by noting that the decline is also occurring in software."

Sunday, August 21, 2011

Exporting CSV in Grails | leapingmind

Exporting CSV in Grails | leapingmind
Recently I needed to implement a controller action that generates a CSV (Comma Separated Values) representation of some data. It was pretty simple to do, but I couldn’t find a decent writeup of how to write the code and test it. This blog post will show what I ended up implementing.

[Working Method] Install Mac 10.7 Lion on VMware - Windows 7 Intel PC

[Working Method] Install Mac 10.7 Lion on VMware - Windows 7 Intel PC
Probably this is the first complete and working guide available on internet to install Mac OS X 10.7 Lion on VMware in Windows 7 Intel PC. After several days of searches, attempts, reading and collecting information from different places, I managed to install latest Mac OS X Lion 10.7 on my Intel Core2duo computer with VMware workstation in Windows 7.

Saturday, August 20, 2011

Marc Andreessen on Why Software Is Eating the World - WSJ.com

Marc Andreessen on Why Software Is Eating the World - WSJ.com
This week, Hewlett-Packard (where I am on the board) announced that it is exploring jettisoning its PC business in favor of investing more heavily in software, where it sees better potential for growth. Meanwhile, Google plans to buy up the cellphone handset maker Motorola Mobility. Both moves surprised the tech world. But both moves are also in line with a trend I've observed, one that makes me optimistic about the future growth of the American and world economies, despite the recent turmoil in the stock market.
[SOFTWARE1] QuickHoney

In short, software is eating the world.

Friday, August 19, 2011

Tiggr, a Web-Based IDE for Building Mobile Apps | JAVA Developer's Journal

Tiggr, a Web-Based IDE for Building Mobile Apps | JAVA Developer's Journal
Tiggr is a Web-based IDE for building mobile Web and native apps. Today I’d like to give you 14 reasons why this new-of-a-kind IDE deserves your attention.

A Pattern to Simplify Grails Controllers « Mr Paul Woods's Weblog

A Pattern to Simplify Grails Controllers « Mr Paul Woods's Weblog
I generally follow the same patterns with my controllers. They start with “the big 7 actions” – closures for index, list, show, create, save, edit, update and delete. Then i include any necessary controller-specific actions. After unit testing my controllers for the up-teenth time, I realized that there is a consistent pattern for many of the actions – get the id from params, get the domain object, then use the domain object. I wanted to extract this pattern into its own method, and that extraction evolved into the “WithDomainObject” pattern.

Careers 2.0: It’s About Reputation, Not “Rep” - Blog – Stack Exchange

Careers 2.0: It’s About Reputation, Not “Rep” - Blog – Stack Exchange
A Careers 2.0 profile is designed to let you highlight your best software development work. You can link to open source projects, link to your favorite books, link to your blog posts, but most importantly, you can pick some of your favorite answers that you wrote on Stack Overflow and link to them. Four or five great answers is enough to prove to a recruiter that you know your stuff. (Here’s what my profile looks like. I’m not actually on the job market; please don’t try to hire me!)

Test-Driven Development and Embracing Failure – Steve Freeman

Test-Driven Development and Embracing Failure – Steve Freeman
At the last London XpDay, some teams talked about their “post-XP” approach. In particular, they don’t do much Test-Driven Development because they find it’s not worth the effort. I visited one of them, Forward, and saw how they’d partitioned their system into composable actors, each of which was small enough to fit into a couple of screens of Ruby. They release new code to a single server in their farm, watching the traffic statistics that result. If it’s successful, they carefully propagate it out to the rest of the farm. If not, they pull it and try something else. In their world, the improvement in traffic statistics, the end benefit of the feature, is what they look for, not the implemented functionality.

CLOSED-LOOP: Test Driven: It is the mindset not the tool!

CLOSED-LOOP: Test Driven: It is the mindset not the tool!
It is amazing to realize how old the notion of Test Driven Development (TDD) really is.

Strokes: achievements while programming! « Timdams's Blog

Strokes: achievements while programming! « Timdams's Blog
Ok, so I’ve already hinted about this several posts before: an actual implementation of achievements-based programming in Visual Studio is being made as we speak. In this post I will humbly and proudly present the Strokes program that is rapidly evolving into something I’m eager to use in my own classes.

Introduction to HTML5 Web Storage

Introduction to HTML5 Web Storage

Web Storage is a new HTML5 API offering important benefits over traditional cookies. Although the specification is still in W3C draft status, all major browsers support it already.

This means you can start using the API’s sessionStorage and localStorage objects (we will discuss these later on) and enjoy their benefits.


iBoost Your iOS Code Part 1: Introduction and Macros | Rapture In Venice

iBoost Your iOS Code Part 1: Introduction and Macros | Rapture In Venice
Over the course of developing many iOS-based apps for a variety of customers such as Sports Authority, Navy Federal Credit Union, Fuzz Alert, Map My Fitness, and more, you begin to sense a pattern with how you use the iOS SDK and what your coding practices are in Objective-C. An overwhelming sensation that you’re doing a lot of the same things over and over again — in about the most verbose way possible. Let’s face it, Objective-C is not only an ugly language, but the SDK is missing a lot of very basic functionality to get your job done more concisely.
That’s why I built and maintain the iBoost Library. It’s a small module that serves as a sidekick of sorts to your normal development.

What’s Eating OOP « #AltDevBlogADay

What’s Eating OOP « #AltDevBlogADay
It has been commonplace over the past few years to bash Object Oriented Programming. Functional programming going mainstream. Data oriented design becoming commonplace for performance. The resurgence of dynamic languages. OO bastions going multi-paradigm. Why is everything going wrong for traditional OOP?

That Squiggle of the Design Process | Central

That Squiggle of the Design Process | Central
Years ago I dropped a simple illustration into a proposal to convey the design process to a client. It was meant to illustrate the characteristics of the process we were to embark on, making it clear to them that it might be uncertain in the beginning, but in the end we’d focus on a single point of clarity. It seemed to work. And from then on, I’ve used it since. Many many times.

Amazon.com Interview: Charles Petzold

Amazon.com Message
Known for his books on programming Microsoft Windows and his technical advice in PC Magazine , Charles Petzold has long been a favorite of the programmers among us. His latest book, Code: The Hidden Language of Computer Hardware and Software, breaks from tradition and offers a look at data representation and processing that the average Joe can appreciate. From Morse code to Unicode, Petzold's new book has a lot to say about how human beings communicate with the help of machines.

The top 5 things I wish someone had told me before I started my own business « #AltDevBlogADay

The top 5 things I wish someone had told me before I started my own business « #AltDevBlogADay
If there is an overall lesson that I have learned with regard to starting up my own business and if I could sum it up in fewer words, I would say that I think a business should be thought of like a tiny little baby that needs to be nurtured and loved in order to grow. A new business is a tiny little entity that requires your undivided attention in order for it to thrive, you’re going to make mistakes in raising it, but you have to keep reassessing and making the best decisions you can every single step of the way.

App Inventor Continues Life at MIT - Slashdot

App Inventor Continues Life at MIT - Slashdot
An anonymous reader writes with a press release on the App Inventor Weblog. From the release: "MIT announced the launch of the new Center for Mobile Learning, with a first activity being to take over and refine App Inventor for Android. The center will be led by App Inventor mastermind Hal Abelson, Mitch Resnick of Lego Mindstorms and Scratch fame, and Eric Klopfer, the director of teacher education at MIT and an expert in games and simulation. This news boomerangs the negativity surrounding Google's discontinuation announcement last week. To the many teachers whose curriculums have been energized by App inventor, and to the thousands of newly empowered app builders: Rejoice! The fun has just begun!"

C++ 2011 and the Return of Native Code - Slashdot

C++ 2011 and the Return of Native Code - Slashdot
snydeq writes with an editorial in InfoWorld about the resurgence of native code. From the article: "Modern programmers have increasingly turned away from native compilation in favor of managed-code environments such as Java and .Net, which shield them from some of the drudgery of memory management and input validation. Others are willing to sacrifice some performance for the syntactic comforts of dynamic languages such as Python, Ruby, and JavaScript. But C++11 arrives at an interesting time. There's a growing sentiment that the pendulum may have swung too far away from native code, and it might be time for it to swing back in the other direction. Thus, C++ may have found itself some unlikely allies."

Thursday, August 18, 2011

Rage and the Tech Behind id Tech 5 - Slashdot

Rage and the Tech Behind id Tech 5 - Slashdot
MojoKid writes "id Software's long-awaited FPS, Rage, is set to ship in October. When it launches, Rage will be the first game to feature id's newest graphics engine, dubbed id Tech 5. id Tech 5 has evolved considerably since the company started talking about it four years ago, however. While it contains a number of additional features, MegaTexturing remains one of the game's most visible advances. MegaTexturing uses a single large texture to map the terrain of an entire area. Data from that texture is streamed in depending on where the player is standing and what's visible. Effects that would normally be blended in traditional tiled texturing can be baked into the megatexture and streamed off disc when needed. The advantage of megatexturing is that it allows artists to create unique environments rather than resorting to a variety of tricks to hide repetitive texture tiles." id's Tim Willits spoke with Eurogamer about Rage's development, explaining how their goal of fast-paced action dictated certain design decisions. Rage will make use of Steamworks, but won't require a persistent connection for offline play. However, small parts of optional single-player content will only be available to players who buy the game new. Willits said, "Most people never find them. But as soon as you do, you're like, oh. And then you start to look for it. That's our first-time buyer incentive."

Open Offices for Agile Teams May Be Bad for Workers | DevX

Open Offices for Agile Teams May Be Bad for Workers
Most agile development teams work in open office environments, which improve communication, collaboration, and teamwork. However, several new studies suggest that theses layouts may actually be harmful for the developers who work in them. One study found that moving to an open office space caused a 32 percent drop in workers' well-being and 15 percent decrease in productivity. Another found that 90 percent of open offices caused higher levels of stress, conflict, high blood pressure and high staff turnover.

Sunday, August 14, 2011

Using jQuery DataTables In Grails | leapingmind

Using jQuery DataTables In Grails | leapingmind
DataTables (a table plug-in for jQuery) helps you add tables with dynamic content and behavior to your web applications. You get features like column sorting, content paging, filtering, etc. In this post I’ll show you an example of how to use DataTables to present data.

More jQuery DataTables: Showing Row Details | leapingmind
Aaron commented on my last blog post that he’d like to see an example of how to click on a row in a jQuery DataTable to show that row’s details in a jQuery UI dialog. In this post I’ve created a sample Grails application which does just that. Some of the things you’ll learn how to do are:
  • Hide columns in a DataTable
  • Add a click event handler to each row in a DataTable
  • Use AJAX to retrieve data from the server
  • Display that data in a jQuery UI modal dialog
You can either download the source code from GitHub, or create your own Grails app and follow along.

Saturday, August 13, 2011

Better Scaffolding with jQuery - Part I | Groovy Zone

Better Scaffolding with jQuery - Part I | Groovy Zone
Grails scaffolding works great out of the box. Today I want to see how we can improve adding data to the many side of a one-to-many relationship using jQuery, jQueryUI's Dialog, and some Ajax.

Grails, JQuery, and AJAX | AlexDuan.com

Grails, JQuery, and AJAX | AlexDuan.com
Grails out of the box uses Prototype for its JavaScript framework, which means that developers have a number of GSP taglibs available which will automatically generate Prototype code to make AJAX-y calls.
Unfortunately, I “grew up” using JQuery, and thus feel more comfortable using JQuery as my JS framework. Luckily, Grails “has a plugin for that.” This means that if you’ve been using the Grails taglibs to generate your remote calls, you can install the plugin and it will generate JQuery code instead. Great for when you switch out your JS frameworks midstream…am I right?

Carmack On 'Infinite Detail,' Integrated GPUs, and Future Gaming Tech - Slashdot

Carmack On 'Infinite Detail,' Integrated GPUs, and Future Gaming Tech - Slashdot
Vigile writes "John Carmack sat down for an interview during Quakecon 2011 to talk about the future of technology for gaming. He shared his thoughts on the GPU hardware race (hardware doesn't matter but drivers are really important), integrated graphics solutions on Sandy Bridge and Llano (with a future of shared address spaces they may outperform discrete GPUs) and of course some thoughts on 'infinite detail' engines (uninspired content viewed at the molecular level is still uninspired content). Carmack does mention a new-found interest in ray tracing, and how it will 'eventually win' the battle for rendering in the long run."

Friday, August 12, 2011

Ask Slashdot: Am I Too Old To Learn New Programming Languages? - Slashdot

Ask Slashdot: Am I Too Old To Learn New Programming Languages? - Slashdot
ProgramadorPerdido writes "I have been a developer for 25 years. I learned Basic, VB, C, FoxPro, Cobol, and Assembler, but the languages I used the most were Pascal and Delphi. I then concentrated on a now-non-mainstream language for 11 years, as it was used at work. One day I had the chance to move into Project Management and so I did for the last 2 years. Now, at almost 40 years old, I'm at a crossroad. On one side I realized developing is the thing I like best, while on the other side, the languages I'm most proficient with are not that hot on the market. So I came here looking for any advice on how to advance my career. Should I try to learn web development (html, xhtml, css, php, python, ruby)? Should I learn Java and/or C#? Or am I too old to learn and work a new language? Should I go back to PM work even if I do not like it that much? Any similar experiences?"

Want To Keep (And Motivate) Your Best Employees? It's Not About The Money | Fast Company

Want To Keep (And Motivate) Your Best Employees? It's Not About The Money | Fast Company
In the past year, I've had a half dozen of my friends quit or prepare to quit their jobs in a bad economy--well-paying, high-profile positions--to pursue their entrepreneurial vision. These friends have all contemplated taking tremendous risks and are brave to face the high odds against success. I'm feeling sad that each, had they had had a better relationship with their companies and comrades, could have found success and support for their visions within the context of their old companies.

Thursday, August 11, 2011

Stop the Madness! A Less Trigger-Happy Approach to LinkedIn

Stop the Madness! A Less Trigger-Happy Approach to LinkedIn
Imagine a stranger cutting through the crowd at an event—a networking happy hour or hey, even a concert—to say, “I would like to add you to my professional network.” He quietly hands over a resume and walks away, leaving you to guess the nature of his interest. Awkward, right? Downright off-putting. Creepy, even.

So why do so many people decide to approach new contacts on LinkedIn this way?

Google+ Circles: What it Means for Your Personal Brand

Google+ Circles: What it Means for Your Personal Brand
Just when I finish a guide to using social media to build your personal brand, Google releases a potentially landscape-changing social sharing component. Really!? Really? Well, yeah, of course. Social media changes fast—the features available today could be tested and changed by tomorrow—which is why we made sure that the Brand Thyself! (released a month ago) would be as relevant in a year as it was last week.

MosBase: Grails Security - XSS Prevention using Html-Codecs

MosBase: Grails Security - XSS Prevention using Html-Codecs
There are so many applications out there that don’t care about Cross-site scripting (XSS) attacks.

Grails has a nice feature for fixing this basic XSS issue. All you need to do is set the default-codec to html in your Config.groovy

A web-focused Git workflow | Joe Maller

A web-focused Git workflow | Joe Maller

After months of looking, struggling through Git-SVN glitches and letting things roll around in my head, I’ve finally arrived at a web-focused Git workflow that’s simple, flexible and easy to use.

Some key advantages:

  • Pushing remote changes automatically updates the live site
  • Server-based site edits won’t break history
  • Simple, no special commit rules or requirements
  • Works with existing sites, no need to redeploy or move files

Github, Playground Servers & Auto Pull From Master - Theme.fm

Github, Playground Servers & Auto Pull From Master - Theme.fm
There are many different approaches on how you handle middle-scale to large-scale web applications development, source control, deployment and testing. Internally things may change, you can work in waterfall, scrum, agile and other methodologies, but externally it’s pretty much the same — local development server or servers, a testing (I like to call it playground) server and your production server, where your website is live and available to the whole world.

Today’s post is about handling automatic code updates at your testing server directly from your source control. Now this may sound tempting but you should never do anything like this on your production servers. Production server updates might be covered in one of our next blog posts but that’s one place where you’re better off doing some deployments manually rather than automate them.


Creating Fast Buttons for Mobile Web Applications - Google Mobile Developer Products - Google Code

Creating Fast Buttons for Mobile Web Applications - Google Mobile Developer Products - Google Code
Here at Google, we’re constantly pushing the boundaries of what’s possible in a mobile web application. Technologies like HTML5 allow us to blur the distinction between web apps and native apps on mobile devices. As part of that effort we’ve developed a technique for creating buttons that are far more responsive than plain HTML buttons.

Wednesday, August 10, 2011

jQuery UI - Configure your download

jQuery UI - Configure your download
Customize your jQuery UI download by selecting the version and specific modules you need in the form below or select a quick download package. A range of current and historical jQuery UI releases are also hosted on Google's CDN.

Grails, jQuery & the jQuery Grid

Grails, jQuery & the jQuery Grid - Part One
Grails, jQuery & the jQuery Grid - Part Two
Grails, jQuery & the jQuery Grid - Part Three 
Grails, jQuery & the jQuery Grid - Part Four
Grails, jQuery & the jQuery Grid - Part Five - Cell Editing
My target for these tutorials are not just for beginners to Grails but for anyone looking for quick how-to instructions to use Grails with various Ajax features such as displaying data in a jQuery grid, ajax filtering of data.

Downloading jQuery - jQuery JavaScript Library

Downloading jQuery - jQuery JavaScript Library
This is the recommended version of jQuery to use for your application. The code in here should be stable and usable in all modern browsers.

jQuery Grid Plugin » Downloads

jQuery Grid Plugin » Downloads
Customize your jqGrid download by selecting the specific modules you need in the form below.

Using The JQuery UI – Part 1 | GrasshopperPebbles.com

Using The JQuery UI – Part 1 | GrasshopperPebbles.com
Although I have used some of the JQuery UI widgets in the past, I really began to explore the JQuery UI in a recent project. One of the reasons that I like using the UI widgets is that I can standardize on a set of components (plugins) that have a consistent look and feel as well as a consistent coding standard.

No Fluff Just Stuff

No Fluff Just Stuff
Since 2001, the No Fluff Just Stuff Software Symposium Tour has delivered over 200 events with over 30,000 attendees. NFJS is known for excellent speakers and timely presentations which cover the latest trends within the Java Ecosystem and Agility space. Our focus is solely on the attendee and providing a world class experience in a local venue setting. Bring your team and join us for a great experience!

Grails - user - Should I use Grails? :-)

Grails - user - Should I use Grails? :-)
I know this is a bit like kicking a hornet's nest but...

I'm starting a project and I want to know if I should use Grails or ROR. I've been watching and playing with Grails since the 1.x days and wonder if the framework is secure enough to use for a real, large scale, project.

Ben's Macroblog: Developing Android apps: it's really not so bad!

Ben's Macroblog: Developing Android apps: it's really not so bad!
There's been some talk recently about how Android development can be difficult for newcomers to jump into (for one, this rant on Hacker News, claiming that you'll need "months researching Android design patterns"; the top rated response is mine.) I thought I'd elaborate and show my roughly two week journey from deciding "hey, I'd like to try building an app some time" to releasing a full blown, (IMHO) polished Android app to the market. I plan on following up with more stats in a week's time to show how I'm doing with revenues, downloads, etc.

Google Pulls Plug On Programming For the Masses - Slashdot

Google Pulls Plug On Programming For the Masses - Slashdot
theodp writes "Google has decided to pull the plug on Android App Inventor, which was once touted as a game-changer for introductory computer science. In an odd post, Google encourages folks to 'Get Started!' with the very product it's announcing will be discontinued as a Google product. The move leaves CS Prof David Wolber baffled. ' In the case of App Inventor,' writes Wolber, 'the decision affects more than just your typical early adopter techie. It hurts kids and schools, and outfits like Iridescent, who use App Inventor in their Technovation after-school programs for high school girls, and Youth Radio's Mobile Action Lab, which teaches app building to kids in Oakland California. You've hurt professors and K-12 educators who have developed new courses and curricula with App Inventor at the core. You've hurt universities who have redesigned their programs.' Wolber adds: 'Even looking at it from Google's perspective, I find the decision puzzling. App Inventor was a public relations dream. Democratizing app building, empowering kids, women, and underrepresented groups — this is good press for a company continually in the news for anti-trust and other far less appealing issues. And the cost-benefit of the cut was negligible-believe it or not, App Inventor was a small team of just 5+ employees! The Math doesn't make sense.'"

Admitting Your Mistakes #AppFail | Rapture In Venice: A Mobile Developer for iPhone, iPad, and Android Development in Denver, Colorado

Admitting Your Mistakes #AppFail | Rapture In Venice: A Mobile Developer for iPhone, iPad, and Android Development in Denver, Colorado

The software industry is like no other. As members, we accept some pretty nice salaries, but not without sacrifice. We work hard hours in front of a machine with very little human interaction (even if some of us prefer that). We routinely work extra hours for free when projects slip. We ALL bring our work home with us in the form of laptops and mental baggage. (I personally can’t sleep when I have a strange bug haunting me.) And god forbid you spend some time relaxing in the evenings, you’re falling way, behind in a technology race that would put Usain Bolt to shame.

But the worst aspect is the machismo front we have to put up in order to protect ourselves from looking weak. Well. Not this blog.

This past week had me face a nightmare I’d always feared but hoped I’d never have to face. And I’d like to share this story with you because while I’d like to spend the time convincing you of my overwhelming awesomeness, I’m far from it this go around.


My Hero, Heroku | Rapture In Venice: A Mobile Developer for iPhone, iPad, and Android Development in Denver, Colorado

My Hero, Heroku | Rapture In Venice: A Mobile Developer for iPhone, iPad, and Android Development in Denver, Colorado
A friend and co-worker of mine, Tony Hillerson, was once scheduled to rebuild a backend system for a client of ours. His idea was to replace our tiny little PHP friend with a Heroku implementation. He described it as Rails on a cloud and I kept it in mind cause I loves me my Rails. Amiright?

About 8 months later, a customer project came about and I felt Rails would be the perfect solution for the services and web site he needed. (Full disclosure: it always is.) I decided to look into Heroku and, let me tell you, what a success the project has been!

Cohesion - Glenn Vanderburg: Blog

Cohesion - Glenn Vanderburg: Blog
Developers I encounter usually have a good grasp of coupling—not only what it means, but why it’s a problem. I can’t say the same thing about cohesion. One of the sharpest developers I know sometimes has problems with the concept, and once told me something like "that word doesn’t mean much to me." I’ve come to believe that a big part of the problem is the word "cohesion" itself. "Coupling" is something everyone understands. "Cohesion," on the other hand, is a word that is not often used in everyday language, and that lack of familiarity makes it a difficult word for people to hang a crucial concept on.

I’ve had some success teaching the concept of cohesion using an unusual approach that exploits the word’s etymology. I know that sounds unlikely, but bear with me. In my experience, it seems to register well with people.


WebPutty: Simple, fast, and powerful CSS editing and hosting. - WebPutty

WebPutty: Simple, fast, and powerful CSS editing and hosting. - WebPutty
WebPutty gives you a syntax-highlighting CSS editor you can use from anywhere, the power of SCSS and Compass, a side-by-side preview pane, and instant publishing with minification, compression, and automatic cache control.
Get started with just a pair of tags in your website's template and WebPutty will host and serve your published CSS minified and gzipped for super speed. Read more about why we built WebPutty.

:jasonrudolph => :blog >> Programming Achievements: How to Level Up as a Developer

:jasonrudolph => :blog >> Programming Achievements: How to Level Up as a Developer

How does a good developer become a great developer?

Forget greatness for a moment: How does a decent developer become a good developer?

There is no definitive path from Step 1 to Step n. Heck, it's not even clear what Step n is. And as logically-minded developer types, the lack of a well-defined route can make for a daunting journey from novice to master.

I've spent a fair bit of time over the last few years bumping up against this conundrum. What's next? How do I go from being a good developer to a being really good developer?


When to use Aspect Oriented Architecture (AOA/AOD) | .NET Zone

When to use Aspect Oriented Architecture (AOA/AOD) | .NET Zone
When is it appropriate to use aspect oriented architecture? I think the only honest answer to this question is that it depends on the context for which the question is being asked. There really are no hard and fast rules regarding the selection of an architectural model(s) for a project because each model provides good and bad benefits. Every system is built with a unique requirements and constraints. This context will dictate when to use one type of architecture over another or in conjunction with others.

Extending multiple grails DataSources in DataSources.groovy? - Stack Overflow

Extending multiple grails DataSources in DataSources.groovy? - Stack Overflow

Every environment you define in DataSource.groovy extends the base dataSource definition at the root of the file, outside of environments.

I have two specific configurations that I need to apply to a number of different environments which have minor environment-specific changes. Really, I need two "base definitions", or some way to extend existing definitions.

How do I do what I'm trying to do?


Monday, August 8, 2011

What Today's Coders Don't Know and Why It Matters - Slashdot

What Today's Coders Don't Know and Why It Matters - Slashdot
jfruhlinger writes "Today's programmers have much more advanced languages and more forgiving hardware to play with — but it seems many have forgotten some of the lessons their predecessors picked up in a more resource-constrained era. Newer programmers are less adept at identifying hardware constraints and errors, developing thorough specifications before coding, and low-level skills like programming in assembly language. You never know when a seemingly obsolete skill will come in handy. For instance, Web developers who cut their teeth in the days of 14.4 Kbps modems have a leg up in writing apps for laggy wireless networks."

Graham Hacking Scala: How to Create a Webapp with Scala, Spring, Hibernate and Maven in Late 2011

Graham Hacking Scala: How to Create a Webapp with Scala, Spring, Hibernate and Maven in Late 2011
Way back in the ancient history of January 2010, I wrote a walk-through of how to create a webapp with Scala, Spring Hibernate and Maven.

As with all things, technologies have progressed, as have other things, including the way code is shared online. So I decided it was time to update the code form that post and share it somewhere more modern.

Introduction to JSON (Javascript Object Notation) | Tech Samosa

Introduction to JSON (Javascript Object Notation) | Tech Samosa
JSON (Javascript Object Notation) is a light weight data interchange format. JSON is a subset of the literal object notation in JavaScript. It can be compared to XML but parsing of JSON is very much easier than XML data. It is a text format of data and is programming language independent. In fact it very much looks like unnamed array.

Java EE, Web Services, WS-BPEL, SOA: First steps with Spring.NET

Java EE, Web Services, WS-BPEL, SOA: First steps with Spring.NET
I was appointed as Technical Architect for a C++ desktop (medical softoware) project lately. But it turned out that the customer changed his mind and decided to go ahead with C# instead. In our company we have .NET and C# Technical Architects, but the management decided that I will be Technical Architect for this project anyway.

So Java guy architecting a C# application. Nice.

As a part of evaluating .NET technologies I decided to try Spring.NET.

scrottie: The Myth of the Bad Developer

scrottie: The Myth of the Bad Developer
If you're being treated as a hack when you've built planets and repeatedly done the impossible, it might not be time -- just yet anyway -- to learn another language. It might be time to learn a new industry.

web development - The Definitive Guide To Forms based Website Authentication - Stack Overflow

web development - The Definitive Guide To Forms based Website Authentication - Stack Overflow
Please help us create the definitive resource for this topic. We believe that stackoverflow should not just be a resource for very specific technical questions, but also for general guidelines on how to solve variations on common problems. "Form Based Authentication For Websites" should be a fine topic for such an experiment.

The Elusive “Quick Iteration”: Tips for Indie Devs « #AltDevBlogADay

The Elusive “Quick Iteration”: Tips for Indie Devs « #AltDevBlogADay
From agile and scrum to extreme programming, everyone’s trying to nail down what it takes to iterate on products quickly and efficiently. There are a lot of methodologies that you can employ to guide you through shipping products. But today, I’ll be talking specifically about video games and how, as a developer, you can use a loose process and follow some basic rules in order to get quality games quickly out the door. You might argue that in today’s day and age, with the Valves and Blizzards of the world, that taking your time speaks volumes for the quality of a game. Well, yes and no. For big AAA companies with a reserve of cash, that might make sense but as an indie developer you live and die off of shipping. The importance of quality and fun has not changed. However, the games industry is much more accessible and now developers utilizing fast iteration can make ridiculously high quality games in very short amounts of time. It’s one of the few things we can do better than big developers.

The demise of the low level Programmer. « #AltDevBlogADay

The demise of the low level Programmer. « #AltDevBlogADay
When I started programming many of the elements we take for granted now, did not exist. There was no DirectX and not many compatible libs were available for the free compilers of the day. So I had to write my own code for most basic programs, keyboard handlers, mouse handlers, video memory accessors, rasterizers, texture mappers, blitters… the programs I wrote then were 100% my own code and I had to be able to handle anything and everything.

...

So here goes… a list of things I believe all console programmers (and recommend to all programmers as good reading) should fully understand with links to educate where possible.

Sunday, August 7, 2011

3 ways to install Git on Linux (Ubuntu) | Goldin++

3 ways to install Git on Linux (Ubuntu) | Goldin++
“Git has a strong Linux heritage” – it was true in 2008 and it is still true in 2010. While "msysgit" provides good Windows port of Git I preferred to experience the real one.

The Todd on Tech: Trials and Tribulations of getting Jenkins on Windows pulling from GitHub

The Todd on Tech: Trials and Tribulations of getting Jenkins on Windows pulling from GitHub
I spent the better part of the last two days getting a Jenkins build which runs on a Windows 2008 server to pull from GitHub. You might think, “Wow, Todd really must be an (idiot|rube|dolt|moron|manager) to need 2 days to setup a CI server”. Well, you might be right, but even a simpleton like myself can google the shit out of a problem and come up with some type of frankensteined solution in a day or less. Apparently though, I am one of 5 people on this planet to actually use the cluster of Jenkins/Windows/Github. In case there are more of you out there, I thought I would try to spell out exactly what I did so that you don’t have to suffer (and so that when I forget how I got this thing to work and the server needs to be rebuilt in a year I can do it).

Help.GitHub - Set Up Git

Help.GitHub - Set Up Git
If you’ve found yourself on this page, we’re assuming you’re brand new to Git and GitHub. This guide will walk you through the basics and explain a little bit about how everything works along the way.

git ready » remote tracking branches

git ready » remote tracking branches
Confused about what exactly a remote tracking branch is? Don’t worry, it’s not just you. Basically, there’s two types of branches: local, and remote-tracking. Local branches are pretty run of the mill, they’re just another path in the DAG that you can commit to. Remote-tracking branches have a few different purposes...

Getting the Hang of GitHub | Nettuts+

Getting the Hang of GitHub | Nettuts+

A project is always more fun when you’ve got friends working with you, but how can do it when working on a coding project? I’ll keep my keyboard to myself, thanks.

Enter GitHub. With this web service, you can share your coding projects and collaborate with ease!

Code Fuss - Martin Vium: Setting up Jenkins with Github

Code Fuss - Martin Vium: Setting up Jenkins with Github
I just spend a lot more time cloning from github in Jenkins CI than was necessary.

Hackido: Installing Git on a server (Ubuntu or Debian)

Hackido: Installing Git on a server (Ubuntu or Debian)
There are lots of great instructions out there for using Git so you may not be interested in another one. Mine is no doubt imperfect as well, but I didn't find a front-to-back tutorial for getting rolling with Git on your own centralized server. I ended up cobbling information together from a bunch of sources (which I will list below). Mostly for my own benefit, I'm posting what I learned here. Feel free to ignore or read on as you desire.. By the end of it we'll have installed Git on a server, created a repository on that server, and checked in code from our local machine.

How to install Git on Ubuntu Lucid (10.04) « Kibet's Brain Leaks

How to install Git on Ubuntu Lucid (10.04) « Kibet's Brain Leaks
I’m sure there are tons of blogs out there on the same subject. This is just like a reference for me and others out there who might stumble upon this post. Note that what I have documented here is what worked for me. At the time of writing the latest GIT version was 1.7.1.

Github Hooks for Jenkins Continuous Integration

Github Hooks for Jenkins Continuous Integration

Over the last iteration we spent some time perfecting our continuous integration environment. We’ve started using Jenkins (the CI environment previously known as Hudson), and so far we’re pretty happy. One thing that vexed us for a while was getting a GitHub service hook to trigger our builds.

Here’s what we had to do...

Saturday, August 6, 2011

Jenkins and Github | Derek Kwok's Blog

Jenkins and Github | Derek Kwok's Blog
In this post we are going to assume you are setting up Jenkins on Ubuntu Linux 10.10.

Installing Linux applications with Aptitude

Installing Linux applications with Aptitude
For those of you who like a little more power behind your tools you will certainly appreciate the Aptitude front-end for the apt package management system. Aptitude is based on the ncurses computer terminal library so you know it’s a pseudo-hybrid between console and gui. Aptitude has a powerful search system as well as an outstanding ncurses-based menu system that allows you to move around selections with the tab key and the arrow keys.