Monday, November 15, 2010

Using jQuery to post an array to a ColdFusion Component

A reader sent in an interesting question today. He was trying to make use of jQuery to post an array of data to a ColdFusion component. His CFC was expecting, and demanding, an array argument. Whenever he fired off the request though he received an error from ColdFusion saying the argument was not a valid array. Let's look at an example of this so it is more clear.

I'll start off with my server side component. It handles the incredibly complex task of returning the size of an array.


ColdFISH is developed by Jason Delmore. Source code and license information available at coldfish.riaforge.org
<cfcomponent>

<cffunction name="handleArray" access="remote" returnType="numeric">
<cfargument name="data" type="array" required="true">
<cfreturn arrayLen(arguments.data)>
</cffunction>

</cfcomponent>

1 <cfcomponent>
2
3 <cffunction name="handleArray" access="remote" returnType="numeric">
4 <cfargument name="data" type="array" required="true">
5 <cfreturn arrayLen(arguments.data)>
6 </cffunction>
7
8 </cfcomponent>


On the client side, I'm going to use jQuery to post a static query to the CFC. This will happen immediately on document load so I don't have to bother clicking a button or anything fancy like that. (Note, in the code block below I've removed the html, head, and body tags since they are all empty. I do have a script block to load in the jQuery library though.)


ColdFISH is developed by Jason Delmore. Source code and license information available at coldfish.riaforge.org
$(document).ready(function() {
var mydata = [1,2,3,4,5,"Camden,Raymond"];
$.post("test.cfc", {method:"handleArray",data:mydata, returnFormat:"plain"},
function(res) {
alert($.trim(res));
})

})

1 $(document).ready(function() {
2 var mydata = [1,2,3,4,5,"Camden,Raymond"];
3 $.post("test.cfc", {method:"handleArray",data:mydata, returnFormat:"plain"}, function(res) {
4 alert($.trim(res));
5 })
6
7 })


So, what would you expect to happen here? Well first off, it is important to remember that we are talking about an HTTP post here. You cannot send a complex data type of POST. It must be encoded somehow. jQuery does indeed encode the data - just not how you would expect it. Upon running this and examining the POST data in my Chrome dev tools, I see the following:



Not what you expected, right? You can see why ColdFusion complained. The "Data" argument doesn't exist. Instead we have a lit of things named like Data, but not quite. You can try using toString on the array, but that doesn't correctly handle the comma in the data. So what to do?

What I recommended was converting the array to JSON. It always surprises me when I remember that jQuery can't produce JSON on its own, but there are plugins out there that will do it it for you. Because JSON is a string format though I thought I'd write up a quick function to generate the string for me. This function makes the assumption that are array only contains simple values of numbers and strings.


ColdFISH is developed by Jason Delmore. Source code and license information available at coldfish.riaforge.org
$(document).ready(function() {
var mydata = [1,2,3,4,5,"Camden,Raymond"];
var myds = serialize(mydata)
$.post("test.cfc", {method:"handleArray",data:mydata, returnFormat:"plain"},
function(res) {
alert($.trim(res));
})

function serialize(arr) {
var s = "[";
for(var i=0; i<arr.length; i++) {
if(typeof(arr[i]) == "string") s += '"' + arr[i] + '"'
else s += arr[i]
if(i+1 < arr.length) s += ","
}
s += "]"
return s
}
})

1 $(document).ready(function() {
2 var mydata = [1,2,3,4,5,"Camden,Raymond"];
3 var myds = serialize(mydata)
4 $.post("test.cfc", {method:"handleArray",data:mydata, returnFormat:"plain"}, function(res)
{
5 alert($.trim(res));
6 })
7
8 function serialize(arr) {
9 var s = "[";
10 for(var i=0; i<arr.length; i++) {
11 if(typeof(arr[i]) == "string") s += '"' + arr[i] + '"'
12 else s += arr[i]
13 if(i+1 < arr.length) s += ","
14 }
15 s += "]"
16 return s
17 }
18 })


As you can see, I wrote a serialize function to handle converting the array into a JSON-encoded array. This isn't the only change though. We still aren't sending an array to the CFC. It's a string. So I rewrote the CFC to handle it a bit better:


ColdFISH is developed by Jason Delmore. Source code and license information available at coldfish.riaforge.org
<cfcomponent>

<cffunction name="handleArray" access="remote" returnType="numeric">
<cfargument name="data" type="any" required="true">
<cfif isJSON(arguments.data)>
<cfset arguments.data = deserializeJSON(arguments.data)>
</cfif>
<cfreturn arrayLen(arguments.data)>
</cffunction>

</cfcomponent>

1 <cfcomponent>
2
3 <cffunction name="handleArray" access="remote" returnType="numeric">
4 <cfargument name="data" type="any" required="true">
5 <cfif isJSON(arguments.data)>
6 <cfset arguments.data = deserializeJSON(arguments.data)>
7 </cfif>
8 <cfreturn arrayLen(arguments.data)>
9 </cffunction>
10
11 </cfcomponent>


I normally don't like to "muck" up my code so that it has outside knowledge like this. However, I'd probably have a remote service component in front of this component anyway and the whole issue would become moot.

There are probably many better ways of handling this. Any suggestions?

you can find original post here : http://www.coldfusionjedi.com/index.cfm/2010/3/23/Using-jQuery-to-post-an-array-to-a-ColdFusion-Component

Wednesday, November 3, 2010

Setup a Blog Inside Your Magento Store!

Are you looking to integrate a blog into your Magento shopping cart ecommerce store? There are a few ways you can accomplish this, but one way that I have found is far better than any of the other possible solutions. It’s using Lazzymonks Blog Extension for Magento. Here are the specific steps for setting it up.
Setup Blog in Magento

First go to the extension page so that you can grab the extension key. If you have already tried installing the Lazzymonks WordPress Integration extension, than you have two steps you need to take first. 1) uninstall the wordpress integration extension from your Magento Extensions manager. 2) delete the blog_setup entry in the core_resource table of your database. (trust me on this one, these two steps definitely come from experience)

