16bits 2.4GHz 2d 3blue1brown 3dmodel 3dprint 3dprinter 3dscan 64bits 8bit AI AST ATX BFS CAM CRDT DAW ECS Fibonacci GA GPT3 I2C IA LED LLM MCTS ML NN PID SPI SVD UML academia accessibility accuracy acpi adventure agile algebra algorithm allocator alphabet amd amiga analog android animal animation anime ansible antenne api appimage application arcade arcade-hardware arch architecture archive arduino arm arm-hardware array art ascii asio asm astronomy async atari atomic audio audio-hardware automation avx backdoor backup base64 bash battery bd benchmarking binary binding biology bios bits blender bloat blob block blog blog-code blog-electronic blog-games blog-people bluetooth book boolean boot bots brightness buffer build-system burnout bus c++ c++-syntax c64 cache cad calculator calendar calibration calipers camera capture-the-flag career cd cgroup cgroups chat chemical chess chiptune choregraphy chrome circle clean cli client climate-war clock cluster cnc co2 code code-review codec codegolf codingame codingames cogip collision color combinators comic comix comments compiler complex-number complexity compression computer computer-vision concept concurrency config connect4 constant content contest contract control coroutine course cp cpu crc creative-coding cricut crop cross-compile crt crypto crystal csv cube cuda cura curl curve cycle d3.js dashboard data data-structure date daylight db dbus deb deboucing debug debug-android debug-c++ debug-war deep-learning demoscene desktop despair.com dev devil devops diagram dictionary diff diffusion disk display distance distributed dlang doc docker doom draft draw drawing driver drm drone drugs drums duplicate dvd dvi earth editor edm edu effect effet eigen-value elec electronic elf ellipse emulator encoder encoding energy engine engineering english enterprise entropy env epaper error error-correction error-handling esp32 ethernet event evil evolution exception exec exit expert exploration ext4 eyes face failed-install failure fastware ffmpeg fft field figurines file file-manager filesystem filter finance find firefox firmware fish float flood-fill foldable font food food_for_thought format fpga fractal freebox freebsd freecad freecad-cam freedom fstab fun functional fuzzer fuzzy game-engine gameboy games games-hardware gc gcode gdb gears generation generative-AI genetic genetic-algorithm gesture ghidra gif git github glsl godot golang google-alt gps gpu graph graphic gravity green grep grid gui guitar h2 hamming hands-free handwriting happiness hardware hardware-tools hash haskell hdmi headless hex histogram history home home-automation homemade homography how-to html http human i2c ide identity ikea image image-lib in-progress index indies info init inkscape inline input integer intel internet interpolation interrupt intersection interview io-stream ioccc iso iterate java jekyll jit job jpeg js json jupyter jwt jwz jxl k-means k8 kernel keyboard keyword kids kinect klipper knot knowledge krita kvm lab labyrinth lack lang laptop laser latency law lazer lcd ldap learn leetcode lego lense lexic lib lib-c++ library life light line linker linux linux-hardware linux-system lisp literals lock logger lookup loop lua lutris macintosh macos-system macro magnetic mail make maker malloc management manager manual map markdown market mask math matrix maze meaning mechanical mechanics medecine median memory mental-model merge mesh metadata metal microscope microsoft midi mime mindmap minecraft mold monad money monitoring monolith montecarlo morton-code motor mouse mouseless mov movie multi multiplexing multiply music mythical-man name namespace nas nearest-neighbor network networks nfs node.js note-taking notebook null number ocr office offline oneliner online open-source opencv opengl openscad opinions optimize orchestration org p2p pack package packer pacman paint palette pam paper papers parabola paradox parallax parallel parquet parser partition password pathfinding pattern pc-hardware pdf penrose performance petrol phone photo photogrammetry physic physics piano pico8 pid pinball pincab pinout pipe pixelart pla plane plastic platform playground playlist png pods pointer poisoning polynomial port pose-estimation power power-plant prime principle printer printf privacy probability process processing product profiler programmer programming progress-bar project prolog promise prompt protobuf psychology pump purpose puzzle python qemu qr-code qt5 quake quantization queue quine quote radio raid random range raspberry-pi rate-limit ray-casting ray-marching raytracing rdp react react.js read reading recognition recorder recovery recurse recursive recycling red refactor reflection reflex regexp registry remarkable remote rendering repair repl research resize retro reverse rgb rj45 rle robot rocket roomba rs232 rsi rsync rubik ruby rust safety samba sample sandbox sanding sat scala scalable scan schedule schell sci-fi science screen screw script scrolling scult search security segmentation self sensor serial serialization server service sfml shader shape shell shield shift shop signal sim simplicity simulation single-header skew slicer social socket software solar solver sort sound space speech speed sphere spring sprite sql sqlite ssh stabilisation stable-diffusion stacktrace startup statistic statue stepper stl storage strace streaming string stroke structure stylus sustainability svg switch symetry sync synology syntax synth synthesis system systemd tab table tablet tags tape team technic telemetry temperature template tensorflow term ternary terrain tesseract test tetris text theorem thread tic-tac-toe tilemap timelapse timer toml tools top topology tor torrent touchpad toy trace tracker transform translate trap trash tree treemap triangle tricks trust truth try tts tuple turing-complete tutorial tv twitter typescript ubuntu unit unsafe upscaler usb utf8 uuid vcs vector vector-graphic version video viewer vinyle visualizer vm vnc voice voronoi voxel voyager vpn vr vscode water weak web webcam wheel wifi wii wikipedia windows wine wood word2vec work workflow world write x86 xkcd xml xor yaml yduf youtube zfs zig zigbee zip zombie

Anatomy of a credit card rewards program

When you use a reward card, the merchant is charged a higher fee than if you used a “normal” card. Simply by putting a different branding on the plastic you pay with, the credit card issuer gets more money from each transaction. - HN

Psst: Paper-Based Secret Sharing Technique

a system for storing secrets without a single point of failure. psst helps the user to split a secret into up to four parts. Each part in isolation reveals nothing about the secret (except its length). Any two parts combined allow the secret to be restored. - github / HN

16bits vector shift ? (AVX)

To shift 16-bit values by a variable amount (specified by a vector), you have to take an alternative approach because no _mm256_sllv_epi16 intrinsic exists in AVX2. - SO

Hellandizing

Put test points between well defined states to crash the application at random (or at will). - article / HN

German Strings

If string are simple, then why does every programming language have their own slightly different string implementation? - article

Courage

Courage is knowing it might hurt and doing it anyway.
Stupidity is the same.

And that’s why life is hard.

Rotation

If you’ve done any 3D programming, you’ve likely encountered the zoo of techniques and representations used when working with 3D rotations. Some of them are better than others, depending on the situation. - Exponentially Better Rotations (2022) / HN

gRPC

Google could not function as a company without protobuf. It is ingrained deeply into every inch of their stack.

Likewise, gRPC is the main public-facing interface for GCP. It’s not going anywhere. - The Ugly Parts

Tracy Profiler

A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications. - github

Skia Graphics Engine 🚧

Skia does one thing really well, 2D graphics.
The original “Skia” was the development name for QuickDraw GX.
This Skia—which, again, doesn’t share code with either of its predecessors—is a kind of version 3, with a tribute name back to that original Skia. - HN / wikipedia

GLFW (GLFrameWork) 🚧

an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events. - Home

Code review

Feedback is critical to performing good work as a team. Good feedback cultivates quality work and professional growth. Bad feedback degrades quality and erodes relationships. - Open Source Code Reviews

Landsat 7

End of an era: Landsat 7 mission takes final images - usgs / HN

Organ pipe physics

Physical modelling has come a long way since it first appeared. Many of the instruments included in the Arturia V Collection (one of the most common collections of instrument plug ins) are made using physical modelling - HN

Microsoft

Everything authenticated by Microsoft is tainted - HN

The Art of Finishing

Or, you could stop beating yourself up about it and reframe the whole activity as a creative release. Nobody else cares if you finish it, why should you? My neighbor died with a project car parked in his driveway. It had been there for years. Every so often he got out there and worked on it with his grandson. Who among us would call that time wasted? Why not dust off Project Foo on a Saturday afternoon, and just tinker with the fun parts? - HN

Water

All of Earth’s water in a single sphere! - USGS

Image search

  • Multicolr - used MulticolorEngine to extract the colors from 20 million Creative Commons images on Flickr to make the images searchable by color.
  • TinyEye - reverse image search. Find where images appear online.

K-Means Clustering

an unsupervised machine learning technique that seeks to group similar data into distinct clusters to uncover patterns in the data.

Color Quantisation

Color quantization is primarily used in computer graphics research literature; in applications, terms such as optimized palette generation, optimal palette generation, or decreasing color depth are used. Some of these are misleading, as the palettes generated by standard algorithms are not necessarily the best possible. - wikipedia

Kali (linux)

an open-source, Debian-based Linux distribution geared towards various information security tasks - Home

Organisation

The incompetent group together, they have to in order to survive.
The competent don’t group together, they don’t need to. They can take care of themselves. The former uses their power as a group against the individuals in the latter. - HN

MacOS

I’m pretty sure I’m not alone in wanting to customize the hell out of OSX. - r/MacOS

DNS

Why is DNS still hard to learn? - jvns

# Armbian

Optimized Debian and Ubuntu Linux images for ARM-based SBCs
Armbian is the opposite of Raspbian: Raspbian has dozens of contributors to focus on a single SBC platform. Armbian has a dozen contributors to focus on 100+ SBCs spread over 30 platforms. - archive

Spider

No trapdoor spider learns how to build a trap. No orb weaver learns how to spin a web. Trap/web building behavior is entirely programmed in their DNA.

If spiders can have complex behaviors hard-coded, humans certainly do too. - HN

AST Error handling

The D language compiler uses a technique I call “poisoning” which has greatly reduced cascading error messages. The idea is whenever an error is found in an AST node, the AST node is replaced with an “error” node. Any combination of an error node with another node is replaced with an error node. Error messages for error nodes are suppressed.

It works far better than attempting to repair the AST into some plausible state.

It’s analogous to the propagation of NaN values in floating point code. - HN

Coccinelle

a tool for pattern matching and text transformation that has many uses in kernel development, including the application of complex, tree-wide patches and detection of problematic programming patterns. - kernel.org

Boundary Representation (b-rep)

Compared to the constructive solid geometry (CSG) representation, which uses only primitive objects and Boolean operations to combine them, boundary representation is more flexible and has a much richer operation set. In addition to the Boolean operations, B-rep has extrusion (or sweeping), chamfer, blending, drafting, shelling, tweaking and other operations which make use of these. - wikipedia

Degraissant

White spirit / mineral turpentine - A mixture of aliphatic, open-chain or alicyclic C7 to C12 hydrocarbons, white spirit is insoluble in water and is used as an extraction solvent, as a cleaning solvent, as a degreasing solvent and as a solvent in aerosols, paints, wood preservatives, lacquers, varnishes, and asphalt products.

  • The word “mineral” in “mineral spirits” or “mineral turpentine” is meant to distinguish it from distilled spirits (alcoholic beverages distilled from fermented biological material) or from true turpentine (distilled tree resin).
  • used for cleaning and degreasing machine tools and parts, and in conjunction with cutting oil as a thread cutting and reaming lubricant.

Isopropyl alcohol / isopropanol - Isopropyl alcohol, an organic polar molecule, is miscible in water, ethanol, and chloroform, demonstrating its ability to dissolve a wide range of substances including ethyl cellulose, polyvinyl butyral, oils, alkaloids, and natural resins.

  • dissolves a wide range of non-polar compounds. It evaporates quickly and the typically available grades tend to not leave behind oil traces when used as a cleaning fluid unlike some other common solvents. It is also relatively non-toxic. Thus, it is used widely as a solvent and as a cleaning fluid, especially where there are oils or oil based residues which are not easily cleaned with water, conveniently evaporating and (depending on water content and other variables) posing less of a risk of corrosion or rusting than plain water. Together with ethanol, n-butanol, and methanol, it belongs to the group of alcohol solvents.

Nema17

NEMA est l’abréviation de National Electrical Manufacturers Association, qui établit des normes pour la taille et les performances des moteurs pas à pas. Dans cette norme, « 17 » fait référence à la taille de la surface de montage avant du moteur, qui est d’environ 1,7 pouces sur 1,7 pouces (ou environ 43 mm sur 43 mm). - steppermotor.fr

Debugging the n-th call

the easiest way to debug a crash on the nth call of a piece of code is to set a hardware breakpoint - yduf

Syntactic Sugar

“The best things are still a reasonably small core of concepts, with the development team working hard to “factorize” any new feature into those concepts, and the flexible syntax that is instrumental for making the core small”

this is actually the definition of syntactic sugar, from a language design point of view. People often use it derogatorily to refer to bits of syntax that they simply don’t like, but as a term of art it refers to syntactic elements that are introduced in an effort to provide new ergonomics—new ways of working in a language—without altering the language’s fundamental primitives. - HN

Stack Unwinding

Given the current register state for a thread, and read-only access to memory, what would the register state hypothetically become if the current function was to immediately return and execution was to resume in its caller? - Linux/ELF .eh_frame from the bottom up

Balancing Cube

This cube manages to balance itself on a corner, and can simultaneously rotate around its axis in a controlled manner. It does so using clever controls and a set of three reaction wheels. - blog / HN

Blub Paradox

some languages are more powerful than others. Posits a hypothetical middle of the road language called Blub.
As long as our hypothetical Blub programmer is looking down the power continuum, he knows he’s looking down. Languages less powerful than Blub are obviously less powerful, because they’re missing some feature he’s used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn’t realize he’s looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub. - Blub Paradox / HN

The BOYS

Si tu mets pas les mains dedans et que tu laisses les connard gerer la merde, alors tu fais partie du problème - The Boys (s2e3)

Runaway

He Who Knows Does Not Speak

Cold-blooded software

Certain technology decisions lead to projects that are warm-blooded: everything is great when there’s constant motion on the project, generating heat. But put warm-blooded software in the freezer, and you’ll pull out a corpse six months later. - Cold-blooded software / HN

Enigma

Arthur Scherbius (30 October 1878 – 13 May 1929) was a German electrical engineer who invented the mechanical cipher Enigma machine.[1] He patented the invention and later sold the machine under the brand name Enigma. - wikipedia

Product Strategy

“Build it and they will come” is almost never a winning strategy. Of course sometimes it works, you build the right thing at the right time and it goes viral, but most of the time you get crickets even if it gets to the top of Product Hunt or Hacker News (neither of which are of any importance outside of tech circles).

The right way is to talk to prospective customers first in a given niche, listen carefully to their problems, and figure out which problems are worth solving, i.e. you have the skills and resources to solve them and people will pay you to solve them. This is difficult if you don’t have a network or experience in specific industries so tech people just wait around for a business person to tell them what to build instead. - HN

Setting Mesh Resolution

If you just go to the file menu and export, FreeCAD just creates a STL file from the visualisation mesh. The mesh tessellation was earlier simply defined from the FreeCAD PartDesign WB visualisation setting. There was a feature request for on STL export to collect that value from the individual PartDesign “Body” objects’ individual visualisation “property” rather than the FreeCAD setting value, which is what happens now IF we are talking about exporting a PartDesign Body object. If we are talking about Part WB objects, then the value is still collected from the PartDesign visualisation setting as previously explained. - forum

Linux namespace

A Linux namespace is an abstraction over resources in the operating system. We can think of a namespace as a box. Inside this box are these system resources, which ones exactly depend on the box’s (namespace’s) type. There are currently 7 types of namespaces Cgroup, IPC, Network, Mount, PID, User, UTS. - A deep dive into Linux namespaces

Code is run more than read

It is basically always the case that the long-term costs of keeping a system working reliably vastly exceed any inconveniences you encounter while building it. - blog / HN

Zstd

These days it generally is better to prefer Zstandard to zlib/gzip for many reasons. - HN / facebook/zstd

Talk to it like a Human

I see lots of people trying to prompt with incomplete sentences, not capitalizing, using slang, bad grammar, imprecise terminology etc. And it still works. However, I find that you get a noticable a quality boost if you use proper English and treat it more like a human. - HN

MAME

a multi-purpose emulation framework, which purpose is to preserve decades of software history. - Home

Donkey Kong

the product of Nintendo’s efforts to develop a hit to rival Pac-Man (1980) and break into the North American market. - wikipedia

RetroArch

a frontend for emulators, game engines and media players.

ArkOS

an initial fork of The Retro Arena, Short for Another rk3326 rockchip Operating System. Ubuntu base - ArkOS

Firejail / Sandboxing

a SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities. - github

Coroutine (Lua)

Want to spice up your game with animated scene between bouts of gameplay? Cutscenes are uncommon on small platforms like PICO-8. There’s no room for full motion video, so a scene must be described in code or with some kind of cutscene engine. This is made much easier with a Lua feature added in PICO-8 v0.1.6: coroutines. - CutscenesAndCoroutines / Coroutines

Collision (Pico-8)

Collisions in games aren’t just about hitting a wall, they’re about breaking through barriers, smashing expectations, and crashing into new adventures! - ChatGPT

Scumm-8

a “demake” of the SCUMM engine (which powered most of the classic LucasArts adventure games, such as Monkey Island and Maniac Mansion) for the PICO-8 Fantasy Console - github

Compact Calendar

The Compact Calendar presents days as a continuous candy bar of time. Weeks are presented as a stack of available time with no gaps, making it easier to count-out days naturally as you think. - Home

TreeSheet

A “hierarchical spreadsheet” that is a great replacement for spreadsheets - TreeSheets

Debugging a compiler

The old and new backends coexisted, and we could use either for any given function in the compilation. Keith introduced an environment variable GOSSAHASH that specifies the last few binary digits of the hash of function names that should use the new backend. - binary search debugging of compilers

Bitwise binary search

Binary search is notoriously difficult to get correct. A 1988 study found that out of an informal sample of twenty computer science textbooks, only five contained a correct binary search algorithm. I haven’t checked, but I hope we are doing better now in 2022. Unfortunately off-by-one errors feel rather timeless to me. - Elegant and Fast

Plog

Pretty powerful logging library in about 1000 lines of code - github

BeeRef

BeeRef lets you quickly arrange your reference images and view them while you create. Its minimal interface is designed not to get in the way of your creative process. - github / HN

Cap’n Proto

Cap’n Proto is the result of years of experience working on Protobufs, listening to user feedback, and thinking about how things could be done better. - Home

VPinMame

PinMAME emulates the hardware found in almost every solid state pinball machine created from the earliest days of CPU-controlled machines (mid 1970’s) through 2014 (Stern SAM), with around 770 emulated unique Pinball machines and many more clones/revisions (overall more than 2700 sets). - github

DOF (Direct Output Framework)

DOF is a separate piece of software that you can install on your system to control feedback devices. It’s not really a full separate program; it’s more of an add-on that works together with Visual Pinball and other software. DOF handles the communications between the pinball software and your output controller devices. - DOF Setup

B2S (Backglass 2nd Screen)

The B2S Server system files are used to run .directB2S backglasses for the open source pinball table editor and simulator called Visual Pinball. The B2S Server is a small piece of the puzzle in the virtual pinball universe. - wiki / github

iptable

All modern operating systems come equipped with a firewall – a software application that regulates network traffic to a computer. The utility firewall developed for Linux systems is iptables. - Iptables Tutorial

VFS (Linux)

Everything does pathname lookups all the time, it’s hugely performance-critical, and it’s very much one of those areas where you also want to scale well in SMP environments, and it has lots of complexity in locking. And you very much do not want to do any IO, so caching is very important. In fact, pathname lookup is so important that you can’t leave it to the low-level filesystem, because we have 20+ different filesystems, and having each of them do their own caching and their own locking would be a complete disaster. - linus about the VFS

Offset & Thickness

FreeCAD: How to create thick walled and hollowing out objects and how to prevent offset failure - youtube

Thinking Path

Be Nice to Spiders When everyone else is afraid or uncomfortable or angry about something, you don’t have to be. - HN

LoRa

LoRa (from “long range”) is a physical proprietary radio communication technique. - wikipedia

Meta's Segment Anything (SAMIST)

Segment Anything Model (SAM) produces high quality object masks from input prompts such as points or boxes, and it can be used to generate masks for all objects in an image. - SAM.cpp / HN

Planet Lana

A teenage girl Lana and her cat companion Mui explore their planet invaded by hostile alien machines. - wikipedia

Blackmagic DaVinci Resolve

DaVinci Resolve is a professional-grade video editing and color grading software that offers a comprehensive set of tools and features for post-production work. One key aspect of DaVinci Resolve is its support for Linux as a platform, making it an attractive choice for Linux users and professionals working in Linux-based environments. - DaVinci Resolve on Linux

Debug Graphic

RenderDoc is a free MIT licensed stand-alone graphics debugger that allows quick and easy single-frame capture and detailed introspection of any application using Vulkan, D3D11, OpenGL & OpenGL ES or D3D12 across Windows, Linux, Android, or Nintendo Switch™. - Home

Commercial Off the Shelf (COTS)

Ready-made hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of custom-made, or bespoke, solutions. - wikipedia

std::pair

a way to store two heterogeneous objects as a single unit. A pair is a specific case of a std::tuple with two elements. - cppreference.com

Ray-tracing voxels on a GPU

one technique is to use a single bit per voxel (so 32 voxels per uint32_t: a 0 bit means empty, a 1-bit means filled) and then put the whole voxel space into a Morton space-filling curve - HN

Skew Correction

Software based skew correction can help resolve dimensional inaccuracies resulting from a printer assembly that is not perfectly square. - klipper

A C Compiler in 512 bytes

SectorC is a C compiler written in x86-16 assembly that fits within the 512 byte boot sector of an x86 machine. It supports a subset of C that is large enough to write real and interesting programs. It is quite likely the smallest C compiler ever written. - xorvoid / HN

Modern perfect hashing for strings

Parsing HTTP verbs appeared to be the fastest when we use a compile-time trie: a series of nested switch statements. I could not believe that a perfect hash function is not better, and that led to a novel hashing approach that is based on the instruction PEXT (Parallel Bits Extract). - 0x80.pl / HN

n^m = m^n

Only one pair of distinct positive integers satisfy the equation $m^n = n^m$ - HN

Bounding Box & Intersection

Games use segment intersection tests all the time, for everything from line of sight to checking whether a bullet hit a monster. This is the most complicated of the four AABB tests, and is commonly known as a slab test. It finds the time of the line’s intersection with the near and far edges of each axis of the AABB. If they overlap, the segment is intersecting. - Intersection Tests in 2D

Optical Flow

Optical flow is the motion of objects between the consecutive frames of the sequence, caused by the relative motion between the camera and the object. It can be of two types-Sparse Optical flow and Dense Optical flow. - geeksforgeeks

Kalman Filter

The Kalman Filter is one of the most important and common estimation algorithms. The Kalman Filter produces estimates of hidden variables based on inaccurate and uncertain measurements. Also, the Kalman Filter predicts the future system state based on past estimations. - kalmanfilter.net

Network Cache

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. / example

Reversing Lua

Lua is a lightweight embeddable scripting language that is commonly used in a variety of applications. Because Lua has C bindings, it is very easy to embed. As a result of this, Lua is widely used in many applications(especially games). - Reversing Lua’s C API / r/lua

Metadata in SVG

As XML is extensible you can add attributes and element children as you wish. - SO

Cache (Down)/Performance

For most applications the optimal size of a (time-based) cache is around the point that keeping an item around in the cache is equal to the cost of accessing it again… A side effect of that is that systems that run faster, and therefore access each cached it more often, get more benefit out of a cache by pushing that set point out further… The bottom line is that both locality and memoization are huge contributor to the performance of systems, both positive and negative. - HN

Posix Signal

Unix Signals are a bit of a pain: They seem deceptively simple, but aren’t. They are asynchronous. Signals are delivered to any one thread that has not blocked the signal, including (and as a most likely candidate) the main thread. - Signal Handlers for Multithreaded C++

Traces vs. Snapshots

To my surprise, some programmers consider using print statements instead of debuggers as a wholly inferior means of debugging. As I view the debugging process, they are complementary techniques. But the issue is not really “print statements” versus “debuggers.” - It’s traces versus snapshots. / HN

Single Point of Truth

A better formulation of DRY is SPOT (Single Point Of Truth). Definitions (code, data) that represent the same “truth”, i.e. when one changes all have to change to represent a consistent truth, should be reduced to a single definition…
Having said that, the cost of creating dependency chains is often underestimated. Overly dogmatic adherence to SPOT/SST can lead you to make the wrong tradeoff on coupling two unrelated areas of your codebase to unify some trivial truth. - DRY is an over-rated programming principle?

Kolmogorov complexity

the Kolmogorov complexity of an object, such as a piece of text, is the length of a shortest computer program (in a predetermined programming language) that produces the object as output. It is a measure of the computational resources needed to specify the object, - wikipedia

Pointer compression in Oilpan

It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache. – Donald Knuth (2008)

PalmOS games

Palm OS developer releases source to classic games, 20 years after release - HN / github

Overton window

the range of policies politically acceptable to the mainstream population at a given time. It is also known as the window of discourse. - wikipedia

Debug Symbol Packages

If you are on Ubuntu Jammy (22.04) or later, you do not need to worry about installing debug symbol packages anymore. The Ubuntu project maintains a Debuginfod server, and GDB and other debuginfo-consumer applications support it out of the box. For more information about it, please refer to this page - ubuntu

APL lang

A language that doesn’t affect the way you think about programming is not worth knowing. –Alan Perlis

Pytorch

Facebook open-source and free framework based on the Torch library. - Home

What is a Tensor ?

A tensor is often thought of as a generalized matrix. That is, it could be a 1-D matrix (a vector is actually such a tensor), a 3-D matrix (something like a cube of numbers), even a 0-D matrix (a single number), or a higher dimensional structure that is harder to visualize. The dimension of the tensor is called its rank. - What’s the difference between a matrix and a tensor?

Ray Casting like Wolfenstein

Wolfenstein 3D is a big milestone in id Software’s evolution and PC gaming in general. In addition, because its technology is more primitive, the source code is more approachable for study and implementation. The game doesn’t have a real 3D engine but rather simulates a 3D world from a 2D map using a technique called Ray Casting. All the drawing is done by directly putting pixels on the screen. - Rustenstein 3D: Game programming like it’s 1992 / HN

Colored output term

Berlin and Kay found that, in languages with fewer than the maximum eleven color categories, the colors followed a specific evolutionary pattern. - Using terminal color code

StackTrace ≅

How to automatically generate a stacktrace when my program crashes - SO

OOM Killer

configurable daemon for Linux which is able to correctly prevent out of memory (OOM) and keep system responsiveness in low memory conditions. - nohang

Dolphin

an emulator for two recent Nintendo video game consoles: the GameCube and the Wii. - Home

MD5 quine

The image in this post displays its own MD5 hash - HN

Fisheye

Converting a fisheye image into a panoramic, spherical or perspective projection - article / HN

Compute Max / Horizontal operation (AVX)

If you find yourself needing to do horizontal operations on vectors, especially if it’s inside an inner loop, then it’s usually a sign that you are approaching your SIMD implementation in the wrong way. SIMD likes to operate element-wise on vectors - “vertically” if you like, not horizontally. - SO

C++ Memory

the main reason C++ can be faster than the Java memory management is that it has value objects, which can avoid a lot of heap allocation (and pointer chasing) even without replacing it with stack allocation. Consider for instance an array of objects, in C++ it can be a single allocation, while Java requires one allocation for each object, plus another allocation for the array itself. - HN

Taste vs Skill

Taste is knowing what is good — being able to recognize it.
Skill is the ability to build — to do what’s needed to do the work.

Taste and skill are totally independent. Movie critics (may) have great taste but they don’t know how to make movies themselves. Mediocre directors, in turn, might know exactly how to shoot scenes, but have no taste for making good ones. - Taste and Skills

Effacement électrique diffus

Contrairement à ce qu’on pourrait a priori penser, les grands gagnants de cet effacement diffus ne sont même pas les ménages équipés. L’effacement consiste en un report des consommations, ce n’est pas un dispositif d’économies d’énergie. Une prime scandaleuse / 60millions

Coding standard

A bad coding standard is worse than no coding standard. However an appropriate set of guidelines are much better than no standards: “Form is liberating.” - C++ Core Guidelines

Disabling the Intel Management Engine

The Intel Management Engine (‘IME’ or ‘ME’) is an out-of-band co-processor integrated in all post-2006 Intel-CPU-based PCs. It has full network and memory access and runs proprietary, signed, closed-source software at ring -3, independently of the BIOS, main CPU and platform operating system — a fact which many regard as an unacceptable security risk (particularly given that at least one remotely exploitable security hole has already been reported). - EFI Install Guide / HN

Condition in vector code

If a vector component is already finished, freeze it to avoid doing any further calculations on it. This is done by masking the finished components on any value assignment. The unfinished vector components will keep being updated, but finished ones won’t. - Controlling the Data Flow

ZIM files

an offline storage solutions for content coming from the Web - Home

C++ format

How to get fprintf results as a std::string w/o sprintf - SO

Turn are better than radians

There are 3 important measurement units for the plane angle and each of them is the most convenient unit for a certain class of applications: the right angle, the cycle and the radian. - HN / [0, 1] range

Wargames

A strange game. The only winning move is not to play. How about a nice game of chess? - Joshua

Boitier CPL Freebox

Associez les deux freeplugs

  • Connectez le câble secteur sur l’un des deux boîtiers puis branchez l’autre extrémité de ce câble sur une prise électrique murale (ou mieux, sur une multiprise branchée au secteur). Après avoir clignoté quelques secondes, la diode s’allume en rouge. -Une fois les deux Free-Plugs sous tension, procédez à leur association : maintenez enfoncé, sur un premier boîtier, la diode rouge pendant 2 secondes environ puis relâchez-la. La diode clignote : vous devez dès cet instant effectuer la même manipulation sur l’autre Free-Plug. Appuyez sur la diode pendant 2 secondes.
  • Les boîtiers FreePlugs sont associés lorsque leurs deux diodes sont éclairées en vert et fixes. Si un seul témoin vert est allumé et l’autre rouge, l’étape d’association des deux FreePlugs doit être relancée.

Toxic Productivity

Untangle your self-worth and your work

When you are passionate about your work, it can easily bleed into every other area of your life — you read about work-related topics in your free time, you think about a particularly challenging problem in the shower, you journal about your work, etc. It also changes ones social circle: hanging out with an ambitious and curious start-up crowd easily leads to work as the default topic in a gathering of friends. Once you have work deeply embedded in your interests and social life, it does not take a huge mental leap to “work is what defines me as an individual”.

That then leads to a precarious “all eggs in one basket” situation that leaves you vulnerable in cases of professional failure (“My start-up is not doing well; I am a failure”) or burnout (“I’m cynical about my work; nothing matters”).

It took quite a bit of time to disentangle my self-worth and my professional identity, but it makes life so much better. - Toxic Productivity / Many technical people mistake a passion for their craft with a passion for their work

B52's

The B-52 Stratofortress is expected to be in service well into the 2050s, and yet, the B-1 Lancer and the B-2 Spirit bombers are expected to retire in the early 2030s. The plane that spill nuclear around the world - Why This Obsolete Bomber Will Outlive EVERYTHING

Fraud Business

the elaborate handbooks and detailed scripts, the pig-butchering scams that emerge out of wrong-number texts aren’t the product of individual con artists or even of small informal groups. Rather, as has now been pretty extensively documented in the Asian press, they’re a key revenue stream of large hierarchical organizations — fraud businesses, basically — based in Southeast Asia.
Worse, the “dog-pushers” — the lowest-level scammers who initiate conversations with victims — are often workers from around the region, tricked into indentured servitude, held captive in dormitories and offices, and beaten by the managers and bosses. - What’s the deal with all those weird wrong-number texts? / HN

PID / Controle

Le contrôle automatique a permis le développement de machines rapides et précises. Mais il n’est pas qu’un simple dispositif technique, c’est aussi une passerelle vers quelque chose de plus grand… la cybernetique

Understanding CORS

First of all, the cross domain check is performed by the browser, not the server. - SO

Fluidd

a lightweight & responsive user interface for Klipper, the 3D printer firmware. - Home / github

Quadratic Equations

Numerically stable algorithm for solving the quadratic equation when a is very small or 0 - SE

MantaRay

an advanced open-source renderer. It uses modern rendering techniques to generate photorealistic images of complex scenes. - github / youtube

Baseboard management controller

BMC, an additional server embedded in your real server (or server class motherboard).
BMCs are horribly insecure and probably intentionally so. - HN

systemd user profile

systemd-homed allows you to create “portable” user profiles which contain everything pertaining to a particular user, including his password. So user profiles (including your files, etc) can be moved between computers simply by rsync’ing that directory, or putting it on a network share. - HN

Benchy

t’s visible on prints from all FFF printers on the market, cheap or expensive. It’s visible no matter the slicing software. It’s visible when printing from any material. - The Benchy hull line

Code Visualization

So here you are – sitting alone in the darkness, surrounded by the walls with mysterious texts, – and using the code editor to shine a beam of light onto this wall to read a small part of it. - IDE vs Fire Torch / HN

Pounds (lbs)

Pounds derives from the name of an ancient Roman unit of measurement, Libra pondo. Our word pound comes from pondo, and its seemingly unrelated abbreviation, lb, comes from the libra part.

Store banne

Originellement, la banne désignait la bâche qui était tendue devant les devantures de petits commerces, type épiceries. C’est ce qui a donné son nom au store banne

Pi - π

For JPL’s highest accuracy calculations, which are for interplanetary navigation, we use 3.141592653589793
by cutting pi off at the 15th decimal point… our calculated circumference of the 25 billion mile diameter circle would be wrong by 1.5 inches.
with our planet Earth, It would be off by the size of a molecule - How many decimals of pi do we need? / nasa-jpl

Software Architect

The Software Architect is responsible for defining the high level and detailed technical designs for supported teams and or programs. The Software Architect will collaborate with technical leadership to translate business requirements into technical solutions that align with product roadmap business goals and technology strategy. linkedin offer

Execute Task periodically

Cron, however, fails if your system happens to not be running when the appropriate execution time occurs.
Anacron insures that the task will be executed when your system is again active. However, the anacron frequency of execution can be no less than daily.

Systemd timers offer the best of both cron and anacron. - Systemd Timers for Scheduling Tasks / systemd/Timers

Voyager I/II

You carry more computing power in your pocket than what we have on Voyager. And by that, I don’t mean your smart phone. I mean you car key fob. - HN

Fingerprint

The point is that fingerprints may not mean the administrator of the device is present, in the same way that a password that cannot be changed also may not mean the administrator of the device has authorized an action. Fingerprints are useful in cases where the effort of copying a fingerprint is greater than the value of the target. They’re great for almost everyone with low value systems, like your average easily pickable front door lock. They’re good for keeping honest people honest.
Fingerprints are a problem for high value systems. - HN

dock

an alternative way to use Docker without writing config files - Home / HN

Distributed System

A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable. — Leslie Lamport

Plain text with lines

For the most part I’ve tried to make all the drawing-related features fade into the background when you’re not drawing. It’s plain text, it’s mostly just for writing. Infinite undo, autosave, modern features like that.- editor / HN

Smart Knob

an open-source input device with software-configurable endstops and virtual detents. - SmartKnob

Microcode

Processor microcode is akin to processor firmware. The kernel is able to update the processor’s firmware without the need to update it via a BIOS update. A microcode update is kept in volatile memory, thus the BIOS/UEFI or kernel updates the microcode during every boot. - Debian

Correctness vs Usefullness

I see a dichotomy between Correctness and Usefulness. You can certainly have both, but different people concentrate on either correctness or usefulness. - HN

Veloren

a multiplayer voxel RPG written in Rust. It is inspired by games such as Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress and Minecraft. - Home

Repeat object / pattern / sketch

Using the Lattice2 workbench we build sketch elements that are linked to the linear array which will repeat the sketch element within one single extrude. This could be a possible solution for such things as guitar frets allowing you change the length of the neck and the fret layout would automatically update. - youtube

Le Reflex du cintre

pendant l’accouchement les pressions exercé sur la tête du nouveau né lui font tourner la tête en fonction de comment il rentre dans le bassin de sa mère… cette rotation elle est indispensable pour l’accouchement pour que la tête et les épaules ai le plus petit diametre. - (commentaire) Le “réflexe du cintre” est… surprenant !

Server-Side SQLite

Litestream is an open-source project that makes SQLite tenable for full-stack applications through the power of ✨replication✨ - fly.io / HN

DIN rail vs French CLEAT

a metal rail of a standard type widely used for mounting circuit breakers and industrial control equipment inside equipment racks. - wikipedia

Mechanical Watch

A few decades ago the most convenient way to keep track of time was a mechanical watch. Unlike their quartz and smart siblings, mechanical watches can run without using any batteries or other electronic components. - Bartosz Ciechanowski / HN

Meaning of Life

