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 ]

Getting started with Python library Numpy

Categories

Tags json big-data data-science python

NumPy is a open source Python library that handles multidimensional arrays and matrices with a huge library of mathematical functions to manipulate arrays. By Shahid Siddique.

NumPy makes it easy to work with data in the formats required for machine learning , such as vectors and matrices.

This tutorial then rad about:

  • How to install NumPy
  • How to create an array in NumPy
    • Check the Element datatype in NumPy Array
    • Add an element in NumPy array
    • Convert the array dimensions in NumPy Array
    • Access the elements of the NumPy Array
    • Generate an evenly spaced sequence in numPy
    • Generate random numbers in NumPy
  • Mix the elements of the array in numPy
    • Sort an array in NumPy
    • Join arrays together in NumPy

You will get code examples for each mentioned section. Nice one!

[Read More]

How to run TensorFlow Lite models on Raspberry Pi

Categories

Tags machine-learning app-development robotics big-data data-science

Ahmed Fawzy Gad published this piece about running machine learning on edge devices. The deep learning models created using TensorFlow require high processing capabilities to perform inference. Fortunately, there is a Lite version of TensorFlow called TensorFlow Lite (TFLite for short) which allows such models to run on devices with limited capabilities. Inference is performed in less than a second.

In this tutorial author will prepare Raspberry Pi (RPi) to run a TFLite model for classifying images. After that, the TFLite version of the MobileNet model will be downloaded and used for making predictions on-device.

The sections covered in this tutorial are as follows:

  • Accessing Raspberry Pi from PC
  • Preparing TFLite in Raspberry Pi
  • Downloading MobileNet
  • Classifying a single image

This tutorial assumes that you already have a TensorFlow model converted into a TensorFlow Lite model. If not, there are plenty of TensorFlow Lite models available for download. Author decied to use the Lite version of MobileNet. You will get greats steep by step tutorial plus links to other resources. Great read!

[Read More]

YAML for beginners

Categories

Tags programming web-development app-development miscellaneous

YAML is an easy, expressive, data-oriented language that distinguishes itself from document markup languages. By Seth Kenlon @RedHat.

YAML Ain’t a Markup Language (YAML), and as configuration formats go, it’s easy on the eyes. It has an intuitive visual structure, and its logic is pretty simple: indented bullet points inherit properties of parent bullet points.

It’s easy (and misleading) to think of YAML as just a list of related values, no more complex than a shopping list. There is a heading and some items beneath it. The items below the heading relate directly to it, right? Well, you can test this theory by writing a little bit of valid YAML.

The article then dives into:

  • How data is stored in YAML
  • YAML mapping blocks
  • YAML sequence blocks
  • YAML syntax

If you want to comfortably write YAML, it’s vital to be aware of its data structure. Easy read!

[Read More]

Going from JavaScript to WebAssembly in three steps

Categories

Tags javascript web-development browsers performance

It is vital that the performance on the client’s browser is as good as possible. The reason for this is very simple: when you are being told a story, or watching a movie, even a single frameskip immediately takes you out of your experience. By Marcel Duin.

WebAssembly (Wasm) is the ability for your browser to run compiled code at (near-) native speeds. It is now recognised by the W3C as the 4th official web programming language, after HTML, CSS and JavaScript.

With it, you can run compiled code written in a variety of programming languages (C/C++, Rust, Go, AssemblyScript, and many more) in your browser, without any need for plugins.

I was very impressed by a synth demo written in AssemblyScript, a language created specifically for WebAssembly, using the TypeScript syntax. Basically you can write (near) TypeScript, which compiles to a .wasm-binary. So anyone familiar with either TypeScript or JavaScript ES6 will not have a lot of difficulties using it.

This article describes my journey from upgrading the Micrio JavaScript-only client to use WebAssembly, with the hopes of improving performance, and taking my code to the next level:

  • The current version
  • First rewrite: C++ and emscripten
    • Coding C++ felt old-fashioned
    • The compiled .wasm binary was very large
    • TIL: A glue file
  • Second rewrite: AssemblyScript
    • Going atomic
    • Bundling the compiled Wasm inside the JS file
    • Realisation
  • Third Rewrite: AssemblyScript + WebGL
    • Moving the image tile logic to AssemblyScript
    • Connecting it to JavaScript
    • Rendering the lot

… and much more. The new client already felt a lot smoother in my browser. Zooming, panning and animating clearly went more smoothly than the previous JS-only version. It all resulted in 65% less CPU used than and there was less memory used. These results were also the same over multiple runs. Very insightful!

[Read More]

How the HotSpot and Graal JVMs execute Java code

Categories

Tags java app-development programming miscellaneous performance

James Gough explores the subsystems that are involved in interpreting, compiling and executing a Hello World Application. He dives into JIT compilation and the arrival of the JVM Compiler Interface to explore how optimizations are applied to boost the performance. He discusses HotSpot, explores Graal and the JVM ecosystem to discover performance benefits of a platform 25 years in the making.

This talk can be divided into few interesting topics:

  • Exploring the JVM
  • Building Java applications, a simple example
  • Classloaders
  • Interpreting bytecode
  • The HotSpot compiler
  • Challenges with the C2 compiler
  • Evolving the JIT compiler
  • JVM Compiler Interface (JVMCI)
  • Graal as a JIT

… and much more. You will also get a video with the talk.

Fundamentally, Graal in terms of how JIT compilation is working, it’s not doing anything super revolutionary like the structure. the idea that you take a graph that represents your program as it is running. Then you do optimizations to that graph, essentially. Then you take the output graph and emit that into the actual machine code itself. It uses a combination of, what’s actually going on? What does the profile look like? It runs through a series of phases. Then you end up with your output code, which is a lot quicker than being interpreted. Superb!

