/* attempt to deal with prototype, bootstrap, jquery conflicts */ /* for dropdown menus */

Jump to content

Recent Entries

Recent Comments

Fortress of Solitude

4: Adsense

V5 UI WIP: Events/Calendar

Some more V5 UI progress. The idea is to combine all the "calendar" type information we currently posses - events, contests, performances (stuff like Video Games Live), conferences - in a single grid, but allow you to filter which types of data to display. The three months ahead and past are directly accessible for quick access; beyond that you can also use the spinners.

When you click on a day in the calendar, but not on any of the events, a semi-transparent widget will appear that allows you to (attempt to) add a new event - click the plus sign. Or something. I haven't fully worked out the interaction model here. Feedback welcome. Usual disclaimers about color and this just being a layout test.

For anyone who cares, I'll create a master sheet after we've worked out the kinks on all the pages that share the same template. This master sheet will lock in default proportions, etc.

V5 UI directions: Advertising page

This was supposed to show up yesterday, but I finally discovered that I don't like OS X's default mouse acceleration - apparently an exceedingly common problem that Apple has chosen to bury any and all UI for correcting. I'm evaluating alternatives to fix it.

In the meantime, here's a work-in-progress mockup of the advertising page. I had to wait to get back to the office and good old Windows to build this; I'm starting to get the hang of Fireworks, and the final version should be much better. Again, this is just layout; the colors are NOT representative of design direction. I will follow this post up within a day or two with the finished version, still grayscale.

An idea I'm toying with is making direct buys much, much easier. Visit our advertising page, upload your creatives, specify the durations you want, provide your account/payment info and wait for approval. The rounded boxes that read "Upload Asset" would be nicely AJAX-ified forms that you click in and get the file browser and can upload in-page, but it would be nice if they could also support drag and drop events. We'll see. Some of you might remember when Ethereal Darkness Interactive purchased ads on GameDev in support of the release of Morning's Wrath; this would have made it a snap for both parties (because we wouldn't have needed to process a manual transaction, nor would we need to manually insert their buys into the inventory, which is what I think happened then).

Anyway, feedback welcome. I'll be finishing this page up and then moving on to the Events calendar, which I think you will all really enjoy. [smile]

New updates forthcoming

Honest, I promise. I've been distracted coming to grips with the OpenGL state machine, specifying transformations in reverse order and doing it all from Python (with two different approaches, depending on whether you write a PyOpenGL sample or use GL via Pyglet).

Oh, yeah, and I'm learning Illustrator and Fireworks in-between. (Fireworks is clever; it manages to add layers, pages, slices and symbols, among other features, to PNGs that show up as simple images in other editors/viewers. It's amazing.)

But there will be an update before the week is out, and I should have mocked up all non-user pages by the end of the month.

Where can you see lions...?

Unrelated to either of my projects. I was doodling in the office (yes, on an IBM notepad - I got it at GDC last year, I think) and trying to come up with some ideas for a personal logo. I like lions. And Google Image Search is still awesome. [smile]

More homepage

We're hoping to provide customizable layouts, so this "stock" design is what you'd see if you haven't logged in or are just visiting. Once you've logged in, you'll be able to rearrange columns and move/remove widgets.

The greyed-out text in the upper-right (Events, Spotlight and Sign Out) are actually tab labels. I'm thinking of using the :hover pseudo-selector to indicate the tab outlines once your mouse cursor moves into the area.

The Recent Forum Posts area will extract the first non-quote sentence from the latest post, to give more context. I just got tired and didn't render it.

I am particularly interested to know if people prefer this approach to features or the one from the previous post. Thanks!

Thinking out loud about V5 UI...

What, you thought I'd let Superpig have all the glory?
Click for full-size version

Please note, this is very, very, very preliminary stuff that I haven't even run by ops, so don't look at it as definitive forward direction. I just think it's a good idea to get as much community feedback on the process as possible.

Time and Motivation

Many beginners - not absolute beginners, but beginners still - ask questions pertaining to finding time and the motivation to stick with a project with large scope. There are a variety of non-answer responses, such as, "You should write smaller programs," or "Break it up into smaller parts, then treat each part as a project so that you get to complete several in turn." Those are useful bits of advice, but they don't answer the question.

So what's the answer to the question? You make it.

I'm a professional software developer. My day job might be killing me - this past week I had days of 9 am to 2 am and 10 am to 4 am - so I inherently don't have a lot of spare time, particularly not to devote to another programming project. I have a girlfriend, and I have to spend time with her. So when do I work on this resource?

I try to do things like program on the subway train, when coming back from work. (I can't do it when going, usually, because I go with my girlfriend, and the train is packed so I'm standing; balancing a laptop in my hands sufficiently to type while avoiding falling due to the train's movement... not my style.) Sometimes I'm too burnt out after work, so it has to wait until I'm rested, or late at night. And sometimes it goes several days, or over a week. On previous projects I've gone weeks without touching code. And my subway downtime is a peculiarity of those who live in large cities with developed public transit systems - a rarity in the USA.

The truth about when I code for this project? At work. I keep the project window open all day, and whenever I've got some time to spare, I throw in some code. I may not necessarily build - having a manager walk by and see a game of Pong on your screen is far more troubling than seeing you peering at an IDE - but I'll prototype and use the interactive shell to evaluate various conditions. I can also read up on documentation I need to implement a feature, and maybe even write a small snippet. I can work on non-visual aspects, like when I wrote the 2d vector type at the office.

If you want to do something bad enough, you'll make the time. Just remember to be fair: don't cheat your employer by falling behind on your assigned tasks. That's cheating yourself, too, by lowering your reputation.

As for motivation, I guess I really can't speak to that. I've been doing this so consistently for so long - I've tried to walk away from programming and games and technology at least twice, and failed. This is my life. People who ask about motivation may simply be in the wrong career. If you don't have a passion for this, then look around for something you do have a passion for.

What have your experiences been?

Tomorrow - today, now - I get the day off. I have errands to run, of course, and I'll check in on work stuff, but I should be able to use some of the time to get some code written. In between watching all those foreign DVDs I rented. Hmm... foreign means I have to read the dialog. Bummer!

The Progression Paradox, or Getting Ahead of Ourse

Learning resources identify a problem/challenge and then supply methodologies, techniques, best practices, rules of thumb and whatnot for avoiding/overcoming/solving it. The nature of the problem can vary from fatal - the program doesn't run, for example - to structural - the program is hard to maintain and extend - and so on. The one is obvious to all; the other, in this case, is meaningful only to those sufficiently advanced to have encountered it.

When writing a learning resource suitable for complete beginners, then, how do you address the challenge of presenting a technique or practice that solves a problem the student has not yet encountered? This is why most introductory C++ texts read so horribly; using inheritance to solve the "problem" of making different mammals "speak" is meaningless because most beginners aren't interested in that issue (and probably never would be, if it weren't for classes/textbooks). Similarly, refactoring x- and y-axis velocities into a single vector type is meaningless to beginners because they haven't experienced the downsides of not doing so yet.

How do you present a good practice like refactoring without getting ahead of your audience?