Pull to refresh
137.2
Karma
0
Rating
Владимир Синельников @onthefly

Пользователь

  • Posts
  • Comments

Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование

RUVDS.com corporate blogPHPIT InfrastructureAPIDevelopment for Linux
Tutorial


Представляю вам цикл статей по созданию собственного шлюза для отправки SMS-сообщений.
В первой части мы определим цели и некоторые аспекты использования своего шлюза, настроим программное обеспечение для отправки SMS с использованием USB-модемов, а также рассмотрим несколько интересных вариантов отправки
Читать дальше →
Total votes 74: ↑73 and ↓1 +72
Views24.2K
Comments 60

Я знал, как валидировать email-адрес. Пока не прочитал RFC

Website developmentRegular expressions
Translation
От переводчика: прочитав статью, начал было отвечать в комментариях, но решил, что текст, на которую я собирался ссылаться, достоин отдельной публикации. Встречайте!
Если вы знаете, как валидировать email-адрес, поднимите руку. Те из вас, кто поднял руку — опустите её немедленно, пока вас кто-нибудь не увидел: это достаточно глупо — сидеть в одиночестве за клавиатурой с поднятой рукой; я говорил в переносном смысле.

До вчерашнего дня я бы тоже поднял руку (в переносном смысле). Мне нужно было проверить валидность email-адреса на сервере. Я это уже делал несколько сот тысяч раз (не шучу — я считал) при помощи классного регулярного выражения из моей личной библиотеки.

В этот раз меня почему-то потянуло ещё раз осмыслить мои предположения. Я никогда не читал (и даже не пролистывал) RFC по email-адресам. Я попросту основывал мою реализацию на основе того, что я подразумевал под корректным email-адресом. Ну, вы в курсе, что обычно говорят о том, кто подразумевает. [прим. перев. Автор имеет в виду игру слов: «when you assume, you make an ass of you and me» — «когда вы (что-то) подразумеваете, вы делаете /./удака из себя и из меня»]

И обнаружил кое-что занимательное: почти все регулярные выражения, представлены в интернете как «проверяющие корректность email-адреса», излишне строги.
Читать дальше →
Total votes 80: ↑66 and ↓14 +52
Views98.5K
Comments 98

Свершилось! Недорогие светодиодные лампы с CRI 90+

LampTest corporate blogGadgets
Индекс цветопередачи света влияет на то, как мы видим предметы. Чем выше этот индекс, тем естественней цвета и более различимы оттенки. У солнца и ламп накаливания индекс цветопередачи равен 100, у дешёвых светодиодных ламп — 70, у стандартных — 80. До сегодняшнего дня светодиодные лампы с индексом цветопередачи более 90 можно было купить только в магазинах IKEA (серия Ledare).

Наконец-то первый из российских производителей выпустил серию лампочек с высокими индексами цветопередачи. Пионером стал Наносвет.

Читать дальше →
Total votes 96: ↑93 and ↓3 +90
Views72.5K
Comments 131

Умная гирлянда на весь год

LampTest corporate blogGadgets
Адресные светодиоды позволяют делать очень красивые ёлочные гирлянды, где каждый «огонёк» управляется независимо, меняя цвет и яркость. Эффекты и анимация такой гирлянды выглядят очень интересно.

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

Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Views33.6K
Comments 66

Светодиодные лампы GP

LampTest corporate blogGadgets
Компания GP, хорошо известная по батарейкам, аккумуляторам, зарядным устройствам и пауэрбанкам, приступила к производству светодиодных ламп. Первая партия прибыла в Россию в ноябре и я протестировал все модели.

Читать дальше →
Total votes 52: ↑51 and ↓1 +50
Views18.2K
Comments 43

Мат слоном и конём. Метод TWIX

Entertaining tasksAlgorithmsLogic games

Ушенина (на фото слева, играет белыми) — Гиря (на фото справа, играет чёрными). Ничья.
Гран-При среди женщин, 4-й тур
6 мая 2013 года, Женева


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