[Read More]

What is risk management and how to integrate it into SDLC: Best explanation ever

Categories

Tags teams infosec management agile miscellaneous

This article describes the primary concepts associated with organizing and managing the system-related information security risk in organizations. Concepts associated with organizing and managing the system-related information security risk in organizations. By Mr.Vic.

Risk Management Overview

Source: https://hackernoon.com/what-is-risk-management-and-how-to-integrate-it-into-sdlc-best-explanation-ever-qg1c3t8m

To undertake the Managing information on security and the privacy-related task is a complex, and it’s required a broad perspective which involves the entire organization from the Chief Technology Officer (CTO), Network Security Architect (NSA) providing the strategic vision and goals and objectives for the organization, to mid-level leaders planning, managing, and executing the visions, to associate level individuals developing, implementing, operating, and maintaining the organization’s strategic missions and business functions.

Risk management is a reciprocal activity that includes mission and organization planning, network architecture, the SDLC processes, identify, evaluate, and prioritize risks followed by the application of resources to minimize, the control impact of unfortunate events or to maximize the realization of events. It is a multi-level approach to the organizational risk management flow. The communication between the business and organization is in bi-directional flow.

To learn more about actions conducted at Level 1 and Level 2 of above schema and how critical they are to preparing the organization to execute the risk management framework follow the link to the full article. Nice one!

[Read More]

Getting started with DevOps automation

Categories

Tags devops teams cloud programming

Automation is one of the key principles for accelerating with DevOps. It enables consistency, reliability, and efficiency within the organization, making it easier for teams to discover and troubleshoot problems. By Jared Murrell.

However, as we’ve worked with organizations, authors have found not everyone knows where to get started, or which processes can and should be automated. In this post, thet will discuss a few best practices and insights to get teams moving in the right direction. You will find information on:

  • A few helpful guidelines
  • DevOps automation best practices
    • Continuous integration, continuous delivery, and continuous deployment
    • Change management
    • X as code
    • Continuous monitoring

Automation is an important means to accomplishing this work efficiently between teams. Whether you’re new to DevOps or migrating from another set of automation solutions, testing new tooling with a small project or process is a great place to start. Nice one!

[Read More]

How many jobs do robots really replace?

Categories

Tags robotics big-data data-science teams career

New research puts a number on the job costs of automation. In many parts of the U.S., robots have been replacing workers over the last few decades. But to what extent, really? Some technologists have forecast that automation will lead to a future without work, while other observers have been more skeptical about such scenarios. By Massachusetts Institute of Technology, original written by Peter Dizikes.

Now a study co-authored by an MIT professor puts firm numbers on the trend, finding a very real impact – although one that falls well short of a robot takeover. The study also finds that in the U.S., the impact of robots varies widely by industry and region, and may play a notable role in exacerbating income inequality.

From 1990 to 2007, the study shows, adding one additional robot per 1,000 workers reduced the national employment-to-population ratio by about 0.2 percent, with some areas of the U.S. affected far more than others.

This means each additional robot added in manufacturing replaced about 3.3 workers nationally, on average.

That increased use of robots in the workplace also lowered wages by roughly 0.4 percent during the same time period.

In the U.S., four manufacturing industries account for 70 percent of robots: automakers (38 percent of robots in use), electronics (15 percent), the plastics and chemical industry (10 percent), and metals manufacturers (7 percent). To learn more follow the link to the full article. Interesting!

[Read More]

Data-driven software architecture

Categories

Tags software-architecture containers web-development app-development agile big-data

The web continues to grow and expand in innovative ways. At the same time, few seem to notice that the way web applications are currently built is dragging us ever deeper into technical debt. Software-centric architecture and legacy technologies used to implement it are at odds with the potential of the web. At best, they are wildly inefficient, and at worst they are heading us into a software apocalypse. By AtomGraph.

The article is split into:

  • The problem with legacy systems
  • The problem with APIs
  • The problem with code

What most of them fail to notice is that they are dragging themselves deeper into the technical debt. Let’s be clear: a large number of different APIs is a liability. The compound complexity of the sheer amount of APIs makes system integration and interoperability increasingly difficult:

With the growing number of web applications and APIs, the size of their codebases grows continuously as well. The reuse of models, or rather the lack of it, is another problem with imperative code… Good read!

[Read More]

Be effective with Bitrise CI for Android — the lessons learned the hard way

Categories

Tags cicd android web-development software-architecture containers

I’m pretty sure we can all agree on how CI tools support our day to day effectiveness. How they might save dozens of hours spent on non-essential tasks. Yet, it’s common to present CI tools as a hassle; slow, bulky, and unreliable pipelines bloated with chaotic events instead of fast, maintainable feedback loop configured to support both product quality and team flexibility. By Maciej Malak.

In this article, you will find discussion surrounding architecture, flavour agnostic unit testing, Gradle usage as well as keeping your logs and artefacts deployment in order. Additionally, at the end of the article, several tips and tricks beyond optimisation will be included.

The article main bits:

  • The landscape
  • Unit testing
  • Flavour agnostic unit tests
  • Flavour dependent unit tests
  • Artefacts deployment
  • Automation workflow
  • Investigating tools configuration
  • All numbers together
  • Tips and tricks beyond optimisations

We liked this one: Do what we haven’t done yet — introduce tools to measure build metrics automatically. Have as granular CI steps as possible. Use title attribute extensively. Greater readability — greater control over time. Solid foundations are the first step for future optimisation. Excellent advice!

[Read More]