Monday, July 21, 2008

Robust and Business-like LAMP

Businessmen and entrepreneurs (your customers) who hire independent developers (you) may need more impressive examples of what the LAMP solution stack can do besides the WordPress example we cited last time. After all, blogs are great for consultants or service businesses that must take on an air of authority. But surely, even a small businessman will appreciate what has been done with Wikipedia, arguably the best-known non-commercial site for some years now. Informing even a medium-size home-furnishing or imprinted premium e-commerce site operator that the underlying WikiMedia runs on a Linux platform and that information is served up with a combination of Apache HTTPD, PHP and MySQL is bound to get their attention. Nor does it hurt that Wikipedia running LAMP accommodates close to 10% of the world’s surfers every single day. That’s a factoid of the day from Alexa by the way.

The next time you have to strengthen your arguments to push a LAMP development proposal, be sure to cite six advantages.

1. First, isn’t it amazing how widespread the LAMP community is? And how you can get answers when stuck because others out there have addressed the industry or corporate resource you’re working on?

2. The same community cooperates on security issues and volunteers patches in short order, not like you-know-who that is hard put to resolve a zero-day problem?

3. Your imaginativeness as a developer rules because there are no technical barriers or license clauses to hem you in.

4. You are able to offer shorter turnaround time because coding highly-functional applications with the LAMP components is normally an efficient exercise.

5. More features and customization because you can code functionality to suit the client’s needs or revise modules others have developed through the years.

6. A wide choice of hosts that accommodate LAMP as a standard. And choice means flexibility on hosting costs. Failing that, you can deploy with popular Linux distro’s like Fedora.

All these recap fairly well the dozen values you get from LAMP that I listed the other day.

In the end, cost need not even be an issue. As the successful LAMP developers at HyTech Professionals (www.hytechpro.com) demonstrate week after week, the solution stack is all about letting you roll out supremely capable and effective Web-facing applications.

Wednesday, July 16, 2008

Dynamic LAMP

The earnest brother-developers of mine at HyTech Professionals (www.hytechpro.com) could only agree enthusiastically with the even dozen advantages of the LAMP solution stack I run in the last post. Clearly, cost savings is not even the major advantage of using the LAMP combo.

What happens, for example, when all you want to do is save time and cobble together a Web application using only Linux for the platform and Apache for the Web server? Sure, any developer will tell you it’s a static site. You have to build information pages and fill them in yourself. But never mind, the rudimentary e-commerce “solution” seems to work all right because you’ve gotten hold of a utility or two that lets customers put stuff in their shopping cart and execute orders. So everything is hunky-dory until your wonderful line of herbal-source food supplements expands with the fad of the month year after year. Pretty soon, adding product pages and processing orders becomes a managerial nightmare. And this site on the cheap does not even dynamically welcome back a customer and recognize her as a loyal buyer of slimming products.

If you needed any more convincing about the need for dynamic scripting (PHP, Perl or Python) and a robust MySQL database, take a gander at just two examples built on LAMP: WordPress and Wikipedia.

Both are highly scalable, accommodating an apparently infinite number of contributions and pulling the information from the database in whatever sequence the visitor wants. In the case of WordPress, PHP is the application environment, responsible for taking that data from the MySQL-run server and displaying it on the unvarying but hugely convenient blogging template. The relational power of MySQL is what enables WordPress to display prior posts, offer a list of categories or just posts for one category the viewer is interested in.

In my next post, we will cover some more benefits that LAMP brings, specifically for revenue-producing Web sites.

Tuesday, July 15, 2008

12 Good Points About the LAMP Components

12 Good Points About the LAMP Components

Other than the fact that there is no dearth of developers who learn enough LAMP to competently put together a Web application, herewith an even dozen of enduring advantages to the LAMP solution stack:

1. Installation is easy because most Linux distro’s bundle all the other LAMP components.

2. Linux is flexible – A good developer takes advantage of access to the source code to customize the OS and optimize it as a base for Web applications.

3. Linux is versatile – The OS is “friendly” with a good range of file servers and network drivers.

4. Linux doesn’t mind legacy hardware -- because the open-source community has adapted it to work from mainframes to servers and desktops. Your ancient Burroughs mini or Sun workstation is no longer supported OEM-wise? Linux and the rest of the LAMP bundle will likely work happily in those.

5. The original Apache project was HTTPD, meaning it was a capable Web-facing platform right from the start. This is especially true for fairly uncomplicated file-based serving.

