eS Accel Shoes Are Painfully Uncomfortable

I’ve had these shoes for a little over 6 months now. I wear them everyday, but the most I will do with them is a lot of walking at the mall or theme park. Not long after I got them, my heels and the balls of my feet would hurt if I stood for more than a few minutes or walked for a long period of time. I contributed it to the fact that I’ve been getting lazier and lazier with age. I recently got some Dr. Scholl’s insoles though, and in the midst of removing the ones that came with my shoes, I notice that they have become almost paper thin. These things have completely broken down with moderate wear. I threw in the Dr. Scholl’s insoles and my feet are feeling great again. Don’t buy these shoes, ever.

Posted in General | Comments closed

Rest Assured, Your Hand Job Is on Its Way

I got this letter from Hand Job customer support today, letting me know that they are working around the clock to deliver my Hand Job, hopefully by Christmas.

Dearest Handjob Consumers,

 

Thank you so much for your orders!

 

Due to many recent inquiries, we would like to take this opportunity to assure you that yes, this is a real product. And yes, you will be receiving your very own genuine Handjobs shortly.

 

We were taken by surprise at the overwhelming response and the number of orders we’ve received thus far, and we are working very hard to try to get all of your orders to you by Christmas time. Please note that we can make no guarantees, but we will be working around the clock between now and then in an effort to satisfy your wants and desires.

 

We take Handjobs very seriously, and we truly do appreciate each and every one of you for supporting us. And look forward to many new and exciting developments on the HJ front!

 

Thank you again, and we look forward to hearing about all the pleasure your heartwarming Handjobs provide this season! 

 

 

Cheers,

Lisa Q.

Handjob! Customer Service

Posted in General | Comments closed

Comcasts Buys NBC from GE: What Will It Mean for Hulu?

You can read the details over at Gizmodo

This is a big deal as Comcast already is a large telecommunications company, and fully or partly owns numerous networks already. The really interesting piece is how this will play out for Hulu. NBC owns a part of it along with Fox Entertainment Group and ABC Inc. It could play out any number of ways, but the two big scenarios I see are:

Comcast could take Hulu and run with it giving it a great head start on the competition. Streaming video content will happen whether the cable companies want it or not. Comcast could nurture the already flourishing product and make a ton of money while staying current with technology.

Comcast could do everything in its power to kill Hulu. This is a likely scenario as Comcast already sees it as competition to its traditional cable services, and rightly so. Comcast could hinder further development for Hulu in order to keep traditional cable afloat, thus setting back quality streaming video content in overall as Hulu is one of the largest providers. After all, why innovate when you can just buy the competition.

While I would prefer the former, as it would benefit everyone the most, given Comcast’s track record, I expect the latter to be the more likely scenario.

Posted in General | Comments closed

Driving the Company Vehicle

The reputation of your business is very important, especially so when you are a small business. Business big and small have branding on their company vehicles, and many small business have advertising on their personal or family vehicles. If you are one of them, remember this next time are on the road. Make sure you are a responsible and courteous driver, and make sure your employees do the same while in a company vehicle. You might think nothing of cutting someone off, or speeding excessively, or not letting someone into your lane, but they might remember that the Joe’s Plumbing truck is the one that cut them off, or nearly caused an accident.

Posted in General | Comments closed

Revenge of the Swine Flu

Revenge of the Swine Flu

Posted in Comics | Comments closed

Smashing Magazine and Twitter Ads

Yesterday, we saw our first ads via @smashingmag‘s Twitter feed. There was some outrage about it. People stating they were no longer following them because of it, which I find ridiculous. Smashing Magazine has provided valuable content, tutorials, and information at no charge to its readers. Smashing Magazine needs some way to pay the bills. There may be better ways than advertisements on its site and Twitter feed, but the amount of ads and their placement is by no means unreasonable. I didn’t see any of the protesters state that they would gladly pay money for their content for it to be ad free. Smashing Mag quickly posted a poll following the backlash. Initially, it weighed heavily on “No way, I’ll unfollow right away!”, but the pool seems to have leveled out with the majority of people understanding that “Yes, you need to pay bills eventually.” You can view the poll, and let your voice be heard too.

The tweet in question can be found here. As you can see, @smashingmag clearly states that this is an ad. They could have easily pushed this service as something they value without stating that it was a paid advertisement. I like the fact that they are up front about it. Think about how many tweets promote products and services, and now think about how many of them could have been paid for without your knowledge. Think about how many people you follow, and how many tweets come through your stream everyday. I currently follow a modest 59 people, and receive about 200 tweets per day. I don’t have time to read every single one of them. Most of any twitter ads will get overlooked as many other tweets do. Twitter ads are not ideal, but depending on their frequency, they are a tolerable way for content providers to make money.

Posted in General | Comments closed

Mythbusters Beer and Liquor Analysis

The Mythbusters had a recent episode testing if drinking beer and liquor would make you more sick thann drinking just beer. They got the myth wrong in the first place. The real myth is that if you drink beer before liquor you will get sick, but not if you drink liquor before beer.

Their test had Tory and Grant drink the exact same amount of alcohol whether they were drinking beer or mixing beer and liquor. It should be pretty obvious that consuming the exact same amount of alcohol should yeild the same results.

The reason the real myth holds is because, generally, when someone starts drinking beer, and then switches to liquor, they usually have consumed several beers and have a buzz, and then consume a significant amount of liquor. Liquor usually goes down quicker because it is in more concentrated quantities. When someone drinks beer and then liquor, they generally have a stronger buzz, and aren’t downing beers left and right. It doesn’t matter if you mix beer and liquor, and in what order you mix them in, if you drink too much alcohol, you will pay the price.

Posted in General | Comments closed

CakePHP HasAndBelongsToMany (HABTM) Checkboxes Instead of Multiple Select

Changing CakePHP’s default multiple select for HasAndBelongsToMany (HABTM) relationships to use multiple checkboxes used to be an arduous task. It is now a simple option as follows.

If you have a Post model that has a HABTM relationship with a Tag model, you would use the following line to display multiple checkboxes instead of the default multiple select:

<?php echo $form->input('Tag', array('multiple' => 'checkbox')); ?>

The magic is the array(‘multiple’ => ‘checkbox’).

As you probably already know, and the reason you were searching for this solution, the multiple checkboxes are much more user friendly than the multiple select.

Posted in CakePHP | Comments closed

Akismet API Component for CakePHP 1.2

This is a component for CakePHP 1.2 and PHP 5+ that utilizes the Akismet API to fight comment SPAM. You will need an API key, which can be retrieved from wordpress.com.

<?php
/**
 * This is a component for CakePHP that utilizes the Akismet API
 *
 * See http://akismet.com/development/api/ for more information.
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @author Seth Cardoza <www.sethcardoza.com>
 * @category akismet
 * @package component
 **/

class AkismetComponent extends Object {

    /**
     * @var string
     */
    private $http;

    const API_KEY = '';
    const BASE_URL = 'rest.akismet.com';
    const API_VERSION = '1.1';
    const VERIFY_KEY_ACTION = 'verify-key';
    const COMMENT_CHECK_ACTION = 'comment-check';
    const SUBMIT_SPAM_ACTION = 'submit-spam';
    const SUBMIT_HAM_ACTION = 'submit-ham';

    const APP_USER_AGENT = 'CakePHP/1.2 | Akismet Model 1.0';

    public function __construct() {
        App::Import('Core', 'HttpSocket');
        $this->http =& new HttpSocket();
    }

