Aptana Color Themes

Aptana Studio Rules
Aptana Studio Rules

When I develop at home and at work I use Aptana Studio. I purchased a license for myself at home and I use the community edition (read: free version) at work. It’s a wonderful editor with a ton of features and great community. One thing it lacks, however, is a good set of themes, out-of-the-box.

So what, you ask? Just go and download some third-party custom themes from the web!

Pishaw! It’s not that easy. I’ve done a few Google searches but not a whole lot turns up, to be honest. And that’s a shame because I bet a lot of developers are in the same boat as me.

I’ve been tinkering with themes over the past few weeks and I’ve decided to start releasing some on my site for everyone to use. The themes page will grow over time as I continue to release themes. I’d appreciate any feedback you have. The Aptana Themes page is not only for my themes, they also include some of the best themes I’ve found around the web. If you have a theme you’d like me to put up, send it to me and I’ll do just that.

Anyway, without further ado, I present the Aptana Themes page!

Know What? GameCube is $39 Canadian, new.

Go to Zellers and buy a GameCube. It comes with Paper Mario 2. If you’ve already got one, pick one up for your parents and get them WarioWare used for $15. It’s what I did this weekend and it’s been hella fun at the Rockefeller household this Thanksgiving :) You don’t even need a memory card if your parents are new to games since they’re just getting started anyway.

https://www.youtube.com/watch?v=r7z5QjrAbQg

Response much? 1562 calls per minute to CRTC for do-not-call list on first day.

At that rate, they would have run through every single Canadian in 320 hours.

I’m glad that the CRTC has taken this step. It’s been in works for a long time. It’s not perfect as many have pointed out, but it’s a great start.

For those outside of Canada, the CRTC is the Canadian Radio-television and Telecommunications Commission. They are the Canadian version of the American FCC. Basically they manage the airwaves, give out licenses to broadcast, that type of thing.

If you are Canadian and haven’t added yourself to the Federal Do-Not-Call list yet, you can do so by visiting this website. Please note that because of the torrent of traffic visiting the site, it may be unavailable for a while.

I was able to get one telephone number into the system then it sent me to an error page.

Good luck!

Mandriva 2009.0 Is Almost Here!

The newest version of Mandriva is almost here! Released just a few days ago, the second release candidate of Mandriva includes the long awaited switch to KDE4. A release candidate, for those not aware, is the versions of Mandriva (and other software) that are considered nearest to the final cut. Once these final few versions pass with a minimum of bug reports, the software is released in full.

If you’re interested in trying out Mandriva Linux, you should try last season’s stable 2008.1 version. If you’re a current Mandriva user and want to see the latest and greatest (at the risk of system stability), check out 2009.0 RC2.

For more information, check out the DistroWatch page for Mandriva Linux.

Helping The World = The Power of Ideas + Resources

Google has launched a new initiative asking people for ideas on how to help as many people around the world as possible. The project is called “Project 10 to the 100th”. Users submit ideas, which are then reviewed by a small panel of experts. The ones that have the potential to help the most amount of people will have financial resources committed to them by Google.

Google is spending $10 million to help these projects get off the ground.  If you have a great idea that you think may help people lead better lives around the world, you’re encouraged to send it in! While you won’t be receiving a financial reward if your idea is picked, you will sleep well knowing your idea is being made for real and will help those in need.

There are 10 categories to choose from. From the official website:

  • Community: How can we help connect people, build communities and protect unique cultures?
  • Opportunity: How can we help people better provide for themselves and their families?
  • Energy: How can we help move the world toward safe, clean, inexpensive energy?
  • Environment: How can we help promote a cleaner and more sustainable global ecosystem?
  • Health: How can we help individuals lead longer, healthier lives?
  • Education: How can we help more people get more access to better education?
  • Shelter: How can we help ensure that everyone has a safe place to live?
  • Everything else: Sometimes the best ideas don’t fit into any category at all.

Submissions to the project are due October 20th, 2008. For more information, watch this video:

https://www.youtube.com/watch?v=NgSRwOZtDQ8

Links:

