Skip to main content

Posts

How to Start a Blog for Free in 8 Simple Steps

Blogging is a great channel to express your ideas to the world. Although, you may have wonderful ideas to share, you may be restricted by your knowledge of the technologies involved in starting a blog. This guide will show you how to start a blog that is aesthetically pleasing and fully functional, all in an easy step-by-step tutorial. 
Recent posts

10 Best Blogging Websites and Platforms

If you are planning to start your blog, there are plenty of blogging websites and platforms to choose from. Each platform has its pros and cons, and choosing the right platform is crucial for your success. If you have little computer skills, you may prefer a platform which is convenient to setup and use. However, it is beneficial to choose a blogging platform which offers plenty of features and options, so that you have the room to expand and monetize later. In this post, I will explain the capabilities of 10 best blogging websites and platforms and their key features. 

How to Monetize a Blog and Make Money Blogging

Once your blog is up and ready with a steady stream of interested readers, its a good time to make some money from your blog. Before you think about making money from your blog, you must have at least 40 - 50, original, top quality and engaging posts on your blog. There are plenty of ways and online business models to monetize a blog. You should implement a monetization strategy that aligns with your specific blog niche and your goals. This post presents some common ways to make a decent amount of money from your blog. 

Best Practices for Working with Software Version Control Systems

  Software Version Control is an important part of every modern software development team. Provided below are some of the best practices for working with software version control systems.

Scriptless Test Automation Frameworks and Tools

What is Scriptless Test Automation?  Scriptless Test Automation is writing automated test cases for a software application without involving any script  or code.  Automated testing is highly essential to ensure rapid software releases, particularly in Agile driven teams. Regression testing of a software application which is frequently updated, should definitely be automated, to reduce the cost involved in manual testing. Automated test cases are typically written in parallel to the software, using some testing framework such as JUnit, Selenium, Espresso, CppUnit, UI Automator, Appium or Cucumber. Typically, writing a script for particular test case includes providing test inputs, execution steps and comparing results.

Code Optimization Tips for Increasing Execution Speed of a Software Program

CPU (Central Processing Unit) is the primary component of a computer system, which executes the  basic arithmetic, logical, controlling  and input/output (I/O) operations specified by the instructions in a computer program . CPU utilization is an estimation of the CPU used by a particular task, which  is often expressed in clock ticks or as a percentage.  In embedded computing world, one of the critical design decisions include  customizing the software for better CPU utilization. 

Loop Optimization Tips to Improve Execution Time of a Software Program

Much of the execution time of a software program is used by loops. Substantial improvement can be achieved in running time of the software by reducing the number of loops, minimizing the number of iterations of a loop or reducing the number of code statements inside the loop. Following are few of the loop optimization techniques which are effective for increasing the execution speed of a software program: 

5 Popular Worms of Cyber History

1. Morris Worm  In 1988, Robert Tappan Morris, Cornell University student, launched 99 lines of code in his quest to find out how big is the internet. While his intentions were not malicious, there were bugs in his code that caused infected hosts to encounter plenty of stability problems that made these systems unusable. The result was increased load averages on over 6,000 UNIX machines across the country which caused between $10,000,000 and $100,000,000 of damage.

Etymology of Basic Software Terms

This blog post lists the interesting etymological facts behind some basic terms in software technology.  SOFTWARE  The word software was initially coined by Paul Niquette in 1953 to differentiate it from hardware (used for computer itself). The term "software" in a computing context was first published by American statistician John W. Tukey , who published the term in "The Teaching of Concrete Mathematics" on January 9, 1958. Tukey wrote:

History of Web Design and Development

World Wide Web - The First Browser - 1990 December  Tim Berners, a British physicist and internet pioneer, created the world's first web browser called World Wide Web at CERN (a Swiss research center). The browser was a simple WYSIWYG editor for web pages.

Reducing Regression Testing Time

What is Regression Testing?  Regression testing is a type of software testing which is carried out to confirm if the modifications in a software program have broken any existing functionality. Despite its importance, regression testing is costly, specifically for large codebase / test suite, as it consumes enormous amount of compute resources and time. To understand the scale of this problem, according to the statistics published in 2017 by Continuous Integration (CI) and testing group at Google, 150 Million tests are executed per day for 2 Billion Lines of Code (LOC). At this scale, chances of regression errors are increased, demanding implementation of efficient regression testing strategies. Imagine the waste of resources in this unlucky scenario: developer modifies only one line of code, pushes code to Version Control System (VCS), regression testing is triggered lasting around 9 - 10 hours, regression error is found in the last test case execution and the bug report is sent to the

How Real-Time Linux is Better than Commercial Real-Time Operating Systems

What is a Real-Time Operating System (RTOS)?  A Real-Time Operating System (RTOS) is an Operating System which can guarantee execution of different tasks on one or more processors within a specified time. Real-Time Operating Systems execute Real-Time tasks, typically used in industrial control, defense, aerospace, automobile and medical applications. Few of the popular Real-Time Operating Systems include VxWorks, Integrity, PikeOS, FreeRTOS, LynxOS, Micrium, Real-Time Linux and Keil RTX. The design of RTOS differs from GPOS in the implementation of scheduling policies and handling of interrupts. The task schedulers implemented in RTOS provide more control to the developers over assigning priorities. 

Largest Data Centers in the World

Inside Google Data Center In the past few years, data center space has skyrocketed at an incredible speed. Many companies are now using cloud computing, which requires a large amount of data storage, resulting in the creation of some big data centers. This post lists the ten largest data centers based on total square footage of floor space.

Biggest Software Failures of All Time

Software Development companies across the globe invest a huge amount or budget and resources in software testing. Despite all the efforts, some of the bugs are not discovered and lay dormant in the software program. This is due to the inherent limitation of software testing, as it cannot be carried out for the large number of possible execution paths. The bug is triggered later some time once the non-tested bug triggering scenario is executed. The bugs triggered may have a huge consequence costing a large amount of money to the organization or country. Some of the software failures which had a huge impact are listed below: 

How to Debug Your Code Properly Step-by-Step

From smartphones to spacecrafts, there is no machine in the world powered by a software program which is guaranteed to be bug free. You can try to minimize the chances of occurrence by adopting good programming practices, but you cannot guarantee absence of bugs in your code. Living with the fact that bugs will eventually come your way any time during the lifecycle of software product, software debugging becomes an essential skill to master. Especially for huge and complex software programs, identifying the cause of the bug is a daunting and challenging task. Furthermore, it is critical to speed up the debugging process, so that the time to market is reduced for the product. Although, researchers have explored and presented plenty of tools and techniques to assist in identifying and fixing bugs, software debugging can be simplified by following some general principles without the use of any tools. This blog post will specify the general procedure on how to debug your code properly step

Difference Between Error, Fault, Bug, Defect and Failure

Have you ever wondered what is the difference between error, fault, bug, defect and failure? All these terms seem highly confusing and  interchangeable, whereas they are distinct and used in different contexts. In this blog post, I will explain what is the difference between error, fault, bug, defect and failure. 

Top Bug Reporting and Tracking Tools

A bug reporting and tracking tool can assist to report, assign and track the bugs / defects / issues in a software project. There are plenty of commercial grade and free bug tracking tools available, few of which are listed below .

Completely Online Degree Programs from Reputed Universities and Institutes

This decade witnessed a revolution in modern higher education, with the introduction and growth of completely online degree programs, from some of the reputed universities and institutes across the world, offered through various MOOC platforms like Udacity , Coursera and edx . The pioneer in this domain was the Online Master of Science in Computer Science (OMSCS) from Georgia Institute of Technology , USA in collaboration with Udacity, which was announced in 2013. Today, there are more than 50 online degree programs in all major subjects from various leading universities across the globe offered at a fraction of cost. Most of these degree programs are equally rigorous and offer the same degree compared to on-campus counter-parts. Here I will list down few of the top available degree programs, which are offered completely online through various MOOC platforms at a fraction of cost compared to their on-campus counterparts.

