Justin Carmony
Web Designer & Software Engineer
  • Home
  • Pages
    • Utah PHP Users Group
    • PHP Bob
  • About
  • Portfolio
  • Talks
    • Demystifying CSS and WordPress
    • Blazing Data with Redis
  • Contact

PHP Workers with Redis & Solo

Posted in: Programming, Technology, Videos|Tags: PHP, redis, solo, Tips and Tricks, workers |January 10, 20122 Comments

I’ve come across an awesome combination of tools for managing PHP Workers, and thought I’d share.

Why Workers?

Sometimes there are situations when you want to parallel process things. Other times you might have a list of tasks to accomplish, and you don’t want to make the user wait after pressing a button. This is where “Workers” can come in. They are independent scripts that run along side of your application, performing tasks, or “jobs.”

An example is with Dating DNA and our score system. We generate scores between users to show how compatible they are with each other. When a user signs up, or makes a significant change to their profile questionnaire, we need to run a job to query our database, build a list of potential users, and generate scores. This takes 10-20 seconds, and while it is pretty fast, we don’t want to make the user wait for that. So we queue up a job for the user, divide up the work among several workers, and process the work.

General Concept

For this post, we’ll use the example of generating reports. Lets say on your internal website there is a button that you can click and it will email the user a report, and the report takes 2-3 minutes to generate. When the button is clicked, your code will insert the job into the queue. Meanwhile, workers are monitoring the queue. A worker script will pull the job off the queue, process the report, and send the email when its done.

For the queue management, we’ll use Redis. To let PHP read and write data to Redis, we’ll use the PHP Library predis. In our examples we’ll use PHP 5.3, however predis has a PHP 5.2 backport if you are not running 5.3.

Adding Jobs

To add jobs, we’ll need to connect to our Redis server:

/*
 * Connecting to Redis
 */

const REDIS_HOST = '127.0.0.1';
const REDIS_PORT = 6379;

$predis = new Predis\Client(array(
    'scheme' => 'tcp',
    'host'   => REDIS_HOST,
    'port'   => REDIS_PORT,
));

We’ll assume in all of our examples that we’ve done the following above & connected to Redis.

Read More

My 2011 Recap

Posted in: General, Personal|Tags: Goals, Personal, PHP |December 30, 2011No Comments

As I look back on 2011, its been a pretty fun year technology & work wise. While I have a few more draft posts to finish up, I thought I’d hit some highlights from the past year.

PHP

Its been a fun year with the Utah PHP Usergroup. I look forward to it each month, and if you’re in Utah, you definitely should come. We’ve had a lot of interesting talks, such as running your app in different clouds, several MySQL Forks and NoSQL stuff.

I also had a great time going to my first PHP specific conference. While I’ve attended and spoken at other conferences, Tek 11 was a lot of fun. Met a lot of smart and fun people.

As for work, I do almost exclusively PHP work. We power the Dating DNA website and APIs using PHP. All of the Clipish Apps’ APIs are powered by PHP. Alienware Arena, The GeForce StarCraft II Pro/Am Tournament, Thermaltake eSports, and a few other gaming tournaments sites, all powered by PHP.

I’m hoping to blog more about PHP this year. While I use it all over the place, it seems I write more about all the other pieces that interface with and support PHP.

New Technologies

There have been a handful of new technologies gaining traction. We’ve been using Redis in production for quite awhile now, and finding more and more uses for it. I’ve played around quite a bite with node.js, and I see some potential for augmenting PHP with it. MongoDB, CouchDB, and a few other data stores have shown a lot of potential in situations that play to their strength. I’m still a major fan of MySQL, but it’s nice to good options for things that MySQL isn’t as strong at.

New Goals

I’ve been working out, eating well, and such for almost 8 weeks now as well as my wife. The net effect is I’ve lost 16 pounds, and my wife has lost quite a bit too. This was done over the holidays even. We still have some ways to go to get to our goals, but we’re hoping to be successful in 2012 and hit our target goals. We’re even starting to enjoy lifting, cardio, and eating right.