Project 10 to the 100
How It Works
Submit Your Idea
Submission Categories
Frequently Asked Questions

Grass-roots open-source gaming console?

Earlier today, I had a thought: What if a few of us got together to develop specs for a PC-based open-source games console that uses a bootable Linux-based game DVD for games?

I blogged about the awesome boot’n’play Linux CD before, but it still relies on someone to burn the disc and reboot their machine. Also, this requires gamers to (unless they have a unique set-up) sit at their desk and look at their computer monitor to play games. Finally, you always hope that the bootable disc supports your graphics or sound hardware.

Why can’t we put together some specs for a cheap gaming PC in a mini-atx case, include a TV-out card that has composite, S-Video, and Component output, and offer downloadable ISO game-packs from a website. The system can have a hard disk or can save the games to a USB memory card.

The goal is to make the gaming system as easy to use as, say, a GameCube.

Download the ISO, burn the disc, put it in the console and play.

We’re already half there — the games console could easily use the boot’n’play Linux CD I spoke about earlier. It kind of makes you wonder why this hasn’t been done already?

Need a Color Picker? Try Nattyware’s Pixie.

This thing is really handy. It’s tiny — it only takes up 8k of RAM (which is what’s left over on a typical Vista install :)), it’s loaded with features, and it works as advertised.

If you find yourself wondering what the hex color value of an item on your screen is, this tool will tell you. Simply start the program then hover your cursor over any color to retrieve its hex, HTML, RGB, CYMK, and HSV color values instantly.

Download Pixie now.

Totally Loving Blippr

I found out about a really awesome site this week. It’s called Blippr. It’s basically Twitter but for game, music, movie, and book reviews. You have 160 characters to let the world what you think. It’s really addictive.

After creating a profile, you can link to your Facebook and Twitter accounts so any blips you write will be displayed there. This is great to help build some incoming links and keeps your Twitter fresh, which then pushes your profile page up in the search rankings. For a while there my Blippr profile was showing at the top of search results while searching “Rocky1138” on Google.

If you end up joining, add me as a friend and we’ll see how we stack up against each other in game, music, book, and movie reviews.

Make Firefox 3 look like Google Chrome

One of the best parts of Google Chrome is the theme. It’s simple and attractive. Now you can have that same theme (minus the top-window tab placement) in Firefox 3, thanks to a developer named “falconer”.

Download Chromifox, the Google Chrome theme for Firefox 3.

Update as of 2018-02-13: Extensions such as these are no longer supported by Firefox as it has moved to the new WebExtensions system. If you’re looking for alternatives to your favourite Firefox extensions take a look at this handy article from Digital.com.

Google’s Chrome EULA Fixed (thank heavens!)

Whew, that was a close one! I was worried that everything I’d ever created while using the Google Chrome browser was open for Google to use anywhere they or their partners wanted!

I mean, I love Google. But not that much :)

Regardless, here is the updated section 11 from their EULA:

“11.1 You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services.”

That’s it. Yay! The changes in this updated EULA are retroactive, so everyone can rest easy.

Read about the original End-User License Agreement here.

Remember Pre-CU Star Wars Galaxies fondly? Play it again right now.

Wait, what? There’s a few groups of dedicated people out there committed to the idea of emulating the original Star Wars Galaxies in full pre-Combat Upgrade glory. When I say emulating, I don’t mean some hack-and-slash wannabe game — I mean the original software you used to use to connect to Star Wars Galaxies just like it used to be back in the day. Imagine that.

Here’s how.

#1. Register in the SWGEmu forum to create an SWGEmu user

Head to this forum to create a user and password, which you will use to log into the game.

#2. Install Star Wars Galaxies.

This is the hardest part for most of us because usually one friend somehow ends up with everyone’s discs. Typically it’s me becuase everyone used to LAN this game at my house. If you have your discs, install SWG normally.

#3. Install Launchpad Enhanced.

After installing this program, go into the “Options” menu and set both your “Emu Location” and “Source Location” to be the same directory. This will update your Star Wars Galaxies installation to the PreCU format used by the emulator.

