Entries Tagged 'tinkering' ↓

Most Expensive Thing Ever

One of my classes this semester is on multimedia systems. It’s a seminar class where the student presentations make up the second half of the semester.

I’ve decided to do my bit on multitouch displays (touch screens with multiple styluses ala the iPhone), and for the project I want to actually build one.

To this end I need a projector. I hunted around, picked one out, and my credit card rejected the purchase as a fraud. I called, got it cleared, and attempted to buy it again. It was again flagged as a fraud.

I was irritated until I realized that at $750 this is easily more than twice as expensive as anything I’ve purchased on this card in the two years I’ve had it. I suppose I can’t blame the algorithms for being suspicious. ☺

  • Share/Bookmark

Array Indexing Methods In Java, R and Python

I’ve been working a bit more with R doing some data analysis. I keep getting hung up on the array access semantics and wanted to write them out so I could remember them.

Arrays are a very common data structure in computer science and most every language has support for them. Most intro classes describe an array as a set of boxes where you can stick stuff and refer to them by number.

Continue reading →

  • Share/Bookmark

Semiotics 101

I’ve been considering tags and what exactly it means when I “tag” a song. It has a different meaning than rating, and I think I have an idea of how to design a collaborative filter using tags, but I lack the vocabulary to really work out the idea.

I think the terms in need exist in the field of semiotics. This post is to define them so I can use them. To be precise, this is a combination of selected definitions with some additional interpretation. Semiotics is large, complex and controversial, and this is in no way authoritative.


Semotics attempts define a terminology to take complex inferences underlying interactions and make them explicit. The primary thesis is that interaction are significantly more complex than they seem at first glance, and as a result semtiotic writings frequently end up taking something seemingly simple and describing it in excruciating detail.

The basic building block of semiotics is the “sign:”

Continue reading →

  • Share/Bookmark

Scheduling Productivity

This last week has been less than stellar for me productivity-wise. The issues have been, to some extent, systemic.

One of my biggest problems has been a simple one of biology. I do pretty well in the morning. Getting settled in, catching up on e-mail, doing some coding… I cruise along until around lunchtime when I hit a lull and, if I’m lucky, end up in a stupor staring off into the space about two feet behind my monitor. Equally unproductive, but slightly less discrete is lolled back in my chair snoring slightly and drooling on myself.

I’ve tried various methods for combating this phenomena. It isn’t just that I’m worried someone is going to catch me, it’s how pointless it is. If I’m going to be productive, I want to be productive. If I’m going to rest, I want to rest. What I’m doing with this half-breed amalgam is the worst of both worlds — being unproductive in a really uncomfortable way.

I thought for a while that it might be the act of eating. Maybe energy necessary for running my brain was being redirected to my stomach, so if I reduce resources going to the stomach, I can keep the brain going stronger. This line of reasoning led to the not terribly successful experiments in boosting energy levels by not eating.

I did have some luck with the grazing pattern where I make a sandwich and eat it a bite at a time over the course of five or six hours. (A really good diet strategy, fyi. It significantly reduced my overall caloric intake.) Part of the reason I’m here at Sun for the summer is the people I’m around. When I go down to lunch I get to hear interesting people espouse unique ideas, and I think it might seem a bit odd if I just came to lunch and took two bites out of my sandwich in half an hour.

Grazing wasn’t a complete solution in any case. The central issue is thinking is taxing. If I was loading hay all day, I wouldn’t try to come up with some magical plan whereby at the end of the day I’m not tired. Because the work of an engineer goes on inside our heads, we are more apt to assume that we can simply change the ramifications of doing it with moral resolve. Just because the action isn’t visible however doesn’t mean it is less real.

The solution I’ve been relying on for the last week has been a tasty one: chocolate covered espresso beans. Coffee might taste like dirty water, but the magical font of Goodness that is chocolate manages to make it delicious. Honestly, I think if I stuck with it for long enough I could condition myself to enjoy the taste of coffee (much like I now enjoy beer, which pretty much every first-time drinker agrees tastes like horse pee).

The problem isn’t really solved though. I do manage to stay conscious through the afternoon, but my focus is sharp right after a shot of caffeine and sugar, and drops off again with increasing rapidity. The big problem is there isn’t such a thing as a free lunch — three nights this week I got home around 6:00 and was asleep by 7:00 only to wake up at 2am unable to get back to sleep. (And being up from 2-5am leaves one with the reactive efficiency of roadkill the following day.)

I suppose I could view making it through the work day as a success and say that it is unprofessional of me to consider my discomfort at home when structuring my schedule, but I’m pretty sure that is the express train to getting your soul sucked out. (Something that would ultimately not only be bad for me, but for Sun as well.)

I figure though that my specialty is systemization, and if there is solution to be had, I can find it. I’ve got a more formal set of ideas on the process for doing that, but for the sake of brevity I’ll not go into all that. I’ll just mention that the plan for the next week is to work 7am-2pm, go home, probably nap and then work another hour or so in the evening. I’ve not got the criteria yet for doing a more formal evaluation, but I figure I’ll at least get a sense of how it leaves me feeling.

  • Share/Bookmark

