Displaying 1-10 of 24 result(s).

Couponic "The Bottom Layer of Programmer Hel"

Monday, February 14, 2011

I strongly suggest avoiding purchasing Couponic, Groupon clone software by Uniprogy if you plan on making ANY code changes to it in the future.

 

I have had the "privilege" of helping some good people set up a Groupon like site for college students. I was brought on as a Yii Framework consultant, little did I know the depths of hell I'd travel while trying to enhance/fix Couponic.

 

First let me talk about the monster these guys have developed and unleashed on the internet. They've essentially developed a framework on top of Yii Framework, I can only assume that Yii was far too logical with it's MVC/OOP pattern. Their framework contains objects known as "Worklets", these worklets. Worklets are a mixture of logic code and user-interface code and also include url routing changes which are obviously a complete deviation away from what makes Yii Framework so simple, scalable and easy to use.

 

For a laugh, I was reading their developer guide and found this gem:

Now the script will go through all of the paths below and will render the first file it will be able to find:

themes/classic/views/worklets/base/default/welcome/hello.php
This is the top priority path: theme -> module -> controller -> worklet name -> view file.
protected/modules/base/views/worklets/default/welcome/hello.php
Same as above but it will look in the module rather then theme's view path.
module -> controller-> worklet name -> view file.
themes/classic/views/worklets/base/default/hello.php
theme -> module -> controller -> view file.
protected/modules/base/views/worklets/default/hello.php
module -> controller -> view file.
themes/classic/views/worklets/base/welcome/hello.php
theme -> module -> worklet name -> view file.
protected/modules/base/views/worklets/welcome/hello.php
module -> worklet name -> view file.
themes/classic/views/worklets/base/hello.php
theme -> module -> view file.
protected/modules/base/views/worklets/hello.php
module -> view file.
themes/classic/views/worklets/hello.php
theme -> view file.
protected/views/worklets/hello.php
application worklets view path -> view file.

 

  1. themes/classic/views/worklets/base/default/welcome/hello.php
    This is the top priority path: theme -> module -> controller -> worklet name -> view file.
  2. protected/modules/base/views/worklets/default/welcome/hello.php
    Same as above but it will look in the module rather then theme's view path.
    module -> controller-> worklet name -> view file.
  3. themes/classic/views/worklets/base/default/hello.php
    theme -> module -> controller -> view file.
  4. protected/modules/base/views/worklets/default/hello.php
    module -> controller -> view file.
  5. themes/classic/views/worklets/base/welcome/hello.php
    theme -> module -> worklet name -> view file.
  6. protected/modules/base/views/worklets/welcome/hello.php
    module -> worklet name -> view file.
  7. themes/classic/views/worklets/base/hello.php
    theme -> module -> view file.
  8. protected/modules/base/views/worklets/hello.php
    module -> view file.
  9. themes/classic/views/worklets/hello.php
    theme -> view file.

 

 

Why would ANYONE need this many levels of view render override capability???

 

 

Why did they build this complex disaster of a mess on top of Yii Framework? Surely there must be reason or at least a benefit to this Worklet framework! The short answer: No. The long answer: Yii is powerful, it provides a very scalable platform for MOST web applications, it does not need another framework on top of it.

 

Summary: The software was purchased for $200.00 and so far they've easly spent at least $7000.00 to get it to function properly. In other words, it would have probably been cheaper to build this software on top of Yii Framework from scratch to there exact specifications. End of story.

 

Lessons:

  • Research your software solution extensively, there are many hidden costs to off the shelf products.
  • Hire a consultant, $1000.00 spent up front may save you $10,000.00 a month in to integration/development.
  • If you choose an off the shelf solution, ensure that development is ongoing and that the development team will allow you to pay for enhancements.
  • If you choose a custom built solution, ensure that the developers take future enhancements in to consideration while developing the software baseline.





Bing recycles Google search results and denies it! hiybbprqag!

Friday, February 4, 2011

This is a core example of Microsoft's "innovation". Instead of progressing technology and actually competing they just hijack data that Google's finely tuned indexing code had collected.

 

 

