Tuesday, May 18, 2010

Miscellaneous things on my mind today

Thinking some more about that markov->ANN mapping, and wondering if
there'd be a better way to represent the signals from the inputs to
the first layer. Ideally, that'd involve getting the symbols to
correspond to a value on a meaningful range, rather than a set of
discrete values. Let's say I wanted to make that integer range
[0,2

Monday, May 10, 2010

Miscellaneous things on my mind today

It occurs to me two fic geeks might find reading through the TVTropes pages for their favorite pieces of fiction a romantic way to spend an afternoon.

--

Pondering a message passing communication system tuned for bulk data (parcel) transfer. Use an addressing system like email's: To:username@example.com

Sender, relay and recipient nodes operate on a load-sharing basis similar to BitTorrent. Where with email, a sender has a single SMTP target, this system might have multiple such targets, each of which serve as feeders for the destination recipient(s). Relaying nodes may cease feeding once either all recipients' nodes have full copies of the parcel, or once a TTL metric has been met.

Sender-signing should be explicitly supported, both as a means of ham/spam separation and as a means of authentication/accounting where necessary.

Parcel bodies should be compressed and encrypted by default.

--

Just got the geek necessities
The simple geek necessities
Don't worry 'bout your food or your hygiene...

--

If you're standing on Four Corners, and you do something that's a crime under each state's law, which state's prosecution takes priority?

--

I don't think backprop is relevant to the HMM->ANN mapping, because ANN construction is done as a component of its training, and weight adjustments are done incrementally as each node gains experience, by the node itself. No final "result fitness" observation is done, because the from-map ANN inherently evolves the same way the HMM would.

Actually, looking at it further, what I have in mind could be considered a variation of a "cascading neural network", except the weights aren't fixed on node creation. Also, I don't see reference to any types of networks that allow for deconstruction of nodes.

--

I like this way of posting my thoughts; it keeps me from being the uber-spammer on the social networks I'm in. Plus, it's like a serialization of free association in a palatable form.

--

Hm. German. shadenfrau. Heh.

--

Need to start carrying my 3e/PF books around. Or PDFs thereof.

--

Barcamp presentation ideas: 1) Rosetta Code and programming chrestomathy. 2) Wikis and more effective cross-referencing.

--

I once had a conversation with a guy I think might have been high, where we thoroughly enjoyed a conversation that didn't keep a single context and topic for longer than three sentences.

--
:wq

Sunday, May 9, 2010

To learn, to Create, to Think

To learn: Surround yourself with people who know more than you. Can't find any? Try another topic. Whatever you do, don't stop.

To create: Think about different things at the same time.

To think: You'll have to figure this one out on your own.

--
:wq

Friday, May 7, 2010

Miscellaneous things on my mind today.

There's a striking similarity between hidden markov models and neural networks. For a 1st-order HMM, you could map it to a 4-layer (1 input, 1 output, 2 hidden) feed-forward ANN by having a single input (what symbol you're facing), making every known symbol a 2nd-layer node, with a simple input value of 0/1 (the first layer's node signals the input of the corresponding second layer depending on which symbol corresponds to that node). Use the set of known symbols for the 3rd layer as well, and the mapped weights from the 2nd to the 3rd layer corresponds to the state change probability in the HMM.

I don't think this is necessarily an efficient way to do it, but I think it might be an exact mapping. Cool. :)

If you want a second-order Markov model, use two nodes in your input layer, and use S1,S2 pairs for your 2nd layer, with a single-symbol set for your third. Definitely not a space-efficient way to do it, but also an exact mapping. If, after training (you have to get your symbol set from somewhere, which means you're going to grow your ANN as you build your symbol set), you're comfortable with the idea, you can cull your absolute weakest relationships from your 2nd-order set. Only cull as space limitations force you to, or you'll lose weak-but-significant relationships.

A 3rd-order Markov model would have three input nodes, and use S1,S2,S3 tuples for the 2nd layer, and a single-symbol set for the third. Again, cull as required.

For particularly interesting results, you can use a three-dimensional matrix I1 going to a 1st-order ANN mapping, I1 and I2 going to the 2nd-order ANN mapping, I1, I2 and I3 going to the 3rd-order ANN mapping, and map to the same output node for all three orders. (Or higher orders, if you have unbelievable processing and storage capability...)

--

I'm happy.

--

If every piece of software got as much detail-oriented attention to it as Toyota's code is getting right now, but *before* disaster struck, there'd be millions of happier developers out there, software wouldn't suck as much and development and debugging tools would be absolutely incredible (far beyond anything I've even heard of, including things like valgrind, lint and VS2010's rather impressive debugging aid feature set) as a result of finding ways to reduce developer time spent in analysis and bugfixing. If software were nearly as difficult to consider "ready for release" as hardware is, I think you'd see something akin to Moore's Law occur in software utility. (As a mixed metric of performance and feature set.)

People got used to mediocre software. They hate it, but they got used to it. As a result, software pricing models more or less standardized around writing mediocre software, and people get sticker shock when they hit a requirement for non-mediocre software. Put another way: "Fast, well, cheap" -- except that popular priority heavily weighs toward fast and cheap.

--

Flashbacks to Ender's Game when I accidentally try to call CString::GetBugger(). See also, Start->Run->%APPDADA% instead of %APPDATA%. Dargo, resolve his %APPDADA% for him!

--
:wq

Thursday, May 6, 2010

Things on my mind today...

Prime words. If one were to present thousands of people with the words in the dictionary, and ask them to replace the word with a small set of simpler words with near-identical resulting meaning, would a set of fundamental, or "prime" words result? What would they be? Some circular definitions might result, but their presence might help identify fundamental concepts.

What happens if you could influence the Shadow ships' pilot with LSD or PCP? (If you haven't seen through Season 4, don't bother guessing. If you don't know what I'm talking about, then nothing's spoiled.)

What happens if a vampire or lycanthrope bites a bio-tech vehicle?

I need to make a habit of going to work earlier so I can get enough hours in before early afternoon. OTOH, I've got a ton of vacation hours saved up, and that would be a worthwhile way to spend them. :)

I broke someone's nerd-o-meter today. I feel good.

I seem to be discovering something akin to alchemy and herbal remedies, but using fast and processed foods for ingredients. That can't be a good sign.

SanDisk seems to have abandoned the SD+USB product area. [trope]BigNo[/trope].

--
:wq

Monday, May 3, 2010

Dave, my mind is going. I can feel it.

Gotta do some thought-out codin'
but my heart is all a'flutter.
Wrote a line of code
but I can't write out another.
Gotta get my brain in gear
but it's slippin like it's butter.
If I don't seee Firefly soon,
I'll be drinkin' like a Mudder.

Tuesday, April 27, 2010

There's one kind of argument I particularly hate to have

...and that's rationalizing. Typically, it occurs when the person I'm arguing with has a gut feeling about what's Right, but can't maintain a logical defense of the position. I can chip away each path of apparent logic they use in defense of a position, one at a time, and then they'll come up with some new path, or switch back to an old path with a different tact.

What's frustrating about it is that it tells me there isn't a logical basis behind the defense of their position, but an emotional one, and logic is simply the mechanism being used to defend it. That means that they're exceedingly unlikely to ever change positions, unless and until that emotional basis is identified and resolved. That's pretty difficult to do when the person holding the position can't acknowledge the basis behind their core position.

The particular argument inspiring this rant was my expressed frustrations that AdBlock Plus is overly aggressive, and blocks the queries that build Amazon referral links--I was going to use those links in-line in on-wiki citations and user-recommended resource links. With ABP running, one gets a big, fat, red "Unable to retrieve data" blob of text. I'll have to mod the MW extension to deal with the error case.
I can understand wanting to block distracting and attention-grabbing advertising content. Blocking referral-building and search AJAX queries strikes me as going rather far, and smells of anti-commercialization intent rather than simply consumer protection.

Saturday, April 24, 2010

HSV remixing some of my photos

Tried some simple stuff on one photo, liked the results, tried it on several more.

[HSV Rmx] Cosplay - AWA14 - L and Misa Amane

[HSV Rmx] Cosplay - AWA15 - Lara Croft

[HSV Rmx] Me

[HSV Rmx] Hair grows

--
:wq

Wednesday, April 21, 2010

2.5" -> 3.5" internal bay adapter

I know 2.5" -> 3.5" bay adapters exist, but do any exist that allow you to put multiple 2.5" devices in the same 3.5" bay? I'm specifically pondering replacing a single 3.5" spinning disk drive (my root disk) with two 2.5" drives (one for root, and a small SSD to put mysqld on; I'm disk-bound, and the lifetime and safety of the data is less interesting than the speed it can be manipulated at.)

Tuesday, April 20, 2010

Yup. That StumbleUpon surge changed things a bit.

Not in a way they haven't been changed before, mind you. Every now and again, there's enough of a traffic surge that the traffic never fully dies back to near-original levels, even if the referrals aren't coming from StumbleUpon any more.

Usually, it's a combination of two things: 1) a steady trickle of referrals from dozens of forums like Stack Overflow, Reddit and language-specific phpBB installs. 2) A lot more people add "rosetta code" or "rosetta" to their search queries; I get the impression that this method of learning how to do stuff is getting more popular.

So, yeah, the ambient traffic appears to have permanently bumped up a notch. This has happened three times before, that I can think of.

Monday, April 19, 2010

[TSoC] Automated virtual plays - machinema for the social web

Ok, so here's the thought: Take a social medium like Twitter or blogging, and take such things as stage plays.

Tie each Twitter or blog account to a character in the play. Now, how do you automate it?

I see three pieces that need to be addressed to cover each member cast:
(character)
(service)
-(account)
--(contacts/friends)

I see four bits of information that need to be conveyed for each active line:

(trigger time)
(service)
(who is the message directed at)
(the message)

Now, think about this. How would you organize this data?

--
:wq

Monday, April 12, 2010

[TSoc] Abusing TinyURL, bit.ly, and your browser--making the work someone else's problem.

So, lately, I've had a few ideas for simple, interesting websites, and there's one thing they have in common--they have no server-side state. Server-side state means you need a database, and databases don't scale easily or cheaply.

So here's basis behind one of the ideas: http://www.translationparty.com

TranslationParty works by taking your English phrase, using JavaScript to call into Google Language Tools to convert it to Japanese, repeats the process back to English, and back to Japanese--on and on until it finds "equilibrium", or is confident the phrase will never reach it. Of course, it only works with English-Japanese translation. You'll notice, though, that it uses an identifier to allow it to recall previous "parties". I can show you one I just created a moment ago, by having you click on this link: http://translationparty.com/#7180967

They're storing the seed phrases in a database, so that visitors can refer back to them. That's fine, I suppose, but that database is eventually going to get large and expensive, and most of the past seed phrases will have been forgotten about in the mean time.


I showed TranslationParty to a couple folks last night, and they noticed it only did English-Japanese translation. I'd just hit on the idea of doing something like TranslationParty, but using virtualhosts to allow language selection.

en.ja.example.com would behave largely like the existing TranslationParty site.
ja.en.example.com would start with Japanese as the seed language, rather than English.
en.de.example.com would bounce between English and German
de.fr.example.com would bounce between German and French.

So, $1.$2.example.com would start with $1 as the seed language, and #2 as the intermediate language.

Problem is, I wouldn't want to store that database. It's largely a waste of server resources, considering most of it would be forgotten ten minutes after it was created. The obvious solution is to store the seed phrase as an HTTP GET parameter. http://en.ja.example.com/?seed=What%20lies%20in%2the%2deepest%20regions%20ones%20our%2memory would have "What lies in the deepest regions of ones memory" as the seed phrase, and be equivalent to http://translationparty.com/#7181046 ...

Now, that's a long, nasty URL, not suitable for copying and pasting in polite company, but it means that I don't need a database for these things. Besides, that's what bit.ly and tinyURL are for, right?


--
:wq

Sunday, April 4, 2010

What we owe Apple and Mac users

I tend to hate Apple software; it's overly simplistic and makes too many assumptions about what I need to do. I tend to hate Apple hardware; it's good stuff, but you pay too much for it.

However, they've got one heck of a marketing budget, and they manage to make their products mainstream, or, at least, 'hip.' That's something I can appreciate. Why? Because if it weren't for Apple making their hardware and software hip, there wouldn't be the demand for lookalikes and workalikes that leads to products I *do* want to use to become available.