6. The standard Apache pack has extension modules that can be loaded to service important tasks like specialized authentication and security environments, data caching and support for basic site traffic analysis.

7. Apache speeds up the P languages (Perl, Python, or PHP) by accepting embedded interpreters and therefore substantially boosting Web application performance.

8. Unlike Linux, Apache is fairly easy to install and configure.

9. Once installed, Apache is so stable it needs little “care and feeding.”

10. In turn, MySQL is a highly functional relational database even in its default install configuration.

11. Backstopping relational tables and SQL as it does, MySQL does very well with Web applications that do not require frequent updates but must respond to a lot of queries. Now, doesn’t that sound exactly like a Web store for a small business with a limited product range?

12. This means MySQL is also a worthwhile candidate for blogs and knowledge bases or other types of reference sites.

In my next post, we’ll review more advantages of the LAMP building blocks and why the whole solution stack makes a lot of sense in the Web applications space.

Saturday, July 12, 2008

HyTech Professionals named Microsoft Gold Certified Partner

Signaling the coming of age for a formidable independent software vendor with global reach!!

Nashua, New Hampshire (July 8, 2008) HyTech Professionals is pleased to announce its selection by Microsoft as a Microsoft Gold Certified Partner. This accomplishment caps a 12-month run of organic growth and new business gains in every one of five Programming Excellence Centers worldwide. The employee-owned HyTech has seen its optimism completely justified by the exemplary performance and realized value of applications fashioned and deployed for the most demanding of American and European clients.

Solution Stack 101: The Continuing Attraction to LAMP

Solution Stack 101: The Continuing Attraction to LAMP

In our last post, we identified the starting line-up for LAMP, argued that an open source stack inherently reduces investment risk for a start-up and well, the obvious benefit that all the components are dirt-cheap to acquire. Today, let’s delve into variations and why you still save money whatever you do.

A decade has passed since a German developer first espoused LAMP in print. Since then, our ever-adventurous brethren in the open-source community have espoused different flavors. The eager young developers at HyTech Professionals (www.hytechpro.com) up in Nashua (NH) have succeeded with dozen of contract projects alternately writing the user interface in Perl, Python or PHP. So it’s still LAMP anyway. But they are really, really passionate about the elegance of Ruby on Rails. Now, rather than get hung up with an acronym like LAMR (just how courageously can you stand on a “lamer” approach and still expect to get paid megabucks?), a wise man settled the issue by ruling that P should mean “programming language”. So that covers PHP, Perl, Python, and Ruby really neatly.

Other folks swear by PostgreSQL and rely on mod python or mod perl to do the front end. Happily, we still have a genie’s LAMP with the last two functions switched. In a proprietary environment, Windows instead of Linux and IIS in place of Apache does not make for a nice acronym at all.

Seriously, the great advantage of LAMP and every other open-source stack is that all the components are readily available, bundled with any Linux distro you care to name. Hence, there is no lack of developers who get trained on open-source OS, scripting languages and Web servers. This is a great benefit for small and medium businesses that would like to launch their first Web application or expand what they have to make enterprise collaboration and Internet marketing a reality.

Friday, July 11, 2008

Solution Stack 101: Why Cost-less LAMP Works

Solution Stack 101: Why Cost-less LAMP Works

As promised, we switch today to the open-source solution stack LAMP. What the Windows Server-Internet Information Services-Microsoft SQL Server-ASP.NET stack is for the Windows environment, the open-source equivalent to cobble together a Web application is LAMP. For the benefit of newbie’s, LAMP stands for:

1. Linux (the operating system);

2. Apache (the Web server);

3. MySQL, (the database management system)

4. Perl, PHP, and/or Python (scripting languages).

While tapping out this post on my trusty Blackberry Curve, the RoR evangelists at HyTech Professionals (www.hytechpro.com) did their level best to convince me to get with the times, ditch LAMP and embrace LAM-R (or LARM, if you will). Maybe they have a point about that Ruby on Rails as an efficient scripting tool.

To get back on track, however, why would any “bleeding-edge” IT manager or developer stake their business’ computing future on an open-source stack made of distro’s for which upgrades or new features come sporadically? Well, the primary advantage of LAMP really is very low cost of acquisition, even after ISV’s and integrators market enhanced versions. Affordability is vital for at least two reasons:

1. In the aftermath of the dot-com collapse, the technology startup or budding e-commerce venture that had the backing of angel investors was very rare indeed. Many would never have made it as far as they did if they had invested six figures right away in licensed platforms.

