Как стать автором
Обновить
50
0

Software Engineer

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

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

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

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

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

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

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

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

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


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

image

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


Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии7

Хоткеи Android Studio

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

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

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

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

Arduino за 1$

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


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

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

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

Демо для Sega MegaDrive

Время на прочтение1 мин
Количество просмотров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 кб.

Всем Сега, пацаны!
Всего голосов 90: ↑76 и ↓14+62
Комментарии68

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

Время на прочтение3 мин
Количество просмотров42K
Всем добра, хабрапользователи. Да, я сделал робота.

image

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

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

Читать дальше →
Всего голосов 277: ↑233 и ↓44+189
Комментарии161

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

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


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

Читать дальше →
Всего голосов 50: ↑46 и ↓4+42
Комментарии30

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

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


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

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

Дальше больше...
Всего голосов 72: ↑71 и ↓1+70
Комментарии25

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

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

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

Время на прочтение31 мин
Количество просмотров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: введение в нирвану
Всего голосов 54: ↑49 и ↓5+44
Комментарии33

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

Время на прочтение19 мин
Количество просмотров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 на этом замечательном фреймворке!
Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии18

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

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

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


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

Читать дальше →
Всего голосов 120: ↑104 и ↓16+88
Комментарии163

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

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

image

Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии12

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

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

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

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

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

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

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


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

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

Всего голосов 86: ↑74 и ↓12+62
Комментарии54

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

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

Webflow



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

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

Parallax.js


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

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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 99: ↑97 и ↓2+95
Комментарии61

Информация

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