Tuesday, December 07, 2021

cloud offline?

Amazon services down for thousands of users

Amazon Web Services » Service Health Dashboard

AWS Post-Event Summaries

AWS ECS price: EC2 vs Fargate

Fargate Pricing in Context | Trek10

Fargate costs more per GB of RAM and vCPU, however costs are directly metered off of provisioned container RAM & CPU (each variable is metered independently) and you are never paying for unused cluster capacity. Therefore the key variable in comparing Fargate pricing to EC2 is cluster reservation rate.

Theoretical cost optimization by Amazon ECS launch type: Fargate vs EC2 | Containers

Monday, December 06, 2021

Markdown editor: marktext


Simple and Elegant Markdown Editor
Focused on speed and usability.



Table Block
Support GFM table block, you can remove/add rows and columns.

Support Flowchart, Sequence diagram, Gantt diagram, Vega chart.

Inline Formats
Support CommonMark and GitHub Flavored Markdown Spec.

Math Formula
Markdown extensions math expressions (KaTeX)

Code Block
Support GFM code fense, highlight by prismjs.

Golang: Postgres without ORM

Back to basics: Writing an application using Go and PostgreSQL

Journey in Dropping the ORM (in Golang)

Over time ... kept having to increase the memory capacity of our instances, eventually reaching the maximum and then watching our containers die. As the data volume grew we saw the number of containers grow in somewhat linear fashion. One would hope the backend would instead scale sublinearly.

The ORM was a natural culprit: it’s easy to see that many ORMs will make use of object introspection to build SQL statements, hydrate results, or both. Gorm’s memory footprint is extreme although sadly not uncommon.

Jupyter Docker images

Jupyter Docker Stacks — docker-stacks latest documentation

jupyter's Profile | Docker Hub

jupyter/base-notebook - Docker Image | Docker Hub

jupyter/minimal-notebook - Docker Image | Docker Hub

Sunday, December 05, 2021

AWS CloudFormation: template from existing resources

aws feature; not simple, but at least possible



During this import operation, you need to provide the following.

  • A template that describes the resources that will be in the new stack and the resource configurations. Each resource in your template must have a DeletionPolicy attribute.

  • A unique identifier for each target resource. Visit the appropriate service console to obtain unique identifiers.


third party tool

AWS CloudFormer | Generate AWS CloudFormation Template with Existing Resources

GitPod: cloud based dev env with VS Code in web browser

 Remote Development in the Cloud with Gitpod & OpenVSCode Server with Sven Efftinge - Software Engineering Daily podcast intreview


"Spin up fresh, automated dev environments for each task, in the cloud, in seconds."

VS Code in the browser for everyone

gitpod-io/gitpod: Gitpod automates the provisioning of ready-to-code development environments.

"Gitpod is an open-source Kubernetes application for ready-to-code developer environments that spins up fresh, automated dev environments for each task, in the cloud, in seconds. It enables you to describe your dev environment as code and start instant, remote and cloud-based developer environments directly from your browser or your Desktop IDE.

Tightly integrated with GitLab, GitHub, and Bitbucket, Gitpod automatically and continuously prebuilds dev environments for all your branches. As a result, team members can instantly start coding with fresh, ephemeral and fully-compiled dev environments - no matter if you are building a new feature, want to fix a bug or do a code review."

Visual Studio Code

Saturday, December 04, 2021

AWS Amplify Studio – Figma to Fullstack React App With Minimal Programming

AWS Amplify announces AWS Amplify Studio, a visual development environment that offers frontend developers new features (public preview) to accelerate UI development with minimal coding, while integrating Amplify’s powerful backend configuration and management capabilities. Amplify Studio automatically translates designs made in Figma to human-readable React UI component code. Within Amplify Studio, developers can visually connect the UI components to app backend data.

CSS for Printing (to PDF)




<div class="divFooter">UNCLASSIFIED</div>


@media screen {
  div.divFooter {
    display: none;
@media print {
  div.divFooter {
    position: fixed;
    bottom: 0;

CSS modules that have been created not for use in web browsers, 
but to deal with printed and paged media.

Web Assembly: Photoshop => web

Photoshop's journey to the web

Photoshop is one of those "big C++" apps that was considered not portable to web.

Now thanks to WASM, so of professional photo editing features are available without installing app!

 Adobe brings a simplified Photoshop to the web - The Verge

Adobe is bringing Photoshop and Illustrator to the web, letting you make changes to documents hosted in the cloud without having to download them and open up the app.

Photoshop ships major updates across desktop and iPad apps; Extends Light Editing and Collaboration features to the web (beta)|Adobe

Friday, December 03, 2021

PDF tool: PDFKit.js


PDFKit is a PDF document generation library for Node and the browser that makes creating complex, multi-page, printable documents easy. The API embraces chainability, and includes both low level functions as well as abstractions for higher level functionality. The PDFKit API is designed to be simple, so generating complex documents is often as simple as a few function calls.

You can also try out an interactive in-browser demo of PDFKit here.

Check out pdfkit.org for a full tutorial to see for yourself what PDFKit can do.


The purpose of this library is to provide a React component that works as a PDF Reader. It's basically a React wrapper from the pdf.js library from Mozilla.

"The AI Wars": neural nets vs symbolic AI

quite good story behind "paywall" (open in incognito mode to access)

The AI Wars: lessons from the conflict that paralyzed the field | by David Goudet | Towards Data Science

Frank Rosenblatt vs Marvin Minsky

"the research on AI experienced several hype cycles, followed by disappointment and criticism, followed by funding cuts, followed by renewed interest years or decades later. The term “AI Winter” was coined by analogy to the idea of a nuclear winter.

When the perceptron was being studied, new approaches, including symbolic AI emerged. The core problem that unleashed this “AI War” was that different groups found themselves competing for funding and people, and their demand for computing power far outpaced available supply"

What the researchers didn’t know when they were working on this problem, is something that the AI community discovered later: to recognize complex patterns we need more than one layer of hidden neurons, and this is the key concept of what we know today as Deep Learning.

The book Perceptrons, published in 1969 by Marvin Minsky and Seymour Papert, presented mathematical proofs which acknowledge some of the perceptron’s strengths while also showing major limitations.

Thursday, December 02, 2021

foldable PC: ThinkPad X1 Fold

ThinkPad X1 Fold PC | Lenovo US

The world’s 1st foldable PC, 13" 2K OLED display

Wednesday, December 01, 2021

Monday, November 29, 2021

podcast: AWS.FM

excellent podcast!



podcast interview

Episode #120: Mastering AWS Freelancing with Adam Elmore

12 AWS certifications in 6 weeks

free online book: Software Engineering at Google

book: Software Engineering at Google


podcast interview with the author


Abseil is an open source collection of C++ libraries drawn from the most fundamental pieces of Google’s internal codebase. These libraries are the nuts-and-bolts that underpin almost everything Google runs. Bits and pieces of these APIs are embedded in most of our open source projects, and Abseil aims to bring them together into one comprehensive project. Abseil encompasses the most basic building blocks of Google’s codebase: code that is production-tested and will be fully maintained for years to come.

Sunday, November 28, 2021

AWS re:Invent, BugBust Challenge

AWS BugBust

Python and Java Developers of all skill levels, can compete to fix as many software bugs as possible and win milestone prizes, glory and the title of the Ultimate AWS BugBuster!

The challenge will start at 10AM PST on 11/29.


Friday, November 26, 2021

Multithreaded JavaScript with Workers

 Multithreaded JavaScript: book @ O'Reilly

Thanks to recent advancements in the language--such as the Atomics and SharedArrayBuffers objects and Web Workers in the browser--JavaScript is now a multi-threaded language. 

Multithreading Javascript. A Look Into Web Workers | by Max Peng | Techtrument | Medium

Multithreading with NodeJS is a reality! | by Rรฉmy Villulles | Level Up Coding

Tuesday, November 23, 2021

multi-cloud, multi $B DoD project

DoD picks Amazon, Microsoft, Google and Oracle for multibillion dollar project to replace JEDI Cloud

The Defense Department on Friday issued formal solicitations to Amazon Web Services, Microsoft, Google and Oracle for its highly-anticipated Joint Warfighting Cloud Capability (JWCC) program, the multibillion dollar project intended to replace its ill-fated JEDI Cloud contract.

Monday, November 22, 2021

Azure Logic Apps & Power Automate (low code, workflow tools)

What Is Azure Logic Apps

"logic apps" is a low code workflow platform for building apps

"power automate" is a application building tool that is using logic apps under the hood

Power Automate vs Logic Apps | Microsoft Docs

Power Automate and Azure Logic Apps are workflow services that can automate your processes business or system and integrate with Microsoft and 3rd party services with over 300 connectors. These powerful services are designed to get you going quickly, building the workflow between business services providing that familiarity without having the steep learning curve.

Power Automate provides a user-friendly and focused experience within Office 365 that can easy to get end-users going once assigned an appropriate license.

Azure Logic Apps provide the same user-friendly designer surface similar to Power Automate with the option to build complex integration solutions, utilise advanced development tools, DevOps and monitoring, if required.

Both options aim to significantly reduce the effort and quickly build and automate processes between services, allowing you to focus on higher-value tasks.

Power Automate: Office 365 tool

Power Automate Web Designer

Logic Apps: dev tools

Mobile view of Power Automate

Integration and automation platform options in Azure | Microsoft Docs

Power Automate, Logic Apps, Functions, and WebJobs

Overview for Azure Logic Apps - Azure Logic Apps | Microsoft Docs

Group and run actions by scope - Azure Logic Apps | Microsoft Docs

Pricing - Logic Apps | Microsoft Azure

What Is Azure Logic Apps

Azure podcast Episode 389 - Azure Logic Apps

Azure Logic Apps documentation | Microsoft Docs

Introduction to Azure Logic Apps - Learn | Microsoft Docs

GitHub - Azure/logicapps: Azure Logic Apps labs, samples, and tools

Sunday, November 21, 2021

No Code, Low Code => Smart Code?

Old and modern "low code" tools and solution all seem to assume that efficiency could be increased by hiding complexity, and making it "easy" to produce code without real knowledge. 

The reality is that successful tools "empower" knowledgeable developers to create better solutions.
So focus on "smart" tools for good "developers" will be (at least) 100x more productive 
that "easy" tools for "non-developers". 

Just my 5c... supported by evidence of many successful startups and sw companies. 

and here is a informative, while opinionated view from O'Reilly...


"Programmers know their jobs won’t disappear with a broadscale low-code takeover (even low-code is built on code), but undeniably their roles as programmers will shift as more companies adopt low-code solutions."

surprising marketing didn't (yet) "invent" TLA (three-letter-acronym) for it 


 VW shows why you'd be dumb to buy one of its ICE cars now - Electrek

Saturday, November 20, 2021

AWS Copilot vs. GitHub Copilot (confusing?)

"naming is hard"...

AWS Copilot (tool for ECS deployments)

AWS Copilot is designed for both existing ECS users, and new ECS users who want to move beyond manual management of lower-level infrastructure, and instead just start thinking about their application and its lifecycle. Copilot creates modern application deployments

GitHub Copilot (AI powered code tool)

With GitHub Copilot, get suggestions for whole lines or entire functions right inside your editor.

React: replace useState with useRef

 How to replace useState with useRef and be a winner

React depends on state to make your app dynamic. That is the core functionality of a front-end framework

When not to use React state
  • non-react state is easier to work with. Updates to non-react state are synchronous — no need to put stuff that reads an updated value

  • updating a non-react state doesn’t trigger a re-render.

  • Not using react state helps avoid a problem I call render thrashing

  • react state carries more semantics, and overusing it makes your app seem more complex.

useRef returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component.

Friday, November 19, 2021

book: Git for Programmers by By Jesse Liberty

Jesse Liberty is well known author of many books about many programming technologies over many years, mostly Microsoft related. Apparently moving to Git, likely a useful book.

Git for Programmers | Packt

Git for Programmers @ OReilly Learning

Thursday, November 18, 2021

Dagger: "universal deployment engine"

 A universal deployment engine with Sam Alba & Solomon Hykes, co-founders of Dagger (Ship It! #23) |> Changelog

...talking to Sam Alba, Docker’s first employee, and Solomon Hykes, the Docker co-founder. Together with Andrea Luzzardi, they are the creators of Dagger, a universal deployment engine that trades YAML for CUE, and uses Buildkit as the runtime.

Dagger docs - request early access via dagger.io

Introducing Buildkit - 2017 - Tรตnis Tiigi

Wednesday, November 17, 2021

GitLab vs GitHub value

 GitLab jumps 35% in its Nasdaq debut after code-sharing company priced IPO above expected range

 The stock opened closed at $103.89, pushing GitLab’s market cap to $14.9 billion

Microsoft acquired GitHub in 2018 for $7.5 billion, and since that time GitLab has grown rapidly as the only big independent player in the market

Microsoft’s Stock Gained 240% In Last 3 Years, Will The Gains Continue?

7.5 * 3.4 = $25B

Weather API

Top 8 Best Free Weather APIs (2021) [25+ Reviewed]

Pricing - OpenWeatherMap

60 calls/minute
1,000,000 calls/month

Tuesday, November 16, 2021

React Final Form

Final Form.org

Framework agnostic, high performance, subscription-based form state management

React Final Form

GitHub - final-form/final-form: ๐Ÿ Framework agnostic, high performance, subscription-based form state management

Zero dependencies

✅ Framework agnostic

✅ Opt-in subscriptions - only update on the state you need!

✅ ๐Ÿ’ฅ 5.1k gzipped ๐Ÿ’ฅ

React Final Form with Erik Rasmussen podcast @ sw eng daily

Monday, November 15, 2021

JavaScript + Rust, Go, WASM

 Rust Is The Future of JavaScript Infrastructure – Lee Robinson

Rust is a fast, reliable, and memory-efficient programming language. It's been voted the most loved programming language six years in a row (survey). Created by Mozilla, it's now used at FacebookAppleAmazonMicrosoft, and Google for systems infrastructure, encryption, virtualization, and more low-level programming.

Rust helps developers write fast software that's memory-efficient. It's a modern replacement for languages like C++ or C with a focus on code safety and concise syntax.

Deno, created in 2018, is a simple, modern, and secure runtime for JavaScript and TypeScript that uses V8 and is built with Rust. It's an attempt to replace Node.js, written by the original creators of Node.js. 

esbuild, created in January 2020, is a JavaScript bundler and minifier 10-100x faster than existing tools written in Go.

The Rust version probably could be made to work at an equivalent speed with enough effort. But at a high level, Go was much more enjoyable to work with. This is a side project and it has to be fun for me to work on it. – Evan, Creator of esbuild (Source)

Rome, created in August 2020, is a linter, compiler, bundler, test runner, and more, for JavaScript, TypeScript, HTML, JSON, Markdown, and CSS. They aim to replace and unify the entire frontend development toolchain. It's created by Sebastian, who also created Babel.

Rome is currently written in TypeScript and runs on Node.js. But they're now working on rewriting in Rust.