New Software Development Technologies, New Possibilities: Node.js

New software development technologies are constantly emerging and one of the most exciting new ones is called Node.js. It is a software framework (based on the Javascript language) that can be used to develop and deploy custom network applications. It allows running Javascript as native code at server-side making it a very fast, lightweight and scalable framework.

Node.js uses the Google V8 engine to compile high level Javascript code directly into low level machine code. The benefits of doing this are its speed and that it is asynchronous. This means that your code can be designed to execute tasks that are not dependent of each other or must wait to see which finishes first. While it can be used to create any type of application, it is most convenient during web based development.  It can be applied to create a more engaging, real-time web application while diminishing requests to a server and make it more responsive.

A good example of this would be a HTTP server application. Node.js provides countless libraries in order to develop your application. With only a few lines of code you can create a very simple HTTP server:

var http = require("http");

  function (request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");

In the previous example, when a user opens the webpage “http://localhost:8080/”, he will be treated with a page containing the message “Hello World”. While this can be done in any type of server with a simple HTML page, here we gain more control of our server and the ability to be asynchronous. It can handle the request for the user and route it accordingly based on your own rules. You can limit the traffic to the user and the response he gets directly into the code. It can push new events or notifications to the user without hitting the refresh button, thus eliminating the need to be constantly making requests to the server. Basically, you can tailor fit how the server is going to work based on your own specified needs. This makes it more efficient and eliminates tons of overhead.

Since it is built on Javascript, the programming learning curve is very low. You don’t have to be an expert on Javascript, or programming in general, to be able to create your own application. Big name companies (like Yahoo, LinkedIn, and Microsoft) are already aware of this and are deploying Node.js in their production environments. Since the web is moving to one based on instant feedback, it seems to be the perfect framework to use for development.

For more information on Node.js, as well as a tutorial, you may visit and for the installation client.


Have you used node.js before? Did you find it useful? Let us know what you think about it!


3 Things You Need To Do Today For Your Content Marketing

We have previously discussed what content marketing is and how it is the new way to market your company. This is true, whether you are an insurance company, a software development firm or a doctor in private practice. Don’t listen to us; search and read the experts in the matter. A lot of new companies are emerging in the marketplace specifically tackling content marketing initiatives. Eg. HubSpot, Marketo, InfusionSoft, and many others. These companies have seen exponential growth due to the fact that their clients are seeing the results of monitoring and adapting content to their visitors’ interests. That said, we list the three important things that based on our experience you can do to have a successful content marketing strategy.

  1. Start! – Many companies suffer from ‘analysis paralysis’ when it comes to content marketing. Yes! It’s that simple, starting is the most important thing you can do with your content marketing strategy. Once you start creating content, you will notice that it is easier than expected.
  2. Provide valuable content – This sounds counter-intuitive. You probably ask, “Why would I give my product / service away?” This is madness, you say. But if you don’t provide valuable information to your potential clients, your competitors will. It’s that simple. Anyone with decent Internet research skills can find whatever they need through the web. So, make sure you are ‘searchable’ and ‘findable’. And, in case a client can’t find the needed information on the web, GREAT, this means your competitors are behind… That’s a great incentive to start now! In this case, you have a better chance of becoming the leading source of information to potential clients.
  3. Post on a regular basis – This is where marketing requires commitment. Posting once a month won’t get many people interested in your company. People want to be kept up-to-date with the trends in the market. They want to make sure you are on top of your game, because they want to make sure they are on top of their game as well. Posting regularly will let them know that you are what you say you are.

Clients today will find whatever they need online. Make sure they find you and not your competitor. Start publishing valuable content on a regular basis and client visits to your website will definitely grow. Once they visit, you will have an opportunity to interact with them in a meaningful way. After you establish this engagement with the potential client, you will be several steps closer to them and closing the sale… and closing the sale is what business is all about.

Tell us: What’s stopping you from starting your content marketing initiatives today?

PS. You like my post or the Kermit the Frog photo on top? … Please share this post with your friends!

Alternative Ways to Document Technical Support

When doing technical application support it is necessary to document its resolution in a structured manner. At a minimum you need to keep a log of the problem type, script or tool used for solving the problem and any other type of instructions on how to handle or solve the problem. For that purpose you have many non-recommended options like using pen and paper, flat file applications like Notepad, Word or even Excel. I recommend you use a note management application like Evernote or OneNote. As an example I will discuss the use of the first one, Evernote.

Evernote keeps the notes you have on a manually structured and searchable manner.  You could categorize them in notebooks which could help you divide notes from one client to the other, but could also be searched in all of the notes at the same time. On each note you could put anything from “SQL” (Structured Query Language) scripts to Word documents that describe requirements, emails, chats logs that include technical stuff, images, etc.  Many things that contributed in the solution of a problem could be added to your notes.

Another feature is that you could create tags that work as bookmarks for linking related notes. All notes tagged with the same words can be found with just one click.

Not only will this help solve an issue faster, but it will also help you catalog your reusable scripts. In the future you only need to search for these references to have access to them. Remember a reference can be a specific command, database table, shell command or procedure you want to reuse.

You could even add tips or information regarding a specific area you are not yet familiar with. These tips can be information someone has given to you or a piece of information you recognize could be important to know in the future.

If you also work as a developer you could add the tasks assigned to you on another notebook and keep track of information regarding these tasks like assigned data, due date, deployment paths or other information which you know could be forgotten so it’s best to have it written down on a note.

Thanks to this note management system, I can perform technical support faster. It has also helped me on the development process of new scripts since many times I have to reuse an SQL code that has been previously developed. If you work with several different technical support issues on a daily basis, keeping these scripts and tools at hand will help you fix issues faster. You will be more efficient.  Do you recommend any other tools to document you technical support resolution, tips, and tricks?

What is Electronic Transaction Governance?

Before we can answer the question of what is Electronic Transaction Governance lets define the term Governance. According to Wikipedia ( , Governance is “the act of governing. It relates to decisions that define expectations, grant power, or verify performance. In the case of a business or of a non-profit organization, governance relates to consistent management, cohesive policies, guidance, processes and decision-rights for a given area of responsibility.”. Basically for business, Governance is a set of processes and best practices that assure consistent optimal operational results.

Electronic Transaction Governance deals exclusively with the processing and management of all electronic transactions (e.g. electronic payments, electronic claims, purchase orders, etc.) be it standards based (e.g. EDI ASC X12, HL7, EDIFACT, NIEM, etc.) or custom developed. The goal of Electronic Transaction Governance is to assure the proper handling, processing, and management of all electronic transactions while mitigating the risks associated with electronic commerce. Electronic Transaction Governance is composed of the following five areas:

  1. Standard Compliance
  2. Data Quality
  3. Risk Management
  4. Security Management
  5. Audit Trails

Standard Compliance

Standard Compliance is the first area of Electronic Transaction Governance that must be implemented in order to mitigate any processing risks and assure proper handling of all electronic interaction. Before an electronic transaction is exchanged between two parties a communication layout (message rules) must be agreed upon. Standard Compliance is the process of verifying that each electronic transaction conforms to the adopted communication layout thus assuring proper handling of all electronic transactions.

Data Quality

Data Quality is the area of Electronic Transaction Governance that deals with the quality of the data in the electronic transactions. It is a process where the data in the electronic transaction is verified to ensure it contains valid data. The process should verify all the fields contained in the electronic message and confirm that the data contained in them correspond to the expected values. For example, if a field should contain a contract number the Data Quality process should verify the value in the transaction corresponds to a valid contract number.

Risk Management

Risk Management is the area of Electronic Transaction Governance that helps minimize and deal with risk events in electronic transaction handling and processing. Electronic transaction handling and processing tasks have a large number of known and unknown risks. Some of the known risks are unavailability of satellite and core system for transaction processing. The Risk Management process should handle all known electronic transaction handling and processing risks, thus minimizing the possibility of lost electronic transactions. For unknown risks, the Risk Management process should alert of the unknown risks event immediately.

Security Management

Security Management is the area of Electronic Transaction Governance that secures the electronic transaction handling and processing activities. All areas of the electronic transaction handling and processing must be secure. The electronic transaction data repositories, communication channels, and processing agents must be secure to only allow access to vetted individuals.

Audit Trails

Audit Trail is the area of Electronic Transaction Governance that permits accountability and reporting of the complete electronic transaction process. All steps and interactions of the electronic transaction handling and processing must be saved into a central repository. These audit trails will include all necessary information to recreate the electronic transactions through each step of its processing. Detailed reports can then be prepared from the audit trail data.


If you implement all the areas of Electronic Transaction Governance into your electronic transaction processing engines you will assure no more lost electronic transactions. All electronic transactions will be properly handled, processed, and managed, while mitigating and managing the risks associated with these processes.


How a positive mindset can help you in your work?

When you are experiencing positive emotions like happiness, contentment, and love, you will see more possibilities in your life. Positive thinking is about much more than just being happy or displaying a great attitude. Positive thoughts can actually create real value in your life and help you build skills that last much longer than a smile.

A few points that a positive attitude can improve in you:

  • It makes you more effective regardless what type of job you have. The better your attitude, the more you get done.
  • It will help those around you, even if it is a simple smile, you never know if someone needs one.
  • The service that you provide to clients and customers improves. It is easier to listen to their needs and helps you come up with better solutions.
  • You will appreciate what you have more and people around you will be more likely to show their appreciation.

5 tips that can help you improve your positive mind-set:

  1. Every morning when you wake up, mention 5 positive great things that you have in this moment of your life. For example: “I’m glad that I am a computer scientist”, “It’s really great that I have an spectacular wife and two kids that I love”, “Wow I’m the CEO of a company”,  “I have a brand new car that is awesome” and the list can go on. Believe it or not, these things help you during the day. You can do the same thing at the end of the day with your daily achievements.
  2. Don’t let one bad thing ruin the day. Having a positive attitude is not going to prevent bad things from happening, it will help you manage them. For example, just because you got stuck on traffic jam after having a wonderful productive day doesn’t mean that the day turned out to be awful. Stop blaming things you can’t control. One negative thing shouldn’t ruin three positive ones. People often tend to see only the bad side of things. Traffic is something that you can’t control.
  3. Exercise more often. When you exercise your brain releases dopamine, serotonin, BDNF, and Norepinephrine. This hormones make you feel good, your self-esteem and confidence improve as well.
  4. Meditate. You don’t have to be a monk on the Tibet, Meditate. Recent research by Barbara Fredrickson and her colleagues, Open Hearts Build Lives: Positive Emotions, Induced Through Loving-Kindness Meditation, Build Consequential Personal Resources, suggests that people who meditate daily display positive emotions more often that those who don’t. Meditation also builds valuable long-term skills.
  5. Surround yourself with positive people. Don’t be dragged by pessimistic people. Negativism is contagious and if you are not a mentally strong person you will get ill. Get rid of those people.

All of this sounds like Bobby’s World but when you practice this you actually start to see the difference. It takes time and patience, but be certain, you will notice the difference. Please use the comments section to share additional positive mind-set tips?

Near Software Development

Can successful custom software development projects be developed outside the customer site? I not only think they can, I think they should always be developed outside the customer site.

The first reason I believe a custom software development should be done offsite is to control scope. A project developed on site is prone to constant scope changes due to the proximity of the software developers to the project stakeholders and end users. It is so easy for a customer to walk down the hall and have an informal meeting with one of the project’s developer. A lot of times these informal meetings trigger an informal scope change that bypasses the project change control structure and is noticed by the Project Manager when it is too late. Some may argue this is defective Project Management. I believe this is onsite software development reality. Customers commit to requirements better when the work is done offsite.

In my experience most offsite custom software developments are delivered on time. Again, it is so easy to simply tell a customer down the hall that the project is going to be late, “but you know we are working hard and we stay late everyday”. Offsite teams do not have the luxury of having the customer see how hard they work or how late they are staying or how complicate the logic really is. Consequently, offsite teams need to demonstrate the customer how hard they work by delivering quality software on time without excuses.

Usually, the offsite location is a more relax place for developers to work and a more relax software developer produces higher quality code. Software Developers have special needs. Software Development is as much art as science. Thus, to be more productive Software Developers need a working space that permits their creativity to flow in their own terms. This can be no dress code, flexible working hours, all you can drink coffee, or even a no questions ask thinking sofa. I have yet to see a customer site that offers contract software developers an office space where they can feel relax and not stress out that the customer is watching how they are working.

Sure there are downfalls to working offsite. For example, communication between the software development team and the customer can flow a little bit slower. The customer might think the work being performed is easier than what is the reality and thus, wants the project to be complete on a shorter time frame. But the truth is a good Project Manager can handle these “shortfalls” as normal project risks and deliver an improved customer experience with an offsite software development team.

I urge you to try out your next custom software development offsite. You will be impressed with your results.