Pull to refresh
50
0

Software Engineer

Send message

Создатель Kate Mobile арестован за то, что его сервисом пользовался педофил

Reading time 3 min
Views 129K
Дорого времени суток, друзья! Случилась ужасно неприятная история, по вине некомпетентности следственных органов, арестован мой друг и коллега Фёдор Власов. Фёдор Власов, пермский IT-специалист, один из создателей мобильного приложения для социальной сети ВКонтакте «Kate Mobile».

3 ноября 2018 года он был внезапно арестован полицией и помещён СИЗО г. Москвы, где и находится по сей день на основаниях, не имеющих ничего общего с реальностью и элементарным здравым смыслом.

Фёдор Власов В сети есть не мало публикаций на эту тему, например одна из них «Пермский программист арестован за то, что через созданное им мобильное приложение действовал педофил». И здесь.

Фёдор Власов обвиняется в совершении преступления, предусмотренного пунктом «б» частью 4 статьи 132 Уголовного кодекса РФ (Насильственные действия сексуального характера в отношении несовершеннолетнего), совершённого другим человеком, пользующимся сетью ВКонтакте через прокси-сервер. Таких «других» людей могло быть сотни и тысячи. Однако следствие сочло доводы обвинения Федора «в изнасиловании по Интернету» достаточными на основании сетевого адреса (IP адреса) прокси-сервера, зарегистрированного на имя Фёдора Власова, физически находящегося в Санкт-Петербурге ООО «Селектел».
Читать дальше →
Total votes 221: ↑214 and ↓7 +207
Comments 227

LeakCanary — помощник в поиске утечек памяти

Reading time 3 min
Views 32K

Никому не нравятся креши с OutOfMemoryError


Работая над Square Register, мы рисуем подпись клиента используя битмап-кеш. Поскольку этот битмап размером с экран устройства, у нас было очень много OutOfMemory крешей во время создания его.

image

Мы пробовали несколько подходов ни один из которых не решил проблему:
  • Использовали Bitmap.Config.ALPHA_8
  • Ловили OutOfMemoryError, вызывали сборку мусора и пробовали снова (подглядели в GCUtils),
  • Мы не рассматривали вариант с размещением битмапов вне кучи Java. К счастью Fresco еще не существовало,


Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 7

Хоткеи Android Studio

Reading time 2 min
Views 51K
Уже год как я начал пытаться программировать под Android, и весь год меня в этом поддерживал добрый друг Android Studio. Безусловно, я продвигался бы намного быстрее, знай зеленый я о хоткеях больше, но в свое время я не нашел цельного и понятного справочника важных горячих клавиш IDE, а посему написал его сам. В нем далеко не все комбинации, лишь те, что показались полезными в работе, за исключением Ctrl+C, Ctrl+V, Ctrl+X и Ctrl+Z. Выставляю его на суд общественности и для всеобщего пользования здесь:
Читать дальше →
Total votes 18: ↑10 and ↓8 +2
Comments 9

Как я создавал приложение для Samsung SmartTV

Reading time 3 min
Views 19K
Привет, Geektimes! Хочу поделиться с Вами своим опытом в разработке приложений для Samsung SmartTV.

image
Весь процесс, а именно период времени от начала разработки приложения до его публикации, можно разделить на две стадии: разработка и публикация. Но будем называть вещи своими именами, поэтому будем использовать их «синонимы»: светлая и темная сторона, соответственно. Почему?
Читайте дальше!
Total votes 22: ↑16 and ↓6 +10
Comments 6

Arduino за 1$

Reading time 4 min
Views 220K


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

Скажу за себя — мне Arduino нравится. Тем, что можно быстро что-нибудь работающее соорудить. По сути, мне не нравятся только цены. Ну, дорого же. Модуль на порядок дороже использованного в нем микроконтроллера. Такие размышления неоднократно подталкивали меня к тому, чтобы «соскочить», но потом я открывал Aliexpress и заказывал очередную порцию. Китайская версия Arduino Nano — 3-4$. Pro Mini (без USB) — 2-3$.

