Как стать автором
Обновить
18
0
Виталий Мещанинов @glukki

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

Отправить сообщение

Автоматизированное тестирование ботов для Telegram

Время на прочтение5 мин
Количество просмотров23K
Кажется, что время — это река, которую внезапно переклинило, и она решила течь по кругу. Именно такое впечатление складывается на первый взгляд, когда видишь, что вновь стали популярны боты в мессенджерах. Но это впечатление обманчиво. Изменилось очень многое — мощности, которые стоят за ботами, возможность обработки ими мультимедиа информации, наличие информации о пользователях, круг охвата… В общем, это явно не ностальгический тренд, а реально полезная технология, которая будет развиваться и дальше.

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

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

Конечно, можно зарегистрировать дополнительного бота для тестирования, но это вариант кривой и некрасивый. Обращение ко внешнему апи во время тестов, заглушка, которая не даст общаться с ботом кому попало, ограничение на скорость отправки сообщений раз в секунду… Если слать сообщение раз в секунду, то граф из каких-то 60 вершин будет тестироваться уже больше минуты! И я уже не говорю о том, что у нас нет никакой возможности смоделировать возросшую нагрузку на бота, при которой он упрётся в ограничение в 30 сообщений в секунду… В общем, я понял, что опять придётся делать что-то своё.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

4 мифа о PostCSS

Время на прочтение5 мин
Количество просмотров41K
Вы читаете перевод статьи PostCSS Mythbusting: Four PostCSS Myths Busted.

Когда появляется новый фронтенд-инструмент, мы всегда спрашиваем – а нужен ли он нам, что нового он может предложить? Стоит ли тратить время и усилия на его изучение?

С самого начала PostCSS столкнулся с интересной проблемой. Люди не понимали что это и как его использовать. Чтобы завоевать внимание, PostCSS приходилось соперничать с уже привычными подходами Sass и Less. Это соперничество породило некоторые заблуждения.

Давайте развеем некоторые из самых частых мифов о PostCSS и посмотрим, как с его помощью можно усовершенствовать ваш рабочий процесс.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии64

Прекратите скручивать (восклицательный знак)

Время на прочтение6 мин
Количество просмотров1.7M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно
Всего голосов 682: ↑667 и ↓15+652
Комментарии360

Рентабельный код 2: крадущийся DDD, затаившийся CQRS

Время на прочтение20 мин
Количество просмотров50K

Трем программистам предложили пересечь поле, и дойти до дома на другой стороне. Программист-новичок посмотрел на короткую дистанцию и сказал, «Это не далеко! Это займет у меня десять минут». Опытный программист посмотрел на поле, немного подумал, и сказал: «Я мог бы добраться туда за день». Новичок посмотрел на него с удивлением. Гуру-программист посмотрел на поле и сказал. «Кажется минут десять, но я думаю пятнадцати будет достаточно». Опытный программист рассмеялся.

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

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

Гуру программист пустился в путь, и пошел прямо через поле. Целеустремленно и прямо. Он достиг цели всего за десять минут.
«Как тебе это удалось?» — спросили двое других — «Как ты умудрился не зацепить ни одной мины?»
«Легко» — ответил он. «Я не закладывал мины на своем пути».

Как ни прискорбно, придется признать – мы сами закладываем себе мины. В первой части я подробно разобрал основные риски в разработке ПО и описал технологические и методологические способы ослабления этих рисков. За прошедший год я получил множество комментариев, основной смысл которых сводился к следующему: «все круто, но с чего начать и как все это будет выглядеть в реальном мире». Действительно, первый текст носит скорее теоретический характер и представляет собой каталог ссылок. В этой статье я постараюсь привести как можно больше примеров.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии19

Рентабельный код

Время на прочтение12 мин
Количество просмотров65K


Жили-были в двух соседних деревушках Вилларибо и Виллабаджо две команды разработчиков. И те и другие делали ревью кода, писали тесты, приводили рефакторинг, но через год разработки в Вилларибо уже выпустили релиз и вышли в продакшн, а в Виллабаджо все еще проводят рефакторинг и чинят баги. В чем же дело?

Разработка ПО – область, подверженная рискам. В нашей сфере при наступлении одного или нескольких рисков, срок поставки рабочей версии может сдвинуться не на привычные и комфортные 10-20%, а на все 150-300%. И надо признаться, что это далеко не предел.

Мы можем либо скрестить пальцы и надеяться, что удача будет сопутствовать проекту во всем, либо признать, что по статистике большая часть проектов по разработке ПО «проваливается» и предпринять дополнительные усилия по ослаблению возможных рисков.
Моя практика показывает, что клиенты крайне неохотно работают по схеме T&M и чаще предпочитают Fixed Price. В условиях зафиксированной стоимости наступление рискового случая означает автоматическое снижение рентабельности проекта: сотрудники получают зарплату ежемесячно, а не за сданные проекты.

До Agile и XP вся ответственность за работу с рисками ложилась на менеджеров. В гибких методологиях разработчики гораздо больше вовлечены в процесс и делят ответственность с менеджерами. Однако, принципы XP и Agile – больше методологические, чем технологические. Я думаю, что с рисками эффективнее работать комплексно на всех уровнях, в том числе на самом низком уровне, т.е. во время проектирования и написания кода.

Почему об этом следует думать разработчику, если есть менеджер?
  1. Не секрет, что если факап случится, менеджмент примет единственное «супер-умное» решение: «давайте поработаем сверхурочно и в выходные»
  2. Премии сотрудники получают тоже обычно за в срок сданные, а не за проваленные проекты
  3. Чувство сделанного дела, в конце концов. Гораздо приятнее сдать проект во время и видеть улыбку клиента, чем с опозданием в полгода отвязаться от «трудного ребенка»

С моей точки зрения спокойная рабочая обстановка вместо авралов и бонусы – неплохая мотивация, чтобы начать заботиться об этом.
Читать дальше →
Всего голосов 76: ↑68 и ↓8+60
Комментарии26

Спутник — это очень просто

Время на прочтение19 мин
Количество просмотров63K
Мы быстро привыкаем к прогрессу. Вещи, которые нам несколько лет назад казались фантастикой, сегодня не замечаются и воспринимаются как всегда существовавшие. Достаточно покопаться в старых вещах, как вдруг найдется монохромный мобильный телефон, дискета, магнитофонная кассета или даже катушка. Не так давно это было. Не так давно и интернет был «по талонам» под скрип модема. А кто-то помнит 5,25" жесткие диски или даже магнитофонные кассеты с компьютерными играми. И обязательно найдется тот, кто скажет, что в его время были 8" дискеты и бобины для ЕС ЭВМ. И в тот момент ничего не было современнее, чем это.

В эти недели можно наблюдать традиционные мероприятия, посвященные запуску первого Спутника — началу Космической эры. Силой случая спутник, который должен быть первым, стал третьим. А первым полетел совсем другой аппарат.
Этот текст о том, как просто сейчас услышать спутники на околоземных орбитах и как это было в начале космической эры. Перефразируя известной когда-то книги Е. Айсберга: «Спутник — это очень просто!»

image

Читать дальше →
Всего голосов 66: ↑66 и ↓0+66
Комментарии10

Что такого особенного в Nim?

Время на прочтение7 мин
Количество просмотров80K


Язык программирования Nim (ранее именовался Nimrod) — захватывающий! В то время как официальная документация с примерами плавно знакомит с языком, я хочу быстро показать вам что можно сделать с Nim, что было бы труднее или невозможно сделать на других языках.

Я открыл для себя Nim, когда искал правильный инструмент для написания игры, HoorRace, преемник моей текущей DDNet игры/мода Teeworlds.

(прим. пер. На синтаксис Nim имели влияние Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.)

Запускаем!


Да, эта часть всё ещё не захватывает, но просто следите за продолжением поста:

for i in 0..10:
  echo "Hello World"[0..i]

Читать дальше →
Всего голосов 63: ↑57 и ↓6+51
Комментарии93

Забудьте САР теорему как более не актуальную

Время на прочтение12 мин
Количество просмотров65K
или «Прекратите характеризовать хранилища данных как CP или AP»

capДжеф Ходжес в своем прекрасном посте «Заметки о распределенных системах для новичков» рекомендует использовать САР теорему для критики найденных решений. Многие, похоже, восприняли этот совет слишком близко к сердцу, описывая свои системы как «СР» (согласованность данных, но без постоянной доступности при сетевой распределенности), «АР» (доступность без согласованного состояния при сетевой распределенности), или иногда «СА» (означает «Я всё ещё не читал статью Коды (Coda Hale) почти 5-летней давности»).

Я согласен со всеми пунктами статьи кроме того, что касается САР теоремы. Она слишком всё упрощает и слишком многие понимают её неверно для того, чтобы использовать для определения характеристик системы. Так что я прошу перестать ссылаться на САР теорему, говорить о ней и дать ей уже спокойно уйти на покой. Вместо неё мы должны использовать более точную терминологию для обсуждения различных компромиссов.

(Да, я понимаю всю иронию написания целой статьи по теме того, о чём призываю не писать других вообще. Но, как минимум, у меня будет ссылка, которую я смогу давать интересующимся, когда меня будут спрашивать, почему я не одобряю обсуждение САР теоремы. Также, я хочу извиниться, если статья вам покажется слишком напыщенной, но эта напыщенность опирается на множество ссылок.)

САР использует слишком узкое определение


Если вы хотите ссылаться на САР как на теорему (а не на расплывчатый концепт в маркетинговых материалах к вашей базе данных), вы должны быть точны. Математика требует точности. Доказательство сохраняется только если вы вкладывается в слова, то же самое значение, что было использовано при доказательстве. И оно опирается на очень точные определения:
Еще 3000 слов увлекательного чтива
Всего голосов 70: ↑66 и ↓4+62
Комментарии23

Помогаем пользователю подтвердить Email

Время на прочтение4 мин
Количество просмотров77K
Если у вас есть сайт или приложение, которые при регистрации нового пользователя просят подтвердить адрес электронной почты, у меня для вас есть совет и небольшая таблица с данными, которые помогут сделать процесс регистрации проще и удобнее для пользователя, а также позволят немного поднять процент конверсии посетителей в пользователи.

Что происходит после того, как пользователь указывает свой email в форме регистрации и отправляет форму на сервер?
Читать дальше →
Всего голосов 71: ↑56 и ↓15+41
Комментарии81

Как мы монтируем ДДИБП: огромные маховики в дата-центрах и средство аварийного резерва ответственных объектов

Время на прочтение8 мин
Количество просмотров71K

Пакетирование ДДИБП во всепогодный контейнер

Последние отечественные ДДИБП стоят на Байконуре. В какой-то момент в нашей стране была утеряна технология производства больших кинетических накопителей, и теперь мы возим их из Голландии.



Грубо говоря, ДДИБП — это большой такой волчок, установленный на строго горизонтальном валу. Ротор трёхфазной асинхронной машины вращается со скоростью 3 тысячи оборотов в минуту, а ротор генератора (снаружи) работает на скорости 1500 оборотов в минуту. Основная цепь питания проходит сквозь эту систему. Стоит питанию пропасть — и раскрученный тяжёлый волчок будет крутить генератор через электромагнитное поле ещё некоторое время. Переключения по факту нет — система продолжает работать без изменения графика напряжения, частоты и силы тока. На современных установках «горячий» дизель выходит на номинал 3–15 секунд.
Читать дальше →
Всего голосов 67: ↑65 и ↓2+63
Комментарии48

Семь принципов создания современных веб-приложений

