DataFrame is a 2-dimensional labeled data structure with columns of potentially different types. You can think of it like a spreadsheet or SQL table, or a dict of Series objects.

Although pandas is considered the first implementation of DataFrame that was solid enough to catch a massive user-base, pandas is not designed to handle huge volumes of data across a distributed cluster of computing nodes. Instead, pandas can be considered the baseline for most other DataFrame implementations that emerged around pandas creating a new Eco-system.

Cylon is a fast, scalable, distributed memory, parallel runtime with a Pandas like DataFrame. Since…


Cylon is a fast and scalable library to manipulate terabytes of data on a distributed setup with a Python-based DataFrame API. Although Python and “fast and scalable” don’t go hand in hand, the following facts will give you an idea of why Cylon is fast at runtime, while you are getting the flexibility to code your application logic in the language that every data scientist love, “Python”.

  • Cylon’s core is entirely written in C++. Python API is just a wrapper around this high performance core.
  • The DataFrames are directly mapped at runtime to Apache Arrow tables making data aggregation and…

Embedding live charts in a website is a trivial task with a websockets or a polling back-end. Having a live chart in a standalone python application is also trivial. However, Jupyter notebooks work differently. They execute python code in notebook servers and brings the results back to the browser.


This article compares three different ways to iterate over a JavaScript array and compares the performance of each approach.

Technique 1 : For Loop
For loop is a common semantic available in most of the languages to repeat the same set of instructions till a certain condition is satisfied. This concept can be used to traverse over the arrays in JavaScript.

Technique 2 : For In
For in statement can be used to iterate over all the enumerable properties of javascript Arrays and Objects. Order is not guaranteed in this technique.

What are Enumerable Properties?

Properties created via…


In most of the production environments, or even in testing environments you won’t get lots of open ports in the computing nodes. Generally you will get just a single port (22) open for ssh. Even if you request the system admins to open the ports for you, they hesitate to do that due to security concerns.

Here is what you can do on such occasions to debug your java application.

Step 1 : Start your java application with xdebug flag as you would do on your local machine.

java -jar <path_to_jar> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006

Step 2 : Open an SSH tunnel…


Introducing SigmaDash, a tool to keep an eye on your functions

Sigma is the 18th letter of the Greek alphabet and is equivalent to English letter ‘S’. In mathematics, the upper case sigma is used for the summation notation.

Following on this definition, SLAppForge has created the world’s first serverless development tool Sigma, a summation of multiple application components to cover most of the aspects of serverless development life cycle including; coding, testing, debugging, managing resources and monitoring.

SigmaDash is the newest addition to the SLAppForge’s serverless tools stack which gives you the ability to monitor your functions and projects.

Why Monitoring?

  1. Preventing over allocation & under allocation of resources

No one is…


This post includes 5 different ways for iterating over JavaScript Object entries and a performance comparison of those techniques.

Technique 1 : Object.entries

Object.entries() returns a list of key, value pairs. This list includes only enumerable properties and doesn’t include properties from prototype chain.

Enumerable Properties?

Properties created via simple assignment or via a property initializer

Technique 2 : Object.keys

Object.keys() returns an array of object keys. However, this function returns only enumerable properties.

Technique 3 : Object.values

Object.values() returns an array of object property values. This function returns values of enumerable properties only.

Technique 4 : for…in loop

for…in loop can be used to iterate over enumerable properties of JavaScript objects. …


If this is not the first time you hear about Serverless and AWS Lambda, you might have already seen the Orange Test button in AWS Lambda console which becomes useless when you want to use 3rd party dependencies in your serverless project or if you upload a package of the size larger than a certain size limit.


This is the second blog of a series of two blogs, Going Serverless with Amazon Web Services (AWS)

1. The Traditional Approach 🚶

2. The Modern Approach 🚴

Jump out, Think Serverless!

In the first blog of this series, Going Serverless with Amazon Web Services (AWS) — The Traditional Approach, I have discussed and demonstrated the process of deploying a very basic serverless application manually through AWS console. If you have gone through that blog or, if you have done this once to deploy your own serverless application, you might already know the pain of doing that in the traditional track.

Let me quickly…


If you have already gone through the SLAppForge’s news articles and blogs, you might already know that bunch of Engineers from Sri Lanka are working hard to make lives of serverless developers a lot easier.

While we are experimenting with various AWS services, we try a lot of crazy things to make Sigma IDE the best friend of fellow serverless developers.

If you have used AWS console to write a lambda function, you might have noticed that, they have a built in IDE in the AWS console itself, where you can code interpreted languages in browser and deploy instantly. In…

Chathura Widanage

Digital Science Center - Indiana University

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store