Enhanced SWG Launchpad

#4. Select the SWGEmu Test Center and login!

You can start to play immediately. Just pick a username and password, create a character, and buff. Enjoy!

SWG Screenshot

SWG Screenshot

For even more SWG Emulation information, news, and community discussion, head over to the Galaxies Reborn forums!

Ways to Make Google Chrome Even Better

If you’re on top of technology news, you’ve no doubt heard of Google Chrome. Recently released by Google to the happiness of geeks and internet surfers everywhere, this browser has the attributes of a real winner. Chrome is fast, intuitive, efficient, and unintrusive. I love it.

That being said, there are a number of things that could be done to improve the product and user experience, especially for Web Developers. These are in no particular order.

#1. “Open image in new tab” is not as good as the “View Image” function in Firefox.

About 5 to 10 times a day I right-click on an image and select “View Image” in Firefox. It’s a handy feature that seems to have been superseded by the “Open image in new tab” function in Chrome. If this functionality is to become the mainstay then I request that when you open an image in a new tab that the focus shifts to that new tab automatically. That way I can just close it when I’m done.

#2. (and for some this is a deal-breaker) The EULA.

Update: As of 09-04-2008 this has been remedied.

Who in their right mind wrote this thing? Because I used Google Chrome to write this very blog post does that now mean that this post can be used by Google or any of its corporate friends anywhere they want? Rubbish!

From the End User License Agreement:

“11.1 You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services. By submitting, posting or displaying the content you give Google a perpetual, irrevocable, worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute any Content which you submit, post or display on or through, the Services. This license is for the sole purpose of enabling Google to display, distribute and promote the Services and may be revoked for certain Services as defined in the Additional Terms of those Services.

11.2 You agree that this license includes a right for Google to make such Content available to other companies, organizations or individuals with whom Google has relationships for the provision of syndicated services, and to use such Content in connection with the provision of those services.

11.3 You understand that Google, in performing the required technical steps to provide the Services to our users, may (a) transmit or distribute your Content over various public networks and in various media; and (b) make such changes to your Content as are necessary to conform and adapt that Content to the technical requirements of connecting networks, devices, services or media. You agree that this license shall permit Google to take these actions.”

How do you all feel about that?

For those that are interested, the full EULA is available here: http://www.google.com/chrome/eula.html

#3. What’s my Pagerank?

After installing SearchStatus in Firefox I’ve become addicted to knowing what my Pagerank is for each page on my site. It’s really, really handy. Since this product is directly from Google, I figured it would include an option to show you the PageRank of every site you visit. But it doesn’t.

#4. Inspect Element on Hover

If you right-click anywhere on a webpage you are able to inspect the element located under your cursor. This is handy and works well, but after using Firebug and the Web Developer Extension for Firefox, I’ve become accustomed to this information being available dynamically on whatever element I hover my mouse over. As you hover your mouse over any element on a page with these extensions enabled, the information updates in real-time. It’d be nice to see that as well in this browser.

These are just first impressions, I’m interested in hearing how the rest of you feel about this shiny new browser from Google. Are there any features that you wish were included?

Games I Would Remake

In light of the recent release of the Quest for Glory 2 Remake , I wanted to do an “If I had a ton of money… I would make/remake these games” post. These are games that mean something to me — they have either touched my life in some way or I always thought they were overlooked by the gaming masses. Sometimes because of a glaring design flaw, sometimes because the technology just wasn’t there. Regardless, here’s the list (and it’s by no means final).

#1. Shenmue 1 thru 3 in one giant game.

Shenmue epitomized the Sega Dreamcast. Years ahead of its time, yet somehow not quite technically capable of doing what it set out to achieve. This epic game featured neat novelties such as being able to pick up and examine pretty much anything — even completely useless matchboxes. An intriguing story marred by awkward yet unintentionally funny dialog, this game is a good candidate for a new as yet unavailable virtual reality technology.  Imagine playing this game with full, modern graphics and a 3D headset!

#2. Syndicate