Etre mort c’est comme être con, on ne s’en rend pas compte. Ce sont les autres autours qui sont tristes.

25 Horses (puzzle)

You have 25 horses, you can only run them 5 by 5, and you can only rely on their finishing order.
What is the minimum number of races you have to perform to find the fastest 3? - interview Google DIFFICILE

Posit

The numbers represented by posits are similar to floating points, but differ by the introduction of a so-called regime term. - The Cult of Posits / HN

Sudoku

a success story of ontological remodeling – that is, using new language to describe an existing thing. The existing thing in this case is the puzzle game Sudoku - Desystemize #9

Fibonacci sequence

Fibonacci numbers appear unexpectedly often in mathematics, so much so that there is an entire journal dedicated to their study, the Fibonacci Quarterly. - wikipedia

Why Don't You use ...

Articulating an answer to “buy why not?” is usually just an exercise you perform for the benefit of juniors, outsiders, marketers, evangelists and people who happened to be used to that tool already. - HN / Brendan Gregg’s Blog

Apple

  • Despite being easily removable since it is not soldered down, the Mac Studio’s SSD storage is not currently user-upgradeable due to a software block - Mac Rumors

Belt tension

I know what the correct 3D printer belt tension is! Let me explain what it is and how to set it! - Lost in Tech

Bill Cipher

a triangular inter-dimensional demon, formerly existent only in the mindscape before succeeding in gaining access to the real world. - Gravity Falls

zero-click iMessage exploit

The image files tricked the iPhone into giving access to its entire memory, bypassing security and allowing the installation of spyware that would steal a user’s messages. - HN / Project Zero

Combination

nCr a selection of items from a set that has distinct members, such that the order of selection does not matter (unlike permutations). - wikipedia / calculator

Knurling / Knurl / Grip / Texture (Freecad)

Knurling is normally conducted on a lathe and is part of the manufacturing process adding a pattern such as cross hatching or bumps to a surface to give it a finish look and allow the surface to be gripped easily. It’s something to do at the very end like fillets and chamfer - youtube

Gyroflow

Advanced open-source gyro-assisted video stabilization - HN

Everything must be paid for twice

There’s the first price, usually paid in dollars, just to gain possession of the desired thing, whatever it is… But then, in order to make use of the thing, you must also pay a second price. This is the effort and initiative required to gain its benefits, and it can be much higher than the first price. - HN

Clean Code?

“clean code” is a phase most programmers go through. Like adolescence, with it’s desire to find The One True Way. But after that most of us discover that the principles are pointless in and by itself and that it’s often preferable to ship “working software” instead. - Clean code is a phase

Lagrange Point

Une position de l’espace où les champs de gravité de deux corps en mouvement orbital l’un autour de l’autre, et de masses substantielles, fournissent exactement la force centripète requise pour que ce point de l’espace accompagne simultanément le mouvement orbital des deux corps. - wikipedia

Career in Product Management

The thing about getting older that nobody warns you about is that you always feel like you’re the youngest person in the room until suddenly you’re the oldest. - HN

Create a GUI (from scratch)

There isn’t a known optimum, but I’ve tried making GUI from scratch many times and am gradually getting better at it. This is a good opportunity for me to let out my thoughts all at once - r/gamedev

Job search

I’m keeping a job search diary on my blog - HN

Compare Image Quality

You have 2 equal images in files, you don’t have a reference highest quality image and you want to keep the better one of the two? - SE

equal_range

The expected behavior, does not make sense to me…

Locality of Behaviour (LoB)

The primary feature for easy maintenance is locality: Locality is that characteristic of source code that enables a programmer to understand that source by looking at only a small portion of it. - Richard Gabriel

Anime4k

Real time high quality video upscaling.
An iterative algorithm that treats color information as a heightmap and ‘pushes’ pixels towards probable edges using gradient-ascent.- HN

Test du retournement

Pour tester une équerre ou une règle, la retourner permet de verifier la symétrie de la perpendiculaire ou de la droite.

SSH Certificate

when generating a new client keypair, I only have to copy the public key to my certificate signing machine (one copy) rather than every host I plan to log into (many copies). This more than makes up for the minor certificate configuration necessary on new clients. - HN

Acrylic / plexyglass

Poly (methyl methacrylate) (PMMA) belongs to a group of materials called engineering plastics. It is a transparent thermoplastic. PMMA is also known as acrylic, acrylic glass, perspex, or plexiglass, as well as by the trade names and brands Crylux, Plexiglas, Acrylite, Astariglas, Lucite, Perclax, and Perspex, - wikipedia

Lessons from my PhD

Lead or be led
Topic sentences
Get excited
Unmotivated details
Slides versus speaker
Managers as input/output machines
Daily progress tracking

Fundation of C++ language

I did not insist on purity of the current fashionable style…
at the time I was rather annoyed and purity is for nazis.
I don’t claim to know how everybody wants to write their code and I get rather annoyed when somebody comes in and think they know…
and I know they don’t! - Bjarne Stroustrup

Gobolinux

it organizes the programs in your system in a new, logical way… each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that’s installed in the system and which files belong to which programs in a simple and obvious way. - Home / HN

House of the Dead Overkill

charges you with mowing down waves of infected, blood-thirsty zombies in a last-ditch effort to survive Bayou City and uncover the horrific truth behind the origins of the House of the Dead. - wii

Paper with Code

the bread and butter of each Research Engineers and Scientists working in Deep Learning. - Home / HN

Kodi

An Open Source Home Theater System. - Home
Plex is actually a (significantly diverged) fork of Kodi (then called XBMC). - HN

E466 / E171

E466 est fortement soupçonné d’être à l’origine l’inflammation de l’intestin et d’en modifier le microbiote intestinal. - futura / List of additives

Linux Switch

I have long since given up trying to convince people to switch to Linux as their Desktop OS…
I no longer care, and I have no reason to… The question which OS “won” has been decided long ago…the world runs on Linux, everything from our internet backbones to our phones and everything in between.
If companies want to waste money on licences, who am I to say no? - HN

Is techno-clutter ruining your life?

The true meaning of “materialism” is quite the opposite of how we use it today. A materialist was someone who loved and appreciated material, for example, a carpenter who loved wood and knew all the cuts and grains of various timbers. Today we use the word to mean someone who has a toxic, disprespectful relation with the material world, based on shallow ownership. - Bad tech is a class issue. .

The journey

“Which is most important,” asked Big Panda, “the journey or the destination?”
“The company.” said Tiny Dragon. - unkown

Que l’on soit minus ou géant, il faut être fort pour traverser le temps. - Droit Devant / Les Cowboys Fringants

Tomtom

The OpenTom project has documented the TomTom hardware and software to allow custom software builds to run - opentom / 2021

Exodus

a tool that makes it easy to successfully relocate Linux ELF binaries from one system to another. This is useful in situations where you don’t have root access on a machine or where a package simply isn’t available for a given Linux distribution. - github / HN

Perf (linux)

Perf tool can analyze kernel, applications, system libraries, software events through commands and subcommands. It can also be used as a PMU (performance monitoring unit) on Linux. - How to

Quine Relay

a Ruby program that generates Rust program that generates Scala program that generates …(through 128 languages in total)… REXX program that generates the original Ruby code again. - github

Quadtree

This suffers from CPU branch-prediction misses and extra overhead. But since our goal was to collect all of the nodes at the ideal resolutions for any given 3D view, non-recursive traversal is a bigger win. - Was Google Earth Stolen? / HN

Education

Education isn’t something you can finish - Isaac Asimov
Wisdom is not a product of schooling but of the lifelong attempt to acquire it - Albert Einstein

Sustainability

Less than 100% reliability is essential for the sustainability of an off-the-grid solar system, because above a certain threshold the fossil fuel energy used for producing and replacing the batteries is higher than the fossil fuel energy saved by the solar panels. - How to build a low-tech website?

Bounding volume hierarchy (BVH)

Octrees divide space into regular sized chunks. BVH divides space into chunks of varying size, but with a balanced population of bodies in each. The idealized BVH divides the population by 2 at each level. - HN / wikipedia

Le bateau de Thésé

Au cours de ses voyages, le bois se brisait ou pourrissait et devait être remplacé. Lorsque Thésée rentra chez lui, le navire qui accosta au port n’avait pas un seul morceau du navire qui en était parti. Malgré tout, l’équipage ne doutait pas que c’était le même bateau. - L’identité et le bateau de Thésée / wikipedia

Ads & Malware

If you have enough money to buy a no-ads tier, someone will pay more to put an ad there - HN

Async (Ruby)

Async Ruby adds new concurrency features to the language; you can think of it as “threads with none of the downsides”. It’s been in the making for a couple of years, and with Ruby 3.0, it’s finally ready for prime time. - Bruno Sutic / HN

Responsible Disclosure

Responsible disclosure is a concept mostly proposed by companies looking to accommodate their own willful irresponsibility. This is even more true in the case of intentional privacy violations by software vendors. The responsible thing is to immediately put these companies on blast the moment this kind of spying is uncovered. - HN

Linux on a Droid

Installing a regular Linux distribution on an Android device opens a whole new world of possibilities. You can turn your Android device into a full-blown Linux/Apache/MySQL/PHP server and run web-based applications on it, install and use your favorite Linux tools, and even run a graphical desktop environment. - Linux Mag

Hardware / Work Tools

The 4.5” angle grinder is like an agressive little dog that’s just waiting for a chance to bite you.
The table saw is like an old pitbull that generally sleeps.
The 6”/7”/9” grinder is a skunk.

Everyone who’s ever given it the chance has a story about the time the angle grinder nipped at them. The people who pestered the old pitbull until it got sick of their crap have 9 fingers. Nobody has problems with the skunk because it’s pretty obvious what’ll happen if you disrespect it. - HN

DIY Surface Mount Soldering

demonstrate how easy it is to solder very small electronic SMD (surface mount device) components on your PCB board. It is easier to work with compared to through-hole components. The component insertion time is shorter, and there are no component’s leads to cut away after the soldering. This save time and cost. - DIY Surface Mount Soldering and PCB Assembly

Controversy

The size of the controversy tends to be inversely proportional to the size of the effect.
This seems to apply to a lot of things, … - HN

Vector games on laser beam

running TEMPEST, SEGA STARTREK, my game Word War vi, and some demos on a home made RGB laser projector driven by openlase modified to support color. - youtube

FizzBuzz

Write a program that prints the numbers from 1 to n. If a number is divisible by 3, write Fizz instead. If a number is divisible by 5, write Buzz instead. However, if the number is divisible by both 3 and 5, write FizzBuzz instead. - High throughput Fizz Buzz / 55 GiB/s FizzBuzz

Fine details (Cura)

Small edge are impacted by Equalize Filament Flow & print thin wall. Enabling it can change drastically the mechanical property of a print (see belt gear) - yves

GT2 Timing Belt

Ceinture en caoutchouc, renforcé de fiber de verre, 6mm de large, pas de 2mm. Pour les applications d’impression 3D, le système de ceinture GT2 2mm fonctionne mieux que T5, T2.5.it donne une meilleure douceur et précision de positionnement, ce qui entraîne une meilleure qualité d’impression. Système de courroie de distribution GT2 particulièrement adapté aux applications de mouvement linéaire et de positionnement. - GT2 Timing Belt

EBCDIC

EBCDIC is an ancient (and much hated) “standard” which should have been fired into the sun a long time ago. It baffles me that it was still being used in 1995 - let alone today. - EBCDIC is incompatible with GDPR / HN

Zig

The reason why we can often get away with using languages like Python or JavaScript to drive resource-intensive computations, is because under the hood somebody took years to perfect a C implementation of a key procedure and shared it with the world under a permissive license. - Maintain it With Zig / HN

Redux

a library to manage state globally - Redux

Evaluating work

Criteria for evaluation

  • Quality
  • Quantity
  • Complexity
  • Impact

Open adressing (or Open bucket)

Open addressing or ‘open bucket’ hash tables always seem to be a second consideration in textbooks or blogs. I find them generally faster, and more memory efficient, and easier to implement. - HN / wikipedia

Docker registry

This post will show how to configure Nexus OSS to act as a pull-through cache for either the Docker Hub or a private repository, or a combination of them. It will also show how to configure the Docker clients to use your own cache when retrieving images. - Using Nexus OSS as a proxy/cache for Docker images

# Android

With the exception of LineageOS, all of the handset manufacturers examined collect a list of all the apps installed on a handset. This is potentially sensitive information since it can reveal user interests, e.g., a mental health app, a Muslim prayer app, a gay dating app, a Republican news app. There is no opt out from this data collection. - lwn / A study of data collection by Android devices

Le 20eme siecle

Mais sais-tu ce qu’était le 20eme siecle ? …
On détruisait notre planète, on laissait les gens crever de faim alors qu’on avait tout pour créer une société plus juste. Notre technologie, elle nous dépassait.
Et le pire,
c’est que tout le monde le savait. Où en tout cas tout le monde pouvait s’en rendre compte. - Nexus VI

NPM

Node.js Tool & Package Manager - NPM

Coal

All the coal in the world was made at the same time (-365M..-360M). Plant invented lignin at that same time and which made them impossible to decompose and fossilized waiting for an evolution of fungus to decompose it. (A bit like our production of plastic now) - Steve Mould

Darknet

Darknet is an open source neural network framework written in C and CUDA. - Home

JST Is Not A Connector

“JST” is not a connector specification. It is short for Japan Solderless Terminals Manufacturing Company, Ltd. - hackaday

SSH scanning

The entire internet scans all the common ports and this should be expected to continue indefinitely. - HN

Pi Camera

The Raspberry Pi Camera Module 2 replaced the original Camera Module in April 2016. The v2 Camera Module has a Sony IMX219 8-megapixel sensor (compared to the 5-megapixel OmniVision OV5647 sensor of the original camera). - Camera

How a 64k intro is made

many people have interest in demoscene productions but have no idea how they are actually made. This is a braindump/post-mortem of our recent 64k intro Guberniya - An intro to intros

Second order thinking

A core component of making great decisions is understanding the rationale behind previous decisions. If we don’t understand how we got “here,” we run the risk of making things much worse. - Chesterton’s Fence / HN

Rome

Rome wasn’t built in a day. And it wasn’t built by the Romans. - HN

Analog computer

a primary reason why digital computers replaced analog computers: If you want another digit of accuracy out of an analog computer, you need components that are 10 times as accurate, requiring expensive precision resistors and capacitors. But if you want another digit of accuracy out of a digital computer, you just process four more bits and you can still use cheap, inaccurate components. - HN

Asciidoctor

a fast, open source, Ruby-based text processor for parsing AsciiDoc® into a document model and converting it to output formats such as HTML 5, DocBook 5, manual pages, PDF, EPUB 3, and other formats. - Asciidoctor / Ruby for ebook publishing

Web Crawl / Scrapping

Web scraping describes techniques for automatically downloading and processing web content, or converting online text and other media into structured data that can then be used for various purposes - Scrapism / HN

Encapsulation

I am skeptical about the “strong encapsulation”:
The newest traditional languages (such as Modula 2) bend over backwards to ensure that modules hide internal routines and data structures from other modules. The goal is to achieve module independence (a minimum coupling). The fear seems to be that modules strive to attack each other like alien antibodies. Or else, that evil bands of marauding modules are out to clobber the precious family data structures.
This is not what we’re concerned about. The purpose of hiding information, as we mean it, is simply to minimize the effects of a possible design-change by localizing things that might change within each component. - Thinking Forth

Diplopia

Diplopia can also occur when viewing with only one eye… multiple image perception includes the consideration of such conditions as … diffraction-based (rather than geometrical) optical models have shown that common optical conditions, especially astigmatism, can also produce this symptom. - wikipedia

Notcurses

a library facilitating complex TUIs on modern terminal emulators, supporting vivid colors, multimedia, threads, and Unicode to the maximum degree possible. - dankamongmen / HN

Miasm

a free and open source (GPLv2) reverse engineering framework. - cea-sec

Slicer Options

Full bed print

  • check printer settings
  • Remove Build Plate Adhesion (Skirt, Brim, Raft)
  • Edit the Cura Definitions Within the File ? to suppress machine_disallowed_area

Knots

La tricolorabilité est invariante. / le nœud de Conway n’est pas bordant - Micmaths

Algorithms List

methods for solving a problem expressed as a finite sequence of instructions.

SSII / ESN

Tant qu’elle fournit du travail ou fait de la maîtrise d’ouvrage, son rôle est reconnu et accepté. Mais dans les cas où elle se contente de bénéficier d’une forme de situation de rente (le référencement), elle est de plus en plus perçue par les ingénieurs comme un “parasite” inutile. - A quoi servent encore les SSII ?

LLVM bitcode format

LLVM provides both a textual form that looks roughly like a C-family programming language, and a binary form (bitcode, in LLVM’s parlance) that’s denser and (ostensibly) faster to parse. The two forms are semantically identical, and trivial to produce and convert between. - the bitcode format

Service Ownership

Building and maintaining infrastructure services requires to strive for quality and ownership. But it’s not always easy to know what we are missing, and what assumption we are making that we don’t know of. - Service Ownership Checklist

DevOps, SRE, and Platform Engineering

  • DevOps: Hired to do everything not involved in the feature development of main business. Range varies from Terraform to maintaining Jira, GSuite, Jenkins, ETL, BizOps. Maintains scripts and hacks everywhere.
  • SRE: Orders teams to define SLOs, focuses only after incident procedures, not before. Insists on creating dashboards and putting them on TVs (when we had offices). Most eventually become vendor fans.
  • Platform: We made this, we know better than you, you cannot use anything else. If you need new thing/improvement, create a ticket we will get back to you in 6 months to say we cannot do it due to other company wide very important initatives.
    HN

Programmers Anarchy

the best management technique for successfully developing a software system in the 1970s and 1980s (and perhaps in the following decades), is based on being lucky enough to have a few very capable people, and then providing them with what is needed to get the job done while maintaining the fiction to upper management that the agreed bureaucratic plan is being followed.

Surprisingly, very little has changed. - What can be learned from studying long gone development practices?

Linux Camera Software

a list of Linux camera software where various kinds of webcam software, IP camera software, security camera software, and video surveillance software are included with focusing on various important features. - 20+ Best Linux Camera Software

N-Stop choice

Probleme: comment choisir D points d’arret sur un trajet, parmis N point intermediare donnés, vérifiant que ces points soient les plues éloignés les un des autres.

L'effort humain

L’effort humain n’a pas de vraie maison
Il sent l’odeur de son travail
et il est touché aux poumons
Son salaire est maigre
Ses enfants aussi
Il travaille comme un nègre
et le nègre travaille comme lui
Jacques Prévert

DRM

