PHP kitchen, the personal blog of Demian Turner
.recentcomments a{display:inline !important;padding: 0 !important;margin: 0 !important;}
GS_googleAddAdSenseService("ca-pub-4968791118050409");
GS_googleEnableAllServices();
GA_googleAddSlot("ca-pub-4968791118050409", "phpkitchen_all_right1_180x150");
GA_googleAddSlot("ca-pub-4968791118050409", "phpkitchen_all_right2_120x600");
GA_googleAddSlot("ca-pub-4968791118050409", "phpkitchen_all_right5_200x200");
GA_googleFetchAds();
PHP kitchen
Come see what’s cookin’
Handy Design Patterns Cheatsheet
Wei Ling Chen from DZone contacted me the other day to announce a range of cheatsheets (or refcardz) they have made available for free download. They offer a whole range from Java, to PHP to .NET to Flex and more.I found the cheatsheet for design patterns quite interesting, you need to register with the site in order to get the download link.
October 10th, 2008 by Demian Turner | Tags: cheatsheet, patterns, php | 3 Comments
Recruitment Agent Entertainment
It feels like a friday when I receive emails like this from our friends in the recruitment profession:MUST HAVESPHP5 (php 4 isn’t relevant)MVC experience (and/or Design Patterns in general)SVN (we use Eclipse with Subclipse - experience with these things are preferred) NICE TO HAVESMemCache (pronounced “Mim-Cash”)Experience with either JSON or SimpleXML (preferably both)
October 1st, 2008 by Demian Turner | Tags: php, recruitment, wtf | No Comments
PHP on Rails
This is well-known stuff but funny nevertheless
September 27th, 2008 by Demian Turner | Tags: php, rails | 2 Comments
Kindo Acquired by MyHeritage
I didn’t get a chance yet to blog about our last TechCrunching, but Kindo, the startup I co-founded in March 2007, today announced its sale to MyHeritage, the biggest player in the family tree space.Kindo is a PHP social net app built on the Seagull framework and other open source software. At peak popularity our users were building 38k profiles/day and we acquired more than 1m profiles in our first 10 weeks. More details on my CV.Hats off to the Kindo team and to the Kindo devs who don’t appear in the TC photo.
September 23rd, 2008 by Demian Turner | Tags: kindo, php, seagull, techcrunch | 4 Comments
Google Ad Manager Debugging
Even though I had early preview access to Ad Manager I only got a chance to play with it properly yesterday, now that it’s public for all Adsense publishers.My first impression: my old pals at OpenX don’t have as much to worry about as I first thought.While Google has a fearsome reputation for building amazing apps with clean and simple UIs, Ad Manager is the first I’ve used (29 currently listed in my gAccount screen) which is somewhat impenetrable. While it’s true that ad serving in general has above average business logic complexity, this app lets the user potentially steer in too many wrong directions, and if one of the 10 or so parameters required for an ad to be served is slightly wrong, it’s not easy to find out where you went wrong. And this is a programmer point of view, I’m trying to imagine what it’s like for a non-techy.The good news is there are decent debugging capabilities that ship with the app, although they’re a bit buried. What you need to do to find out where you went wrong is append a debug param to the URL, likehttp://example.com/?google_debugThis Google help page has more detailed information.Another PITA which is not obvious at all is if you want to add a text link creative, you need to select the type Rich Media then paste the link in the textarea which subsequently appears. Rich media, text link: not two concepts you find linked that often ..And while we’re in gripe mode, this is one of the slowest Google apps I’ve used, ie a lot slower than AdWords. I think it’s early days still for Ad Manager.UPDATE: This article is a good starting point for setting up your first campaign.
September 19th, 2008 by Demian Turner | Tags: ad_manager, debug, open_x, usability | No Comments
What software do you use to run your business?
The problemIncreasingly I’m focusing less on cutting code and more on running a web development business. While it can be painful not to get your hands dirty as often as you would like, there are great pleasures in seeing your business pick up momentum.But one of the first factors that needs to be brought under control is time management for yourself and your employees, and general CRM. The problem I’ve found is that the functionality scope of the various apps I’ve been using is wildly different from one to the next. I need a level of baseline functionality from a single app, mainly because the overhead of sharing data between apps makes using multiple apps untenable. I would still like to do as much coding as possible, and as we are in 2008, so there must be something out there that ticks all the basic boxes.Well googling brought up very little. What did have good results was this thread from the php-london ML, and direct feedback from a few colleagues.Minimum requirementsHere are the baseline features I concluded were the minimum required to be useful for my small businesstimesheets: ability for multiple employees to login and log their time against multiple clients and projectsclient and project management handling: I don’t want a project management app, am very happy with Trac, but I do need to keep track of all my clients, the relevant contacts and the projects I’m running with each of theminvoicing: there’s no point in decoupling the time logging and how clients are billedexpenses: the above 3 features are available in the majority of software out there, desktop and web-based, but the minute you need to be able to record your expenses, eg costs associated with web hosting or software rental costs (not billable to clients), the choice dramatically reducesbalance sheet: this seems to be the killer question, if I know what I’m making on projects, and my business has a range of running costs, then surely I want to know what the operating profit is right? The requirement for balance sheet functionality even more dramatically reduces the amount of options availableLet me just reiterate what I don’t want, to be clear. I don’t want a detailed accounting app like Sage, Quickbooks, Quicken etc, but I do need to be able to know the bottom line for the business at any point. I don’t want to have to import employee/contractor times from one app into another, or transfer across the value of invoices - who has time for that overhead?Nice to havesweb-based: I think having the software available in a browser wherever I might be is invaluable, and with web2.0 style apps and the provider using a fast server, there should be very little difference to a desktop app.decent customer service: if the customer service is crap, just forget it. There is too much healthy competition around to have to settle for mediocre customer service. You want to take my money for your product, make sure I am a happy customer.multi-currency: I think in today’s economy it’s quite unusual to have clients in just one country or using a single currencyThe contendersHere’s the apps I evaluated and the various pro/cons of each.Studiometry Studiometry is a desktop app available for the Mac and PC. The UI is a bit klunky, but for customer/project/timesheet management it’s great. It was the best app I found first time around, was recommended by a few friends, and I would probably still be using it if it could track expenses and report on the business balance sheet. It has a number of demo videos which hugely help learning the software, and let’s face it, if you have the choice between reading an enormous PDF or mimicking what you saw on a screencast, which would you choose? Also for the record, these guys do not answer customer support requests took ten days to respond to my customer support request.HarvestHarvest is quite strongly recommended in the industry, and the interface is first rate, and for time-keeping it’s great. However these guys don’t claim to do balance sheet handling so it’s not really fair to compare. For timesheets and billing they’re pretty good. Did I mention the UI was sweet?BasecampI don’t want to say too much about Basecamp because I know everyone is using it, and it’s probably bad luck to diss 37 Signals. But …. Well let’s start with the positives first. For time tracking it’s great. The UI is fantastic, and once you get to the time tracking page, it’s a pleasure to use. But what about navigation?! This app takes the prize for requiring the most clicks to get anything done. I mean I read Getting Real is it was great, but they should practice what they preach. I was even driven to mess around with bookmarklets just not to waste so much time using this app. I seriously considered logging time wasted wrestling with the time-keeping app. Ok, enough. Wait - one more. What’s up with Writeboards? So klunky to load these notepads. I can truthfully say I have migrated quite a number of people off Basecamp and onto Trac.BillingsBillings is another sexy looking app, recommended by some of the PHPlondon guys, but ultimately it’s way too simplistic to be useful. It’s a Mac only desktop app, and after using Studiometry for several months I wish the Studiometry guys would look at Billings and get some interface ideas. But it handles time-keeping, invoicing and basic client info only, and has a few dinky ideas like ‘add url’ button that let’s you add “urls” to your projects. Better left out in my opinion. You can do estimates with the app, and you get a status of the account, but only for a given project, not globally.MoneyworksMoneyworks looks like a decent accounting package and is reasonably priced, but seems a bit much for my needs. I must be honest and say that I didn’t download the demo, but after looking at the screenshots I wasn’t too impressed. Overall it seemed like a package more suitable for someone with an accounting background, which I don’t have.FreshBooksFreshBooks is a very exciting app. It’s widely used in the web industry, and for good reason. The interface is fantastic and there’s a lot of functionality. Not to mention the app has been around for ages and has gone through a lot of iterations presumably based on customer feedback. And the customer service was excellent, best of the batch. I exchanged a few emails with Grace who was very helpful but ultimately let me know that the 2 features I needed (recurring expenses and balance sheet) were not available. But they were top of the feature request list This app to me looks like it’s done by 37 Signals, I guess on purpose, but FreshBooks operates out of Toronto.KashflowKashflow was an interesting one. They have all the features I listed above, and they’re even UK-based so great for businesses like mine. They’re web-based which should be an advantage, but the UI looks stuck somewhere back in the 80’s. And the logo is pink. In fact the whole site is pink. Not that I have anything against pink, but arguably it’s an unusual choice of colour for a business app. But the functionality is there, even if it takes a bit of searching around to get to it. In fact I think of all apps compared here Kashflow had the most functionality of the bunch. Guys, drop the ASP frontend and hire my company to rebuild your product into a web2.0 app with PHP calling out to your extensive API - you won’t regret it.QuickenQuicken is a funny one - just read the comments QuickbooksQuickbooks is not far different.FreeAgentFreeAgent is where things start to change. Wow was I impressed with this software. A big thanks to Nigel James who suggested it and gets my 10% referral fee with a a free beer thrown in at the next PHPlondon FreeAgent is a very complete web-based accounting/timesheets/invoicing app that’s perfect for small businesses. And if you’re based in the UK it’s even more strongly recommended, taking in its stride things like IR35 intermediaries legislation, VAT obligation, corporation tax due, National Insurance and PAYE payments, the list goes on. FreeAgent handles all aspects of clients, projects, time-keeping, invoicing and expenses (one off and recurring). This app is put together by a team that really understands accounting and what small businesses need. It also lets you setup multiple bank accounts and manage reconciliations between what you invoice and what you collect. Paypal import is supported. Regarding income FreeAgent lets you track money you earn in terms of dividends or salary and will even guide you through the full setup of payroll for your employees, calculating Taxable Gross, Tax Code Tax, Employee NI, Net Pay, Employer NI and PAYE/NI Due to HMRC for you based on gross annually salary input. The app will also do a self assessment for you which can be used at the end of your limited company’s financial year.But I think the main strength of FreeAgent is what you find under the Accounting tab. Included are reports for monthly and yearly profit & loss, balance sheet, trial balance, dividend vouchers, capital assets and journal entries. At any moment you can see exactly how your business is doing, how much corporate tax you owe, how many unpaid invoices there are, and how your monthly operating profit is performing. There is also a great dashboard to greet you when you login with graphs of the various business metrics and notifications of priority matters.ConclusionIn my opinion FreeAgent is the strongest of all the contenders here; it combines a balanced feature set with a great interface and a fair price. It has one or two shortcomings to be fair, but not showstoppers. For one employees can login to manage their own timesheets, but they get access to the entire business financials, effectively an admin login. I suspect this will be addressed soon, I’ve certainly complained about it. Secondly there’s currently no concept of tracking revenue by product or service. This is very useful to have if your company provides a number of products as well as the usual grind of service work. I don’t think it would be hard to integrate.What’s your opinion?Now you’ve heard my rather long-winded opinion, what are you experiences with accounting/invoicing software? Have I missed any interesting stuff? Have I left out any essential requirements? It took a lot of time to research the current offerings and I would have loved to find a decent review so I hope the above is helpful to someone.
September 9th, 2008 by Demian Turner | Tags: accounting, Basecamp, Billings, FreeAgent, FreshBooks, Harvest, Kashflow, Moneyworks, php, Quickbooks, Quicken, Studiometry, timesheet | 16 Comments
What’s your killer iPhone Idea?
Been so busy lately I haven’t had much time to think about the wonderful new 3g iPhone, however reading the comments on Dave Troy’s blog got the ball rolling again I’m quite happy with the latest iPhone, but it certainly has quite a few problems. Most of the complaints I’ve bumped into on the web has been overhyped, but what I would consider real issues are as follows:poor 3g receptioninability to recognise that a trusted wifi network won’t authenticate, and the need to manually “forget the network” in order to connectinstability of even core software: what’s up with address book, even after firmware update 2.0.2 it constantly freezes … am restarting the phone a lot to try and get around itwhat’s up with the New York Times? I love this app but it’s a frequent crasher and mostly can’t retrieve data, even on wifi I get endless spinning wheelsinability to run programs in the background: if you can run music behind any program, why not any other program? I recently tried out http://www.instamapper.com and it’s great, but totally impractical as you can’t use the phone for anything else while it’s tracking ..Two apps I’d love to see asap, not listed in aforementioned comments:ability to use the iPhone as a 3g wifi router: free wifi connectivity outside your home/office in the UK is absolutely horrendous and I often find myself stuck because either Starbucks data rates are unreasonable or more likely because Joe Bloggs wifi service is out of orderverbose feedback for network activity: like the verbose output on an ssh connection. There’s so much wheel-spinning I think it would greatly relieve frustration to know what exact problem the iPhone is having connectingloopt: I wrote those guys to see when their app would be released in the UK, no answer …So what’s your great iPhone idea? Any interesting experiences to relate using PHP as a backend?
August 27th, 2008 by Demian Turner | Tags: iphone, php | 1 Comment
Seagull 0.6.5 Released
I’m happy to announce 0.6.5 was released last week, the code is available in the usual place:http://seagullproject.org/download/According to Trac this release contains 13 enhancements and fixes for 26 defects, although there was also a lot of internal cleanup and small features added.The wysiwg library has been updated from tinyFCK to FCKeditor following the security alert discussed here:http://groups.google.com/group/seagull_general/browse_thread/thread/534ae6d5ccca995a?hl=enI’ve had one developer contact me reporting a security compromise to one of his servers following the publication of the tinyFCK exploit, so please take care and upgrade to 0.6.5 or at least remove tinyfck to be on the safe side. As mentioned before, being vulnerable to the exploit depends on a number of conditions existing however you are advised to update in all cases.The main new features and improvements in this release are:Added ability to rebuild single modulesNew modules: comment2, emailqueue, simplesite, siteexporterNew/improved libs: SGL_Emailer2, SGL_AjaxProvider2,Added ability to synchonise prefs for all membersImproved preference handlingCSS handling more flexibleOr for a detailed list see the changelog:http://trac.seagullproject.org/browser/tags/0.6.5/CHANGELOG.txtWork has also started on trunk again which is now 0.9, it will be a greatly slimmed down version of 0.6.x with no modules required by default, php5 only, and no libs bundled in the distro.Thanks as always to everyone who sent in comments and helped us fix problems with their patches and/or feedback.
August 8th, 2008 by Demian Turner | Tags: php, seagull php | 1 Comment
Howto 2 way synch between Google Calendar and iCal
In case you haven’t heard yet, Google now makes it possible to synch all your iCal data to your Google Calendar account.So Mac users can now take advantage of all the OS X integration features of iCal, and still have their data up to date in their Google Calendar account, which they probably obliged to use at work to share data with non-Mac colleagues. Two way synching is supported, so enter your event in either source and moments later the other one gets it. And maybe you have 10 or so Google calendars, no probs, you can add them all to iCal.Great to hear this news as I was just on the edge of paying $25 for the un-named commercial product that also manages similar synchronisation. And if you’re really keen you can setup a mobile me account, so any dates entered in your iPhone 3G also get synched to your iCal and Google calendars. I guess it won’t be long before your iPhone senses that it’s lunchtime, knows your location and schedule, and suggests a list of highly rated Indian restaurants in your area, knowing what cuisine you love
July 31st, 2008 by Demian Turner | Tags: google, ical, iphone | No Comments
Resetting the password in Open X
Every time I need to reset the admin password in Open X it takes me ages to scan through all the tables, thinking “which bloody table would contain the admin password”, remembering from the last time it’s the one you least expect …For future reference, it’s the preference table, record 0 and where the agency_id = 0. Imagine, who ever would have thought of a password as a preference. I suppose it’s getting better, in phpAdsNew it was in the config table!This is where logical thinking can cause you to waste hours of time: an application has many users, each user has a password …
July 3rd, 2008 by Demian Turner | Tags: m3, max, openads, open_x, php, phpadsnew | 4 Comments
« Previous Entries
PEAR tutorials
PHP freelance
PHP frameworks
Open Source/Free Software Papers
IBM Tutorials
Video Surveillance
Fuzzy Cognitive Maps
Demian Turner on Handy Design Patterns CheatsheetDave Nattriss on Handy Design Patterns Cheatsheetzet on Handy Design Patterns Cheatsheetthe flash design guy on What software do you use to run your business?David on Mac OS X Flash/Youtube audio probs solved Select Month October 2008 (2) September 2008 (4) August 2008 (2) July 2008 (2) June 2008 (2) May 2008 (1) April 2008 (4) March 2008 (1) February 2008 (1) January 2008 (9) November 2007 (2) October 2007 (2) September 2007 (2) August 2007 (5) July 2007 (4) June 2007 (2) May 2007 (3) April 2007 (4) March 2007 (3) December 2006 (4) November 2006 (1) October 2006 (1) September 2006 (3) August 2006 (3) July 2006 (1) June 2006 (2) May 2006 (1) March 2006 (5) February 2006 (1) January 2006 (3) December 2005 (1) November 2005 (3) October 2005 (5) September 2005 (9) August 2005 (2) July 2005 (4) June 2005 (7) May 2005 (12) April 2005 (8) March 2005 (10) February 2005 (11) January 2005 (12) December 2004 (13) November 2004 (11) October 2004 (9) September 2004 (12) August 2004 (16) July 2004 (6) June 2004 (10) May 2004 (15) April 2004 (17) March 2004 (16) February 2004 (11) January 2004 (18) December 2003 (14) November 2003 (14) October 2003 (19) September 2003 (24) August 2003 (16) July 2003 (19) June 2003 (24) May 2003 (15) April 2003 (17) March 2003 (19) February 2003 (23) January 2003 (16) December 2002 (23) November 2002 (35) October 2002 (17) September 2002 (24) August 2002 (31) July 2002 (19) June 2002 (16) May 2002 (31) April 2002 (9) March 2002 (4) February 2002 (2) January 2002 (4) December 2001 (8) November 2001 (6) October 2001 (5) July 2001 (23) Log in Entries RSS Comments RSS WordPress.org apacheaudiobloggingbusinesscmscopyrightdifffacebookflashframeworkfreelancegooglehumouriphonejavascriptjquerylegallinuxlondonm3maxmeldmysqlopenadsopen_xoracleos xpearphpphpadsnewphplondon08pricingproductivityregexsafarisalaryseagullseagull phpsearchsecuritysoftwarestartuptutorialukwordpress
Kindo Acquired by MyHeritageJoin the Seagull LinkedIn GroupCMS multi-language support readySeagull CMS 1.5 releasedSeagull 0.6.5 ReleasedNew comment2 module released, using jqueryRunning Seagull with a user table from another projectAuto text conversions with SGL_Emailer2, and new Email Queue moduleSGL_Cache problem fixedIntegrating Seagull with the leading Ajax frameworks
Demian Turner has been working with web technologies and Open Source for the past ten years. If you're interested software consultancy get in touch here.
For info on how to advertise or to renew your existing campaigns, please contact sales@phpkitchen.com. Handy Design Patterns Cheatsheet Recruitment Agent Entertainment PHP on Rails Kindo Acquired by MyHeritage Google Ad Manager Debugging
GA_googleFillSlot("phpkitchen_all_right1_180x150");
PHPkitchen recommends you also check out the following sites :
TalkPHP
oxyscripts.com
PHP Website Hosting
Website Templates
Webmaster Tutorials
Hawkee.com Snippets
Web Hosting
Web Templates
PHP Freaks-PHP Help
PHP Application Tools
PHP Meetup
PHP Scripts
Stargeek PHP News
PHP Classes
coding.phpground.net
www.weberblogs.com
Website Hosting
Website Templates
Wholesale Directory
Team PHP
_uacct = "UA-435749-2";
urchinTracker();
GA_googleFillSlot("phpkitchen_all_right5_200x200");
Copyright © PHP kitchen - Powered by WordPress
ProSense theme created by Dosh Dosh and The Wrong Advices.
st_go({blog:'3467912',v:'ext',post:'0'});var load_cmc = function(){linktracker_init(3467912,0,2);};if ( typeof addLoadEvent != 'undefined' ) addLoadEvent(load_cmc);else load_cmc();
|
|