2. LAMP is a fantastic risk reduction option when you consider the Gartner report that nearly two-thirds of application development projects fail. Many a canny CIO has learned to buck the odds by prototyping or doing proof-of-concept in LAMP so that the cost of acquiring the latest components for a Windows stack does not come back to haunt him and cause many a sleepless night.

In my next post, we will take a look at more scenarios where budget-friendly LAMP stacks pay off, at least in the medium term.

Wednesday, July 9, 2008

Ruby on Rails In the Real World

Ruby on Rails In the Real World

Continuing with our brief overview of Ruby on Rails as drastically simplified, elegant, and stable platform for agile Web engineering, we take the word of some impressively-experienced RoR developers up in Nashua, NH, at HyTech Professionals (www.hytechpro.com) that it is by no means the ONE, the “silver bullet” that will replace all other Web 2.0 frameworks out there. Still, the practiced applications architects insist, clients just love the ability to literally see the state of a Ruby on Rails application, brainstorm where it should go from there, and implement modifications much more rapidly. Herewith some interesting examples of real-world applications the HyTech Professionals engineers created in the last few months:

* For a Marseilles-based firm of independent auditors, the German branch of HyTech Professionals created a complete Web-based ERP and bookkeeping front end, as fully functional as if it was installed on end-user premises. Lookup’s initially covered French laws and accounting principles. However, the application already had Euro-zone currency conversion functionality and modules to cover laws for other nations in the trading bloc. In short, an immediately-useful and extensible Ruby on Rails application.

* For a Toronto-based contact center, the company delivered MapleBU, a management, collaboration and decision-aid framework intended to replace all paper routed around the typical business office. Plentiful Javascript and AJAX modules ensured that the intranet was rich in Web 2.0 functionality.

* A NewWeb CMS that allows mid-size clients to create and manage content quite apart from view options. Especially interesting is the way custom API, Ruby on Rails and Javascript are combined to maximize view flexibility.

* For a private middle school in upstate New York, the Nashua office provided a Ruby on Rails utility for periodically dumping (and translating) the contents of an online encyclopedia to the library and computer lab servers. This saved the school tremendous bandwidth as students were wont to frequently look up the encyclopedia site for every subject except PE and Music.

As these few examples show, there is much one can do with Ruby on Rails architecture and functionality. I’ll illustrate more enterprising examples of RoR benefits sometime soon. Tomorrow, it’s time to dissect that acronym “LAMP”.

Tuesday, July 8, 2008

Important Framework Components of Ruby on Rails

Important Framework Components of Ruby on Rails

In yesterday’s post, I related how Ruby on Rails developers, the intense HyTech Professionals (www.hytechpro.com) teams for instance, push the envelope for rich Web 2.0 applications by keeping their eye on five key RoR principles: trimmer code, segregation by sub-frameworks, not having to repeat one’s self, minimal configuration requirements, and instant feedback just by loading in a browser.

Next, we review the framework components that drive the Ruby on Rails objectives of simplicity, productivity, ready re-use, scalability, testability, and ease of maintenance:

* In setting up the link between domain objects and the database, the Active Record sub-framework converts create, read, update and delete (CRUD) commands, the four basic functions of persistent storage, into SQL functions and transmits these to the database. The key point is that Ruby on Rails activates a table when called in the database and automatically creates the required class.

* Among others, Action Controller relies on actions developer-defined actions to receive requests, determines whether these are actions or objects requiring processing, and returns the proper view to the browser.

* As the presenting sub-framework, Action View fills either RHTML or RXML templates with data in HTML format.

* Finally, support for Web services – those based on SOAP and XML-RPC – is provided by what else but Action Web Services? These do the job of publishing functionality better than the Representational State Transfer approach available with Active Controller.

Given these two admittedly-brief overviews of Ruby on Rails architecture and functionality, you probably understand better now why this platform has impressed folks on the cutting edge as a stable and sophisticated framework for agile Web engineering. In my next post, we’ll go over some real-world applications.

Friday, July 4, 2008

Working Better with Ruby on Rails

Working Better with Ruby on Rails

In the last four years, we have seen how Ruby on Rails (RoR) built on, and accelerated the wider acceptance of, the object-oriented Ruby language. Consequently, the Ruby/RoR combo has become a workhorse of such independent software providers as Nashua (NH)-based HyTech Professionals (www.hytechpro.com). Though busy as the proverbial bee, the development teams there gave me a peek at apps they use to produce more than a hundred web-facing projects year after year.

