Pull to refresh
2
0
Губин Владимир Михайлович @vovagubin1987

User

Send message

bala.js — убийца jQuery в менее чем 400 символах кода *

Reading time6 min
Views43K
* Это шутка.

image
(картинка позаимствована где-то в интернете)

[ Репозиторий ]

Всем привет.

Уже давно прошли времена обязательной поддержки 6, 7, 8 Ослов и неизбежного использования jQuery, DOM API постепенно приводится к единому виду, но я всё так же часто встречаю на просторах интернета утверждения о том, что VanillaJS — это длинная колбаса.

Мол, зачем мне писать вот так:
document.querySelector('.selector');

Если я могу написать вот так:
$('.selector');

Я отчасти согласен с этим, потому что, периодически, необходимо выбирать элементы много раз в приложении. Приходится определять функции, делающую выборку, прямо в коде:

// selects one node matched given selector
function $(selector, ctx) {
	return (ctx || document).querySelector(selector);
}

// selects all nodes matched given selector
function $$(selector, ctx) {
	return [].slice.call((ctx || document).querySelectorAll(selector));
}

Это касается крошечных скриптов. Для крупных проектов, конечно, нужно юзать какой-нибудь фреймворк, который берет на себя все манипуляции над DOM.
Читать дальше →
Total votes 91: ↑58 and ↓33+25
Comments193

Аксиальные двигатели внутреннего сгорания

Reading time5 min
Views76K

Аксиальный ДВС Duke Engine

Мы привыкли к классическому дизайну двигателей внутреннего сгорания, который, по сути, существует уже целый век. Быстрое сгорание горючей смеси внутри цилиндра приводит к увеличению давления, которое толкает поршень. Тот, в свою очередь, через шатун и кривошип крутит вал.

image
Классический ДВС

Если мы хотим сделать двигатель помощнее, в первую очередь нужно увеличивать объём камеры сгорания. Увеличивая диаметр, мы увеличиваем вес поршней, что отрицательно сказывается на результате. Увеличивая длину, мы удлиняем и шатун, и увеличиваем весь двигатель в целом. Или же можно добавить цилиндров — что, естественно, также увеличивает результирующий объём двигателя.

image

С такими проблемами столкнулись инженеры ДВС для первых самолётов. Они, в конце концов, пришли к красивой схеме «звездообразного» двигателя, где поршни и цилиндры расположены по кругу относительно вала через равные углы. Такая система хорошо охлаждается потоком воздуха, но очень уж она габаритная. Поэтому поиски решений продолжались.

В 1911 году Macomber Rotary Engine Company из Лос-Анджелеса представила первый из аксиальных (осевых) ДВС. Их ещё называют «бочковыми», двигателями с качающейся (или косой) шайбой. Оригинальная схема позволяет разместить поршни и цилиндры вокруг основного вала и параллельно ему. Вращение вала происходит за счёт качающейся шайбы, на которую поочерёдно давят шатуны поршней.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments72

100 лет спустя: заполненные пропуски в записях Рамануджана

Reading time4 min
Views53K

Перевод поста Олега Маричева и Майкла Тротта "After 100 Years, Ramanujan Gap Filled".
Скачать файл, содержащий текст статьи, интерактивные модели и весь код, приведенный в статье, можно здесь.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

Сто лет назад Сриниваса Рамануджан и Г. Х. Харди начали знаменитую переписку о настолько поразительных вещах в математике, что Харди описал это как нечто едва возможное, чтобы в это поверить. Первого мая 1913-го года Рамануджан получил постоянную должность в Университете Кембриджа. Через пять лет и один день он стал научным сотрудником королевского общества, а его группа стала самой престижной на тот момент научной группой в мире. В 1919-ом году Рамануджан смертельно заболел во время длительного путешествия на пароходе Нагоя в Индию, которое проходило с 27-го февраля по 13-ое марта. Всё, что у него было — блокнот и ручка (да, никакой Mathematica в то время), и перед смертью он хотел оставить на бумаге свои уравнения. Он утверждал, что у него есть решения для целого ряда функций, однако ему хватало времени записать лишь несколько, прежде чем перейти к другим областям математики. Он записал следующее неполное уравнение и 14 других (см. ниже), из которых только три на данный момент решены.

One of Ramanujan's unsolved equations

Он умирал несколько месяцев, вероятно, от печёночного амёбиаза. Его последний блокнот был отправлен Университетом Мадраса к Г. Х. Харди, который затем передал его математику Г. Н. Уотсону. В 1965-ом году, когда Уотсон умер, директор колледжа нашёл блокнот в его офисе, отбирая документы на уничтожение. Джордж Эндрюс заново открыл этот блокнот в 1976 году и, наконец, в 1987 году он был опубликован. Брюс Берндт и Эндрюс писали об утерянном Блокноте Рамануджана в серии книг (Часть 1, Часть 2, и Часть 3). Как сказал Берндт: «Открытие этого „утерянного блокнота“ вызвало бум в математическом мире такой же, какой могло бы вызвать открытие десятой симфонии Бетховена в мире музыкальном».
Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments19

Jancy — скриптовый язык для системных/сетевых программистов

Reading time14 min
Views18K
jancyЗачем вообще создавать новый язык программирования? Их уже существует невероятное количество — по моему твёрдому убеждению, значительно больше, чем надо. И наверняка далеко не последнюю роль в данном положении вещей играет то, что создание компиляторов — это невероятно увлекательный процесс. С поправкой на арбузы и свиные хрящики — это вообще одна из самых «вкусных» работ, о которых может мечтать увлечённый программист.

Непередаваемо здоровским является цветочно-конфетный период — первый этап изучения теории компиляторов по толстым умным книжкам, и — тут же! — её применения на практике, в своём собственном языке. Даже печальная перспектива того, что создатель языка вполне может оказаться его единственным пользователем, не способна перевесить радость творчества и остановить сферического-в-вакууме компиляторного Кулибина. Разумеется, если удовлетворение собственного интереса является не только важной, но и единственной движущей силой всего процесса — вышеописанная перспектива с неизбежностью будет воплощена в жизнь. Но даже если это и НЕ единственная причина создания нового языка — перспектива стать одиноким пользователем своего творения всё равно имеет шансы реализоваться.
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments24

Как опереться на пустоту?

Reading time9 min
Views64K

«Дайте мне точку опоры, и я переверну Землю» — так, по легенде, сказал Архимед, научно объяснив интуитивно понимаемый принцип работы рычага. Но в космическом вакууме опоры нет. А спутникам нужно, чтобы солнечные батареи смотрели на Солнце, антенны — на Землю, камера — на интересный участок Марса, а двигатель для коррекции орбиты — строго в определенную точку пространства. Приходится что-то придумывать, чтобы опереться на пустоту.
Читать дальше →
Total votes 73: ↑73 and ↓0+73
Comments46

Самодельный блок управления для дизельного двигателя

Reading time10 min
Views102K


Автомобили уже давно обросли всякой электроникой, так обросли, что просто жуть: в дверях контроллер, в фарах контроллер, в тормозах контроллер, ну и в двигателе, как без него. Обычно, когда речь заходит о блоке управления двигателем (ECU) представляется бензиновый мотор, обвешанный датчиками, исполнительными элементами и жгутами проводов. Блок управления чутко считывает параметры датчиков, корректирует смесь и начало искрообразования. Сложно! Но энтузиасты создают свои блоки управления, пишут альтернативные прошивки чтобы выжать лишнюю «пони», обойти какую-то неисправность или просто для повышения навыков. Причем, как правило, на такой шаг авторов толкают обстоятельства, к примеру недовольство контактной системой зажигания у бензиновых моторов, легкий некомплект электрики и так далее.

Именно о таких обстоятельствах и о дизельном двигателе и пойдет речь.

Итак, постановка задачи:

Дано:
  • Дизельный двигатель с механическим насосом DW8, производства концерна PSA, 2000 г.в. Насос издох от времени.
  • Новый топливный насос, приобретенный по случаю, с электронным управлением опережения впрыска от модификации мотора DW8B (Те самые обстоятельства).
  • Полное отсутствие проводки под электронное управление, самого блока управления.
  • Желание разобраться с нехитрой электроникой насоса, поднять навык, поглубже изучить работу таких насосов.

Требуется: исправный двигатель после «сращения».
Читать дальше →
Total votes 88: ↑87 and ↓1+86
Comments40

Арбелос

Reading time15 min
Views31K

Скачать статью в виде документа Mathematica (NB), CDF-файла или PDF.
Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.

В этой статье систематически проверяются некоторые свойства фигуры, известной с древних времён, называемой арбелос. Она включает в себя несколько новых открытий и обобщений, представленных автором данной работы.

Введение


Будучи мотивирован вычислительными преимуществами, которыми обладает Mathematica, некоторое время назад я решил приступить к исследованию свойств арбелоса — весьма интересной геометрической фигуры. С тех пор я был впечатлен большим количеством удивительных открытий и вычислительных проблем, которые возникали из-за всё расширяющегося объёма литературы, касающейся этого примечательного объекта. Я вспоминаю его сходство с нижней частью культового велосипеда пенни-фартинг из The Prisoner (телесериал 1960-х), шутовской шапкой Панча (знаменитых Punch and Judy) и символом инь-ян с одной перевёрнутой дугой; см. рис. 1. В настоящее время существует специализированный каталог архимедовых кругов (круги, содержащиеся в арбелосе) [1] и важные применения свойств арбелоса, которые лежат вне поля математики и вычислительных наук [2].

Многие известные исследователи занимались этой темой, в том числе Архимед (убитый римским солдатом в 212 г. до н.э.), Папп (320 г. н.э.), Кристиан О. Мор (1835-1918), Виктор Тебо (1882-1960), Леон Банкофф (1908-1997), Мартин Гарднер (1914-2010). С недавних пор свойствами арбелоса занимаются Клейтон Додж, Питер Ай. Ву, Томас Шох, Хироши Окумура, Масаюки Ватанабе и прочие.

Леон Банкофф — человек, который привлекал всеобщее внимание к арбелосу в последние 30 лет. Шох привлёк внимание Бэнкоффа к арбелосу в 1979 году, открыв несколько новых архимедовых кругов. Он послал 20-страничную рукописную работу Мартину Гарднеру, который направил её Бэнкоффу, который затем отправил 10-страничный фрагмент копии рукописи Доджу в 1996 году. Из-за смерти Бэнкоффа запланированная совместная работа была прервана, пока Додж не сообщил о некоторых новых открытиях [3]. В 1999 году Додж сказал, что ему потребуется от пяти до десяти лет, чтобы отсортировать весь материал, которым он располагает, разложив всё это дело по стопкам. В настоящее время эта работа все ещё продолжается. Не удивительно, что в четвертом томе The Art of Computer Programming, сказано о том, что важная работа требует большого количества времени.


Рис. 1. Велосипед пенни-фартинг, куклы Панч и Джуди, физический арбелос.

Арбелос (“нож сапожника” в греческом языке) назван так из-за своего сходства с лезвием ножа, использующегося сапожниками (Рис. 1). Арбелос — плоская область, ограниченная тремя полуокружностями и общей базовой линией (рис. 2). Архимед, вероятно, был первым, кто начал изучать математические свойства арбелоса. Эти свойства описаны в теоремах с 4-ой по 8-ую его книги Liber assumptorum (или Книги лемм). Возможно, эту работу написал не Архимед. Сомнения появились после перевода с арабского Книги лемм, в которой Архимед упоминается неоднократно, но ничего не сказано о его авторстве (однако, существует мнение, что эта книга — подделка [4]). Книга Лемм так же содержит знаменитую архимедову Problema Bovinum [5].

Эта статья направлена на систематическое изложение некоторых свойств арбелоса и не носит исчерпывающий характер. Наша цель состоит в том, чтобы выработать единую вычислительную методологию для того, чтобы преподнести данные свойства в формате обучающей статьи. Все свойства выстроены в рамках определённой последовательности и представлены с доказательствами. Эти доказательства были реализованы посредством тестирования эквивалентных вычисляемых утверждений. В ходе выполнения данной работы автором было совершено несколько открытий и сделано несколько обобщений.
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments29

Дискретное преобразование Фурье фрактального броуновского движения

Reading time2 min
Views14K
Фрактальное броуновское движение (ФБД) относится к классу рассматриваемых функций, заданные на конечном интервале и равные нулю вне его, которые включают кусочно непрерывные функции, удовлетворяющие условию роста:
image,
где функция image, удовлетворяет условию: image

Преобразование Фурье
Для ФБД будем интерпретировать процесс image как временной процесс. Существует частотная область, в которой функция — сумма составляющих, имеющих определенную частоту. Функция image может быть разложена как image.
Составляющая image с частотой image имеет вид:

image, где image.

Функция image называется преобразованием Фурье.
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments9

AI, BigData & HPC дайджест #0. Пилотный выпуск

Reading time2 min
Views10K
Привет, Хабр!
Меня зовут Дмитрий Сподарец. Я основатель проекта FlyElephant, который предоставляет научным сотрудникам и инженерам среду для выполнения вычислительных программ. В нашей команде мы активно следим за тремя направлениями: искусственный интеллект, большие данные и высокопроизводительные вычисления. Нам постоянно попадаются интересные материалы, с которыми мы будем знакомить вас в рамках этого дайджеста.


Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments7

Протокол WS2812B на STM32 без пустых циклов и прерываний. И как сделать правильную радугу

