Skip to content

Instantly share code, notes, and snippets.

View xealits's full-sized avatar
🥘

Alex Toldaiev xealits

🥘
View GitHub Profile
@xealits
xealits / pattern_command_1.cpp
Last active October 12, 2024 01:14
Simple pattern examples in C++
/*
* Just some notes while reading Game Programming Patterns by Robert Nystrom
* https://gameprogrammingpatterns.com
*
* A command or event made with C++ std::variant.
* The idea is to pack some similar-size but different types into the command.
* How to subscribe components to events from each other
* and construct it declaratively, at compile time?
* The components send events or commands (command pattern).
* You want to verify the interfaces, preferably statically, i.e. at link time.
@xealits
xealits / basic_macro.nim
Last active February 18, 2024 21:23
Basic macro in NIM
#[
# the example is from https://peterme.net/metaprogramming-and-read-and-maintainability-in-nim.html
# plus I used `quote` instead of direct tree nodes
# it almost works the same way
# except, it seems you cannot declare an empty `enum` under `quote`
]#
import math, strutils
import macros
@xealits
xealits / keybase.md
Created January 28, 2024 17:21
keybase verification

Keybase proof

I hereby claim:

To claim this, I am signing this object:

@xealits
xealits / factorial.cpp
Created February 20, 2022 21:39
C/C++ doctest with separate implementation file and source with tests
#define DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL
#include "doctest.h"
//int factorial(int number) { return number <= 1 ? number : factorial(number - 1) * number; }
int factorial(int number) { return number <= 1 ? 1 : factorial(number - 1) * number; }
TEST_CASE("testing the factorial function") {
CHECK(factorial(0) == 1);
CHECK(factorial(1) == 1);
CHECK(factorial(2) == 2);
What exactly is "iowait"?
To summarize it in one sentence, 'iowait' is the percentage
of time the CPU is idle AND there is at least one I/O
in progress.
Each CPU can be in one of four states: user, sys, idle, iowait.
Performance tools such as vmstat, iostat, sar, etc. print
out these four states as a percentage. The sar tool can
print out the states on a per CPU basis (-P flag) but most
@xealits
xealits / gler.py
Last active August 16, 2017 16:03
pyOpenGL example, extended habr_Ti_Fix_shaders.py from https://habrahabr.ru/post/247123/
# -*- coding: utf-8 -*-
# from
# Импортируем все необходимые библиотеки:
from OpenGL.GL import *
from OpenGL.GLU import gluPerspective
from OpenGL.GLUT import *
#import sys
# Из модуля random импортируем одноименную функцию random
from random import random
@xealits
xealits / notes_on_starting_with_opencl-opengl-interoperability.md
Last active September 27, 2015 15:43
Making enjalot script on OpenCL-OpenGL interoperability
@xealits
xealits / Install Intel-CPU OpenCL on Ubuntu.md
Created September 23, 2015 14:41 — forked from rmcgibbo/ Install Intel-CPU OpenCL on Ubuntu.md
Installing Intel CPU OpenCL on Ubuntu 12.04

Open Computing Language (OpenCL) is a language and framework for writing computationally intensive kernels that run accross heterogenious platforms, including GPUs, CPUs, and perhaps other more esoteric devices.

Intel provides an OpenCL implementation for Intel CPUs, but there's not a lot of instructions on how to get it set up. Here's what I did.

Installing Intel CPU OpenCL on Ubuntu (12.04)

  1. Download the Intel® SDK for OpenCL* Applications XE 2013 from the Intel website, here http://software.intel.com/en-us/vcsource/tools/opencl-sdk-xe. The download is a tarball -- the one I got is called intel_sdk_for_ocl_applications_2013_xe_sdk_3.0.67279_x64.tgz
  2. Unpack the tarball and cd into the new directory
@xealits
xealits / ROOT open, calculate, write out 1
Last active August 29, 2015 14:27
ROOT opening a tbranch of a ttree from a tfile, doing a calculation, writing a histogram
#include "TFile.h"
#include "TTree.h"
#include "TH1D.h"
#include <iostream>
void histo2()
{
std::cout << "fetch file\n" ;
@xealits
xealits / eos_commands
Last active October 11, 2016 15:58 — forked from nsahoo/eos_commands
EOS commands in CMS
# list the files in EOS
eos ls [-la] /eos/cms/user/t/test/
# copy all inside the directory recursively
eos cp -r /eos/cms/user/t/test/histodirectory/ /afs/cern.ch/user/t/test/histodirectory
# copy a single file
eos cp /eos/cms/user/t/test/histo.root /tmp/
eos cp /eos/cms/store/user/Username/Datadir/Data.root .