THE LACK THEREOF

TLT

META INFORMATION: This is the technical blog and wiki of Brock Wilcox (awwaiid). Entries focus on my current projects, interests, and sometimes life events. If you'd like you can check out the list of All Entries or the RSS Feed. I also have a LiveJournal syndication feed for LJ friends.


2008.10.21 Slow Android Development

It's been over 4 hours since Android was released... but still no port to the Neo. Pft.

0 Add Comment


2008.07.24 OSCON Lighnting Talk

At the last minute I ended up giving a Lightning talk at OSCON 2008 (in the Perl track). I showed my Devel::REPL + Continuity debugging tool.

Here are my notes:

Lightning Talk OSCON 2008

Brock Wilcox
awwaiid@thelackthereof.org

See also:
* Continuity
* Continuity::REPL
* Devel::REPL
* Carp::REPL
* PadWalker

# .... These were then run in the REPL ....
# counter.pl at:
#   http://thelackthereof.org/projects/perl/Continuity-Monitor/eg/counter.pl

use PadWalker 'peek_my';
my $h = peek_my 23;
${ $h->{'$counter'} } = 77;

# Then...

sub new_prompt {
  my ($request) = @_;
  $request->print("Muahahaha!");
  return old_prompt(@_);
}

*old_prompt = *prompt;
*prompt = *new_prompt;

0 Add Comment


2008.07.08 Walkabout

Some of my family came to visit this weekend, and we did a bunch of sight-seeing. Here are the distance estimates, this is definitely a lower-bound of the amount we walked. I tried to include walks that I know everyone did, and left off a bunch of random trips to the store. Distances are in miles.

Day 1 - Zoo and Fireworks

  • 3.1998 to and through zoo
  • 0.3037 from dupont metro to apartment
  • 3.6359 to fireworks and back

TOTAL: 7.14

Day 2 - Smithsonian and Folk Festival

  • 0.3037 from dupont metro to apartment
  • 1.9614 Smithsonian and folk festival
  • 0.3037 from dupont metro to apartment
  • 1.0309 to play music and back

TOTAL: 3.6

Day 3 - National Cathedral and Arlington Cemetary

  • 0.2353 apartment to bus stop
  • 0.7487 at cathedral
  • 0.6753 at Arlington Cemetary
  • 0.3037 from dupont metro to apartment

TOTAL: 1.96

Day 4 - Library of Congress and Memorials

  • 0.8012 at library of congress
  • 3.3956 at memorials

TOTAL: 4.2

GRAND TOTAL: 16.9 miles

I'm guessing that adding in more detail could easily add another mile or more. In the end I bet we walked about 20 miles in all. When you trade a car for your feet, make sure you have good shoes!

Comments on TLT - 2008.07.08 - Walkabout

1 Comment.

great walkabout notes! --- btw, if in DC area and want a walking companion any time, don't hesitate to ping me (though I'm mostly into jogging) ... (confession: main purpose of this is to test the Comment Count feature) ^z

-- Mark Zimmermann 2008-08-11 11:53 UTC

1 Add Comment


2008.06.30 More Photo Goodness

I got another new camera! The last two didn't work out for very long, but this one has promise. I won it at our recent Corporate Bowling event... it was clearly my best score ever at 167. I got second place and thus the camera. Woot!

This first image is one of Sophia's flowers. Sophia is the rose bush that Beth got from my family in condolence of her appendectomy. After almost killing her (Sophia, that is), I've nursed her back to health and we've been rewarded with new blooms.

Other than random events and trips, one thing I'd like more photos of is my balcony garden. Time lapse or something fun. I sit there and stare at the thing enough... I may as well share the green joy with the world!

Lets see... what what other sorts of boring photos do people put on their blogs... CATS! I must have some of those somewhere around here...

Comments on TLT - 2008.06.30 - More Photo Goodness

1 Comment.

Nice Potato Plants :-)

-- ailanie 2008-07-10 18:49 UTC

1 Add Comment


2008.05.12 Tree Style Tabs

I've been using the Tree Style Tabs Firefox extension for a few months now, and love it! Having vertical tabs has always been fabulous, ever since I first encountered them in Galeon. The chrome-css hack that I have been using for the last few years in Firefox stopped working in Firefox 3 (beta), so I went exploring and am very glad I did.

Not only does the Tree Style Tabs extension give my my vertical tabs, it also gives me (surprise surprise) a tree of them! Each has it's own browsing history, and subtrees can be collapsed and reordered and all that wonderful goo.

Just now I was playing around with the settings and thought I'd try the auto-hide feature. I'm not sure I'll keep it because there is a slight flicker that bothers me... but it is neat none-the-less! The tab bar is hidden, and then when I mouse or keyboard activate it the bar appears translucently on top of the page. It might need some kinks worked out (or perhaps there is some other cause for the flickering), but I think I like it!

Highly recommended.

0 Add Comment


2008.03.30 Making Music

I love to create and build -- lately I've made a few songs! My friends like to play guitar and sing, and I play the harmonica and am learning guitar. So here are my recent creations (all with the help or in conjunction with friends):

Only the middle one has a recording posted so far, but I'll get recordings of the others sooner or later. More to come I hope :)

Comments on TLT - 2008.03.30 - Making Music

1 Comment.

Test Comment

-- awwaiid 2008-05-26 22:26 UTC

1 Add Comment


2008.01.02 Events vs Actions in UI Code

Good morning to all of you... you've put so much thought into the site and thanked everyone who has 'been there' for you free college fight song ring tones More or less nothing seems worth bothering with. http://silver12.hit.bg/gold360.html 1972 munich olympic gold medal enemy, http://mitglied.lycos.de/infostuff/goldb27.html black pearl yin yang necklace cool, http://members.lycos.co.uk/infostuff/goldec9.html winchester silver tip 30-06, Such is life.

0 Add Comment


2007.11.30 MySQL Row Level Security

Tonight I am doing a bit of work on the EPFarms User Panel and Effin, our financial database. The Panel is a Continuity application running under FastCGI and suexec. The security model is different from most other web applications I've done, we use suexec to run the application as the individual Eggplant Farms user.

Philosophically, running the panel as the user is an extension of our overall security model, which is to build as directly upon the unix security model as we can. The interesting aspect of this is that, since the panel is running without any special privileges, the user could modify or replace the panel and still have all the same security access. They also have all the same access from the command line.

Sharing dynamic data with the user, such as their current account balance, is a bit tricky. We also need the ability for the user to modify some of their own metadata. Our current plan is to create command line tools that allow them user-specific access to our data, which is stored in MySQL.

Another way, the one that I'm going to switch to after tonight's research, is to utilize some new features of MySQL 5. We'll use views to emulate row-level security, and MySQL's own column-level security to allow them to directly read, and as appropriate write, to our database. Though it's always handy to have a command line interface, the extra intermediary was a bit cumbersome.

Here's how to do it.

Lets say we have a single userinfo table, which just holds their username, unix id, full name, and emergency contact info. And heck, let's insert a few rows.

create table userinfo (
  userinfo_id int primary key auto_increment,
  unixid int,
  username varchar(100),
  fullname varchar(100),
  contact varchar(100)
);

insert into userinfo set
  unixid = 1001,
  username = 'awwaiid',
  fullname = 'Brock',
  contact = 'a@b.org';

insert into userinfo set
  unixid = 1001,
  username = 'aardvarq',
  fullname = 'David',
  contact = 'x@y.org';

Now we create a view, limiting to the current logged in user with the USER() function.

create view userview_userinfo as
  select *
    from userinfo
   where username = SUBSTRING_INDEX(USER(),'@',1);

Finally we grant some access to user 'awwaiid' (though really we could grant access to '%' if we were so inclined).

grant select on userview_userinfo to 'awwaiid' 
grant update (fullname, contact) on userview_userinfo to 'awwaiid'

Now when I log in as awwaiid I have access to my own rows, and can update my full name and contact info. The panel application logs into the database as the user, accessing and editing their data in a much more direct fashion than the command-line-wrapper method.

Comments on TLT - 2007.11.30 - MySQL Row Level Security

1 Comment.

This is Grrrrreat!

- Tony the Tiger

-- Anonymous 2008-07-01 15:16 UTC

1 Add Comment


2007.10.16 Pittsburgh Perl Workshop Review

This last weekend was the 2007 Pittsburgh Perl Workshop, where I gave a talk on Continuity. Though it was my first Perl conference, going to other nerd events had prepared me for what it would be like. Even so I thought it was fantastic -- you just gotta love those Perl People!

I talked to several people about Continuity, so hopefully I'll be getting some regular users and feedback. I found a bug in the most recent release, and have decided to roll back the installer... so I need to get another release out there.

One fun thing is an improvement I made to the Continuity wiki - I got the wiki-to-darcs (both-way) gateway going. I knows specifically about POD rendering , so it looks good as a webpage. See the Continuity::Mapper page as an example. If you edit the page, the cnage actually gets checked into darcs and then I can choose to pull it into my main branch. I still need to create a cron job to keep it up-to-date, but otherwise it seems to work swimingly.

So now I don't have to have my documentation in two different places!

0 Add Comment


2007.10.05 Added Darcs RSS Feeds

I've cleaned up and expanded my RSS feeds a bit. So now I have three main feeds:

The first is a better URL for the feed of this blog. The second is a feed for the whole wiki (I'm probably the only one who cares about that one). The third... that's the fun one!

I took the darcs2rss script from the internets and made some slight modifications. Then I constructed a program that goes through my projects directory and looks for all of the Darcs repositories, generating a feed for each one. As a bonus, it also takes the most recent entries from all the individual projects and creates an ALL feed, which is the third feed above.

So subscribe to that feed and you'll be absurdly informed of what I'm up to, code-wise. For the feed of individual projects, look in http://thelackthereof.org/darcs-rss/feed/. On my TODO list is to make the feeds link to an online diff, as that seems like most human-friendly thing to do.

0 Add Comment

More...