I’m also setting the goal to blog once a week this year. I’ve tried daily, and that is just too much, but once a week is manageable. Hopefully it’ll be relating the technologies I use, to help share the cool stuff we get to use in-house.

Upcoming in 2012

We’re launching a new product in 2012 for Dating DNA, hopefully within a month or so. I’m also hoping to go to a few conferences this year, and perhaps speak at a few of them. Also, on the fun side of things, we’ll be going on a cruise in April, and perhaps a trip to China in September.

I hope everyone had an excellent 2011, and and amazing 2012!

Helping Daniel Buy A Water Buffalo

Posted in: General|Tags: charity, donating, water buffalo |November 27, 2011No Comments

I have a very good friend, Daniel Allen, who is living in China for 18 months for his work. It’s been very interesting to hear about how life is like in China, and how the culture is “on the other side of the world.”

Well, this year for Christmas, Daniel wanted to help raise up $250 for… a water buffalo. Yup, thats right, a Water Buffalo.

What in the world for? To donate for a family in a rural. Why? From the Heifer International website:

A water buffalo can lead a hungry family out of poverty and give them a chance for a bright future filled with hope and free from hunger.

In poor Filipino villages, water buffalo from Heifer provide draft power for planting rice and potatoes, milk for protein and manure for fertilizer and fuel. A farmer can plant four times more rice with a buffalo than by hand.

Water buffalo haul heavy loads to the market, where the sale of extra produce brings in vital income for clothing, medicine and school. By renting their buffalo to neighbors, Heifer partner families can earn money for home improvements. And one day, those same neighbors might receive a water buffalo of their own as recipients pass on the gifts of animals and training.

Protein-rich milk, strength to till soil, manure to enrich the land … so many benefits. And, in turn, water buffalo are happy just to graze on coarse grasses and other plants not suitable for harvesting.

So Daniel wants to raise the funds for one!

I need your help.

Well actually I need your help to help me to give someone a Water Buffalo.

Think about it for a second. You can say you gave someone a Water Buffalo for Christmas. You know Water Buffaloes right?

Like this one:

While we were in Cambodia I noticed how much of the work is still done manually. Also in the few “Real China Adventures” we have had I have been amazed at what life is like outside the cities. Don’t get me wrong the people seem happy and content. But I am sure there are places they are not. And I think we should help them.

So I have started a Heifer International Team, Daniel’s Shoe Factory, and I would like you to help me raise $250 to give someone in South East Asia a water buffalo.

Want more information: Click Here

How to help me: Click Here and join or donate.

I am hoping to raise $250 by Jan 1st 2012.

So step up. Unless you yourself are in need of a water buffalo, then no worries.

So lets help Daniel buy a Water Buffalo for a family in need for this Christmas!

Video – Demystifying CSS & WordPress

Posted in: Presentations|Tags: CSS, presentations, talk, WordPress |November 19, 2011No Comments

The great guys at Pole Vault Media and WordPress.tv have put up a video of my Demystifying CSS & WordPress talk.

On the Eve of Modern Warfare 3

Posted in: Video Gaming|Tags: business, call of duty, modern warfare, Video Games |November 7, 2011No Comments

While I do work some in the Video Game Industry, I don’t write about it very often. However, I thought I would write some thoughts on Call of Duty: Modern Warfare 3:

Ultimately, I’m approaching it with a great deal of hesitation. Here is why:

When you start up a Video Game, much like watching a Movie, you will see some credits. In Modern Warfare 2, you’ll see Activision’s name, which is the Publisher, and Infinity Ward, which is the Game Development Studio. While the publisher can be involved in making (or ruining) a game, ultimately its up to the studio to produce a high quality game.

However, the Infinity Ward who made Modern Warfare 2 is not the same Infinity Ward who made Modern Warfare 3. Activision fired the lead game designer and a co-founder of Infinity Ward, and about half the staff resigned soon after that. They are now in a lawsuit against Activision who tried to withhold 60% of the staff’s bonuses.

As a Developer myself, there are two things I think are critical when working on a product, especially a video game: Design Direction and Talented Developers. From what I’ve read on the several news stories about staff leaving Infinity Ward, the majority were Leads and Seniors developers, animators, etc. So I would say the bulk of Infinity Ward’s talent left. Why does this matter?

