Месяц: Апрель 2017
-
Matreshka.js 2 — tl;dr
Краткий обзор Matreshka.js. В посте используется ECMAScript 2017, который можно переписать на ECMAScript 5. Основные функции Функция bindNode связывает свойство и элемент. const object = { name: ‘Brendan’ }; const node = document.querySelector(‘.name’); Matreshka.bindNode(object, ‘name’, node); object.name = ‘Doug’; Если свойство меняется, меняется и элемент, если элемент меняется (например, пользователь вводит текст), меняется и свойство.…
-
Украшаем жизнь с помощью gdb PrettyPrinting API
Что gdb можно как-то улучшать на питоне, знает каждый, кто хоть раз заглядывал в документацию. А кто хоть раз просматривал ее по диагонали, знает что про такую штуку как «Pretty Printers» — которые якобы позволят gdb красиво печатать разные сложные структуры. Я документацию по диагонали просматривал, хотя особо не вникал. Но однажды, набирая в очередной…
-
Женский космический десант в Австралию?
Несмотря на все достижения в области коммуникации, до сих пор личная встреча и личное присутствие позволяют лучше установить контакт и сделать больше, чем на расстоянии. Кроме того, непосредственное присутствие позволяет увидеть больше, чем напишут другие люди в коротких заметках о событии. К чему это я? В конце сентября в Аделаиде (Австралия) пройдет шестьдесят восьмой международный…
-
Обработка ошибок в C
Введение Ошибки, увы, неизбежны, поэтому их обработка занимает очень важное место в программировании. И если алгоритмические ошибки можно выявить и исправить во время написания и тестирования программы, то ошибок времени выполнения избежать нельзя в принципе. Сегодня мы рассмотрим функции стандартной библиотеки (C Standard Library) и POSIX, используемые в обработке ошибок.
-
Scala: parser combinators на примере парсера формул
Время от времени у меня возникает желание придумать свой собственный маленький язык программирования и написать интерпретатор. В этот раз я начал писать на scala, узнал про библиотеку parser combinators, и был поражён: оказывается, можно писать парсеры легко и просто. Чтобы не превращать статью в пособие по "рисованию совы", ниже приведёна реализация разбора и вычисления выражений…
-
Делаю новую программу непрерывной интеграции
Доброго времени суток. Около года назад у меня как у человека работавшего тесно и в техподдержке и программистом возникло пару новых идей о сложности современного саппортинга рутинных программистских задач.
-
Как не наступать на грабли в Go
Этот пост является версией моей же англоязычной статьи "How to avoid gotchas in Go", но слово gotcha не переводится на русский, поэтому я буду использовать это слово как без перевода, так и немного непрямой вариант — "наступать на грабли". Gotcha — корректная конструкция системы, программы или языка программирования, которая работает, как описано, но, при этом,…
-
Термин «искусственный интеллект» потерял всякий смысл
Часто это просто модное название компьютерной программы В научной фантастике возможность угрозы со стороны искусственного интеллекта (ИИ) связана с взаимоотношениями людей и разумных машин. Будь то Терминаторы, Сайлоны или такие вспомогательные машины, как компьютер из «Звёздного пути» или дроиды из «Звёздных войн», машины заслуженно называют искусственным интеллектом, когда те становятся разумными – или, по меньшей…
-
Комета Хейла-Боппа
Ровно 20 лет назад в небе была видна яркая комета Хейла-Боппа. Это пожалуй последняя комета которую простые прохожие замечали на небе сами, без подачек СМИ. Последующие кометы были уже не такие яркие, их так просто не заметить. Несколько раз замечал как прохожие по вечерам удивленно указывали друг другу на необычное в небе. Эта фотография была…
-
Векторные картинки с градиентом в Андроид 5.0
Так вышло, что в моем текущем проекте мне пришлось столкнуться с проблемой. Дизайнер согласовала с заказчиком набор иконок, раскрашенных простым линейным градиентом. И отправила мне эти иконки в svg формате, с чувством выполненного долга. Гугление выявило, что поддержка градиентов в vector drawable начинается только с SDK 24+. Тем не менее, используя небольшую хитрость, оказалось возможным…