Search
Write a publication
Pull to refresh
10
0.3

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

Send message

Открыт новый вид пятиугольников, покрывающих плоскость

Reading time2 min
Views105K


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

Это всего 15-й вид таких пятиугольников и первый, открытый за последние 30 лет.
Читать дальше →

Женщина-математик, которая разрабатывает алгоритмы для лифтов

Reading time3 min
Views116K


55-летний американский математик Тереза Кристи (Theresa Christy) работает в компании Otis Elevator Co. и считается одним из лучших специалистов по вертикальному транспорту. Двадцать пять лет своей жизни она посвятила разработке и оптимизации алгоритмов для лифтов. Именно её привлекли во время недавней реконструкции Empire State Building стоимостью $550 млн. Тереза Кристи увеличила скорость лифтов на 20% до 6 м/c, так что они теперь проходят первые 80 этажей всего за 48 секунд.
Читать дальше →

Про соль с точки зрения химика

Reading time10 min
Views181K
На самом деле этот пост был подготовлен еще в апреле 2014 года, я не смог тогда его опубликовать. Являлся вторым в ожидавшейся серии. Можете глянуть первый. На эту тему писать меня сподвигло желание внести немного ясности в представления о некоторых химических аспектах нашего бытия. Пользуясь тем, что химия — наука, не слишком популярная в массах, нам иногда рекламщики и пресса выдают такие перлы, что у меня не хватает слов для описания эмоций. Так что попробуем слегка рассеять туман, ну и чтоб это было интересно и актуально для наших условий. Недавно встретил похожую переводную публикацию, тоже про соль. Серьёзную и хорошо сделанную, правда, слегка не о нашей действительности.

Итак — про соль


Так в Африке ею и торгуют. Толщина кусков, вероятно определяется толщиной пласта. Слабенькие пласты.

Солить или не солить. А зачем вообще соль, может лучше без неё? Заменитель соли? Ценная соль с минералами и розового цвета — а зачем козе баян? Рекламные посты — хороший способ приготовить лапшу на уши.
Читать дальше →

Таблицы сопряженности и факторизация неотрицательных матриц

Reading time6 min
Views16K
Факторизация неотрицательных матриц (NMF) — это представление матрицы V в виде произведения матриц W и H, в котором все элементы трех матриц неотрицательны. Это разложение используется в различных областях знаний, например, в биологии, компьютерном зрении, рекомендательных системах. В этой публикации пойдет речь о таблицах сопряженности социологических и маркетинговых данных, факторизация которых помогает понять структуру данных этих таблиц.


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

Метод функций Ляпунова в задаче об эффекте Джанибекова

Reading time8 min
Views22K

Введение


Данная статья не имеет отношения к циклу «Магия тензорной алгебры», но вызвана к жизни публикациями из него. Небрежно щелкая по ссылкам в поисковике набрел на обсуждение одной из своих статей, посвященных эффекту Джанибекова, и обратил внимание на справедливое замечание о том, что исследование устойчивости гайки Джанибекова по первому приближению не дает однозначного ответа на вопрос о том при каких параметрах движение будет устойчивым. Это так, поскольку корни характеристического полинома, при вращении вокруг оси с наименьшим и наибольшим моментом инерции чисто мнимые, их действительная часть равна нулю. При таких условиях нельзя ответить на вопрос будет ли движение устойчивым, не проведя дополнительного исследования.

Интерпретация Мак-Куллага — наверно самое простое объяснение эффекта Джанибекова


Такое исследование можно выполнить используя метод функций Ляпунова (второй или прямой метод Ляпунова). И чтобы окончательно закрыть вопрос с гайкой Джанибекова, я решил написать эту заметку.
Читать дальше →

Готовим IndexedDB

Reading time7 min
Views83K


На Хабре уже рассказывали про IndexedDB — стандарт хранения больших структурированных данных на клиенте. Но это было давно и API сильно изменился. Несмотря на это в поиске статья всплывает одной из первых и вводит в заблуждение многих, кто начинает пытатся работать с этой технологией. Поэтому я решил написать новую статью с информацией об актуальном API.
Читать дальше →

Ускоренный курс по нотациям в теории языков программирования

Reading time10 min
Views32K
Программисты часто сталкиваются с проблемами чтения математических нотаций, когда пытаются разобраться с теоретическими основами какого-либо языка программирования. Также с ними толкнулся и я в своих теоретических изысканиях. К счастью, мне очень помогла замечательная статья Джереми Сиека (Jeremy Siek), чьим переводом я хочу с вами поделиться. Надеюсь она поможет многим программистам-«не математикам».
Читать дальше →

Calque — калькулятор, который удобнее, чем консоль браузера

Reading time1 min
Views54K
Приветствую.

Существует приложение для iOS — Tydlig, которое буквально переосмысливает калькулятор, и делает его потрясающе удобным. Попользовавшись один раз этим приложением, остаешься его любителем.

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

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

Поиск чего-то похожего на Tydlig ничего не дал, и было принято решение писать свое приложение.