For a long time when I was in public school this was my favorite game for the Atari Jaguar. I loved the idea, the music, and the game-play.  I played Syndicate Wars and it was awesome, as well. I’d really like to see a sequel made with today’s graphics.

#3. Bonk’s Adventure

If game developers nowadays took almost any old-school platform game and converted it to 2.5D, it’d be a much more fun world for all of us. Bonk’s Adventure, in my opinion, would be near the top of the list of games to re-do in glorious 2.5D. In all honesty, I could see a remake of this game appearing on the Wii for today’s kids to play. Good stuff.

#4. Road Rash – 3DO/Saturn/PSX version

This game was hella fun in its day. It still is.  Where are games like this today?

#5. Transport Tycoon Deluxe / Locomotion

I know, I know. Locomotion is relatively new and it’s the spiritual successor to Transport Tycoon. But, what I’m envisioning is a huge graphical upgrade to the series along with networked play via the internet. Imagine a persistent MMO universe version of this game where players are continuing to build while you’re offline. A humongous world-size playfield: 30,000km with thousands of cities and villages. Perhaps that’s something for the creators of games like Second Life to think about. Instead of taking Transport Tycoon Deluxe and making it part of a persistent world, why don’t they make transportation a user-driven economy in large-scale persistent-world online social games? It’s more fun than chatting!

Help the world: Run BOINC

BOINC Logo
BOINC Logo

What is your computer doing most of the day? Chances are, not much. Sure you’re editing a document or checking your E-Mail but is that really utilizing your computer’s full potential? Unless your computer is 10 years old, probably not!

So, what to do with all of this extra horsepower that’s just sitting there? Donate it to science!

The Berkeley Open Infrastructure for Network Computing or BOINC is a project that takes advantage of the untapped computing power of ordinary desktop computers and puts it to good use by participating in projects such as finding a cure for cancer, the search for extra-terrestrial intelligence, and fighting AIDS.

You can specify the program to run all the time like I do, but out of the box it runs only as a screensaver, which means that it will not make your computer slow and only is used when your computer is free. Having the program run full-time is a good option when your computer has more than one processor core (a dual-core or quad-core computer in most cases).

Over 500,000 computers worldwide work together to create a networked suptercomputer using distributed computing to solve some of the world’s problems.

After downloading the program to your computer and installing it you are asked to join a “project”. There are many projects that take advantage of the extensive network of desktop, servers, and super computers running the BOINC program. The ones mentioned before are just 3 of the many available to you.

An up-to-date list of the projects you can join.

I am, at the moment, associated with several projects including World Community Grid, SETI@Home, Rosetta@home, and Einstein@home.

For every bit of work you do as a BOINC user, you gain credits.  You, your team (if you choose to join one [Go Team Canada!]), and your country receive credits based on your work completed.

Rocky1138's BOINC statistics
Rocky1138’s BOINC statistics

Using BOINC is a fun way to take advantage of an idle computer. You can help out scientists all over the world across a wide array of projects. From aliens to sudoku puzzles, BOINC computes them all with lightning speed.

Sign up for free today!

The Optimistic Programmer

Recently in the world of programming blogs there has been a string of articles by disenfranchised developers bemoaning their current work environment in a sarcastic and ultimately unproductive manner. I understand and appreciate sarcasm and tongue-in-cheek humor but what I have seen lately goes above and beyond simple satire to a new level of pessimism that in the end is more about self-serving venting than anything enjoyable to read or to learn from.

At first I shrugged off the first article, which was a negative play on a post I made last week, thinking that perhaps the writer had a bad day and was simply going a bit over-the-top. But then another post by a different author came up on DZone in the same light. And then another.

I then started to wonder why there was this growing trend into negative venting blog posts, where their only function is to belittle other peoples’ efforts and cause as much controversy as possible surrounding that subject.

When I started this blog I made a choice: I wanted to prepare and post articles that people could read and learn from or to be more realistic, to offer them alternative channels of thought so that they can continue their research until they find the solution they require.  I have made a personal choice to be an optimistic programmer, meaning I understand that while there will be times that I am incorrect or times where my example code was not the most efficient it is more important to accept that and learn to grown from it, moving onwards and upwards, than it is to be negative and post with the only intentions being to vent and complain without offering any sort of solution or assistance.

There have always been trolls on the internet. There always will be. The best thing I believe we can do as bloggers is to call it what it is and try to be above it by taking the good points of a negative experience and growing from it, not brooding over it.

UPDATE: Since posting this I have received E-Mails concering the troll label I have applied to these posts. Specifically to the first and last links. While I still disagree with the method of complaining or venting with no solutions presented, I have mistakenly grouped what the authors wanted to be humorous posts in with the negativity I was seeing at the outset. Perhaps troll was a bit harsh. I apologize :)

What Makes a Videogame Fun?

There are several important things that I feel are absolutely required when creating a fun videogame. Fun means so many things to so many people, but for the purpose of this article fun will be defined as a high level of enjoyment obtained by the player as a result of playing the game.

A lot of people look for things like graphics when playing a game. Some people could care less. For some it’s the music, for others, the story. I believe there are several factors that contribute to the fun level of a game and that the fun level is controlled both by how important those factors are to the player and how much of that factor is available in the game itself.

Let’s walk through the eight factors I believe contribute to a fun game. These factors are just that — factors. Think of them as a health bar. Depending on the game, the bar may be full for certain factors or completely empty for others. Rest assured, however, that having a full bar in each of these eight points will increase the liklihood your game will be fun.

The eight “fun” factors:

  1. Graphical Relativity
  2. Ease of controls
  3. Music
  4. Multiplayer capability
  5. Story & characters
  6. Replayability
  7. Nostalgia
  8. Innovation & Novelty

Let’s walk through each of them in detail.

#1. Graphical Relativity

You may notice that on this list I have omitted “graphical quality” and instead written Graphical Relativity. This is because over time I have noticed that the games that are the most fun to the most people are the ones that have graphics that match the game’s premise perfectly rather than overall graphic quality. This is blasphemy to the people with the latest and greatest PC or console hardware, but I believe it to be the truth.

As examples, I cite World of Warcraft, Team Fortress 2, and Tetris. All three of these games have graphics that are not state of the art but all are insanely fun. And popular. They all have staying power as well. For each of these games, the graphics are not the selling point nor are they a point of contention in the gaming industry at large. In these cases, the graphics fit. And that’s the point. It’s not the latest and greatest graphics that matter, it’s if the graphics fit the game.

Try to think of other games that are fun that fit this as well. Games like Crazy Taxi or Street Fighter 2. Can you think of any games where this isn’t the case? If so, are you sure that it was the graphical quality that made the game fun?

#2. Ease of Controls

The Sims was more fun than The Sims 2. On paper, The Sims 2 was a better and deeper game. Why is it that I could stay up all night playing The Sims but couldn’t spend more than an hour playing The Sims 2? Simple — the controls.

The controls for The Sims were intuitive and worked flawlessly. The controls for The Sims 2 were horrendous. That’s not the fault of the game itself, though, or its designers. The reason The Sims 2’s controls were poor was the move to 3D is in itself very difficult for game developers. How does one control a 3D camera without an extensive control scheme? Without some new form of hardware, doing this intuitively with a mouse may be impossible.

#3. Music

This factor is not one that many people think of when describing a videogame. Sure there are examples you’re probably thinking of right now. Zelda, Mario, Final Fantasy… But, isn’t that the point? Why are all of the best and most fun games the ones with the best music?

Something to chew on.

#4. Multiplayer Capability

The ability to play against other players (when done correctly) will (depending on gametype) immediately increase the fun level of your game. Some games even require it. Consider the following example: Super Mario Kart for the SNES. Super Mario Kart without the ability to play against friends would be a completely different (and ultimtely boring) game.

Most gametypes benefit from multiplayer capability, but for others it is almost better to be without it. For example, Morrowind as a multiplayer game would not be Morrowind. For better or for worse, the Morrowind we know and love would not exist in multiplayer. Considering that it’s my favorite game, that would suck and I wouldn’t change a thing. I would be open to a completely separate multiplayer Elder Scrolls game, however.)