Call of Duty, Call of Duty 2, Call of Duty 4: Modern Warfare, and Call of Duty: Modern Warfare 2 were are great games. Each added on top of the other, trying new things and bringing noticeable improvements to each installment. Also, while Infinity Ward grew, many of the core team members were the same throughout the series. So you had a great team, with a lot of talent, and experience working together to make great games.

Meanwhile, other Call of Duty games by other studios like Treyarch, released games like Call of Duty: World at War and Call of Duty: Black Ops. While these games weren’t bad games, they weren’t ground breaking either. They felt like minor updates instead of fresh, new material.

So now we have an Infinity Ward with half of their staff brand new, and trying to release a game on a very tight deadline. So I wouldn’t be surprised if there are technical issues at release, especially for the PC. From all the previews I’ve ready about Modern Warfare 3, it sounds like it really is just an updated version of MW2 with new maps and a new game play mode.

So while the videos and images of Call of Duty: Modern Warfare 3 look impressive, and the marketing behind it is great, I’m not holding my breath. But this will be the first time I won’t be purchasing Call of Duty: Modern Warfare 3 for PC, my personal choice for playing FPS games. I’ll likely pickup a copy of it for XBox 360 so I can play with friends, but here is my prediction:

Critics will give it high ratings (9+), actual players will give it okay ratings (7+), but Activision and Infinity Ward will have made their biggest mistake. They will have moved from being innovators to just producers. While they might sell millions of copies of this game, and they might pump out a few more titles, they open themselves to being displaced as the leader in the future. I’m hoping that future games will be able to bring in a breath of fresh air while Activision milks their franchise into the ground.

Who knows, maybe I’ll be proven wrong and Modern Warfare 3 will be great. I just have my doubts, especially when you have an exodus of senior talent from a company. I’ve seen that happen before, and rarely does the company produce the same quality as before.

Siege with User Authentication

Posted in: Programming|Tags: Linux, Mac, OS X, siege, Tips and Tricks, Ubuntu, unix |November 3, 2011No Comments

If you want to stress test your application, the quickest and best way to do so is with siege. From the siege website:

Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege.”

On Linux, you can install it easily via yum or apt. On OS X, you can install it easily via homebrew or macports. I personally prefer homebrew. In your terminal just type:

brew install siege

Now you can stress test a given app by simply using the siege command:

siege -c 10 -n 10 http://www.example.com/

You can read the documentation and faq on their site to learn more. However, there is one question I get a lot when talking about siege: “How can I use siege to test users who are logged in?”

I would always recommend that they send a session header in the config, but today I learned there is an even easier way (although undocumented), thanks to this question in Server Fault. In your siege’s configuration you can add the login-url directive:

# Login URL. This is the first URL to be hit by every siege
# client. This feature was designed to allow you to login to
# a server and establish a session. It will only be hit once
# so if you need to hit this URL more then once, make sure it
# also appears in your urls.txt file.
#
# ex: login-url = http://eos.haha.com/login.jsp POST name=jeff&pass=foo
#
# login-url =

Awesome! Now each connection will authenticate before continuing their siege. A very handy tool, especially if your load is generated by user account pages and such.

Sonora Grill – Amazing, Unique Mexican Food

Posted in: General|Tags: food, mexican food, recommendations, restaurants |November 3, 2011No Comments

I know from running a business, the best compliment a customer can give is their referral and recommendation. So this is my best complement to Steve, Courtney, and the rest of the staff at Sonora Grill:

Sonora Grill is one of the best Mexican restaurants in Utah. Not only is it great food, it is very unique. The best way I explain to those who have never been is that it is “gourmet mexican food.” Most people I tell this to seem rather confused by this, and think it is some kind of oxymoron. When they think of Mexican restaurants, they think of those we have around here.

Utah, and especially Ogden, has many, many Mexican restaurants. Here is a map of the google results for “mexican restaurant ogden”:

Most of these restaurants are what I would call Americanized Mexican food. It can be good, but it isn’t very authentic. I lived in Mexico for two years, eating with lots of different families and at many restaurants. So I know authentic mexican food when I have it. Also, there are several restaurants locally that cater to the Latino community. They are very authentic, typically in-expensive, and pretty tasty. But many times their menu is only in Spanish, and most of my friends don’t care for the really authentic food.

Then, there is the Sonora Grill. Their approach is to take the authentic ingredients, flavors, and dishes of Mexico and do amazing things with them. They have a professionally & classically trained chef who approaches mexican food like any other fine dining genre. They are serious about using the freshest ingredients and going above-and-beyond when it comes to preparing finely crafted dishes. They do all of this with a passion for the food, which really shows.

So when you go to the Sonora Grill, you get very flavorful food that each flavor is carefully balanced and blended in. It is like taking Mexican food to the next level. They will import a lot of their ingredients like spices, chiles, and cheese from Mexico so they can have the best flavors. They have some of the basics, like more generic Burritos & Quesadillas, but their best dishes are their house specialties. So while it might be tempting to go with the “safe burrito,” try one of their specialties. Here are my personal favorites:

Sweet Pork Tacos – Also know as Tacos al Pastor in Mexico, these tacos are made of pork that has been marinated for a very long time, traditionally a full day. These were my favorite tacos in Mexico. While Sonora Grill can’t cook them 100% authentic (I’ve written about Tacos al Pastor on exactly why), these tacos come as close as you can get here in the States.

Chile Rellenos – They have a few menu items with Chile Rellenos, and I will tell you these are the best I’ve ever found. A Chile Relleno is a poblano pepper that is stuffed with mexican cheeses and sometimes other things. They are then battered and fried for a nice crisp on the outside. I love them, and recommend everyone try them at least once.

Market Fresh Sea Food Special – I rarely get sea food unless I’m at a restaurant on the coast, but Sonora Grill does it right. It seems every week they have a new special with an in season fish that they can get and serve fresh. I’ve had some amazing dishes that were excellent that were specials. Also, they typically cost the same as a normal entre, instead of being twice as much like other restaurants. So for $15 – $18 it is a great deal.

Chicken Chalupas – Forget what you know at Taco Bell, this appetizer has three Chalupas which have a thick corn masa base and piled on top with shredded chicken, tomatillo salsa, onions, cilantro and sour cream. They are really yummy.

I haven’t tried all the dishes here yet, but some others I’ve heard good things about are the Alambres (aka Fajitas) and Ceviche (specially cooked sea food). I also saw they added Pozolé, which is a great mexican soup, so I need to try that as well.

Ogden’s Best Kept Secret

Now, I think this is Ogden’s best kept secret: Sonora Grill’s Regional Dinners. Four to five times a year, Courtney, the chef, will select a region of Mexico and prepare a five course meal (which technically would be 7-8 courses since many times the plates will have multiple things on them). It is $32 per person, and afterwards you feel like you should have paid way more than that. This is where their passion for Mexican cuisine really shows.

The chef will plan the dishes weeks in advance, importing in special ingredients for just this dinner. Then, the day of the Dinner (and sometimes even days before that), the chef will spend hours and hours preparing the food. It is an opportunity for the staff to say “If the restrictions on serving a busy restaurant weren’t an issue, and we had all the time and ingredients we could ever dream of, these are the dishes we’ll make.” I’ve been to two of these dinners now, and it was the absolute best mexican food I’ve ever had.

Tonight’s dinner was for the region of Oaxaca, which is know for their Mole (pronounced “mo lay”), which is basically a sauce. It is labor intensive to make Mole, and they made not one, but five different types for tonight’s dishes. Chef Courtney spent about seven hours, since 5 AM in the morning, preparing all the different Moles. Each one was carefully and artfully prepared. I’ve never had such well-prepared Mole before, it was extremely impressive and down right yummy.

I took a few pictures from my iPhone during the dinner. I didn’t get all the plates, but here were some of them. Now, I really enjoy Mexican food, but I couldn’t remember all the details of each dish, so I can’t remember all the ingredients. But I do know they all tasted great.

The appetizers, including a very delicious mole tamale & salad

A Chile Relleno stuffed with beef, pork, and black beans on a yummy tomato sauce.

