~/devreads

6 Oct 2019

Dave Cheney 2 min read

In the beginning, before the go tool, before Go 1.0, the Go distribution stored the standard library in a subdirectory called pkg/ and the commands which built upon it in cmd/. This wasn’t so much a deliberate taxonomy but a by product of the original make based build system. In September 2014, the Go distribution […]

goprogrammingpkgproject layout

0xADADA 1 min read

Released a tiny npm package today: @0xadada/random-emoji, a javascript random emoji function with zero dependencies. $ yarn add @0xadada/random-emoji $ node > const random = require('@0xadada/random-emoji'); > random() '😁' let a = random(); // defaults to 'emoticons' let b = random('emoticons'); let c = random('food'); let d = random('animals'); let e = random('expressions'); console.log(a, b, c, d, e); // 😍…

projectsopen-sourcejavascriptweb developmentnpm

1 min read

This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. I finished my master thesis and got my degree this month, so I only had limited time for my open source work. I still managed to perform a few minor updates, including code simplications for the Paging…

4 Oct 2019

3 Oct 2019

1 min read

There are a number of variants to this accounting process, useful for ensuring correct balances are recorded within accounts. This guide explains what they are, why reconciliation is important, and how to conduct reconciliation.

2 Oct 2019

Miriam Suzanne 1 min read

CSS is the design language of the web — one of three core web languages — but it also seems to be the most contentious and often perplexing. It's too easy and too hard, too fragile and too resilient. Love it or hate it, CSS is weird: not quite markup, not quite programming in the common (imperative) sense, and nothing…

cssfeatured articlehtmlweb developersstandards

Ferenc Hámori 6 min read

Node 8 won’t get any more updates from 2020. In this article, we’ll discuss how and why you should move to newer, feature-packed, still supported versions. The post Update Now! Node.js 8 is Not Supported from 2020. appeared first on RisingStack Engineering.

node.jsedited

1 Oct 2019

Miriam Suzanne 1 min read

Today we’re launching a new video channel, with a selection of shorts to kick things off. Get started with an intro to Dark Mode on the web, by Deja Hodge. Then, Jen Simmons shows us how to access a handy third-panel in the Firefox Developer Tools. Miriam Suzanne has a video all about the ::marker pseudo-element and list counters. No…

cssdeveloper toolsfeatured articlefirefoxhtml

30 Sept 2019

lukaseder 1 min read

One of the Stream APIs greatest features is its laziness. The whole pipeline is constructed lazily, stored as a set of instructions, akin to a SQL execution plan. Only when we invoke a terminal operation, the pipeline is started. It is still lazy, meaning that some operations may be short circuited. Some third party libraries … Continue reading A Quick…

javajava 8lazystream

Harald Kirschner (digitarald) 2 min read

Creating experiences that look and work great across different browsers is one of the biggest challenges on the web. It can also be the most rewarding part, as it gets your app to as many users as possible. Testing legacy browsers late in the development process can break a feature that you spent hours on, even requiring rewrites to fix.…

developer toolsfeatured articleweb developersadd-onswebhint

29 Sept 2019

Henrik Warne 4 min read

I like to use Test-Driven Development (TDD) when coding. However, in some circumstances, TDD is more of a hinderance than a help. This happens when how to solve the problem is not clear. Then it is better to first write … Continue reading →

programmingtestingtddtest-driven development

27 Sept 2019

lukaseder 1 min read

MySQL 8 does not yet support the BOOLEAN type as specified in the SQL standard. There is a DDL “type” called BOOL, which is just an alias for TINYINT: The above produces: TABLE_NAME|COLUMN_NAME|DATA_TYPE|COLUMN_TYPE| ----------|-----------|---------|-----------| t |b |tinyint |tinyint(1) | Notice that BOOL translates to a specific “type” of TINYINT, a TINYINT(1), where we might be … Continue reading How to…

jooq-in-usesqlboolbooleanboolean type

26 Sept 2019

Stanko 1 min read

Two years ago I wrote this rant. Firefox had a problem on MacOS on scaled resolutions, resulting in insanely high CPU usage and battery drain. Issue is finally fixed, and I'm happy to say I'm using it again. The fix is expected to land in the stable version in late October 2019, with the release of Firefox 70. Meanwhile you…

