It will check if current branch is master, then ask a confirmation, in case of master
branch
Articles with initial info: https://dev.ghost.org/prevent-master-push/, https://coderwall.com/p/jp7d5q/create-a-global-git-commit-hook
It will check if current branch is master, then ask a confirmation, in case of master
branch
Articles with initial info: https://dev.ghost.org/prevent-master-push/, https://coderwall.com/p/jp7d5q/create-a-global-git-commit-hook
[ Update 2025-03-24: Commenting is disabled permanently. Previous comments are archived at web.archive.org. ]
Most of the terminal emulators auto-detect when a URL appears onscreen and allow to conveniently open them (e.g. via Ctrl+click or Cmd+click, or the right click menu).
It was, however, not possible until now for arbitrary text to point to URLs, just as on webpages.
This is a short post that explains how to write a high-performance matrix multiplication program on modern processors. In this tutorial I will use a single core of the Skylake-client CPU with AVX2, but the principles in this post also apply to other processors with different instruction sets (such as AVX512).
Matrix multiplication is a mathematical operation that defines the product of
This document has a more accessible location, here:
http://nickporcino.com/posts/last_mile_interchange.html
I'll maintain a copy here too, this is a nice place to support discussion.
As C programmers, most of us think of pointer arithmetic for multi-dimensional arrays in a nested way:
The address for a 1-dimensional array is base + x
.
The address for a 2-dimensional array is base + x + y*x_size
for row-major layout and base + y + x*y_size
for column-major layout.
The address for a 3-dimensional array is base + x + (y + z*y_size)*x_size
for row-column-major layout.
And so on.
/*This is free and unencumbered software released into the public domain. | |
Anyone is free to copy, modify, publish, use, compile, sell, or | |
distribute this software, either in source code form or as a compiled | |
binary, for any purpose, commercial or non-commercial, and by any | |
means. | |
In jurisdictions that recognize copyright laws, the author or authors | |
of this software dedicate any and all copyright interest in the | |
software to the public domain. We make this dedication for the benefit |
Interesting libraries I might like to use in a project... | |
Asset loading: | |
assetsys.h - virtual filesystem with ZIP backing, overlaying, etc https://github.com/mattiasgustavsson/libs/blob/master/docs/assetsys.md | |
cute_filewatch.h - file modification watching, for runtime reloading etc https://github.com/RandyGaul/cute_headers/blob/master/cute_filewatch.h | |
flatbuffers - data serialization, zero-copy deserialization, extensible schemas https://github.com/google/flatbuffers | |
stb_image - https://github.com/nothings/stb/blob/master/stb_image.h | |
tinyexr - https://github.com/syoyo/tinyexr | |
tinygltf - https://github.com/syoyo/tinygltf | |
tinyobjloader - https://github.com/syoyo/tinyobjloader |
cmake_minimum_required(VERSION 3.1) | |
project(ECSY1) | |
# Add module path in case this is project root | |
if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) | |
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../modules/" ${CMAKE_MODULE_PATH}) | |
endif() | |
find_package(Magnum REQUIRED |
cmake_minimum_required(VERSION 3.1) | |
project(pong) | |
# Add module path in case this is project root | |
if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) | |
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/../../modules/" ${CMAKE_MODULE_PATH}) | |
endif() | |
find_package(Magnum REQUIRED |
With Magnum and EnTT. An adaptation of ecs_pong which is example material for Flecs, another ECS framework, developed as a learning exercise of both Magnum, EnTT and ECS in general. Runs at a solid 60 fps, can you believe it?
There are NOTE
markings left in the code to highlight various differences and things I struggled with and would have liked to have done.