Two different types of Mole with fresh corn tortillas.

A yummy fried platanos (bananas) desert.

The other dinner we attended was the Mexico City region, which had amazing Beef Tongue Tacos that tasted like Barbacoa Tacos, and Duck in an Ash mole. Both dinners were really good (though if I had to pick a favorite, I’d say the Mexico City dinner).

They are done with the dinners for this year, but will start them back up in the spring of 2012. They post the details on their website and Facebook.

So thank you, Steve, Courtney, and the rest of the gang at Sonora Grill. You can really tell that you all strive to make some serious mexican food that is great. I look forward to the Regional Dinners next year!

– Justin Carmony

The Sonora Grill Website

Dark Patterns – Deceiving Your Users

Posted in: Technology|Tags: Dark Patterns, UI, User Interface, Web Design |November 1, 2011No Comments

I remember when I was first getting into making websites in 1999, there was a website that I loved: Web Pages That Suck. It was a website dedicated to showing bad examples of web design. It was kind of funny, and I remember learning a few things not to do. Though it isn’t as relevant today, it amazes me they still find websites that are doing the same terrible things that they were doing back in the 90′s.

Today, after seeing a tweet by Jeffery Zeldman that was retweeted by Andy Budd, I came across a new favorite website: Dark Patterns.

These patterns are not to be confused with Anti-Patterns. Anti-Patterns are commonly used techniques that are in-effective or counter-productive. They are consideres mistakes with unintentional consequences or pitfalls. Dark Patterns, however, are things web designers & developers do on purpose. From the home page of Dark Patterns website:

Normally when you think of “bad design”, you think of laziness or mistakes. These are known as design anti-patterns. Dark Patterns are different – they are not mistakes, they are carefully crafted with a solid understanding of human psychology, and they do not have the user’s interests in mind.

The website then names several of these “Dark Patterns”: Friend Spam, Privacy Zuckering, Misdirection, Bait and Switch, and many others.

I recommend checking out their website, and then self evaluating your own projects asking these questions:

  • Do I use these Dark Patterns?
  • Do any projects I work on use these Dark Patterns?
  • If so, how can I fix them?

The Dark Patterns website has a 20 minute video which is a recorded presentation an event. What I best like about it is it shows a few examples of Dark Patterns, and then walks through the logic of avoiding them. I recommend giving it a view:

Dark patterns – An Overview for Brand Owners

View another webinar from Harry Brignull

Setting Up Nginx & PHP-FPM on Ubuntu 10.04

Posted in: Technology|Tags: Linux, nginx, PHP, system administration, Ubuntu, web servers |October 24, 201110 Comments

This is another wonderful setup that I’ve found myself using rather than the traditional Apache & mod_php setup.

What is Nginx?

Nginx (pronounced engine-x) is a fast, powerful, lightweight web server. I won’t go into the theory under-the-hood, but it’s focus is high concurrency with low memory usage. So while Apache is more robust in supporting many different features, nginx focuses on handling the important features very quickly. I still use Apache internally for our SVN & Trac web server. Heck, even at this time I’m using Apache to host this blog. However, Dating DNA, Clipish, CEVO, Alienware Arena, and some other high traffic sites/apis use nginx.

Ngnix, unlike Apache, doesn’t actually load PHP. Instead, it hands it off as a proxy to a “php handler” which acts like an Application Server. So nginx by itself won’t serve PHP files, but just static files.

What is PHP-FPM?

In the past, when working with something like Nginx or lighttpd, you would use spawn-fcgi to host your PHP application. However, spawn-fcgi had some major drawbacks and problems. So a guy named Andrei Nigmatulin created PHP-FPM, which stands for “PHP FastCGI Process Manager.” Since then, several others have contributed and ultimately it was include into the PHP core in version 5.3.3.

So from a high level look, on every PHP request Apache will load the entire installed PHP environment each time. This is for every request, and while it has been optimized as much as it can, that is a lot of overhead! With PHP-FPM, it will spin up a configurable amount of children. Each load the PHP environment and then will serve as many requests as it can without having to reload the environment. This saves on a lot of overhead!