(Yes, the Newton was a failure, but Palm followed up on the concept and made a device I enjoyed using for years.)

Consider the iPod. MP3 players had already been around for a while, but they weren't big sellers. Along somes the iPod, which takes the MP3 player market by storm, and drives the expensive little lossy-audio playback device into popularity. People discover the convenience of having a few thousand songs in their pocket, and show off to their friends. Their friends like the feature set, but balk at the price tag. Along come the products by other manufacturers and vendors, with similar functionality[1] and a lower price tag, and those friends buy. Apple made the MP3 player popular.

The iPod went through a few iterations. It added video, then it added video.

Now we consider the iPhone. Smartphones have been around for far longer than the iPhone, but I normally only heard about them being used by big corporate and institutional types. You didn't get them unless you had a financially-driven need for them, so they were only marketed to the organizations with pockets. Along comes Apple, with their iPhone and their marketing budget, and it *sells*, despite being an open-developer-unfriendly platform. Same as with the iPod, they show their friends this cool stuff, friends want something like it, and so you get things like Android and Windows Mobile[2] getting bought at cell phone retailers all over the place. Meanwhile, people got used to touch screens and video interfaces thanks to things like the iPod Touch, so adding a phone to the feature set doesn't seem too odd.

Now look at the iPad. Everyone teases it. I don't want one, because I don't like the development environment. Everyone teased iPod, too. Tablet PCs are nothing really new, either; they've been around for over a decade. The first one I remember seeing had an 80486 processor, and it was used for mobile logistical record keeping. It ran Windows 3.1, and had handwriting recognition. More recently, HP and other PC vendors have been selling laptop/tablet convertibles. My mother had one. It's kinda fun to use. Yes, they were never really popular. That's why people keep expecting the iPad to fail. They forget that MP3 players weren't popular before the iPod, and that smartphones weren't core culture until the iPhone. I don't know if it's a marketing budget, superb planning or superb timing, but Apple tends to take a known concept and get it to sell.

I expect the iPad will sell nicely. It's like a supersized cross between an iPhone and iPod Touch, with the phone features pulled. What with the requisite technologies for AR getting better and better, I suspect I know where Apple would like to go next.[3]

[1] Greater in some areas, lesser in others. I don't want to debate it.
[2] Yes, Windows Mobile has been around for a while. I didn't say it was *created* as a response to the iPhone.
[3] And a brief plug for an anime I've been enjoying lately. Dennō Coil

--
:wq

Friday, April 2, 2010

[question] Testing Virtualized XP installs with more than two CPUs.

So Windows XP Pro allows the user to run at most two physical processors, but each such processor can have as many cores as you like. That's great for quad-core and above processors, if the operating system is running directly on top of the hardware.

So what if you have a quad-core or dual-quad-core system, you're running some virtualization package (KVM, VMWare Server, whatever), and you want your guest XP Pro instance to have more than two cores? On QEMU+KVM, there's no way to lump virtual CPUs as cores on a virtual physical processor, and there doesn't appear to be one on VMWare ESX Server, either. So how would you do it?

The particular scenario, in this case, is automated testing of software that's supposed to run on XP Pro with systems between four and eight cores. While it stands to reveal interesting bugs, running it on only two cores is non-optimal.

--
:wq

Quote from my boss from a couple minutes ago

Working late tonight, wrapping things up. Boss just gave me this little gem:

I don't know if I said it
So you'll have to have to ignore the repeat
But I need to make sure I said it
...I forgot what I was going to say.

Friday, March 26, 2010

[TSoC] [UPS, USB, X10] X10 UPS and USB power supplies.

Observations:
* X10 was once used to allow remote control of power outlets. It operated by adding a small set of pulsed high-frequency modulations on top of your home's internal AC. Take a peek at it with an oscilloscope some time; it's pretty cool.
* UPS devices report themselves well over USB, but that takes up one of a computer's external USB ports.
* In most systems I've seen and built, there are spare USB headers left on the board after building a system.

