Skip to content

Instantly share code, notes, and snippets.

View MihailJP's full-sized avatar

MihailJP MihailJP

View GitHub Profile
@MihailJP
MihailJP / groovy.spec
Last active August 29, 2015 14:00 — forked from kazuhisya/Makefile
%define groovy_root_dir /usr/share
Name: groovy
Version: 2.2.2
Release: 1%{?dist}
License: See: http://groovy.codehaus.org/license.html
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: Development/Languages/Groovy
Summary: Contains the base system for executing groovy scripts.
Source: http://dist.codehaus.org/groovy/distributions/groovy-binary-%{version}.zip
@MihailJP
MihailJP / modulo.hpp
Created May 17, 2014 10:31
C++ modulo whose resulting sign is same as DIVISOR, not dividend
#include <stdexcept>
template<typename T> T modulo(T dividend, T divisor) {
if (divisor == static_cast<T>(0)) // division by zero is not allowed
throw std::domain_error("division by zero");
if (dividend < static_cast<T>(0)) // dividend is negative
return -((-dividend) % (-divisor));
else // dividend is non-negative
return dividend % divisor;
}
@MihailJP
MihailJP / gist:3599125
Created September 2, 2012 13:55
Lua scope test
v = "global"
do
print(v) -- "global"
local v = "local"
print(v) -- "local", of course
v = nil
print(v) -- nil, not "global"
collectgarbage("collect")
print(v) -- still nil
print (_G.v) -- of course "global"
@MihailJP
MihailJP / gist:3652275
Created September 6, 2012 06:53
Logical (not bitwise) XOR in C++
#include <iostream>
int main() {
int a = 1; int b = 2;
if ((bool)a != (bool)b)
std::cout << "a xor b -> true" << std::endl;
else
std::cout << "a xor b -> false" << std::endl;
return 0;
}
@MihailJP
MihailJP / fizzbuzz.hs
Created September 14, 2012 16:44
Fizz Buzz in Haskell
fizzbuzz = [f n | n <- [1..]]
where
f x
| x `mod` 15 == 0 = "Fizz Buzz"
| x `mod` 5 == 0 = "Buzz"
| x `mod` 3 == 0 = "Fizz"
| otherwise = show (fromIntegral x)
main = do print (take 60 fizzbuzz)
@MihailJP
MihailJP / matrix.hpp
Created October 23, 2012 08:06
Matrix template (C++11 only!)
#ifndef MATRIX_HPP
#define MATRIX_HPP
#include <array>
#include <initializer_list>
#define MTXTMP template <typename T, unsigned int rows, unsigned int cols>
/* Matrix class template */
MTXTMP class matrix {
@MihailJP
MihailJP / gist:4069788
Created November 14, 2012 02:00
Using wchar_t working with locale
#include <wchar.h>
#include <stdlib.h>
#include <locale.h>
int main() {
char* syslocale = getenv("LANG");
const wchar_t teststr[] =
L"僕と契約して、"
L"プログラマになってよ!";
setlocale(LC_ALL, syslocale);
@MihailJP
MihailJP / 1_wrong.cpp
Created December 7, 2012 20:28
You cannot override a class (static) constant
#include <iostream>
class Parent {
protected:
static const int val = 1;
public:
virtual int getval() {return val;}
};
class Child : public Parent {
@MihailJP
MihailJP / ConstTest1.java
Created December 7, 2012 21:37
You cannot override a class (static) constant (Java)
class Parent {
static final int Val = 1;
public int getval() {
return Val;
}
}
class Child extends Parent {
static final int Val = 2;
}
@MihailJP
MihailJP / gist:4246185
Created December 9, 2012 17:23
Immediate object as a static member
#include <iostream>
using std::cout; using std::endl;
// A class whose instance will be included as a member of a monostate class
class CContent {
public:
CContent() {cout << "CContent constructor" << endl;}
~CContent() {cout << "CContent destructor" << endl;}
void speak() {cout << "Bonjour le monde !" << endl;}