Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Five misconceptions on how NodeJS works

Categories

Tags javascript nodejs programming

NodeJS was born in 2009 and it has gained massive popularity throughout the years because of one reason. It’s just JavaScript! Well, it’s a JavaScript runtime designed to write server-side applications, but the statement that “It’s just JavaScript” is not 100% true. By Deepal Jayasekara.

JavaScript is single-threaded, and it was not designed to run on the server-side where scalability was a critical requirement. With Google Chrome’s high-performance V8 JavaScript Engine, the super cool asynchronous I/O implementation of libuv, and with a few other spicy additions, Node JS was capable of bringing client-side JavaScript to the server-side enabling writing super-fast web servers in JavaScript that are capable of handling thousands of socket connections at a time.

The article is split into:

  • EventEmitter and the Event Loop are related
  • All callback-accepting functions are asynchronous
  • All CPU-intensive functions are blocking the event loop
  • All asynchronous operations are performed on the thread pool
  • NodeJS should not be used to write CPU-intensive applications

Each topic si well explained. You will also get plenty of charts helping to explain the main points discussed in the article. Nice one!

[Read More]

Securing Firefox with WebAssembly

Categories

Tags programming infosec miscellaneous javascript

Protecting the security and privacy of individuals is a central tenet of Mozilla’s mission, and so they constantly endeavor to make their users safer online. With a complex and highly-optimized system like Firefox, memory safety is one of the biggest security challenges. By Nathan Froyd.

Firefox is mostly written in C and C++. These languages are notoriously difficult to use safely, since any mistake can lead to complete compromise of the program. We work hard to find and eliminate memory hazards, but we’re also evolving the Firefox codebase to address these attack vectors at a deeper level.

The article’s main parts:

  • A new approach – extensive use of both sandboxing and Rust
  • Building a wasm sandbox
  • Ahead-of-time compilation with Cranelift and friends
  • Getting sandboxing correct
  • Tainted data

With the core infrastructure for wasm sandboxing in place, Mozilla can focus on increasing its impact across the Firefox codebase – both by bringing it to all of their supported platforms, and by applying it to more components. Good read!

[Read More]

7 Easy functional programming techniques in Go

Categories

Tags golang programming functional-programming

Deepu K Sasidharan put together this article for Go developers interested in functional programming. Do not worry, you don’t have to learn functional programming oriented languages like Haskell or Clojure(or even Scala or JavaScript though they are not pure functional programming languages) since Go has you covered and this post is for you.

Hence in functional programming, there are two very important rules:

No Data mutations: It means a data object should not be changed after it is created. No implicit state: Hidden/Implicit state should be avoided. In functional programming state is not eliminated, instead, its made visible and explicit.

The article then lists:

  • First-class and higher-order functions
  • Pure functions
  • Recursio
  • Lazy evaluation
  • Type system
  • Referential transparency
  • Data structures

This is just an introduction for those who are trying to apply some functional programming techniques in Go. There are a lot more that can be done in Go and with the addition of generics in the next major version, this should be even easier. Nice one!

[Read More]

Lessons learned from deploying a machine learning model

Categories

Tags big-data data-science

More than half a million calls go through the Talkdesk systems every day. For our clients, especially larger contact centers, it can be difficult to understand and monitor everything happening due to the amount of structured and unstructured data and the high pace at which they originate. Our main goal is to make their job easier by providing insightful dashboards about calls and the overall call center performance. By Henrique Carlos.

We started by building a prototype Machine Learning (ML) model based on Latent Dirichlet Allocation (LDA) algorithm to analyze sets of voice call transcriptions and capture which topics are being talked about. Building the model was a rewarding but challenging experience. Despite that, having the model sitting on our laptops was bringing no value to the organization. We had to take it to production so that our clients could benefit from it.

The article covers following:

  • Topic extraction pipeline
  • Integrations should be the priority
  • The focus is on delivering

Deploying the machine learning model in production brought several unexpected challenges and the team was very proud of their achievement. Focusing on early end-to-end integration allowed them to iterate fast, and by using small and valuable increments we were able to overcome all issues. Good read!

[Read More]

3 strategies for migrating from Wordpress to JAMstack

Categories

Tags javascript web-development open-source cloud

Brian Rinaldi published this article in which he describes the strategies for migration to JAMstack from an existing CMS architecture.

First the bad news: migrations are painful. Not “can be”, they are. That doesn’t mean they aren’t worth it. They definitely can be, and the JAMstack offers some major benefits on things like cost, speed and security (to name a few) that can make it worth the effort.

The main parts of the article:

  • Some things to consider
  • Use the Wordpress REST API
  • Export content to flat files
  • Import Content to a Headless CMS

Each option is explained in detail and there is plenty of code examples included. You’ll likely want to explore how you can leverage serverless functions to handle some of the dynamic functionality that was once likely handled by some form of plugin. Now, nothing will stop your migration. Well done!

[Read More]

AWS Lambda vs. Azure Functions: 10 major differences

Categories

Tags aws azure serverless cloud

Since 2014, the serverless model has taken off, and every major cloud provider has introduced its flavor of an FaaS service: Azure Functions, Google Cloud Functions, and IBM Cloud Functions, to name a few.

Serverless compute brings unlimited scale and high availability to every company in the world, from small startups to multinational corporations. At least, that’s the vision of Amazon and Microsoft, today’s biggest cloud vendors.

The article then compares:

  • Hosting p[lans
  • Configurability
  • Programming languages
  • Concurrency and Isolation
  • Cost
  • Performance and scalability
  • Orchestrations

… and much more. AWS Lambda and Azure Functions are similar services, but the devil is in the details—and virtually every angle shows some essential distinctions between the two. Good read!

[Read More]

How to find and fix Docker container vulnerabilities in 2020

Categories

Tags containers docker infosec

Containerization allows engineering teams to create a sandbox environment in which to run and test applications. But these open-source images may sometimes contain vulnerabilities which can jeopardise the safety of containers and in turn its host computer/server. By Dipto Karmakar.

A good example of such a hack is Tesla’s cryptojacking attack on an unprotected Kubernetes cluster. In this attack, the attackers were able to download and run a malicious script for mining crypto using GPUs provided by Tesla’s K8s (Kubernetes) cluster. They were able to keep this attack under the radar by keeping CPU usage to a minimum and also running the script at specific time intervals.

The article describes:

  • Common container vulnerabilities and how to fix them
  • How to find container vulnerabilities
    • Using Docker Bench for Security
    • Scanning for vulnerabilities in GCR
    • Using Enterprise-Grade Solutions

Containers make it possible for engineering teams to roll out software seamlessly. However, this ease comes at the cost of security. You will also get plenty of links to further reading. Nice one!

[Read More]

How to teach Artificial Intelligence

Categories

Tags machine-learning big-data data-science

Tom Vander Ark writes about the future of learning, work and human development. Here we have his thoughts on how to teach Artificial intelligence (AI).

Artificial intelligence – code that learns – is likely to be humankind’s most important invention. It’s a 60-year-old idea that took off five years ago when fast chips enabled massive computing and sensors, cameras, and robots fed data-hungry algorithms.

A World Economic Forum report indicated that 89% of U.S.-based companies are planning to adopt user and entity big data analytics by 2022, while more than 70% want to integrate the Internet of Things, explore web and app-enabled markets, and take advantage of machine learning and cloud computing.

[AI4K12] is an initiative of leading computer scientists that have identified five big ideas that every student should know about AI:

  • Computers perceive the world using sensors
  • Agents maintain representations of the world and use them for reasoning
  • Computers can learn from data
  • Intelligent agents require many types of knowledge to interact naturally with humans
  • AI applications can impact society in both positive and negative ways

Given these important and rapid shifts, it’s a good time to consider what young people need to know about AI and information technology. You will find plenty of links to free AI courses in this article. Excellent!

[Read More]

The magic of generating an Xcode project

Categories

Tags ios machine-learning app-development programming

Planet Earth vs. Jupiter. There is the same order of magnitude between the ratio of these two planets and the amount of code that defined the SoundCloud iOS project before – Jupiter – and after – Earth – generating it using Tuist. By Andrea Cipriani.

In this blog post, author discusses the problems of maintaining a complex iOS project, how they managed to simplify the process by writing less and more consistent code, and how they ended up with lower build times as an unexpected result.

Generating the project was not an easy journey, as the process of writing the manifest files can be tedious and error-prone. Debugging problems at the project level is not always easy, nor is it easy to validate if the generated project is semantically equal to the previously existing one, even with the support of a great open source tool like xcdiff.

The article deals with:

  • What’s the problem with Xcode projects?
  • Project generation
  • Serendipity

Xcode is the official tool for developing apps on Apple platforms. Every time you make a change to an Xcode project, such as adding a new source file or changing a setting, the IDE generates some code into a file called project.pbxproj. The first thing you may notice is that the generated code is not easy to read or change, as it uses unique random identifiers to refer to every entry of the project. Read whole article to learn more. Excellent info for anybody developing for iOS!

[Read More]

Building an adaptive, multi-tenant stream bus with Kafka and Golang

Categories

Tags software-architecture apache streaming apis devops web-development programming

Back in the 2000s, SOAP/WSDL with ESB (Enterprise Service Bus) was the dominant server-side architecture for many companies. Since the 2010s, microservices and service mesh technologies have grown wildly and thus became the de-facto industry standards. By Xinyu Liu.

At Lyft, hundreds of microservices are backed by numerous databases. New tables are being created constantly to support features and demands of our fast-growing business. Online

The main sections of the article:

  • A use case
  • CDC pipeline remake
  • Architecture
    • Load balancing and auto scaling
    • A greedy algorithm
    • Threading model

During performance testing, the CDC adapter service routed 4 million messages per minute with an average message size of 1.5KB. Such a level of workload was easily handled by 5 Kubernetes vCPU and 10 GB memory in total.

Plenty of other resources are mentioned. And you will get charts explaining architecture etc. Good read!

[Read More]