Время на прочтение19 мин
Количество просмотров187K
Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

JavaScript бесспорно стал незаменимым инструментом для разработчиков фронтенда. Сейчас сфера его применения расширяется на другие области, такие как серверы и микроконтроллеры. Этот язык программирования выбрали престижные университеты, чтобы обучать студентов основам информатики.

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

  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
  • Нужно ли использовать техники вроде PJAX или TurboLinks?
  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
Читать дальше →
Всего голосов 108: ↑99 и ↓9+90
Комментарии33

Перевод времени 26 октября 2014 года или ударим трудом по разгильдяйству

Время на прочтение12 мин
Количество просмотров235K
Госдума России приняла в июле законопроект о возврате к зимнему времени, а также об установлении новой системы часовых зон. В результате 26 октября 2014 года в большинстве регионов России время будет снова переведено на час назад, и в стране появятся 11 часовых зон вместо 9 существующих сейчас, причем их границы изменятся.

Если для обычных граждан это лишь лишний час поспать, то для системного администратора этот момент есть жуть жуткая. В данной статье я рассмотрю проблему обновления часовых поясов для Windows XP, Windows Server 2003 и системы электронной почты на базе MS Exchange 2003 с нативным клиентом Outlook. Не секрет, что эти системы никуда не делись и хотя и ХР и Exchange 2003 сняты со всех видов поддержки, включая даже премьер поддержку, они успешно используются как в малых так и больших организациях и событие, связанное с переводом стрелок на час назад актуально для них как никогда. Актуально еще и по той причине, что официальных обновлений для снятых с поддержки систем от компании Microsoft нет и не будет. Т.к. по роду деятельности мне пришлось готовить решение для этих систем, проводить некоторые тесты и т.п., то я решил поделиться с коллегами результатами своих трудов. Итак, кому актуально, добро пожаловать под кат. Будет интересно.
Читать дальше →
Всего голосов 95: ↑93 и ↓2+91
Комментарии57

Заблуждения программистов относительно времени

Время на прочтение3 мин
Количество просмотров88K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Всего голосов 241: ↑218 и ↓23+195
Комментарии216

А вы хотите программировать вверх тормашками?

Время на прочтение10 мин
Количество просмотров34K


Всем добрый вечер/день/утро, кому, что ближе в данный момент. Давненько читаю данный ресурс и всегда с особенной любовью относился к статьям, которые так или иначе мотивировали меня, заставляли задуматься и подталкивали что-нибудь изменить в моей жизни. Поэтому, решил попробовать вдохновить или так сказать, морально помочь тем, кто чего-то хочет, но, как и все нормальные люди сомневается. А конкретно рассказать о моей иммиграции в страну Оззи. Сразу оговорюсь, тем кто любит писать что-то вроде: «многобукв»,«неосилил»… заранее приношу извинения, потому как сам «многобукв» люблю, а когда не люблю иду в твиттер, чего и Вам советую.
Читать дальше →
Всего голосов 142: ↑124 и ↓18+106
Комментарии156

Washington Post: «Кремль пытается расширить своё влияние в киберпространстве»

Время на прочтение6 мин
Количество просмотров607

Проправительственные сайты становятся влиятельнее


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

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

«Привлекательность интернета как свободной платформы для свободных людей уже начала пропадать», — говорит Иосиф Дзялошинский, эксперт по СМИ, профессор Высшей школы экономики.
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии78

Географический эксгибиционизм

Время на прочтение1 мин
Количество просмотров756
Хорошо известно, что не так приятно путешествовать, как потом хвастаться друзьям и знакомым о том, где был и что видел. Но зачем откладывать это в долгий ящик, теперь можно путешествовать в режиме Reality Show.

Специально для этого был создан стартап MapSphere. Они позиционируют себя как одновременно альтернативу GoogleEarth и социальную сеть путешественников.

Как это работает? Вы берете с собой ноутбук, GPS, сотовый модем, и кладете побольше денег на свой мобильный счет. Регистрируетесь на сайте MapSphere.Online, и отправляетесь в путешествие.