Tips on Writing Readable Code

Code readability may be defined as the convenience with which the source code is understood and modified. Code readability is of vital importance when maintaining larger legacy codebase and working in teams. If the code is easy to read, it would be easy to debug, refactor, enhance and maintain, thereby reducing the lifecycle cost of software product. As readability directly impacts software quality, researchers have proposed adding a separate phase during development focused on improving code readability. Although, code readability is subjective to human judgement, static analysis tools can provide a fair estimate on various factors impacting readability such as indenting, naming and commenting. As a programmer, follow the tips provided below to create self-documenting software program, which can be understood conveniently by other programmers during it's lifetime.

Guidelines for Energy Efficient Android Application Development

Mobile devices are ubiquitous in our daily lives. Users of mobile devices depend heavily on them for a variety of tasks such as calling, messaging, networking, taking pictures and making payments. Software applications running on mobile devices perform helpful tasks after processing the data from multiple embedded sensors and displaying relevant information to the user. As a software developer, it is very likely that you will come across mobile app development, at least once in your career. Mobile app development has some challenges in terms of usability, performance and privacy due to limited available resources and holding sensitive user information.  Top 10 Mobile Battery Draining Apps  Credit:  https://techengage.com

Three Good Reasons to Change your Job as a Software Developer

Life is too short to be unhappy at work. A good job may ensure happy and contended living, while a wrong job may result in stress and negativity. A good job is not only about money, but also about the work environment, community and passion for your work. According to U.S Bureau of Labor Statistics, demand for software developer jobs is projected to grow 21% from 2018 to 2028. Therefore, if you are a software developer looking for a job, there may be plenty of options available related to your specialty and passion. 

Problems of the Internet and their Solutions

Internet has seen explosive growth in the number of connected hosts since it's inception. Technologies have also evolved to keep the services at par with the growth in user base. Despite these technological advances, some of the inherent design problems are growing every passing day. These problems are a result of initial design considerations and are much difficult to eradicate. These problems form the basis of core computer networks research today.

Top Agile Based Application Lifecycle Management Tools

Agile Manifesto specifies the core values and principles for efficient and effective software development. The practices and methodologies based on those principles are an outcome of years of experience of software practitioners in the industry. But the point to ponder is, neither the principles nor the practices mention anything about the use of tools or frameworks. Tools and project management frameworks are just a means to ease out and automate certain aspects of the supported methodologies. Remember that tools alone cannot enforce an agile culture or effective software development practices in an enterprise. In more specific terms, ALM solutions cannot ensure that a team conducts four basic Scrum events e.g. daily stand ups or the team becomes self organizing. But they do assist in tracking, projection and communication for the conduct of those events or other agile practices. Although, most enterprises continue to use spreadsheets for agile project management, the use of ALM sol

Can Software Testing Guarantee Absence of Bugs

In folklore, a bullet cast from silver is often the only weapon that is effective against a werewolf, witch, or other monsters. Software product, just like a werewolf, transforms into something disastrous and unfamiliar. It is a monster, disguised as something working but revealing its true face at other times, requiring a silver bullet to be laid to rest. Do we have such a silver bullet for software bugs? The answer is not yet. This analogy has been taken from popular research paper  "No Silver Bullet — Essence and Accidents of Software Engineering" by Fred Brooks. Figure 1: Ariane 5 Crash Due to a Software Bug

5 Notorious BGP Hijacking Attacks in Cyber History

Border Gateway Protocol (BGP) is the prevalent protocol for inter domain routing between Autonomous Systems (e.g. Verizon, AT&T and Comcast) across the internet. The configuration of BGP speaking border routers lies under the local control of specific Autonomous System administrators. This makes BGP much insecure and susceptible to attacks as there is no one single administrator. Some of the ways in which BGP can be hijacked due to accidental mis-configuration or deliberate malicious intent are: An AS may announce that it owns a specific prefix which it does not. An AS may announce a bogus path to a specific destination which does not exist. An AS may announce that it can route to a specific destination using a shorter path.