Project Frontier #16: Interface’d

By Shamus Posted Wednesday Jul 13, 2011

Filed under: Programming 87 comments

I need something handy that will let me change program options without needing to compile. Right now I have everything bound to mysterious and unexplained hotkeys. There are enough of these that I’m getting confused. Hotkeys are great for turning things on and off, but terrible for fine-tuning options. It looks like I need some sort of interface for my program.

This computer interface is notable for the upper-arm and back conditioning required to use it. The upside is that, if it’s adopted, Photoshop artists will eventually look like bodybuilders.
This computer interface is notable for the upper-arm and back conditioning required to use it. The upside is that, if it’s adopted, Photoshop artists will eventually look like bodybuilders.

Now, I’m always banging on about how libraries should be as focused and unencumbered as possible, how you shouldn’t need to go on a multi-stage fetch quest to get the thing to compile like you were trying to assemble the pieces of the Tri-Force or something. The problem is, there is pretty much no way around this. Interfaces need to use fonts, and fonts are fiendishly complex beasts. Interfaces need to render stuff, and rendering is complicated. They need to process keyboard and mouse input, and those are complicated. (It seems simple, but tracking keyboards and mouse wheels and all the different things that can happen with the CTRL, ALT, and NUMPAD… it gets very hairy.) That’s a lot of things for one library to do, on top of running a window system with buttons and scrollbars and the ability to tab between interface elements and all of the other tiny details that we all take for granted.

Still, the inability to adjust options is really killing my productivity. So let’s see what we can find.

Continue reading ⟩⟩ “Project Frontier #16: Interface’d”

 


 

Spoiler Warning S5E38:A Chauncy Proposition

By Shamus Posted Tuesday Jul 12, 2011

Filed under: Spoiler Warning 68 comments

I’ll bet you guys forgot this show existed.


Link (YouTube)

Where did Mortimer and Marjorie go? Why did SOME of the White Glove Society attack us? Why didn’t Josh kill the cook the moment he opened his mouth? Why didn’t we crash when talking to Chauncy? How exactly ARE you supposed to do this quest so you don’t end up killing everything in the building?

These are all things which must be added to the long list of Stuff That Confuses Me.

 


 

Project Frontier #15: Devil of a Problem

By Shamus Posted Tuesday Jul 12, 2011

Filed under: Programming 125 comments

One of the things I like about this project is that it is uncluttered by goofy, awkwardly-designed libraries. Sure, I could have grabbed some existing code for loading 3D files or animating figures, but I still would have been faced with the problem of getting them all to work together with my program. It’s possible that I might have saved time, but it’s also possible that I would have spent those four days pulling my hair out and solving strange dependency issues and going on fetch quests to get all the stuff it requires, only to discover that it didn’t work properly. Then I would have had the problem I feared: A huge, complex system that doesn’t work and no idea how to fix it.

And even if it did work, I wouldn’t really want to have an extra ten modules cluttering up my program, with thousands of lines of foreign (to me) code, the bulk of which I’ll never need or use, all in the name of saving me a day of work. There’s a trade-off at work here (like there always is) where you exchange compactness, elegance, and maintainability for time. At some point it becomes worth it, but I always advise caution when integrating foreign code. Even if the other library was made by someone smarter and more experienced than myself, the truth remains that they didn’t design their code with my project in mind.

Worse, when integrating external libraries like this there’s always the chance you’ll spend the time and end up with nothing. (Although, I think my professional experience has improved my ability to spot the packages likely to become duds and time-sinks. In fact, yesterday’s post touched on that: Look at the interface of a library. If it’s cluttered, obtuse, verbose, and confusing to use, you should be extremely reluctant to add it to your project, even if it solves critical problems. Right now, you only have one problem. Don’t trade it for six others.

Hang on a second. I feel like I’ve done this rant before…

Continue reading ⟩⟩ “Project Frontier #15: Devil of a Problem”

 


 

Learning to Program vs. Learning to Write Software

By Shamus Posted Monday Jul 11, 2011

Filed under: Programming 251 comments

There’s a book called Teach Yourself C++ in 21 Days, which can be read for free online if you have the inclination. When people have come to me asking for suggestions about where to begin with C++, that’s usually where I send them. Looking back, I’m not sure that was the best move. Although, I don’t really know where else to send them. College maybe? That’s an excruciatingly expensive and time-consuming way to learn, and probably not a good choice for the curious person looking to test the waters. Even that might be a bad idea. A lot of people seem to read books and take courses and emerge on the other side having no idea how to make useful software.

Imagine a book titled, “Become a novelist in 21 days.” There’s also a college course that purports to teach you novel-writing skills. Inside, you will be instructed in grammar, spelling, punctuation, proper capitalization, and page formatting. Afterward, you march out into the wide world calling yourself a “novelist”. I mean, that’s what writing a novel is, right? Putting words together? And you totally know how to do that. You got an A and everything.

I’ll admit I’ve never seen the inside of a university as a student, and I’ll freely admit Ive got shameful gaps in my knowledge as a self-taught coder. But the way C++ is taught seems to have the most alarming omissions. For example, I know people supposedly educated in C/C++ who have never had to:

Continue reading ⟩⟩ “Learning to Program vs. Learning to Write Software”

 


 

Blip.Tv & Producers

By Shamus Posted Sunday Jul 10, 2011

Filed under: Rants 77 comments

splash_tv.jpg

I was planning on going back to Blip.Tv after a few weeks and re-visit the service, but there’s one point about my original tirade that’s been eating away at me. I want to set the record straight, and I don’t want to wait a few weeks to do it. While the over-saturation of ads on Blip was really aggravating, it wasn’t at all fair to heap the blame on them the way I did. We talked about this in the comments, but I want give this correction its own post where everyone can see it.

Continue reading ⟩⟩ “Blip.Tv & Producers”

 


 

Hitman: How to (Pretend to) Kill the (Fake)(Vice) President

By Shamus Posted Friday Jul 8, 2011

Filed under: Spoiler Warning 86 comments

The old saying is, “If you can’t play golf well, learn to enjoy playing it poorly. ” Substitute “golf” with “murder hundreds of people”, and you have Rutskarn’s Hitman series.


Link (YouTube)

“Oh God! Oh God, what have I done!?!?!”

“Somebody, eventually has to go to this bathroom.”

“Yeah, I’m not seeing a whole lot of compelling reasons not to kill that dude.”

“Damnit, I didn’t want THAT one. I wanted the naked one.”

 


 

Project Frontier #14: Import Models

By Shamus Posted Wednesday Jul 6, 2011

Filed under: Programming 166 comments

So I have an animation system that works. I also have a system to import animations from bvh files. Now all I need is a figure to animate.

frontier13_2.jpg

I have a look at the various file formats available to Blender. There aren’t many. (The previous version of Blender had a LOT more file formats, but I didn’t know about that when I was working on this.) The Direct X format, creatively named “X”, is a likely candidate.

I would like to meet the guy who chose the name “X” for their file format, so I can thank him with a surprise elbow to the face. Do you know what a pain in the ass it is trying to search for information on “.X files”? I want to know about the file format, and most search results are focused on Mulder and Scully. Even when you search for “.X 3D file format”, you’re still going to find your results sprinkled with stuff about the Smoking Man and aliens.

Still, you can go a long way to figuring out X files (see?) by just reading the file itself. It’s a parser’s dream: A unique word (like “Mesh” or “MeshMaterialList”) marks each part of the file. Then there’s a number, saying how many things it’s about to list for you. Then it lists them. Example:

Continue reading ⟩⟩ “Project Frontier #14: Import Models”