Имея на две фигуры меньше, она нашла остроумный способ добиться ничьей с чемпионкой мира (на тот момент) Анной Ушениной. Ольга просто разменяла всё, что только можно и свела партию к эндшпилю «король + слон + конь VS король». Украинская шахматистка полсотни ходов безуспешно пыталась заматовать вражеского короля, после чего результат партии был признан ничейным.

Обидная ничья существенно повлияла на результат Ушениной в турнире. Она заняла 5-6 место, а выигрыш позволил бы разделить бронзу (3-5 место).
А если бы знала метод TWIX - всё было бы иначе
Total votes 151: ↑147 and ↓4 +143
Views61.4K
Comments 77

Мифы современной популярной физики

Physics
Где-то в альтернативной вселенной, согласно MWI, я стал гениальным физиком. Но в этой вселенной просто подробно слежу за профессиональными публикациями в области физики, зарабатывая себе на хлеб развозкой пиццы базами данных. Как следствие чуть более глубоких знаний, я не могу смотреть никаких научно-популярных передач. Это как железом по стеклу — тут oversimplification, тут просто неверно, тут есть тонкости…

Я решил сформировать список наиболее часто встречающихся неправд и полуправд. Итак, самое частое это…

Большой взрыв


Его изображают примерно так:


Читать дальше →
Total votes 310: ↑304 and ↓6 +298
Views112.5K
Comments 561

Создание собственной цветовой палитры

Web designWebsite developmentGraphic designDesign
Translation
Tutorial
Адаптировано из нашей будущей книги «Рефакторинг UI»

Видели эти модные генераторы цветовой палитры? Когда выбираешь цвет, настраиваешь несколько параметров с музыкальными словечками типа «триада» или «четвёртый мажор» — и получаете пять идеальных цветов для своего веб-сайта?



Такой вычислительный и научный подход к выбору идеальной цветовой гаммы крайне соблазнителен, но не очень полезен.
Читать дальше →
Total votes 94: ↑92 and ↓2 +90
Views40.1K
Comments 12

Используем Apple Pay и карту Тройка в качестве пропуска на работу

Information SecurityWireless technologies
Используем Apple Pay, Android Pay, Mastercard Paypass, Visa PayWave и карту Тройка в качестве пропуска на работу

TL;DR В статье описывается процесс создания системы контроля доступа (СКУД), в которой в качестве идентификатора могут использоваться карты Тройка, любые бесконтактные банковские карты EMV, а также телефоны с Apple Pay и Android Pay. Управление системой происходит через Telegram-бота.

Основные задачи системы


  • Избавиться от лишних карт — в качестве идентификатора используется то, что уже есть у пользователя: транспортная карта, телефон или банковская карта. Какой идентификатор использовать — каждый выбирает сам. Система работает со всеми типами идентификаторов одновременно.
  • Избавиться от бюро пропусков и сложных программ управления — нам надоело выдавать и забирать карты у пользователей, держать отдельные компьютеры для управления пропусками, изучать переусложненные программы.
  • Управление через Telegram — заведение и удаления пользователей происходит удаленно и не требует компьютера.
Читать дальше →
Total votes 118: ↑118 and ↓0 +118
Views83.7K
Comments 164

SVG маски и вау-эффекты: о магии простыми словами

Website developmentJavaScript


О существовании SVG знают все, кто занимается фронтендом. Этой технологии уже не один год, про нее уже не раз писали на хабре. Но есть один момент. Частенько на разных ресурсах, в том числе и на тостере, начинающие задают вопросы о создании определенного семейства анимаций на сайте и получают довольно странные ответы от “бывалых” разработчиков. Возникает ощущение, что в такие моменты все думают в контексте HTML+CSS+JS и просто забывают о существовании SVG, предлагая все рисовать на canvas и попутно давая обещания дать тому, кто это придумал, клавиатурой по голове. Но этот путь (рисование на canvas) зачастую слишком сложен относительно решаемой задачи. В предыдущей статье мы обсуждали идеи создания частичных вау-эффектов, а в этой поговорим о масках и посмотрим пару анимаций, которые с их помощью можно сделать.
Читать дальше →
Total votes 61: ↑61 and ↓0 +61
Views42.7K
Comments 11

