Pull to refresh
23
0
Pavel Plotnikov @ppa80

iOS Engineer

Send message

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

Reading time8 min
Views6K

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

Перейти к делу
Total votes 13: ↑13 and ↓0+13
Comments7

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

Reading time2 min
Views30K
image

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

Среди которых и Habr, The New York Times, The Verge и т.д.
Читать дальше →
Total votes 25: ↑24 and ↓1+33
Comments26

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

Reading time4 min
Views3.3K

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

Читать далее
Total votes 4: ↑1 and ↓30
Comments0

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

Reading time6 min
Views5.3K

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

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

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

Читать далее
Total votes 4: ↑2 and ↓2+2
Comments2

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

Reading time4 min
Views16K

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

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

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

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

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

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

Читать далее
Total votes 29: ↑14 and ↓15+3
Comments91

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

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

Введение


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

image

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

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

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


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

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

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

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

Reading time11 min
Views31K

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

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

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

Где деньги, Билли?
Total votes 19: ↑16 and ↓3+16
Comments90

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

Reading time5 min
Views13K

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

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

Читать далее
Total votes 21: ↑11 and ↓10+5
Comments40

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

Reading time16 min
Views40K
Здравствуй, Хабр!

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

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

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


Читать дальше →
Total votes 17: ↑16 and ↓1+20
Comments97

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

Reading time7 min
Views77K
Здравствуй, Хабр, давно не виделись.

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


Читать дальше →
Total votes 41: ↑37 and ↓4+45
Comments149

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

Reading time3 min
Views13K
Добрый день, Хабровчане.

Коллеги работающие в сфере гос. закупок уже успели испытать на себе обязательное требование правительства касательно использования носителей с электронно цифровой подписью ГОСТ Р 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.

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

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

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

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

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

image
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments6

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

Reading time6 min
Views181K
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments14

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

Reading time12 min
Views305K
image

Привет хабр!

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

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

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

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

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

Reading time32 min
Views84K
Шесть месяцев назад ребром встал вопрос о тексте для моего дипломного перевода. Результатом помощи коллективного разума стало решение переводить главу 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.


Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments5

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

Reading time6 min
Views24K

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


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



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

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

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

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

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

Reading time1 min
Views75K


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

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

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

Reading time16 min
Views63K
Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
Читать дальше →
Total votes 208: ↑188 and ↓20+168
Comments160

Information

Rating
Does not participate
Location
Россия
Registered
Activity