The Adventures of Joshua Judson Rosen
(action man)

[ sections: VisualIDs | art | movies | everything ]

<<  Page 10 of 44  >>

Wed, 13 May 2009
[@]

23:52: Finding Levenshtein Edit-Sequences

Here's the trick: if you want to find the Levenshtein edit-sequence that leads from one string to another (or, you think, you just want to know which operation occurs at which position in either string), create the complete cost-table, then start at the terminal position and walk backward to the beginning.

It's impossible to walk forward from the beginning, because there's too much ambiguity as to which direction the next `step' should take through the maze, but it's actually easy to walk backward: one merely needs to find the direction that either preserves the cost or decrements it by one, with preference given first to cost-decrement and then to diagonal movement (because diagonal cost-preservation is a `keep' operation, and diagonal cost-decrement is a `substitute' operation; horizontal and vertical movement are either insertion or deletion, depending on which string is the source and which is the destination).

[Reply]

[@]

23:01: Best Wedding-Gifts

Jay says:

We tend to avoid ritzy dining.
She's not that big on eating out, in fact.
meat and potatoes is the usual fare.
Fine with me.

I guess that makes it all the more meaningful that they took us out for a nice dinner as a wedding-gift.

I think our favourite wedding-gifts, by far, were the food gifts. They were like, "Here is a combination of a manifest something-that-you-do-not-have-to-do and a new experience", both of which are such precious things; and the fact that they're usually at odds with each other makes their combined delivery just totally fantastic. Fantastic.

[Reply]


Mon, 13 Apr 2009
[@]

23:50: GPRS GPS is frickin' expensive

I drove to work, today, with TangoGPS running on my FreeRunner, merrily downloading OpenStreetMap data as I went... and there's a conspicuous hole in my map where the GPRS link effectively went dead (and Pidgin started saying "authentication error: connection refused")..., because the balance on my prepaid SIM went to zero.

I had $20 on it, when I started. At 1¢/kilobyte, that'd be... how much data did I download?

root@om-gta02 ~ $ cd Maps/
root@om-gta02 ~/Maps $ du -hs
1.9M .

"How many kilobytes is two megabytes?", asks my brother. "Two thousand", I say. So, at 1¢/kilobyte, that'd be....

I open my mouth to say "two-thousand cents"; but my brother interjects, "twenty dollars".

OK. I guess it's worth buying an unlimited-data plan, if I actually plan to use this `download as I go' feature.

[Reply]


Sun, 12 Apr 2009
[@]

21:33: sloccount

sloccount libvisualid-dev reports:

Totals grouped by language (dominant language first):
sh: 9198 (78.84%)
ansic: 2471 (21.16%)

Total Physical Source Lines of Code (SLOC) = 11,669
Development Effort Estimate, Person-Years (Person-Months) = 2.64 (31.67)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.77 (9.29)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 3.41
Total Estimated Cost to Develop = $ 356,473 (average salary = $56,286/year, overhead = 2.40).

(generated using David A. Wheeler's 'SLOCCount')

All of the shell-script code is generated by the GNU Autotools, so using Automake, Autoconf, and Libtool apparently cut my development-costs by 4.3 months and 2.17 developers (bringing the price down to a much-more-reasonable $69,849).

So, use the Autotools--they could save you more than a quarter-million dollars.

Also, if you're unemployed for three months, pretend that you were making less money before you lost your job--I know it makes it hurt less for me to pretend that I only lost $14k....

Actually, that $14k did buy me some cool software.

[Reply]

[@]

21:10: Mobile VisualIDs

Now that I've learned enough Etk to be get hacking, `Mobile VisualIDs' are coming along nicely:

I added a column to libframeworkd-phonegui-efl's contacts-listing GUI, today, and just made it look-up PNG-files generated by mkvisualid for contact-names, in the same way that I currently have Nautilus looking up SVG-files for file-names.

evas doesn't support SVG, so I just need to add an option to libvisualid to output PNG-files (which Cairo supports!) and to resolve input file-names to PNG-icon paths.

Then I'll see where else it makes sense to add VisualIDs in the phone UI; the openmoko-dialer3 `incoming call' (and `active call') UI is pretty sparse, right now--there's a huge empty space where it'd be really nice to have some sort of caller- (or `callee-') -identifying graphic (and where other phones do put such a graphic).

I was able to get the editor running last week, since that (obviously) didn't require learning anything new aside from loading and using an OpenMoko toolchain, which is trivial--my Autoconf ./configure just works if I just pass the right `--host=' option, and my code is apparently free of any byte-sex or word-length issues (there weren't really many \opportunities' for those sorts of bugs in libvisualid, anyway).

While the embedded ARM processor provides enough processing-power to make even real-time editing of VisualIDs reasonably snappy, the `finger-friendliness' is something that I'm going to have to work on:

For one, I never considered that the monitor might not actually be big enough to hold all of the parameters at once. Of course, the ridiculously-high resolution of the FreeRunner means that quite a lot of data can fit on the screen at once--and even be legible..., but good luck pressing a spinbutton that's 2 millimeters wide.

A minor tweak to the GTK+ theme can make the spinbuttons large enough to be touchable, and putting a GtkScrolledWindow (or a MokoFingerScroll from libmokoui2) around the parameter-list would be a way of keeping all of the parameters accessible.

Of course, I'd really like to have a click-and-drag, `direct manipulation' mechanism for parameter-modification, which might make the spinbutton issue less relevant. Though, the funny thing about that is: while click-and-drag WYSIWYG editing works great on a bigger screen, I can see how going that way might make things more difficult on a small, finger-oriented screen. So, where the `list of spinbuttons' UI was supposed to be a stopgap on the desktop, maybe it's actually more like the way to go on the FreeRunner.

[Reply]

<<  Page 10 of 44  >>