Archive for the ‘Software engineering’ Category

Amazons new Protocol to Speed up Cloud Computing

Written on September 25, 2009 – 6:06 pm | by Jayakrishnan

Data intensive computing has been less costly nowadays due to cloud computing.  Cloud computing allowing users to buy resources online.  One major problem that plagued may users was the inability to upload large amount of data and this area has remained costly and time consuming.  Amazon announced a new file transfer protocol     which makes transferring copious amount of data a breeze and it does not requires heavy infrastructure.

One of the biggest bottle necks in cloud computing many say is the upload and download of data from the cloud.  The major bottleneck in this upload and transfer of data is the TCP a layer in the internet which is responsible for the transfer of data. TCP is fine for small amounts of data but when it comes to large amount of data it is very sluggish.

Transferring data across the United States making use of a  100-megabits-per-second (Mbps) Internet link making use of TCP can result in a latency of 100 milliseconds causing a  loss of 1 percent of packets, which translates to transfer rates at the rate of 10 Mbps and less.

Amazon Web Services makes use of technology developed by Aspera, based in Emeryville, CA and it is called the Fast And Secure Protocol (FASP).

“It  is an alternate bulk data moving protocol,” says Michelle Munson, Aspera’s CEO and cofounder. “The inefficiency [with TCP] is really very noticeable when transferring large amounts of data,” she says.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineering1 Comment

Singly LinkedList in Javascript

Written on June 27, 2009 – 6:43 pm | by Sanil S

I was developing some Web chat like gmail web chat. I have a module to develop a public chat, so my requirement was to keep track of all users in the room. So I created a linkedlist to keep track of the users in room. I would like to share the javascript linkedlist code with developers. So I hosted it at google code. Please feel free to add up your functionalities also.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineeringNo Comments

Linda Rising on Collabration

Written on June 4, 2009 – 10:50 pm | by Jayakrishnan

Linda Rising is an expert in the field of Agile Software Development . Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The term was coined in the year 2001 when the Agile Manifesto was formulated. Linda Rising has  coauthored a book called “Fearless Change: Patterns for Introducing New Ideas” with Mary-Lynn Manns.She explains about how she got excited with  the activities of the brain and  the social rituals of the ape while she worked on her book. She says that how exciting it is to talk about various agile methodologies but the problem always see in implementing them on how it is very tough in telling and convincing people who struggle to make deadlines about ideas like pair programming or test driven development.

She assumes that it is a matter of logic.If she considers herself a logical person and the people in her team to be all logical then the best way to implement anything would be to outline the logical reason behind its implementation and how it will work out. This is very successful she points out . Most of the time people actually do not think logical and this makes it hard in implementing ideas. She tells that it is the unconscious part of the brain that has vast processing capabilities and the conscious is much like a monitor whereas the unconscious is much like the CPU in analogous terms.

In her own words she says that “We shouldn’t struggle logically and try to introspect looking for solutions”. when she spoke about the social behavior of Chimps and Bonabos in understanding agile Developmnet Methods and why it worked this is what she had to say.”he talk that I gave here might have seemed to some people a little frivolous. I was talking about chimpanzees and bonobos. What I was trying to point out is evolutionary roots for a lot of things that our brains are hardwired to do. And when we considered the success of Agile development, I think we have to look at those evolutionary, biological roots and say: “Maybe the reasons why pair programming works so well, or the idea of keeping teams small, is that we are hardwired to perform best in that kind of environment”.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineering3 Comments

Agile Project Management tool

Written on September 10, 2008 – 1:35 pm | by Sanil S

I am planning to develop an Agile project Management tool. I am really inspired by 37 signals mode of working. So far they have developed 4 (Basecamp, Highrise, Backpack, Campfire) cutting edge applications and open source web application framework called Ruby on Rails. Moreover 37 signals also developed some more applications, tadalist, writeboard, job board etc. They are developing cutting edge application even working in different time zone. I think all of those who are interested in web application development / marketing should read there book, “Getting Real“.

Getting inspired by 37 signal team I am also planning to develop an application, which is a Agile Project Management tool. I am now acting the role of Agile Business Analyst (If someone are good please let me know I will handover this job to you :-) )for the product, and I am collecting requirements from different engineers who are into Agile SE. As a part of it please convey your thought on the same, what you need to improve your Agile experience. I will put them into different Sprints and realize the product.

And ofcourse about me, I have 3.5 years industrial experience in Web and telephony (asterisk) application development. For more information about me check out my LinkedIn profile. Please contact me @ mail2sanilATgmailDOTcom.

I am planning to develop application in Symfony an open source framework for PHP, in LAMP framework. It is one of the best framework available with plenty of plugins. Moreover this framework is designed for enterprise web application development. I welcome all of those who are interested in participating in the project both in development and identifying requirements. The application will be open source under GNU Licence. As of now we have 2 developers in hand one is me and other is Sarath who will handle XHTML design he is an expert in the field.

Let us work like 37 signals, I am in touch with Jason who is one of the founder of 37 signals, will ask for his expert guidance regarding this. Let this be a community intiative which will conceptualize the Agile Project management tool. I am waiting some of the Agile and open souce geeks who have prior experience in Symfony who are also interested in contributing for this project.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » My thoughts, Software engineering3 Comments

Who is Agile Business Analyst?

Written on August 30, 2008 – 4:21 pm | by Sanil S

Traditional Business Analyst
nBusiness analyst are suppose to be the requirement definer who will be able to define all the requirement of the project from the starting of the project(s). This is the job of Business analyst in tradition requirement analysis. During the traditional software engineering once documented by business analyst are not going to change atleast not without potential delay and budget overruns. He should communicate properly with the customer and refine the needs of the customer. He should be able to satisfy the customer(s) need.
What is Agile Project Management?
This SE assumes that process required to develop working software in todays economy is not predictable. Requirement may change, technology may change we can predict individual team members efficiency. When the factors that affect engineering are not static we can’t predict the outcome within sufficient tolerance. Instead we need to adjust the outcome and guide them to create desired outcome. Agile project management does this by creating a high level visibility of the project status, frequently inspecting outcome and maintain the ability to adapt the changing requirement.

In Agile collaborative project requirement succeeds. All the team members are from all discipline involved in defining project requirement. Technical team members and Quality Assurance (QA) collaborate with the product owner and the BA to develop the project specifications. So Team members in Agile project management can experience the collaborative business process involved in the product engineering.
Then Who is Agile Business Analyst?
Just as every Agile team does not necessarily need a dedicated Project Manager, not every team will need a dedicated Business Analyst. Many Agile projects rely on team members that can perform more than one role. Following are the skills needed for a Agile Business Analyst.

  • Like traditional SE Agile Business analyst facilitate discussion with the product owner.
  • Afterwards the business analyst should be able bring tremendous amount of technical knowledge that help him to draw out the high level functional requirement from the product owner.
  • BAs can also help translate user needs into more technical language for the developers.
  • Coaching and team building.
  • Developing a good understanding of software architecture concepts will help to bridge the gap between the development team and the business.
  • Agile team dynamics and collaborative decision-making techniques.

As a whole even the project can be deliver even without a Project Manager, the Business analyst facilitate, define, understand the team deliver the project with even admit continuous requirement change. That means the Business Analyst should participate in the whole engineering cycle.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineering1 Comment

Software as a Service (SaaS)

Written on March 26, 2008 – 9:23 pm | by Sanil S

This is a modern software application delivery model, in which vendor develop the application, host and maintain the applications by themselves.

Traditional applications are Application service provider or on demand applications. So customer need to pay for the entire application. Moreover customer might not be interested in all the service provided by the software. This create customer a feeling to pay less for the application. All most all traditional desktop applications are on demand or application service provider model.

As web space bringing more attention to customers the idea of software as a service arise. Now web act as a platform to help and enhance service based access to infrastructure, applications and business processes. You can see that almost all modern web 2.0 applications follow the software as a service model. Customers do not pay for the entire application rather than they pay only for use. Even the vendor can expose there service via API which may be web service or REST calls. Since the application resides centrally any patch can be applied anytime without any hurdles. Recent survey says that software as a service and cloud computing holds most strategic values in the coming years.

0906icddiagram.gif

Let me bring your attention by demonstrating an application. One of the popular platform fastalerts where customers can send alerts which can be sms, email or voice alerts. If I am a customer of the application I don’t need to pay for using application rather than that I pay for the sms. I can purchase sms packages and send from the application. I hope now you got a clear idea what is SaaS?

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineering, Web2 Comments

Requirement :- From Reverse engineering ?

Written on March 7, 2008 – 9:29 pm | by Sanil S

software_test_web.jpg

Today I started doing a maintenance project. Beautiful thing is that i don’t have a functional live system, what I have in hand is code-base :-( . Its a big system, really big. But the fact is that those who given the system for maintenance, even they don’t know what all are requirements? They have a functional requirement document very cluttered and un-managed. The system is still live but what use in having a live system buts its not functionally live. Its a bad thing right ?

The project has been live since 2005 January. They handover the code-base along with database structure but it was done in j2ee I have no idea how can make the system up for a test run at-least, anyways I have the code-base in hand I started studying the business logic from the code-base. They strongly suggest to continue with existing system and fix the bugs. But the basic thing was the system design and implementation is too bad. A lot of redundancies are there in the database structure and the application logic.

I decided to port the application to PHP, provided requirements from HTML pages. This is really a new experience for me. There is no technology crack in the system so its not so interesting in the development. The attractive feature is that we don’t need to design the HTML pages its already there. Me, sarath and sajith are into the development for this. Hope to complete this project with in one month, cos we need to deliver it as soon as possible.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » My thoughts, Software engineering, Web6 Comments

Design Patterns

Written on February 27, 2008 – 12:31 pm | by Sanil S

Design patterns are reusable component for general problems during the development life cycle. Suppose a service company like infosys they are developing applications generally for their clients. Each and every application have some part in common. So we can consider those part as a reusable component. The reusable components have some specific part in common gathering those specific part and define it as a pattern so that the same pattern can be applied for other projects.

For eg: Most of the common web applications need have the functionality of file uploading from a client system. We can consider the uploading components as a design pattern.

patterns2-1.jpg

Above diagram shows file uploading design pattern.

PHP5 is strongly object oriented programming language. Almost all the web application need the functionality. The above class diagram can be implemented in php5.

Post to Twitter Tweet This Post Post to Delicious Delicious Post to Digg Digg This Post Post to Facebook Facebook Post to MySpace MySpace Post to Ping.fm Ping This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Posted in » Software engineeringNo Comments
Get Adobe Flash playerPlugin by wpburn.com wordpress themes