Proposal:
Taking these three in context, consider having a UPS self-report its status by doing a controlled modulation of its AC output. Have a computer's power supply be capable of receiving and interpreting these signals. Have that power supply plug into a spare USB header on the motherboard, to provide those communications onward to the system.

Benefits:
* Avoid using an external USB port
* Allow multiple computers powered off of the same UPS to be simultaneously aware of their power source's state.

Drawbacks:
* AC output of UPS can't be a perfect sine wave, much as that would be ideal. (Though most output a stepped approximation, anyway.)
* Requires that the PC's power supply be able to interpret the signals.


--
:wq

Thursday, March 25, 2010

For the last time, no, I Won't be a fan of "Google Fiber for Grand Rapids"

(This is going out to a whole bunch of places, not just Facebook.)

I Won't become a fan of Google Fiber for Grand Rapids, for a couple reasons. Let's start with the big one: I don't want my Internet traffic primarily channeled by a company whose primary revenue source stems from figuring out how to show me the ads I'm most likely to click on. That's a very, very direct incentive for them to do traffic analysis and directly watch the sites I visit so that they can figure out what I'm interested in, and thus what I might buy, and thus what ads to show me.

No, AdBlock doesn't fix things; avoiding being shown ads wouldn't stop the incentive for analysis any more than a boycott on Wendy's for serving meat helps PETA.

I'm sorry, but I'm just not interested. Even if they promise not to do privacy-invasive things, they ultimately can't help it; it makes too much business sense for them to set up a transparent HTTP proxy and build up their Analytics and Adsense statistical bases. *I* would, if I were them. If they don't, then they're stupid; they would be ignoring the opportunity to blend together geographical and demographic awareness into their ad business, and sell localized Adsense ads with better accuracy than the ones you already see. (From Jenison, I get offers to "meet singles in Kalamazoo" ... Kalamazoo is a long ways away from me, but happens to be where the other end of this DSL connection sits.)

So, no, I'm not a fan of Google Fiber.

The second reason I won't become a fan of Google Fiber is the same reason I don't plaster my car with bumper stickers; I don't care to broadcast my taste, appreciation, like or dislike of every single cause, organization or business that flies across my radar.

--
:wq

Saturday, March 20, 2010

[TSoC] A different kind of cell phone service

Anyone notice that cell providers these days tend to not charge roaming fees? Anyone notice that their phone itself might report itself as roaming as often as not, without it making a practical difference? What about pre-paid phones? How many of those aren't tied to a particular network at all?

If a cell service provider can provide phone service that costs the same whether you're on their towers or not, what's to stop a towerless cell provider from providing service using a phone that doesn't care whether it's connected to the service provider via CDMA, GSM or an encrypted SIP connection tunneled across Wifi or WiMAX? Heck, any of the existing SIP/IAX2 trunking providers could potentially expand into that arena, and people wouldn't necessarily require a POTS phone number to call or be called. (Though, rather than calling a Skype ID, someone could simply call me at phone.michael.mol.name.)

Admittedly, toggling between cell and 802.11abgn radios will reduce battery life, and the phone would have to be a tad smarter to manage more of the service provider hand-offs itself, but that price is already being paid by smartphone owners.

Ordinarily, I'd be one of those arguing back "you can take my landline out of my cold, dead hands", but I've somehow managed to never have a landline to my name, nor one that people call when they want to reach me since before I even turned 18. With the drop in landline usage, and the pervasive increase in mobile phone usage, it strikes me as imminently doable.

--
:wq

Friday, March 19, 2010

Have I fallen so far?

I once commanded legions of GI Joe action figures; they would march to their death at my guidance and whim. Have I fallen so far?

Water once obeyed my guidance, flowing through pipe, hose and tube before sprinkling me amidst glorious sunshine. Have I fallen so far?

The sands themselves once moved aside under my machinations; the formation rivers, gorges, dams and lakes occurred at my influence. Have I fallen so far?

The frozen wastelands would strip themselves bare, the ice and snow forming men as tall as taller than I was. Have I fallen so far?

The trees would shed their leaves, simply for my joy and benefit. Have I fallen so far?

Yes, I have fallen, but the world has turned up-side down. It is now my role to serve those who will come after me. I have risen far.

--
:wq