Update: A newer version of this post has been published to the IBM Bluemix blog.
For example, if you push an application to Bluemix, the name you provide will be prepended to .mybluemix.net resulting in an address such as:
To illustrate the problem and the solution, consider the simple Ajax application here:
However, if you click the blue box, you’ll initiate a call to a different servlet on that host:
This time the Ajax call will successfully consume data from the service, because the HTTP headers allow services from a different domain to access the servlet.
"POST, GET, DELETE, PUT"
If you need to allow access to all client hostnames, replace the whitelist with a wildcard:
I used Java in this example, but the same HTTP headers apply whether you’re using Ruby, Node.js, PHP, Python or any other runtime.
There’s a solid “guide for the perplexed” that’s been published recently over at IBM developerWorks.
It’s well-written, task-based, and full of links. You could call it a recommended reading list spliced with a recommended todo list.
All in all a nice article.
IBM unveiled a significant upgrade to its Web site earlier this month. There were many folks who drove this successful launch and we’re all pretty proud of the result.
Visitors can now:
- Add a given page to their interest areas based on the subject or topic indicated in the meta tags. For example, by clicking Add to My Interests.
- Navigate based on those interests and country/language preference.
- Sign in anywhere and share content with others via “E-mail this page” links always available in the masthead and footer.
- Save time with forms that are pre-filled with information from their profiles when logged in.
This system design enables customization to be plugged in regardless of the underlying hosting infrastructure of the existing Web site.
The services-oriented architecture was probably the most fundamentally different part of this Web application from others I’ve been involved with and I’m pretty excited about applying that pattern in future projects now that I’ve seen the value of a real world implementation.
New York PHP has officially lined up its next four monthly presenters:
- Chris Shiflett of OmniTI has volunteered on short notice to discuss the latest in Web 2.0 security at tomorrow’s meeting.
- Kenneth Downs from Secure Data Software will take us back to basics with his Introduction to Databases for Programmers in May.
- Mike Potter from Adobe will kick off the summer with a lesson on Rich Internet Applications (RIA) and PHP.
- Mike Smith from IBM will bring us up to speed on PHP for i5/OS in July.
The RSVP system for the April meeting tomorrow night is still open till 6pm EDT tonight. Hope you can make it.
Update: The RSVP deadline has been moved to midnight tonight.
My initial exposure to programming, and computer science in general, was through an introductory course for non-computer science majors called “Computers in a Modern Society.”
Tin or aluminum is the traditional 10-year anniversary gift, and it befits my tribute to this lightweight staple of the modern Web, waiting in the sand to slice your foot open.
Went through my “Select menu choose a link from the dropdown and you’ll go to the address you don’t even need to click submit!” phase. This carried through most of the year.
Built the TLD Lookup tool to see where my Web site visitors were coming from. Discovered server-side scripting such as ASP and PHP, began to look down upon front-end coders like I was until the month just prior. Like every other developer working at a health-oriented Web site, I wrote a Body Mass Index calculator.
Continued to mock those with functions beginning with “MM_” in their source.
Did lots of date related things on the client-side to work around lack of server side scripting. Came up with ill-conceived “scrambleCard(strCC)” function to mask credit card numbers (Fortunately the site was served via HTTPS anyway).
Worked with some folks at NYPHP to develop an airline ticket booking site. Chris Snyder opens up a whole new world for us by implementing a pre-Ajax technique to manage city and airport dropdowns. I remain proud of my form validation system which changes styles of improperly filled form fields text to bright red and alters title attribute of surrounding label elements with condescending error messages.
Lose most of the year to an ill-fated content management tool project. Not all is lost, I cut my teeth on J2EE and Struts, and make peace with MVC. Implement rollovers from Young Pup on every freelance job I can get a hold of. Have fun with banner and splash image rotations, transparent PNGs and the like.
Shamefully lag behind on Ajax and Web 2.0 advancements. On the other hand, strengthen knowledge of PHP, J2EE and database modeling to fill out that part of the architecture.
Return to client-side coding via job change and new projects within my larger organization. Lots of Ajax, JSON and SOA. More when that launches later this year…
This was around the time that the term Ajax was coined, and it might have been a timely presentation. Alas, I missed that train and I let the outline languish.
So, since I now have a blog infrastructure that supports comments – though I suppose a Wiki might make more sense – I’ve decided to post the outline as it looked last June, and solicit updates and comments for it. I may end up doing a presentation on it some day, but I don’t mind if someone else runs with it or uses it as a base for their own work, so here it is:
IBM announced two more tools designed to pick up developer mindshare this week. First was the announcement about DB2 Express-C, a free, community supported version of the core DB2 product. Next up was this morning’s announcement about Open Ajax, a tool to be built for Eclipse to support rich application development.
Anyway, I picked up Ajax in Action to get myself back up to speed, which has been quite enlightening, and it casts light on what fools we have been in our approach to HTTP-based Web applications (think about all the wasted bandwidth re-transmitting boilerplate template code for each page of your site).
What examples of Ajax ads have you seen in the wild? Where do you think that Ajax’s promise is most vulnerable to being stifled by malpatterns?