Skip to main content

Blog

Installing Joomla Extensions - FTP protection issues

I'm currently learning how to develop Joomla extensions and spent the entire day yesterday trying to upload a Hello World module to my test server. I've had issues uploading Joomla extensions in the past, but this was the worst. As usual it was a Unix issue, not a Joomla issue though. These issues are described other places, so I'm just recording the basics of what I had to do here.

I was getting the following error when trying to upload the module

Error! Could not find a Joomla! XML setup file in the package.

Warning: file_get_contents(/..../joomla/tmp/install_4a09e3c4e12de/mod_testextension.xml) [function.file-get-contents]: failed to open stream: Permission denied in /....joomla/libraries/domit/xml_domit_lite_parser.php on line 1082

Unable to find install package

When I looked at the tmp directory, the files had been uploaded, but the protection was 640, so while the upload itself worked, the module couldn't be installed. Figuring out why took forever since I had never heard of an FTP protection mask (never set up FTP myself). My server is running on OSX so to fix this I had to create an FTP configuration file in /etc/ftpd.conf with the following single line.

umask all 002

I'm not sure yet if this is the correct way to fix this problem, but it got me working for the moment. I also saw mention of the apache suphp module which I suspect is a better way. I read enough to realize it will be a pain to configure it, so this is a collection of URLs to review later:

 

 

 

Quicken Alternatives for the Mac

I've been using Quicken for many years and currently have Quicken 2006.  A year ago I switched to a Mac and have been using Quicken 2006 under Fusion on my Mac.  It works, but it's frustratingly slow sometimes, especially since I tend to do more than one thing at once on my Mac.

Now, I keep getting warnings that support for Quicken 2006 will be ending in April and that I must upgrade to Quicken 2009.  Ending support for old versions is fine, but that's not what they're doing.  Not only will they not be issuing bug fixes, but they're turning off transaction downloading -- that's not ending support, that's removing a feature that currently works!  If the transaction download protocol was actually changing and they needed to change the older versions to support this change, then I would understand.  But I seriously doubt this is the case.  They're just turning it off because I haven't paid them any money in three years!  To quote from their site "Our plan provides online services and technical support for the current product version, plus the prior two years' versions."  Again, turning off technical support is fine, turning off online services for no good reason is not!  Now, they could say that when you buy Quicken, three years of free downloading is included and after that you need to pay for downloading, but they don't offer this as an option.  And, I don't know who pays for this service...I suspect the banks pay Quicken for the privilege...

I have a second gripe:  I figured if I had to upgrade to Quicken 2009, I would switch over to a Mac version at the same time.  Then I found out there wasn't a new version for the Mac and the older one, according to the reviews, sucks! Maybe this will change in the upcoming Financial Life release this summer, but by that time my current version of Quicken will have stopped working.

This is all unbelievably annoying.  I seriously doubt they'll be any new features I care about in either Quicken 2009 or Financial Life for the Mac, given past experience with "new" Quicken versions.  Since I need Quicken, unless I discover a real alternative in the next month I'll be forced to upgrade to Quicken 2009 and continue using it under Fusion on my Mac.  But, if I discover a real alternative any time in the following three years, Quicken will have lost a customer...

Related links:

 

Amazon EC2 gets cheaper with reserved instances

You can reserve Amazon EC2 instances (see announcement).  They're called reserved instances because you're reserving an instance so you know it will be available if/when you need it.  But, if you know you'll be using an instance for a year, or three, it's also much cheaper!  (EC2 pricing)

I used to have one small instance $73 / month.  Now a micro instance goes for $6.43 / month!

$/hour $/year(s) $/month

Notes

Unreserved $.065 .065*24*365 $569.4 /12 $47.45 Dec. 2012
1 year small reserved $195 $.016 +(.016*24*365) $335.2 /12 $27.93
3 years small reserved $300 $.013 +(.013*24*365)*3 $413.88 /36 $17.82
1 year micro reserved $62 $.005 +(.005*24*365) 105.80 /12 $8.82
3 years micro reserved $100 $.005 +(.005*24*365)*3 $231.4 /36 $6.43
Unreserved
$.085 .085*24*365
$744.60
/12 $62.05

Jan. 2010

1 year reserved

$227

$.03

+(.03*24*365)

$489.8

/12

$40.82

 

3 years reserved

$350

$.03

+(.03*24*365)*3

$1138.40

/36

$31.62

 

Unreserved

$.10

.10*24*365

$876

/12

$73.00

Mar. 2009

1 year reserved
$325
$.03 +(.03*24*365) $587.8 /12 $48.98

 

