Why you can’t manage humans like they’re software

Source: https://qz.com/work/1493875/why-you-cant-manage-humans-like-theyre-software/

Early on at Amazon, CEO Jeff Bezos famously issued a memo about how software was to be built at the company. Teams would share their data through service interfaces, or APIs, the same way that they would share it with an outside customer. That meant that a developer on one team didn’t need to know anything about how another team operated in order to integrate the product it made—he or she could follow the documentation and use that product as though it were an external service. Ultimately, this ease of cooperation became extremely efficient and is what paved the way for  Amazon Web Services—a $6.7 billion business that powers huge parts of the web (including Netflix).

Continue reading “Why you can’t manage humans like they’re software”

DNS settings remain set after TAP use #180

case "disconnect":
    // Delete direct route for the VPN gateway
    echo("Deleting Direct Route for VPN Gateway");
    exec("route delete " + env("VPNGATEWAY") + " mask");
    exec("netsh interface ip set dns " + env("TUNIDX") + " source=static")
    exec("netsh interface ip delete dns " + env("TUNIDX") + "")
https://github.com/openconnect/openconnect-gui/issues/180 Use above code for use with Openconnect 1.5.3

Why Software is the Ultimate Business Model (and the data to prove it)

I often say that if Warren Buffett were 30 years old, he’d only invest in software. Here’s why…

1. The Demand for Software is very strong and stable — Spend on software has grown at ~9% for about a decade. Looking forward Gartner estimates show that the Software category is expected to grow 8–11% versus the U.S. economy at 2–3% and broader technology spending at 3–4%. Software is a GOOD neighborhood to live in.

Continue reading “Why Software is the Ultimate Business Model (and the data to prove it)”

Coding Tip: Try to Code Without Loops

source: https://edgecoders.com/coding-tip-try-to-code-without-loops-18694cf06428

You might uncover better solutions

In a previous article, I wrote about how trying to solve coding challenges without using if-statements might help uncover better solutions. In this article, we will explore how to solve some more challenges, but this time without using any loops.

By loops, I mean imperative loops like for, for...in, for...of, while, and do...while. All of these are similar in the way that they provide an imperative way to perform iterations. The alternative is to perform iterations in a declarative way. Continue reading “Coding Tip: Try to Code Without Loops”

[Chicken-users] [ANN] CHICKEN 5.0.0 has been released

From: Peter Bex
Subject: [Chicken-users] [ANN] CHICKEN 5.0.0 has been released
Date: Wed, 7 Nov 2018 19:53:30 +0100
User-agent: NeoMutt/20170113 (1.7.2)

Dear CHICKEN users,

We are proud to announce the immediate availability of
CHICKEN 5.0.0 at the following URL:

This tarball has the following SHA256 checksum:

It has been a long stretch, but we finally made it!

This release contains the largest number of big-impact changes
we've made since the CHICKEN 4.0.0 release.

Most importantly, we have completely overhauled the module layout so
that it should make more sense where each identifier is located.
For a quick overview of where things are, see the page we used for
discussion of these changes:

The manual has of course also been updated to reflect these new modules:

Other notable features are:
- Full numeric tower
- A new declarative egg description format for chicken-install
- Improved support for static linking (eggs are now also compiled statically)
- "Deployment" mode has been dropped as it was less portable and reliable
  than static linking.
- Builds are fully bit-for-bit reproducible (for core, but user code too)
- Random numbers now use a better PRNG than libc rand() (namely, WELL512)
- Core has gone on a diet: several libraries have been moved to eggs, like
   srfi-1, srfi-13, srfi-14, srfi-18, srfi-69, and several other things.

The (very long!) complete list of changes since version 4.13.0 is
available here: https://code.call-cc.org/dev-snapshots/2018/08/11/NEWS

Because the testing period has been quite long, we've managed to port
many of the most important eggs to CHICKEN 5 already.  You can view them
at the new subdomain, see https://eggs.call-cc.org/5

Of course for the time being, not everyone can immediately switch to
CHICKEN 5 for everything, so https://eggs.call-cc.org/4 also works.

If you have code you want to port, we've created a porting guide that
covers the most important pitfalls:

Many thanks to everyone in the community for their enthusiasm, mental
support and help with testing all this new code and enthusiastically
porting stuff to CHICKEN 5 even back when it was barely ready!


Attachment: signature.asc
Description: PGP signature

The Bcrypt Protocol… is kind of a mess

While writing my own bcrypt library, being unsatisfied with the current Java de-facto standard implementation jBcrypt, I discovered a lot of odd things surrounding the bcrypt protocol (mind you: not the underlying cryptographic primitive ‘Eksblowfish’).

Bcrypt is a password hashing function designed by Niels Provos and David Mazières in 1999 which became popular as the default password hash algorithm for OpenBSD¹. In comparison to simple cryptographic hash functions (like SHA-256), the main benefit of using bcrypt is that a developer can set how expensive it is to calculate the hash. This is called key stretching and should be used with any (usually weak) user provided password to protect against brute force attacks (i.e. simple guessing).


Introduction to Bcrypt

So how does it work? First you need a password and set the iteration count as a logarithmic work factor between 4–31, doubling the required computation every increment. So for example it could look like this:

bcrypt("secretPassword", 8)

which may output

Continue reading “The Bcrypt Protocol… is kind of a mess”

Why Americans are sticking with older phones

Source: https://www.wsj.com/articles/upgrade-no-thanks-americans-are-sticking-with-their-old-phones-1540818000

Americans are holding on to their smartphones for longer than ever.

Pricier devices, fewer subsidies from carriers and the demise of the two-year cellphone contract have led consumers to wait an average of 2.83 years to upgrade their smartphones, according to data for the third quarter from HYLA Mobile Inc., a mobile-device trade-in company that works with carriers and big-box stores. That is up from 2.39 years two years earlier.
Continue reading “Why Americans are sticking with older phones”

Understanding How Apache Pulsar Works

Source: https://jack-vanlightly.com/blog/2018/10/2/understanding-how-apache-pulsar-works

I will be writing a series of blog posts about Apache Pulsar, including some Kafka vs Pulsar posts. First up though I will be running some chaos tests on a Pulsar cluster like I have done with RabbitMQ and Kafka to see what failure modes it has and its message loss scenarios.

I will try to do this by either exploiting design defects, implementation bugs or poor configuration on the part of the admin or developer.

Continue reading “Understanding How Apache Pulsar Works”