As early as 2005, Ruby on Rails validated the language by making available an open-source framework for executing database-driven web applications. Its sparse architecture requirement, very lean code and easy access to support for PHP or Ajax, for example, made prototyping easy and quick.

Since then, the HyTech Professionals developers have nabbed one “killer app” after another to broaden the utility of Ruby on Rails. One of the first was the ActiveState Komodo integrated development environment that, beginning with version 3.5, provided edit, debug and testing support for the elegance of Ruby and Ruby on Rails code.

Another very useful app is “ModelSecurity”, a generator that reminds Ruby on Rails developers to write access control for the data model of a Web site. This makes for security defense in depth since architect developers very often program security only into controllers and views.

Fast-forward to last year and we find that FiveRuns quietly acknowledged the enterprise inroads Ruby on Rails has made by writing monitoring functions for RoR in its enterprise management and monitoring suite. All this means is that developers gain diagnostic visibility into the behavior of production-time versions.

All in all, developers continue to value the fact that Ruby on Rails gets a project up and going fast and has capabilities aplenty for building fairly complex Web sites.

Wednesday, July 2, 2008

Ruby on Rails Is Simplicity Itself. Or Not Quite?

Ruby on Rails Is Simplicity Itself. Or Not Quite?

The never-ending desire for riveting Web sites that “pull eyeballs”, lengthen stay and induce return visits has, since 2004, complicated the life of Web application engineers. Enriching a page with Flash, embedded video, visitor talkback, and self-serve communication channels means developer teams need varied expertise in Ajax, Web services and allied technological tools. Happily, Yukihiro Matsumoto authored the Ruby on Rails language and offered it up as a Web 2.0 framework option with the simple immediacy of PHP and the familiar architecture, clean code and robust quality of Java.

At a briefing I attended earlier this week, a Project Manager at HyTech Professionals out in Nashua (www.hytechpro.com) raved about the agile development they have managed for hundreds of clients with Ruby on Rails. At the core, he claimed, all a developer really need attend to is a Web server, a database engine and such sparse code it’s unbelievable. This independent software house found it could slash time to market with the speed and ease with which RoR could generate rich, database-driven Web 2.0 projects.

Still, hands-on experience with a solid client base demonstrated two things to bear in mind:

* Ruby on Rails is not the silver bullet that sweeps away the complexity of J2EE. Matsumoto never did claim RoR was a comprehensive enterprise IDE. Rather, the platform seems to have worked very well as a leaner replacement for combos like Tomcat and JDBC.

* Developers have still endured manual processes and practices. Needless to say, this has meant an active search for a killer app IDE to overlay on RoR. Let me tell you what I turned up in my next post.

Tuesday, July 1, 2008

Secure Browsing in a Shared .NET Framework Intranet

Secure Browsing in a Shared .NET Framework Intranet

Think of all the students in a school computer lab or office workers in a shared corporate NET framework environment. Even if they should know better, everyone indulges in personal Internet browsing, surfing adult, gaming, video and social networking sites. But there is no such thing as leaving no tracks, right? Anyone can peek into the contents of History or the Favorites list. When PC’s are shared, moreover, there is no safety in saving addresses in the Favorites list even if one uses it often enough. There is always the risk that the network Admin will give vent to his curiosity and delete “non-business” Net addresses. So, how does one work around these “hindrances”?

While modeling an e-commerce project based on the NET framework with the folks at Nashua, NH, -based HyTech Professionals the other day, one developer demonstrated how to use a neat utility called WebTool (author: George Bodnar). One simply stores the executable file on a memory stick. On loading, you see a list of Internet addresses and a button. Select the address wanted, press the button and WebTool opens a new instance of Internet Explorer.

This works only in a NET framework environment because the platform does not require a registry entry to run an executable. NET depends on “xcopy deployment”, not caring that the sys admin has not authorized a program but finding and running components automatically.

Of course, I should emphasize at this point that this workaround should not be used for idling away executive time or corporate bandwidth. But there are justifiable circumstances for covering one’s tracks, such as in a two- or three-shift contact center environment operating on the NET framework. So it is worth keeping WebTool in mind when pursuing a confidential project for the boss. Unless you are absolutely sure you are okay with having other users of the PC learn about the next “lean and mean” rightsizing exercise or acquisition talks perhaps. No? I didn’t think so.