Проблемы эгоистов: дорожные пробки и парадокс Браеса

System Analysis and DesignMathematics
Translation

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

Несколько лет назад Джоел Коэн сказал мне, что парадокс Браеса может стать хорошей темой для моей колонки в «Computing Science». Я засомневался. Опубликовано уже немало обсуждений этого парадокса, в том числе потрясающие статьи самого Коэна, а также книга Тима Рафгардена (обзор которой я написал для American Scientist). Я не считал, что смогу добавить что-то новое к дискуссии.

Однако недавно я начал рассматривать задачу визуализации парадокса Браеса — представлении его таким образом, чтобы мы могли наблюдать отдельные автомобили, едущие через дорожную сеть, а не просто вычислять средние скорости и время в пути. Возможность поэкспериментировать с моделью — понажимать рычаги и кнопки, попробовать разные алгоритмы маршрутизации — может привести к более чёткому пониманию того, почему хорошо информированные и имеющие собственный интерес водители могут выбирать маршрут, который в результате тормозит всех.
Читать дальше →
Total votes 85: ↑85 and ↓0 +85
Views78.2K
Comments 711

Оптимизация производительности фронтенда

Конференции Олега Бунина (Онтико) corporate blogHigh performanceWebsite developmentJavaScript
Тормозящий сайт — это боль не только пользователя, но и разработчика. Как можно исправить ситуацию, в каких случаях нужно делать ставку на кэширование, а где можно довериться процессору, и как все это может помочь оптимизировать производительность сложного фронтенд-приложения, на практике готов объяснить эксперт по JS и преподаватель Академии HTML Игорь Алексеенко (@iamo0). Под катом — расшифровка его доклада с Frontend Conf 2017.



Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Views21.4K
Comments 13

Как правильно читать состав косметики

Гельтек-Медика corporate blogBiotechnologiesHealth


Ингредиенты перечисляются по понижению массовой доли: что ближе к началу, того больше по массе. Вещества, которых в составе менее 1% считаются равнозначными для этого списка, и их можно указывать после основных в любом порядке. В РФ по закону указывается всё без исключения (нет ситуации, когда при малом содержании можно пропускать вещество), и на практике это соблюдается. Почему — чуть ниже.

Нельзя писать «консервант» без указания, что это именно такое, нельзя писать «минеральный комплекс кислот» без детализации, что это такое, но можно писать коммерческие названия. То есть регистрируете свой минеральный комплекс кислот или консервант как товарный знак — и пишете уже его. Можно писать химические наименования или торговые, причём можно и латиницей, и на русском. В непонятных веществах, например, часто прячут то, что мнительные женщины не хотят увидеть на этикетке.
Читать дальше →
Total votes 84: ↑84 and ↓0 +84
Views59K
Comments 115

Каких слов стоит избегать, чтобы сделать вашу английскую речь более современной и естественной

EnglishDom corporate blogLearning languages
Tutorial

Любой современный язык — это живая система, которая постоянно обновляется и меняется. Не удивительно, что какие-то слова просто устаревают или просто реже звучат в повседневном общении, а вместо них появляются новые слова. Ловите подборку таких слов и их более современные варианты от носителя языка.
Читать дальше →
Total votes 41: ↑34 and ↓7 +27
Views40K
Comments 170

Lean UX — мелочи для успешных проектов

DataArt corporate blogWeb designInterfacesMobile applications design


Автор: Анастасия Режепп, глава дизайн-студии DataArt.

В этой статье я немного расскажу о методологии Lean UX-дизайна и дам несколько техник и упражнений, показывающих, как ее применять.

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

Что значит “lean”

Слово “lean” переводится на русский как «тощий», «худой», «постный». Если переводить этот термин более специальным образом, то — «бережливый», «экономный», «минималистический». Например, уже есть термин «бережливое производство» — перевод английского “lean production”. Бережливое производство подразумевает постоянное устранение всех видов потерь — это достигается, в том числе, максимальной ориентацией на потребителя. То же самое верно и для подхода бережливого (тощего) UX-дизайна.

Принципы бережливого UX-дизайна