25 Sept 2019

0xADADA 1 min read

Fascism is an expensive to maintain state-of-siege by the capitalist economy attempting to defend itself by an irrational means. Fascism rallies to the defense of the conservative bourgeois ideology of the family, private property, the moral order, and patriotic nationalism. It unites the petty-bourgeois, the unemployed who have been hurt by the crisis or disappointed by the impotence of the…

essaysfascismanti-fascismcapitalismsociety-of-the-spectacle

24 Sept 2019

Matthew Green 9 min read

Edward Snowden recently released his memoirs. In some parts of the Internet, this has rekindled an ancient debate: namely, was it all worth it? Did Snowden’s leaks make us better off, or did Snowden just embarass us and set back U.S. security by decades? Most of the arguments are so familiar that they’re boring at … Continue reading Looking back…

uncategorized

Joel Spolsky 2 min read

Last March, I shared that we were starting to look for a new CEO for Stack Overflow. We were looking for that rare combination of someone who… Read more "Welcome, Prashanth!"

news

Liv Erickson 4 min read

As we look at advancements in mixed reality like the WebXR API, we are able to explore ways to feel more present with others through technology. Hubs by Mozilla is built on top of WebRTC and supports real-time conversations between users in a shared virtual environment. Users embody 3D models in the glTF format called avatars. The code powering Hubs…

featured article3dhubsmixed realitysocial

Dave Cheney 1 min read

APIs should be easy to use and hard to misuse. — Josh Bloch A good example of a simple looking, but hard to use correctly, API is one which takes two or more parameters of the same type. Let’s compare two function signatures: What’s the difference between these functions? Obviously one returns the maximum of […]

goprogramming

23 Sept 2019

1 min read

Cloud-based solutions abound in the digital age, with many of us using online software to manage our emails, our banking or our photo storage. So why not move your business’ accounting and bookkeeping needs to the cloud too?

22 Sept 2019

1 min read

Mocking library is an important tool in every developer toolbox. Sometimes you want to do things that at first glance look a bit more complex than returning number 42 from some method. Let’s see what stubbing techniques are available in Mockito out of the box and what they offer. Read more

20 Sept 2019

19 Sept 2019

jgamblin 1 min read

I just spent a day and a half recovering my Github account after the code in my 2FA application stopped working for authentication. GitHub has a good support article on how to recover your account that has this ominous warning on it: Warning: For security reasons, GitHub Support may not be able to restore access to accounts with two-factor authentication…

uncategorized

lukaseder 1 min read

One of the biggest and undead myths in SQL is that COUNT(*) is faster than COUNT(1). Or was it that COUNT(1) is faster than COUNT(*)? Impossible to remember, because there’s really no reason at all why one should be faster than the other. But is the myth justified? Let’s measure! How does COUNT(…) work? But … Continue reading What’s Faster?…

sqlaggregate functioncountcount1mysql

1 min read

The cost-benefit analysis: A procedure used by businesses to assess the value of undertaking a project or making an important decision. Here's how you do one, and when and why you should.

1 min read

We’ve fine-tuned the 774M parameter GPT-2 language model using human feedback for various tasks, successfully matching the preferences of the external human labelers, though those preferences did not always match our own. Specifically, for summarization tasks the labelers preferred sentences copied wholesale from the input (we’d only asked them to ensure accuracy), so our models learned to copy. Summarization required…

safety alignment

18 Sept 2019

17 Sept 2019

Ritu Kothari 4 min read

Building and releasing a browser is complicated and involves many players. To optimize the process, and make it more reliable for all users, over the years we’ve developed a phased release strategy that includes ‘pre-release’ channels: Firefox Nightly, Beta, and Developer Edition. Starting Q1 2020, we're making a change. We plan to start shipping a major Firefox release every 4…

featured articlefirefoxfirefox development highlightsfirefox releases

1 min read

We’ve observed agents discovering progressively more complex tool use while playing a simple game of hide-and-seek. Through training in our new simulated hide-and-seek environment, agents build a series of six distinct strategies and counterstrategies, some of which we did not know our environment supported. The self-supervised emergent complexity in this simple environment further suggests that multi-agent co-adaptation may one day…

