crshman's Profile Page
Tuesday, September 08th, 2009 | Author:

Hey All,

Long time no update, I know… Well I’ve been working on some projects that involve cPanel and its API so I decided to write a nifty little component for my fellow bakers. It makes extensive use of the php api library that can be found on the development forums, but I tweaked it a little bit to be more cake friendly.

Unlike my prior posts, this component is a little too long to post here. So head over to my git hub repository to pick up your slice of goodness.

As usual if you have any comments, concerns or questions feel free to get in touch!

Category: Development  | Tags: ,  | Comments off
Thursday, August 06th, 2009 | Author:

Hey Everyone,

So I went ahead and took up Mark Story on his challenge task and added the node deleting functionality that was missing from the original buildAcl action. I’m not sure if this was the best way to code it….but a few beers, and a lot of coding later I came up with this gem. Feel free to use this wherever you want.


/**
* Rebuild the Acl based on the current controllers in the application
*
* @return void
*/
function buildAcl() {
$log = array();
$methods = array();
$tempChildren = array();

$aco =& $this->Acl->Aco;
$root = $aco->node('controllers');
if (!$root) {
$aco->create(array('parent_id' => null, 'model' => null, 'alias' => 'controllers'));
$root = $aco->save();
$root['Aco']['id'] = $aco->id;
$log[] = 'Created Aco node for controllers';
} else {
$root = $root[0];
}

App::import('Core', 'File');
$Controllers = Configure::listObjects('controller');
$appIndex = array_search('App', $Controllers);
if ($appIndex !== false ) {
unset($Controllers[$appIndex]);
}
$baseMethods = get_class_methods('Controller');
$baseMethods[] = 'buildAcl';

// look at each controller in app/controllers
foreach ($Controllers as $ctrlName) {
App::import('Controller', $ctrlName);
$ctrlclass = $ctrlName . 'Controller';
$methods = get_class_methods($ctrlclass);

// find / make controller node
$controllerNode = $aco->node('controllers/'.$ctrlName);
if (!$controllerNode) {
$aco->create(array('parent_id' => $root['Aco']['id'], 'model' => null, 'alias' => $ctrlName));
$controllerNode = $aco->save();
$controllerNode['Aco']['id'] = $aco->id;
$log[] = 'Created Aco node for '.$ctrlName;
} else {
$controllerNode = $controllerNode[0];
// Get all the children of the current controller node
$children = $this->Acl->Aco->children($controllerNode['Aco']['id']);
$sizeChildren = sizeof($children);
}

//clean the methods. to remove those in Controller and private actions.
foreach ($methods as $k => $method) {
if (strpos($method, '_', 0) === 0) {
unset($methods[$k]);
continue;
}
if (in_array($method, $baseMethods)) {
unset($methods[$k]);
continue;
}
$methodNode = $aco->node('controllers/'.$ctrlName.'/'.$method);
if (!$methodNode) {
$aco->create(array('parent_id' => $controllerNode['Aco']['id'], 'model' => null, 'alias' => $method));
$methodNode = $aco->save();
$log[] = 'Created Aco node for '. $method;
}
}

$sizeMethods = sizeof($methods);

// More Aco's than methods
if($sizeChildren > $sizeMethods) {
foreach($children as $child) {
$tempChildren[] = $child['Aco']['alias'];
}
// Get the difference between Acos and methods
$diff = array_diff($tempChildren, $methods);
foreach($diff as $alias) {
$rogueAco = $aco->find('first',array(
'conditions' => array(
'alias' => $alias,
'parent_id' => $controllerNode['Aco']['id'],
)));
$aco->del($rogueAco['Aco']['id']);
$log[] = 'Deleted Aco node '.$controllerNode['Aco']['alias'].'/'.$alias;
}
}
}
debug($log);
}

Until next time, Laterz

Category: Development  | Tags: ,  | 3 Comments
Wednesday, July 29th, 2009 | Author:

Hey All,