Практически на всем протяжении вашей поездки, вы можете быть в режиме онлайн (ну не считая некоторых авиа перелетов и путешествий к центру земли). С помощью клиента MapSphere вы транслируете свои текущие координаты на сервер, можете видеть других путешественников, у вас есть доступ ко всем картам и спутниковым снимкам из всех возможных источников, включая Google Maps и Microsoft Virtual Earth. Вам доступен живой чат с друзьями и есть возможность вести мобильный блог с заметками и фотографиями на сайте MapSphere.Online. Трек ваших перемещений также записывается на сервере, и все ваши знакомые будут умирать от зависти, наблюдая из своего офиса, как вы едете вдоль океанского побережья и рассказываете им о цвете песка на пляже.



На рынке путешествий и гео-социальных сетей сейчас наблюдается небольшой ажиотаж. Сразу вспоминаются Yahoo.Travel, Loopt, Flicr, МирТесен, VeniVidi и многие другие. Судя по нешуточной борьбе, эта ниша считается весьма перспективной.
Всего голосов 21: ↑20 и ↓1+19
Комментарии32

Не думай.

Время на прочтение1 мин
Количество просмотров842
В связи с недавними новостями по поводу интернета, прослушки без ведома провайдеров и т.п. вспомнилось:

Не думай.
Если думаешь – не говори.
Если думаешь и говоришь – не записывай.
Если думаешь, говоришь и записываешь – не подписывай.
Если думаешь, говоришь, записываешь, подписываешь – не удивляйся.
Всего голосов 92: ↑72 и ↓20+52
Комментарии76

Word придумал Штирлиц? Информация к размышлению

Время на прочтение3 мин
Количество просмотров2.6K
Итак, грустная история, которую мне поведал мой друг-админ.
Прошу заметить, это не какой-нибудь копи-паст, а история полученная мной (manuscriptum'ом) из первых уст.
Читать дальше →
Всего голосов 113: ↑113 и ↓0+113
Комментарии97

Институт психологии

Время на прочтение2 мин
Количество просмотров878
От автора хита про матрицу, Андрея Новосёлова.

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

— Здравствуй. Вася?

— Ну.

— Меня зовут Сергей Петрович. Я психолог. Твои родители попросили меня
поговорить с тобой
Всего голосов 85: ↑78 и ↓7+71
Комментарии41

Цветовая схема и гамма

Время на прочтение3 мин
Количество просмотров2K
Статья будет полезна всем владельцам страничек в интернете — это и личные сайты и блоги (дневники). Написано, что бы помочь справиться с дикими сочетаниями цветов, сопровождающих, практически, каждый второй ресурс. Секретом не будет, что правильный подбор цветов, для того же сайта, играет ключевую роль в восприятии.

В статье:

В первой части:

  • Вводная информация.
  • Таблица базовых цветов и RGB-значений цвета.

Во второй части:

  • Обзор сайтов-микшеров по подбору правильных сочетаний.
  • Обзор очень полезной программы в этом деле — ColorPic.
 

Часть 2:

В прошлом посте (Часть 1 (!!! не Хабрахабр!!!)) я написал о цветах, таблицы базовых цветов и тд. Разобраться в этом не просто. И подбирать правильно желательные цвета с ходу бывает сложно. Для выполнения этих действий есть целая серия веб-сайтов-микшеров, о которых я собираюсь сейчас рассказать. Работают эти сервисы по простому принципу: вы выбираете один цвет, который вам хочется видеть в вашей работе, а сервис подбирает остальные.

kuler.adobe.com

Этот сервис работает имено так. Выбираете и настраиваете один цвет, другие настраиваются соответственно. kuler_adobe Есть раздел с отсортированными наборами цветов по рейтингу популярности. А так же с новыми палитрами. kuler_adobe2 http://kuler.adobe.com/
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии24
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность