WebVirtue Software Solutions is a global IT solutions and services provider. We provide Offshore Software Development - Website Design, Web Application Development Services, Software Outsourcing and Offshore Outsourcing, to Clients Globally.

   
 
 

  Previous Posts

 

  Archives

 

Monday, December 21, 2009


Scrum Methodology

Of all the agile methodologies, Scrum is unique because it introduced the idea of empirical process control. Scrum uses the real-world progress of a project to plan and schedule releases.

In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, client and team members meet to assess the progress of a project and plan its next steps. This allows a project’s direction to be adjusted or reoriented based on completed work, not speculation or predictions.

In Scrum, every iteration begins with the sprint planning meeting. At this meeting, the Product Owner and the team negotiate which stories a team will tackle that sprint. Time-boxed to four hours, this meeting is a conversation between the Product Owner and the team.

The heart of the Scrum process is the daily standup meeting, also known as the daily Scrum. No other meeting captures Scrum’s emphasis on communication and transparency quite like the standup. This meeting helps ensure that the entire development team is always on the same page. Every day, the Scrum team gathers together, usually in a team room or private office - to report on the progress made since the last meeting, goals for the next one, and any impediments blocking their path. These reports are often phrased as responses to the following three questions:

-> What have I done since the last Scrum meeting (yesterday)?
-> What will I do before the next Scrum meeting (tomorrow)?
-> What prevents me from performing my work as efficiently as possible?

In Scrum, when the sprint ends, it’s time for the team to present its work to the Product Owner. This is known as the sprint review meeting. At this time, the Product Owner goes through the sprint backlog and asks the team to present its work. The Product Owner checks the work against the acceptance criteria to determine if the work is satisfactory or not.

For software projects, a typical team includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI designers.

There is also a software we can use for this: http://www.danube.com/scrumworks/pro/features

Monday, June 22, 2009


PHP and Memcache

Memcache is really a great caching system which we used recently in one of our site.

memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

We used it on our site for displaying categories, products, searching, paging etc.... and it was very effective. The database load reduced drastically and pages loaded very fast. You just need a good memory on your server,

It is also relatively easy to implement memcache, While the server and API only have one way to get data from the cache, there exists 3 ways to put data in:
set -- unconditionally sets a given key with a given value
add -- adds to the cache, only if it doesn't already exist
replace -- sets in the cache only if the key already exists
Additionally, all three support an expiration time.

Tuesday, May 12, 2009


ColdFusion XML Parsing

People get the "Content is not allowed in Prolog" XmlParse() error in ColdFusion ... mainly when you try to parse XML that has data or white space prior to the encoding declaration or root node. This is often caused when an XML feed does not trim it's return value. Usually, passing the content through ColdFusion's Trim() method before calling XmlParse() does the trick; however, in one case, Trim() didn't seem to be helping.

When i was working with Authorize.NET's API, which returns XML responses. If you look at the FileContent, you will see that an XML document was returned. And, furthermore, from what you can see, it appears that the first piece of data returned is the encoding:


Even when we are running the returned response through ColdFusion's Trim() method before parsing it. Usually, this would take care of any prolog data issues; however, running the above code, we get the following error:

An error occured while Parsing an XML document. Content is not allowed in prolog.

It turns out, this character which is creating problem is something called as Byte-Order-Mark and in an XML document, it is used to flag the encoding type of the XML. Unfortunately, ColdFusion does not appreciate the use of this Byte-Order-Mark, or BOM. In order to get this kind of XML feed to play nicely with ColdFusion, we have to remove the BOM before we parse the document. Luckily, getting rid of this requires nothing more than a simple regular expression that strips out all characters before the first bracket.

Here is the code:

REReplace( objGet.FileContent, "^[^<]*", "", "all" )

Monday, March 16, 2009


Video Streaming

We implemented video streaming on a website and it was much easier that i thought. We had to stream pre-recorded videos and the 1st step towards achieving this was to setup streaming server.

There are quite a few open source available that can be installed on LINUX system ... i choose to go with Red5. It got installed easily on my dedicated server. The only problem i faced is that it has a directory as oflaDemo from where the videos can be called for streaming. I was not able to assign another directory for video streaming, so at the end i used oflaDemo and stored all my videos there.

Then the next step was to find out the player which supports streaming. We choose JW player. It has a option to stream using code:

flashvars="file=filename.flv&streamer=rtmp://www.domainname.com/oflaDemo/

This way we were able to implement video streaming on a site.

Friday, February 27, 2009


Symfony - Open-Source PHP Web Framework

Recently we got a chance to work with Symfony - Open-Source PHP Web Framework, and we all were impressed with it. It provides an architecture, components and tools for developers to build complex web applications faster. Symfony can be used to develop professional applications with style and little effort.

It's easy to start with Symfony, you need a web server (Apache for example), a database engine (MySQL, PostgreSQL, or SQLite), and PHP 5.2.4 or later.

It has The Admin Generator, Easy Ajax, Forms, Validators, Widgets, Testers, Loggers, Tasks, Routing, Filters and lots of plugins. Give it is try, i am sure it will be worth it!

Saturday, February 7, 2009


Creating VCALENDAR file

Creating VCALENDAR is simple, we just need to follow the format but recently i have faced a lot of problems making VCALENDAR file work properly in Outlook (specially 2007) and Entourage (on MAC).

I created a VCALENDAR file as :

BEGIN:VCALENDAR
VERSION:1.0
BEGIN:VEVENT
SUMMARY:Event Name
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Line 1=0D=0ALine 2=0D=0ALine 3
DTSTART:20090209T000000
DTEND:20090210T000000
END:VEVENT
END:VCALENDAR

This worked perfectly fine on Entourage (on MAC) and Outlook older version but not on Outlook 2007. I faced 2 (infact 3) problems:
1. Line breaks not visible in Outlook 2007
2. Start and End Time is not properly set
3. All day event checkbox is not checked

I corrected the line breaks probelm by adding "=0D=0A" twice ... so the description look like:

DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Line 1=0D=0A=0D=0ALine 2=0D=0A=0D=0ALine 3

Now the Start and End time and All day event problem is still there. Will let you all know if i am able to solve this.

Friday, January 30, 2009


Image manipulation capabilities in ColdFusion 8

Not much people are using Coldfusion these days but i see lot of potential in Coldfusion 8 ... i came across the need of image manipulation and its then i found out the capabilities of new cfimage tag and image-related functions. The cfimage tag introduces lot of new ways to manipulate images in ColdFusion without having to install any third-party image manipulation tags or Java classes.

Here is an example how you can use the cfimage tag to create CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) graphics in the browser:

<cfset captchatext="hello">
<cfimage width="140" height="40" difficulty="low" text="#captchaText#" action="captcha">

Here you see cfimage tag with the action property set to captcha, followed by the text property set to the captchaText variable: this is the text that will be displayed in the generated CAPTCHA image. The difficulty property has three settings, low, medium, and high, which affects the degree to which the text is obscured, to make it harder for a computer to distinguish characters. The last two properties, width and height, set the graphic’s display dimensions.