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 ]

Building minimal Docker containers for Python applications

Categories

Tags python docker containers devops

Nick Joyce popular tutorial explaining how to keep Docker containers size to a minimum. The fewer bytes you have to shunt over the network or store on disk, the better. Keeping the size down generally means it is faster to build and deploy your container.

Each container should contain the application code, language-specific dependencies, OS dependencies and that’s it.

If you have tools like gcc inside a container that is deployed to production, then an attacker with shell access can easily build tools to access other internal systems.

These topics are explained in tutorial:

  • Different images for development and production
  • Layer caching
  • Cached dependencies
  • Multistage builds

The tutorial also explains that minimalism is important but too small can be harmful as well. You could build all containers from scratch, but that means you have to deal with low-level OS primitives like shell, cat, find, etc. Nice one!

[Read More]

Comparison between Angular and React and their core languages

Categories

Tags angular javascript frameworks web-development

Dler Ari brings you an article, in which he will compare two of the most popular web technologies in 2018, and also address their history, key differences, core languages used (TypeScript and JavaScript) and so forth.

The goal of this article is not to find the best technology, but to compare, highlight, and clarify few misconceptions.

This article will help you to understand:

  • What are the key differences between Angular and React?
  • What makes TypeScript so special?
  • How popular are these technologies?
  • What is the current open-source status?
  • Which technology do companies use the most?
  • Do static typed languages influence code quality and development time?

The above is compared in great details, with comparison charts and resources to further reading.

The best recommendation I can offer is to setup a basic application both in Angular and React, and then evaluate the language and work flow before you make a decision. Good job!

[Read More]

Launching my first Flutter app

Categories

Tags app-development android

Dawid Kunicki article about working with Flutter and getting out first app written in it. Taken from Android developer perspective. Flutter is a new technology that is clearly gaining more and more popularity among mobile developers.

Flutter is an open source mobile app SDK made by Google. It’s used for creating native apps for both Android and iOS. The framework uses Dart as its programming language.

Flutter comes with some remarkable features, which are beneficial for companies as well as for mobile engineers.

Author then explains some Flutter advantages:

  • From business perspective
  • From developer’s point of view
  • Explains some Flutter tools

It also pays attention to Dart language. Dart is an object-oriented programming language of general purpose developed by Google. It is used in mobile application development, web development as well as on the server side.

It also explains why Flutter was excellent choice for developing Offhub app. Read to know more!

[Read More]

JVM Profiler: open source tool for tracing distributed JVM applications at scale

Categories

Tags programming java distributed miscellaneous monitoring queues performance streaming

Bo Yang, Nan Zhu, Felix Cheung, Xu Ning from Uber Engineering team published blog post about JVM Profiles. Data is at the heart of strategic decision-making process at Uber. Right sizing the resources allocated to Spark applications and optimizing the operational efficiency of Uber data infrastructure requires fine-grained insights about these systems, namely their resource usage patterns.

The challenge they faced:

  • Existing tools could only monitor server-level metrics
  • Need to monitor large number of processes (e.g. thousands of executors) running across many servers
  • The profiler needs to be launched automatically with each process (unknown when these processes will launch and how long they will take)

To address these challenges, Uber built and open sourced JVM Profiler. There are some existing open source tools, like Etsy’s statsd-jvm-profiler, which could collect metrics at the individual application level, but they do not provide the capability to dynamically inject code into existing Java binary to collect metrics. Inspired by some of these tools, we built our profiler with even more capabilities, such as arbitrary Java method/argument profiling.

What does the JVM Profiler do?

  • A Java agent
  • Advanced profiling capabilities
  • Data analytics reporting:

JVM Profiler supports a variety of use cases, most notably making it possible to instrument arbitrary Java code. And it is easy to change via simple configuration change.

You will find more info in the article, together with explanation schemes on its architecture and guides for various use cases. Brilliant!

[Read More]

Fifty data structure and algorithms interview questions for programmers

Categories

Tags programming learning miscellaneous career

Excellent list of curated interview questions for programmers by javinpaul. Many of programmers interviewing in large technology companies have no idea of what kind of programming interview questions to expect when you’re applying. In this article author shares frequently asked programming interview questions from different interviews for programmers at different levels of experience, from people who have just graduated from college to programmers with one to two years of experience.

Coding interviews are comprised mainly of data structure and algorithm-based questions as well as some of the logical questions such as, How do you swap two integers without using a temporary variable?

The questions are grouped into few categories, e.g.:

  • Array coding interview questions
  • Linked list programming interview questions
  • String coding interview questions
  • Binary tree coding interview questions
  • Miscellaneous coding interview questions

These common coding, data structure, and algorithm questions are the ones you need to know to successfully interview with any company, big or small, for any level of programming job. Nice!

[Read More]

Writing lighter, faster JavaScript functions

Categories

Tags programming javascript nodejs frontend

Nick Gard sweet article about making your JavaScript functions faster. He relies on 3 simple rules to guide him.

When it comes to JavaScript performance, there are really only three strategies for improvement: Do less, Do it less often, Do it faster

Author takes small function with an unchanging object created within the function body. While it is a small object, it is created every time the function runs. That means with every call, the function reallocates memory for an array of three items, uses it once, and then leaves it for garbage collection.

function isStooge(name) {
  const STOOGES = ['Larry', 'Curly', 'Moe'];
  return STOOGES.includes(name);
};

For static values, it would be best if they were declared once and merely referenced each time they were needed. This is not a memory leak, but it is still an unnecessary expense.

Author then suggests to use:

  • Define variable in a Closure (close to the point of use)
  • Declare variable in a Module
  • And declare variable in a Class Static Property

Author concludes that the most useful pattern of declaring an unchanging variable is in an ES6 module. The syntax is so understandable and predictable, it is almost boring. Great read!

[Read More]

CSS debugging and optimization: browser-based developer tools

Categories

Tags css frontend nodejs web-development

Tiffany Brown article in which she delves into the browser-based developer tools for Chrome, Safari, Firefox, and Microsoft Edge. This article is very helpful for anybody on road to become a CSS master.

She then describes how to use element inspector. Most desktop browsers include an element inspector feature that you can use to troubleshoot your CSS. Start using this feature by right-clicking and selecting Inspect Element from the menu.

In Firefox, Chrome and Safari you can also press Ctrl + Shift + I (Windows/Linux) or Cmd + Option + I (macOS) to open the developer tools panel. While in Microsoft Edge, open developer tools by pressing the F12 key.

In Safari, you may have to enable the Develop menu first by going to Safari > Preferences… > Advanced and checking the box next to Show Develop menu in menu bar.

Sometimes an element isn’t styled as expected. Maybe a typographical change failed to take, or there’s less padding around a paragraph than you wanted. You can determine which rules are affecting an element by using the Styles panel of the Web Inspector.

You find more info in the article, including:

  • the ways how to identify cascade and inheritance problems
  • spotting invalid properties and values
  • debugging responsive layouts

Very useful for anybody new to web development.

[Read More]

PHP encryption methods for passwords and other sensitive data

Categories

Tags php infosec crypto

Ashley Rich published this article about various methods of protecting sensitive data in PHP. There is a range of different encryption methods in use today, the most common being hashing, secret key encryption and public key encryption. Also in PHP 7.2+ you have cryptography extension Sodium which should simplify vastly complicated cryptography landscape.

Each encryption method has multiple algorithms or ciphers to choose from (each with their own strengths and weaknesses). The article then dives into hashing and secret key encryption:

A hashing algorithm takes an input value and transforms it to a message digest.

It’s worth noting that hashing isn’t a bulletproof solution and not all hashing algorithms are equal. At the time of publishing this hashing algorithms such as bcrypt or Argon2 are recommended.

Find how to use Sodium for Secret Key Encryption, or what Envelope Encryption is. You will get code examples and links to further reading, too. Stay safe!

[Read More]

Deep Learning with Python for beginners

Categories

Tags python machine-learning programming big-data

An article by Shailna Patidar in which she takes a look at Deep Learning with Python for beginners and explore the definition of Deep Learning as well as its main characteristics. Moreover, this article will go through Artificial Neural Networks and Deep Neural Networks, along with Deep Learning applications.

An Artificial Neural Network is nothing but a collection of artificial neurons that resemble biological ones.

Deep Learning uses networks where data transforms through a number of layers before producing the output. A Deep Neural Network is an Artificial Neural Network with multiple layers between the input and the output. At each layer, the network calculates how probable each output is. A Deep Neural Network will model complex non-linear relationships when it needs to.

You will get intro information on:

  • Deep Neural Networks
    • Recurrent Neural Networks
    • Convolutional Deep Neural Networks:
  • Deep Learning Applications

Short article which points you in right direction if you need refresher in terminology used in Deep Learning and Artificial Intelligence field. Links to more resources provided. Nice!

[Read More]

Encrypting vs. signing with OpenPGP. What's the difference?

Categories

Tags infosec crypto messaging

Brad Wyro thoughts on encryption versus signing with OpenPGP. OpenPGP is the most widely used email encryption standard. PGP stands for Pretty Good Privacy. In the article author helps to answer following question: how can you ensure confidential data transmitted via email is kept private?

Encryption is used to make business sensitive data unreadable to unauthorized parties.

Businesses need to protect sensitive data and preserve confidentiality and privacy. Whether you work in healthcare, finance, legal, HR or education, chances are you’re familiar with the terms GDPR, HIPAA or FERPA (among others).

In addition to data privacy, businesses may need to ensure that a message was not altered during transit, and that it actually came from the purported sender. This is accomplished with message signing.

Read more in the article to learn what is the difference. Explanation charts also available. Nice!

[Read More]