research

Daniel Conde 1 min read

Deploy Next.js on AWS Lambda@Edge for global, fast server-side rendered react applications, and easily interact with other AWS resources.

news

16 Sept 2019

0xADADA 1 min read

I love bookmarklets, those small and elegant lines of javascript that you can bookmark and which do random functions in the browser when clicked. uri-editor.js is 1-line of HTML that’ll run a text editor in your browser. Drag the link into your bookmarks to save it as a quick browser-based editor tool for those moments you need a quick editor…

projectsopen-sourcejavascriptweb-development

15 Sept 2019

13 Sept 2019

12 Sept 2019

Stephanie Chen 9 min read

Five women on Clever’s engineering team discuss what inclusivity looks like at Clever, how to grow and maintain female leadership at a tech company, and the challenges they are excited to tackle within their roles. The engineering team is passionate about improving education and solving hard problems. One problem the Clever team is constantly solving […] The post How Clever…

inclusionculturediversity

Jeff Atwood 7 min read

In an electric car, the (enormous) battery is a major part of the price. If electric car prices are decreasing, battery costs must be decreasing, because it’s not like the cost of fabricating rubber, aluminum, glass, and steel into car shapes can decline that much,

electric vehiclestransportation

Stanko 1 min read

Please note that I'm not using Jekyll anymore, so this post might be outdated. I'm using Staticman as a comment system on this blog. Unfortunately public instance can't handle all of the requests coming in. That resulted in some readers being unable to post a comment. That is why I decided to run my own instance on Heroku. It was…

11 Sept 2019

lukaseder 1 min read

Using the right data type for some calculation sounds like some obvious advice. There are many blogs about using temporal data types for temporal data, instead of strings. An obvious reason is data integrity and correctness. We don’t gain much in storing dates as 2019-09-10 in one record, and as Nov 10, 2019 in the … Continue reading Oracle’s BINARY_DOUBLE…

sqlaggregationbinary doubledata typesdouble precision

srinivas.tamada@gmail.com (Srinivas Tamada) 1 min read

This is a continuation of my previous article creating an Ionic Angular project with welcome and tabs home page. Today’s post explains how to implement login authentication system for your Ionic Angular application with guards and resolvers. It will show you how to log in with a user and store the user data and protect the routes, so it deals…

androidangularapiionicios

1 min read

We are improving cache in the project Im working on. In the code base I’ve found a method which accepted a collection of ids and returned collection of objects for those ids. My goal was to add cache on individual values returned by the method. Creation of items was IO heavy and time-consuming operation so removal of cache was not…

10 Sept 2019

6 min read

Last week I attended the Open Source Firmware Conference. It was amazing! The talks, people, and overall feel of the conference really left me feeling inspired and lucky to attend. Having been pushed to attend vendor conferences and trade shows through my career for various jobs, it was so refreshing to have the chance to hang out with folks from…

11 min read

Pines and firs are dying across the Pacific Northwest, fires rage across the Amazon, it’s the hottest it’s ever been in Paris—climate change is impacting the whole planet, and things are not getting any better. You want to do something about climate change, but you’re not sure what. If you do some research you might encounter an essay by Bret…

5 min read

