Search
Write a publication
Pull to refresh
1
0
Владимир Пестов @KozzyKoder

User

Send message

Sharding – patterns and antipatterns

Reading time23 min
Views34K


Константин Осипов ( kostja ), Алексей Рыбак ( fisher )


Константин Осипов: Доклад родился из следующего разговора. Я, как всегда, пытался убедить Алексея больше использовать Tarantool, а он сказал, что там до сих пор нет шардинга и, вообще, неинтересно. Тогда мы стали рассуждать о том, почему нет. Я стал рассказывать, что тут нет одного универсального решения, автоматика полная за вас работает, а вы только кофе на работе пьете и все…

Поэтому родился этот доклад — чтобы посмотреть на то, какой бывает шардинг, какие методы в каких системах используются, какие преимущества и недостатки, почему нельзя одной «серебряной пулей» все решить?

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

Валидация в HTML5

Reading time4 min
Views38K
Интерактивные веб-сайты и приложения невозможно представить без форм, которые позволяют нам общаться с нашими пользователями и получать данные, необходимые для обеспечения гладких сделок с ними. В то время как мы можем улучшить удобство и простоту использования наших форм с удачно выбранным шаблоном проектирования UX. HTML5 также имеет собственный механизм для ограничения проверки, который позволяет нам поймать ошибки ввода прямо на фронт энде.

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

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

JavaScript 2016, а можно попроще?

Reading time8 min
Views45K

Последние полгода много пишут о неоправданной сложности клиентского JavaScript. Недавняя статья How it feels to learn JavaScript in 2016 и ее перевод на хабре вызвали много внимания, критика во многом справедливая, но...


Усложнять просто, упрощать сложно. (Один из законов Мерфи)


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


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


Использованный стек: create-react-app как сборщик для клиента, React, bootstrap, API с json-server или json-заглушки.



Работающее демо здесь: Movies List.

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

Тестируем не совсем реальный (или совсем нереальный) мониторинг от New Relic и Appdynamics

Reading time3 min
Views14K
Привет, хабранарод! Почему совсем нереальный? Да потому что мониторинг имитирует действия реальных пользователей, но выполняется по специальному алгоритму из заданных локаций. Сами вендоры называют этот механизм Synthetics, поэтому дальше в статье будем стараться придерживаться именно такой терминологии – синтетический мониторинг.

New Relic и Appdynamics – прямые конкуренты, являются лидерами квадранта Gartner и реализуют достаточно схожий функционал. У обоих вендоров есть возможность мониторинга транзакций в приложениях, они умеют выполнять проверки на стороне браузера конечного пользователя, умеют встраиваться в мобильные приложения и, наконец, обладают одной из ключевых возможностей современного мониторинга – умеют выполнять алгоритмизированные действия в веб-интерфейсе приложения.

В предыдущих статьях по основным принципам мониторинга бизнес-приложений и расширению функционала Zabbix мы уже касались синтетического мониторинга и, нужно сказать, если ваш бизнес растет и веб-приложение обслуживает большое количество клиентов, Synthetics для вас must have. Либо он есть, либо будет. Вы же не хотите жалоб от клиентов (а в худшем случае – отказа от использования вашего сервиса), правда?

image
включить синтетических роботов

Измеряем потребление батарейки на мобильных устройствах. Эксперимент в Яндексе

Reading time5 min
Views54K

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


Производители как железа, так и софта, стараются решить эту проблему. Для Яндекса она тоже актуальна, потому что наши сервисы — это то, что должно быть под рукой у человека в любой момент. Мы по-разному над этим работаем и в рамках эксперимента создали устройство для измерения тока, который потребляется телефоном с батарейки. Теперь мы умеем мерить мгновенные значения тока с батарейки телефона (Nexus, iPhone и др.) в миллиамперах 500 раз в секунду, сохранять эту метрику на диск и считать по ней среднее потребление.



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

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

От Jquery UI до Ext.js: обзор javascript UI библиотек для SPA. Часть 1

Reading time7 min
Views37K
Всем привет! На дворе 2016 год, и web давно превратился в нечто большее, чем простые сайты. Львиная доля компаний уже давно забыла про десктопные программы, и для повсеместных задач используют веб приложения, будь это CRM, система управления складом, система аналитики или простая панель администрирования от сайта (в дальнейшем – админка).

image

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

Делать с нуля полноценную, ничуть не уступающую десктопной программу — это титанический труд.
Читать дальше →

Как мы попробовали DDD, CQRS и Event Sourcing и какие выводы сделали

Reading time9 min
Views79K
Вот уже около трех лет я использую в работе принципы Spec By Example, Domain Driven Design и CQRS. За это время накопился опыт практического применения этих практик на платформе .NET. В статье я хочу поделиться нашим опытом и выводами, которые могут быть полезными командам, желающим использовать эти подходы в разработке.

Факты, цифры, код

Личный опыт получения Голубой карты в Германии 2015-2016. Часть 2: Визовые вопросы

Reading time4 min
Views28K
Первая часть тут

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

Итак, пришел оригинал моего контракта, и я был готов (как мне казалось) к визиту в консульство. Его я назначил на 25 августа. В перечне необходимых документов было четко указано, что точное указание вашей специальности (слово в слово) должно присутствовать на сайте anabin.kmk.org. Вот тут получилась очень интересная ситуация.

Мой диплом инженера слово в слово отсутствовал, хотя было много аналогов. А вот мой диплом кандидата наук естественно присутствовал «kandidat techniceskich nauk». Подумав, что именно высшая ступень обучения играет роль, я решил попробовать. Но в консульстве мне дали четко понять, что голубая карта предполагает наличие высшего образования и моя ученая степень никого не интересует, и нужно делать запрос в KMK (ZAB). Но была и хорошая новость — все остальные документы в порядке и, при наличии бумаги от KMK, моя виза будет сделана за 2-3 рабочих дня.
Читать дальше →

Континуации в Java

Reading time12 min
Views26K
The distinguishing characteristic of industrial-strength software is that it is intensely difficult… the complexity of such systems exceeds the human intellectual capacity… we may master this complexity, but we can never make it go away.

Grady Booch

Давайте вернемся на несколько десятилетий назад и взглянем на то, как выглядели типовые программы тех лет. Тогда доминировал Императивный подход. Напомню, что название он получил благодаря тотальному контролю программы над процессом вычислений: в программе четко указывается, что и когда должно быть выполнено. Словно набор приказов Императора. Большинство операционных систем предлагали для написания исполняемых программ именно этот подход. Он широко используется и по сей день, например при написании различного рода утилит. Более того, с данного подхода начинается изучение программирования в школе. В чем же причина его популярности? Дело в том, что Императивный стиль очень прост и понятен человеку. Освоить его не сложно.
Читать дальше →

Личный опыт получения Голубой карты в Германии 2015-2016. Часть 1: Поиск работы

Reading time7 min
Views32K
Всем привет. В данной статье я хочу поделиться своим опытом получения голубой карты ЕС. Идеи об эмиграции у меня были всегда, я постоянно смотрел информацию о существующий программах и вариантах покинуть просторы нашей страны. Причины моих порывов сугубо личные и никому я их навязывать не хочу.

Так получилось, что в школе я изучал немецкий, и всегда считал что он мне абсолютно не пригодится в жизни. Потому учил я его без энтузиазма.
Читать дальше →

Пишем простое приложение на React с использованием библиотеки cellx

Reading time5 min
Views14K

Идея написания статьи появилась в этой ветке, может кому-то будет интересно и её почитать. Сразу скажу, писатель (в том числе кода) из меня так себе, но я буду стараться.


Писать будем как обычно тудулист, надоел конечно до чёртиков, но что-то лучшее для демонстрации придумать сложно. Сразу ссылка на работающее приложение: жмяк (код).


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

Почему супер-мега-про машинного обучения за 15 минут всё же не стать

Reading time6 min
Views29K
Вчера я опубликовал статью про машинное обучение и NVIDIA DIGITS. Как и обещал, сегодняшняя статья — почему всё не так уж и хорошо + пример выделения объектов в кадре на DIGITS.

NVIDIA подняла волну пиара по поводу разработанной и имплиментированной в DIGITS сетки DetectNet. Сетка позиционируется как решение для поиска одинаковых/похожих объектов на изображении.


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

Темная сторона TypeScript — @декораторы на примерах

Reading time18 min
Views64K

Декораторы — это невероятно круто. Они позволяют описывать мета информацию прямо в объявлении класса, группируя все в одном месте и избегая дублирования. Ужасно удобно. Однажды попробовав, вы уже никогда не согласитесь писать по-старому.


Однако, несмотря на всю полезность, декораторы в TypeScript (заявлены также на стандарт) не так просты, как хотелось бы. Работа с ними требует навыков джедая, так как необходимо разбираться в объектной модели JavaScript (ну, вы поняли, о чем я), API несколько запутанный и, к тому же, еще не стабильный. В этой статье я немного расскажу об устройстве декораторов и покажу несколько конкретных приемов, как поставить эту темную силу на благо front-end разработки.


Помимо TypeScript, декораторы доступны в Babel. В этой статье рассматривается только реализация в TypeScript.


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

Критерии простоты

Reading time4 min
Views13K

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


Первый критерий


Особенности мозга человека таковы, что он плохо хранит и отличает более 7-9 элементов в одном списке при оптимальном их количестве 1-3.


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

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

Видео-чат через браузер. WebRTC — это просто, если есть библиотека

Reading time8 min
Views14K

Я работаю с MFF и GH. Дружат ли другие браузеры с WebRTC, можно узнать, зайдя на sipjs.com — там без регистрации можно полюбоваться на себя в двух экземплярах (если есть веб-камера), послать себе сообщение или файл. И все это на одной странице. Неинтересно. Интересно, когда я на одной странице, а мой визави на другой. Демо-пример нужно чуть-чуть подправить...


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

ASP.NET Core: Создание первого веб-API с использованием ASP.NET Core MVC и Visual Studio

Reading time8 min
Views116K
Протокол HTTP может использоваться не только для веб-страниц. Это еще и мощная платформа для создания API, предоставляющих сервисы и данные. Протокол HTTP прост, гибок и широко распространен. Практически любая существующая платформа имеет библиотеку HTTP, поэтому службы HTTP доступны в большом числе клиентов, включая браузеры, мобильные устройства и традиционные офисные приложения.

В новой статье из серии ASP.NET Core будет описано создание простого веб-API для работы со списком дел.


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

MapReduce из подручных материалов. Часть III – собираем все вместе

Reading time11 min
Views4.8K
Mosaic by Joan PollakВ первой (достаточно капитанской) части этой серии мы рассказали про базовые концепции MapReduce почему это плохо, почему это неизбежно, и как с этим жить в других средах разработки (если вы не про Си++ или Java). Во второй части мы-таки начали рассказывать про базовые классы реализации MapReduce на Caché ObjectScript, введя абстрактные интерфейсы и их первичные реализации.
Сегодня пришел наш день! – мы покажем первый пример собранный в парадигме MapReduce, да, он будет странный и не самый эффективный, и совсем не распределенный, но вполне MapReduce.

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

Скрапинг бесконечно прокручивающейся страницы

Reading time3 min
Views24K

Скрапинг бесконечно прокручивающейся страницы


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



В эру одностраничных приложений и тонн AJAX-запросов на одной странице множество веб-сайтов заменили кнопку навигации "вперёд/назад" на причудливый механизм бесконечной прокрутки страницы. Веб-сайты использующие этот механизм загружают новую сущность каждый раз, когда пользователь достигает конца страницы при вертикальной прокрутке(вспомните Twitter, Facebook, Google Images). Даже несмотря на то, что UX-эксперты утверждают что механизм бесконечной прокрутки предоставляет чрезмерное количество данных для пользователей, мы видим увеличивающееся количество веб-страниц прибегающих к предоставлению бесконечного списка результатов.

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

Scrum от военного летчика: Искусство делать вдвое больше дел в два раза быстрее

Reading time8 min
Views43K
Джефф Сазерленд (Jeff Sutherland), военный летчик (совершивший более 100 боевых вылетов во Вьетнаме), cоавтор Agile-манифеста и CEO Scrum.

image

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

Впервые я столкнулся с этой проблемой, будучи курсантом военной академии США. Во время нашего обучения нам пришлось пройти через огонь, воду и медные трубы, а в год перед выпуском меня назначили офицером роты Л2, которой требовалось разрешить проблему со строевой подготовкой, поскольку им предстояло участвовать в военном параде. Рота считалась чем-то вроде аутсайдера, потому что за целую сотню лет они ничего не смогли поделать с уже сложившейся репутацией полной посредственности и расхлябанности. Десятилетия уходили на бесплодные попытки научить их чему-то и заставить тренироваться с большими усилиями.

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity