Как стать автором
Обновить
23
0
Pavel Plotnikov @ppa80

iOS Engineer

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

Как написать и опубликовать идеальный пакет для Flutter

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

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

Перейти к делу
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Защита фото от систем распознавания лиц работает?

Время на прочтение2 мин
Количество просмотров30K
image

За последние полтора месяца (с начала августа 2020) уже довольно много изданий/платформ и ресурсов говорили/писали про Алгоритм Fawkes: https://sandlab.cs.uchicago.edu/fawkes/#press.

Среди которых и Habr, The New York Times, The Verge и т.д.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+33
Комментарии26

Насколько актуально машинное обучение в повседневной жизни. Обзор

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

Трудно представить себе жизнь современного человека без машинного обучения и искусственного интеллекта. Данные технологии создают новые возможности. Например, системы безопасности в метро используют машинное обучение для распознавания и поиска лиц, которые находятся в розыске. Компьютерное зрение используется в беспилотных автомобилях и летательных аппаратах  для коммерческих и военных целях.

Читать далее
Всего голосов 4: ↑1 и ↓30
Комментарии0

Создание изображений в runtime (favicon, watermark, нарезка картинок) #golang

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

В Go есть возможность создавать файлы изображений.

С помощью этого мы можем создавать картинки на лету (в runtime).

Где же это может пригодится?

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии2

Сравним C++, JS, Python, Python + numba, PHP7, PHP8, и Golang на примере расчёта “Простое Число”

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

Все топовые языки программирования уже давно доказали свои позиции и "определились" с нишами своего использования.

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

Измерять можно довольно много параметров и для разных целей.

Для каких-то задач важнее будет наличие быстрого просчёта по математическим операциям. А для других - больше пригодится ускоренная работа с сетью и файлами.

В данной статье мы рассмотрим ускорение программы с использованием JIT-компиляции для языков Python и PHP.

В качестве задачи для расчёта возьмём функцию проверки - является ли число Простыми или нет - "is prime". Возьмём базовый алгоритм проверки на то, что число Простое:

Читать далее
Всего голосов 29: ↑14 и ↓15+3
Комментарии91

Уровень обобщения базы данных

Время на прочтение7 мин
Количество просмотров7.8K
Несколько лет назад я попробовал сделать сайт на такой системе как MODx и мне понравилось, не смотря на опыт работы с другими CMS, а может и благодаря этому. Понравилась именно логика построения работы с ней, принципы структуры данных и многое другое, но в первую очередь, то, что фрилансеру нужно особенно часто – простота и скорость запуска проекта при высокой гибкости. Но, хотя MODx мне до сих пор по нраву, пост не совсем о ней и даже скорее совсем о другом.

Введение


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

image

Дело в том, что в MODx Revo основным понятием для построения структуры сайта являются ресурсы. Вот именно, там нет такого как, например, в том же Вордпрессе отдельно страницы сайта, отдельно записи блога. Все страницы и записи, и даже много чего еще реализуется через модель ресурсов сайта. На самом деле это удобно, особенно учитывая тот факт, что это cmf/cms, то есть система рассчитана на разработку совершенно разных сайтов и тематически и технически. Таким образом, за всей структурой сайта удобно следить в одной панели управления ресурсами. В общем, система ресурсов позволяет создавать и управлять следующими сущностями сайта (хотел было написать объектами, но в ООП это слово уже занято, так что пусть будет «сущности»):

• Обычные html-страницы;
• Разного рода категории и разделы блога или каталога;
• Товары и их категории;
• XML-документы, например, sitemap.xml для поисковых роботов;
• Текстовые документы, к примеру, robots.txt правильно сделать ресурсом, а не просто залить файлом;
• Json-страницы, которые лично я использую для того же аякс;
• Создать собственный формат текстового файла.

Постановка проблемы


Вот такое объединение множества различных «сущностей» сайта в объекте одной модели Resources и вызвало мой интерес. Разум философа зашевелился и начал выдавать множество предположений и вопросов.

Во-первых, я обратил внимание на пользователей, потому что они сделаны совершенно отдельно от ресурсов. Как бы на первый взгляд это логично, но с другой стороны, если начали такую пляску с объединением кучи всего, почему бы не сделать все до конца. Да-да, максимализм в деле. Тем более, что сделать пользователей как один из видов ресурсов не представляет большой проблемы. В случае с modx это по большей части реализуется с помощью плейсхолдеров, позволяющих расширить количество атрибутов ресурса, и «контекстов», дающих возможность выделять часть ресурсов по их назначению. Реализация же чего-то подобного на фреймворке (я имею ввиду php-фреймворки) или голой связке скриптов и реляционной базы данных совсем дело не сложное.

Во-вторых, совершенно отдельными моделями реализуются шаблоны и вся система представления и настройки сайта. Почему бы их тоже не объединить в одну модель, хотя бы чисто ради эксперимента. Чувствую летящие в меня помидоры.
Читать дальше →
Всего голосов 10: ↑7 и ↓3+4
Комментарии5

Семейный бюджет, Google sheets и Python

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

Привет, Хабр!

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

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

Где деньги, Билли?
Всего голосов 19: ↑16 и ↓3+16
Комментарии90

Как следить (наблюдать) за компьютером. Часть 1 — делаем скриншоты пользователей

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

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

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

Читать далее
Всего голосов 21: ↑11 и ↓10+5
Комментарии40

Домашний сервер, или приключение длиной в 6 лет. Часть вторая

Время на прочтение16 мин
Количество просмотров40K
Здравствуй, Хабр!

Прежде всего я хотел бы сказать спасибо всем читателям, присоединившимся в комментариях к первой части. Честно сказать, я не ожидал, что моя статья получит подобный отклик! Я вообще в целом не был уверен, стоит ли рассказывать о своем франкенштейне, ожидал скорее даже критики в стиле: “Вот тебе делать нечего!”, “Купил бы готовый NAS и не занимался бы ерундой!” и т.п.

Осторожно в статье много фото!

Кстати, если кто то собирается пойти подобным путем — почитайте комментарии к первой части статьи, там множество дельных советов!


Читать дальше →
Всего голосов 17: ↑16 и ↓1+20
Комментарии97

Домашний сервер, или приключение длиной в 6 лет. Часть первая

Время на прочтение7 мин
Количество просмотров77K
Здравствуй, Хабр, давно не виделись.

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


Читать дальше →
Всего голосов 41: ↑37 и ↓4+45
Комментарии149

Авторизация в ESIA на сервере терминалов с ЭЦП по ГОСТ-2012

Время на прочтение3 мин
Количество просмотров13K
Добрый день, Хабровчане.

Коллеги работающие в сфере гос. закупок уже успели испытать на себе обязательное требование правительства касательно использования носителей с электронно цифровой подписью ГОСТ Р 34.10-2012. Использование ЭЦП по новому ГОСТу является обязательным с 1 января 2019 года, и для работы на порталах zakupki.gov и gosuslugi.ru выпустить ЭЦП по ГОСТ 2001 уже невозможно, а после 1 января 2020 года поддержка ЭЦП по старому ГОСТ будет прекращена полностью.

Как часто это бывает гос. сайт к 1 января 2018 оказался готов но не полностью.

Для работы с ЭЦП по ГОСТ 2012 необходимо установить “плагин для работы
с порталом государственных услуг” версии 3.0.3.0 или 3.0.6.0, но в отличии от версии плагина 2.0.6.0 новые версии не поддерживают работу с UNC путями (это мы выяснили в процессе многочисленных нездоровых экспериментов с разными версиями плагинов), и если вы как и мы используете перемещаемые профили, то авторизация на сайте работать у вас не будет; причем работать она не будет ни в одном браузере: IE, Google Chrome, Mozilla Firefox и даже Crypto Fox.

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

Интеграция Veeam Backup & Replication и PureStorage

Время на прочтение4 мин
Количество просмотров4.6K
Сегодня мы представляем гостевой пост от Илии Карина.
Добрый день, Хабр! Меня зовут Илия Карин (Iliya_karin). Я занимаюсь всеми вопросами в области системноного администрирования в крупной компании более 7 лет. Спасибо коллегам из Veeam за возможность рассказать здесь немного о моем опыте.

Недавно Veeam совместно с PureStorage выпустил плагин интеграции для Veeam Backup & Replication 9.5 с массивами компании PureStorage. И если вы являетесь счастливым обладателем лицензии Veeam Backup & Replication Enterprise Plus, то нет ни одной причины не делать резервные копии инфраструктуры из снапшотов стораджа.

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

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

Забудьте о DAO, используйте Repository

Время на прочтение6 мин
Количество просмотров180K
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии14

URI — сложно о простом (Часть 1)

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

Привет хабр!

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

"Пфф, ссылки они и в Африке ссылки, чего тут разбираться?" — скажете вы, тогда я задам вопрос:

Что есть что и куда нас приведет?
  • http://example.com
  • www.example.com
  • //www.example.com
  • mailto:user@example.com

Если вы не знаете однозначного ответа или вам просто интересно и если вы не боитесь огромного количества трехбуквенных аббревиатур — милости прошу под кат.
Читать дальше →
Всего голосов 80: ↑77 и ↓3+74
Комментарии47

Кейт Матсудейра: Масштабируемая веб-архитектура и распределенные системы

Время на прочтение32 мин
Количество просмотров84K
Шесть месяцев назад ребром встал вопрос о тексте для моего дипломного перевода. Результатом помощи коллективного разума стало решение переводить главу Scalable Web Architecture and Distributed Systems за авторством Kate Matsudaira. Нужно отметить, что это мой первый перевод такого объема и сложности. Текст, был мною относительно успешно переведен, хотя по качеству перевода я поставил бы себе 6-7 из 10. Дабы мои усилия не пропали втуне, публикую результат своих трудов.

По просьбам читателей Хабра, теперь полная версия в виде топика.

The Architecture of Open Source Applications (Volume 2)

Масштабируемая веб-архитектура и распределенные системы


Кейт Матсудейра

Перевод: jedi-to-be.
Коррекция: Anastasiaf15, sunshine_lass, Amaliya, fireball, Goudron.


Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии5

Создание масштабируемого распределенного приложения с нуля

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

Как это начиналось


Я всю жизнь занимался разработкой под Windows. Сначала на С++, затем на C#. В промежутках мелькали VB, Java Script и другая нечисть. Однако некоторое время назад всё изменилось и я впервые столкнулся с миром Linux, Java и Scala. У нас с Денисом, моим другом и соратником по многочисленным идеям, уже был свой проект – набор утилит для Windows, который пользовался широким спросом в узких кругах. В какой-то момент мы оба потеряли интерес к этому проекту и встал вопрос – что же делать дальше. Денис стал инициатором идеи нового проекта – сервис по обмену clipboard между разными устройствами. Этот проект существенно отличался от предыдущего помимо технологий ещё и целевой аудиторией. Этот сервис должен был стать полезен всем. Скопируйте данные в буфер обмена и вставьте из него на любом другом устройстве. Звучит проще некуда, пока не задумаешься над тем сколько сейчас разных устройств, а также как это все будет работать при большом количестве пользователей.
Первый прототип появился через несколько месяцев. Сервер был написан на ASP.NET и хостился на MS IIS. Было написано 2 клиента: на С++ под Windows и на Java под Android.



Тестирование показало, что прототип держит около 500 соединений. Что же делать, если их будет больше, мы ведь расчитываем на сотни тысяч пользователей ;) Как написать сервер, который может работать с большим количеством соединений, который не надо будет выключать во время апгрейда железа или софта и который будет легко масштабироваться (то есть расширяться в случае увелечения количества пользователей).
Читать дальше →
Всего голосов 17: ↑12 и ↓5+7
Комментарии15

Централизованные логи для приложений с помощью связки heka+elasticsearch+kibana

Время на прочтение7 мин
Количество просмотров17K
В статье описана настройка центрального логирования для разных типов приложений (Python, Java (java.util.logging), Go, bash) с помощью довольно нового проекта Heka.

Heka разрабатывается в Mozilla и написана на Go. Именно поэтому я использую его вместо logstash, который имеет сходные возможности.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии7

Кабины для сна Sleepbox поступили в продажу

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


Почти три года назад на Хабрахабре сообщалось о разработке кабины для сна (или просто отдыха в любое время суток) Sleepbox. Портативный блок площадью в 3,75 м2 устанавливается в аэропортах, вокзалах, торговых центрах, в офисах — везде, где людям захочется отдохнуть. Кабина оснащена кроватью, системой вентиляции, ЖК-ТВ, WiFi, розетками для ноутбуков, зарядками для телефонов, пространством для багажа, выдвижным рабочим столом, зеркалом и т.д.

Комментаторы высказали мнение, что это слишком хорошо, чтобы быть правдой — и оказались не правы. Два года понадобилось на оформление патентов в Европе, США и России, на запуск производства — и вот всё готово. Первую экспериментальную кабину в Москве поставили в Шереметьево год назад, а сейчас компания ООО Sleepbox начала принимать заказы на отгрузку товара.
Читать дальше →
Всего голосов 129: ↑119 и ↓10+109
Комментарии313

Бизнес — модель

Время на прочтение2 мин
Количество просмотров16K
Друзья,

я бы хотел с Вам поговорить об одной модели бизнеса, которая последнее время в России (ибо, например, в США уже давно) набирает обороты.

Назовем ее One month — one shop — OMOS.

Читать дальше →
Всего голосов 48: ↑31 и ↓17+14
Комментарии77

Устраиваемся программистом за рубежом

Время на прочтение16 мин
Количество просмотров63K
Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
Читать дальше →
Всего голосов 208: ↑188 и ↓20+168
Комментарии160

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность