Home Blog Page 481

Functional Programming in JavaScript? Yes, Please.

One of the hot topics right now in the web development world is functional programming in the language of the web, JavaScript.

Functional programming encompasses a whole host of mathematical properties and phenomena that is beyond this post, but what I am going to address here is how to write a a few functions with nominal functional programming.

This is going to be a series. I am currently researching these topics as I go along and what I find excites me. I will be digging into these topics, each array method bit by bit. You can find some more of this on Steve Smith’s blog Funky JavaScript.

Important Concept: Higher Order Functions

One of the best and worst parts about JavaScript is that you can pass functions into other functions. This can lead to beautifully expressive code and sometimes bugs.

Read more at Dev.to

Why Developer Evangelism Is the Secret to the Success of Kubernetes

Kubernetes is the hottest thing to hit containers since…Docker. That’s faint praise, given that Docker barely burst onto the scene in 2013. But, given the pace of enterprise infrastructure innovation these days, four years may be all the limelight one gets. As such, it’s critical to make the most of an opportunity, which Kubernetes has done by delivering great code and, as I’ve called out, superior community.

What hasn’t been as clear, however, is how Kubernetes does community so well. Google nailed the mechanics from the start, choosing to push the code to the Cloud Native Computing Foundation, rather than going it alone (as Docker and other open source projects have done). But a less-acclaimed feature of Kubernetes’ rise is the incredible developer advocacy that powers it.

Read more at Tech Republic

Hands On: Keeping a Very Old Laptop Useful with Linux

My Lenovo T400 was already old when I bought it as a refurb four years ago. It’s still ticking along nicely with a variety of Linux distributions. Here are the details..

About four years ago (Nov 2013) I bought a used, refurbished Lenovo T400laptop computer and docking station. It was already about four years old at that time (most of the original product announcements and hands-on reviews I can find are from 2009), and another four years have gone by now, so I think it would be useful to have another look at it and see how it is holding up.

Read more at ZDNet

If You Can’t Measure It, You Can’t Improve It: CHAOSS Project Creates Tools to Analyze Software Development and Measure Open Source Community Health

Today over 80 percent of the software in any technology product or service is open source. And this trend is growing. According to a recent study by Sonatype, every day the supply of open source across all ecosystems increases by about 1,100 new projects and 10,000 new versions.

This raises important questions about which open source projects matter. What code should I bet my product, my company, or career on? Will those projects grow or shrink? Is the code base stable or changing? Does the project depend on one organization or many? Is the community healthy or hopelessly ill?

At The Linux Foundation, we want to grow and sustain the most important software in the world. One of the ways we can do this is by measuring the general health of an open source community and developing methodologies and tools for analyzing modern software development. With this in place, we can improve the health of projects and make it easier to answer the questions above.

We need software that will help benchmark and analyze project health along several dimensions as well as robust guidelines for what makes an open source community healthy. We need the means to apply analytics to the big data produced by all the systems supporting software development.

Welcome CHAOSS Project

It’s with this that I’m excited to announce the Community Health Analytics Open Source Software project (CHAOSS). CHAOSS is a new Linux Foundation project focused on creating the analytics and metrics to help define community health.

Read more at The Linux Foundation

Become a Certified Kubernetes Admin with the Cloud Native Computing Foundation

The ever-increasing push to the cloud demands proven skills in areas such as cloud migration, application integration, automation, and more. The recent Open Source Jobs Report from The Linux Foundation, in fact, cited cloud technology as the most sought-after area of expertise among 70 percent of employers. Now you can demonstrate your skills through the new Certified Kubernetes Administrator (CKA) exam, offered by the Cloud Native Computing Foundation (CNCF).

This online, performance-based exam tests your ability to solve multiple issues in a hands-on, command-line environment. The CKA exam is now available for anyone to take and costs $300. To further support your path to Kubernetes certification, online training is available to help you acquire the skills needed to create and configure a real-world Kubernetes cluster. The Kubernetes Fundamentals course maps directly to the requirements for the Certified Kubernetes Administrator exam.

And, achieving professional certification can play a crucial role in advancing your career. According to the Open Source Jobs Report, 50 percent of hiring managers say they are more likely to hire a certified professional, and 47 percent of companies are willing to pay for employees to become open source certified.

Kubernetes Certified Service Providers

This new certification program is only part of CNCF’s efforts in facilitating integration of tools like Kubernetes and Prometheus and building a pipeline of skilled talent to help ease adoption of open source technologies. In addition to the CKA program, the CNCF also announced the founding class of Kubernetes Certified Service Providers (KCSPs) — pre-qualified organizations with demonstrated deep experience helping enterprises successfully adopt Kubernetes.

The KCSP program includes vetted service providers that offer Kubernetes support, consulting, professional services, and training for organizations embarking on their Kubernetes journey. The KCSP program ensures that organizations get the necessary support to roll out new applications more quickly and efficiently than before.

To qualify as a KCSP, an organization must have three or more engineers who’ve passed the Certified Kubernetes Administrator exam, must show active contribution to the Kubernetes community, and must have a business model that supports enterprise end users, including putting engineers onsite.

The founding class of KCSPs includes the following CNCF and LF members: Accenture, Booze Allen Hamilton, Bitnami, Canonical, Container Solutions, CoreOS, Ghostcloud, Giant Swarm, Heptio, Huawei, IBM, inwinSTACK, Inc., LiveWyer Ltd., Mirantis, RX-M LLC, Samsung SDS, Stackpointcloud, and Supergiant.

You can learn more about becoming a KCSP on the CNCF website.

Modern Modules

Re-thinking the Node.js ecosystem for modern JavaScript.

A few months back I sat down to write some code.

Node.js 8 had been out a while and I decided to take advantage of some of the new language features like async/await in my new code.

Over the next month I wrote a half dozen small modules.

By the end of the month I’d made some pretty huge changes to how I do open source development and how I see the Node.js ecosystem moving forward.

I no longer believe that I can handle even moderate maintenance burden from modules I create.

Read more on Medium

Solaris to Linux Migration 2017

Switching from Solaris to Linux has become much easier in the last two years, with Linux developments in ZFS, Zones, and DTrace. I’ve been contributing (out of necessity), including porting my DTraceToolkit tools to Linux, which also work on BSD. What follows are topics that may be of interest to anyone looking to migrate their systems and skillset: scan these to find topics that interest you.

ZFS

ZFS is available for Linux via the zfsonlinux and OpenZFS projects, and more recently was included in Canonical’s Ubuntu Linux distribution: Ubuntu Xenial 16.04 LTS (April 2016). It uses a Solaris Porting Layer (SPL) to provide a Solaris-kernel interface on Linux, so that unmodified ZFS code can execute.

My company uses ZFS on Linux in production, and I’ve been the go-to person for deep ZFS problems. It feels largely the same, except kstats are in /proc/spl/kstat/zfs/arcstats, and I debug it with Linux tracing tools instead of DTrace (more on that next). There have been some issues on Linux, but overall it’s been ok, especially given how hard we push ZFS. We’ve used it for our container hosts (codename Titus) that do frequent snapshots, use send/recv, etc.

Read more at Brendan Gregg’s Blog

6 Lessons on Using Technical RFCs as a Management Tool

As an engineering leader, I value trust and believe that individual contributors should be involved in architectural and high-level technical decision making. I consider every line of code to be a decision made on behalf of someone else (including your future self), and having a fast-growing distributed team makes technical decision making particularly difficult to manage.

In the early days of building ride-sharing app Ride, we went from three to more than 25 members, across product, design, and engineering, in the first six months. We were tasked with the challenge of taking an early prototype for a carpooling platform and bringing it to life on the web, iOS, and Android. To make things more fun, we were also distributed across the United States, Mexico, Colombia, Brazil, Argentina, and Ireland.

In the process of building our apps, I received a private Slack message from “a not very happy front-end engineer,” who asked:

Why was the data dashboard built using React if our front-end stack is based on Ember?

This made me quickly realize a few important things I shouldn’t have missed:

Read more at OpenSource.com

Optimizing Web Servers for High Throughput and Low Latency

This is an expanded version of my talk at NginxConf 2017 on September 6, 2017. As an SRE on the Dropbox Traffic Team, I’m responsible for our Edge network: its reliability, performance, and efficiency. The Dropbox edge network is an nginx-based proxy tier designed to handle both latency-sensitive metadata transactions and high-throughput data transfers. In a system that is handling tens of gigabits per second while simultaneously processing tens of thousands latency-sensitive transactions, there are efficiency/performance optimizations throughout the proxy stack, from drivers and interrupts, through TCP/IP and kernel, to library, and application level tunings.

Disclaimer

In this post we’ll be discussing lots of ways to tune web servers and proxies. Please do not cargo-cult them. For the sake of the scientific method, apply them one-by-one, measure their effect, and decide whether they are indeed useful in your environment.

Read more at Dropbox

The Hidden Threat Lurking in an Otherwise Secure Software Stack

All it takes is a fork from the main branch and a re-branding of the code, and the next thing you know, there’s a hidden threat in your software. Here’s how to protect against it.

“One of the aspects of open source is that it can be forked,” said Tim Mackey, the Technical Evangelist for BlackDuck Software. “If you look at GitHub today and look at the OpenSSL project, you’ll see that over 2500 or 2600 different OpenSSL forks have occurred,”  If a vulnerability in the OpenSSL system occurs, as it did when the Heartbleed bug rose to fame, only the mainline, unforked version of the project will be tagged as being problematic. If the Docker container you downloaded is using a forked version of a piece of open source software, or your cloud computing stack uses a highly customized derivative, you may very well have a hidden threat buried within your system that you won’t be able to identify before hackers identify it for you.

 

Read more at ServerSide