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 ]

Rust: Scala engineer's perspective


Tags programming functional-programming

Lloyd Chan lengthy blog post about his experience with Rust (rustlang) as a experienced Scala developer primarily. This is very detailed article about his experience with loads of links to external resources and libraries in both Rust and Scala.

Rust’s memory/ownership model is, to me, its main killer feature; it gives you tighter control over the way your program consumes memory while maintaining memory-safety, all without having to ship a garbage collector with the runtime.

You will get loads information on following:

  • Type system
  • Macros
  • Compile-time optimisations
  • Syntax
  • Interoperability with C
  • Async IO

and much more. If you think about exploring Rust and have experience with Scala - this is a must read!

[Read More]

Web scraping with Puppeteer and Chrome Headless


Tags web-development big-data machine-learning

Emad Ehsan put together article about how to get started with Web Scraping in Chrome Headless. Chrome Headless is going to be industry leader in Automated Testing of web applications. Puppeteer is the official tool for Chrome Headless by Google Chrome team.

In this guide author will teach you how to:

  • scrape GitHub,
  • login to it,
  • extract and save public emails of users
  • while usin Chrome Headless, Puppeteer, Node.js and MongoDB.

You will get a good idea on Scraping with Chrome Headless and Node.js. Interesting info: Chrome Headless also supports WebGL. The article is detailed and with many screen-grabs documenting each step. And of course the code is available in GitHub repository.

[Read More]

Host static site with Hugo and Firebase for free


Tags web-development programming containers

Ariya Hidayat short and to the point post about hosting static web site with Firebase. He decided to abandon WordPress for his blog and switch to Hugo to generate the content and Firebase to host it. How did the authoring workflow change due to this switch?

As a static site generator, Hugo will construct all the HTML files from every blog entry written in Markdown format, based on a certain template. The huge benefit: all those Markdown files can be stored conveniently in a version control system. The ubiquitous git is a natural choice for doing so.

You also get overview:

  • How to create an automated build job using GitLab CI
  • How to prepare Docker image for in-container build process
  • How to create an automated build job using GitLab CI
  • Learn about benefits of hosting with Firebase (HTTP/2, free SSL/TLS for custom domain, security)

Using this setup, every single time I push to GitLab, the deployment process is automatically triggered. Usually it takes about a minute for the deploy job to finish. Good read!

[Read More]

How to host multiple web sites with NGINX and HAProxy using LXD on Ubuntu


Tags containers nginx docker

Simos Xenitellis wrote an article for digitalocean.com about hosting web application in LXD containers. For many Docker became de facto container solution of choice, but there are different Linux containers available. This article is about LXD which can create and manage these containers. LXD provides a hypervisor service to manage the entire life cycle of containers.

In this tutorial, you’ll use LXD to install two Nginx-based web sites on the same server, each confined to its own container. Then you’ll install HAProxy in a third container which will act as a reverse proxy. You’ll then route traffic to the HAProxy container in order to make both web sites accessible from the Internet.

Article describes how to:

  • Configure Linux users and LXD
  • Configure and use block storage
  • Configure networking
  • How to create containers
  • How to configure NGINX containers
  • Configuring the HAProxy container

And much more. Plenty of code examples will guide you through whole process. Well worth reading!

[Read More]

Writing event-driven serverless app plus local development


Tags cloud serverless microservices aws

Rupak Ganguly lengthy article on developing and event-driven serverless application. The application has a simple frontend using curl that calls into a couple of backend services: a users service and an email service. It relies on the serverless framework, and app is then deployed to AWS Lambda.

The post highlights event-driven application development with focus on full local development experience. Author chose to develop app in Node.js framework and the serverless application platform.

You will get detailed info how to:

  • Setup the development environment
  • Create an application project
  • Create a users service
  • Create an email service
  • Write an event-driven application
  • Run the serverless services locally
  • Run the full application locally

And you will be able to get the full source code to the mailman application project on Github. Excellent.

[Read More]

How to build multilingual app (PHP and Gettext)


Tags programming php

Igor Santos article on challenges of building multilingual applications. Whether you are building a website or a full-fledged web application, making it accessible to a wider audience often requires it to be available in different languages and locales.

Internationalization (i18n) of your codebase, helps ensure that it can be adapted to different languages or regions with relative ease.

He then dives into:

  • Tools for internationalization
  • Libraries to make things easy
  • Separating domains
  • Locale code
  • Tips and tricks - e.g. server caching issues

He also describes why you may want to use the Gettext formats, so you can use the original Gettext toolchain (including Poedit) as described in the rest of the chapter.

Article then goes into example usage and how in a common application, you would use some Gettext functions while writing static text in your pages. Plenty of code examples included.

[Read More]

DDD - what's wrong with CRUD


Tags programming tdd software-architecture

Golo Roden extensive article about Domain Driven Design and limitations of CRUD. CRUD is simple but limited: the artificial restriction to four verbs and the destructive actions UPDATE and DELETE cause numerous problems. Typically, you will realize these problems early on, even in small applications.

Author builds his case around simple MVC application. All in all, the application is so trivial that it’s hard to not think about implementing it using CRUD: a list where you can add, change and delete entries - why should you solve this any differently?

A closer look, however, reveals a number of questions which at least create doubt that the application is really as trivial as it seemed at first glance.

Author then goes on and writes about:

  • What’s the intention of each action in CRUD
  • Domain language vs technical language
  • CRUD loses history - and what it means
  • What’s wrong with CRUD?

This is the first part in series of articles. Recommended.

[Read More]

MongoDB performance issues – fact or fiction


Tags nosql database

Ken W. Alger blog post aiming at clearing up the conversations about MongoDB performance. Often information against MongoDB is based on outdated data and older versions of MongoDB. Clearly, in the past there were some issues with data scalability and data concurrency in those earlier versions. In fact, Jepsen has done extensive tests on MongoDB on lost updates and dirty and stale reads.

The new versions of MongoDB address the results of these tests.

MongoDB 3.4.1 (and the current development release, 3.5.1) currently pass all MongoDB Jepsen tests….These results hold during general network partitions, and the isolated & clock-skewed primary scenario.

Beyond data security, customers are finding huge benefits in performance in the more current releases of MongoDB. Improvements to, or the introduction of, technologies such as replication compression, the WiredTiger storage engine, in memory cache, and performance enhancements to sharding and replica sets have been a win for users.

You can read more about his conclusions in his published results. You will also find some charts and case studies accompanying this article.

[Read More]

MongoDB architecture explained


Tags database nosql software

Older post from The IBM BP Network about MongoDB. In the blog authors explored the fundamental concepts and assumptions that underlay the architecture of MongoDB.

MongoDB’s design philosophy is focused on combining the critical capabilities of relational databases with the innovations of NoSQL technologies. Modern applications impose requirements not addressed by relational databases, and this has driven the development of NoSQL databases, which offer many features including: flexible data model, scalability and performance, always-on global deployments.

Article then describes:

  • MongoDB flexible storage architecture
  • Dynamic schema
  • How it deals with consistency (ACID compliant at the document level)
  • Availability - native replication
  • Security

Also links to further reading. Old but good article.

[Read More]

Negotiating key IT vendor contracts and CIO


Tags cio software-architecture agile

Brian E. Thomas article on valude proposition when negotiating new contracts. While it’s important for CIOs to provide a strategic advantage and to work on creating a partnership mentality, one area that needs to be smartly managed are those cumbersome and expensive vendor contracts.

Before CIO negotiates a key vendor contract, he/he needs to have developed the right vendor management strategy. In order to negotiate key IT vendor agreements so as to benefit your company as well as preserve the vendor relationship, CIO needs:

  • Recognizing the value - strategic partners provided effective delivery and gone one step further
  • Regain control - protection of your interests via four-step negotiation process (described in article)
  • Additional best practices

Striking the right balance with negotiating a key vendor contract is just as much about the planning as it is about the approach.

[Read More]