Skip to content

Instantly share code, notes, and snippets.

View RinatMullayanov's full-sized avatar

Rinat Mullayanov RinatMullayanov

View GitHub Profile
@RinatMullayanov
RinatMullayanov / sample_inheritance.js
Last active August 29, 2015 14:01
Наследование(inheritance) на основе метода предложенного Дугласом Крокфордом
// http://javascript.crockford.com/prototypal.html
// базовый вариант наследования предложенный Дугласом Крокфордом
function object(o) {
function F() {}
F.prototype = o;
return new F();
}
// ECMASсript 3
// продвинутый вариант того что предложил Дуглас Крокфорд
@RinatMullayanov
RinatMullayanov / wpf_snippets.xaml
Last active August 29, 2015 14:01
WPF XAML Enum ComboBox
<!-- create combobox from enum-->
<prism:PrismView.Resources>
<!--для биндинга к Enum-->
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type sys:Enum}"
x:Key="WriterEnumDataProvider">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:WriterEnum" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
@RinatMullayanov
RinatMullayanov / верстка.md
Last active August 29, 2015 14:02
Верстка
// проверка на NaN
/*
NaN является
единственным JavaScript-значением, которое считается
неравным самому себе, вы всегда можете протестировать
переменную на значение NaN путем проверки ее на нера-
венство самой себе:
*/
function isReallyNaN(x) {
return x !== x;
// http://youtu.be/q7KfOnuINmo
// пока есть активный таймер LibUV не может завершить процесс
// в видео описанны способы как 'убить' таймеры
console.log(process.memoryUsage());
// 1. Влияние на процесс: ref/unref
// 2. process.nextTick(f) это setTimeout(f, 0) ДО I/O (событий ввода-вывода)
// 3. setImmediate(f) это setTimeout(f, 0) ПОСЛЕ I/O
@RinatMullayanov
RinatMullayanov / modern_inheritance.js
Created August 28, 2014 08:32
Sample modern prototype inheritance in Javacript
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call
function Product(name, price) {
this.name = name;
this.price = price;
if (price < 0)
throw RangeError('Cannot create product ' +
name + ' with a negative price');
return this;
}
@RinatMullayanov
RinatMullayanov / .jshintrc
Last active August 29, 2015 14:06
My .jshintrc with comments
{
//[twitter] https://github.com/twitter/plumage.js/blob/master/.jshintrc
"boss": true,
"node": true, //глобальные переменные node
"browser": true, //глобальные переменные современных браузеров
"esnext": true, //говорит что код использует фишки следующей спецификации JS(в нашем случае EcmaScript 6)
"bitwise": true, //запрещает использовать побитовые операции ^(XOR) и I(OR)
"curly": true, //везде фигурные скобки
"eqeqeq": true, //везде строгое сравнение - ===
"immed": true, //обязывает оборачивать моментально вызываемые функции в скобки
@RinatMullayanov
RinatMullayanov / .jshintrc
Created September 25, 2014 16:51
jshintrc for nodejs - clear - without comments
{
"boss": true,
"node": true,
"browser": true,
"esnext": true,
"bitwise": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 2,
#!/bin/bash
# Pre-commit Git hook to run JSHint on JavaScript files.
#
# If you absolutely must commit without testing,
# use: git commit --no-verify
filenames=($(git diff --cached --name-only HEAD))
which jshint &> /dev/null
if [ $? -ne 0 ];
@RinatMullayanov
RinatMullayanov / new settings.xml
Created September 25, 2014 19:11
like .jshintrc for visual studio 2012 extension
<?xml version="1.0"?>
<Options xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Enabled>true</Enabled>
<ErrorCategory>Error</ErrorCategory>
<TODOEnabled>false</TODOEnabled>
<TODOCategory>Task</TODOCategory>
<RunOnBuild>true</RunOnBuild>
<CancelBuildOnError>true</CancelBuildOnError>
<JSLintOptions>
<BoolOptions2>