Что из этой затеи получилось:


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

Тонкости ES6: Коллекции (часть 2)

Reading time6 min
Views23K
От переводчика: это вторая часть перевода статьи про коллекции в EcmaScript 6. Первую часть можно прочитать тут. По разным причинам перевод второй части затянулся на достаточно долгий срок.

Map


Map (ассоциативный массив) — это коллекция пар ключ-значение (key-value). Вот что умеет Map:
  • new Map возвращает новый пустой ассоциативный массив.
  • new Map(pairs) создает новый ассоциативный массив и наполняет его данными из существующей коллекции пар [key, value]. Эта коллекция может быть другим Map объектом, массивом из двухэлементных массивов, генератором который возвращает двухэлементые массивы, и т.д.
  • map.size возвращает количество элементов в ассоциативном массиве.

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

Игра для самых маленьких — простая идея, которую не стыдно включить в резюме

Reading time6 min
Views48K

Предыстория


Мой сын, как, наверное, все дети программистов, получил свою первую клавиатуру ещё когда не умел сидеть. Сейчас ему чуть меньше года, но он уже понимает разницу между «игрушечной» и «настоящей» (папиной) клавиатурой — если колотить по кнопкам настоящей, то на экране меняется картинка, а компьютер иногда издаёт какие-то звуки.

КДПВ

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

Чтобы процесс освоения компьютера стал для детёныша более увлекательным, я решил написать ему простенькую игру. Будучи программистом со стажем, весь процесс решено было построить «правильно».

Требования


Заказчик (мой сын, возраст <1 года), как и все нормальные заказчики затруднился письменно изложить непротиворечивые и полные требования к продукту, поэтому пришлось помочь писать самому.

Функциональные:
  • Приложение работает в режиме полного экрана.
  • Можно нажимать на всё подряд, но самые доступные методы выхода или переключения программ должны быть заблокированы.
  • Визуальная обратная связь — цвет фона меняется при нажатии, в центре экрана отображается нажатый символ.
  • Звуковая обратная связь — приложение издаёт звук при нажатии на клавишу.
  • Предсказуемое поведение — цвет фона, символ и звук должны быть всегда одинаковыми для одной и той же клавиши.

Не функциональные:
  • Мне должно быть не стыдно за написанный код.
  • Код должен быть ценен сам по себе.
  • Архитектура и все решения должны быть «правильными» — как в заказном проекте.

Кроме того было принято решение использовать гибкий итеративный подход к разработке с малыми циклами разработки, заканчивающимися получением обратной связи (SCRUM).

В качестве языка программирования и среды разработки были выбраны C# и Visual Studio, так как они обеспечивали исполнителю наибольшую скорость работы.
Читать дальше →

Выпущена финальная версия Small Basic 1.0!

Reading time2 min
Views24K
image

Я рад сообщить о том, что среда разработки Small Basic, предназначенная для начинающих разработчиков, школьников и детей, выпущена в финальной версии Small Basic 1.0! Дистрибутив доступен на 20 языках. Русскую финальную версию вы можете загрузить по этой прямой ссылке.

Стоит напомнить что такое Small Basic:

  1. Очень простая среда разработки — текстовый редактор с многофункциональной подсказкой и лишь несколько кнопок для редактирования текста и запуска программ.
  2. Простой язык, включающий небольшое количество ключевых слов
  3. Встроенная в среду разработки контекстная документация по всем элементам языка
  4. Возможность расширения компонентов Small Basic для включения дополнительного функционала (такая возможность понравится создателям online сервисов — можно дать возможность миллионам энтузиастов создать что-то свое с использованием сервиса и Small Basic). Например, в поставке уже идут возможности по работе со службами Flickr.
Многим знаком язык разработки QBasic, так вот Small Basic отличается от него тем, что основан на платформе .NET. Кроме того, Small Basic поддерживает современные понятия языков программирования, такие как свойства и события. В дополнение ко всему, Small Basic имеет очень удобную среду разработки.

Под катом еще немного информации и полезные ссылки на русскоязычные материалы.

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

Простой и недорогой 3-х осевой фрезерный станок с ЧПУ. Часть 2

Reading time4 min
Views18K
Сегодня в фокусе нашего внимания конструктор 3D фрезерного станка.



В предыдущей публикации мы остановились на вопросе настройки слайсера Skeinforge.

Собственно с этого места поподробнее. Итак, нажимаем кнопку «Настройка»
Читать дальше →

Arduino Mega Server

Reading time7 min
Views95K
image

Да, это снова Ардуино, но не спешите закрывать страничку, на этот раз вас ждёт нечто действительно новое и интересное. В основном в этой статье речь пойдёт о микроконтроллерных платах Arduino Mega и плате сетевого интерфейса Ethernet Shield W5100 и о том чуде, которое можно с ними сотворить если позволить себе выйти за рамки стереотипов.
Читать дальше →

TIS-100 — паззл про многопоточный ассемблер, который никто не ждал

Reading time3 min
Views89K
image

Удивительно, но никто не написал ничего про игрушку «TIS-100», которая недавно появилась в Steam (стоит всего 150 рублей, уже 460 положительных отзывов против 6 отрицательных).

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

Итак, о чем игра?
Читать дальше →

Робот-конструктор «Хватоход»

Reading time4 min
Views7.7K


Известно что дети любят разбирать игрушки и гаджеты чтобы исследовать их устройство. Как правило, ничем хорошим для объекта изучения это не заканчивается. Чтобы удовлетворить любопытство юных исследователей существует целый класс игрушек которые продаются в изначально разобранном виде. Многие из нас в детстве собирали модельки из россыпи пластиковых деталей которые надо было склеивать и потом раскрашивать, но все эти модельки были макетами которые не ездили и не летали. Робот-конструктор «Хватоход» не такой — он может ездить, подбирать и перемещать небольшие предметы подчиняясь командам дистанционного управления. Под катом обзор, включающий анбоксинг, сборку и ходовые испытания Хватохода.
Читать дальше →

Знакомимся с Vorlon.js — отладка веб-приложений

Reading time4 min
Views10K
Мы продолжаем публиковать в нашем блоге авторские статьи на темы разработки приложений. Встречайте первую статью от Андрея Веселова ( StealthDogg ) — опытного веб-разработчика и Microsoft MVP.
Не секрет, что в большинстве веб-браузеров есть инструменты для разработчиков. С их помощью можно получить информацию о DOM, состоянии выполняемых скриптов, времени загрузки страницы и т.д. Но существуют ситуации когда они отсутствуют или не доступны. Например, в мобильных или IoT устройствах. Тогда на помощь приходит Vorlon.js.

Что такое Vorlon.js


Vorlon.js это бесплатный инструмент, который позволяет получить и отобразить в браузере разработчика различную отладочную информацию от клиентов отлаживаемого веб-приложения. Он использует node.js и написан на языке TypeScript, который является надмножеством JavaScript. Таким образом, его можно применять для отладки веб-приложений практически на любой платформе.

Посмотрим на возможности Vorlon.js. Его окно внешне схоже с окнами инструментов разработчика в браузерах:



Слева в окне расположен список клиентов, подключенных к отлаживаемому веб-приложению. Определить, какая строка соответствует каждому из них, можно нажав кнопку "Identify a client". После этого их браузеры выведут на экран свой индекс.
Читать дальше →

$mol_time — работаем с датами и временем правильно

Reading time5 min
Views12K
Здравствуйте, меня зовут Дмитрий Карловский и я… очень стар. Годы уже не те, чтобы с лёгкостью разбираться в хитросплетениях мудрёных интерфейсов. Хочется чего-то относительно простого, но и достаточно мощного, чтобы не чувствовать себя калекой, который еле-еле пишет простейшую программу.

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

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

Далее вы узнаете, как я избавился от геморроя путём смены городского минивена на спортивный велосипед :-)
Читать дальше →

Все дело не в количестве строк кода. От серийного разработчика модулей

Reading time3 min
Views18K
Синдре Сорхус — автор более, чем 600 модулей npm (666, Карл!). В недавнем AMA (кто не знает, это такой формат, когда кто-либо известный/интересный предлагает позадавать ему вопросы, например, в виде тикетов к гит-репозиторию, хотя, конечно, известнее /r/AMA и фуршет у Лебедева) он пояснил свою позицию по поводу модулей-однострочников, которые зачастую вызывают критику в адрес node.

Я собирался написать пост в блоге на эту тему, но, к сожалению, в этом я не так продуктивен, как в написании кода.

tl;dr Небольшие специализированные модули нужны для повторного использования и для того, чтобы делать большие и сложные штуки, которые легко понять.

Люди слишком озабочены количеством строк кода. LOC вообще не имеет никакого значения. Не важно, состоит модуль из одной строчки, или из сотен. Все дело в сокрытии сложности. Думайте о модулях node как о кубиках лего. Вас не интересует, из чего и как они сделаны. Все, что вам требуется знать — как использовать эти кубики для постройки своего лего-замка. Делая маленькие и специализированные модули, вы можете легко строить большие и комплексные системы без контроля за тем, как каждая отдельная деталь работает. Наша кратковременная память конечна. Эти модули могут повторно использовать другие люди и каждое улучшение и исправленный баг получат все из них.

Представьте себе, если бы производители ПК производили процессоры сами. Большинство делали бы это плохо. Компьютеры были бы дороже, а инновации происходили бы медленнее. Вместо этого большинство использует Intel, ARM и прочие.
Читать дальше →

История о том, как я угольный котел автоматизировал

Reading time8 min
Views45K
В холодные зимние вечера, когда температура на улице достигала -40 градусов. Я понял, что мне приходится совершать очень много однотипных действий, которые, на первый взгляд, очень просто автоматизировать.

Подробности о том, как не программист угольный котел оживлял ниже.
Читать дальше →

Information

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