Well I’ve been baking a lot of cake lately, and I’ve started to delve into the core a little….it’s not all that scary…kinda haha.

This post is being made in response to the infamous:

Warning (512): Cache not configured properly. Please check Cache::config(); in APP/config/core.php [CORE/cake/libs/configure.php, line 663]

I believe I found a fix/solution for this, and from what I can tell it’s quite portable (you can use it across different installations). This solution would be used in conjunction with providing the proper credentials to your cake installations “tmp” folder and all it’s sub-directories so that your web server can get down to business.

Open up your core.php file and look for the following at the end of the file:


Cache::config('default', array('engine' => 'File');

and replace it with


Cache::config('default', array('engine' => 'File', 'path' => ROOT.'/app/tmp'));

That should do it!

Until next time, l8rz!

Category: Development  | Tags: ,  | 4 Comments
Wednesday, July 08th, 2009 | Author:

Hey All,

*Warning! Long Post Alert!*

Today’s blurb will be a comparison (or review I suppose) of some online accounting software I’ve been keeping and eye on and trying. To get things started, I’ll post all the software I’ve tried thus far (in no particular order):

Phew! Yes….I actually spent the time creating accounts for all of those and looking at them, only the ones that passed my initial feature inspection I actually put data into for testing. Now, I’m no stranger to the world of accounting, I had to do much of the accounting for eFireHost (My partner in crime was supposed to, but we won’t get into that…). Given my highly mobile, and unpredictable nature, keeping the books remotely accessible was a must. We had used a variety of techniques for accomplishing this:

  • Run RDP/VNC on a server that had QuickBooks installed
  • Host a private windows VPS server that had QuickBooks installed
  • Use QuickBooks Online Edition

My business partner was set on using QuickBooks for the accounting and I don’t blame him, it’s industry standard. I eventually got used to the system and quickly learned my way around the interface. Out of all the solutions I liked the QuickBooks Online Edition the best. It automatically updated banking transactions and was available everywhere, well…almost. The MAJOR pitfall to that solution was QuickBooks OE’s dependency on ActiveX controls, and as I’m sure you know these only work in Internet Crapsplorer. So that left Firefox, my primary browser out. To make matters worse, I am a Linux guy, I run Ubuntu on all my machines. So to recap, Ubuntu + Firefox + QuickBooks OE = ?, I don’t think there is an elegant solution to that equation.

Step forward a few months and I’m on my own now. I’m a very strong proponent of the web application movement and it is my weapon of choice whenever a problem lends itself to being solved by some web app. In the interest of time I’m going to skip ahead through all my testing and ranting to pull out the 4 top contenders, more like 3 but I’ll add more to that later.

  • Clarity Accounting
  • Less Accounting
  • Xero
  • Saasu

All of these web apps have an API that can be accessed and allow for Bank Statement importing. Less Accounting has automated this feature, but as of this writing they are having some issues with it and it isn’t functional.

From my testing Xero probably takes the cake in terms of features. Its UI is a beauty and the general work flow is excellent. Those guys DEFINATELY spent some time on their UI design and layout. Their help desk/center is also amazing, by far the most informative of the lot. There were many many many articles in there to help you get up and running and how to handle all the details of the software. Everything sounds peachy right? Well there is one small caveat, for me at least, as great as this software is they are charging $29/Mo (or $290/Yr) for their software. It’s not outrageous really, but at this early stage in the game I can’t see myself paying $30/Mo for accounting software. Maybe when my budget grows and I have a little more money to burn I’ll move over. It’s definitely something worthy of another look down the line!

  • UI – A+
  • Help Desk/Center – A+
  • Reporting – A+
  • Price – C

Next up is Saasu, this is another feature packed offering. I’d venture to say it probably has more features than even Xero, but this software lacks a great deal of polish. Saasu offers such features as payroll, time sheets, inventory management, and more. It’s pretty rough around the edges, while it does work and it can get everything done, it takes a little more thinking and clicking to do so. Another area I was slightly disappointed with was the Bank Statement importing. Although Saasu is the only one of the bunch that has a Banking Integration Guarantee, they only work with plain csv files rather than a more standardized Quicken/QuickBooks file. As of this writing they did not support importing from my bank, Washington Mutual/Chase. I had to manually enter some of the transactions to validate the functionality of this offering, but the lack of importing left a bad taste in my mouth. I got an email this morning (7-9-09) saying that my bank will be supported in tonights software release, we’ll see how that goes… I got a follow up email (7-10-09) to verify the functionality of the csv import for my bank, sure enough it worked as prescribed! Saasu was 1 of 2 providers that offered a free plan with limited features, above that the prices ranged from $25/Mo $19.50/Mo USD upwards of $95/Mo $74.60/Mo USD depending on storage and feature requirements. All of these monthly denominations are paid in 3 month chunks.

  • UI – C
  • Help Desk/Center – B+
  • Reporting – B
  • Price – B+

The last two contenders are pretty much neck and neck in my book, Clarity Accounting and Less Accounting. Both of these software offerings offer almost identical feature sets and very intuitive UIs. The Less Accounting devs are very much in the limelight of social media and make it a point to be out there and active to aid their customers, I like this a lot. I think an award that was granted over at Cloudave sums them up quite nicely, the “get off Twitter and do some work” award. The Clarity Accounting devs are very much in the background, but both teams actively participate in making customer feature requests come true, another thing I like about both.

Less Accounting is more expensive than Clarity, at $24/Mo. (They also offer a Free plan and 2 other plans that are $12/Mo and $20/Mo) Clarity Accounting on the other hand charges a flat $10/Mo fee (or $100/Year). Less Accounting offers integration with Shoeboxed, WeSabe, Shopify; numerous contact importing sources, integration with their time tracking product, LessTimeSpent, and lastly Automated Bank Transaction importing. That last one is what’s really keeping me on the fence between the two. Reporting capabilities are very similar for the two offerings and each present the same information. Clarity Accounting offers a little more advanced accounting functionality with the option to have equity, liability and other types of accounts. Less Accounting only offers income and expense accounts, their reasoning behind this is well founded, they want to be “less” cumbersome than QuickBooks. Ideally I’d like to see Clarity pick up some type of automatic transaction import, but at this stage in the game it’s not really a deal breaker.

Less Accounting

  • UI – B+
  • Help Desk/Center – B
  • Reporting – B
  • Price – B

Clarity Accounting

  • UI – B+
  • Help Desk/Center – B+
  • Reporting – B
  • Price – A+

I’ll be continuing the trials with Less Accounting and Clarity Accounting, but as of now I’m probably going to go with Clarity Accounting due to its advanced accounting options (equity and liability accounts) and its lower price point. At the end of my trial for each I’ll head back here to post which I decided to go with.

Phew! Good thing I took the “shortcut” and went straight to the main contenders, this post was MUCH longer than I anticipated it to be! If you’ve made it this far, thanks for sticking with me! Hopefully some of the things I’ve uncovered here save you some time and make your life easier!

Until next time! L8rz

Monday, July 06th, 2009 | Author:

Hey All,

Well first of all, shame on me…I didn’t post a single darn thing during the month of June. It’s not that nothing happened, I was just lazy….I might back date a few posts just to fix that…

On a completely unrelated note….if you’ve read some of my posts you’d know that I left my old company (eFireHost) in March of 2009. After doing so, I had some time to collect my thoughts and see what I wanted to do. What came out of that was my very own, Phiivo. My new company, poised to be a software development and consulting business, is now one step closer to being legitimate. I started the incorporation processes a few weeks ago and have been patiently eagerly awaiting the paperwork and details. Today, on a whim I might add, I decided to check the California Corporations database. Lo and behold, Phiivo was registered! So I’m now one step closer to realizing my dream of a software company =)

So now I just need to get all the paperwork mailed back to me so I can finalize the incorporation process and get things moving along!

That’s it for now! L8rz

Category: Phiivo  | Tags:  | Comments off