Inner Classes Are Not Closures

I’ve been absorbing JINI all morning. My brain’s full and as it percolates, I think I’ll post on language design. I’ve been reading Matt writing about language design. This is a subject he actually knows. He has a vocabulary for describing language features and can discuss them in the abstract.

I, on the other hand, am just a programmer who can’t do what I want at times because computers are uncooperative.

For example, I am testing the piece of code that I mentioned previously that loads a large dataset. I know it’s dying at some point and I would like to know the progress.

Continue reading →

  • Share/Bookmark

Java Memory Usage

I’ve been working a bit this morning with a tool that’s pretty interesting and I thought I would mention for Matt because I know he works with big datasets.

I’m not quite to the scale of his utility systems, but I’m loading data for about 50,000 LastFM users and some of their artist preferences. All in all, it ought to be a couple million entries.

The system starts out strong adding a thousand or so entries per second. Then it’ll choke for a bit and drop off, go collect some garbage, burn through a few more, slow down and repeat. Each time it comes back for less and less time until eventually it stops coming back and slowly dies.

Continue reading →

  • Share/Bookmark

Unit Testing

I’m currently trying to write some JUnit tests for parts of Project Aura and it is irritating me. JUnit is based around the concept that tests should be atomic and capable of being run in any order. I like the idea of avoiding side effects so your have conceptually purer tests, but there are times that tests are conceptually linked.

What I’m doing right now is instantiating a simple version of a datastore designed to be deployed on a grid. This creates dozens of files and takes a few seconds. Not that the overhead is a huge problem for this one test, but over the course of time it could start to matter.

Continue reading →

  • Share/Bookmark

Migrating LiveJournal

I’m working at pulling everything in from different places. The first is my LiveJournal. The process took a little finagling:

  1. Downloaded jbackup.pl from heinous.org
  2. Installed XMLRPC::Lite

    1. Ran sudo perl -MCPAN -e shell
    2. From within that program ran: install XMLRPC::Lite
  3. Ran: perl jbackup.pl --user=ivankara --password=shhh,secret --sync --dump=xml --file=ivankara.ljml

Unfortunately, at this point things didn’t go quite so easily. There are two issues:

  • The WordPress 2.5 LiveJournal import script doesn’t use an actual XML parser to parse the XML. It uses a series of regular expressions. This, not surprisingly, breaks at times. In fact no entries at all will be imported because it matches on <entry>(.*)</entry> and the XML from jbackup has attributes in its entries (<entry jitemid="1">).
  • WordPress has four options for how you can control the visibility of your posts:

    • The entire blog is public to the world
    • The entire blog is password protected
    • Individual posts are visible only to the author
    • Individual posts are uniquely password protected

    Specifically what is missing is what LiveJournal uses where individual posts are non-publicly visible, but they are visible to groups of authenticated users. WordPress does have a user authentication and roles system in place, so may there’s a plug-in somewhere.

To get something up, I wrote a simple XSLT transform to get things in a format that WordPress likes: wp-format.xslt.

I could then import the results of xsltproc wp-format.xslt ivankara.ljml >ivankara.wp.ljml.

Now I just have to go through and categorize things and make private anything that still needs to be so.

  • Share/Bookmark

Damned Circuits

I may have figured out why the hell my simple microcontroller project won’t work.

If you look at this schematic, the one provided by the project, you’ll note that the serial port driver (the smaller chip) is a MAX232. The capacitors connected to it are 100 nF = 100×10-9 F = 10-7F = .1µF. .1µF capacitors are what are used by the MAX232A. The MAX232 uses 1µF capacitors. I’ve spent many hours trying to get this damn thing to work. If this turns out to be the issue, I don’t know if I am going to be more irritated of relieved. I definitely want to try and replace the existing project because it has repeatedly not shown the sort of meticulousness I would expect from someone working with electronics.

On a related note, I’ve been reminded of a project I have wanted to do for a long time which is take the IC Masturbator and do a semantic capture of the information.

The Masturbator is the pin outs of hundreds of chips, but it is all little ascii diagrams. I’d like to design an XML chip description language which could be used to drive a better site and generate prettier diagrams and truth tables:

versus

I think the popularity of sites like instructables.com show a base of interest that would make it worthwhile. The next step would be to use the SVGs in a schematic design program because I’ve not used one yet that isn’t crap.

As always, the issue is time… Never enough time.

  • Share/Bookmark

Broken Phones

We can’t get XO to release our number to Verizon for another month. So, we were just going to get a remote call forward put on the XO lines over to the Verizon lines. Today though we learn that you can only get a temporary call forward put on your XO line if you go through a reseller, which we don’t. The only thing they’ll do is a permanent call forward which takes fifteen days.

Unless the line is down. In that case they will to an emergency temporary call forward. That would likely mean something happening to physical copper coming up from the basement that I watched them screwing around with a couple months ago. It would be very unfortunate is something happened to those lines…

  • Share/Bookmark