Why use Nginx & PHP-FPM?

I should note, it is possible to configure/compile Apache in such a way that it can have similar performance capabilities. However, it takes a ton of work. Meanwhile, Nginx & PHP-FPM are very fast from the start, so I prefer just using them. You do lose some features, like .htaccess files won’t work so you’ll have to do that configuration in your virtual hosts.

Read More

Setting Up Percona Server 5.5 on Ubuntu 10.04

Posted in: Technology|Tags: MySQL, percona server, system administration, Ubuntu |October 24, 20114 Comments

I’m deploying some new servers today, and I realized I hadn’t documented my steps on my blog. So here are a few posts detailing my setup process.

What is Percona Server?

Percona Server is a fork of MySQL Server. So what does that mean? For the past few years, MySQL has had some “interesting” developments from the business stand point. Being bought by Sun, which was then sold to Oracle, and a lot of “drama” surrounding all of that. In turn, what seems to have happened is MySQL’s development stalled or slowed down as it took a back seat to the legal sides of things.

Percona took the GPL version of MySQL and created their own distribution of it called “Percona Server.” Their goal is for it to be “an enhanced drop-in replacement for MySQL.” So they switch out InnoDB for XtraDB under the hood (though it is still called InnoDB internally so there are not compatibility issues), fixed a bunch of bugs, added a lot more useful diagnostic and reporting data, and improved it’s performance vastly. Unlike some of the other MySQL Forks, I haven’t found a single compatibility issue between it and “stock” MySQL.

Why use Percona Server?

It is just a better version of MySQL that is completely compatible with a normal version of MySQL. The way I view Percona Server is it is what Sun & Oracle should have done with MySQL. I also think if you’re running MySQL with any real load at all, you should use Percona Server 5.5. I can’t find a single reason not to. It just performs so well.

It also comes with Yum & Apt repositories so you don’t have to worry if your Operating System is only running 5.1, you can run 5.5 easily.

Read More

«1234»1020…Last »

Tag Cloud

Apache Apple ASP .NET Blogging Computers CSS Dating DNA Designs & Patterns Development Education Errors FireFox Frustration Funny Goals Google GridView iPhone iPhone SDK JavaScript jQuery Linux Mac MySQL nginx Open Source OS X Personal PHP Presentation Programming redis scaling Security Servers Soap svn system administration Technology Tips and Tricks Tutorials Ubuntu UPHPU utah utos Web 2.0 Web Design Web Development WordPress Zend Studio

Archives

  • May 2012 (1)
  • April 2012 (3)
  • March 2012 (1)
  • February 2012 (1)
  • January 2012 (5)
  • December 2011 (1)
  • November 2011 (6)
  • October 2011 (2)
  • September 2011 (3)
  • August 2011 (1)
  • July 2011 (3)
  • June 2011 (1)
  • May 2011 (5)
  • April 2011 (5)
  • March 2011 (1)
  • February 2011 (5)
  • January 2011 (5)
  • December 2010 (2)
  • November 2010 (1)
  • October 2010 (4)
  • September 2010 (5)
  • August 2010 (1)
  • July 2010 (1)
  • June 2010 (1)
  • May 2010 (1)
  • April 2010 (1)
  • March 2010 (2)
  • February 2010 (4)
  • January 2010 (3)
  • December 2009 (1)
  • November 2009 (2)
  • October 2009 (2)
  • September 2009 (14)
  • August 2009 (1)
  • July 2009 (1)
  • June 2009 (1)
  • May 2009 (3)
  • April 2009 (2)
  • March 2009 (1)
  • February 2009 (4)
  • January 2009 (13)
  • December 2008 (13)
  • November 2008 (4)
  • October 2008 (13)
  • September 2008 (16)
  • August 2008 (6)
  • July 2008 (13)
  • June 2008 (17)
  • May 2008 (3)
  • April 2008 (2)
  • March 2008 (3)
  • February 2008 (8)
  • January 2008 (10)
  • December 2007 (2)