Потом стало интересно — а где предел минимальной розничной (или микрооптовой) цены. Но так, чтобы можно было работать, а не искать хаки с целью сэкономить пару байт. Пара вопросов к всемирному разуму, кратчайшее изучение матчасти, решение: «Буду ковыряться с ATTiny, но чтобы с Arduino».
Стоя и в гамаке
Total votes 95: ↑83 and ↓12 +71
Comments 128

Демо для Sega MegaDrive

Reading time 1 min
Views 48K
В прошедшие выходные на демопати EVOKE 2013 была выпущена лучшая в истории Sega демонстрация под эту платформу. Реакция в сообществе настолько бурная, что даже если вы слышали о демосцене лишь краем уха — стоит посмотреть!

Overdrive by Titan — Sega MegaDrive demo


По ссылкам на Pouet вы можете дополнительно проникнутся атмосферой показа через две live-записи — оцените реакцию зала! Сама работа наполнена огромным числом референсов к классическим demo на Amiga, PC и C64.

В основе архитектуры Sega MegaDrive лежат два классических процессора: Motorola 68000 (16bit, 7.61 МГц) и Zilog Z80 (8bit, 3.55 МГц). Последний почти ничем не помогает в конкретном демо, так как используется в режиме совместимости с Master System. Основное ОЗУ консоли — 64 кб.

Всем Сега, пацаны!
Total votes 90: ↑76 and ↓14 +62
Comments 68

Как я поступал в Бауманку, или «Шаг в будущее»

Reading time 3 min
Views 42K
Всем добра, хабрапользователи. Да, я сделал робота.

image

Пишу сей пост дабы популяризовать такое течение как «Шаг в будущее» МГТУ им. Н. Э. Баумана, ведь все мы знаем, что на хабрахабре достаточно школьников и тех, кто интересуется современным образованием.

«Шаг в будущее» — это олимпиада для школьников старших классов (10-х и 11-х), умных, готовых заниматься научной деятельностью.

Читать дальше →
Total votes 277: ↑233 and ↓44 +189
Comments 161

Сервис Face.com научился распознавать эмоции людей на фото

Reading time 1 min
Views 1.2K


Компания Face.com известна как разработчик программного обеспечения, используемого для распознавания лиц на различных фотографиях. Довольно давно компания добавила функцию распознавания улыбки, а теперь вот добавились и остальные эмоции: удивление, злость, счастье (собственно, та же улыбка), грусть и нейтральное выражение лица.

Читать дальше →
Total votes 50: ↑46 and ↓4 +42
Comments 30

Официальные фотобанки компаний

Reading time 3 min
Views 2.1K
Многие известные (и не очень) компании открывают свободный доступ у себя на сайте не только к пресс-релизам, но и к галереи фотографий своей продукции в высоком разрешении, печатным материалам, рекламным постерам и прочим графическим вкусняшкам. У меня накопилось несколько ссылок на такие хранилища, и я решил сделать эту подборку, наверняка кому-нибудь пригодится, заодно кто-то может еще поделится ссылками, так как у меня ссылки на галереи только некоторых эээм… IT-компаний.


Ссылка на фотобанк Samsung у меня появилась первой, поэтому с неё и начну. Её мне когда-то скинули сами представители компании, когда я для них разрабатывал небольшой буклет.

Фотобанк Samsung
Фотобанк Samsung содержит коллекцию высококачественных изображений продуктов компании Samsung Electronics, элементы корпоративного стиля, а также фотографии, сделанные в галерее (что-то вроде выставочного центра) Samsung.

Дальше больше...
Total votes 72: ↑71 and ↓1 +70
Comments 25

Качаем с Народ.Диска без капчи и без яндекс.бара

Reading time 2 min
Views 15K
Как известно, чтобы скачать файл с Народ.Диска, необходимо либо ввести капчу, либо установить яндекс.бар. А если не хочется, чтоб яндекс.бар мозолил глаза(либо любимый браузер — опера)? Да, его можно скрыть, но зачем он тогда вообще нужен, если используется только для скачки файлов с Народ.Диска?
А можно обойтись и без него, при этом скачивая файлы без ввода капчи в любом удобном браузере, позволяющем изменять юзер-агент.
Читать дальше →
Total votes 128: ↑119.5 and ↓8.5 +111
Comments 103