The point of DRM isn’t to prevent piracy, but to control manufacturers, who cannot legally break DRM, so they have to comply with whatever the DRM licensing cartel demands. - HN

X11 Clipboard synchronisation

Among other features that can be quite handy, clipit offers the ability to synchronize the Primary Selection and the X Clipboard. This is functionally equivalent to unifying the two selections - Clipit

Integer math

Graphics can be a tricky topic, particularly when attempting to find anything on the internet these days that provides solution in terms of integer-only maths. - Integer Graphics

Kisslinux

The distribution is designed to be maintainable by a single person. There is no infrastructure and the entire distribution is merely a few Git repositories. - kisslinux.org / HN

ACPI

Advanced Configuration and Power Interface - acpi

Wine

Wine is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD. Instead of simulating internal Windows logic like a virtual machine or emulator, Wine translates Windows API calls into POSIX calls on-the-fly, eliminating the performance and memory penalties of other methods and allowing you to cleanly integrate Windows applications into your desktop.

An intentional life

By constraining your time, a full-time job limits the nature of experiences you can have. It imposes a schedule that your entire life has to fit around. Every decision involving time has to pass the “let me check with work” test. That means your time is not yours - you borrow it from your employer. - Work Didn’t Work

Resiliency in Systems Design

an important part of erlang’s failure domain driven mentality is not just “let it crash”, but also tying together failure domains: what should you also bring down with you when you crash. - HN

LMMS

Let’s make music with a free, cross-platform tool for your computer. - LMMS

Comma Code

A comma code is a type of prefix-free code in which a comma, a particular symbol or sequence of symbols, occurs at the end of a code word and never occurs otherwise. - wikipedia / HN

Date types

Which class to use to handle date & time & zone

Linear Programming

(also called linear optimization) is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. - wikipedia

Birthday paradox

The birthday problem or birthday paradox concerns the probability that, in a set of n randomly chosen people, some pair of them will have the same birthday. - wikipedia

darktable - Photos edition

darktable edits your images non-destructively all the way through its pipeline. Your original image is never modified! Professional color management features ensure fidelity all the way to print and GPU accelerated processing means you can speed up your workflow using your video card. - darktable

Priority Queue

A priority queue is a container adaptor that provides constant time lookup of the largest (by default) element, at the expense of logarithmic insertion and extraction. - cppreference.com

Zsync

Differential file downloading over HTTP using the rsync algorithm (2010) - Home / HN / github

Acer Swift 3 (SF314-57-32Y2)

Spec / manual - bought in 2021 - 689€

  • CPU: Intel Core i3-1005G1 (Dual-Core 1.2 GHz / 3.4 GHz Turbo - 4 Threads - Cache 4 Mo - TDP 15W)
  • GPU: Intel UHD Graphics
  • Display: 14.0”, Full HD (1920 x 1080), IPS
  • Storage: SSD M.2 de 256 Go
  • RAM: 8 Go

Toltec

Toltec is a repository of unofficial applications for the reMarkable tablet, similar to Homebrew for Mac or Linux. - Home / github

C++ TestMate (VSCode)

run your Catch2, Google Test and DOCtest tests using the Test Explorer for Visual Studio Code. It also have basic support for Google Benchmark. - Home

Ad hominem

We don’t want others. We want one name, and we want it fast, because it gives us our security back. We can say, “Here was the one man unlike the rest of us. We’ve named him, and he’s no more. And his reasons, they’re gone, too.” - Arlington Road / imdb (7.2) / Ad hominem

Bozo the Clown

But the fact that some geniuses were laughed at does not imply that all who are laughed at are geniuses.
They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers.
But they also laughed at Bozo the Clown. - Sagan / Crazy New Ideas

Atom Isotope

Atoms are made up of a nucleus containing protons and neutrons, surrounded by electrons. But how many of each?

The number of protons determines which element it is: an atom with six protons is an atom of carbon; seven makes it nitrogen; eight, oxygen. The number of electrons generally matches the number of protons, to make the atom electrically neutral. But how many neutrons are in the nucleus? Does it even matter? … It turns out that it matters a lot. - How counting neutrons explains nuclear waste

Wifi Access Point

An AP can only use one band at a time: 2.4GHz OR 5GHz, a so-called “dual-band AP” is just one AP at 2.4GHz and another at 5GHz - Access Point

Digital Audio Workstation (DAW)

Non is fast enough to run on low-end processors–while other DAWs require huge investments in hardware… take full advantage of the power and flexibility of JACK. - NON

INode

Each inode stores the attributes and disk block locations of the object’s data. POSIX per-file system unique identifier for a file (each drive being an independant filesystem) - wikipedia / File System Continued

Zero-Max Schmidt Offset Coupling

Schmidt Offset Shaft Couplings offer great flexibility in shaft displacement while maintaining undisturbed power transmission at constant angular velocity, including no performance loss by increasing shaft offset. - youtube / lego

QEMU

QEMU is a generic and open source machine emulator and virtualizer. - qemu.org

LRU Cache

If you have a tight loop, LRU is going to be perfect as long as the loop fits in cache, but it’s going to cause a miss every time if the loop doesn’t fit. A random eviction policy degrades gracefully as the loop gets too big. - Caches: LRU v. random / HN

Has UML died without anyone noticing?

UML’s promise was that that with detailed enough diagrams, writing code would be trivial or even could be automatically generated (there are UML tools that can generate code). It was developed during a time when there was a push to make Software Engineering a licensed profession. UML was going to be the “blueprints” of code, and software architects would develop UML diagrams similar to how building architects create blueprints for houses. But as it turned out, that was a false premise. The real blueprints for software ended up being the code itself. And the legacy of UML lives on in simpler boxes and arrow diagrams. - HN

Noise

Noise is an indispensable tool for creative coding. We use it to generate all kinds of organic effects like clouds, landscapes and contours. Or to move and distort objects with a more lifelike behaviour. - Noise in Creative CodingHN

Ubik

The door refused to open. It said, “Five cents, please.” … I’ll sue you,” the door said as the first screw fell out. Joe Chip said, “I’ve never been sued by a door. But I guess I can live through it.” - Philip K. Dick / HN

SQL Diff query

An efficient query to compare content of tables with same schemas

Dunning-Kruger Effect

This is typically understood as incompetent people are too incompetent to determine that they are incompetent, but its lesser-known corollary is that competent people assume everyone else is competent too, and thus they don’t have to explain themselves.
Once you understand this, the reason for poor communication becomes clear. - HN / youtube / wikipedia

Bresenham's line algorithm

Bresenham’s line algorithm is a line drawing algorithm that determines the points of an n-dimensional raster that should be selected in order to form a close approximation to a straight line between two points. - wikipedia / HN / pdf

Text Search

Building a full-text search engine in 150 lines of Python code - blog / HN

Sliding Window

The Sliding window is a problem-solving technique for problems that involve arrays/lists. These problems are easy to solve using a brute force approach in O(n^2) or O(n^3). Using the ‘sliding window’ technique, we can reduce the time complexity to O(n). - SO / How to Solve Sliding Window Problems

Vector Graphics

In 1978 when the Digital Vector Generator was developed for Lunar Lander, memory was much too expensive for a frame buffer in a video game. … Two frame buffers of 512x512x4 would have required 128 memory devices costing total of $614. - History of Vector Graphics / HN

FFmpeg

A complete, cross-platform solution to record, convert and stream audio and video. - FFmpeg / HN

Burnout

Everyone talks about “burnout” as something that happens when you work too much.

I see it far more in people who work a normal amount on things they know don’t matter. - twitter / HN

Netsurf Browser

NetSurf is your lightweight gateway to the world wide web. Actively developed, NetSurf is continually evolving and improving… From a modern monster PC to a humble 30MHz ARM 6 computer with 16MB of RAM, the web browser will keep you surfing the web whatever your system. - Home

Day of the Tentacle

Day of the Tentacle was the sequel to Maniac Mansion. The game follows the nerd from the first game, Bernard Bernoulli, and his roommates Hoagie and Laverne as they rescue green tentacle from Dr. Fred’s basement. - scummvm / wikipedia

Hellcats Over the Pacific (1991)

Hellcats was a major release for the Mac platform, one of the first 3D games to be able to drive a 640 x 480 x 8-bit display at reasonable frame rates in an era when the PC clone’s VGA at 320 x 240 x 4-bit was the standard. - (1991) - myabandonware / wikipedia

Smoothing a hand-drawn curve

In spite of the importance of the curve-fitting problem and a literature going back more than thirty years, there has to date been no fully satisfactory solution. Existing approaches either fail to consistently produce the best result, are slow (unsuitable for interactive use), or both. - Fitting cubic Bézier curves (2021) / thesis / HN

From word2vec to node2vec, and beyond

We start by analyzing word2vec, a classic algorithm that is able to map words to numerical vectors that encode information about the meaning and similarity of words. This will lay the foundation for our first look at graph embedding algorithms with node2vec that leverages the basic structure of word2vec and some intuitions about random walks to generate meaningful vector representations of each node in an arbitrary graph. - Graph Embeddings 101

Real time mesh reconstruction

Real-time dense visual SLAM system capable of producing high quality globally consistent point and mesh reconstructions over hundreds of metres in real-time with only a low-cost commodity RGB-D sensor.. - Kintinuous / pdf

xxh

The mission of xxh is to bring your favorite shell wherever you go through ssh without root access and system installations. - github

John Kraus Photos

Hello! I’m John Kraus, a Florida-based photographer capturing Earth’s out-of-this-world moments: Rocket launches. - Portfolio

YCoCg color model

is the color space formed from a simple transformation of an associated RGB color space into a luma value (denoted as Y) and two chroma values called chrominance green (Cg) and chrominance orange (Co)… It is simple to compute, has good transform coding gain, and can be losslessly converted to and from RGB with fewer bits than are needed with other color models. - wikipedia

How do mouse events work in linux?

evdev is the generic input event interface. It passes the events generated in the kernel straight to the program, with timestamps…This should be the way for GPM and X to get keyboard and mouse events. It allows for multihead in X without any specific multihead kernel support. The event codes are the same on all architectures and are hardware independent. - SE / Input event codes

Share devices over network

The general usecase would be two machines standing next to each other, and you only want to have one keyboard and one mouse to use both of them, but do not want to rely on X11. - superuser

Krita Code

In my 20+ year experience managing projects I learned that tools or systems don’t manage anything, people do, and if people need tools they’ll get them or make them - Ton Roosendaal, on #blendercoders / Krita code wiki / github / KDE

Blake 32 (32 bytes)

What exactly are we looking at here? A contest-winning 32 byte computer program that displays amazing visuals. - pouet / HN

Decision law

Before every formal meeting there’s a smaller, more exclusive, less formal meeting where all the important decisions are made.

This is based on decades of experience in academia and friends’ experience in industry and government. Sometimes there’s an even smaller, more exclusive, less formal pre pre meeting where all the decisions of the pre meeting are made. Maybe even a pre pre pre meeting … until you reach some guy deciding everything in the shower. - Wadge’s Law (of Meetings).

Github master branch

Personally, I have no attachment to any of these words. I just don’t appreciate the idea that we as software engineers can now sit back and believe we’ve made some kind of positive change, coz we haven’t. I’m not pissed off because I expected tech companies to do more, no, I didn’t expect them to do anything. I’m pissed off because they pretended to be doing good and wanted me to congratulate them for it. - GitHub, f ck your name change / HN

Being a manager

As a manager, your output is not measured by your individual work. Rather, your output is measured by the work of your team and the people that you influence. The work you choose to do, and the work you choose to neglect or delegate, will lead to amplified outcomes in both positive and negative directions. - Common Mistakes Of New Engineering Managers / HN

Regional Geometry

I mentioned a data structure known as the “region”, which is a list of rectangles. When I first built the X server codebase, I took the region code from pixman…simply because I didn’t understand the algorithms… I recently decided to investigate the data structures and algorithms behind regions, and I finally understood it. What I found I’m going to share with you. - magcius

2D Graphics on Modern GPU

Despite it going against your intuition, fast, good looking 2D graphics are actually harder and more computationally expensive to accomplish than 3D graphics, at least on traditional consumer GPUs. - Basic 2D Rasterization

Thread Efficiency

Parallelism in 2021 should not be tightly coupled across threads if performance matters, the limitations of that model are well-understood. There is no way to make that comparatively efficient; the CPU cache waste alone ensures that. Nothing you can do with thread support in a programming language will be competitive with e.g. a purpose-built scheduler + native coroutines.

… The state-of-the-art architectures are all, effectively, single-threaded with latency-hiding. This model has a lot of mechanical sympathy with real silicon which is why it is used. It is also pleasantly simple in practice. - HN

reMarkable Framebuffer

Remarkable Paper Tablet has an undocumented API for partial refreshes on its eInk display, which is what’s behind its magic that disappears when custom Qt applications are used to draw on the screen, even using the toolchain provided by Remarkable. - Framebuffer Overview

Zig's comptime code execution

a generic container class (similar to vector in C++ or List in C#). But! With a twist!

It stores structs in “column major” order in memory (e.g., if a struct had two fields A and B, then in-memory layout would be A…AB…B), and you can idiomatically and efficiently get a a slice of the values of each column. - HN

RGB 565 - Why 6 Bits for Green Color

This is likely due to the response of the cones in the eye. Basically we are more sensitive to light in that part of the spectrum as the different cones* overlap strongly there. Whereas most light in the blue end of the spectrum, for example, is primarily picked up by only one.

It makes sense to spend the additional bit where it will do the most good - SO

Dlib

a modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ to solve real world problems. - dlib.net

Exploitative game mechanics suck

But what if someone were to find a way to edit the saved games and assign the items and currency without effort? That would be terrible, because it would help players consume the content much faster, and therefore run out of it sooner than expected. If that happens, they will have nothing that prevents them from thinking, and the tremendous agony of realizing their own irrelevance would again take over their life. - godot / HN

Pipewire (linux audio)

PipeWire has a better vibe than Pulseaudio did. It intends to replace a system that never worked flawlessly, seems to focus on compatibility, and the apparent endorsement from the JACK-developers also does not hurt. - PipeWire Overview / lwn / HN

Super fast linker

I wanted to use the linker to link a Chromium executable with full debug info (~2 GiB in size) just in 1 second. LLVM’s lld¹, the fastest open-source linker which I originally created a few years ago, takes about 12 seconds to link Chromium on my machine. So the goal is 12x performance bump over lld. Compared to GNU gold, it’s more than 50x. - mold / HN

Bootstrapping

In the 1800s, the saying “No man can lift himself by his own boot straps” was used as a metaphor for the impossibility of improvement solely through one’s own effort. - But computer can! / HN

lsusb

it’s very simple, i struggled with this issue using Ubuntu and Ubuntu flavored distros for years (Mint, Elementary OS, etc). Go back into bios, have usb 3.0 turned on, an any other options turned on, but turn off legacy usb option - How do I get usb 3.0 driver working

Core XY Printers

HevORT is a DIY 3D printer that is meant to push the boundaries of FDM printing in terms of Speed, repeatability and maintainability. Quality will be the same as any well calibrated FDM only the HevORT prints to that quality level faster… much faster! - CoreXY Explained

Good webcam

The Raspberry Pi and its HQ camera make a surprisingly potent webcam, and if you want to cover the basics, and rival the image quality of all but the highest-end dedicated webcams, you can do it for under $100. - Jeff Geerling

War

La guerre, c est le massacre de gens qui ne se connaissent pas, au profit de gens qui eux se connaissent, et ne se massacrent pas… - PAUL VALÉRY

Wikipedia

the free online encyclopedia, created and edited by volunteers around the world and hosted by the Wikimedia Foundation. - Home

What Is Nix ?

On Debian, Fedora, etc, installing a package means letting it put files wherever it likes; which effectively gives the package author root on your system. Not a good base for sandboxing!

Also, they make it difficult to try out 3rd-party software, or to test newer versions of just some packages.

In 2003 I created 0install to address these problems, and Nix has very similar goals. - NixOS

Dynamic Programming

it refers to simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. While some decision problems cannot be taken apart this way, decisions that span several points in time do often break apart recursively. Likewise, in computer science, if a problem can be solved optimally by breaking it into sub-problems and then recursively finding the optimal solutions to the sub-problems, then it is said to have optimal substructure. - Wikipedia

LZ4

an Extremely Fast Compression Algorithm - github / HN

I told you so

If you are not running XScreenSaver on Linux, then it is safe to assume that your screen does not lock. - jwz, 2021 / HN

Fatum

Sorte d’ersatz du Parrain dans le futur, catégorie série B, tout y est : violence, action, sexe, humour potache, grosse ficelle scénaristique… - Fatum

Rendering a Sphere on a Quad

By the end of this we’ll have a sphere impostor on a tight quad that supports multiple lights, shadow casting, shadow receiving, and orthographic cameras for the built in forward renderer that almost perfectly mimics a high poly mesh. With no extra c# script. - Ben Golus / HN

Filesystem error handling

Most filesystems don’t have checksums for data and leave error detection and correction up to userspace software. When I talk to server-side devs at big companies, their answer is usually something like “who cares? All of our file accesses go through a library that checksums things anyway and redundancy across machines and datacenters takes care of failures, so we only need error detection and not correction”. While that’s true for developers at certain big companies, there’s a lot of software out there that isn’t written robustly and just assumes that filesystems and disks don’t have errors. - danluu.com / HN

How to Generate a Cube's vertices and tris

This solution isn’t really helpful for anyone, it is slower than just writing down the constant values and pretty unclear at first glance. Looking back at it, it is not even too elegant. But this was a fun little piece of code that I wrote in about 2-3 hours, and wanted to share it, since I couldnt find anything like this on the Internet. - Catonif

Career Advice

Something that I find interesting is that career advice coming from professionals having many years of experience focuses almost exclusively on the people aspects and not the technology: communication, trust, teamwork, documentation, clarity. The advice is clear, precise and honest.

This is the opposite of what you get from new hires/juniors: they tend to focus on which stacks matter, what to learn, how to develop, deploy and maintain. Not much real advice on the behavioral side, to the point that people often take trainings for behavioral interviews and memorize “leadership principles” and other nonsense. - HN / What I’ve Learned in 45 Years in the Software Industry

Build systems

instead of seeing build systems as unrelated points in space, we now see them as locations in a connected landscape, leading to a better understanding of what they do and how they compare, and suggesting exploration of other (as yet unoccupied points) in the landscape. - Build Systems à la Carte / HN

IAN

IAN est le plus humain des robots… - IAN

Entropy

there is nothing like a unique concept of entropy. There are many different but correlated concepts, which could have been named differently. They have some direct or indirect relation with thermodynamic entropy, although they usually do not coincide with it without additional assumptions. - SE

Moral Competence

The morally incompetent want purpose; they want to be on the front-lines of the helping. But for the morally incompetent, helping people is more important than the folks being helped. They don’t offer service, they seek it. The service outranks the outcome. - Moral Competence / HN

Open Arena

OpenArena is a Free Content project. Its goal is to create new, original media while providing a stand-alone multiplayer game in the process. - Open Arena

Functional programming in C++

A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in. In a multithreaded environment, the lack of understanding and the resulting problems are greatly amplified, almost to the point of panic if you are paying attention.
Programming in a functional style makes the state presented to your code explicit, which makes it much easier to reason about, and, in a completely pure system, makes thread race conditions impossible. - John Carmack / HN / (2)

finally in C++

Sometimes there?s a need to invoke a special action at the end of the scope: it could be a resource releasing code, flag set, code guard, begin/end function calls, etc. - Bartek’s coding blog

Custom input stream in C++

The proper way to create a new stream in C++ is to derive from std::streambuf and to override the underflow() operation for reading and the overflow() and sync() operations for writing. - SO

Zobrist Hash

Zobrist Hashing, a technique to transform a board position of arbitrary size into a number of a set length, with an equal distribution over all possible numbers. - chessprogramming.org

Data Races

Sequential consistency is expensive on most multiprocessors… Fortunately, C++11 lets you relax sequential consistency in a controlled way, which combines high performance with the safety of well-defined (if complex) semantics…

What does it all mean for the C++11 programmer? It means that there no longer is an excuse for data races. If you need benign data races for performance, rewrite your code using weak atomics. Weak atomics give you the same kind of performance as benign data races but they have well defined semantics. - Benign Data Races Considered Harmful - (Bartosz Milewski’s Programming Cafe)

PyCam (CNC)

PyCam is a toolpath generator for 3-axis CNC machining. It loads 3D models in STL format or 2D contour models from DXF or SVG files. The resulting G-Code can be used with LinuxCNC or any other machine controller. - Home

VSCode Text Buffer Reimplementation

During an in-depth exploration, we found that a C++ implementation of the text buffer could lead to significant memory savings, but we didn’t see the performance enhancements we were hoping for. Converting strings between a custom native representation and V8’s strings is costly and in our case, compromised any performance gained from implementing text buffer operations in C++… Not going native, we had to find ways to improve our JavaScript/TypeScript code. - Text Buffer Reimplementation

FFT & Polynomial representation

The Fast Fourier Transform (FFT) is a tricky algorithm to understand so we take a look at it in a context that we are all familiar with: polynomial multiplication. You will see how the core ideas of the FFT can be “discovered” through asking the right questions. The key insights that are presented in this video is that polynomial multiplication can be improved significantly by multiplying polynomials in a special value representation. The challenge that presents itself is the problem of converting a polynomial from a standard coefficient representation to value representation. - (FFT): Most Ingenious Algorithm Ever?

(CG) Fall Challenge 2020

Perhaps the only CG game where better search is worse? Thanks to the random recipe drawn after a brew which has the property to mess up any plans and transform a lead or a win straight into a loss. - reCurse (3thd)

The Voices

Isn’t it weird that we have a little voice in our heads? Like the one you used to read this.

Losing all interest

I lost interest in my career several years ago, but now I think I’m just losing interest in programming in general. - HN

Cameras and Lenses

Cameras and the lenses inside them may seem a little mystifying. In this blog post I’d like to explain not only how they work, but also how adjusting a few tunable parameters can produce fairly different results - Bartosz Ciechanowski / HN

Dallas Barr (BD)

Depuis le tout début du XXIè siècle, la vie éternelle est une possibilité. Dans les cliniques de jouvence de Lord Julius Stileman, tout le monde peut retrouver sa jeunesse enfuie. Le problème, c’est que cela coûte tout ce que vous possédez, et qu’il ne faut même pas y songer à moins d’un million de livres sterling. Et une fois que vous avez retrouvé la jeunesse, la course contre la montre commence… pour trouver le million suivant. Car la cure ne produit ses effets que pendant une décennie. Vous avez donc le choix : la bourse ou la vie. - Dallas Barr

Typescript

TypeScript is an open-source language which builds on JavaScript, one of the world’s most used tools, by adding static type definitions. - Home / online

Chess

The ability to play chess is the sign of a gentleman. The ability to play chess well is the sign of a wasted life. - Paul Morphy

Node.js

a standalone JavaScript runtime built on Chrome’s V8 JavaScript engine. - nodejs.org

Zotero

Zotero is, at the most basic level, a reference manager. It is designed to store, manage, and cite bibliographic references, such as books and articles. In Zotero, each of these references constitutes an item. More broadly, Zotero is a powerful tool for collecting and organizing research information and sources. - Home / HN

Open CAM (OpenCamLib)

Since good(?) CAM programs (like MasterCAM, SurfCAM, or OneCNC) cost tens of thousands of euros/dollars, I’m interested in an open source alternative. - anderswallin.net

Cascade of Attention-Deficit Teenagers (CADT)

This is, I think, the most common way for my bug reports to open source software projects to ever become closed. I report bugs; they go unread for a year, sometimes two; and then (surprise!) that module is rewritten from scratch – and the new maintainer can’t be bothered to check whether his new version has actually solved any of the known problems that existed in the previous version.

I’m so totally impressed at this Way New Development Paradigm. - jwz

GMOCCAPY (Linuxcnc GUI)

GMOCCAPY is a GUI for LinuxCNC, designed to be used with a touch screen, but can also be used on normal screens with a mouse or hardware buttons and MPG wheels, as it presents HAL Pins for the most common needs. - GMOCCAPY

Axis (Linuxcnc GUI)

AXIS is a graphical front-end for LinuxCNC which features a live preview and backplot. - Axis

Blender CAM

Blender CAM is an open source solution for artistic CAM - Computer aided machining - a g-code generation tool. Blender CAM is an extension for the free open-source Blender 3d package. - BlenderCam - CNC path addon

Orchestration

Orchestration is in practice almost always a useful illusion.

Usefull in the sense of ‘all models are wrong some models are usefull’.

The systemic trick is to treat the orchestration model as an expression of intent, then use both domain and meta heuristics to translate it to a choreography. - HN

Job interview

When you’re junior, coachability is what gets you hired. How quickly can we train you to be effective?

When you’re medium, technical chops get you hired. Can you do useful work right now and quickly fill gaps in knowledge?

When you’re senior, your experience and opinions get you hired. - HN

Debian

Debian is like democracy: the worst way of producing an OS, except all the others that have been tried from time to time.

BeOS, AmigaOS, Solaris, most other 80s OSes - they’re effectively dead. Windows and macOS have effectively died once already. The BSDs can stall for years at times. Most Linux distributions (including RedHat) are typically only as good as the fortunes of the commercial (or occasionally public) entity they have behind. In all this, Debian endures, with its slow but inexorable progress, simply because its ideological foundations - not its technical ones - are eminently superior to all the others. Debian contributors don’t do it for the money, so they will be there when money runs out; and they don’t do it for being cool either, so they will be there when OS work is not cool. People will come and go, but the ideal of the “democratic OS” will always be there - hence, Debian will be too. - HN

Simple Image manipulation (Ruby)

This library can read and write PNG files. It is written in pure Ruby for maximum portability. Let me rephrase: it does NOT require RMagick or any other memory leaking image library. - ChunkyPNG

The Iron Giant

A young boy befriends a giant robot from outer space that a paranoid government agent wants to destroy. - imdb / pinterest

MkDocs

MkDocs is a fast, simple and downright gorgeous static site generator that’s geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file. - MkDocs

F-Engrave

F-Engrave is a text or image to g-code program (for both engraving and v-carving). - Home

Jekyll Table of Contents

GitHub Pages can’t run custom Jekyll plug-ins so when generating Tables of Contents (TOCs), you’re stuck with either a JavaScript solution or using kramdown’s {:toc} option. However, by using {:toc}, you are forced to have that code next to your actual markdown and you can’t place it in a layout. This means every. single. post. will need to have the snippet. If you choose the JavaScript approach, that’s perfectly fine but what if JS is disabled on the someone’s browser or your page is just really long and it becomes inefficient. - Jekyll Pure Liquid Table of Contents

Kon-boot

Kon-Boot is an application which will silently bypass the authentication process of Windows based operating systems. Without overwriting your old password! In other words you can login to your Windows profile without knowing your password. - kon-boot.com

# Dear ImGui

Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline enabled application. It is fast, portable, renderer agnostic and self-contained (no external dependencies). - github / demo / 2

High Availability

Availability is the percentage of time an application is performing as expected (not to be confound with uptime). - Architecting for reliability on AWS (pluralsight)

LinuxCNC

Controls CNC machines: milling machines, lathes, 3d printers, laser cutters, plasma cutters, robot arms, hexapods, and more. - LinuxCNC

Length Extension Attacks

An application is susceptible to a hash length extension attack if it prepends a secret value to a string, hashes it with a vulnerable algorithm, and entrusts the attacker with both the string and the hash, but not the secret. Then, the server relies on the secret to decide whether or not the data returned later is the same as the original data. - Dead Ends in Cryptanalysis #1 / SkullSecurity

Little tasks, little trust

No backlog grooming meetings or burn-down charts either. Your manager simply looked at how your products were coming along. A little trust, some accountability, and a healthy portion of “give me some space to do my work.”

The way we work now is different. Sadly, it’s less motivating, less efficient, and profoundly less respectful of individual abilities. - little tasks, little trust

Segment tree

A Segment Tree is a data structure that allows answering range queries over an array effectively, while still being flexible enough to allow modifying the array. This includes finding the sum of consecutive array element, or finding the minimum element in a such a range in O(logn) time. - Segment Tree / HN

The Hitchhiker’s Guide to Compression

Lossless file compression, and file compression in general has become a lost art. The modern developer community has moved on from working on compression algorithms to bigger and better problems, such as creating the next major NodeJS framework. However, compression as it stands in the computer science aspect is still as interesting as it was in 1980s, possibly even more so today with an estimated 463 Exabytes of data to be created everyday in 2025. - go-compression

Sokoban

Sokoban is japanese for ‘warehouse keeper’: 倉庫番.

This puzzle game was originally invented in Japan in the early 80’s. You have to push crates to their proper locations with a minimum number of moves. - online / wikipedia

2048

Join the numbers and get to the 2048 tile! - play2048

Innovation tokens

Let’s say that we all get a limited number of innovation tokens to spend…

These represent our limited capacity to do something creative, or weird, or hard. We really don’t have that many of these to allocate. Early on in a company’s life, we get like maybe three. Not too many more than that. - Choose Boring Technology / HN

MyPaint

MyPaint is a nimble, distraction-free, and easy tool for digital painters. It supports graphics tablets made by Wacom, and many similar devices. Its brush engine is versatile and configurable, and it provides useful, productive tools. - MyPaint

Flat Coloring

So you’ve got a cool black on white drawing, and now you want to color it! The thing we’ll aim for in this tutorial is to get your line art colored in with flat colors. So no shading just yet. - Flat Coloring

Custom behavior with Setting-Cycler (VSCode)

Sometimes VS Code ships a new feature without a toggle command (editor.minimap.enabled, explorer.autoReveal). Sometimes you want to easily toggle between a light and dark themes. Maybe you want to do something even more complex and toggle multiple settings at once. - Settings Cycler

Snake in a QR code

The above QR code contains a complete Windows executable that will run on Windows 7 and up. It’s a simple but fully playable implementation of Snake.- Snake in a QR code

Crinkler (packer)

Crinkler is a compressing linker for Windows, specifically targeted towards executables with a size of just a few kilobytes. Its main purpose is as a tool for producing small demoscene productions. - Crinkler / pouet / wiki

Parquet file

Parquet came from a common need for on disk columnar representation, and it’s inspired from a lot of work in academia and Google Dremel paper, and you know, a lot of databases are using it, like Vertica, are using columnar representation to speed up analysis. Arrow is similar, coming from a common need for in memory columnar, so if you look at papers like MonetDB, papers that are the beginning of vectorized execution, it’s the next step in making sequel execution and all those things much faster. - The Columnar Roadmap

IDE vs Language

Fancy IDEs are lubricants for high-friction languages. If a language is already low-friction, there won’t be much benefit to be gained from an IDE, as even a plain text editor will already get you near to optimal productivity in said language.

Personally, I’d rather use a plain-old “code editor” (with at most syntax highlighting, but no snippets, let alone autocomplete), in part because doing so will actively steer me away from languages that weren’t designed with the User Experience of writing them in mind.- HN

Mailbox

Your inbox is nothing more than everyone else’s to do list for you - Carson Tate

The benefits of note-taking by hand

Socrates didn’t even believe in writing – he believed writing things down would weaken our memories in the long term. He believed that talking about things was a far superior way to form memories and to understand subjects deeply. He’s not completely wrong about the role of discussion and disputation [emotional connection is a potent force in memory formation], but all the same I’m glad Plato didn’t take to this thinking and actually wrote stuff down). - HN / article

DuckDB

An embeddable SQL database like SQLite, but supports Postgres features - DuckDB / HN

Large Text Compression Benchmark

ranks lossless data compression programs by the compressed size (including the size of the decompression program) of the first 109 bytes of the XML text dump of the English version of Wikipedia on Mar. 3, 2006. Benchmark

Breaking a Monolith

A single centralized team can’t make change happen by working against the momentum of hundreds of developers adding features.

To modularize a large monolith though, we need to make complex change happen on a large scale. Even if a centralized team could make it happen, the design would degrade once the team switches its focus to something else.

That’s why making a fundamental architecture change to a system that’s being actively worked on is in large part a people problem. - The State of Shopify’s Monolith / HN

The Infosec Apocalypse

Tools like Blackduck, WhiteSource, Checkmarx, Veracode are exploding in popularity … These tools are quickly making their way into SOC2 and SDLC policies across industry, and if your language or new infrastructure tool isn’t supported by them there’s little chance you will get the previously already tenuous approval to use them. This sets the already high bar for adoption much higher. As you might expect, vendors will only implement support for languages that meet some threshold for profitability of their tools. Not only do you need to build a modern set of tools for your language to compete, now you also need support from external vendors. - The Infosec Apocalypse / HN

TensorFlow Lite for Microcontrollers

TensorFlow Lite provides all the tools you need to convert and run TensorFlow models on mobile, embedded, and IoT devices. The following guide walks through each step of the developer workflow and provides links to further instructions. - TensorFlow Lite

Lambda (c++)

A lambda can only be converted to a function pointer if it does not capture - SO

Semantic Versioning

Semantic Versioning is a meta-API, and maintainers who are cavalier about violating it can’t be trusted to created stable contracts. I’ve lost patience for breaking changes making their way to my code bases without the maintainers incrementing the major version of their projects, especially in language ecosystems where Semantic Versioning is expected, and in such cases I’m going to begin exploring alternative options so I can ban such libraries from my projects —personal and professional— altogether. - Regarding Semantic Versioning

GuiLite.h

The smallest header-only GUI library (5 KLOC) for all platforms. - github

Two sum (puzzle)

Given an array of integers nums̀ and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice. - LeetCode

Hamming codes

h■w to ov■rco■e n■ise

Hamming codes are a family of linear error-correcting codes. Hamming codes can detect up to two-bit errors or correct one-bit errors without detection of uncorrected errors. By contrast, the simple parity code cannot correct errors, and can detect only an odd number of bits in error. Hamming codes are perfect codes, that is, they achieve the highest possible rate for codes with their block length and minimum distance of three. - wikipedia

BitTorrent v2

BitTorrent v2 kick-started with an effort to transition away from SHA-1 as the hash function for pieces, shortly after google announced having produced a collision. Given a new hash function would not be backwards compatible, a few other changes were proposed as well, while we were taking the compatibility hit anyway. This post describes the new features of the BitTorrent v2 protocol. - BitTorrent v2 / HN

Doom Eternal – Graphics Study

these graphics studies give a lot of insight into how certain rendering problems are solved in a AAA game and are greatly educational. In this breakdown I aim to stay at a high level and not go too in-depth of each rendering technique/pass. article / HN

Filesystem toolkit (C++)

The Filesystem library provides facilities for performing operations on file systems and their components, such as paths, regular files, and directories. - C++17

Proof without words

is a proof of an identity or mathematical statement which can be demonstrated as self-evident by a diagram without any accompanying explanatory text. - wikipedia

Doom 3

With the release of the source code to both Doom 3 and the later BFG Edition, there now exists three options for Linux users wanting to play the game. Having gone through Doom 3 again, I decided it was time for me to compare them and give my thoughts on both the game and which of the three versions are best for Linux users in 2017. - Playing Doom 3 on Linux in 2017

Chat on LAN

iptux is a very convenient GUI-based program. You can even send files (and entire folder) - SE

Appimage

AppImage is a format to distribute an entire application as a single executable file. To run the app, an user simply needs to run this file — there’s no intermediate installation step. The application runs off this package, and it doesn’t place files on the base system. In addition, the AppImage file contains all libraries and files it needs to run, and this allows them to work on a large number of distributions. - What is an AppImage?

Selling X

  • What is X ?
  • The problem that X solves and why it matters ?
  • How it solves the problem ?
  • Why it is well suited to solve these problem ?
  • How can I get started using X ?

Multi image usb boot

With ventoy, you don’t need to format the disk over and over, you just need to copy the ISO/WIM/IMG/EFI files to the USB drive and boot them directly. - Ventoy / HN

moreutils (cli)

  • chronic: runs a command quietly unless it fails
  • combine: combine the lines in two files using boolean operations
  • errno: look up errno names and descriptions
  • ifdata: get network interface info without parsing ifconfig output
  • ifne: run a program if the standard input is not empty
  • isutf8: check if a file or standard input is utf-8
  • lckdo: execute a program with a lock held
  • mispipe: pipe two commands, returning the exit status of the first
  • parallel - run multiple jobs at once
  • pee: tee standard input to pipes
  • sponge: soak up standard input and write to a file
  • ts: timestamp standard input
  • vidir: edit a directory in your text editor
  • vipe: insert a text editor into a pipe
  • zrun: automatically uncompress arguments to command

Sqlite

SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world. SQLite is built into all mobile phones and most computers and comes bundled inside countless other applications that people use every day. - Home

Statement vs Expression

“Somebody” ignored the wisdom of Lisp, which was “everything is an expression and evaluates to a value” (no statements vs expressions), and made assignment a statement in Python years ago. - Python Makes me Sad Again / HN

Javascript