Когда мы следуем методу тощего UX-дизайна, есть несколько моментов, на которые стоит обратить внимание:
  • Мы понимаем целевую аудиторию и ее проблемы.
  • Мы создаем MVP (Minimum Viable Product — минимально жизнеспособный продукт).
  • Мы работаем короткими итерациями.
  • Мы постоянно тестируем нововведения на пользователях и, если что-то не так, быстро откатываемся.
  • Мы работаем командой: UX-проектировщики, дизайнеры, разработчики и тестировщики работают вместе и постоянно обмениваются мнениями и задачами.

Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Views25.5K
Comments 1

Эффект дизеринга в трёхмерной игре

Working with 3D-graphicsGame developmentGame design
Translation
image

Создатель Papers, Please Лукас Поуп работает над новым трёхмерным проектом Return of the Obra Dinn, в котором пытается с помощью эффекта дизеринга воссоздать в игре ощущение старинной книги.

Для начала краткое объяснение: Obra Dinn выполняет внутренний рендеринг всего в 8-битной палитре в градациях серого, а затем на этапе постобработки преобразует конечные выходные данные в 1-битные значения. Преобразование из 8-битного в 1-битный цвет выполняется сравнением каждого пикселя исходного изображения с соответствующей точкой в тайловом паттерне дизеринга. Если значение пикселя изображения больше значения точки паттерна дизеринга, то выходному биту присваивается значение 1, в противном случае оно равно 0. Выходные данные упрощаются до 1-битных значений, а глаз зрителя объединяет пиксели, аппроксимируя из них больше битов.
Читать дальше →
Total votes 72: ↑72 and ↓0 +72
Views19.6K
Comments 42

Иннервация глаза: как устроена сеть управления зрением

Гельтек-Медика corporate blogBiotechnologiesHealth


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

Да простят меня коллеги-научники за упрощения и неканоническую терминологию.

Ну и ещё отвечаю на вопрос, когда удалять здоровый правый глаз, если у пациента серьёзная инфекция на левом.
Читать дальше →
Total votes 53: ↑52 and ↓1 +51
Views38.7K
Comments 53

Переписать базу сообщений ВКонтакте с нуля и выжить

ВКонтакте corporate blogHigh performanceAlgorithmsData storageData storages
Наши пользователи пишут друг другу сообщения, не зная усталости.

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

При таком объёме данных критически важно, чтобы логика хранения и доступа к ним была построена оптимально. Иначе в один не такой уж и прекрасный момент может выясниться, что скоро всё пойдёт не так.

Для нас этот момент наступил полтора года назад. Как мы к этому пришли и что получилось в итоге — рассказываем по порядку.
Читать дальше →
Total votes 97: ↑94 and ↓3 +91
Views58.6K
Comments 91

Нет, у меня нет сторонних проектов, чтобы вам показать

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

Но у меня нет сторонних проектов. У меня нет аккаунта на GitHub. У меня нет open-source проектов, которые я строгаю по вечерам. У меня ровно ноль пулл-реквестов в любой из последних модных проектов, в которых участвуют все крутые кодеры. Я не вожусь с упражнениями в Haskel. И я ненавижу хакатоны.

И когда я сказал, что не могу показать им сторонних проектов — для них это звучало так, что я не лучший. Я не увлечённый разработчик. Я не уделяю достаточно времени тому, чтобы поддерживать на высоком уровне своё образование и навыки. Программирование — это «просто работа».
Читать дальше →
Total votes 220: ↑192 and ↓28 +164
Views72.7K
Comments 757

unCAPTCHA: использование сервисов Google для обхода Google reCAPTCHA

OWASP corporate blogInformation Security
image

unCAPTCHA – автоматизированная система, разработанная экспертами Мэрилендского университета, способная обойти reCAPTCHA от Google с точностью до 85 %. Им это удалось благодаря распознаванию аудио-версии подсказки для людей с ограниченными возможностями.
Читать дальше →
Total votes 48: ↑46 and ↓2 +44
Views26K
Comments 31

Information

Rating
5,707-th
Location
Курск, Курская обл., Россия
Date of birth
Registered
Activity