Reading time6 min
Views102K


На Хабре уже есть пара статей о работе с RGB светодиодами WS2112B, но почему-то они все используют довольно архаичный способ формирования битовой последовательности. Способ заключается в формировании точных интервалов времени с помощью пустых программных циклов. Возможно, это издержки использования Arduino, но мы, конечно, уже давно перешли на ARM Cortex-M4 в лице STM32 и можем себе позволить сделать красивее.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments14

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Генерируем и воспроизводим звук. Часть третья: TIM + DMA

Reading time14 min
Views20K

Вступление

В предыдущей статье я рассказал о своем первом знакомстве с DMA. В ней мы делали связку DMA + SysTick. Статья получилась очень специфичной и сложной, ввиду неопытного кривого подхода. Набравшись опыта, в данной статье я расскажу о куда более простом и понятном способе работы с DMA.
Читать дальше →
Total votes 31: ↑23 and ↓8+15
Comments7

Определяем веса шахматных фигур регрессионным анализом

Reading time15 min
Views85K
Здравствуй, Хабр!

В этой статье речь пойдёт о небольшом программистском этюде на тему машинного обучения. Замысел его возник у меня при прохождении известного здесь многим курса «Machine Learning», читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось — в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.

Вступление: о шахматных программах



Не будем детально углубляться в архитектуру шахматных программ — это могло бы стать темой отдельной публикации или даже их серии. Рассмотрим только самые базовые принципы. Основными компонентами практически любого небелкового шахматиста являются поиск и оценка позиции.

Поиск представляет собой перебор вариантов, то есть итеративное углубление по дереву игры. Оценочная функция отображает набор позиционных признаков на числовую шкалу и служит целевой функцией для поиска наилучшего хода. Она применяется к листьям дерева, и постепенно «возвращается» к исходной позиции (корню) с помощью альфа-бета процедуры или её вариаций.

Строго говоря, настоящая оценка может принимать только три значения: выигрыш, проигрыш или ничья — 1, 0 или ½. По теореме Цермело для любой заданной позиции она определяется однозначно. На практике же из-за комбинаторного взрыва ни один компьютер не в состоянии просчитать варианты до листьев полного дерева игры (исчерпывающий анализ в эндшпильных базах данных — это отдельный случай; 32-фигурных таблиц в обозримом будущем не появится… и в необозримом, скорее всего, тоже). Поэтому программы работают в так называемой модели Шеннона — пользуются усечённым деревом игры и приближённой оценкой, основанной на различных эвристиках.
Читать дальше →
Total votes 64: ↑64 and ↓0+64
Comments45

Euphoria Module: короткометражная 3D-анимация, созданная с помощью открытого ПО

Reading time3 min
Views28K


Euphoria Module — короткометражный анимационный фильм, сделанный с помощью Open Source-инструментов (за исключением некоторых сторонних ресурсов: музыка, несколько звуков, несколько текстур).
  • Blender: моделирование, анимация, рендеринг, композитинг, монтаж видео и звука;
  • MakeHuman: генерирование модели девушки, которая была позже «доведена» в Блендере;
  • Audacity: создание и обработка нескольких звуковых эффектов;
  • GIMP: всё, что связано с 2D (довольно мало в моём случае).


Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments52

BalanceBall. Самобалансирующая платформа от А до Я

Reading time4 min
Views32K
Я студент Физтеха, факультета радиотехники и кибернетики, и как положено всем второкурсникам, в весеннем семестре надо сделать проект по информатике и микроконтроллерам. Я решил убить двух зайцев одним выстрелом и объединил два проекта в один.

Долго выбирал тему проекта. Из идей была игра, похожая на Guitar Hero, но контроллером были твои руки, настукивающие барабанные биты по столу. Также задумывался над созданием светодиодной матрицы, управляемой по Bluetooth с компьютера, со своим простеньким скриптовым языком для написания анимаций. Задумки были интересными, но я все равно казались чем-то не тем. Потом я случайно наткнулся на это видео и сразу загорелся идеей реализовать что-то подобное. Вот что у меня вышло в итоге:



Кому интересен процесс создания этой платформы от проектирования деталей до написания компьютерного зрения, прошу под кат.
Читать дальше →
Total votes 65: ↑62 and ↓3+59
Comments10

Самодельный Фурье-спектрометр

Reading time16 min
Views105K
image Однажды я прочитал в Википедии статью про Фурье-спектрометр, и мне захотелось самостоятельно сделать такой. Эта задача совсем не простая, но действующий макет спектрометра все же удалось сделать. Сразу предупрежу — это не инфракрасный спектрометр, так что особенно интересных измерений им не провести.

О том, как же работает Фурье-спектрометр, и как его можно сделать в домашних условиях — далее (осторожно, много картинок!).
Читать дальше →
Total votes 63: ↑63 and ↓0+63
Comments39

Методы сжатия данных

Reading time16 min
Views102K
Мы с моим научным руководителем готовим небольшую монографию по обработке изображений. Решил представить на суд хабрасообщества главу, посвящённую алгоритмам сжатия изображений. Так как в рамках одного поста целую главу уместить тяжело, решил разбить её на три поста:
1. Методы сжатия данных;
2. Сжатие изображений без потерь;
3. Сжатие изображений с потерями.
Ниже вы можете ознакомиться с первым постом серии.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments20

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть вторая

Reading time31 min
Views341K

Вступление и DDL – Data Definition Language (язык описания данных)


Часть первая — habrahabr.ru/post/255361

DML – Data Manipulation Language (язык манипулирования данными)


В первой части мы уже немного затронули язык DML, применяя почти весь набор его команд, за исключением команды MERGE.

Рассказывать про DML я буду по своей последовательности выработанной на личном опыте. По ходу, так же постараюсь рассказать про «скользкие» места, на которые стоит акцентировать внимание, эти «скользкие» места, схожи во многих диалектах языка SQL.

Т.к. учебник посвящается широкому кругу читателей (не только программистам), то и объяснение, порой будет соответствующее, т.е. долгое и нудное. Это мое видение материала, которое в основном получено на практике в результате профессиональной деятельности.

Основная цель данного учебника, шаг за шагом, выработать полное понимание сути языка SQL и научить правильно применять его конструкции. Профессионалам в этой области, может тоже будет интересно пролистать данный материал, может и они смогут вынести для себя что-то новое, а может просто, будет полезно почитать в целях освежить память. Надеюсь, что всем будет интересно.

Т.к. DML в диалекте БД MS SQL очень сильно связан с синтаксисом конструкции SELECT, то я начну рассказывать о DML именно с нее. На мой взгляд конструкция SELECT является самой главной конструкцией языка DML, т.к. за счет нее или ее частей осуществляется выборка необходимых данных из БД.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments11

Цифровая археология: как спасают давно утерянные данные

Reading time10 min
Views32K


Чертежи позабытых процессоров, исходные коды легендарных игр, неизвестные произведения искусства, — чего только не находят в архивах любители старины. Их задача — восстановить, надёжно сохранить и каталогизировать.

Может показаться, что мы живём в век, когда информация практически не способна потеряться: что однажды было оцифровано или создано на компьютере, будет, имей оно хоть какую-то ценность, тиражироваться и вечно кочевать с одного цифрового носителя на другой. Это, к сожалению, не совсем так: стандарты и форматы меняются с поразительной скоростью, а носители информации (в особенности — магнитные диски) имеют крайне ограниченный срок службы. «Цифровая археология» — то есть извлечение данных со старых носителей и перекодирование в современные форматы становится всё более актуальной дисциплиной. В этой области существуют специалисты, и раз за разом появляются истории о том, как они героически извлекли из цифровых руин нечто, имеющее неоспоримую ценность.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments11

Самостоятельная сборка 3d-принтера или покупка готового оборудования для конструирования. 3d-печать. Часть 3

Reading time3 min
Views30K


В двух постах (Часть 1 и Часть 2), я рассказывал о тонкостях сборки и настройки программного обеспечения 3d-принтера MC5. В этой части, будет рассказано о том, что такое слайсер и как его настраивать для «нарезки» 3D-моделей к печати, о требованиях к 3D-моделям и о том, почему нельзя так просто взять и откалибровать 3D-принтер.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments19

Первые две недели курса CS188.1x Artificial Intelligence или самообучение алгоритмам ИИ

Reading time4 min
Views13K
Как вы думаете, что машины с искусственным интеллектом сегодня уже умеют делать, а что нет?


На фото робот, умеющий складывать полотенца.

В дистанционном курсе CS188.1x Artificial Intelligence от Калифорнийского университета в Беркли профессор Dan Klein приводит список некоторых задач в области искусственного интеллекта. Часть из них уже решены (полностью или частично), а другая часть — еще нет. Курс посвящен алгоритмам ИИ, на которых базируются многие современные интеллектуальные системы. Хочется вкратце поделиться тем, с чего он начинается и подробней рассказать про первое практическое задание.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Карелия, Россия
Registered
Activity