The Changelog The Changelog #323  – Pinned

The road to Brave 1.0 and BAT

This week Adam and Jerod talk with Brian Bondy, Co-founder and CTO of Brave. They talked through the beginnings of Brave and how BAT (Basic Attention Token) could be driving the future of how we offer funding and tips to our favorite websites and content creators. Of course, they go deep into the historical and the technical details of the Brave browser and their march to Brave 1.0. The last segment of the show covers how BAT works, how it’s being used, and also their interesting spin on an ad model that respects the user’s privacy.

read more...

The Changelog The Changelog #322  – Pinned

There and back again (Dgraph's tale)

This week we talk with Manish Jain about Dgraph, graph databases, and licensing and re-licensing woes. Manish is the creator and founder Dgraph and we talked through all the details. We covered what a graph database is, the uses of a graph database, and how and when to choose a graph database over a relational database. We also talked through the hard subject of licensing/re-licensing. In this case, Dgraph has had to change their license a few times to maintain their focus on adoption while respecting the core ideas around what open source really means to developers.

read more...

 Itamar Turner-Trauring codewithoutrules.com

Enthusiasts vs. Pragmatists

Do you love programming for its own sake, or do you just program for the outcomes it enables? Depending on which describes you best you will face different problems in your career as a software developer. Enthusiasts code out of love. If you’re an enthusiast you’d write software just for fun, but one day you discovered your hobby could also be your career, and now you get paid to do what you love. Pragmatists may enjoy coding, but they do it for the outcomes. If you’re a pragmatist, you write software because it’s a good career, or for what it enables you to do and build. Which is your camp and why?

read more...

Eugen Kiss blog.usejournal.com

Lean testing or why unit tests are worse than you think

This is a spectacularly thoughtful and insightful piece by Eugen Kiss on testing: Different kinds of tests have different costs and benefits. You have finite resources to distribute into testing. You want to get the most out of your tests, so use the most economic testing approach. He goes on to describe why he believes that integration tests provide better ROI than unit tests and end-to-end tests. Then he turns his aim on unit tests in particular: There is the claim that making your code unit-testable will improve its quality. Many arguments and some empirical evidence in favor of that claim exist so I will put light on the other side… Unit tests ossify the internal structure of the code. Click through to read his whole argument, but I will say in my experience unit tests only ossify the structure when I do them poorly. In other words, the better I get at unit testing, the more useful they become. In light of that, Eugen’s big takeaway at the end might be 💯 on point: If you desire clear, albeit unnuanced, instructions, here is what you should do: Use a typed language. Focus on integration and end-to-end tests. Use unit tests only where they make sense (e.g. pure algorithmic code with complex corner cases). Be economic. Be lean.

read more...

DigitalOcean Icon DigitalOcean – Sponsored

The DigitalOcean Terraform Provider

You’ve heard of Terranform from HashiCorp — it’s the safe and predictable way to create, change, and version your infrastructure. It has become an essential part of many DigitalOcean users’ workflow. And, our friends at DigitalOcean want to ensure it receives the support it deserves! we’re so excited to release version 1.0.0 of the DigitalOcean Terraform Provider. This release marks a major milestone: the first since DigitalOcean took ownership of the project and a declaration of our commitment to support its continued development. Learn how to use Terraform with DigitalOcean.

read more...
logged by @logbot permalink

Leo Farias github.com

NearDB - a simple document db made for globally distributed reads

The motivation behind NearDB: While working on building edge applications for higher performance and lower latency there is a need store persistent data also on edge. There are multiple distributed database solutions but they are very involved and costly while having a much lower global footprint than a CDN. The idea came up to leverage ubiquitous and mature infrastructure like cloud storage and CDNs to deliver a persistent data solution from the edge.

read more...

Daniel Stenberg daniel.haxx.se

QUIC will officially become HTTP/3

We recently talked with Daniel Stenberg about HTTP/2 and QUIC, so this news comes with little surprise looking back on that conversation with hindsight. The protocol that’s been called HTTP-over-QUIC for quite some time has now changed name and will officially become HTTP/3. This was triggered by this original suggestion by Mark Nottingham. On November 7, 2018 Dmitri of Litespeed announced that they and Facebook had successfully done the first interop ever between two HTTP/3 implementations. Mike Bihop’s follow-up presentation in the HTTPbis session on the topic can be seen here. The consensus in the end of that meeting said the new name is HTTP/3!

read more...

Zach Bloom Cloudflare Blog

Cloud computing without containers

(READ ALONG IN YOUR FAVORITE MOVIE TRAILER VOICE) … In a world where serverless is still being demystified, CloudFlare, a company who’s focused on pushing things to the edge, launches a game changer for not only serverless, but for cloud computing at large. Unlike every other cloud computing platforms out there, this platform called Workers, doesn’t use containers or virtual machines. This, is the future of serverless and cloud computing. Join Zach Bloom in this epic tale as he tries to convince you why. OK, seriously — this news bubbled up to me enough times that I just had to share it. Here’s the tee up of the problem they faced — how they’re going about solving it is truly a great read. Two years ago we had a problem. We were limited in how many features and options we could build in-house, we needed a way for customers to be able to build for themselves. We set out to find a way to let people write code on our servers deployed around the world (we had a little over a hundred data centers then, 155 as of this writing). Our system needed to run untrusted code securely, with low overhead. We sit in front of ten million sites and process millions and millions of requests per second, it also had to run very very quickly…

read more...

Rollbar Icon Rollbar – Sponsored

Errors from the world's top 100 websites (and how to avoid them)

Jennifer Marsh writes on the Rollbar blog: When you think of the top 100 sites in the world, you think of high-traffic domains and pages coded to perfection. In fact, even the most popular sites in the world have errors hidden behind the scenes that are still visible in your browser’s developer tools … We found that most of the top 100 sites had several errors which could be easily monitored and prevented. In this post Jennifer shows you the most common errors faced by the top websites in the world and how you can avoid them.

read more...
logged by @logbot permalink

Claudio github.com

Pampy – pattern matching for Python

Pampy is pretty small (150 lines), reasonably fast, and often makes your code more readable, and easier to reason about. Pattern matching is the feature in Elixir that I miss when using other languages, so it’s awesome to see it brought to Python. Here’s an example of Pampy in action as a Lisp calculator (from the readme): from pampy import match, REST, _ def lisp(exp): return match(exp, int, lambda x: x, callable, lambda x: x, (callable, REST), lambda f, rest: f(*map(lisp, rest)), tuple, lambda t: list(map(lisp, t)), ) plus = lambda a, b: a + b minus = lambda a, b: a - b from functools import reduce lisp((plus, 1, 2)) # => 3 lisp((plus, 1, (minus, 4, 2))) # => 3 lisp((reduce, plus, (range, 10))) # => 45

read more...

ZEIT Icon ZEIT

Now 2.0

My biggest take away from this epic announcement from ZEIT? The support of the majestic monorepo! …Now 2.0 enables what we will call The Majestic Monorepo, inspired by a similarly named essay by DHH, creator of Ruby on Rails (The Majestic Monolith). We don’t agree that you should be orchestrating a big server abstraction (a monolith), but we believe you should be able to collocate your APIs and your business logic in a single place, with a cohesive deployment story. It looks, feels and deploys like a monolith, with none of its downsides. …but there is SO MUCH MORE to this announcement. Also, we talked a bit about David’s idea of The Majestic Monolith on The Changelog #286.

read more...

Electron minbrowser.github.io

Min – a smarter, faster web browser

I love how people continue to experiment in browserland. Min has some cool stuff going: Tabs in Min take up less space, giving you more room to browse the web. Pages you haven’t looked at in a while fade out, letting you see what’s important, and Focus Mode hides your other tabs to prevent you from getting distracted. It also sports built-in ad blocking (table stakes for new browsers to compete?) and DDG integration in the search bar. Min is built on Electron, so while it may be fast it possibly isn’t memory efficient. But what browser is, these days? It’s also worth noting that Min runs on an older version of Chromium, so it’s likely missing some security fixes. (More on that right here.)

read more...

Andrey Sitnik DEV.to

How a month without computers changed me

Andrey Sitnik: No emails left for me to read. Nor write. I’ve sent a message to my family and delegated my open source projects (Autoprefixer and PostCSS) to my friends. With my last tweet sent, I turn off my laptop, phone, and tablet. My Digital Sabbath begins in 10 minutes: no digital devices for the next month. An absolutely fascinating read. You can visualize Andrey’s digital sabbath on his GitHub contribution graph 👇

read more...

James Governor redmonk.com

"GitHub is where source code lives."

I agree — “GitHub is, quite simply, home for developers,” as stated by James Governor in his highlights post on GitHub Universe 2018. Out the gate, James focuses on the announcement of GitHub Actions, which “feels like a profound launch, one that could prove extremely disruptive in the long term.” An idea that seems to have started as “Probot” is now a full fledged and more approachable product offering called GitHub Actions, and looks like it will continue to drive more and developers, developers, developers to GitHub in 2019. Quite simply, Actions could be a disruption driving feature. So what about future implications of Actions for AWS, Microsoft Azure and GCP Cloud compute platforms? Actions could even pose a threat to the centrality and stickiness of the cloud console, because If developers can drive all their workflows from GitHub they have less need to use the console. It might seem absurd to position GitHub as an AWS competitor … but there is no denying the potential for GitHub to lessen the primacy of a cloud operator console in favor of Actions scripted in GitHub, triggering actions and deployments across multiple clouds. GitHub used its keynote to demonstrate the ability to deploy a workload across multiple clouds. Mark your calendars for November 28th! We’re releasing a new episode on The Changelog talking GitHub Actions with Kyle Daigle, Director of Ecosystem Engineering at GitHub, and one of the leaders to bring Actions to fruition. Stay tuned!

read more...

Noa Gruman blog.streamroot.io

Implementing a multi-CDN strategy? Here's everything you need to know.

There’s some seriously interesting thoughts shared here for building out a multi-CDN strategy. Having had issues with how to best use and leverage a CDN to get the best performance benefits, I can see how having a multi-CDN implementation would allow us to choose the right CDN for a given region of the world, as well as a whole host of other options based on things like cost, performance, and of course redundancy for when things go wrong. Murphy’s law, right? This summer, the 2018 World Cup set an all-time streaming record – tripling its own 2014 record – with over 22 Tbps measured by Akamai at peak, but the event wasn’t smooth sailing for everyone. In a highly competitive market, and in an age where streaming failures make headlines, redundancy and quality of experience have never been more crucial for content publishers. Drop a comment below if there are other resources out there on this subject that we should check out.

read more...

Facebook Engineering Blog Icon Facebook Engineering Blog

Facebook has a tool that learns to fix bugs automatically?!

This week on the Facebook code blog they shared details about a new tool called Getafix that automatically finds fixes for bugs and offers them to engineers to approve. 😎 Modern production codebases are extremely complex and are updated constantly. To create a system that can automatically find fixes for bugs — without help from engineers — we built Getafix to learn from engineers’ previous changes to the codebase. It finds hidden patterns and uses them to identify the most likely remediations for new bugs. Getafix has been deployed to production at Facebook, where it now contributes to the stability of apps that billions of people use. The goal of Getafix is to let computers take care of the routine work, albeit under the watchful eye of a human, who must decide when a bug requires a complex, nonroutine remediation. Whether or not this tool will be open sourced or shared at large remains to be seen. How cool would it be to have something like this deployed to your codebase to find and suggest fixes to your bugs?

read more...

Our podcasts

No matter who you are or where you are on your path of being a developer, we have a podcast for you. This community cares about the past, present, and future generation of developers. We're about lifting people up, not putting people down.

0:00 / 0:00