#5. Story & Characters

The story and characters used in the game, no matter the gametype, lend to its fun value. As in multiplayer capability, some games require deeper characters than others. But, who says a football game can’t have character development?

Put simply: The more relevant your characters are to your gametype, the more likely your game is to be fun.

For example: Duke Nukem. As a platformer (and later as a 3D game), Duke Nukem is what made the Duke Nukem game series. A Duke Nukem game without Duke is Crystal Caves. Exactly.

#6. Replayability

I believe the desire to replay a game comes from two factors: The desire to enjoy important emotional impacts the game had the first time around and the opportunity for having the gameplay change from the first time you played.

To exemplify the first desire, Final Fantasy VII comes to mind. The game is inherently linear in design. You start in Midgar and end in.. well. I don’t want to spoil it. But, players will replay this game years later to enjoy the deep emotional impact they had while traversing the story the first time, not because they may be able to change the plot.

As for the second desire: This is common in competition-based games. I again call upon Team Fortress 2. Even if you played 1,000 games of pl_goldrush, it’s unlikely that you will have the same things happen twice. This sort of unpredictability is key to increasing the game’s replayability factor.

#7. Nostalgia

This factor is similar to replayability in that you are replaying a game because it brings back memories of what it was like the first time (or another memorable time when you were playing). There are two ways you can take advantage of nostalgia when developing a game.

If your game is new: Pay homage to similar games that inspired you to create your game. If you are making an adventure game, put some references to Quest for Glory or King’s Quest in there. People will associate your game with games they have enjoyed in the past and by reference will enjoy your game because of it.

If your game is a sequel: Take the best parts of the original game and make them shine. Don’t “improve” them as that invariably changes them. By changing the things that made your original game great, you run the risk of alienating people who are playing your sequel because they loved those things. What you want to do is accentuate those selling points.

Compare stealing equipment and items in Morrowind to Oblivion. Oblivion undoubtedly has a deeper and more realistic stealing mechanism when dealing with items and people in the game. However, there are several key things that were changed that makes stealing a waste of time, thereby ruining something that made Morrowind great. Namely, the fact that you cannot place items somewhere and return to them later unless you buy a specific house and the fact that no one has anything good to steal unless you’re at the highest character level, by which point you are done the game.

#8. Innovation & Novelty

Innovation is grouped with novelty since in the gaming world they are the same thing. When Nintendo goes to make the Wii 2, how many people will be excited that they use a remote control with a motion sensor?

However, the first time around this sort of thing can open doors and bring fresh people in. Being able to play games like Doom and Duke3D over local networks in schools and at home was a novelty (though it had of course been done before, it really was the first time I had experienced it myself). Think of when Pong was first introduced. They single-handedly created the arcade industry.

So, what have we learned?

Clearly having a healthy balance of all of these fun factors helps to make a videogame fun. It’s important to not rely on having a large amount in one of the items then neglecting the rest, as that game will be remembered as not being fun but having feature X. The goal is to focus on fun. Fun sells. Fun builds franchises. Fun builds memories.

Thoughts?

Great Music to Program To

Here’s a list of the top places I get my music, which I develop to:

