The author worked as a PHP / MySQL programmer for a Tampa Web Design Company for several years. He has now started his own Web Developer company and is recruiting clients.
Thursday, June 4, 2009
Testing Something
Tuesday, January 27, 2009
The Passing of a Friend
(no longer the case as JH no longer hosts the site)
I copied a piece from Creative Loafing. I hope they don't mind since I am giving credit here. This is talking about his business, but I think it says a lot about the person as well.
Serenity now
review by Brian Ries
2006-11-22
On the weekend after the annual Thanksgiving family gorge-fest, I head out for sushi. I wrote about this tradition last year, but it bears repeating. You may even want to try it yourself. There is something gastrointestinally appropriate about chasing a meat, starch and gravy meal with discrete amounts of pristine fish and tiny dollops of subtly seasoned rice. It soothes my soul just thinking about it. Better yet, no one in my family eats sushi. It may be the last peaceful moment I have until Jan. 2, 2007.
Thankfully, there are two sushi joints just north of downtown St. Pete, conveniently across the street from each other: Hook's and Sushi Rock Grill.
Not that Hook's is particularly calm. Inside, it's a shabby chic ode to Polynesian design run by a crowd of youthful chefs and servers, all entirely casual in appearance and attitude, with pop music pouring from the speakers and trays of sushi flowing from the bar. If I'm looking for serenity, I'm going to have to find it in a slice of fish.
That's no problem, actually, because Hook's fish is exceptional. Hamachi ($4.75) enters my mouth with a whiff of the sea, leaving behind the taste of butter and brine. Salmon ($3.95) looks solid enough but dissipates in a rich smear of fat and meat as soon as it hits my tongue.
Fine tuna, like that served at Hook's ($4.50), is reminiscent of a good steak, if that steak were distilled down to one cool, silky morsel that's light and fresh and as good as sex. When I'm having sushi, I also ask for "toro" -- that high-grade, fatty tuna that's difficult to find here in the Bay area. If tuna is like sex, toro is like making love. Mmm, fishy love. Sadly, Hook's "toro" ($7.95) is fine, but not much of an improvement over the regular tuna.
There is nothing shabby about the look across the street at Sushi Rock Grill. Black lacquer furniture, low lights and modern restaurant design give this place a posh, suburban feel. No vibe, mind you. Just décor.
It's hard to have a vibe when there are so few people partaking. I don't know -- maybe there are more people across the street because they don't want to be left out of some great happening. Maybe it's the soulless elevator music playing at Sushi Rock. Maybe more casual dining is what people are after. Maybe the sushi across the street is just better.
With the first bite of tuna ($4.50), that does seem to be the case. Sushi Rock's sushi is fine and it would be perfectly acceptable if there weren't better fish just across the way. Same with yellowtail ($4.50) that has just a bit too much chew.
Sushi Rock's salmon ($4.25) is the better between the two restaurants, though, so rich it's like eating salmon foie gras. And this restaurant manages to season the sushi rice appropriately, with enough sweet and tart mirin to add layers of flavor to the character of the bare fish. Over at Hook's, the rice is bland.
Rolls are a mess at both places. I'm not saying they're not tasty; it's just that modern sushi places have gone a little goofy with their combos. At Sushi Rock we could almost put together a meal named after Sean Connery movies -- there's an 007 roll and a Red October roll -- or Peter Weller movies -- a Screamer roll and ... if only there were a Robocop roll.
Making maki of grilled chicken seems a little sacrilegious to me, but if it works, I'm not going to complain. However, I will complain about the "Bangkok roll" ($8.88 at Hook's, $10.95 at Sushi Rock). Both joints have a similar version, but neither should bother. Sure, it's packed with a bounty of high-quality seafood -- tuna, hamachi, salmon, shrimp, crab -- but we have to bite through tough, chewy rice paper to get to it. No thanks.
Note to Sushi Rock: Chopped scallops get lost when in the same roll as sweet grilled eel ($9.95). Putting cream cheese in a fried roll, Hook's? Yech. Most of these overly clever rolls fall a little short, but a "lollipop roll" ($7.95) at Sushi Rock is worth a try. Salmon and crab are rolled inside thin slices of cucumber, with a bright ponzu dipping sauce on the side.
Sushi Rock coats a deep-fried, spicy tuna roll ($8.95) in breadcrumbs, resulting in a golden brown shell that is a bit too crisp and too substantial for the raw fish underneath. Better to have the light and airy tempura batter across at Hook's, like that on the lobster tail roll ($8.88).
There's more to this sushi restaurant duo than just coincidence. In 2003, sushi chef Hook Atsavinh broke off from former employers at Sushi Rock and, perhaps in a fit of spite, opened his own place within spitting distance. On the Hook's website, there is a thinly veiled jab at his neighbors: "You can go to other restaurants where your money goes more toward fluff." That would be cocky if it weren't so true.
Sushi Rock Grill, with its acceptable sushi and pleasant décor, might be the kind of date you could see yourself marrying. It looks good and can keep up with cocktail conversation, although it's a bit fastidious. What you really want, though, is a date with Sushi Rock's hot friend Hook's. Hook's is a wild child, exciting, down-to-earth, and, ultimately, more fun than the prettier place across the street.
Or, for those of us firmly trapped into the infinite cycle of death and rebirth known as the annual family holiday get-together season, Hook's is a release from pretense and suffering. This time of year, I can get enough tightly wound atmosphere at home.
Brian Ries is a former restaurant general manager with an advanced diploma from the Court of Master Sommeliers. Creative Loafing food critics dine anonymously, and the paper pays for the meals. Restaurants chosen for review are not related to advertising.
Hook, Rest in Peace.
We miss you.
Thursday, August 28, 2008
100 blogs?
My hat is off to those who have a life, and still manage to keep their blog(s) current.
Thursday, August 7, 2008
Rant
My skills have improved so much in the last 2 years that I make myself crazy when I have to edit code that I wrote a year and a half to 2 years ago. My whole style has changed, and my code is just so much neater (more consise) now.
That's it, just a little rant.
Monday, April 21, 2008
New Blog
This is the beginning of my goal of creating and keeping up 100 different blogs. That's quite a goal, but I want to see if it can be done. In no way do I expect to post to all 100 blogs every day, but if I can come up with 100 different types of blog and post to them once or twice a week, I'll be doing good.
Check out tecchristian.blogspot.com
Tuesday, April 15, 2008
Grab images from a menalto gallery
It detects going too far previous or too far "next". It allows for counted pages. If the number of pages is not divisible by 3, the last page is handled correctly. The numbered page you are on is not a link. There is a previous and next link that appear only when applicable. The links have the rel="nofollow" attribute so that the S.E.s don't find a bunch of basically duplicate pages.
Admittedly this would be better with colorized text, but here's a quick rendering of it. (if you copy this, be sure to paste it into a text only editor.)
<?php
$dir = 'gallery/albums/albumname';
$photosdb=@file($dir.'/photos.dat');
$count=0;
foreach($photosdb as $line){
$newphotosdb.=$line;
//echo $photosdb[$count];
$count++;
}
$newphotosdb=explode('"emailMe";N;}',$newphotosdb);
$counta=0;
foreach($newphotosdb as $photo){
list($null,$name,$null2)=explode('"name"',$photo);
list($null,$name,$null2)=explode('"',$name);
list($null,$caption)=explode('caption";s',$photo);
list($null,$caption,$null2)=explode('"',$caption);
//list($caption,$null)=explode('";s',$caption);
//echo("$counta $photo<br><br>");
$captions[$name]=$caption;
$counta++;
}
// open specified directory
$dirHandle = opendir($dir);
$count = -1;
$returnstr = "";
while ($file = readdir($dirHandle)) {
// if not a subdirectory and if filename contains the string '.jpg' or '.jpeg'
if(!is_dir($file) && (strpos($file, '.jpg')>0 strpos($file, '.jpeg')>0)&&
ereg('thumb',$file)) {
// update count and string of files to be returned
$count++;
$returnstr[$count]=$file;
}
}
//$returnstr .= '&';
//echo $returnstr;
closedir($dirHandle);
//echo("begin corry test");
$countb=0;
// foreach ($returnstr as $link){
// $countb++;
// $unthumb=str_replace('.thumb.jpg','',$link);
// $unthumb=str_replace('.thumb.jpeg','',$link);
// echo('<a target="_blank" href="http://www.mysite.com/gallery/albumname/'.$unthumb.'"><img
border="0" src="'.$dir.'/'.$link.'"></a> '.$countb.'<br>');
// }
//echo count($returnstr);
$num_of_images=count($returnstr)-1; // I actually mis-named this variable, but
it made sense (to me) at the time. It is actually the highest index number in
the array.
if($_GET['startimage']=="" $_GET['startimage']<0){$startimage="0";}else{$startimage=$_GET['startimage'];}
if($startimage > $num_of_images){$startimage=$num_of_images;}
// full size images are loaded with a SEFU. Take out "thumb" for full size image
and ".jpg" for SEFU.
$unthumb1=str_replace('.thumb.jpg','',$returnstr[$startimage]);$unthumb1=str_replace('.thumb.jpeg','',$unthumb1);
if(count($returnstr)>=$startimage+1){$unthumb2=str_replace('.thumb.jpg','',$returnstr[$startimage+1]);$unthumb2=str_replace('.thumb.jpeg','',$unthumb2);}
if(count($returnstr)>=$startimage+2){$unthumb3=str_replace('.thumb.jpg','',$returnstr[$startimage+2]);$unthumb3=str_replace('.thumb.jpeg','',$unthumb3);}
?>
<table border="1" cellpadding="3" cellspacing="0" style="border-collapse:
collapse" bordercolor="#111111" width="500" id="AutoNumber1">
<tr>
<td width="33%" align="center">
<p align="center"><?php echo('<a target="_blank" href="http://www.mysite.com/gallery/ambumname/'.$unthumb1.'"><img
border="0" src="'.$dir.'/'.$returnstr[$startimage].'"></a>');?></td>
<?php if($num_of_images>=$startimage+1){ ?>
<td width="33%" align="center"><?php echo('<a target="_blank" href="http://www.mysite.com/gallery/albumname/'.$unthumb2.'"><img
border="0" src="'.$dir.'/'.$returnstr[$startimage+1].'"></a>');?></td>
<?php }?>
<?php if($num_of_images>=$startimage+2){ ?>
<td width="34%" align="center"><?php echo('<a target="_blank" href="http://www.mysite.com/gallery/albumname/'.$unthumb3.'"><img
border="0" src="'.$dir.'/'.$returnstr[$startimage+2].'"></a>');?></td>
<?php }?>
</tr>
<tr>
<?php // the $unthumb variable happen to have the filname without extension,
which I need here as an array index.
?>
<td width="33%" align="center"><?php echo($captions[$unthumb1]); ?></td>
<?php if($num_of_images>=$startimage+1){ ?>
<td width="33%" align="center"><?php echo($captions[$unthumb2]); ?></td>
<?php }?>
<?php if($num_of_images>=$startimage+2){ ?>
<td width="34%" align="center"><?php echo($captions[$unthumb3]); ?></td>
<?php }?>
</tr>
</table>
<?php
if ($startimage > 0){$previmage=$startimage-3;
echo ("<a rel=\"nofollow\" href=\"http://www.mysite.com/image_grabber.php?startimage=$previmage\">previous</a> ");
}
$pages=ceil(($num_of_images+1)/3);
$pagenum=1;
$start=0;
while($pagenum<=$pages)
{
if($start==$startimage){echo("$pagenum \n");}else{
echo ("<a rel=\"nofollow\" href=\"http://www.mysite.com/image_grabber.php?startimage=$start\">$pagenum</a>\n");
}
$pagenum++;
$start=$start+3;
}
if($num_of_images > $startimage+2){
$nextimage=$startimage+3;
echo ("<a href=\"http://www.mysite.com/image_grabber.php?startimage=$nextimage\">next</a>\n");
}
?>