img.plot { max-height: 400px !important; } My job nowadays involves a lot of music and JavaScript. You know what musicians really care about? Paychecks (support your local musicians, go to concerts, don’t steal music from indie musicians). But also: keeping time. Keeping time in JavaScript is kind of a joke, not just because time is a social construct (this is…

9 Sept 2019

1 min read

A guide for anyone who wants to learn more about Direct Debit.

1 min read

Our guide to collecting payments by SEPA

Florian Scholz 3 min read

Today we’re announcing the integration of MDN’s compat data into the caniuse website. Together, we’re bringing even more web compatibility information into the hands of web developers. The post Caniuse and MDN compatibility data collaboration appeared first on Mozilla Hacks - the Web developer blog.

featured articlemdnbcdbrowser compatbrowser compatibility data

lukaseder 1 min read

A nice little gem in PostgreSQL’s SQL syntax is the DISTINCT ON clause, which is as powerful as it is esoteric. In a previous post, we’ve blogged about some caveats to think of when DISTINCT and ORDER BY are used together. The bigger picture can be seen in our article about the logical order of … Continue reading Using DISTINCT…

sqldistinct onfirst valuelogical operations orderlogical order of operations

Dmytro Khmelenko 5 min read

Like many developers in the realm of Software Engineering, we are using git as our version control system. The most typical git workflow looks like the following: Create a new branch for implementing a new feature Commit new changes and push them to the remote branch Create a pull request and let your colleagues (or contributors in case of open…

2 min read

This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. I was very busy with finishing my master’s thesis, so I didn’t have any to implement any notable changes myself. Thanks to contributions by @vinaychandra and @64, we were still able to publish new versions of the…

8 Sept 2019

6 Sept 2019

5 Sept 2019

1 min read

Writing a Go/C polyglot Someone on a Slack I’m on recently raised the question of how you might write a source file that’s both valid C and Go, commenting that it wasn’t immediately obvious if this was even possible. I got nerdsniped, and succeeded in producing one, which you can find here. I’ve been asked how I found that construction,…

Jan Honza Odvarko 4 min read

Firefox Debugger has evolved into a fast and reliable tool chain over the past several months and it’s now supporting many cool features. Though it's primarily used to debug JavaScript, did you know that you can also use Firefox to debug your TypeScript applications? Jan 'Honza' Odvarko walks through some real world examples. The post Debugging TypeScript in Firefox DevTools…

developer toolsfeatured articlefirefoxjavascriptdebugger

Dave Cheney 3 min read

This is a post about performance. Most of the time when worrying about the performance of a piece of code the overwhelming advice should be (with apologies to Brendan Gregg) don’t worry about it, yet. However there is one area where I counsel developers to think about the performance implications of a design, and that […]

goprogrammingperformance

lukaseder 1 min read

Quantified comparison predicates One of SQL’s weirdes features are quantified comparison predicates. I’ve hardly ever seen these in the wild: The above example is equivalent to using the much more readable IN predicate: This equivalence is defined in the SQL standard. There are more esoteric cases that could be solved using such quantified comparison predicates … Continue reading Quantified LIKE…

jooq-in-usesqljooqlike anylike predicate

4 Sept 2019

Dan Callahan 1 min read

WebAssembly has begun to establish itself outside of the browser via dedicated runtimes like Mozilla’s Wasmtime and Fastly’s Lucet. While the promise of a new, universal format for programs is appealing, it also comes with new challenges. At Mozilla, we’ve been prototyping ways to enable source-level debugging of .wasm files using existing tools, like GDB and LLDB. The post Debugging…

featured articledebugginggdblldblucet

3 Sept 2019

Chris Mills 6 min read

For our latest excellent adventure, we’ve gone and cooked up a new Firefox release. Version 69 features a number of great new additions including JavaScript public instance fields, the Resize Observer and Microtask APIs, CSS logical overflow properties (e.g. overflow-block) and @supports for selectors. The post Firefox 69 — a tale of Resize Observer, microtasks, CSS, and DevTools appeared first…

cssdeveloper toolsfeatured articlefirefoxfirefox releases

30 Aug 2019

Jan de Mooij 7 min read

Modern web applications load and execute a lot more JavaScript code than they did just a few years ago. While JIT (just-in-time) compilers have been very successful in making JavaScript performant, we needed a better solution. We’ve added a new, generated JavaScript bytecode interpreter to the JavaScript engine in Firefox 70. Instead of writing a new interpreter from scratch, we…

featured articlefirefoxfirefox development highlightsjavascriptperformance

5 min read

Until recently, one of the top technical risks facing SoundCloud’s Android team was increasing build times. Our engineering leadership was well aware of the problem, and it was highlighted in our company’s quarterly goals and objectives as modularization. Faster build times means more productive developers. More productive developers are happier and can iterate on products more quickly. Modularization is key…

29 Aug 2019

lukaseder 1 min read

jOOQ 3.12 has been released with a new procedural language API, new data types, MemSQL support, formal Java 11+ support, a much better parser, and reactive stream API support In this release, we’ve focused on a lot of minor infrastructure tasks, greatly improving the overall quality of jOOQ. We’ve reworked some of our automated integration … Continue reading jOOQ 3.12…

jooq-in-usejooqrelease notes