Sqimitive.js — Frontend Primitive или «Backbone без фантиков»

Reading time 31 min
Views 19K
Уже довольно давно большинство сайтов перестало быть набором HTML/PHP/CSS/JS-файлов, которые достаточно просто загрузить на сервер. Bower, Grunt, Component.js, AMD, Require.js, CoffeeScript, Clojure, Composer, npm, LESS и ещё 100500 инструментов — всё это сегодня применяется для сборки проектов, обновления компонентов, загрузки зависимостей, сжатия кода, компиляции из одного JavaScript в другой, подтасовки карт, прополки огорода и даже готовки яичницы.

Многих людей это вдохновляет. Да что там — 95% моих знакомых в один голос твердят, как подключив всего пару-тройку библиотек с особой, уличной магией можно забабахать сайт на over-9000 зелёных австралийских долларов — и всего за один вечер, с перерывом на кофе и бублики.

А я — странный человек. Не люблю смешения языков, технологий, библиотек. Angular, Knockout, React — они все хороши, но каждая — по-своему сложна. А ведь есть и «гибриды», где сходится сразу несколько миров — как Ember и Knockout.Bootstrap. Вдобавок, многие построены на jQuery — впрочем, к ней даже у меня претензий нет; наверное, таким и должен был быть JavaScript.

Как бы то ни было, реальность беззастенчиво входит в контакт с мечтами и расставляет точки над «i». Мне так же приходится писать на «new & popular» — а когда пишешь, душа томится и просится создать очередной велосипед… а ей разве откажешь? Она ведь как дитя малое.

Велосипед был создан. Велосипед без фантиков. Такой же простой, как автомат Калашникова, и многогранный, как швейцарский нож, где вместо наследования — события, вместо моделей, коллекций и представлений — один класс, с неограниченной вложенностью и полной свободой действий, почти в два раза меньший Backbone.js, использующий Underscore.js и, необязательно, jQuery/Zepto.

Добро пожаловать в Sqimitive.
Zen Book: введение в нирвану
Total votes 54: ↑49 and ↓5 +44
Comments 33

RESTful API на Yii framework с RBAC и тестами

Reading time 19 min
Views 29K
Существует множество готовых решений для реализации RESTFul API на Yii framework, но при использовании этих решений в реальных проектах понимаешь что все красиво выглядит только на примерах с собачками и их хозяевами.

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

Для начала приведу список некоторых возможностей, которых мне очень не хватало для полноценной работой с серверным API при использовании существующих расширений:

  1. Одна из первых проблем с которой я столкнулся — сохранение различных сущностей в одной таблице. Для получения таких записей уже не достаточно просто указать имя модели как это предлагается, например тут. Один из примеров такого механизма — таблица AuthItems, которая используется фреймворком в механизме RBAC (если кто-то не знаком с ним — есть замечательная статья на эту тему). В ней содержатся роли, операции и задачи которые определяются флагом type, и для работы с этими сущностями через API мне хотелось использовать url не такого типа:
    GET: /api/authitems/?type=0 - получение списка операций
    GET: /api/authitems/?type=1 - получение списка задач
    GET: /api/authitems/?type=2 - получение списка ролей

    а такого:
    GET: /api/operations - получение списка операций
    GET: /api/tasks - получение списка задач
    GET: /api/roles - получение списка ролей

    Согласитесь, второй вариант выглядит очевиднее и понятнее, тем более для человека не знакомого с фрейморком и устройством RBAC в нем.
  2. Вторая немаловажная возможность — механизм поиска и фильтрации данных, с возможностью задавать условия и комбинировать правила. Например, мне хотелось иметь возможность выполнить аналог такого запроса:
    SELECT * FROM users WHERE (age>25 AND first_name LIKE '%alex%') OR (last_name='shepard');
    

  3. Порой не хватает возможности создания, обновления, удаления коллекций. Т.е. изменение n-ого количества записей одним запросом опять же используя поиск и фильтрацию. Например, зачастую требуется удалить или обновить все записи, попадающие под какое-либо условие, а использовать отдельные запросы слишком накладно.
  4. Еще одним важным моментом была возможность получать связанные данные. Например: получить данные роли вместе со всеми её задачами и операциями.
  5. Конечно невозможно хоть сколько-нибудь комфортно работать с API не имея возможности ограничить количество получаемых записей (limit), сместить начало выборки (offset), и указать порядок сортировки записей (order by). Так же не плохо бы иметь возможность группировки (group by).
  6. Важно иметь возможность для каждой из операций проверять права пользователя (метод checkAccess все в том же RBAC).
  7. Ну и наконец, все это дело нужно как-то тестировать.

