You have developed a new feature. The code has been reviewed, and all the tests pass. You have just deployed this new feature to production. So on to the next task, right? Wrong. Most of the time, you should check … Continue reading →
30 Aug 2020
If you are following me on Twitter, you might have seen a change of content in my tweets. It’s more about making money and value. There are a ton of reasons why this has happened and I’ll try to explain some of it. Before I get into it, a disclaimer: […] The post My software developer’s journey of narrowing down…
29 Aug 2020
History I started blogging back in 2005, shortly before attending the only MVP summit I’ve managed to go to. I hosted the blog on msmvps.com, back when that was a thing. In 2014 I migrated to wordpress.com, in the hope that this would make everything nice and simple: it’s a managed service, dedicated to blogging, … Continue reading Posting to…
27 Aug 2020
The explosion of devices in the IoT space is more than a little overwhelming. Where do you start? Why choose hardware when you can experiment entirely in software? That’s the power of the Device Simulator Express (DSE). Keep on reading to learn how you can start experimenting with programming Python on IoT devices without buying anything! The post IoT exploration…
Github Actions was launched last November and it has taken a little while to mature but it has recently got to the point where you can build a fairly robust application security pipeline using Github actions. In most of my projects, I can run a Linter, an SCA, a SAST and DAST tool aginst my code daily using open source…
26 Aug 2020
Last time in this series we learned about the fundamental (and only!) data structure in Gosper’s algorithm: a complete quadtree, where every leaf is either alive or dead and every sub-tree is deduplicated by memoizing the static factory. Suppose we … Continue reading →
25 Aug 2020
IT, network operations, and security operations teams are being called to do more to secure the organization while also delivering information and services to an increasingly distributed and ever-expanding edge. To keep your teams and organization protected, you need a way to simplify your cybersecurity stack while evolving it to meet today’s needs and your unique challenges. Whether you’re a…
After many months of work, we deployed GitHub to production using Ruby 2.7 in July. For those who aren’t familiar with GitHub’s stack, we’ve been running on Ruby since the beginning. Many years ago, we ran GitHub on a fork of Ruby (and Rails!) and while that hasn’t been the case for some time, that experience taught us how important…
Strategic partnership includes new product integration.
24 Aug 2020
Learn how to find total addressable market with our simple guide.
Find out everything you need to know about asset turnover ratio.
Many don’t realise that the carnival’s origins lie in race riots in 1958.
Ruby was initially designed to be a successor of the Perl programming language, which also means that it inherited a lot of Perl's expressiveness. To celebrate this, the TRIC¹ contest was invented: Write the most Transcendental, Imbroglio Ruby program! Illustrate some of the subtleties (and design issues) of Ruby! Show the robustness and portability of Ruby interpreters! Stabilize the spec…
23 Aug 2020
Generally if you name a food or drink, people know whether they like it or not. It is rare for someone to drink a merlot, or try pizza from a new restaurant — toasted bread, melted cheese, tomato sauce and toppings - and be wildly surprised at their reaction to the taste. I can't quite […]
Explore constant time LFU cache implementation using hash tables and doubly-linked lists. Learn how to achieve O(1) complexity!
21 Aug 2020
Mozilla announced some general changes in our investments and we would like to outline how they will impact our MDN platform efforts moving forward. It hurts to make these cuts, and it’s important that we be candid on what’s changing and why. The post An Update on MDN Web Docs appeared first on Mozilla Hacks - the Web developer blog.
Part 33 of my ongoing series is coming but I did not get all the code written that I wanted to this week, so it will be delayed. In the meanwhile: Living in Canada as a child, of course I … Continue reading →
Parse and transform Markdown documents with Remark to introduce a new syntax
20 Aug 2020
Target marketing can help your business focus on the most receptive buyers.
What is SaaS? Find out more about the benefits of the SaaS model.
19 Aug 2020
Developing and hosting your own Angular, React applications has never been easier, but now there are many options like Google Firebase, Heroku and etc. Github Pages is offering some great features with free of cost no credit card required and no bandwidth limitations. Just create a public repository and commit all of your product ready files. It has a custom…
When experimenting with unicode property escapes, to identify accented letters in strings, it reminded me of a question I had a few years ago: what is the best way to identify and then replace emojis in a string? I first noticed this practice when using emojis in Facebook — sometimes Facebook would replace an emoji with one of their own…
Explore the benefits of pro forma financial statements with our simple guide.
Learn more about the definition of differentiation in business, right here.
Abridged accounts are simplified versions of your business’s full accounts.
Virtual CFOs handle the duties of traditional CFOs on a remote, part-time basis
Deploy containerized applications on serverless Knative infrastructure easily, cheaply and scale massively, all via the Serverless Framework
18 Aug 2020
Read about accounts payable in a little more depth with GoCardless.
Find out more about what is meant by impairment of assets with our easy guide.
Explore the main differences between VAT invoices and commercial invoices.
Discover how to run a paperless office with our comprehensive guide.
When I wanted to refresh my React.js skills, I quickly moved to create a dashboard of cryptocurrencies, their prices, and and other aspects of digital value. Getting rolling with React.js is a breeze — create-react-app {name} and you’re off and running. Getting the API working isn’t quick, especially if they don’t accept cross-origin requests. I set out to find the…
17 Aug 2020
All right, after that excessively long introduction let’s get into Gosper’s algorithm, also known as “HashLife” for reasons that will become clear quite soon. Since the early days of this series I’ve mostly glossed over the code that does stuff … Continue reading →
Most bugs you encounter have been encountered by others before you; most programming problems you face have been faced by others as well. And many of those people have written down details about what they’ve learned—in issue trackers, documentation, and blog posts. All you have to do is find this information. Typing a phrase in to your search engine of…
Have you ever been confused by the __underscores__ required by some of __RUBY__'s features? You can get it right with this overview of all of "super snake" keywords and methods. There are three different types of underscore-wrapped syntaxes in the Ruby core language: keywords Object methods and Kernel methods. Let us take a look at each of them, and understand…
It’s been an unusual internship season.
14 Aug 2020
Normally this time of year I would be visiting friends and family in Canada, but obviously that’s impossible right now. Instead we took a long weekend at a rental on Bainbridge Island and strolled around some parks in a socially … Continue reading →
Accruals are expenses/revenue for which cash hasn’t yet changed hands.
Principal payments are payments towards the original sum of a loan.
The Ruby core team cares a lot about Unicode, and this is why we have pretty good Unicode support in the language. Even though the Unicode standard evolves constantly - it gets updated at least once a year - Ruby's Unicode support is often only a little bit behind the current version of Unicode. The following tables list which Ruby…
13 Aug 2020
We are happy to announce that the August 2020 release of the Python Extension for Visual Studio Code is now available. In this release we addressed 38 issues, and it includes support for multiple Python interactive windows, Pylance as an officially supported language server setting value and smart signature help with Pylance. The post Python in Visual Studio Code –…
Architecture decision records, also known as ADRs, are a great way to document how and why a decision was reached within a codebase. We’ve started to adopt them within the mobile team here at GitHub, documenting decisions that affect the iOS codebase and Android codebase, as well as decisions that affect both mobile clients. ADRs are not the most common…
Today we will finish off our implementation of Hensel’s QuickLife algorithm, rewritten in C#. Code for this episode is here. Last time we saw that adding change tracking is an enormous win, but we still have not got an O(changes) … Continue reading →
Want to know how to do break-even analysis? Find out here.
The debt service coverage ratio measures your firm’s ability to repay debts.
Crisis management can help SaaS companies identify and manage threats.
Explore the benefits of cohort analysis for SaaS companies, right here.
Explore the advantages and disadvantages of activity-based costing.
Get the lowdown on the Imprest petty cash procedure, right here.
Understand how to use trend analysis methods to help your business.
Goodwill arises when a company acquires a business for more than its fair worth
12 Aug 2020
How do UK & Ireland payment failure rates compare to the global benchmark?
Announcing the return of the annual month-long competition for HTML5 game developers. For js13kGames contestants, the file size limit for all entries is set to 13 kilobytes of code. That's what makes this a code golf challenge. In addition to great prizes across a host of categories, including WebXR and Web Monetization, expert game reviewers provide valuable feedback on all…
I haven’t written an “attack of the week” post in a while, and it’s been bumming me out. This is not because there’s been a lack of attacks, but mostly because there hasn’t been an attack on something sufficiently widely-used that it can rouse me out of my blogging torpor. But today brings a beautiful … Continue reading Attack of…
Recent Ruby versions allow you to choose from a wide-range of uppercase letters - beyond just ASCII - to start a constant / class name: class Österreich # 00D6 ├─ Ö ├─ LATIN CAPITAL LETTER O WITH DIAERESIS end # Syntax OK However, it is not possible to use just any Unicode character: class ℻ # 213B ├─ ℻ ├─…
11 Aug 2020
Ruby's mode of operation can be altered with some --enable-* / --disable-* command-line switches. By default, all of the following features are activated, except for the frozen strings and the JIT: Feature CLI Option to Change Description RubyGems --disable-gems RubyGems is the package manager of Ruby, which is required to load 3rd party Ruby libraries¹. RUBYOPT --disable-rubyopt The RUBYOPT ENV…
Code refactoring is an essential part of the job of software developers. As time goes on, technology evolves, product requirements change…
10 Aug 2020
What is your wild guess: How many different ways does Ruby provide for inserting a NULL byte into a double-quoted string? There are exactly 43 options¹! Here is the list, put together with some ideas from Episode 61: Meta Escape Control: Directly embedded NULL byte # => "\u0000" "\0" # => "\u0000" "\x00" # => "\u0000" "\x0" # => "\u0000"…
We are happy to announce our collaboration with the Swiss Federal Office of Topography swisstopo.
7 Aug 2020
We have been spoiled to have Tim Ruscica, founder and star of the very informative and popular “Tech with Tim” YouTube channel, work on our team as a Software Engineering intern this summer! During his time here he implemented several features for our extension, including the much desired export notebook to HTML and PDF, as well […] The post Need…
Accrual basis accounting vs. cash basis accounting is all about timing.
Dunning refers to the process of asking customers for money they owe you.
6 Aug 2020
Your nominal ledger contains a record of all your financial transactions.
Capital budgeting is the process of deciding which investments to pursue.
Intangible assets are non-physical items that offer long-term value.
Companies use several different depreciation methods to calculate depreciation.
Fitness business owners in North America and ANZ can now make use of both apps.
Regular expressions are used for a variety of tasks but the one I see most often is input validation. Names, dates, numbers…we tend to use regular expressions for everything, even when we probably shouldn’t. The most common syntax for checking alphabetic characters is A-z but what if the string contains accented characters? Characters like ğ and Ö will make the…
How does nothing (as in nil, null, or nan) compare to nothing? Equality Equality == nil 0 0.0 0i 0r NaN¹ nil true false false false false false 0 false true true true true false 0.0 false true true true true false 0i false true true true true false 0r false true true true true false NaN false false false…
5 Aug 2020
Holy goodness, we are on part 30; I never expected this to go for so long and we have not even gotten to Gosper’s algorithm yet! We will finish up Hensel’s QuickLife algorithm soon I hope. Code for this episode … Continue reading →
There are a few ways to compare two similar tables in SQL. Assuming PostgreSQL syntax, we might have this schema: It is now possible to use UNION and EXCEPT as suggested by Chris Saxon: In PostgreSQL, we can write: Notice how TABLE x is just standard SQL, and PostgreSQL, syntax sugar for SELECT * FROM … Continue reading Use NATURAL…
What should be in the upcoming version of MapTiler Desktop? Tell us!
Improve initial load time by skipping the rendering of offscreen content.
4 Aug 2020
The Semantic Code team shipped a massive improvement to the language support system that powers code navigation. Code navigation features only scratch the surface of possibilities that start to open up when we combine Semantic‘s program analysis potential with GitHub’s scale. GitHub is home to over 50 million developers worldwide. Our team’s mission is to analyze code on our platform…
Browsers are changing the default value of the SameSite attribute for cookies from None to Lax. This will greatly improve security for users. However, some web sites may depend (even unknowingly) on the old default, potentially resulting in site breakage. At Mozilla, we are slowly introducing this change. And we urge web developers to test their sites with the new…
COGS refers to the direct costs of selling and delivering your products.
Explore the definition of amortization in accounting, right here.
Predictive analytics uses data to predict the likelihood of future outcomes.
Auth0's Vue guide is really helpful, but as TypeScript is becoming the industry standard, we need good docs to use it. Let's fill in that void. The post Auth0: Vue & TypeScript Quickstart SDK – The Missing Docs appeared first on RisingStack Engineering.
Business intelligence enables organizations to make data-led decisions.
Life cycle costing helps you understand the total cost of a product or asset.
Conversion rate optimization can improve the effectiveness of your site.
EBITDA is used to measure the financial health and stability of your business.
A credit control policy dictates how staff should trade on credit terms.
Right stock, right place, right time – explore inventory management, right here.
The introduction of pattern matching in Ruby 2.7 brought us a new style of multi-assigning local variables: The pattern assignment, or, how you could also call it, the assignment in-style. After you have deactivated the warnings for experimental features, try the following piece of code: [1, 2, 3, 4] in [first, second, *other] Think: Put [1, 2, 3, 4] into…
3 Aug 2020
Last time I used Windows on my main development machine was sometime in the early 2000s. Over the years, I had several side Windows machines (usually because I needed Visual Studio) but I was never really serious about using a PC as my main dev machine. Things have changed a lot in almost 20 years, and especially recently. Apple is…
We’ve built the foundation of the QuickLife algorithm; now let’s make it go fast. This is going to be a longer episode than usual because we have a large volume of code to get through to perform a relatively straightforward … Continue reading →
Learn about invoice factoring and invoice discounting in greater depth.
The Promise object has many useful functions like all, resolve, reject, and race — stuff we use all the time. One function that many don’t know about is Promise.allSettled, a function that fires when all promises in an array are settled, regardless of whether any of the promises are resolved or rejected. Promise.all is great but then isn’t called if…
Ruby's Warning module learned some new tricks in Ruby 2.7: Support for muting different categories of compile warnings has been introduced. This is a mechanism on top of the warning level reflected by the $VERBOSE variable. You can now silence deprecation warnings: These are aspects of the language which will be removed or changed in a future version of Ruby.…
2 Aug 2020
Learn about the Morris Algorithm, a probabilistic method for counting large events with minimal memory. Explore its math and implementation.
You can play with algorithm here and download images. It took me ages to find appropriate pens to plot this one. Also check the blog post about how it is made. On the images below you can see two different drawings. Created: August 2020 Size: 42x30cm Paper: Fabriano Black Black 300gsm Pens: Sakura Gelly Rolls
1 Aug 2020
Thanks to the complete GitHub Actions for MSYS2, it is easier than ever to construct a continuous integration setup for building with compilers and toolchains which can run on MSYS2.
31 Jul 2020
Do you still find financing or banking a hassle in your business? With fintech, they don't have to be. We spoke with the Small Business Commissioner, Capital on Tap, and Tide to show you how.
[Webinar] An introduction to fintech for small businesses: Payments, reconciliation & forecasting
GoCardlessDo you still find payments, reconciliation, or forecasting a hassle in your business? With fintech, they don't have to be. We spoke with the Small Business Commissioner and Intuit to show you how.