Search
Write a publication
Pull to refresh
10
0.3

JavaScript-разработчик

Send message

Считаем рабочие дни с Moment.js

Reading time2 min
Views19K
Несколько месяцев назад я опубликовал плагин к Moment.js позволяющий рассчитать: сколько это N рабочих дней от сегодня в календарных днях? какая дата будет спустя N рабочих дней от заданной даты? сколько рабочих дней в заданном диапазоне? Возможность сконфигурировать рабочие дни и исключения в виде праздников — имеется.

Плагин можно найти на github: https://github.com/andruhon/moment-weekday-calc

Плагин можно установить через bower и npm:
bower install moment-weekday-calc

npm install moment-weekday-calc

Плагин добавляет несколько функций в Moment.js:
  • int weekdayCalc — считает сколько «рабочих» дней в заданном диапазоне
  • date addWorkdays — находит дату спустя N «рабочих» (пн-пт) дней
  • int workdaysToCalendarDays — конвертирует рабочие дни в календарные
  • date addWeekdaysFromSet — добавляет дни из заданного множества к заданной дате
  • int weekdaysFromSetToCalendarDays — конвертирует дни из заданного множетсва в календартные дни

Каждая из функций доступна с префиксом iso, такие функции используют множество рабочих дней начинающееся с понедельника (1-7), функции без префикса используют американский формат начинающийся с воскресенья (0-6).

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

Читать дальше →

Электронный анализатор восьмерки и овала велосипедного колеса

Reading time2 min
Views31K
Если вы много катаетесь на велосипеде, то иногда вам приходится и чинить их. Одна из неисправностей, с которой приходится сталкиваться это восьмерка колеса, или овал.


КПДВ — первые результаты измерения овальности колеса
Я долго не мог решить проблему со своим колесом, поэтому пришлось собрать электронную систему измерения.
Читать дальше →

Если природный уран никому не нужен, то как получить обогащенный?

Reading time10 min
Views45K
Правда что ли, скажете вы, природный уран никому не нужен? Давайте посмотрим на потребление.

В данный момент спросом в мире пользуются следующие виды обогащенного урана:
  • 1. Природный уран (0,712%). Тяжеловодные реакторы (PHWR), например CANDU
  • 2. Слабо-обогащенный уран (2-3%, 4-5%). Реакторы типа вода-графит-цирконий, вода-вода-цирконий, реакторы ВВЭР, PWR, РБМК
  • 3. Средне обогащённый уран (15-25%), Быстрые реакторы, реакторы транспортных (ледоколы, ПАТЭС) ЯЭУ
  • 4. Высокообогащенный уран (>50%), ТрЯЭУ (подлодки), исследовательские реакторы.

Природный уран проходит только по первому пункту. Если предположить, что у нас в мире потребители урана это только коммерческие реакторы, то PHWR из них — это менее 10%. А если считать все остальное (транспортные, исследовательские) то… короче говоря природный уран ни к селу ни к городу. А значит почти любой потребитель требует наращивания процентного содержания легкого изотопа в смеси 235-238. Более того, уран используется не только в ядерной энергетике, но и в производстве брони, боеприпасов, и еще кое-чего. А там лучше иметь обедненный уран, что в принципе требует тех же процессов, только наоборот.

Про методы обогащения и будет статья.
Читать дальше →

Простой алгоритм определения пересечения двух отрезков

Reading time4 min
Views235K
Введение

В былые времена я увлекался компьютерной графикой, как 2х так и 3х мерной, в том числе математическими визуализациями. Что называется just for fun, будучи студентом, написал программу визуализирующую N-мерные фигуры, вращающиеся в любых измерениях, хотя практически меня хватило только на определение точек для 4-D гиперкуба. Но это только присказка. Любовь к геометрии осталась у меня с тех пор и по сей день, и я до сих пор люблю решать интересные задачи интересными способами.
Одна из таких задач попалась мне в 2010 году. Сама задача достаточно тривиальна: необходимо найти, пересекаются ли два 2-D отрезка, и если пересекаются — найти точку их пересечения. Более интересно решение, которое, я считаю, получилось достаточно элегантным, и которое я хочу предложить на суд читателя. На оригинальность алгоритма не претендую (хотя и хотелось бы), но в сети подобных решений я найти не смог.
Читать дальше →

Можно ли увидеть невидимое? Прорыв в электродинамике: анаполь позволит скрытно передавать данные

Reading time9 min
Views29K
Сравнительно недавно в престижном журнале Physical Review X была опубликована научная статья на тему “Dielectric metamaterials with toroidal dipolar response”. В ней шла речь о возможности создания метаматериалов, полностью прозрачных для электромагнитных волн за счет возбуждения в них особых мод- “анаполей”.

Мы обратились к одному из авторов этой статьи Алексею Башарину, чтобы получить экспертное мнение относительно уникального явления в анапольной физике, а именно о неизлучающем «анаполе». Специально для нашего корпоративного блога на GT он согласился написать статью в научно-популярном формате и тезисно рассказать, в чем состояла уникальность его исследования, а также дать экспертный комментарий по статье, опубликованной в Nature Communications.

Алексей Башарин, без сомнения, является выдающимся экспертом в своей области, получившем многолетний зарубежный опыт исследований в ведущих исследовательских университетах Греции и Франции. В данный момент Алексей проводит свое исследование в лаборатории «Сверхпроводящие метаматериалы» НИТУ «МИСиС» под руководством Алексея Устинова.


Оборудование лаборатории «Сверхпроводящие метаматериалы» НИТУ «МИСиС» для исследования метаматериалов в сверхпроводящем режиме, которое используется для исследования анаполя в метаматериалах с Джозефсоновскими переходами.

Анаполь (от греч. an — отрицат. частица и polos — полюс) представляет собой неизлучающий источник или рассеиватель, который способен излучать векторные потенциалы, в отсутствие излученных электромагнитных полей, а также рассеивать векторные потенциалы, в отсутствие полей. Благодаря этому мы можем получить уникальную возможность скрывать различные объекты, точнее экранировать их от электромагнитных полей и получить устройства для скрытой передачи данных. При этом передача данных возможна за счет модуляции векторного потенциала, а привычное распространение электромагнитных волн (света) в системе будет отсутствовать. Более того, это может означать, что множество объектов и источников в природе мы просто не видим, потому что они не взаимодействуют с электромагнитными полями, а взаимодействуют исключительно с потенциалами!

Анапольная (тороидная) электродинамика настолько интересна и необычна, что мы даже не можем сказать на сегодняшний день, как потенциалы могут распространяться в вакууме и других средах, как сильно они затухают, каков их процесс дифракции на различных объектах и т.д. И самое главное, как их принимать и детектировать. Ведь нет еще приборов, способных фиксировать потенциалы и их поля.
Читать дальше →

Проекты лунных баз: вчера и сегодня

Reading time6 min
Views30K

В 1976 году с поверхности Луны стартовала возвращаемая капсула советского космического зонда «Луна-24». Она успешно прилетит на Землю, в 1978 году в колонке грунта найдут воду, но «Луна-24» станет последним аппаратом «золотой эры» изучения Луны. Следующий зонд выйдет на ее орбиту только в 1990 году, 14 лет спустя, а следующая мягкая посадка состоится только в 2013 году, спустя целых 37 лет. Нет ничего удивительного, что и проекты лунных баз стали редкостью. Но после периода охлаждения интереса к Луне проекты лунных баз стали появляться вновь, тем более, что появились новые технологии, которые можно было бы использовать при освоении Луны.
Читать дальше →

Nintendo купила права на порнофильм по мотивам Super Mario, чтобы его похоронить

Reading time2 min
Views24K
В 1993 году на экраны кинотеатров вышел фильм «Супербратья Марио» с Бобом Хоскинсом и Джоном Легуизамо в главных ролях. При бюджете в сорок восемь миллионов долларов фильм не собрал в прокате и половины от этой суммы.

В том же году появились два других фильма по мотивам знаменитой серии игр Nintendo: порнографические картины Super Hornio Brothers и Super Hornio Brothers II. Фильм был один, но из-за его длительности его разделили на две части. Главную роль в фильме сыграл Рон Джереми.

Но самое интересное, что права на порнофильмы о похождениях Super Hornio Brothers купила компания Nintendo. Предлагаю вспомнить эту историю в день тридцатилетия со дня выпуска игры Super Mario Brothers.


Читать дальше →

1-Wire slave на МК. Часть 2: Реализация в коде

Reading time5 min
Views10K

Первая статья цикла: 1-Wire slave на МК. Часть 1: Железо

Что есть в инетрнете по 1-Wire slave


В интернете про реализацию 1-Wire мастера можно найти множество информации, статей, application notes для микроконтроллеров на любой вкус и цвет.
А вот для реализации со стороны Slave материалов немного. Исходных кодов и того меньше. В итоге был найден один исходник для PIC, с ассемблерными вставками и ошибками. Недавно появилась статья на хабре для MSP430 от resetnow. Под катом наш вариант реализации задачи.
Читать дальше →

[Перевод] Альтернативная вселенная советских аркадных автоматов

Reading time7 min
Views14K
Disclaimer:
Мнение автора может не совпадать с мнением переводчика. Да еще как! Мое отношение к залам игровых автоматов примерно соответствует легкой стадии ностальгии по электронике раннего развития и советского пин-апа. Здесь, в тексте, будет много противоречивых утверждений. Они обусловлены необходимостью продать данный текст редактору, или читателю блога. Цель последнего — прочитать, крякнуть «ну русские дают!» и зайти в следующий раз на страничку.
Простим их автору. В конце концов, она юна.
Итак, давайте представим, не обремененная годами туристка из Туксона, Аризона, с телефоном, твиттером, инстаграмом, фейсбуком и фотоаппаратом, входит в музей советских игровых автоматов...


Советский игровой автомат Магистраль


Когда вы заходите в Музей игровых автоматов в Санкт-Петербурге, первое что вы видите это ряды серых, угловатых автоматов c газировкой из ранних 1980х. Если выбрать тот что стоит по середине, он выдаст порцию содовой со вкусом эстрагона, рецепт которой основан на сиропе массово не производившемся со времени падения Советского Союза. Его вкус весьма похож на тот что имеет смесь сахарного сиропа и мятной кофеты.
Читать дальше →

Сортировка целых чисел при нехватке памяти

Reading time13 min
Views33K
Автор оригинала на английском языке — хабраюзер dzeban

Введение


В прошлый раз мы обсудили, как можно искусственно ограничить доступную программе память. В качестве бонуса я заполучил себе libmemrestrict – библиотеку с обёртками функций вроде malloc для отслеживания использования памяти, и ptrace-restrict — инструмент на базе ptrace, перехватывающий вызовы brk, sbrk и mmap с той же целью.

Так зачем нам пытаться организовывать ограничение памяти – так ли это часто встречается? Когда в последний раз ООМ прибил ваше приложение? Вы всегда думаете о потреблении памяти во время программирования? Память – штука дешёвая, и если вам не хватает памяти, добавьте ещё пару гигабайт.

И, тем не менее, невозможно бесконечно добавлять память – и не из-за того, что у вас нет бесконечного её источника. При обработке Больших данных просто невозможно вместить весь ввод в массив – необходимо распределять данные между оперативкой, носителями и сетью. Необходимы алгоритмы и техники для такой обработки данных.

И вот я занялся подобными задачами, начав с простой – как отсортировать миллион целых чисел (4 MiB данных) при наличии 2 MiB памяти? Эту задачу можно обобщить на тот случай, когда у вас недостаточно памяти, чтобы вместить все данные.

Дано


Необходимо написать программу сортировки набора целых чисел, хранящихся в файле. Для его создания я написал простейшие утилиты randints и rangeints

Программа должна выдавать отсортированный массив на stdout в виде текста

Она должна измерить время работы и вывести его на stderr. Нельзя просто запустить программу через утилиту time, потому что она посчитает время на чтение файла и время на его вывод.

Она должна работать, имея памяти как минимум в два раза меньше объёма файла. Для этого мы применим libmemrestrict или ptrace-restrict.

Для некоторых методов эти утилиты не пригодятся. Например, для mmap они не сработают – придётся физически ограничить использование памяти.

Они будут проверяться для решения оригинальной задачи (сортировки 4 MiB в 2 MiB). Также я запущу их на виртуалке со 128 MiB памяти для сортировки 500 Mb (125 миллионов четырёхбайтных целых).
Читать дальше →

Hash array mapped trie

Reading time5 min
Views22K
Hash array mapped trie — это ассоциативный контейнер, который обладает свойствами хэш таблиц и trie. Операции вставки пары ключ-значение и поиск по ключу — О(1) операции.
Про trie на хабре уже писали.

Читать дальше →

Обзор алгоритмов сегментации

Reading time8 min
Views92K

Этим летом мне посчастливилось попасть на летнюю стажировку в компанию Itseez. Мне было предложено исследовать современные методы, которые позволили бы выделить местоположения объектов на изображении. В основном такие методы опираются на сегментацию, поэтому я начала свою работу со знакомства с этой областью компьютерного зрения.
Сегментация изображения — это разбиение изображения на множество покрывающих его областей. Сегментация применяется во многих областях, например, в производстве для индикации дефектов при сборке деталей, в медицине для первичной обработки снимков, также для составления карт местности по снимкам со спутников. Для тех, кому интересно разобраться, как работают такие алгоритмы, добро пожаловать под кат. Мы рассмотрим несколько методов из библиотеки компьютерного зрения OpenCV.
Читать дальше →

Способ написания синтаксических анализаторов на c++

Reading time11 min
Views33K
В этой статье рассказывается, как писать синтаксические анализаторы с помощью этой небольшой библиотеки на с++.

Обычно, текст на машинном языке состоит из предложений, те — из подпредложений, а те, в свою очередь, из подподпредложений, и так вплоть до символов.

Например, элемент xml состоит из открывающего тега, содержимого и закрывающего тега. —> Открывающий тег состоит из '<', имени тега, возможно пустого списка атрибутов и '>'. —> Закрывающий тег состоит из '</', имени тега и '>'. —> Атрибут состоит из имени, знаков '=', '"', строки символов и снова '"'. —> Содержимое в свою очередь тоже может содержать элементы. —> И т.д. Таким образом, после разбора получается синтаксическое дерево.

Такие языки удобно описывать формой Бэкуса-Наура (БНФ), где каждый нетерминал соответствует некоторому предложению языка. Когда мы пишем программы, мы обычно разбиваем их на функции и подфункции, и раз мы собрались писать синтаксический анализатор, пусть каждому нетерминалу БНФ соответствует одна функция нашего анализатора, и пусть каждая такая функция:

  • пытается разобрать это предложение с заданной позиции
  • возвращает, удалось ли ей это сделать
  • возвращает позицию, где закончился разбор или произошла ошибка
  • а также, возможно, возвращает некоторые дополнительные данные, которые мы хотим получить в результате разбора

Например для БНФ вида expr ::= expr1 expr2 expr3 будем писать такую функцию:
Читать дальше →

Микросервисы без серверов (облачный вариант)

Reading time20 min
Views23K
Здравствуйте, дорогие читатели!

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

Много Java, JavaScript, схем, рассуждений и очень много текста
Читать дальше →

Самая устаревшая инфраструктура, которую только можно купить за деньги

Reading time8 min
Views60K
На днях исполняется 10 лет с тех пор, как я получил самую странную свою работу.

Шел 2005-ый год. Мой интерес к разработке системы управления контентом на Java для компании, недавно купившей наш стартап, неуклонно улетучивался, в то время как моей настоящей страстью была разработка компиляторов и инструментов языковой инфраструктуры (в основном для SBCL). Как-то раз я заметил открытую вакансию как-раз по этому направлению, что вообще-то было достаточно редким явлением. Я быстро прошел интервью — настолько быстро, что даже не задал нужных вопросов и проигнорировал несколько тревожных звоночков.

Меня ожидало захватывающее путешествие в мир ретрокомпьютинга.
Читать дальше →

Изучаем Three.js.Глава 1: Создаем нашу первую 3D-сцену, используя Three.js

Reading time13 min
Views117K
Всем привет!
Хочу начать вольный перевод замечательной книги «Learning Three.js- The JavaScript 3D Library for WebGL». Я уверен, что эта книга будет интересна не только новичкам, но и профессионалам своего дела. Ну не буду долго затягивать вступление, только приведу пример того, что мы совсем скоро сможем делать:



Будущее начинается здесь

Еще одно Canvas руководство [1]: Canvas элемент, прямоугольники, пути

Reading time5 min
Views19K

Зачем еще одно руководство?


Потому что большинство уже существующих руководств рассматривают только основы, а все остальное приходится собирать по кусочкам поэтому я решил написать сжатое, полное руководство по canvas для программистов (а то часто пишут для простых людей которые изучают попутно и программирование).
Читать дальше →

Canvas-трансформации доступным языком

Reading time3 min
Views53K
Доброго времени суток, хабравчане! В этой статье я подробно расскажу вам о трансформации и вращении в javascripte. Матрица трансформаций, на первый взгляд, штука непонятная и многие ею пользуются даже не осознавая, что она делает на самом деле, используя готовые значения из интернета. На MDC об этом рассказано скудненько, а информацию в английской Википедии тяжело назвать общедоступной. Постараемся разобраться в этом вместе.
Читать дальше →

Как компьютер сам свой код улучшал, или программируем процесс программирования

Reading time9 min
Views34K
На носу было придумывание темы для диплома, на кафедре популярностью пользовались различные варианты идей связанных с генетическими алгоритмами, а мне самому хотелось сделать что-нибудь этакое. Так и родилась идея, давшая начало данному проекту, а именно генетическому оптимизатору программного кода.



Цель была довольно амбициозной — в идеале сделать такую штуку, которой на вход подается программа, а дальше она ее крутит так и сяк и пытается всячески ускорить отдельные ее фрагменты без участия человека, попутно собирая себе базу для последующих оптимизаций. Сразу скажу что хотя в целом задача была решена, практической пользы я из нее извлечь не смог. Однако некоторые полученные в процессе результаты показались мне достаточно интересными чтобы ими поделиться.

Например вот такая забавная оптимизация набора арифметических инструкций (взятых из какой-то подвернувшейся под руку математической библиотеки), соответствующих формулам: , которая на 6 джаве с выключенным JIT у меня давала около 10% ускорения, при этом на первый взгляд даже не очевидно что эти формулы эквивалентны (ОТКУДА ТУТ OR? ЭТО ВООБЩЕ ЗАКОННО?!), хотя это так. Под катом я расскажу, как именно получались такие результаты и каким образом компьютер придумывал лучший код чем тот, который мог написать я сам.
Читать дальше →

“Умный дом” на скорую руку

Reading time6 min
Views22K
С нами продолжают делиться решениями на основе модулей Мастер Кит:
«В качестве эксперимента решил я тут попробовать сделать некий прототип “умного дома” на скорую руку и с минимальными затратами. “Хотелок” оказалось много: и свет, и вентиляция, и окна, и вода, и ИК-управление электроприборами. На первых порах решил ограничиться минимумом задач: вентиляция и освещение в комнате.


Читать дальше →

Information

Rating
3,665-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity