Skip to content

Instantly share code, notes, and snippets.

View sergey-shambir's full-sized avatar

Sergey Shambir sergey-shambir

  • iSpring Solutions
View GitHub Profile
/// Примерный набросок применения указателей на функции и void*
// для разделения функций шагов анимации и конкретного "рецепта" цельной анимации
// структурирует данные для функции doMoveStep
struct MoveData
{
float x;
float y;
};
case DeviceCMYK:
{
double dCyan = m_uColor.cmyk[0];
double dMagenta = m_uColor.cmyk[1];
double dYellow = m_uColor.cmyk[2];
double dBlack = m_uColor.cmyk[3];
double dRed = dCyan * (1.0 - dBlack) + dBlack;
double dGreen = dMagenta * (1.0 - dBlack) + dBlack;
double dBlue = dYellow * (1.0 - dBlack) + dBlack;
@sergey-shambir
sergey-shambir / variant-component.cpp
Last active August 22, 2016 06:54
Variant Component HasComponent
struct TriMeshRenderer {};
struct LightSource {};
struct ShaderMaterial {};
using Component = boost::variant<TriMeshRenderer, LightSource, ShaderMaterial>;
using Entity = std::vector<Component>;
template <class T>
bool HasComponent(const Entity &entity)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
// This program takes max jump height from input and prints
// jump height for every time point with step 0.1 seconds.
// Program should print all time points when height is min and max.
//
  • отладочная и релизная версия
  • x32
  • статическая компоновка с пользовательским кодом
  • статическая компоновка с C++ Runtime
b2 -j 4 link=static threading=multi variant=debug,release address-model=32 runtime-link=static
@sergey-shambir
sergey-shambir / git-history.md
Last active October 6, 2016 08:42
Git FAQ: интроспекция истории

Поиск коммитов по автору

  • Показ изменений автора 'ivan.petrov' (ivan.petrov@tratata.com)
  • Во всех ветках (all), включая внешний репозиторий (r)
git log --all -r --author=ivan.petrov

В примере выше есть подводный камень: коммиты могут отображаться не в хронологическом порядке. Хронологический порядок можно обеспечить флагом --date-order:

#include <iostream>
#include <conio.h>
#pragma warning(disable:4996) // POSIX name deprecated
void run();
void printMap();
void initMap();
void move(int dx, int dy);
void update();
@sergey-shambir
sergey-shambir / system_clock_vs_steady.cpp
Created December 8, 2016 10:53
compare system_clock and steady_clock times
#include <functional>
#include <memory>
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
int main()
@sergey-shambir
sergey-shambir / awesome_boost.md
Last active December 9, 2016 09:09
Awesome Boost articles and tutorials
@sergey-shambir
sergey-shambir / python-coding-conventions.py
Created February 16, 2017 14:41
Личные соглашения о кодировании на Python
import os.path
# Через from..import подключаются только самые важные классы и функции
from os.path import join, abspath
# Так делать нежелательно
# import os.path as path
# Классы именуются в UpperCamelCase