    public function verifyKey($data) {
        $data = array();
       
        if (!isset($data['blog'])) {
            $data['blog'] = FULL_BASE_URL;
        }
       
        if (!isset($data['key'])) {
            $data['key'] = self::API_KEY;
        }
       
        $uri = 'http://' . self::BASE_URL . '/' . self::API_VERSION . '/' . self::VERIFY_KEY_ACTION;
       
        $request = array('header' => array('User-Agent: ' . self::APP_USER_AGENT));
       
        return $this->http->post($uri, $data, $request);
    }
   
    /**
     * This is just a wrapper function for Akismet::commentCheck(). the return result makes more sense calling this function.
     * The two functions can be used interchangeably
     * @param array $comment
     * @return string
     */
    public function isSpam($comment) {
        return $this->commentCheck($comment);
    }
   
    /**
     * returns true if comment is spam, false otherwise
     *
     * From API Documentation: If you are having trouble triggering you can send "viagra-test-123" as the author and it will trigger a true response, always.
     *
     * @param array $comment
     * @return string
     */
    public function commentCheck($comment) {
        return $this->__makeRequest($comment, self::COMMENT_CHECK_ACTION);
    }
   
    /**
     * @param array $comment
     * @return string
     */
    public function submitSpam($comment) {
        return $this->__makeRequest($comment, self::SUBMIT_SPAM_ACTION);
    }
   
    /**
     * @param array $comment
     * @return string
     */   
    public function submitHam($comment) {
        return $this->__makeRequest($comment, self::SUBMIT_HAM_ACTION);
    }
   
    /**
     * this is where the magic happens. this makes the call to get the default info if not set, and
     * makes the request, passing the necessary data
     */
    private function __makeRequest($comment, $action) {
        $comment = $this->__getDefaultData($comment);
       
        $request = array('header' => array('User-Agent: ' . self::APP_USER_AGENT));
       
        $uri = 'http://' . self::API_KEY . '.' . self::BASE_URL . '/' . self::API_VERSION . '/' . $action;
       
        $return = $this->http->post($uri, $comment, $request);
       
        return $return;
    }
   
    private function __getDefaultData($comment) {
        App::import('Component', 'RequestHandler');
        if (!isset($comment['blog'])) {
            $comment['blog'] = FULL_BASE_URL;
        }

        if (!isset($comment['user_ip'])) {
            $comment['user_ip'] = RequestHandlerComponent::getClientIP();
        }
       
        if (!isset($comment['referrer'])) {
            $comment['referrer'] = RequestHandlerComponent::getReferrer();
        }

        if (!isset($comment['user_agent'])) {
            $vars['user_agent'] = env('HTTP_USER_AGENT');
        }
       
        return $comment;
    }
}
?>

Download Akismet Component for CakePHP 1.2

Posted in CakePHP | Comments closed

CakePHP Reverse Routing

CakePHP provides a very strong and flexible routing engine, for both routing, and reverse routing. Creating a route for the home page is as simple as adding the following line to your routes.php configuration file.

Router::connect('/about_us', array('controller' => 'pages', 'action' => 'display', 'about_us'));

Now, anyone visiting http://example.com/about_us page, will see the view defined in your Pages controller, and the about_us view. This is a very simple example, but leads us to the topic of reverse routing.

We can easily create a link to the about_us page in our markup very easily with the following:

<a href="/about_us">About Us</a>

However, CakePHP provides us with a way to do this through reverse routing and the HTML helper.

<?php $html->link('About Us', array('controller' => 'pages', 'action' => 'display', 'about_us'); ?>

Will generate the following output.

<a href="/about_us">About Us</a>

And, if we later update the route defined in the beginning to a more detailed url, for SEO purposes:

Router::connect('/about-seth-cardoza', array('controller' => 'pages', 'action' => 'display', 'about_us'));

We will not have to update the $html->link(); because the reverse routing takes care of that for us.

This is just a brief introduction to the power and capabilities of CakePHP’s routing and reverse routing. I recommend you read more about CakePHP’s routing in their online manual.

Posted in CakePHP | Comments closed