В результате анализа примерно такого списка «хотелок» и появился на свет мой вариант реализации API на этом замечательном фреймворке!
Читать дальше →
Total votes 25: ↑20 and ↓5 +15
Comments 18

Конспект по веб-безопасности

Reading time 3 min
Views 65K
Простите, но накипело.
Много шишек уже набито на тему безопасности сайтов. Молодые специалисты, окончившие ВУЗы, хоть и умеют программировать, но в вопросе безопасности сайта наступают на одни и те же грабли.

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


Итак, каким должен быть безопасный сайт?

Читать дальше →
Total votes 120: ↑104 and ↓16 +88
Comments 163

Раскопки игры Extra-Terrestrial

Reading time 1 min
Views 31K
Игра Extra-Terrestrial, выпущенная в 1982 году компанией Atari для собственной консоли Atari 2600 признана одной из худших игр в истории. Согласно легендам все невостребованные копии этого продукта решено было закопать. Все данные связанные с этим действием были скрыты.

image

Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Comments 12

STM32CubeMX — продвинутый генератор проектов для STM32

Reading time 3 min
Views 104K
Пару недель назад STMicroelectronics выкатили обновление своей программы MicroXplorer, которая позволяла графически настроить инициализацию портов в конкретном STM32 для своих нужд, в том числе и делать ремап портов и визуально видеть что занято\свободно на текущий момент.
Выглядела эта программа следующим образом:
image
И позволяла на выходе получить *.c, *.h файлы в которых содержались функции по инициализации портов в соотвествии с заданными требованиями с использованием Standard Peripheral Library.
Что же решили изменить на этот раз?
Читать дальше →
Total votes 37: ↑35 and ↓2 +33
Comments 8

Деревья принятия решений на JavaScript

Reading time 4 min
Views 33K
В качестве практического приложения к предыдущей статье, хочу предоставить крошечную JavaScript библиотеку для построения деревьев и леса принятия решений.

Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 26

Алгоритм выбора STL-контейнера

Reading time 1 min
Views 64K


UPD: схема заменена на вариант с контейнерами из С++11, соавторы — в комментариях ниже

Первый вариант схемы - без контейнеров из С++11

Total votes 86: ↑74 and ↓12 +62
Comments 54

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Reading time 3 min
Views 82K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Total votes 124: ↑114 and ↓10 +104
Comments 27

STM32 + EmBlocks — мигаем светодиодами

Reading time 3 min
Views 67K
Как и просили в комментариях к предыдущей статье о EmBlocks, сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:

Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Заставим их перемигиваться
Total votes 24: ↑19 and ↓5 +14
Comments 35

Уроки по электрическим цепям — линии передачи

Reading time 10 min
Views 233K
Ещё не начав читать статью, попробуйте подумать над вопросом: побежит ли ток, если подключить к батарейке очень длинный провод(более чем 300 тысяч километров, сверхпроводник), если противоположные концы провода никуда не подключены? Сколько Ампер?

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

Эта статья — весьма вольный перевод этой книги: Lessons In Electric Circuits
Статьи по теме: На Хабре: Контакт есть, сигнала нет
Трэш в Википедии: Длинная линия

Читать дальше →
Total votes 99: ↑97 and ↓2 +95
Comments 61

Information

Rating
Does not participate
Registered
Activity