Jaslabs: High performance Software

High Performance Software

Archive for the 'open source' Category

How to test a web application

By Justin Silverton

When creating and releasing a web application, testing is a very important step in the overall process. It can determine the success of an application and is many times a very time consuming process. There is an open source application called selenium that can help automate these steps and help reduce the risk of missing anything important while testing.

How it works

Selenium uses JavaScript and Iframes to embed a test automation engine in your browser. This technique should work with any JavaScript-enabled browser. Because different browsers handle JavaScript somewhat differently, we usually have to tweak the engine to support a wide range of browsers on Windows, Mac OS X and Linux. The beauty of this design is that it can also be used to test any web page or script (independent of the the back-end technology used to generate it).

Features

  • Easy record and playback
  • Intelligent field selection will use IDs, names, or XPath as needed
  • Autocomplete for all common Selenium commands
  • Walk through tests
  • Debug and set breakpoints
  • Save tests as HTML, Ruby scripts, or any other format
  • Support for Selenium user-extensions.js file
  • Option to automatically assert the title of every page

How to test your application

Testing comes in three flavors. The first is a simple GUI interface (either a firefox extension or through a back-end application for Internet Explorer) that allows the direct recording of any action in the browser. Below is a screenshot of this interface.

Test scripts can be created by the following steps:

  1. Install the Firefox extension
  2. Go to the website/page that you would like to start testing
  3. Click the and go through all of the steps for the test
  4. When you are finished, click the button from step 3 again to finish the test

You will notice some commands listed on the main screen. These are the commands that were recorded from above. These can also be added manually.

Another method for testing is using the selenium core. Selenium Core uses a unique mechanism which allows it to run on so many platforms. Written in pure JavaScript/DHTML, you copy Selenium Core tests directly into your your application webserver, allowing the tests to run in any supported browser on the client-side. It allows you to do the following:

  • Browser compatibility testing. Test your application to see if it works correctly on different browsers and operating systems. The same script can run on any Selenium platform.
  • System functional testing. Create regression tests to verify application functionality and user acceptance.

The third method for testing is through the Selenium Remote Control. Selenium Remote Control provides a Selenium Server, which can automatically start/stop/control any supported browser.

The Selenium Server communicates directly with the browser using AJAX (XmlHttpRequest). You can send commands directly to the Server using simple HTTP GET/POST requests; that means that you can use any programming language that can make HTTP requests to automate Selenium tests on the browser. Wrapper objects are also included for Java, .NET, Perl, Python, and Ruby.

Download

Selenium can be downloaded for free Here

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • DZone
  • Slashdot
  • StumbleUpon
  • Technorati
1 comment

ReactOS 0.3.1 Released

by Justin Silverton

