Your Ad Here
 
The New Kindle Fire by Amazon

The New Kindle Fire by Amazon

While driving home from work I heard that Amazon released a new tablet, the Kindle Fire. According to the talking head, the tablet doesn’t do as much as the iPad, but it’s a fraction of the price—$199. I couldn’t wait to get home and see what this was all about.

I sure was surprised to see that not only the long-awaited tablet, the Kindle Fire, was announced (reserve yours for November 15th), but also a new Kindle (available now) and Kindle Touch (available November 21st). I think what caught my eye more than anything was that the new Kindle is only $79! I was lucky enough to be working in the publishing industry and get a very snazzy discount on my second generation Kindle, but it was still nearly $200. I’ve been dancing around the idea of getting a new Kindle, but there really isn’t a real reason. I mean, mine works great, it does everything I want it to do…it’s just that the new ones are slightly smaller, lighter, and they are new! Man, sometimes I am such a consumer-whore…but then again…it’s only $79…

My Kindle dilemma aside…I’m not super thrilled for the Kindle Fire announcement since I have an iPad, and—like my Kindle—it does everything I want it to do. If I didn’t have a tablet already, I think I’d be much more into it. My husband made a great point that the Kindle Fire is basically a super-duper tool for shopping on Amazon. He followed the statement up with, “What do you mostly use the iPad for?” I instantly responded, “Buying shit on Amazon and looking up that guy who was in that movie with Kevin Bacon.” Having a tablet in your living room is a terrible/awesome thing. When I see an commercial for something I want, I can look it up, double-check the finances, then purchase the item from Amazon—with their Prime shipping, I’ll have my purchase in two days. That’s got to be why the price is so low. Amazon could probably give this tablet away, and still make a boatload of money just from the www.amazon.com purchases!

Anyone out there going to order one of these new toys? If so, let me know what you think about the Amazon Silk web browser…it sounds so sexy!

 

Checkout Kindle Books from Your Local LibraryBeing an avid—borderline obsessive—reader, you can imagine my excitement when I recently read that you can borrow Kindle books from your local library. Books have always been a necessary expense for me. I put off trips to the salon, expensive shoes, and other girly things in order to get my reading on. I was a bit put off by the Kindle at first, like the commercial says, “I like the feeling of books.” Well, I did…until two years ago when I read my first Kindle book, “A Christmas Carol,” by Charles Dickens. I know it’s not the longest book in the world, but I didn’t move until I finished it. From that point on I was devouring Kindle books like my dog goes through dry food. As with hard-copy books, thems cost money! Therefore, borrowing  books from my local library is a great thing.

After reading Amazon’s article on the new library loan functionality, I immediately went online, found the head librarian at the Santa Barbara Public Library, and asked her if they participate in this program. She quickly got back to me and said indeed they are participating. The next day I downloaded a library card application, and made my way to the closest branch to get my first library card in 20 years. Within minutes I was a card-carrying member of the Santa Barbara Public Library…and I was also out the door. It’s not that I didn’t want to explore the library…ok, I didn’t…I just wanted to get back to the privacy of my home to download my first Kindle book from the library!

I wasted a good 20 minutes dicking around online, not getting anywhere. I mean, why should I read how to do something? By the time the 21st minute rolled around, I noticed a large banner on the library website that “Library eBooks for Kindle” with a nice picture of a Kindle, no less. That couldn’t have been there the whole time? I’m sure the library posted it 21 minutes after I accessed their site…but I digress. I clicked on the banner, searched out the book I was looking for, #10 of the Sookie Stackhouse series (don’t you judge me!), and checked that bad-boy out. I was then brought to a screen in Amazon where I downloaded it, and dropped the file onto my Kindle. If you have the fancy Wi-Fi Kindle, it sends it to you like magic.

Now I get to be smug and act surprised when people tell me they don’t have library cards, “Really, you don’t support your public library?”  The best part is that I get to read a shitload of books for free. I may never get out of my reading chair again! I encourage you Kindle readers out there to see if your public library is doing this. Seriously, aside from getting your library card, it’s not that much different than purchasing books from www.amazon.com. Go. Do it. What are you waiting for?

 
Steve Jobs and Wozniak in 1977