Now go to your Magento Extensions manager and input the extension key to install. This will install the extension package and put files in your directory. If you are not using the default template that comes with Magento install, than you need to copy the folder ‘blog’ from app/design/frontend/default/default/template/blog to where ever your theme is. Also do the same for blog.xml from app/design/frontend/default/default/layout. If you miss this step your blog will show up as a blank page.

You will now have a new menu item in your admin called Blog where you can create categories and blog posts, very similarly to how you would in WordPress. You will also want to go to System >> Configuration >> Blog - this is where you can customize the main blog settings such as layout etc.




If you by any chance run into any problems setting this up hit me back and I can help you out. If you follow my steps, each one step for step than you should not run into any problems at all.
What this can do for your store!

A simple easy to use blog inside your Magento ecommerce store can do wonders for your sales if you are delivering a good product. Think of all the good articles and reviews you could give on all your products each day, week, and month. One of the things many ecommerce websites lack is quality content to go along with their catalog. People seem to think that a catalog is good enough for content. This is simply not true. Adding a blog to your online store and writing quality content about your products and about your industry could increase your online sales dramatically.
Still Need a Theme For Your Magento Project? Check Out HelloThemes

HelloThemes has a very large selection of Premium Magento Themes covering all different types of needs from Electronic styled themes for Electronic stores to Furniture styled themes. Check them out before trying to mess with your own theme. It could save you a ton of time and money.




you can find original post here : http://chasesagum.com/setup-a-blog-inside-your-magento-store

Pulling Channel Partners into the Cloud

Many providers of cloud-based enterprise applications are finally able to answer the perpetual criticism that the software-as-a-service (SaaS) model does not support robust customization. Cloud-based development environments such as Salesforce.com’s Force.com and NetSuite’s SuiteCloud have matured significantly, offering things like scripting languages, user interfaces, and support for mobility. It’s reasonable to expect that these cloud-based development environments can now be used not only to customize SaaS applications but also to deliver significant extensions focused on manufacturing and other industries.

The question now is: Who’s going to develop cloud-based application extensions and customizations that support complex manufacturing-specific processes, such as product configuration, change order management, or even production scheduling?

Probably not manufacturers themselves. Manufacturers have spent the past 20 years or so dealing with the cost and hassle of customizing ERP applications and supporting those customizations. Today, most simply want to buy vertical-specific functionality off the shelf. And for the most part, vendors of on-premise ERP applications, such as SAP, Oracle, IFS, Infor, CDC Software, can accommodate them.

Nor are the SaaS application providers themselves likely to take on the task of delivering extensions required by manufacturers. SaaS vendors such as Salesforce.com and NetSuite, with their low cost-of-entry subscription pricing, are focused on mass markets. At a press event this week, NetSuite CEO Zach Nelson said his company wants to sell to the “Fortune 5 Million.” To do that, SaaS vendors must deliver broad solutions suitable for the mass market. They can’t spend time and resources digging into deep industry-specific functionality.

So, who does that leave? It leaves channel partners like resellers, independent software vendors, and system integrators. If multi-tenant SaaS applications are ever going to support complex manufacturing-centric processes, it’s the channel that’s going to deliver that support.

The problem is that resellers, system integrators, and other channel players typically haven’t been that interested in developing cloud-based solutions or creating practices around specific SaaS platforms. That’s because they can still make more money in the on-premise world, where remuneration comes mostly up front and isn’t spread out over years.

Now, however, there are signs that SaaS application vendors are reaching out to potential channel partners in a serious way. At its SuiteCloud 2010 event last week, NetSuite upgraded its development environment, making it easier for channel partners to control and distribute version changes of their software and execute phased rollouts.

That followed a move earlier this year by NetSuite to sweeten the deal for channel resellers by offering them 100% of subscription revenue for the first year when signing up new customers.

NetSuite’s efforts seem to be paying off. The company said Wipro will launch a practice around NetSuite, becoming the first significant system integrator to do so.

And NetSuite has attracted at least two manufacturing-focused ISVs: Rootstock Software, which claims to have six customers for its MRP application, developed on the SuiteCloud platform; and Iron Solutions, the maker of a cloud-based e-commerce solution for heavy equipment manufacturers.

This, to be sure, is a small beginning. But it’s good news for manufacturers who one day would like to see cloud-based applications deliver more than just sales force automation and accounting.



You can find the original post here : http://blog.managingautomation.com/channel/2010/04/pulling-channel-partners-into-the-cloud/

Pulling Channel Partners into the Cloud

Many providers of cloud-based enterprise applications are finally able to answer the perpetual criticism that the software-as-a-service (SaaS) model does not support robust customization. Cloud-based development environments such as Salesforce.com’s Force.com and NetSuite’s SuiteCloud have matured significantly, offering things like scripting languages, user interfaces, and support for mobility. It’s reasonable to expect that these cloud-based development environments can now be used not only to customize SaaS applications but also to deliver significant extensions focused on manufacturing and other industries.

The question now is: Who’s going to develop cloud-based application extensions and customizations that support complex manufacturing-specific processes, such as product configuration, change order management, or even production scheduling?

Probably not manufacturers themselves. Manufacturers have spent the past 20 years or so dealing with the cost and hassle of customizing ERP applications and supporting those customizations. Today, most simply want to buy vertical-specific functionality off the shelf. And for the most part, vendors of on-premise ERP applications, such as SAP, Oracle, IFS, Infor, CDC Software, can accommodate them.

Nor are the SaaS application providers themselves likely to take on the task of delivering extensions required by manufacturers. SaaS vendors such as Salesforce.com and NetSuite, with their low cost-of-entry subscription pricing, are focused on mass markets. At a press event this week, NetSuite CEO Zach Nelson said his company wants to sell to the “Fortune 5 Million.” To do that, SaaS vendors must deliver broad solutions suitable for the mass market. They can’t spend time and resources digging into deep industry-specific functionality.

So, who does that leave? It leaves channel partners like resellers, independent software vendors, and system integrators. If multi-tenant SaaS applications are ever going to support complex manufacturing-centric processes, it’s the channel that’s going to deliver that support.

The problem is that resellers, system integrators, and other channel players typically haven’t been that interested in developing cloud-based solutions or creating practices around specific SaaS platforms. That’s because they can still make more money in the on-premise world, where remuneration comes mostly up front and isn’t spread out over years.

Now, however, there are signs that SaaS application vendors are reaching out to potential channel partners in a serious way. At its SuiteCloud 2010 event last week, NetSuite upgraded its development environment, making it easier for channel partners to control and distribute version changes of their software and execute phased rollouts.

That followed a move earlier this year by NetSuite to sweeten the deal for channel resellers by offering them 100% of subscription revenue for the first year when signing up new customers.

NetSuite’s efforts seem to be paying off. The company said Wipro will launch a practice around NetSuite, becoming the first significant system integrator to do so.

And NetSuite has attracted at least two manufacturing-focused ISVs: Rootstock Software, which claims to have six customers for its MRP application, developed on the SuiteCloud platform; and Iron Solutions, the maker of a cloud-based e-commerce solution for heavy equipment manufacturers.

This, to be sure, is a small beginning. But it’s good news for manufacturers who one day would like to see cloud-based applications deliver more than just sales force automation and accounting.

Tuesday, November 2, 2010

Top 10 Joomla SEO tips for Google

How to search engine optimize your Joomla website in 10 easy steps.


1. Keyword Use in Title Tag


and appear in the blue bar of your browser.The number one factor in ranking a page on search engines is the title tag. These are the words in the source of a page in
Choose the title of an article very carefully. Joomla will use the title of the article in the title tag (what appears in the blue bar). It will also be the text used in any insite links (see #5 and 6)

2. Anchor Text of Inbound Link


Anchor text is the text that appear underlined and in blue (unless it’s been styled) for a link from one webpage to another.
Try to get some inbound links to your article using the keywords you want to be ranked for. Two ways are to do this are through online press services such as PRweb.com or simply by networking.

3. Global Link Popularity of Site (PageRank)


How many pages are linking to your page is called link popularity, or in Google, PageRank.
The more sites link to you, the better. Joomla is a CMS that helps you add content quickly. Create one quality content page per day. Quality content is the most important factor to getting bound links. For a site that will perform well, you eventually need 200 odd pages of content. This is the important point. QUICK SEO IS DEAD. The only way to perform well in SEO now is to have a rich content site.

4. Age of Site


When was the domain of the site registered?
Nothing you can do about this, but there is evidence that suggests that how long you have your domain registered for makes a difference (spam sites are not registered for long). Go and extend your domain registration for a couple of years.

5. Link Popularity within the Site


This is the number of links to the page from inside your own domain.
Because of #2, it’s critical that you link to articles from within your site using the right anchor text. Make sure that you:

  • Use the linked titles setting

  • Make good used of the Most Read, Related Items and Latest News modules.

  • Have a sitemap component linked to right from your homepage



6. Topical Relevance of Inbound Links and Popularity of Linking Site


It’s important that you get quality inbound links. This means they have to be from a site that is topically related to your, and one that has a high PageRank.


  • It’s worth submitting once to directories (then forget about it).

  • Type “related:www.yoursite.com” into google and contact the top 20 returns for links.Link Popularity of Site in Topic Community

  • Make sure you have a blog on your site, and network with others in your topical community. Make sure you frequently link to other blogs in your topical community.



7. Keyword Use in Body Text


The keyword density of the phrase you are optimizing for in the content of the page. Still important, the German study from Sistrix identified some interesting results.


  • Targeted keywords in the first and last paragraphs. There is a simple trick here, write your quality content, and then use the tool of your choice to find the keyword density. THEN, take the top three words and add them to the meta keywords in the parameters part of the page (in Joomla admin). This is somewhat backwards for some maybe, it optimizes a page for what you actually wrote, rather than trying to write a page optimized for certain words (which I always find difficult).

  • Keywords in H2-H6 headline tags seem to have an influence on the rankings while keywords in H1 headline tags seem to be getting less valuable. Modify the output of the core content component through a template override file.

  • Using keywords in bold or strong tags - slight effect, same with img alt tags and filenames.



Additional notes:


A couple of other factors at the bottom of measured/estimated influence.

8. File Size


The file size doesn’t seem to influence the ranking of a web page on Google although smaller sites tend to have slightly higher rankings. Optimize those images!

9. Clean URL (Joomla SEF)


Although Keywords in the file name (URL) don’t seem to have a positive effect (based on the German study), a URL with few parameters (?id=123, etc.) is important. Turn on Joomla SEF but don‘t get anal about it.

Other Notes


10. Utilize Your Error Pages.


Too often companies forget about error pages (such as 404 errors). Error pages should always re-direct "lost" users to valuable, text-based pages. Placing text links to major site pages is an excellent practice. Visit www.cnet.com/error for an example of a well-utilized error page. To make the error page fit with the rest of the theme of your site, create an uncategorized article and then copy the source as viewed on a webpage, and put that into the 404 file.



You can find original post here : http://www.compassdesigns.net/joomla-blog/top-10-joomla-seo-tips-for-google

Implementing Joomla’s Cache Callback API



Continuing with our movement to truly collaborate with as many Joomla developers as possible, we were sent a test copy of corePHP's WordPress MU for Joomla! For the unacquainted, this is a full version of WordPress INSIDE Joomla! for those who want the best blog software inside the most versatile CMS.


Installation
I tested on a local MAMP install and the install process was timing out, so I checked the filesize - 2.5mb :) That'll do it. This makes sense, since the component contains WordPress (duh). So I just unpacked in the tmp directory and installed from a directory and bam, the install worked in a snap.

At the end of the installed, you're instructed to move a couple of key files for WordPress to work properly. I wish there was a link, but that's just because I'm lazy. I like that it wasn't automated, because I like to know when files are being moved into these particular directories.

I think clicked the link to Start Blogging, and pow, I'm in the WordPress admin. I fully expected this, but it's still crazy at first. As a side note and time for a plug, using our AdminPraise2 Joomla! admin template with the WordPress inspired theme would really provide a seamless admin experience.



First Impressions
I clicked the link to preview my blog, and was taken to my Joomla! site, with a fully functional, fully integrated WordPress blog, and I'm severely impressed. I created a Joomla! menu item, where you can enter the ID of which blog you'd like displayed (since you can have multiple in WordPress MU), and there's my site's blog!

You can quickly add a new blog for a new user, as the Joomla! users are synced with WordPress.


Additional Extensions
corePHP gives you an entire slew of modules including tags, latest, and several others. They also included every native WordPress plugin you could possibly need. Lastly, they've included JomSocial plugins that will give your community the ability to have their own WordPress powered blog, sweet! I didn't get to test the JomSocial plugins, but I'm sure it shows latest blog activity on the users' JomSocial profile, and adds blog activity into the JomSocial activity stream.


Issues
I can't give a perfect review of anything, it's just not genuine (or in my nature). The only conflict I found was that the frontend layout for WordPress MU for Joomla! shares some common IDs used in Joomla! templates, such as "content" and "navigation". These are commonly used in any layout from any CMS, so I'm sure they're included as they would be in any WordPress layout, but to work well inside Joomla! they'd need names like "wp-content" and "wp-navigation". This would take 2 seconds for the end user to fix, so it's certainly not a show-stopper, but I could see a customer getting stumped and possibly confused for a moment.SuperBlog
With about 5 minutes of CSS love, I was able to get WordPress MU by corePHP working with our SuperBlog template. Not bad if I do say so myself.



Pricing
$79.95 for Single Blog, $99.95 for MU (as tested), $420.95 for 6 Site License


Rating

  • Best blog software inside the best CMS

  • Superb integration (frontend and backend)

  • All the extensions you'll need

  • Price point may be high for some

  • Possible (tiny) template conflicts



Update - New WordPress MU Quick Icons Admin Module!
We enjoyed our testing so much, we've gone ahead and created a new WP Icons admin module, with quicklinks to all the pages in the WordPress admin. Just like the AP Icons in AdminPraise2, it contains all the links with the ability to hide, or display to Manager & above, Administrator & above, or only Super Admins. Look for lots more of these types of modules from us soon!

Here's a couple of screenshots of WP Icons in AdminPraise2 (WordPress theme) and the default admin template:

Wednesday, October 27, 2010

iPhone application development and outsourcing

The complete potential of iPhone, the multimedia gadget, can be utilized by developing ingenious applications for it. The launch of the SDK (software development kit) by Apple in 2008 boosted iPhone application developer worldwide to come up with unique and customized applications for iPhone users.