Read more here:

http://googleblog.blogspot.com/2011/02/microsofts-bing-uses-google-search.html





Usability Updates for MSHI Front Page

My Safe Home Inspection

Sunday, January 30, 2011

We have passed some visual usability updates to the front page of My Safe Home Inspection. The updates were made to help drive people to the content that is most important to them. Most of these changes are due to methodologies learned from the MYM program.

 

My Safe Home Inspection Usability Update





Web Evolved!

WebEvolved

Tuesday, January 18, 2011

Here is a new project I started working on in 2009, with any luck it will be released mid 2011!

 

http://www.WebEvolved.com

Web Evolved





ZURB: ClueApp Free Survey

Wednesday, December 29, 2010

Found this nifty web app built by ZURB that generates a survey to help webdesigns learn about what their user-base sees when viewing their page.

 

Here is one I created for this website: http://www.clueapp.com/32957

 

To make your own, go here: http://www.clueapp.com/





Multi Email Validator for Yii Framework

Wednesday, December 22, 2010

I made a multi email validator for the Yii Framework.

 

Download: http://www.yiiframework.com/extension/multi-email-validator/

 

Usage:

/**
 * ShareReportForm class.
 */
class ShareReportForm extends CFormModel
{
  public $emails;

  /**
   * Declares the validation rules.
   */
  public function rules()
  {
    return array(
        array('emails', 'required'),
        array('emails', 'MultiEmailValidator', 'delimiter'=>';', 'max'=>5),
    );
  }

  /**
   * Declares customized attribute labels.
   * If not declared here, an attribute would have a label that is
   * the same as its name with the first letter in upper case.
   */
  public function attributeLabels()
  {
    return array(
	    'emails'=>'Email To',
    );
  }
}

 





Facebook Extension for Yii Framework

Tuesday, December 21, 2010

The extension supports rendering FBML for login and like buttons as well as more complex markup like the invite friends interface. It is simple to configure and also contains everything it needs to prevent redundant configuration all over your web application.

 

Configuration Example:

    'facebook'=>array(
      'class'=>'application.extensions.facebook.FacebookExt',
      'name'=>'Facebook App!',
      'clientId'=>'',
      'clientSecret'=>'',
      'afterLoginUrl'=>'user/facebookConnect',
      'perms'=>'email,user_birthday',
    ),

 

Login Button Example:

  Yii::app()->facebook->renderLoginButton();

 

Comments Section Example:

  Yii::app()->facebook->renderComments('yellowShoes');

 

I'll add this extension to Yii Framework and Google Code sometime around the Holiday.





Received a Google Chrome Notebook today!

Friday, December 17, 2010

I haven't had a chance to power use it yet, but that will change very soon. My initial impression: booted in about 15 seconds, connected to the network with ease, logged in with my existing gmail account and enjoyed watching the entertaining "Getting Started" section. Cool

 

This interesting piece of technology deserves a full review, which will be coming soon. In the meantime, read more here.

 

 

Google Chrome Notebook

Image from http://www.pclaunches.com/notebooks/google_cr48_chrome_notebook_launched.php

 

 

On a side note: I need to add a few features to this blog:

  • Facebook / Google / Twitter OAuth login to allow users to use other credentials to sign in and comment.
  • Some minor fixes and visual tweaks, this design is getting a little tiring.
  • Search engine optimization (SEO) for entry and resume URLs are absolutely imperative.





Google has Released it's Chrome Store!

Tuesday, December 7, 2010

Google has released it's Chrome Store which allows users to browse and install apps to Chrome itself.





Yii Framework Scalability

Monday, December 6, 2010

I found an excellent real world example of how well Yii Framework scales. Check out this article written by Eric Kennedy.

 

http://www.yiiframework.com/forum/index.php?/topic/13717-realselfcom-15-million-monthly-visitors/

Yii vs Drupal Performance Comparison

 

Here is an earlier PHP Framework Performance Comparison done by Qianq: http://www.yiiframework.com/performance/