3 years reserved
$500 $.03 +(.03*24*365)*3 $1288.40 /36 $35.79

 

 

Here's the commands to create a reserved instance (you'll need the new Amazon EC2 API Tools with the new commands):

  • Find current instance type:

$ ec2-describe-instances
RESERVATION    r-........    ............    default
INSTANCE    i-.....   ec2-..-...compute-1.amazonaws.com
domU-..-...compute-1.internal    running    0
m1.small    2009-01-20T16:21:12+0000    us-east-1a

  • From above:

zone: us-east-1a
type:  m1.small

  • Find reserved instance to buy (using above zone and instance type):

$ ec2-describe-reserved-instances-offerings -z us-east-1a -t m1.small
OFFERING    248e7b7..... us-east-1a    m1.small    3y     500.0    0.03    Linux/UNIX
OFFERING    4b2293b..... us-east-1a    m1.small    1y     325.0    0.03    Linux/UNIX

  • Buy one reserved instance using entire offering id from above (3y in this case).  This command costs $:

$ ec2-purchase-reserved-instances-offering -v -o 248e7b7..... -c 1
RESERVEDINSTANCES    f127bd27.....
REQUEST ID    ........-....-....-....-............

  • Look at purchased reserved instance:

$ ec2-describe-reserved-instances
RESERVEDINSTANCES    f127bd27.....    us-east-1a    m1.small    Linux/UNIX    3y     0.03    500.0    1    2009-03-13T16:01:39+0000    payment-pending

Cancelling MobileMe :(

When MobileMe came out, I was hopeful that it would solve all of my calendaring and contact issues...disappointingly it didn't solve anything and was worse than what I was already doing.  I had really hoped that it would be better than the current choices for on-line calendaring and would become my primary on-line calendar.  But, it doesn't even do the basics, let alone publishing, subscribing, merging of iCal data, etc.

Here's why I canceled it:

  • Can't sync subscribed calendars.  This makes calendars useless since I need to subscribe to several different calendars and I know of no way to sync them directly from the iPhone.  The only way to get them on the iPhone is to sync them with iTunes.
  • I don't need push email... I use IMAP from the iPhone which works fine. 
  • I don't need real time bookmark syncing.  No one else is going to create a bookmark for me that I need pushed to my phone right away.  I guess there's a chance I'll create a bookmark on my Mac and leave home without syncing, but that doesn't happen much.
  • Same goes for contact syncing.
  • Don't have a need for Gallery or iDisk.

So, it's back to a mix of Google, Airset, iCal, iTunes & iPhone, and BusySync:

  • Google calendars because of it's API for embedding calendars on websites, and for real-time access to my subscribed calendars from my iPhone.
  • Airset because it allows sharing of individual events on a calendar (lets me put just the events I'm interested in from a public calendar on my personal calendar), and because it can merge calendars which allows me to create a public calendar.
  • iCal so I have a local copy of my calendars on my Mac for off-line use as well as backup purposes.
  • iTunes/iPhone for quicker calendar access on my iPhone and for times when I don't have network access.
  • BusySync to sync my iCal and Google calendars, so I can add events to either calendar.  I just installed this and am playing with it, but so far I'm happy...

At least I learned about Google contact syncing in Address Book while trying out MobileMe, I'll probably keep that turned on...of course something in this process duplicated all of my contacts, so I still have to fix that... sigh!

Changing Copyright Notice For New Xcode Projects - Just Change Your Address Card!

The copyright notice for new projects in Xcode was getting set to my old company name (which I haven't worked for since before I bought my Mac) and I couldn't find a setting for it in any of the Xcode preferences.  I did find a few sites, including apple's developer site (here) that say to use the defaults command from a terminal window to set it:

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME" = "Symmetric Designs";}'

 

(or alternatively you can add the symbol to ~/Library/Preferences/com.apple.Xcode.plist)

But this bugged me since

defaults read com.apple.Xcode PBXCustomTemplateMacroDefinitions

didn't show that it was already set, and my old company name must have been coming from somewhere.  Anyway, the bottom line is I eventually found a reference to the XCode 3.1 Release Notes:

The ORGANIZATIONNAME substitution value in templates is now replaced with the Company Name from the current user’s Address Book card if present, rather than __MyCompanyName__. If the PBXCustomTemplateMacroDefinitions user default has already been set, it will be honored.

My address card did have my old company name on it (which had gotten imported from Google).  Changing that worked and I didn't have to mess with the Xcode defaults!

 

By the way, if  you want to change more of the template, the iPhone ones are located in: /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application

Read more …Changing Copyright Notice For New Xcode Projects - Just Change Your Address Card!