JavaScript is a scripting language that allows to dynamically change the DOM and style of a page, either by querying more information from the backend as needed or by performing computations and changes based on user input directly in the web browser. - A Complete Overview of Front-End Development in 2021

SeaweedFS

SeaweedFS is a simple and highly scalable distributed file system. - Home / HN

Storing a million images in the filesystem

Most of the newer systems I’ve worked with have pushed the file storage to the file system, and relied on databases for nothing more than indexing. File systems are designed to take that sort of abuse, they’re much easier to expand, and you seldom lose the whole file system if one entry gets corrupted. - SO

Fuzzing

n essence, I created a text file containing just “hello” and asked the fuzzer to keep feeding it to a program that expects a JPEG image… Such a fuzzing run would be normally completely pointless: there is essentially no chance that a “hello” could be ever turned into a valid JPEG by a traditional, format-agnostic fuzzer, since the probability that dozens of random tweaks would align just right is astronomically low. - Pulling JPEGs out of thin air

Learn in public

You already know that you will never be done learning. But most people “learn in private”, and lurk. They consume content without creating any themselves. Again, that’s fine, but we’re here to talk about being in the top quintile. What you do here is to have a habit of creating learning exhaust - The fastest way to learn / HN

The Meson build system

The main design point of Meson is that every moment a developer spends writing or debugging build definitions is a second wasted. So is every second spent waiting for the build system to actually start compiling code. - Meson

Influence of infill %

The key parameters we look into are infill %, layer height and infill pattern. In the main body of this study, we provide a detailed description of the influence these parameters have on max stress, elongation at break, rigidity (Young Modulus) and yield stress. - my3dmatter

Hypercard

The Internet Archive has a large collection[1] (3,500+) of HyperCard stacks that can be run directly in the browser (using in-browser emulation of an old Mac Plus). - HN

FUSE Filesystem

FUSE (Filesystem in Userspace) is an interface for userspace programs to export a filesystem to the Linux kernel. The FUSE project consists of two components: the fuse kernel module (maintained in the regular kernel repositories) and the libfuse userspace library (maintained in this repository). libfuse provides the reference implementation for communicating with the FUSE kernel module. - libfuse

Ruby one liner

The -n flag wraps your executed one-liner in an implicit while gets … end block. When you combine this with the usage of Ruby’s special global variable $_, which stores the result of the most recent Kernel.gets command, you can do some nice (and readable) file processing! - Smooth Ruby One-Liners

Hyperbolic function

La courbe représentative de la fonction cosh sur ℝ décrit une chaînette, c’est-à-dire la forme d’un câble homogène fixé aux deux extrémités et soumis à la pesanteur. - wikipedia

Open Source

You are not entitled to the attention of others. You are not entitled to having value attached to your complaints. You are not entitled to this explanation. - Open Source is Not About You

LackRack

the LackRack is the ultimate, low-cost, high shininess solution for your modular datacenter-in-the-living-room. Featuring the LACK (side table) from Ikea, the LackRack is an easy-to-implement, exact-fit datacenter building block. It’s a little known fact that we have seen Google engineers tinker with Lack tables since way back in 2009. - LackRack

Building a Cost-Conscious, Faster-Than-Gigabit Network

I think what might be even more exciting to the general public is that a 10Gb Ethernet network can be built for under $40 and connect two computers together. In my case, it cost an additional $80 to add a third computer. A fourth computer would be even more expensive (8 total network interfaces, 6 total cables), so at this point it probably starts to make more sense to consider getting a switch. - briancmoses.com

Radeon Open Compute (ROCm)

ROCm is focused on using AMD GPUs to accelerate computational tasks such as machine learning, engineering workloads, and scientific computing. - github / Doc / HN

Building a KVM over IP with Raspberry Pi

TinyPilot is my inexpensive, open-source device for controlling computers remotely. It works even before the operating system boots, so I use TinyPilot to install new OSes and debug boot failures on my bare metal homelab servers. - article - HN

Memtest86+

After a long hiatus without updates and following numerous requests, I’ve started compiling many codes branches to release public builds again! Here is Memtest86+ 5.31b, with many bug fixes in the core functions. Home

Python

I don’t have any issues with Python’s packaging ecosystem anymore, having settled comfortably into a pyenv+virtualenv+pip-tools as my “stack” after going around the block a few times.

But even so, I must recognise how awful the experience is for new users. It’s taken me years to settle into this system, and it can take half a day to get someone up to speed with these tools if they haven’t used them. - HN

Jupyter

Open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text - Jupyter

MuZero

MuZero takes the ultimate next step. Not only does MuZero deny itself human strategy to learn from. It isn’t even shown the rules of the game. - How To Build Your Own MuZero AI

Citrus (parser)

Citrus is a compact and powerful parsing library for Ruby that combines the elegance and expressiveness of the language with the simplicity and power of parsing expressions. - Abandoned Project

Treetop (parser)

Treetop is a Ruby library that allows you to create parsers easily by describing them using a Parsing Expression Grammar (PEG). - A quick intro

Reverse engineering a camera protocol for fun and profit

Bogus enough that I decided to pwn the camera, reverse engineer the protocol, and write my own software to get the video stream. The end result is a new piece of open-source software called Neolink, which allows Blue Iris, Shinobi, or other NVR software to receive video from unmodified Reolink cameras. - &> /dev/null - HN

Monkey Island

A youth named Guybrush Threepwood arrives on the fictional Mêlée Island, with the desire to become a pirate. He seeks out the island’s pirate leaders, who set him three trials that must be completed to become a pirate: winning a sword duel against Carla, the island’s resident swordmaster, finding a buried treasure, and stealing a valuable idol from the governor’s mansion. - wikipedia

WebGL Fundamental

These are a set of articles that teach WebGL from basic principles. They are NOT old rehashed out of date OpenGL articles like many others on the net. They are entirely new, discarding the old out of date ideas and bringing you to a full understanding of what WebGL really is and how it really works. - WebGL Fundamentals

XP-Pen Artist 12

Compact Design of 11.6 Inch FHD display with 178° degree of visual angle , 16.7M Great color and 1920x1080 resolution ,6 handy shortcut keys with a slim touch Pad - support / amazon

RedShift

Experimentation for getting submarine environment for night work.

The Center of the Pixel is (0.5, 0.5)

Pixel centers at (0.5, 0.5) is the convention adopted by all major graphics APIs (OpenGL, DirectX, Vulkan, Metal). That’s because it makes the math, especially around image scaling, becomes a lot simpler. - HN

Another Doom Clone (13k)

Why create a FPS in JavaScript in a total of 13k (compressed)? There are a few reasons. But probably the best answer is that the JS13K contest FAQ answers the question “Can I use WebGL?” with “Yes, though it might be hard to fit it into 13 kilobytes if you plan on doing an FPS game.” - Nicholas Carlini

Event Machine (ruby)

EventMachine is an event-driven I/O and lightweight concurrency library for Ruby. It provides event-driven I/O using the Reactor pattern, much like JBoss Netty, Apache MINA, Python’s Twisted, Node.js, libevent and libev. - github

Rewrite vs refactor

Whether you rewrite or refactor, the lesson is the same: You have to grind your way into the good architecture. It doesn’t become good because the code is fresh, but because you have battle scars to show. And a success story in that case comes from having a complete learning loop. In a lot of orgs the learning itself is argued against for one reason or another - development proceeds with as little feedback on quality as can be gotten away with. - HN

Automatic Screw Sorter

You know you want one! If you have mountains of unsorted screws in your workshop, you probably spend lots of time looking for “just the right” screws for a job. - instructable

Enterprise

I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated. - Poul Anderson

CAD Terminology

  • Chamfer Break sharp edges with a bevel. Define by the distance to break from the edge and by the angle made with the surface.
  • Fillet Round sharp interior and exterior edges and define as a standard constant radius, more stylized conic or variable.

Event[0]

a sci-fi narrative exploration game where you build a relationship with a lonely spaceship computer to get home to Earth. - youtube

Open Tomb (Raider)

OpenTomb is an open-source re-implementation of the classic Tomb Raider engine, intended to play levels from all classic-era Tomb Raider games (1—5), as well as custom TRLE levels. - home

Icosahedron

The verticies of an icosahedron (20 sided shape) can actually be created using only three rectangles at right angles to each other. - Tinkerings

ocrmypdf (ocr)

OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched - Home / HN

Battle-tested

20 years of real world testing is worth a lot than some unit test suite. - HN

Kernel Virtual Machine (KVM)

Many developers, users, and entire industries rely on virtualization, as provided by software like Xen, QEMU/KVM, or kvmtool. While QEMU can run a software-based virtual machine, and Xen can run cooperating paravirtualized OSes without hardware support, most current uses and deployments of virtualization rely on hardware-accelerated virtualization, as provided on many modern hardware platforms. Linux supports hardware virtualization via the Kernel Virtual Machine (KVM) API. In this article, we’ll take a closer look at the KVM API, using it to directly set up a virtual machine without using any existing virtual machine implementation. - lwn

Beam search

a classic greedy algorithm merging the breadth-first search approach with a heuristic evaluation function to prune nodes on each level of the tree… Beam Search is considered a good choice for games that have limited interaction with the oppo- nent(s), so the planning part is more important than the exact opponent prediction - wikipedia

Triangle Rectangle

En géométrie non euclidienne, un triangle rectangle sphérique peut posséder deux ou trois angles droits. - wikipedia

Rule of 3

You can be quite good at 3 things (give or take). One of them will probably be your job. One will probably be your relationships. You have time for 1 more. If you keep changing your mind about what that last one will be, then you will only be good at 2 things. There are ways to be good at only 1 thing as well…. or even 0… - HN

Entity component system (ECS)

An entity system is simply a part of your program that uses a particular way of breaking up the logic and variables of your program into source code. - Part2

Cascading Failure

A cascading failure is a process in a system of interconnected parts in which the failure of one or few parts can trigger the failure of other parts and so on. Such a failure may happen in many types of systems, including power transmission, computer networking, finance, transportation systems, organisms, the human body, and ecosystems. - wikipedia

Blender

Blender is not a parametric modeler, so much as to say that object shapes are defined and placed in a modifier stack that can then later be changed.

0.999... == 1.0

More generally, every nonzero terminating decimal has two equal representations (for example, 8.32 and 8.31999…), which is a property of all base representations. The utilitarian preference for the terminating decimal representation contributes to the misconception that it is the only representation. For this and other reasons—such as rigorous proofs relying on non-elementary techniques, properties, or disciplines—some people can find the equality sufficiently counterintuitive that they question or reject it. This has been the subject of several studies in mathematics education. - wikipedia - HN

Conversations with a six-year-old on functional programming

“A function is like a machine where you put something in one end and something comes out the other end. For example, maybe you put a number in, and the number that is one bigger comes out. So if you put in three, four comes out, or if you put in six, seven comes out.” This clearly made sense to him, so I continued, “The type of a function machine tells you what kinds of things you put in and what kinds of things come out. So maybe you put a number in and get a number out. Or maybe you put in a list of numbers and get a number out.” He interrupted excitedly, “Or maybe you could put words in??” “Yes, exactly! Maybe you can put words in and get words out. Or maybe there is a function machine where you put other function machines in and get function machines out!” He gasped in astonishment at the idea of putting function machines into function machines. - Brent - HN

Merits

Despite the moral assurance and personal flattery that meritocracy offers to the successful, it ought to be abandoned both as a belief about how the world works and as a general social ideal. It’s false, and believing in it encourages selfishness, discrimination and indifference to the plight of the unfortunate. - Clifton Mark

reMarkable 2

The reMarkable is a paper tablet for those who prefer writing on paper, rather than keyboards. Its remarkably fast paper-white display, Linux based operating system and awesome community make it highly attractive amongst hackers and developers. - r/RemarkableTablet / reMarkable Guide

How to flash firmware under Linux in practice?

Well, I am feeling too old for jumping through several burning hoops to upgrade several firmwares via the usual vendor-specific way: Download some DOS tools, waste some time creating a (Free-)DOS boot medium and wasting more time to make the BIOS actually boot from that and finally flash the firmware upgrade. This is so 1980-ies. - StackExchange

Multi-Action Adversarial Games

In adversarial games, it is common that players take turns and hence the active player alternates between plies of the tree. The well-known Minimax algorithm makes use of this. However, in Hero Academy players take several actions before their turn ends. One possibility would be to encode multiple actions as one multi-action, e.g. as an array of actions, and assign itto one edge. Due to the number of possible permutations, this would raise the number of child nodes for a given game state immensely. Therefore, we decided to model each action as its own node, trading tree breadth for depth. - Togelius

Tensegrity

This is a hanging table top where tension forces are used to keep the table upright and balanced instead of compression forces on standard legs. The end result is an object that seems to defy gravity and physics. - thingiverse / wiki / HN

Hamiltonian path

A Hamiltonian path (or traceable path) is a path in an undirected or directed graph that visits each vertex exactly once… Determining whether such paths and cycles exist in graphs is the Hamiltonian path problem, which is NP-complete. - wikipedia

Cognitive Biases In Software Development

There’s also cognitive bias bias - prematurely jumping to the conclusion that some opinion is simply based on cognitive bias, and should therefore be dismissed or contradicted. Basically, it’s good to use awareness of cognitive bias to moderate your own thinking, but if you signal to others that you think they are labouring under some bias don’t be surprised if they shut down the discussion ASAP. HN / article

Nibble (4bits)

The nibble is used to describe the amount of memory used to store a digit of a number stored in packed decimal format (BCD) within an IBM mainframe. This technique is used to make computations faster and debugging easier. An 8-bit byte is split in half and each nibble is used to store one decimal digit. - wikipedia

Mixmax (MCTS)

MCTS has been blamed for cowardly behavior in the sense that it often prefers a safer, certain option over a more promising but uncertain outcome. To change this behavior, [1] proposed to use MixMax, which uses a mix between the maximum and the average reward -

Defunctionalisation

Defunctionalisation is a well-known technique among compiler writers, but I consider it to be under-appreciated as a tool for writing good software more generally. It pairs up particularly well with the “initial algebra” pattern. - Patrick Stevens - HN

Left Pack (AVX)

If you have an input array, and an output array, but you only want to write those elements which pass a certain condition, what would be the most efficient way to do this in AVX2? - SO

MOV is Turing Complete

The instruction we choose is mov, which can do both loads and stores. We use no unusual addressing modes, self-modifying code, or runtime code generation. Using just this instruction (anda single unconditional branch at the end of the program to make non termination possible), we demonstrate how an arbitrary Turing machine can be simulated. - pdf / HN

Gears (Theory)

This problem can be solved by ensuring that the driving wheel physically pushes the driven wheel. This is where gears come in. Because the teeth of two meshed gears are interlocked with each other, the driving gear ends up pressing directly against the driven gear Bartosz Ciechanowski - HN

A Big Little Idea Called Legibility

How, across dozens of domains, ranging from agriculture and forestry, to urban planning and census-taking, a very predictable failure pattern keeps recurring… The big mistake in this pattern of failure is projecting your subjective lack of comprehension onto the object you are looking at, as “irrationality.” We make this mistake because we are tempted by a desire for legibility. - Venkatesh Rao / HN

Path To Craftsmanship: Don’t Buy Awful Safety Gear

I’ve spent thousands of terrible long hours in safety gear working in the chemical industry. I was also fortunate to have a company who frequently searched for the best safety equipment as part of their regular program. I got to try out a lot. - Hackaday

LEGO sorting machine

Over two years in the making, this is the world’s first Universal LEGO Sorting Machine, an AI-powered automated sorting machine that is capable of recognizing and sorting any LEGO part that has ever been produced. - Daniel West

LASER

TL;DR version: Don’t waste your money on Cubiio. You’re never going to see it. If you somehow get it, you’ll be breaking the law by using it. - Laser Products I Hate

The Workbench

Making use of existing tools and being able to manage their shortcomings is an important engineering skill. - HN

Adam & Eve never met ?

Adam and Eve did exist… in a certain sense! In this episode, we’re talking about human genetics, chromosomes, and common ancestors. - youtube

Inkscape (vector drawing)

Inkscape is an open-source vector graphics editor similar to Adobe Illustrator, Corel Draw, Freehand, or Xara X. What sets Inkscape apart is its use of Scalable Vector Graphics (SVG)… - Home

The Expert

An expert is a person who has made all the mistakes that can be made in a very narrow field. - Niels Bohr

Strandbeest - Walking Pod

The Playa Crawler is what’s considered a “mutant vehicle” or “art car” and is a piece of kinetic art. I made it to be used as my own personal vehicle to get around at Burning Man and i wanted something interesting and unique so I created a chair that walks with the legs. the leg linkage was invented by Theo Jansen, a Dutch artist who creates this massive walking sculptures called Strandbeest that walk along the beach being pushed by the wind. - Playa crawler - Strandbeest

Syncthing

Syncthing est un logiciel open source. Il permet de synchroniser les répertoires de plusieurs machines à travers Internet au moyen d’une connexion P2P sécurisée. Ils fonctionnent sur diverses plateformes en plus de Linux, dont Windows, OS-X, Android… Ce qui permet de créer son propre cloud sans passer par des serveurs hébergés par des tiers ! - ubuntu / Home

OctoPi (obsolete)

A Raspberry Pi distribution for 3d printers. It includes the OctoPrint host software for 3d printers out of the box and mjpg-streamer with RaspiCam support for live viewing of prints and timelapse video creation. - OctoPi

CRCs vs Hash Functions

It’s inappropriate to use a CRC in place of a general purpose hash function because CRCs usually have biased output. It’s equally inappropriate to use a general purpose hash function in place of a CRC because general purpose hash functions usually do not make any guarantees on the conditions under which hash collisions can occur. - CRCs vs Hash Functions

Why the fuck was I breached?

The fucking KGB used overwhelming force to gain access to some data. But we have since told them to not do it again, so it will never happen again. - Home / HN

Atomic Number

Traditional multi-threading approaches use locks to protect shared resources. Synchronization objects like Semaphores provide mechanisms for the programmer to write code that doesn’t modify a shared resource concurrently. The synchronization approaches block other threads when one of the thread is modifying a shared resource. Obviously blocked threads are not doing meaningful work waiting for the lock to be released. Atomic operations on the contrast are based on non-blocking algorithms in which threads waiting for shared resources don’t get postponed. Atomic operations are implemented using hardware primitives like compare and swap (CAS) which are atomic instructions used in multi-threading for synchronization. - SO

OSTree (backup)

OSTree operates at the Unix filesystem layer, it works on top of any filesystem or block storage layout; it’s possible to replicate a given filesystem tree from an OSTree repository into plain ext4, BTRFS, XFS, or in general any Unix-compatible filesystem that supports hard links. OSTree / HN

Code vs Data

I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships. - Linus Torvarld

Borg / Restic (backup)

Restic is borg with more whistles (backing up to various places), but borg is the more trusted tool with the longer history (just use SSH and be done with it). - HN

Uptime 15,364 days (Voyager I)

Many applications running for long periods of time eventually transition to broken states, and cannot recover except by being restarted. - HN

Financing Research

If you pay a man a salary for doing research, he and you will want to have something to point to at the end of the year to show that the money has not been wasted. In promising work of the highest class, however, results do not come in this regular fashion, in fact years may pass without any tangible result being obtained, and the position of the paid worker would be very embarrassing and he would naturally take to work on a lower, or at any rate a different plane where he could be sure of getting year by year tangible results which would justify his salary. The position is this: You want one kind of research, but, if you pay a man to do it, it will drive him to research of a different kind. The only thing to do is to pay him for doing something else and give him enough leisure to do research for the love of it. - Attributed to J.J. Thomson

Premature optimization

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified. It is often a mistake to make a priori judgments about what parts of a program are really critical, since the universal experience of programmers who have been using measurement tools has been that their intuitive guesses fail. - Donald Knuth

CoinOPS

Currently at version 8, CoinOPS is a front-end that is intended to be a games repository with a simple, attractive, and intuitive interface - Home

DIY Cable Chain

If you’ve built a 3D printer, CNC, laser cutter, or basically any piece of electrical equipment that moves around, then you’ve run into the problem of securing the bundle of wires that such machines always require. The easy way out is to zip tie them all up into a tight harness or put them in commercially available wraps or sleeves, but these don’t really impart any mechanical strength on the wires. With repetitive motion it’s not unheard of to break a conductor or two, causing intermittent failures and generally leading to a painful diagnostic session trying to isolate the broken wire. - hackaday

Make Linux run blazing fast (again)

If you’re not into currency trading or high finance or military contracting or anything of that nature and you’d just like to get maximum performance for your Steam games then adding this is simple switch to your kernel parameters will leave you wide open to all the security risks for maximum excitement and squeeze back every bit of performance you used to get from your Intel CPU: mitigations=off - linuxreview.org

The Moon

About making 3D ray-traced model of the Moon, in Python, using real measurements. - medium / HN

Syntax matters

Programming language experts like to claim that syntax doesn’t matter, that semantics is all that counts. Don’t believe them! They’re overrotating on a common, pre-rigorous misunderstanding of language design as superficially aesthetic. The study of semantics does provide deep insights into the mechanics of languages—but the mechanism is not the mental model. Design requires engaging with the way people express their programs, and syntax is a “tool of thought”. - Stroustrup’s Rule and Layering Over Time

D Language

D is a general-purpose programming language with static typing, systems-level access, and C-like syntax. - Home

Voronoi Diagram

a Voronoi diagram is a partition of a plane into regions close to each of a given set of objects. - wikipedia

Meshlab

the open source system for processing and editing 3D triangular meshes. - Home

Climate War

Comment osez-vous ? Vous avez volé mes rêves et mon enfance avec vos paroles creuses. Les gens souffrent, les gens meurent. Des écosystèmes entiers s’effondrent, nous sommes au début d’une extinction de masse et tout ce dont vous pouvez parler, c’est de l’argent et du conte de fée d’une croissance économique éternelle. Comment osez-vous ? Depuis plus de quarante ans, la science est claire comme du cristal. Comment osez-vous regarder ailleurs et venir ici en prétendant que vous en faites assez ? (…) Vous dites que vous nous entendez et que vous comprenez l’urgence mais je ne veux pas le croire. - Greta Thunberg

Systematic Error Handling in C++ (2012 - Andrei)

C++ and Beyond 2012

  • error handling is about error in the inputs, not bug.
    • hardware work
    • program is correct
    • opposed tp general reliability
    • but consider - network error
      • device error
      • data error

Hypothesis

  • bad error handling engenders errors
  • insufficient testing make improbable error scenario
  • legit error lead to corrupt programs

Bit Permutations

This is a description of several bit permutation types as well as some routines performing them - home

Line spent

… if we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”: the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger. - Edsger W. Dijkstra

Airsim

AirSim is a simulator for drones, cars and more, built on Unreal Engine (we now also have an experimental Unity release). It is open-source, cross platform, and supports hardware-in-loop with popular flight controllers such as PX4 for physically and visually realistic simulations. It is developed as an Unreal plugin that can simply be dropped into any Unreal environment. Similarly, we have an experimental release for a Unity plugin. - github - HN

Project Naptha (ocr)

automatically applies state-of-the-art computer vision algorithms on every image you see while browsing the web. The result is a seamless and intuitive experience, where you can highlight as well as copy and paste and even edit and translate the text formerly trapped within an image. - Project Naptha

Box86

Box86 lets you run x86 Linux programs (such as games) on non-x86 Linux systems, like ARM - [HN]

Misunderstanding Exceptions

It is funny how people think that the important thing about exceptions is handling them. That is not the important thing about exceptions. In a well-written application there’s a ratio of ten to one, in my opinion, of try finally to try catch. - Anders Hejlsberg, designer of Turbo Pascal, Delphi, and C#

Mechpen

The idea was to have a robot arm that could sketch on a rather large surface. - alex

Identity?

The traditional definition of multi-factor authentication (although I couldn’t find a reference to where it originated) is that you should have two or more of:
Something you know (eg. a password)
Something you have (eg. a card)
Something you are (eg. a fingerprint or retinal scan).
The three factors aren’t independent / HN

Screw & Threads

In traditional CAD systems modelling screw threads is discouraged because it puts a big load on the modelling kernel, as well as on the rendering of the shapes… However, with the popularization of additive manufacturing (3D printing), there is now a real need to model 3D threads, in order to print them exactly as designed. - Thread for Screw Tutorial / Thread Anatomy- (In less than 5 min!)

Perceptual Hash (phash)

A perceptual hash is a fingerprint of a multimedia file derived from various features from its content. Unlike cryptographic hash functions which rely on the avalanche effect of small changes in input leading to drastic changes in the output, perceptual hashes are “close” to one another if the features are similar. - phash.org

Don’t invert that matrix

There is hardly ever a good reason to invert a matrix… you’re still better off solving Ax = b than multiplying by A-1, even if the computation of A-1 came for free. Solving the system is more numerically accurate than the performing the matrix multiplication - Cook

# Pico-8 - Virtual Fantasy Console

PICO-8 is a fantasy console for making, sharing and playing tiny games and other computer programs. It feels like a regular console, but runs on Windows / Mac / Linux. When you turn it on, the machine greets you with a commandline, a suite of cartridge creation tools, and an online cartridge browser called SPLORE. - r/pico8 / Showcase / online / v0.2.6d

Hough Transform

The Hough transform and the Radon transform are indeed very similar to each other and their relation can be loosely defined as the former being a discretized form of the latter… However, the Hough transform is a quick algorithm that can be prone to certain artifacts. Radon, being more mathematically sound, is more accurate but slower. - stack

Le Monde ...

… est composé de flèches et de molécules, et d’électricité,comme le Big-Bang tu vois, et tout ça ensemble, ça forme l’Univers. - JCVD

# Docker container & Cgroup

Docker’s value proposition is convenient. reproducible, self-contained packaging of software. It’s the ability to deploy pieces of existing, battle-tested, gnarly and imperfect software next to each other, and care not about their conflicting or missing dependencies. It’s more like Flatpak or AppImage, only more popular and easy. - HN / The What, Why and How of Containers

Wheel syncronisation

The right way to do this is to measure the speed of each wheel and use a PID library to set the PWM output to each motor in order to obtain a commanded motor speed. This is a nice way to do it because you can change the setpoints at will to change the speed or to steer (use different commands). - forum

Theoremes du point fixe

Etant donné un ensemble E et une famille de fonctions f définies sur E et à valeurs dans E, ces théorèmes permettent de justifier qu’il existe un élément x de E tel que pour toutes les fonctions considérées on ait1 f ( x ) = x {\displaystyle f(x)=x} f(x)=x. - wikipedia

False simplicity

How interactions between many pieces makes the whole thing complex - HN

Fuzzy down selection (fzf)

FZF is a fuzzy finder for your terminal, it is a command line application that filters each line from given input with a query that the user types. When the query changes, the results update in realtime. - Article / HN

Calipers

It’s tedious to write down digital caliper measurements while working with research samples since you have to set the calipers down each time to record the value. Article / hackaday / HN

Memoization

an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again. - wikipedia

Tail call optimisation (TCO)

avoid allocating a new stack frame for a function because the calling function will simply return the value that it gets from the called function. The most common use is tail-recursion, where a recursive function written to take advantage of tail-call optimization can use constant stack space. - SO

Tesseract + OCRFeeder (OCR)

Tesseract 4 adds a new neural net (LSTM) based OCR engine which is focused on line recognition, but also still supports the legacy Tesseract OCR engine of Tesseract 3 which works by recognizing character patterns. - Github

The Circle

How do we know that the circumference of every circle has the same ratio π to its diameter? The following theorem assures us. Circles are to one another as their circumscribed squares - Euclid, XII, 2

Hyrum's Law

With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody. Hyrum’s Law - [HN]

Rolex

Si tu as une rolex au poignet, mais que tu ne dis que des conneries, est-ce que tu as vraiment réussi ta vie ? - Yann Barthez

Editors Journey

  • … - VS Code (Win/linux)
  • 2018 - Sublime text (Win/linux)
  • 2015 - Visual Studio (Win)
  • 2000 - (X)/Emacs (sun)
  • 1995 - BBEdit / CodeWarrior (Mac)

Advanced Data Struture

data structures are essential building blocks in obtaining efficient algorithms. This course covers major results and current research directions in data structures - Erik Demaine / [HN]

# Systemd

We can create all sockets for all daemons in one step in the init system, and then in a second step run all daemons at once. - Rethinking PID 1 / systemd

A* search

A* is a modification of Dijkstra’s Algorithm that is optimized for a single destination. Dijkstra’s Algorithm can find paths to all locations; A* finds paths to one location, or the closest of several locations. It prioritizes paths that seem to be leading closer to a goal. - Red Blob Games / Introduction to A*

Sanity

Human beings live in a state of mind called ‘sanity’ on a small planet in space. They are not quite sure whether the space around them is infinite or not (either way it is unthinkable). If they think about time, they find it inconceivable that it had a beginning. It is also inconceivable that it did not have a beginning. Thoughts of this kind are not disturbing to ‘sanity’, which is obviously a remarkable phenomenon and deserving more recognition. - The Human Evasion - [HN]

Find duplicate

rdfind /mnt/Photo 		# look for duplicate and store the one found in results.txt

Copy file with progress (cp)