New features

  • Freeldr was improved
  • HAL’s key areas have been significantly improved (irql-related, bus support, kd-functions
  • The Kernel experienced a massive rewrite of incompatible parts (and is still in the process of improvement)
  • Run-time library (Rtl) got a lot of improvements and bugfixes
  • Bugs were fixed in kernel-mode drivers and a better USB driver was added
  • Registry-support has been greatly improved thanks to addition of “cmlib”, a library shared by the boot loader and the kernel to handle binary registry hives; it even supports binary registry hives created by Windows
  • More fixes in the Win32 subsystem and user-mode DLLs
  • Boot video driver (and a splash screen) was added

What is reactOS?

ReactOS is a free and open-sourced operating system based on the Windows architecture, providing support for existing applications and drivers, and an alternative to the current dominant consumer operating system.

It would be perhaps important to start by saying what ReactOS -isn’t-. It is not another wrapper built on Linux, like WINE. It does not attempt or plan to compete with WINE; in fact, the user-mode part of ReactOS is almost entirely WINE-based and our two teams have close ties. ReactOS is also not “yet another OS”. It does not attempt to be a third player, like SkyOS or any other alternative OS out there. People are not meant to uninstall Linux and use ReactOS instead; ReactOS is a replacement for Windows users. As such, this has created a lot of misunderstanding from both sides. Linux users often wonder why create dilution in the free OS space by creating a Windows-alike OS; wouldn’t that keep some people from switching to Mac/Linux? Windows developers, on the other hand, don’t understand the need to reinvent the wheel by an OS that doesn’t have the high quality and support that Windows has.

screenshots

more information on reactOS can be found here

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • DZone
  • Slashdot
  • StumbleUpon
  • Technorati
3 comments

Red hat to be more compatible with Windows

By Justin Silverton

In a recent article:

“In the latest example of a Linux distributor looking to get closer to Microsoft, Red Hat said Tuesday that it has joined the Interop Vendor Alliance, a group of tech companies working to make their products more interoperable with those produced in Redmond.

Red Hat says most of its work within the group will focus on making its middleware more compatible with Microsoft’s and will build on efforts previously undertaken by its JBoss division. The goal, Red Hat says, is to ensure that its products can perform well in environments in which Windows also plays a large role. Shaun Connolly, Red Hat’s VP for product management, says the company is looking to make its user experience “transparent and seamless in spite of heterogeneous environments.

Red Hat’s announcement came a day after Microsoft and Novell outlined a roadmap for products designed to work in either Windows or Linux environments. The companies said they will focus their joint efforts on building more efficient, cost-effective products for facilitating server virtualization, Web services implementations, directory and identity interoperability, and document format compatibility”

Will linux finally have compatiblity with Microsoft windows? Given the history of Microsoft, I don’t think we are going to see a completly open .doc standard anytime soon.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • DZone
  • Slashdot
  • StumbleUpon
  • Technorati
4 comments

PHP+Java=Resin

By Justin Silverton

What is Resin?

The Resin® high-performance, open source application server features load balancing for increased reliability. Caucho’s Quercus(TM) is a fast, 100% Java implementation of the PHP language allowing developers to use PHP flexibility for the web interface and Java for stability.

Benefits (From Their website)

Quercus and Quercus’ PHP libraries are written entirely in Java, thereby taking the advantages of Java applications and infusing them into PHP. PHP applications running on Quercus are simply faster, easier to develop, more capable, more secure, and more scalable than any other PHP solution.

Performance - simply faster

Quercus outperforms straight mod_php by about 4x for MediaWiki and Drupal.
PHP developers can use Java tools like profilers to get in-depth information about the PHP program performance.

Development - fast, safe, and easy

PHP extensions written in Java are fast, safe, and relatively easy to develop compared to those written in C. Since Java is the library language, developers won’t need to be paranoid about third-party libraries having C-memory problems or segvs and are freed to concentrate on solving the objectives at hand.

Capability - powerful Java technologies at the developer’s fingertips

Quercus has the best of both worlds: PHP and Java. PHP applications can take advantage of Java technologies like JMS, EJB, SOA frameworks, Hibernate, and Spring.

Security - no more pesky C memory bugs

All Quercus extensions libraries are coded in Java. Therefore, developers do not have to worry about C pointer overruns and segmentation faults from PHP extensions anymore.

Scalability - PHP for the masses, literally

Thanks to Resin, PHP applications can beautifully scale to as many servers as desired.

PHP applications can now enjoy connection pooling, distributed sessions, fail-safe load balancing, and proxy caching. These benefits require no change in the PHP code.

The open source version (There is also a commercial version available) can be downloaded Here

Benchmarks

Benchmarks can be found here

PHP Apps that have been tested with Resin (and work)

  • DokuWiki 2006-11-06
  • Dragonfly CMS 9.0.6.1.7
  • Drupal 4.7.4
  • Gallery2 2.1.2
  • Joomla 1.0.11
  • MediaWiki 1.9
  • Phorum 5.1.16a
  • phpBB 2.0.21
  • phpMyAdmin 2.9.1.1
  • PHProjekt 5.2
  • PHP-Nuke 7.9
  • Wordpress 2.0.5
  • Xoops 2.0.16

Conclusion - will I be switching to resin?

It is an interesting concept, but I think I will have to do some major benchmark testing before I decide to switch any of my websites to a java based php application server.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • DZone
  • Slashdot
  • StumbleUpon
  • Technorati
8 comments

wordpress 2.1 to be released on Monday

By Justin Silverton

Wordpress 2.1 is going to be on Monday January 22nd. Here are some great new features that you will see:

Auto-save of Drafts - WordPress 2.1 adds an autosave function that is automatically implemented when writing new drafts. This functionality uses AJAX and operates without new pageloads. The title of the post must be filled out in order for autosaving to occur.

Plugin Compatibility - many plugins will no longer work in 2.1 due to deprecation of database table variables. However, whenever there is a new version of WordPress, the other possible “plugin breaks” extend farther. Fortunately, the WordPress community has been hard at work testing plugins with 2.1 determining compatibility (find out if your plugin is compatible here).

New Visual Editor Interface - A big problem (to many) in the WordPress 2.0 branch was the Rich Text Editor (RTE) powered by TinyMCE. I believe the RTE was a good idea but was before it’s time. Thankfully, the developers have heeded the concerns brought to bear on the RTE in WordPress 2.0 and have significantly improved it. Notably, there is now a tabbed interface in the Write screen that will allow bloggers to switch between the two views seamlessly.

More information on this can be found here.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • DZone
  • Slashdot
  • StumbleUpon
  • Technorati
1 comment

Next Page »