1. Nectarine Demoscene Radio (http://www.nectarine.fr)

If you’ve ever watched a cracktro, and intro, or a demo, you know exactly what this is all about: the Demoscene!

2. Rainwave.cc Videogame Music Radio (http://www.rainwave.cc)

There are quite a few video game stations around the net but none offer the quality of music that Rainwave does. Each user can vote for songs as well as create an account that tracks all kinds of neat things. Definitely a hidden gem of the internet.

3. Modarchive – The internet’s largest collection of music modules (http://modarchive.org)

Many of you may not be familiar with the file formats that this website provides. WinAMP will play all of them, though. Give it a try. Music modules are similar to MIDI music in that they contain the electronic “sheet music” of the music inside them, but they also go a step further and include samples of each of the instruments used in the music. This was very helpful at a time when home computers could not handle large compressed audio (such as MP3) and MIDI quality was poor.

4. Demoscene.tv – streaming video of demos (http://www.demoscene.tv)

Though it seems a bit of a waste to stream video but only listen to the audio, this site really shines if you have a second monitor that you blast this site’s streams on fullscreen. Great graphics, fast streams. Perfect for programming.

5. Kohina – Old School game and demo music (http://www.kohina.org)

Kohina is a good station that plays tracks not found or often played on other stations. For this, it’s not a regular on my speakers. But, it is nice to sometimes leave the beaten path and explore some new sounds.

6. Digitally Imported – di.fm (http://www.di.fm)

Digitally imported is one of the largest streaming radio sites on the internet today. They have a ton of different stations ranging from Trance (my favorite) to things like Ambient and Chillout (also good). Plus, they offer high-quality streams for only $4.95 / month.

I’m always on the lookout for more internet radio stations or demo/videogame music sites. Does anyone have any not listed here? Please tell me!

The 5 Best Things About Being A Developer

I was at work today and had a few of these happen. Because of that, I was inspired to write this post. These things happen to programmers young and old, novice or expert. Here’s the list.

1. Writing code that works the first time

Oh sure. All of us write flawless code, right? There’s just something that feels great about writing a sizeable portion of code and then having it do exactly what you wanted straight away. Especially if you’re newer with a certain language. Confidence++.

2. Finishing a Project

Starting a project is exciting. Finishing is ethereal. My typical work method is based on doing all of the hard work first, thereby eliminating any unintended delays before launch. Unfortunately this means that the last 10% of any project is the most tedious and dreary as it’s filled with things like pixel-hunting or resizing images. Once the last few lines of code are written and tested, life is bliss.

3. Optimization / Refactoring / Reducing # of Lines of Code

Few things in development are as good as the feeling you get when you took that 4x nested for-loop with its switches and if blocks and converted it into a simple, 5-line function. It’s why I get up in the morning. OK maybe not that exciting, but still.

Optimization may not be the best description for this, but in a way it is a sort of optimization of how efficiently your code works.

4. Seeing Marketing For a Product You Worked On

I smile every time I visit my parents as there is a very large billboard advertising a site that I had a part in developing. I know that nowhere on the sign it says my name and that no one even knows I worked on it, but inside I feel good that someone, somewhere is finding something I helped to create useful.

Another example of this would be seeing people play a videogame you created or hearing your song on the radio (if you were a musician).

And, finally:

5. Learning Something New and Useful

I try to make it a point that every day I learn something new and useful to make my work better, faster, and more efficient. I say “new and useful” since new isn’t always better than old. Especially with computers and software.

Whether it’s some new Linux commands (split and cat for me a few weeks ago) or a big jump like using source control, making yourself and your team better at what you do is what it’s all about.

HTML Input Forms – Sending in a List to ColdFusion

HTML + ColdFusion Lists

This post is a continuation of a previous article I wrote about sending in an array through HTML to your php script. This article deals with doing a similar thing except using ColdFusion. If you are new to the subject, it is highly recommended that you read the first article.

Though newer versions of ColdFusion offer support for arrays, earlier versions were centered instead around using lists. Because of this fact, this example will detail how to send a list into ColdFusion then loop over that list, allowing you you to perform whatever actions you need to do in your HTML form.

The Code

<form method="post" action="">
  <p>Enter your friend's names (first, last):</p>
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input maxlength="30" name="friend" size="30" type="text" />
  <input type="submit" value="Submit" />

</form>

<cfif isDefined("Form.friend")>
  <cfloop index="ListElement" list=#Form.friend#>
     <cfoutput>#ListElement#</cfoutput>
     <!--- Do something with this value --->
     </cfloop>
  </cfif>
 

How It Works

Because all of the <input> elements in the form have the same “name” value, your ColdFusion server will create a list variable called #Form.name# that you will be able to loop through and perform actions on each of the elements.

A handy feature of ColdFusion is that when it creates the list it doesn’t matter if your user enters data only in one of the boxes or only the last one. The list is put together for you of valid inputs from the user. Using this method, you don’t need to check to make sure the value isn’t blank!

Have fun!