Tag Archives: Software

Uncategorized

IBDAP

In my journey to ARM mastery, I’ve been interested in SWD as a way to program, control and debug an embedded ARM core. Due to my obsession with cheap boards and open source, finding a satisfying solution to my SWD connectivity needs has been a journey in itself.

There are commercial SWD interfaces available, like ST-LINK and JLink. But those aren’t open source. You can get cheap JLink clones from China, but those appear to just use stolen firmware images from the JLink products. This interface, with open source firmware, seemed promising, especially since I could get a firmware binary running on a cheap VCC-GND STM32 board I had around. But since I couldn’t build the source without the Keil tools, and the free version of the Keil tools didn’t seem to work, and the free version of the Keil tools is not open source, my hunt continued.

Whereupon I landed at IBDAP. Someone had taken the same journey and decided to market a board and GCC/makefile-compatible open source firmware, using the CMSIS-DAP standard that is itself an open product of ARM. Very cool. The only downside being that Armstart is sorta out of business. I ordered what may be the last IBDAP board they sell, because after I bought it, everything on their site was marked as sold out. It took a bit of (email) arm-twisting to get them to ship me the board. But, it arrived, I was able to build the firmware (flashing it using another SWD interface), and I’ve connected to a couple boards through it with apparent ease. I may have finally now reached a point in my journey where I can release my obsession with open SWD.

The board may be found at other places, like Adafruit.

In case the Github link disappears, here’s an IBDAP fork. Here’s the firmware I built most recently, as a check for your build/board. Below are some documentation resources.

user manual, schematic.

General

Backups are good

If you’re a go-go guy like me, you don’t want to have to spend a quarter-second between keystrokes to realize that you’ve accidentally selected five hundred files instead of just two before you hit that delete key. Backups to the rescue. That and ntfsundelete, which helps you get the handful of files that were modified since the backup yesterday. Because you deleted these files 2 minutes, literally, before the next backup VSS snapshot was to be created.

General

Neurons abuzz

Hmmm, it’s pretty interesting to me how my brain works sometimes.

Tonight as I was walking home from the grocery store, not particularly thinking about work, it popped into my mind: infinite loop! If a certain event happens tonight, there’ll be an infinite loop that will fill up the disk, which sucks a bunch on a remote machine because you might not be able to log in at that point to clean it up, and I’d have to have tech support clean it up and reboot it, and the pilot starts tomorrow.

Fixed that before the event happened, but only thanks to the fact that somewhere in my brain, there was a simulation running of two servlets on two machines reacting to a nightly automatic event…

General

Temporological

Not many hits come up in search engines for the word ‘temporological’. Nothing like ‘psychophysiological’, for example.

But I did think of a reason to make such a compound today. I was thinking about how in software code*, for a given ‘location’ in the code (line number, basic block, etc.), there are a set of temporal and logical conditions that hold there. For example, “after this line in this block, the Person object has been created and all its fields are null”.

I’m kinda fascinated by that aspect of programming, but I can’t explain precisely why yet…

* I normally wouldn’t use a weird phrase like “software code”, but I didn’t want to say just “code”, and I didn’t want to say just “software”. Huh.

General

The Annoying Valley

OK, you probably know about ‘the uncanny valley’ (maybe start at the Wikipedia article if you don’t), but do you know about ‘the annoying valley’? If you’ve played a video game in the last bunch of years, I’m sure you do.

In an effort to make their AI players more human-like, a lot of game developers add little human touches, like a character saying something to you in a specific situation. But what’s a pain is that they often say the _exact_ same thing in the _exact_ same way (basically, the same sampled audio) in the same situations. Such that you hear it possibly dozens or hundreds of times in the course of normal gameplay. This is annoying, this is the annoying valley.

Some sounds in a game you expect to repeat exactly or nearly exactly, because they would in real life. But humans are so rarely that boring, so the fact that it’s supposed to be a human reaction just makes the annoyance level skyrocket. I suppose you could call that a personal problem, and I certainly understand the relative difficulty of making human speech/animation that sounds/looks good _and_ has lots of natural-seeming variability, but still…

General

TV firmware

I wonder when the day will come when the firmware in more consumer-electronics devices, like TVs, will go open-source. I would love to be able to modify the firmware in my TV. For one thing, there’s a very annoying video bug that I’m 98% sure is a firmware bug, but Sharp (ooops, I didn’t mean to say the name of the company, but it’s too late to backspace now) refuses to acknowledge that it’s a bug or fix it. I bet if I had a source tree/build tools/loader I could fix it in about a day, regardless of the fact that I don’t know anything about TV firmware.

But the real reason is this: some PS3 games do 720p and some do 1080p. When the mode switches, my TV has an indicator that comes on briefly that says “Video: 720p” or “Video: 1080p”. I want to change the former indicator to “Video: 720p (teh suck)” und express the anger than I am feeling about games that don’t do 1080p.

General

Nature software

Hmmm, looking at the credits on an episode of planet earth, I don’t see any credits for software/IT support staff. I’m sure there _is_ some, but the fact that it’s uncredited probably indicates that there isn’t as much computing going on in the production of such a series as there ought to be. I can think of lots of ways that software and computing infrastructure could support efficient production, insightful exploration of A/V materials and data, exceptional editing, etc., and I’m sure that current off-the-shelf software can’t be doing everything that can be done there.

So, if anyone reading this is a nature documentary producer, I’ve got two requests of you: produce lots and lots more content on the level of quality of planet earth (even a level or two lower quality would still be great), and talk to me about how to make more and better stuff through software magic.

General

java:comp exception in Tomcat 6

I don’t know if this will do anyone any good (please leave a comment if it helps you!), but I want to get myself into the habit of blogging these sort of things for the potential good of other web searchers out there.

We were having the following problem: when starting an web app in Tomcat 6 that uses JNDI to locate a database connection, we got the exception:
javax.naming.NameNotFoundException: Name java:comp is not bound in this Context
Lots of people point out that this could be a problem with there being a JNDI implementation in the web app’s lib/, so that the app doesn’t get the global one defined by Tomcat, and they recommend removing all naming* JARs from lib/. But, in our case, it was catalina.jar that was causing the problem; it also includes a JNDI implementation.

General

Bobbing and weaving, technologically speaking

Just read a pretty good overview of some of the nits of de-interlacing: The basics of de-interlacing from good to great. This is a sort of fascinating topic to me.

I guess the first thing I think of, when I think of interlacing on either an aesthetic or technical level, is ugh. Aesthetically, I’d be quite happy to never see another interlaced video or monitor again. Technically, I’m thinking that the resources, both of engineers and of computers, that have been used to de-interlace could really have gone to something much cooler.

And it’s so persistent, too. Interlaced videos are still being produced, I’m sure interlaced monitors are, and at the same time, de-interlacers are still being developed, and all that will continue for years from today.

But this is all just one of those things that happen so often in technology, where something that was a great idea at the time becomes a self-reproducing monster. I wonder if the people who started us down the road to the interlaced world we’re in today (and I don’t mean to deride them; I can only snipe at them with the advantage of hindsight and from the vantage point of _today’s_ technology) are all like “I am become tearing” or if they’re all “I wish people would love everybody else the way they love me”?

In any case, at least we can say that interlacing stimulates the economy.

General

Little decisions

One thing that’s nice about writing software for a living is that it helps remind you often that little decisions are important ones.