A command that looks for coreutils basic commands (cp, mv, dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput, and provides a “top-like” mode (monitoring). - progress

NFS - Network File System

In a closed network (where you know every device), NFS is a fine choice. With a good network, throughput it disgustingly fast and at the same time less CPU intensive on the server. It’s very simple to set up and you can toggle readonly on shares you don’t need to be writeable. - NFS vs Samba

Kernighan's lever

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it? — The Elements of Programming Style, 2nd edition, chapter 2

Use mmap with care

When we implemented the git portion of Sublime Merge, we chose to use mmap for reading git object files. This turned out to be considerably more difficult than we had first thought. Using mmap in desktop applications has some serious caveats, and here’s why… - Sublime HQ - [HN]

# SSH

Your ssh key should never leave a host. That should be a policy and you should write rules to detect when that policy is being violated (check for processes accessing the file).

If you need access from N computers you should be generating N keys. - HN

Learning to see (Welch Labs)

In this series, we’ll explore the complex landscape of machine learning and artificial intelligence through one example from the field of computer vision: using a decision tree to count the number of fingers in an image. It’s gonna be crazy. Welch Labs

Solvespace

SOLVESPACE is a free (GPLv3) parametric 3d CAD tool - Home

OnShape

Software-as-a-Service (SaaS) CAD / used to have a free tier - Signin

Have We Forgotten about Geometry in Computer Vision?

Deep learning has revolutionised computer vision. Today, there are not many problems where the best performing solution is not based on an end-to-end deep learning model. In particular, convolutional neural networks are popular as they tend to work fairly well out of the box… I am going to argue that people often apply deep learning models naively to computer vision problems – and that we can do better. - article / [HN]

YOLO: Real-Time Object Detection

You only look once (YOLO) is a state-of-the-art, real-time object detection system. On a Pascal Titan X it processes images at 30 FPS and has a mAP of 57.9% on COCO test-dev. - Home / [HN]

Golang

a language that makes it quite easy for enterprises to deal with developers as cogs. – HN

Temperature sensor tutorial (arduino)

These sensors use a solid-state technique to determine the temperature. … they use the fact as temperature increases, the votage across a diode increases at a known rate. By precisely amplifying the voltage change, it is easy to genereate an analog signal that is directly proportional to temperature. Because these sensors have no moving parts, they are precise, never wear out, don’t need calibration, work under many environmental conditions, and are consistant between sensors and readings. - Tutorial

Heimdall Application Dashboard

One of the benefits to Heimdall is you can add a link to absolutely anything, whether it’s intrinsically supported or not. With a generic item, you just fill in the name, background colour, add an icon if you want (if you don’t a default Heimdall icon will be used), and enter the link url and it will be added. - heimdall

# ZFS (Ubuntu)

ZFS unlike most other storage systems, it unifies both of these roles and acts as both the volume manager and the file system. Therefore, it has complete knowledge of both the physical disks and volumes - wikipedia

Hacking the Attacknid

The hexapod is the clever design work of Jaimie Mantzel, a somewhat eccentric Canadian inventor. In fact, the Attacknid is really a miniature version of the Giant Robot Mantzel recently finished building. What makes Mantzel’s design impressive is that despite its six legs, only two DC motors control its movement ­— compare that with the 12 servo motors minimum you’d find in any other six-legged walker. - Arduino project: Hacking the Attacknid

Software diseconomy of scale

Small teams frequently outperform large team, five people working as a tight team will be far more productive per person than a team of 50, or even 15. (The Quattro Pro development team in the early 1990s is probably the best documented example of this.) - article

The Big Hex Machine

The Big Hex Machine is a giant, yet simple, 16-bit computer specifically designed to explain how a computer works. Its instruction set requires a very small compiler, but it is powerful enough to implement useful programs. - Home

500 Byte Images: The Haiku Vector Icon Format

Haiku uses a custom vector image format to store icons… The goal of the Haiku Vector Icon Format (HVIF) is to make vector icon files as small as possible. This allows Haiku to display icons as several sizes while still keeping the files small enough to fit into an inode (i.e., inside a file’s metadata). - article

The lost Vikings

In my previous blog post I talked about reverse engineering the virtual machine used to implement objects in the Lost Vikings… In the first blog post I suggested that creating a simple language and compiler would be useful for further reverse engineering the virtual machine. So, I did. - Recompiling the Lost Vikings / HN

Image viewers

Fast and quick browsing, with few features & easy shell integratoin.

Life objective

Man. Because he sacrifices his health in order to make money. Then he sacrifices money to recuperate his health. And then he is so anxious about the future that he does not enjoy the present; the result being that he does not live in the present or the future; he lives as if he is never going to die, and then dies having never really lived. - Jim Brown [0][1]

The Supreme Backdoor Factory

The author uncovers a huge web of fake accounts across GitHub and SourceForge which are used to push backdoored versions of legitimate software installers. A good reminder to be cautious when downloading “unofficial builds” and to always check checksums for official ones. - [HN] - blog

Thimbleweed Park

The Kickstarter campaign didn’t just earn those $375k they asked for, it went two thirds overboard. This meant that in February 2015 David Fox could join to reunite the Maniac Mansion trio. Three months later Mark also became available for full-time work and with the extra funds in the bank Gary got his #1 player pick to work on the game’s backgrounds. - Points & Click like it is 1990

m4 processor

m4 is a macro processor, in the sense that it copies its input to the output, expanding macros as it goes. Macros are either builtin or user-defined, and can take any number of arguments. Besides just doing macro expansion, m4 has builtin functions for including named files, running shell commands, doing integer arithmetic, manipulating text in various ways, performing recursion, etc.… m4 can be used either as a front-end to a compiler, or as a macro processor in its own right. - GNU M4

Lisp macros for C

A macro is a function that operates on your code’s abstract syntax tree rather than values. Macros in cmacro have nothing to do with the C preprocessor except they happen at compile time, and have no knowledge of run-time values.

Macros are written directly in the source, and the cmc program is used to process a file with macros to a macroexpanded file. - cmacro

Abusing Forced Inline in C

presents the reader ways to abuse forced inlining, which is supported by both GCC and Microsoft Visual C/C++ compiler. - blog

La Réserve de Patzounga

Au coeur de la reserve de Patzounga, c’est établit une singulière communauté de petit mamifère…

Particule fine

PM2.5 is of interest because it’s a size that your body has a harder time getting rid of. Larger size particles have an easier time being captured by the upper respiratory system. Smaller things might make it into the blood stream and hopefully be filtered by the kidneys. 2.5 microns is right at the point between where either thing is less likely to happen and instead the stuff might get stuck in your lungs. - HN

Setting Up a Renderfarm (Blender)

The Helmer filing cabinet from IKEA serves as the perfect enclosure for a small farm. It’s actually kind of bizarre how well it houses all the components. And you can pick one of these up for $40 - and even in a few different colors. I feel like RED or YELLOW would make your farm run at least 2% faster - blender tutorial

Chafa

The worst ANSI art renderer, except for all the others - Home

Sound tracker

Furnace – the biggest multi-system chiptune tracker ever made - HN

Compiler for free

Programs that manipulate other programs are powerful, interesting and fun. I’ll use Ruby to take you on a tour of how interpreters and compilers work, introduce the ideas behind a technique called partial evaluation, and explain a surprising computer science result which allows compilers to be generated automatically. - Codon / [HN]

Let's make a Ray-Marcher [SH17C]

Raymarching of distance field proved super powerful for creating rich images with complex shapes procedurally and interesting efficient lighting effects in a minimal amount of code. Not only the actual content creation code modeling was small, but the actual renderer itself, the whole technical setup to sinthetize images was ridiculously compact comparing to a mesh based rasterizer or raytracer. So, the exercise became really fruitful and I produced 5 images in 2008 alone that I presented to the “4 kilobyte Procedural Image” category of different demo partys across Europe. - inigo quilez

PC 2019 (NAS)

After some experience with a small Synology NAS, and experencied the blue led of death (fortunatly solved), I decided to move to my own hardware supporting ZFS with Raid 5. - yves

M2 interface (NGFF)

M.2 is interesting not just because it can speed up storage with PCI Express lanes, but because it can use a whole bunch of different buses too; it stands to replace both mSATA and mini PCI Express, two older standards that have been used for SSDs and Wi-Fi cards in laptops for a while now. Intel’s new Broadwell CPUs and their chipsets include native support for M.2 and PCI Express boot drivers—neither PCIe-connected storage (hi Apple) nor the M.2 connector itself are new, but beginning with Broadwell systems each of those two things will become much more common. - Understanding M.2

Ray Tracing in One Weekend

I decided to adapt my course notes into a how-to, to get you to a cool program as quickly as possible. It will not be a full-featured ray tracer, but it does have the indirect lighting which has made ray tracing a staple in movies. Follow these steps, and the architecture of the ray tracer you produce will be good for extending to a more extensive ray tracer if you get excited and want to pursue that. - Peter Shirley / HN

La malédiction de Cantor

La somme de nos connaissances est toujours inférieure à la somme de celles qui nous manquent. - yduf

The pawn

You are on a gravel path leading north to two snow capped mountains. To the west is a dying forest. Eastward is a vast, grassy plain and the path also continues southward. - online

Architecture Astronauts

When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don’t know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don’t actually mean anything at all.

Sphere surface = 4x its shadow

  • the surface of a sphere is the same as it’s projection on a containing cylinder.
  • it’s equal to 4 times it’s shadow.
  • a rectangle on the sphere and it’s projection on the cylinder account for the same surface.
  • the surface area for a sphere (4.pi.R²) is just the derivative of its volume (4/3.pi.R³).
  • the perimeter of a circle (2.pi.R) is the derivative of its area (pi.R²). (this should be obvious a fundamental calculus)
    3Blue1Brown / [HN]

AVX switch penalty

Every time you improperly switch back and forth between SSE and AVX instructions, you will pay an extremely high (~70) cycle penalty. - [SO]

Does it matters ?

When it starts to matter, I’ll spend the time looking into it. Until then, I try to know just enough to clue me into whether it might matter. - [HN]

Threads

In many environments, multi-threaded code is written in a language that was originally designed without thread support (e.g. C), to which a library of threading primitives was subsequently added. There appears to be a general understanding that this is not the right approach. We provide specific arguments that a pure library approach, in which the compiler is designed independently of threading issues, cannot guarantee correctness of the resulting code. - Cannot Be Implemented As a Library (Boehm)

Unscii

Unscii is a set of bitmapped Unicode fonts based on classic system fonts. Unscii attempts to support character cell art well while also being suitable for terminal and programming use. - Home / [HN]

NegaMax (Minimax)

  • The basis is MiniMax, a literal implementation would involve 2 methods that take turns (mutually recursive), 1 for each side.
  • Lazy programmers turn this into NegaMax, one method with a strategically placed - operator. - SO / wikipedia

# Git

It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows. - Home

Graphviz

Graphviz is open source graph visualization software. It has several main graph layout programs. - Home / online

Reading bits in far too many ways

It turns out that MSB-first and LSB-first packing conventions both have advantages and disadvantages, and it’s much more useful to think of them as tools with different areas of application than it is to designate one as the “right way” and the other as the “wrong way”. - The ryg blog part 1 / 2 / 3

The Hitchhiker's Guide to the Unexpected

Among other things, I’m a systems architect, which means that my job is mostly coming up with broad plans, and taking the merit if they go well and otherwise blaming the developers if it they go wrong. More seriously, a part of my job is helping make abstract plans about systems, in such a way that they are understandable, leave room for developers to make decisions locally about what they mean, but while structuring things in such a way that the biggest minefields one might encounter when the rubber hits the road are taken care of. - Article - [HN]

First layer (calibration)

Getting that first layer right is an indicator of a lot things. Such as, a correctly leveled bed, right filament temperature, correct extrusion amount, etc. In short, getting that first layer right is a good signal* that your print won’t fail. You can save yourself a lot of time catching errors in the first layer(s). Its better to reprint with different settings after only 5 minutes of printing, rather than 5 hours. Also, if your print isn’t sticking, without a desperate application of ducktape, there’s no way the print will succeed. - Perfecting the First Layer

GCode

G-code is the most-used programming language for controlling industrial and hobby machines, such as vinyl cutters, mills, laser cutters, and 3D printers. The G-code “tells” the computerized machines how to make things by specifying coordinates in the X, Y, and Z planes. It instructs the machines where to move, how fast to move, and when to engage the tool. - all3dp / RepRap doc

Amdahl’s law (Random ASCII)

Amdahl’s law says that if you throw enough cores at your problem then the parts that cannot be parallelized will eventually dominate execution. When my work machine has been heavily used for a few days this serialization issue gets bad enough that process-shutdown becomes a significant part of my distributed build times – and more cores can’t help with that. - 24-core CPU and I can’t move my mouse

Documentation

I figured that “There are two types of bad software documentation: math textbooks and cooking recipes. The former does not explain why you are doing things and other helpful context, the latter won’t help you if you need to do something differently, which is almost always.” ahartmetz - on HN

Rise of JSON

Json has taken over the world. Today, when any two applications communicate with each other across the internet, odds are they do so using JSON. Of the ten most popular web APIs, a list consisting mostly of APIs offered by major companies like Google, Facebook, and Twitter, only one API exposes data in XML rather than JSON. - 0b10 - Two-Bit History / The rise and rise of JSON

The Safe Navigation Operator (&.) in Ruby

The most interesting addition to Ruby 2.3.0 is the Safe Navigation Operator(&.). A similar operator has been present in C# and Groovy for a long time with a slightly different syntax - ?.. So what does it do?

ssh-agent

ssh-add -l    # to list the agent's keys, 
ssh-add -D   # to clean out all keys.

Awesome c++

A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things / C++ Blogs

libevent

an event notification library

Shoes! (ruby)

Ever wanted to build a GUI? Annoyed that it’s so much effort? Shoes makes building little graphical programs for Mac, Windows, and Linux super simple. - Home / github

Detecting the use of "curl | bash" server-side

Installing software by piping from curl to bash is obviously a bad idea and a knowledgable user will most likely check the content first. So wouldn’t it be great if a malicious payload would only render when piped to bash? - blog / HN

Anki

Most people think about forgetting as decay, that memories are like footprints in the sand that gradually fade away. But that has been disproved by a lot of research. The memory appears to be gone because you can’t recall it, but we can prove that it’s still there. For instance, you can still recognize a ‘forgotten’ item in a group. Yes, without continued use, things become inaccessible. But they are not gone. - HN

Group mind

A mind that is disconnectable and reconnectable. A brain, for example, is fully physically connected all the time and doesn’t qualify. - What is a group mind

Management & false certainty

I learned long ago never to wrestle with a pig. You get dirty and besides the pig likes it. – G. B. Shaw (misattributed)

That’s all well and good except I’m pretty senior now. Suddenly part of my job is winning arguments. - Abe Winter

Std Allocator

Historically stl::allocator were though to overcome issue with near and far pointer on intel archictecture and share a lot of issue from this time. Andreid revisit how they should have been implemented. - CppCon

Myst

Myst’s gameplay is unusual among adventuring computer games in several ways. The player is provided with very little backstory at the beginning of the game, and no obvious goals or objectives are laid out. - wikipedia

Cache oblivious Tree

Can we design data structures and algorithms that perform optimally regardless of underlying cache sizes?

Jamie Zawinski

One of the best programmers I ever hired had only a High School degree; he’s produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub. - Peter norvig / jwz

Which book ?

I cannot remember the books I’ve read any more than the meals I have eaten;
even so, they have made me. - Ralph Waldo Emerson

Code overfitting

Someone once coined the term code overfitting on HN, which like over engineering makes now a lot of sense to me. For eg:

  • having a code that is too restrictive about its input, enforcing a data model it doesn’t own or even use, but have code that will crash in assert when the model derive from it’s expectation.
  • having a code with a too rigid object or class model, that is tight to a one moment view of the universe, but can’t evolve easily, while not providing additional insight or safety.

uMatrix & uBlock

uBlock is my blacklist. uMatrix is my whitelist. For various reasons, I occasionally need to skip the whitelist, but I never had a reason to turn off the blacklist in a few years of using uBlock. - HN

Another World

A young scientist who, as a result of an experiment gone wrong, finds himself on a dangerous alien world where he is forced to fight for his survival. - wikipedia

d3.js

D3 does not introduce a new visual representation. Unlike Processing, Raphaël, or Protovis*, D3’s vocabulary of graphical marks comes directly from web standards: HTML, SVG, and CSS - d3js.org

How are zlib, gzip and Zip related?

.zip is an archive format using, usually, the Deflate compression method. The .gz gzip format is for single files, also using the Deflate compression method. The zlib library provides Deflate compression and decompression code for use by zip, gzip, png (which uses the zlib wrapper on deflate data), and many other applications. - Mark Adler (SO)

Atmosphere (background noise)

The idea behind myNoise is to use the noises you most enjoy to mask the noises you don’t want to hear: chatty colleagues, your tinnitus, or even your inner voice when you can’t shut it down!

The Myth of RAM

Accessing memory is not a O(1) operation but O(√N). This is a result that holds up both in theory and practice. - ilikebigbits / HN

Forbidden planet (1956)

A starship crew goes to investigate the silence of a planet’s colony only to find two survivors and a deadly secret that one of them has. - 7.7 / wikipedia

Function Length

During my career, I’ve heard many arguments about how long a function should be. This is a proxy for the more important question - when should we enclose code in its own function? - Intention vs Implementation

Logon's run (32k)

Cheating has always been part of demomaking. Smooth animation? think about hardware-scroller: all might be pre-rendered in VRAM, then display on screen is wisely set at each frame by changing pointer to VRAM… Thru the years, I used HW-scrollers in various ways to get some animations which kept improving. Up to today release of “Logon’s run - 3D meets the aging bits”. - Making of / pouet / HN

Le But

Les aventures d’un Directeur d’Usine se débatant dans sa vie professionnelle et personnelle. Très belle prise de recul et remise à plat des notions de management et de gestion. Ce livre bat en brèche toutes les idées préconçues et bouscule l’ordre établi. Comment redresser une usine en se posant les BONNES QUESTIONS ? - amazon

Semantic Compression

So any experienced programmer who’s any good has had to come up with some way — if even just by intuition — of thinking about what it means to program efficiently. By “efficiently”, this doesn’t just mean that the code is optimized. Rather, it means that the development of the code is optimized — that the code is structured in such a way so as to minimize the amount of human effort necessary to type it, get it working, modify it, and debug it enough for it to be shippable. - article - (HN)

Embree Ray Tracing

Embree is an open source high fidelity visualization toolkit for application developers who want to create compelling visual applications to deliver an outstanding user experience on current and future computing architectures. Easy to integrate, Embree provides a blueprint for scalable and efficient Ray Tracing capabilities that are demanded by media and entertainment, product design, energy or scientific visualization applications. - home / overview (Sigraph 2013) / github

UPX

The Ultimate Packer for eXecutables- upx

Let's make a game

Simple and Fast Multimedia Library is a cross-platform software development library designed to provide a simple application programming interface to various multimedia components in computers. - SFML

Kinect

The flurry of enthusiastic Kinect hacking proved there is a market for depth camera peripherals, leading to plug-and-play devices like Intel RealSense to make depth-sensing projects easier. - hackaday

Intel SPMD Program Compiler (Volta)

ispc compiles a C-based SPMD programming language to run on the SIMD units of CPUs; it frequently provides a 3x or more speedup on CPUs with 4-wide vector SSE units and 5x-6x on CPUs with 8-wide AVX vector units, without any of the difficulty of writing intrinsics code. Parallelization across multiple cores is also supported by ispc, making it possible to write programs that achieve performance improvement that scales by both number of cores and vector unit size. - Github / HN

# C++ Lang

This idea of just building a new system over on the side, without any of the problems of the old one, is a fantasy. But it’s a very popular fantasy. - Stroustrup / c++ reference / r/cpp

PGCD

Un algorithme permettant de déterminer le plus grand commun diviseur (PGCD) de deux entiers sans connaître leur factorisation. - Euclide (-300 bc) / Algorithm

Naming

The greater the distance between a name’s declaration and its uses, the longer the name should be. - What’s in a name ?

Android Remote control

SCReen CoPY application provides display and control of Android devices connected on USB. It does not require any root access. It works on GNU/Linux, Windows and Mac OS.- github / HN

Onboarding

Several times in my career, I’ve joined a team whose work was already well under way, where I had a massive knowledge deficit, and didn’t have pre-existing relationships. None of those excuses relieved me from the pressure I felt to establish myself and contribute. Over time, I realized that the natural instinct to push for early impact leads many incoming leaders into challenging relationships as they expose their knowledge deficit and waste time. So, I developed an algorithm that has helped me ramp up quickly — and in several cases — have an impact in a relatively short period of time, while minimizing collateral damage. - Start Algorithm

Mastering Programming

From years of watching master programmers, I have observed certain common patterns in their workflows. From years of coaching skilled journeyman programmers, I have observed the absence of those patterns. I have seen what a difference introducing the patterns can make. - Kent Beck

Rubik Cube

A three dimensional twisty puzzle is usually made of a set of pieces that can change their position through a group of operations, obtaining different combinations. - Ruwix / wikipedia / r/Cubers

Javascript Promise (a review)

Promises are not neutral enough

Even though they fulfill their purpose, JavaScript Promises are an opinionated primitive that introduce a lot of weirdness. This weirdness ends up spreading to other corners of the JavaScript language and ecosystem. Basically Promises are not neutral enough because they introduce 4 opinions:

  • Eager, not lazy
  • No cancellation
  • Never synchronous
  • then() is a mix of map() and flatMap()

Litanie contre la peur (Dune)

Je ne connaîtrai pas la peur, car la peur tue l’esprit.
La peur est la petite mort qui conduit à l’oblitération totale.
J’affronterai ma peur.
Je lui permettrai de passer sur moi, au travers de moi.
Et lorsqu’elle sera passée, je tournerai mon œil intérieur sur son chemin.
Et là où elle sera passée, il n’y aura plus rien.
Rien que moi. - Litanie contre la peur du rituel Bene Gesserit

Beware of auto[&] (c++)

auto deduces its types from initializing expressions, and occasionally, these expressions have unexpected types, which are not what you want. On the other hand, auto has many benefits. - Don’t use C++ auto?

Unit test framework

doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of magnitude) and runtime compared to other feature-rich alternatives. It brings the ability of compiled languages such as D / Rust / Nim to have tests written directly in the production code thanks to a fast, transparent and flexible test runner with a clean interface. - DOCtest

SFINAE (C++)

Substitution Failure Is Not An Error: when creating a candidate set for overload resolution, some (or all) candidates of that set may be the result of instantiated templates with (potentially deduced) template arguments substituted for the corresponding template parameters. If an error occurs during the substitution of a set of arguments for any given template, the compiler removes the potential overload from the candidate set instead of stopping with a compilation error, provided the substitution error is one the C++ standard grants such treatment. If one or more candidates remain and overload resolution succeeds, the invocation is well-formed. - An introduction

Perfect forwarding explained

It means that a function template can pass its arguments through to another function whilst retaining the lvalue/rvalue nature of the function arguments by using std::forward. This is called “perfect forwarding”, avoids excessive copying, and avoids the template author having to write multiple overloads for lvalue and rvalue references.

Cool Retro Terminal

A terminal emulator which mimics the look and feel of the old cathode tube screens. It has been designed to be eye-candy, customizable, and reasonably lightweight. - Cool-retro-term

Voxel Quest

Voxel Quest is … an attempt to explore new areas in rendering, procedural generation, simulation, and AI. At this point, it is entirely free … - Home / Github / youtube

Microcorruption

Scattered throughout the world in locked warehouses are briefcases filled with Cy Yombinator bearer bonds that could be worth billions comma billions of dollars.

You will help steal the briefcases. - Embedded Security CTF / HN

Voxatron

Voxatron is a fantasy console and collection of games made entirely out of voxels (little colourful cubes, kind of). The Alpha version comes with an arena shooter and action-adventure cartridges as well as powerful design tools to make your own voxelly games!

Figurine Paint

Quelle peinture bon marché utiliser pour peindre des figurines imprimées ?

Jekyll Tag Cloud

After searching for a while the simple way to add a cloud tag to my Jekyll blog. I found Ryan solution to be the most straighforward…

Game Engine

Godot - Advanced, feature-packed, multi-platform 2D and 3D open source game engine

Binary Visual & Diff

  • BinDiff - a comparison tool for binary files, that assists vulnerability researchers and engineers to quickly find differences and similarities in disassembled code.

Curta - The Mechanical Calculator

Curt Herzstark had been working on the calculator in the 1930s until the Nazis forced him to focus on building other tools for the German army. He was taken by the Nazis in 1943 and ended up in Buchenwald concentration camp. There, he told the officers about his plans for the CURTA. They were impressed and interested enough to let him continue work on it so they could present it as a gift to the Führer. The CURTA mechanical calculator literally saved its inventor’s life. / The CURTA Calculator Page

Maniac Mansion Deluxe

Your goal is to direct a team of three local college students (including Sandy’s boyfriend Dave) through the mansion to rescue Sandy. As you explore, you’ll meet all the strange inhabitants of the mansion, and you’ll discover Dr. Fred’s ambition to control the world - one teenage at a time. - lucasfan2004

Rust (lang)

beautiful code isn’t enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient…
Rust hits more of these but it’s ugly. Uglier than Python and approaches C++-level eyebleed. Rust generics aren’t as flexible as they could be because type constraints don’t have union and specialization is painful. Tag structs are laborious. Go hits more of these except it’s not as flexible and not quite as safe as Rust. Rust makes enormous binaries and compiles slow and the cargo index download is glacial, I’m surprised they don’t have an “sccache” for it. Go is easy to learn but then the capability of it plateaus. Go compiles and tests insanely fast. - HN

Green Thread

Green threads or userland threads (depending on your generation) provide high efficiency concurrency in a lot of mainstream languages. - Green Thread explained

MagicaVoxel

A free lightweight GPU-based voxel art editor and interactive path tracing renderer. - enjoy :)

Arduino And Linux

I choosed to use Platform.io. Which look more modern than others. Setup and installation was straightforward. work on VSCode.

Jekyll (first)

You don’t want a site that’s not really you. A site filled with social buttons and widgets and gadgets and analytics and tracking cookies and banner ads and pop-up ads and everything else that makes your visitors scream at you from afar. Generated anew every time someone visits your site. Every. Single. Time. - Building a blog with jekyll - [1]