I hope that's not Porn!

Apparently, linking to porn without expliciting identifying what you are linking to is illegal and punishable by fine and up to 20 years in prision.

Yes — that goatse prank you just pulled is more devastating to our society than some murderers, rapists and child molestors are.

You scoundrel.

Rock Out

Zoo Trip (w/photos)

Went to the zoo. Took the camera. Took about 200 pictures.

I liked 4.

Sounds about right.

hawk
A Hawk

lizard
The closest we get to dragons these days

squirrel
Not on exhibit, but plenty of them there. They like to sneak into carriages

girrafe
Sad or sleepy?

Building a Beach Barricade

Ahh, alliterations, how we love thee.

Spent some time at the beach this weekend (instead of at the BF2, omgwtfhax!) and had some fun collecting drift wood and building some things. Here's the run down...


The Beach Barricade No real story here. Someone else had started it (first few logs) we just came along to finish the job. It kind of went from a small alcove/window thing and became this psuedo-boat type apparatus as we built it.


More boat like


Seesaw Had some fun trying to balance on this old-tyme contraption too.


See ya!

Oh yeah, there's also a nice "glamour shot" of the construction.

Dissapointed Marco & Pistol

This must have been very early in our shooting days: wrist snap plus readjusting grip after each shot.

Turning 23

Well, not turning so much as I have turned. This last sunday I officially made it through 23 years of not getting myself killed. pat myself on the back

Now, one of things most people know about me is that I play too many video games -- most of them involve one team shooting another team with lots of guns. The peculiar thing about this is that I'd never shot a gun. Notice the past tense there.

I took a trip over to Jackson Arms in South San Francisco (it's only about 20 minutes from here). They offer a really cheap ($40-50) course on learning to fire a hand gun.

They start you off with one of these .22 caliber handguns (mine looked pretty much exactly like this one)

a .22 caliber handgun

They teach you the parts, how they go to gether, which buttons do what, basic safety, and firing positions. Then they put you on the range with the instructor for a few rounds where they show you how to "light em up".

It. Was. Awesome.

To my credit, I'm a pretty damn good shot with the .22, out of my first (ever in my whole life) fired 25 shots, 12 of them came out bullseye at 7 meters.

a closeup of the bullseye hits on my first target
A close up and no red dots

After shooting about 100 rounds from that 22, we got a free upgrade to try a larger caliber weapon -- being the big game nuts we are, Marco (who went with me) picked out the USP 9mm.

a 9mm usp handgun

Suffice it to say, I'll stick to the .22 for a while. (The 9mm has an incredible amount of kick to it compared to the light nothing of the .22) I did pretty poorly with the 9mm as I wasn't able to handle the recoil very well, my shots end up all over the target, and the gun completely unsteadied me.

End game, however, is that I'm pretty hooked. Looking back at the experience, it was really, really enjoyable. I'm going to go back and try a rifle (they have a ruger 10/22) and see how that goes. :D

Spore

This is going to be one of the most amazing games ever.

My Car Has Arthritis

Or a serious affinity for the rainy season and seeing my face twisted in convulsions of rage, disappointment, and shock.

I was attempting to help a friend move when, walking away from the car, I pressed the lock button. The car normally replies with a single happy horn chirp as if to say "Ok, buh bye!" This time however, it screeched out three long honks. I worried.

Walking back to the car, and attempting to unlock it with my remote, it would not respond. I unlocked the car door with my key and fear, "what broke, and can I still drive?" I swore.

The car would not start. It would not crank. It would not fire. I insert and turn the key, and the car lights up like everyone is home, but it lies cold. The stereo blasts, the A/C blows, and the lights flare on, but the car won't run. I call my dad.

The next day he comes to town, conveniently, for a trip to a museum. He helps me to jump the car since no one I know in SF has a car. The car acts as if no time has past since it first disappointed me; blasting, blowing, and flaring but still not starting. I swore so more.

The car is towed to the Saturn dealership where they begin to assess my damages. I get a call that afternoon that the car tech can't access the onboard computer diagnostic module. They can't proceed because my friends moving things are still in the car. I'm exasperated.

I rent a UHAUL pickup; all that was available on such short notice. I take it to Colma to load her things out of the car, and find out that it's pouring rain out now. Onto her things. In the pickup. And again, I am outside, in the rain, sealing a car up with duct tape thanks to my car's failing. I'm fuming.

I rack up $400 in dues simply to diagnose my car's atypical personality traits -- the RKE unit had failed. It failed right after I had locked it which, subsequently, activated my starter disabler system thus rendering the car unusable. I'm exhausted.

I pay to have some leaks fixed, I pay for the diagnosis, and I pay for the replacement parts. I pay $700. I'm going home.

Welcome to my New, Old Site.

I warn you, because it's something you're not used to any more: You're going to have to click. Click now, and click lots, damnit! I'm tired of sitemaps and roll out menus and fitting all your navigation into a too-small border along the heavy edge of every webpage.

Click! That's what the web is for -- no roll-over mouse menus here, no swishing, fading, content-switching sections, no find-it-all here sitemaps. This is a breath of fresh air in a system that wants to coddle you at every corner, page, and pixel. You will not be pampered here by the excess of indulgence into your laziness. You will click!

The web is for exploring! Hyperlinks, the fundamental structure of the web, the foundation of what makes the web the "web", must be clicked. click, a new opinion. click, a new thesis. Click, a good joke. Click, a riveting tale.

I speak to the ever expanding site menus, the over zealous inclusion of every section, niblet, and destination, the expanse of sub-sub-sub menus -- none shall show themselves here. I'm striking down my too-many-to-understand menus and leaving you with straight-forward-quickly-digestable paths. When you click, you'll know where you click to! You haven't but the choice, with the choice so few.

Back to the basic, back to the fundamental, the clean, the simple, the old. Welcome to my new, old site.

LinkJax 1.0

LinkJax: The simplest way to AJAX enable your webpages.

Add script elements to the HEAD and some classes to you links and you're ready for dynamically loading pages with no browser refresh!

How it works

LinkJax is setup to detect any A element on the page with a class of linkjax and usurp the onclick function to reroute the data from the href source into the JS function you define in the rel attribute. Yeah, that's a mouthful, but it's what it does.

Failsafes and Graceful Degredation

LinkJax is safe to turn use in environments where you need support for non Javascript enabled browsers. With each link an additional integer variable ('linkjax') is passed along so that your PHP file can determine if the user is accessing the page via a normal click through, or via the LinkJax connection. Additionally, if there is a failure along the way and the LinkJax call fails, it will call your JS function with a "false" for success.

Usage

LinkJax is super simple to use:

  1. Prepare your PHP file:
    <?php 
    if( $_GET['linkjax'] )
    echo "LinkJax: You clicked the button for " . $_GET['name'];
    else
    echo "Normal click through: You clicked the button for " . $_GET['name'];
    ?>
  2. Prepare your HTML:
    <html>
    <head>
    <title>My first LinkJax Page</title>
    <script type="text/javascript" src="linkJax.js"></script>
    <script type="text/javascript">
    function callBackFunction(data, success) {
    alert("Data: " + data + "\nSuccess: " + success);
    }
    </script>
    </head>
    <body>
    <a href="simple.php?name=Jason" class="linkjax" rel="callBackFunction">Jason</a> |
    <a href="simple.php?name=Maria" class="linkjax" rel="callBackFunction">Maria</a> |
    <a href="simple.php?name=Carlyn" class="linkjax" rel="callBackFunction">Carlyn</a>
    </body>
    </html>
  3. Upload those two files and linkjax.js and test!

Very straight forward.

Demo and Download

Compatability

I've tested this in:

  • WinXP: Firefox 1.0
  • WinXP: IE 6
  • WinXP: Opera 8
  • OSX: Safari 2.0

Feel free to contact me if you find (and/or patch) any bugs.

Copyright?

Theoretically, I expect professional, curteous, and responsible use of my code and proper attribution. Realistically, I don't have time to hunt down and prosecute the asshats of the world who would steal the code and claim it as their own. Please, be the former.

Super Special Thanks

A big thank your goes out to Brendon Crawford for AJFORM, the inspiration behind this project. AJFORM is just as simple to use and implement, but utilzes form elements for submission.

Long Since Due

Nice big jpg for ya. The site I mention is Battlefield 2 Stats.

WP-ShortStat Improvements

Since release, WP-ShortStat has garnered accolades from pretty much everyone using it. Of course, I've also gotten a lot of really keen suggestions and now it's time to make it better.

"How do you want to see WP-ShortStat improved?"

Before I get started, I want to know what you'd like to see improved. Leave a comment and I'll keep a running list of improvements here:

* 1.5.1.3 Compatability
* PHP5 Compatability
* Options Page
** "Dump" stats after one week/month (toggle)
** "Dump" search terms older than a week/month (toggle)
** Track Admin Pages (toggle)
** Track Users (toggle)
*** Above what level to track?
** Show stats by grouping browsers (toggle)
** Show stats by grouping operating systems (toggle)
* Separate statistics 'box' for RSS feeds
* Merge better browser detection with ceprix's code
* Add template tags
** wpss_hits_today()
** wpss_users_today()
** wpss_searchterms()

Some inclusions I'm considering:

* Adding "post tags" such as that get replaced in post text by the appropriate information. Not sure if this is really necessary -- yes, no?
* Add javascript detection for:
** Available plugins
** Screen Size (resolution)
** Screen Depth (colors)
* Include support for the WordPress Dashboard Widget

Literary Stick

Mathibus has passed me the Literary Stick. Hey, I've never gotten one, so it'd be a shame to pass it up:

Five random tunes
  1. Star Spangled Banner by Rockapella
  2. Java Jive by The Manhattan Transfer
  3. My Home by Rockapella (er, again...)
  4. Dc 3000 by Thievery Corporation (See: Wired Creative Commons CD)
  5. Sun is Shining by Ministry of Sound
Currently reading
The inside of my eyelids.
Last film I saw
Hitch
Next on the stick-list
Uhm, Ian and Aaron.

Nifty, you can track the progress of this meme.

WP-ShortStat

A few days ago, I decided to give Shaun Inman’s statistics package, ShortStat, a try. A friend of mine had been using it and I really liked the summary type interface. Most stat programs are a compilation of stats for an entire month, but I was more concerned with just getting the most recent amount of data — including cross month information.

So I set forth to install ShortStat. Seemed pretty easy. Edit a config, upload, run install, add an include statement and go! Except I ran intro trouble at the “insert include” statment step.

It seems that, because of the way the ShortStat is set up, the database connection it uses and the one WordPress use tend to get into a hissy fit and then neither program works right. I did eventually find a place to stick the include statement that would work. The base index.php, if you want to know. However, after having gone through that I thought, “Gosh, this would make a great plugin…”

Enter WP-ShortStat

It took a lot of code repurposing to get this stats package to fit into a plugin (including rewriting every database query to use the WordPress database interface) but at the finish line was a singularily awesome plugin.

In short (pun very intended), you just upload-and-activate this plugin and it will automatically initialize itself and start tracking. Bam! Want to see your stats, just jump right to your Dashboard and check out the new submenu, “ShortStat.”

Could that be any easier?

Nope.


Update, Version 1.2: It seems the Admin section detection was faulty on some installs. While I don’t know the specific cause, I’ve reverted the plugin to doing a brute force detection: if the REQUEST_URI contains “wp-admin/” it won’t be counted towards your stats.

My Desk, A Pictorial Overview

Hover the image for descriptions of stuff on my desk.

My Desk

Server Machine

Lamp with cloth wrap

Dual 19″ gaming LCD's

The house phone

Mad money!

Microphone for CS:S

Samsung i500

Revenge of the Sith, Opening Night

Volume Knob

Projector Audio

Pen fer writin' sutff

Fidget toy...

Umbrella -- in case it rains inside

Knife

iPod Shuffle

DSL, sweet sweet DSL

Crappy old printer

Keys!

Headphones, very nice sony's

Plug for the Digicam

Projector (Joy!)

 

 

JM

  1. Posts
  2. Images
  3. Status
  4. Videos
  5. Audio
  6. Links
  7. About
  8. Contact