The SDK, also known as the ‘tool chain’ includes:

Xcode: It is the integrated development environment (IDE), wherein iPhone applications are developed. It is the integral part of the iPhone application development kit and consists of a graphical debugger and a powerful source editor too. Interface builder: It helps in the designing and testing of user interfaces. The graphical editing environment of the interface builder is utilized by the iPhone application developer to design user interfaces and seamlessly integrate the applications to the 3G environment of iPhone. Instruments: The instrument retrieves data, analyzes and compares performance and displays the results graphically in real-time. It plays a pivotal role in the real-time optimization of iPhone applications.

An iPhone application developer should have a sound knowledge about using the SDK. The SDK uses the objective C language and runs only on the MAC OS X 1.5 platform (the OS of iPhone). The applications developed needs to be approved by Apple and can be distributed solely through App Store.

iPhone website development

There are various categories catering to which, iPhone applications are developed. Many companies specialize in a particular category. For example, a company may specialize in the domain of iPhone website development. An iPhone mobile development domain includes useful web 2.0 applications designed exclusively for iPhone, like:

Search tools. Web utilities. Social networking. Ecommerce websites. Travel, sports and entertainment and so on.

Outsourcing of iPhone application development

Outsource of iPhone application development has several advantages which mainly includes:

Firstly, it is cost effective. Outsourcing of IPhone applications gets the job done in lower costs. Customized applications can be developed without much investment which was otherwise necessary for the technical manpower and training. The rigmaroles of the iPhone applications- approval by Apple, guidelines etc are taken care by the companies.

iPhone Cool Projects

41gNRqHs6qL. SL160 iPhone application development and outsourcing

I am the webmaster at www.synapse.co.in – a iPhone website development company in India offering numerous services, such as flash web development, flash scripting, customized applications for the iPhone,and website maintenance services

ISBN13: 9781430223573
Condition: USED – Very Good

Notes: BUY WITH CONFIDENCE, Over one million books sold! 98% Positive feedback. Compare our books, prices and service to the competition. 100% Satisfaction Guaranteed

The iPhone and iPod touch have provided all software developers with a level playing field—developers working alone have the same access to consumers as multinational software publishers. Very cool indeed! To make your application stand out from the crowd, though, it has to have that something extra. You must learn the skills to take your apps from being App Store filler to download chart-topping blockbusters.

Developers with years of experience helped write this book. Spend some time understanding their code and why they took the approach they did. You will find the writing, illustrations, code, and sample applications second to none. No matter what type of application you are writing, you will find something in this book to help you make your app that little bit cooler.

The book opens with Wolfgang Ante, the developer behind the Frenzic puzzle game, showing how timers, animation, and intelligence are used to make game play engaging. It moves on to Rogue Amoeba’s Mike Ash explaining how to design a network protocol using UDP, and demonstrating its use in a peer-to-peer application—a topic not normally for the faint of heart, but explained here in a way that makes sense to mere mortals. Gary Bennett then covers the important task of multithreading. Multithreading can be used to keep the user interface responsive while working on other tasks in the background. Gary demonstrates how to do this and highlights traps to avoid along the way.

Next up, Canis Lupus (aka Matthew Rosenfeld) describes the development of the Keynote-controlling application Stage Hand, how the user interface has evolved, and the lessons he has learned from that experience. Benjamin Jackson then introduces two open source libraries: cocos2d, for 2D gaming; and Chipmunk, for rigid body physics (think “collisions”). He describes the development of Arcade Hockey, an air hockey game, and explains some of the code used for this.

Neil Mix of Pandora Radio reveals the science behind processing streaming audio. How do you debug what you can’t see? Neil guides you through the toughest challenges, sharing his experience of what works and what to watch out for when working with audio. Finally, Steven Peterson demonstrates a comprehensive integration of iPhone technologies. He weaves Core Location, networking, XML, XPath, and SQLite into a solid and very useful application.

Software development can be hard work. Introductory books lay the foundation, but it can be challenging to understand where to go next. This book shows some of the pieces that can be brought together to make complete, cool applications.



You can find original post here : http://www.theoutsourceblog.com/2010/08/iphone-application-development-and-outsourcing/