Recent Comments

  • Joseph Scott on Video: Look At Your Data – John Rauser – Velocity 2011
  • Seth on Video: Look At Your Data – John Rauser – Velocity 2011
  • Phil on Creating Chatroom / Walls with Redis & PHP
  • vicky on Restoring Large MySQL Dump – 900 Million Rows
  • Yusuf Irzan on Page.FindControl() Returning Null Issues and Solutions Within Another Control

Popular Posts

  • Mac OS X Lion, /etc/hosts Bugs, and DNS Resolution
    Mac OS X Lion, /etc/hosts Bugs, and DNS Resolution July 27, 2011
  • PHP Design – Biggest Database Oversights
    PHP Design – Biggest Database Oversights October 25, 2008
  • Why Are Some Open Source Advocates Hypocrites?
    Why Are Some Open Source Advocates Hypocrites? July 18, 2008
  • Zend Studio vs PHP Development Tools
    Zend Studio vs PHP Development Tools September 24, 2008
  • Page.FindControl() Returning Null Issues and Solutions Within Another Control
    Page.FindControl() Returning Null Issues and Solutions Within Another Control February 12, 2008
  • XAMPP for Mac – My Frustrations & Solutions
    XAMPP for Mac – My Frustrations & Solutions February 14, 2009
  • MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes
    MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes January 12, 2009
  • MS SQL 2005 (T-SQL) Row Count for Each Table
    MS SQL 2005 (T-SQL) Row Count for Each Table February 19, 2008
  • Web Development 10-Years Ago & Now
    Web Development 10-Years Ago & Now July 15, 2008
  • WordPress Carrington Theme – I’m Impessed
    WordPress Carrington Theme – I’m Impessed September 27, 2008

Recent Posts

  • Video: Look At Your Data – John Rauser – Velocity 2011
    Video: Look At Your Data – John Rauser – Velocity 2011 May 13, 2012
  • PHP-FPM, Nginx, PHP_VALUE, and Multiple Values
    PHP-FPM, Nginx, PHP_VALUE, and Multiple Values April 23, 2012
  • A New Chapter In My Career – Deseret Digital Media
    A New Chapter In My Career – Deseret Digital Media April 22, 2012
  • Standing on the Shoulders of Giants
    Standing on the Shoulders of Giants April 10, 2012
  • PHP, Sessions, __sleep, and Exceptions
    PHP, Sessions, __sleep, and Exceptions March 23, 2012

What I'm Doing...

  • When its late a night, I forget words... I'm going to tweak my #tek12 -slides-... maybe I shouldn't and just go to bed... 9 hrs ago
  • I should go to bed, but I think I'll tweak my #tek12 and make sure I have an offline backup demo if WiFi/Tethering won't work. 9 hrs ago
  • Hello Chicago! It's been a year, glad to be back. :) #tek12 16 hrs ago
  • @CalEvans @eliw Maybe the travel gods were busy enough with @jason_austin's flight yesterday they'll forget about us today. in reply to CalEvans 19 hrs ago
  • @CalEvans I land 5ish, and I'll probably hit shoeless after I drop of my bags at the hotel. in reply to CalEvans 20 hrs ago
  • @CalEvans When do you land in ORD? in reply to CalEvans 20 hrs ago
  • More updates...

Posting tweet...

Powered by Twitter Tools

Pages

  • About
  • Contact
  • Pages
    • PHP Bob
    • Utah PHP Users Group
  • Portfolio
  • Talks
    • Blazing Data with Redis
    • Demystifying CSS and WordPress

Email Us

Your message was successfully sent. Thank You!

Friends & Family

  • http://utos.org/
  • Joseph Scott
  • Kevin Carmony
  • Matthew Kimber
  • Utah Open Source Planet

News & Blogs

  • Andy Budd
  • Lifehacker
  • MySQL Performance Blog
  • Slashdot

What I'm Reading...

  • Patent Troll Lawyer Sanctioned Over Extortion Tactics
    ( Slashdot )
  • The London Riots and Facial Recognition Technology
    ( Slashdot )
  • Password Strength
    ( xkcd.com )
  • The TimThumb Saga
    ( Matt Mullenweg )
Read More Shared Items

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Copyright © 2010 Justin Carmony. All Rights Reserved