Jobs and Wozniak, courtesy of Gizmodo

“I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple’s CEO, I would be the first to let you know. Unfortunately, that day has come.” —Steve Jobs, August 24, 2011

I’m sure by now you’ve heard the big news that Steve Jobs is stepping down as Apple’s CEO, and the current COO Tim Cook will be taking his place. I can’t say that I’m surprised, Jobs has been ill for quite some time, and he needs to focus on himself and his family. So where does that leave Apple?

I’m not going to say that it’s all going to hell in a handbag, but I think Cook has some huge shoes to fill. Regardless of your IOS v. Droid/Mac vs. PC point of view, you can’t argue that Jobs is an amazing innovator and has made some very smart choices to get Apple to where it is today. Seriously, companies are going under and businesses are reporting losses, but people are still finding the money to buy the latest iPhone. People can ironically bitch about the economy while sipping a latte at the corner coffee shop while checking their stocks on an iPad2. Even in the worst economic times since the Great Depression, people thirst for Apple products. Yes, yes, there is an entire marketing team and countless others behind the company, but with Jobs at the wheel, they have consistently portrayed their products as hip, cool, and sexy—and we eat it up.

Okay, so you’re shaking your head because you could care less about Apple. Come on, you’ve got to give the man credit for being an innovator. Sure, I love Android OS on my phone, but who had the first true “smart phone”? Apple. I also dig the Droid Tablets now, but who had it first? Apple. What we know now as “Windows” originated with the Apple Macintosh. It’s one thing to take an idea that has already been created and make it better, but its quite another to give the public something completely new.

Oh, don’t give me the “he stole it from Xerox” argument. Okay, let’s say that he “stole” the GUI from Xerox—he sure as heck executed it in a way that no one else even thought of.

On the flip side, what happens when you try to be super innovative with your wacky products? You have some failures. Hey, it happens! Check out this list of Apple products that failed from www.minyanville.com. Some of those are such a flash from the past. I remember wanting a Newton so bad back in the day—it was going to change everything! And it would look oh-so-sweet next to my LC2. Even though these products didn’t make it, you can see how they led to better, more polished machines. You can’t win every time!

Another point to show how badass Jobs has made the company—you know how folks complain that iPads aren’t as good as Droid tablets because they don’t support Adobe Flash? What I find amazing is that it’s not stopping Apple. What are web developers doing? Making iPad versions of their sites that use alternatives to Flash! Hah, people bend over backwards to conform to iPad—most excellent.

Back to my original point, Cook has some huge shoes to fill. Maybe his leadership will do even greater things for the company! I know there are loads of people working behind the scenes at Apple, but none of that occurs without a great leader making the right decisions. I know, I’ve called Jobs “smug” in the past, but I think it’s okay to be smug when you can back it up. I wish luck to Cook, health to Jobs, and I look forward to seeing what Apple comes out with next. The competition between IOS, Droid, Windows, etc. is great—it just means we’ll keep getting more awesome products out of all these guys!

 

These are the Droids you ar looking for, apparently...

That’s right, Google has announced its intention to purchase Motorola Mobility, otherwise known as the cell phone division, for $12.1 billion. Not chump change right?

Google is feeling the pinch from Apple and Microsoft trying to push around their Android Operating System and mobile devices, so they are cutting out the middle man and aquiring Motorola, along with Moto’s 17,000 patents. Of course the buyout will have to pass muster with the Department of Justice, but all things considered this seems like it may be a great partnership for all the Android fans out there.

Google CEO Larry page said today on the companies blog that, “Together, we will create amazing user experiences that supercharge the entire Android ecosystem.” As long as Google maintains their current open culture around Android and allows continuous development via open source apps, this could be the deal that cements Android in front of iOS permanently. Can’t wait to see what Moto and Google can cook up together.

Sources:

http://www.dslreports.com/shownews/Google-to-Buy-Motorola-Mobility-for-125-Billion-115673

http://googleblog.blogspot.com/2011/08/supercharging-android-google-to-acquire.html

 

Rise of the Planet of the Apes Movie PosterBig news everyone, I not only saw Rise of the Planet of the Apes in a theater, but I saw it on the release date! Now, if only I can motivate myself to write more timely reviews, I’d be in business. I’m going to start off by saying, there will be spoilers in this, so just stop reading now if you don’t want to know how the Statue of Liberty ends up on the beach in San Francisco. Okay, kidding, but seriously, I’m gonna give stuff away here—you were warned.

You should know that I’m a huge fan of the Apes franchise, with the exception of Tim Burton’s remake. No me gusta, bleh, ugh…Heston, why? WHY? I own the original five films, the behind the scenes documentary, the cartoon series—for which there aren’t enough drugs in the world to make watchable, and even the hot little number, Play-Mate of the Apes starring the very talented Misty Mundae. Long story short, I loves me some apes.

As far as my favorites, aside from the original, I’m torn between Escape from the Planet of the Apes and Conquest of the Planet of the Apes. Caesar makes his first appearance in Escape, and he tears shit up in Conquest, so when I heard he was the main character of this new film, I was all kinds of stoked. As far as harking back to the plot of the original series of films, the name of the chimpanzee is the only thing it has in common. Alright, now let’s get into my thoughts on Rise of the Planet of the Apes.

Within the first few moments of the movie we are introduced to a lovely chimp named…wait for it…Bright Eyes! If you’re a fan of the original movie, your heart probably skipped a beat here too. It was a little nod to all us ape-geeks out there, and we thank you. Later on we meet another ape named Cornelia, which is a play on Cornelius, my favorite ape played by Roddy McDowall in many of the Ape films…when he wasn’t playing Caesar.

The plot is drastically different than the original films. Rather than a plague that takes out dogs and cats, leads to people taking in apes as pets, then the apes revolting against a slavery (not to mention the time travel loop that places Caesar in modern times), this new movie’s plot uses pharmaceutical technology to treat Alzheimer’s that when tested on apes makes them super smart. Unfortunately it makes humans very sick and then they die. It’s also easily spreadable…uh oh… I think they pulled it off really well, and it doesn’t have as many plot holes, and “Wait, so if…” moments. One thing lacking in this film is the takeover of the planet. They caused a huge ruckus in San Francisco, but they didn’t actually go global. But that’s okay. They did leave it open as we see the infected pilot leave for a flight to some far off place, and we can only assume that he sneezes and coughs his way through the continents. I’m okay with the rest of the movie happening in my head. It’s like a good book that doesn’t lay it all out for you like you’re an idiot.

As far as acting, I thought it was all pretty top-notch. I was particularly moved by John Lithgow’s portrayal of someone suffering from Alzheimer’s. Having lost people in my life to that disease, it was a bit hard to watch. Man, I need to go watch Harry and the Hendersons ASAP before I get too mushy. Oh, and can Tom Felton play a character who isn’t a prick? He did a decent job, and it was fun to see how shit went down for him…I won’t give that one away.

I think this movie also made me a fan of digitally created characters. Normally I find it hokey and annoying, but they were able to capture so much emotion in the apes’ faces and eyes, it was creepy. Don’t get me wrong, I love the old ape costumes too, but this movie tried something different, and nailed it in my opinion.

Now my list of grievances. As much as I enjoyed the inter-textual references to Bright Eyes, Cornelius, Heston’s appearance from beyond the grave, the hosing down in the cage, and the Caesar nods*, I was very disappointed at the forced lines, “Get your stinking paws off me, you damned dirty ape!” and “It’s a madhouse, a madhouse!” I’m sorry, but if you’re not Charlton Heston, you can’t say those lines. Besides, it felt like selling out to those folks who just know those lines because everyone knows them…even if you haven’t seen the original movie, you probably know them. I think I let out an audible, “oh, come on!” in the theater at that point.

Long story short, I thought this was a great movie. I’m not a huge fan of remakes, so I appreciate that this one took the idea of an ape takeover, and worked it in a different direction. What did you think? Did you catch more references to the original series? Do you think I’m a crazy person for obsessing over ape movies so much?

—————————————————————————————————————-

*Did you catch those? He totally does the “Caesar nod” like the revolution in Conquest. Go watch Conquest then see this movie again.

 
Tron Movie Poster

Tron Movie Poster via Wikipedia

As I’ve mentioned in previous posts, I’m way behind on my movie watching. I always get all psyched when movies come out, then I don’t have the money to actually go to the theater, then I forget when they come out on DVD, and I have to wait for Netflix to recommend it to me. Oh Netflix, what would I do without you? Well, I’m a bit mad at you right now for the price hike, but that’s another story. Now on to my Tron rant/review…

If you grew up in the 80s like me, you recall a movie called Tron, right? According to my parents, I first saw this at a drive-in when I was a year old, pretty rad, huh? After that experience, I would watch it on The Disney Channel. They seemed to play it a lot back then. All that neon was just so cool; I was instantly mesmerized even though I had no idea what was going. Over the years I’ve caught bits of the movie here and there, and it’s always a mix of old-school computer fun, silly “special” effects, and of course, Jeff Bridges being Jeff Bridges. Love that man. My husband had been wanting to see Tron Legacy, and I declared that this could not be done unless we watch it along with the original, back-to-back, hard-core geek-style.

I really enjoyed seeing Tron in its entirety after all these years, although one thing came up again and again, shouldn’t the movie have been called Flynn? I mean, I know it’s not as catchy and techie sounding as “Tron,” but still! This created a two-day long argument between my husband and I. The way I see it, who is this movie about? Who gets digitized? Who saves the day? Uh…Tron was helpful, but if it wasn’t for Kevin Flynn none of it would be done. What do you think?

Tron Legacy Parody Poster

Tron Legacy Paraody Poster via Wowt

Now on to Tron Legacy…whose son is going into the grid? Who are we so happy to see once he’s revealed? Who, again, saves the day? Flynn. Yes, it should be called Flynn Legacy. Would you go see a movie called Flynn or Flynn Legacy? Shoot, I don’t know, a heck of a lot of people saw something called The Piano back in the day.

One thing I have to give kudos to Tron Legacy for is the portrayal of women. Yori in Tron was such a dummy. She never fully understood what was going on, and although she was helpful at times, she never seemed to have a clue. My favorite part is when she assumes Tron died, then kisses Flynn. Then like five minutes later when she figures out that Tron is alive, she goes all doey-eyed to him with a big kiss. If the programs were created by their users, is that saying that Lora, Yori’s user, was a dummy too? Weak. Tron Legacy features Quorra, who’s a bit of a badass. She does make a mistake by sending Sam to a good guy turned bad guy, but she didn’t know! She swooped in just in time and sacrificed herself to save Sam as well as the common goal of getting to the portal. Go Quorra, go.

Okay Tron-peeps out there, what are your thoughts? Let’s get our Tron on!

 
php mysql

PHP/MySQL

Have you ever tried to create a nice grid of MySQL results before? Perhaps something 4 items across and 4 items down with pagination for more than 16 results? Well, let’s go ahead and build that here so you can learn how to do it! Using tables for this is tricky and ugly. I don’t recommend it. We will be using some very straight forward PHP and CSS for this! Okay, this tutorial is not difficult to follow if you are familiar with PHP and MySQL. If you are brand new to PHP and/or MySQL, you should familiarize yourself with them by going through some more basic tutorials first! This tutorial also assumes that you have access to a web server that is running PHP 5.x and MySQL server. One last disclaimer…this tutorial doesn’t cover securing any of this stuff. I will likely create another tutorial in the future for keeping your stuff secure. So, be warned, none of what I’m giving you here is secured!

First, let’s look at the basic HTML and CSS that make this work:

<style type="text/css">
#dataGrid{
  width: 800px;
  margin: auto;
}

.thumb{
  width: 150px;
  height: 100px;
  float: left;
  clear: none;
  margin: 5px;
  background: #ccc;
}
</style>

<div id="dataGrid">
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
  <div class="thumb"></div>
</div>

DEMO THE ABOVE CODE!

Okay, let’s get into the details. We need a database. I’m calling mine dbGallery. Using phpMyAdmin, or another MySQL client, create your new database and name it whatever you want. Now, inside of the dbGallery database, I’m going to create a table called tblPhotos. Again, call yours whatever you like. tblPhotos is going to have the following fields: photoID(int 11), photoName(varchar 30), category(varchar 20), active(int 1). Make sure to set photoID as the primary key and also set it to auto-increment! Next we need to add some photos to tblPhotos. So, let’s create a nice script that will make this more automated. In your web root, create a new folder called galleryScripts. In the galleryScripts folder, create a new PHP file called mysqlConnect.php and give it the following contents:

<?php  

$db_host = "";  //put your hostname in the quotes

$db_username = "";  //put your username in the quotes

$db_pass = "";  //put your password in the quotes

$db_name = "dbGallery"; //change dbGallery to whatever your db is called

mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql");
mysql_select_db("$db_name") or die ("no database");
?>

Now, back in the web root, create a folder called galleryPhotos. Also in the web root, create a new PHP file called addPhotos.php and give it the following contents:

<?php
include "galleryScripts/mysqlConnect.php";

//Parser for Add Photo Form
if (isset($_POST["photoName"])){
	$photoName = mysql_real_escape_string($_POST["photoName"]);
	$category = mysql_real_escape_string($_POST["category"]);

	//add photo to db
	$sql = mysql_query("
			   INSERT INTO
			   	tblPhotos (
				photoName,
				category,
				active
			   )VALUES(
				'$photoName',
				'$category',
				'1'
			   )") or die(mysql_error());
	$pid = mysql_insert_id();
	$newname = "$pid.jpg";
	move_uploaded_file($_FILES['fileField']['tmp_name'],"galleryPhotos/$newname");
	header("location: addPhotos.php");
	exit();
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Add Photos</title>

</head>
<body>

<h3>Add New Photo</h3>
<form action="addPhotos.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
	Photo Name: <input name="photo_name" type="text" id="photoName" size="64" /><br />
	Category: <input name="category" type="text" id="category" size="64" /><br />
	Upload Image (jpg only):
    <label>
    	<input type="file" name="fileField" id="fileField" />
    </label>
    <label>
    	<input type="submit" name="button" id="button" value="Add Photo" />
    </label>
</form>

</body>
</html>

And now, in your web root, create a new PHP file called gallery.php and give it the following contents:

<?php
//connect to db
include "galleryScripts/mysqlConnect.php";

//check for a page number. If not, set it to page 1
if (!(isset($_GET['pagenum']))){
	$pagenum = 1;
}else{
	$pagenum = $_GET['pagenum'];
}

//query for record count to setup pagination
$data = mysql_query("SELECT * FROM tblPhotos WHERE active = 1");
$rows = mysql_num_rows($data); 

//number of photos per page
$page_rows = 16; 

//get the last page number
$last = ceil($rows/$page_rows); 

//make sure the page number isn't below one, or more than last page num
if ($pagenum < 1){
	$pagenum = 1;
}elseif ($pagenum > $last){
	$pagenum = $last;
}

//Set the range to display in query
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;

//get all of the photos
$dynamicList = "";
$sql = mysql_query("SELECT * FROM tblPhotos WHERE active = 1 $max");
//check for photos
$photoCount = mysql_num_rows($sql);

if ($photoCount > 0){
	while($row = mysql_fetch_array($sql)){
			$photoID = $row["photoID"];
			$photoName = $row["photoName"];
			$category = $row["category"];

			$dynamicList .= '
							<div class="thumb">
								<a href="photo.php?id=' . $photoID . '"><img class="clip" src="galleryPhotos/' . $photoID . '.jpg" alt="' . $photoName . '" width="175" border="0" /></a>
							</div>
							';
	}
}else{
	$dynamicList = "There are no photos at this time!";
}

mysql_close();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tech Remedy Grid Gallery Demo</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
	<?php
	    echo '<p style="text-align:center; font-weight:bold;">Page ' . $pagenum . ' of ' . $last . '</p>';

        if ($pagenum == 1){
          	echo '<div class="pagination" align="center"><ul>';
        }else{
            echo '<div class="pagination" align="center"><ul><li><a href="' . $_SERVER['PHP_SELF'] . '?pagenum=1">« first</a></li>';
            $previous = $pagenum-1;
        }       

		//check if number of pages is higher than 1
		if($last != 1){
			//Loop from 1 to last page to create page number links
			for($i = 1; $i <= $last; $i++){
				echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?pagenum=' . $i . '">' . $i . '</a></li>';
			}
		}

        if ($pagenum == $last){
            echo '</div>';
        }else{
            $next = $pagenum+1;
            echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?pagenum=' . $last . '">last »</a></li></ul></div>';
        }
    ?>

    <div id="dataGrid">
		<?php echo $dynamicList; ?>
    </div>

</body>
</html>

Okay, we are ready to start adding some photos to our gallery! Open a browser and navigate to your addPhotos.php file. Fill out the form and add a photo. Repeat the process until you have added several photos. Make sure to add more than 16 if you want to see the pagination working!

Now, if you go to gallery.php in your browser, your images should be displayed in a vertical list. It doesn’t look all that great. So, let’s create a CSS file that will make the images appear in a grid and clip them to all fit real nicely! In the web root, create a new CSS file called style.css and give it the following contents:

#dataGrid{
  width: 800px;
  margin: auto;
}

.thumb{
  width: 175px;
  height: 100px;
  float: left;
  clear: none;
  margin: 5px;
}

.clip {
	position: absolute;
	clip:rect(0px 175px 100px 0px);
}

.pagination{
	padding: 2px;
}

.pagination ul{
	margin: 0;
	padding: 0;
	text-align: center;
	font-size: 16px;
}

.pagination li{
	list-style-type: none;
	display: inline;
	padding-bottom: 1px;
}

.pagination a, .pagination a:visited{
	padding: 0 5px;
	border: 1px solid #9aafe5;
	text-decoration: none;
	color: #2e6ab1;
}

.pagination a:hover, .pagination a:active{
	border: 1px solid #2b66a5;
	color: #000;
	background-color: #FFFF80;
}

Now, just navigate to your gallery.php file in your browser and you should see a nice paginated grid of photos! All of the photos links are broken though! Let’s fix that. Create a new PHP file called photo.php and give it the following contents:

<?php
//connect to db
include "galleryScripts/mysqlConnect.php";

//initialize some vars
$photoID = '';
$photoName = '';

//check what photo we are looking for
if(isset($_GET['id'])){
	$photoID = mysql_real_escape_string($_GET['id']);
	//get the photo
	$sql = mysql_query("SELECT * FROM tblPhotos WHERE photoID='$photoID' LIMIT 1");
	while($row = mysql_fetch_array($sql)){
		$photoName = $row['photoName'];
		$category = $row['category'];
	}
}else{
	echo 'No photo was selected!';
	exit();
}

mysql_close();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tech Remedy Gallery Demo - <?php echo $photoName; ?></title>
</head>

<body>
<div id="photo">
	<img src="galleryPhotos/<?php echo $photoID; ?>.jpg" alt="<?php echo $photoName; ?>" width="400" /><br />
    <h2><?php echo $photoName; ?></h2>
    <p><?php echo $category; ?></p>
</div>
</body>
</html>

And that’s it! Now, when you click on a photo in your gallery it will take you to a page that nicely displays your photo along with some photo information. Pretty cool, huh?

DEMO

Let me know in the comments if you come across any problems!

 

If you have ever had to run a series of SQL statements that alter the table or tables, then you know the fear of encountering an error in the middle of the script!  Let’s say you need to run a series of Insert statements and it errors out before it finishes.  You now have extraneous rows in your table or tables that immediately affect your data integrity.  So, how do we prevent this?  Well, the CFTRANSACTION tag saves the day by allowing you to store all of the SQL changes in an array and not actually committing them to the DB until the script completes error free!  We use the CFTRANSACTION tag in conjunction with CFTRY and CFCATCH.  The basic syntax is this:

<!---First we lock the ColdFusion Server to prevent any other scripts from messing us up--->
<cflock scope="server" type="exclusive" timeout="5">
    <!---now we open the cftry--->
    <cftry>
        <!---here's where we start the cftransaction--->
        <cftransaction action="begin" isolation="read_uncommitted">
            <!---ALL OF OUR QUERIES GO HERE--->
            <cfquery name="insert1" datasource="#application.datasource#">
                INSERT INTO
                    tableName (
                        firstName,
                        lastName
                    )VALUES(
                        <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.firstName#">,
                        <cfqueryparam cfsqltype="cf_sql_varchar" value="#form.lastName#">
                    )
            </cfquery>
            <!---rest of inserts would go here...--->
        </cftransaction>
        <!---open a catch--->
        <cfcatch>
            <!---this cftransaction will rollback any sql changes if the script errors--->
            <cftransaction action="rollback" />
            <cfrethrow>
        </cfcatch>
    </cftry>

    <cftransaction action="commit">
</cflock>

Let me know in the comments if you have any questions!

 
Google Plus - Google+

Google Plus

When I was first invited to Google+ by fellow geek, Lynette Young, I wasn’t sure what to expect.  I was one of those people who really had high hopes for Google Wave and was, like most others, utterly let down when they finally delivered.   So, at best, I figured it would be worth checking out.  I certainly didn’t expect to find a social network that would inspire me to close up my Facebook account.  I did notice an intense buzz surrounding Plus on other social networks though.  I witnessed people literally begging for Google+ invites to their geek friends on Facebook.  It was intriguing to say the least.

I logged in and started playing around.  Because of how social networks have become a part of my daily life, I had no problems navigating around the site.  I didn’t have any whimsical sense of magic or enlightenment, but there were a lot of moments punctuated with me thinking things like, “Oh, nice!” or “It’s about time someone implemented that!”.

The absolute standout feature is Circles.  Circles is a new and clever way to manage the grouping of friends.  Facebook had lists, but they were insanely under utilized.  Google scored major points by focusing the entire network around Circles.  Right away I thought of a few cool uses for Circles.  For example, I created a Circle called “Local” and added everyone in my area.  I also created a Circle for business and another for family.  It’s really intuitive and easy to use.

Another feature that stood out was Hangouts.  Hangouts are group video chats that are open to whatever Circles the creator specifies.  Very cool!  It only took Facebook a week or two to follow suit with Skype integration.  However, Google+ wins this battle because of how simple it is.

I also took the time to download the Android App for Google+.  I was immediately impressed with a few features, specifically the instant upload feature for photos and videos.  Whenever I take a photo or video with my Android phone, it automatically uploads them to Google+ to a private folder that only I can see.  I can then choose individual photos or videos to share on Google+…very cool!

So, what’s the final verdict?  Well, I plan to delete my Facebook account within the next week or so.  Yep.  It’s that good!

 

Chromebook

June 15 marks the public launch date of the Google Chromebook in the U.S. and U.K. So will this date go down in history, like the Wright Brothers first flight or the Apollo 11 moon landing? Or is it doomed to be a failed attempt to unseat Microsoft (and maybe even Apple) as the reigning champion of the Operating System world?

The Chromebook is different because Google has designed its operating system from the ground up to work as part of the “cloud”-that oh so nebulous term used by informed and uninformed alike to describe what is essentially a terminal. Google is moving forward by looking back to the days when terminals existed for user input, and the mainframe or server did all the work and storage. Now admittedly the Chomebook and Chrome OS are slightly more complex, but at the basic level the machine is a web terminal.

Those of you familiar with the Chrome browser will feel right at home on the Chromebook. It utilizes your Google login to grant you access, and all activities are done within that same Chrome shell. Little to no data is stored locally, and once you logout, no one else can access your profile.

I had an opportunity to sit down with one of the CR48 Beta units, and I must admit it was pretty slick. With its SSD the machine was booted up and I was logged in in under 30 seconds. Of course, you could do the same thing now with Win7 or OSX and an SSD. Chromebook also comes with built in B/G/N Wifi capability, as well as onboard 3G wireless, with 100 MB monthly at no charge through Verizon Wireless. Google has also dumbed down the updating and security processes, making them all automatic on the Chromebook. Chrome also has an increasingly large selection of apps, much like those available in iOS or Android.

Overall, for someone who is already cloud-oriented, and is looking for a moderaterly priced laptop/netbook, the Chromebook would be a decent choice. For now, I’ll chose to stick with something that allows more in the way of customization and local storage until the tech becomes more mature and full-featured.

For more information, check out http://www.google.com/chromebook/

© 2011 Tech Remedy Suffusion theme by Sayontan Sinha