Pull to refresh
25
0
Цховребов Константин Дмитриевич @terrakok

Android разработчик

Send message

Топ-10 фильмов про ИТ

Reading time7 min
Views170K
Привет, Хабр!

Летом в нашем ланитовском блоге мы делали подборку сериалов про ИТ (и хакеров), а теперь в преддверии Нового года пришло время полного метра. Такие «Топ-10 фильмов про ИТ» появляются примерно раз в год, и список там примерно один и тот же: «Хакеры» с Джоли, «Пароль «Рыба-меч» и «Матрица».

Кстати, о последней. При всем уважении к братьям сёстрам Вачовски и трилогии, мы таки не относили бы «Матрицу» к фильмам про айтишников или хакеров. То, что мистер Андерсон работает программистом, а вне работы немного хакерит, всё же не является сюжетной канвой фильма. Рискуем возобновить старый холивар, но «Матрица» — это таки киберпанк. Контраргументы приветствуются.

Так вот, про подборку. Мы решили предложить вам  фильмы посвежее. Под катом нет Джоли и знаменитой сцены из «Пароль „Рыба-меч“», но есть фильмы про ИТ, суперкомпьютеры, и информационную безопасность, большинство из которых выпущены в 2010–2018 годах.

Кадр из фильма «Апгрейд»
Total votes 111: ↑95 and ↓16+79
Comments186

Лицензия на вождение болида, или почему приложения должны быть Single-Activity

Reading time14 min
Views58K

image


На AppsConf 2018, которая прошла 8-9 октября, я выступил с докладом про создание андроид-приложений целиком в одном Activity. Хотя тема известная, существует много предубеждений относительно такого выбора — переполненный зал и количество вопросов после выступления тому подтверждение. Чтобы не ждать видеозаписи, я решил сделать статью с расшифровкой выступления.



О чем я расскажу


  1. Почему и зачем надо переходить на Single-Activity
  2. Универсальный подход для решения задач, которые вы привыкли решать на нескольких Activity
  3. Примеры стандартных бизнес задач
  4. Узкие места, где обычно подпирают код, а не делают все честно
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments81

Тринадцать вещей, которые предвидел Лем

Reading time9 min
Views45K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Тринадцять речей, які передбачив Лем" автора Mikołaj Gliński.


Электронные книги, планшеты и смартфоны, Гугл и даже "Матрица" описаны еще в середине ХХ века автором «Соляриса». Вот так Станислав Лем предсказал будущее, в котором мы сейчас живем.


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


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

Читать дальше →
Total votes 61: ↑58 and ↓3+55
Comments355

Ричард Хэмминг: «Необъяснимо высокая эффективность математики»

Reading time23 min
Views49K
«Это самое глубокое эссе, которое я видел относительно философии науки; на самом деле, оно важно для всего нашего понимания мысли, познания или реальности.»

image

Пролог


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

Человек, насколько мы знаем, всегда задавался вопросом о себе, мире вокруг и смысле жизни. Во множестве мифов повествуется о том почему и как Бог или боги создали человека и вселенную. Это теологические объяснения. Их отличительная черта — нет смысла спрашивать почему вещи таковы, как они есть, если боги создали их такими.

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

Из этих ранних попыток объяснить мир постепенно возникла философия, также как и современная наука. Не то чтобы наука объясняет «почему» вещи таковы, как они есть — гравитация не объясняет «почему» предметы падают, но наука дает нам столь детальное объяснение «каким образом» это происходит, что у нас появляется чувство, будто мы знаем «почему». Давайте проясним; море связанных между собой фактов позволяет науке сказать «почему» вселенная именно такая.
Читать дальше →
Total votes 43: ↑39 and ↓4+35
Comments76

Что такое смарт-контракты: краткое руководство

Reading time3 min
Views20K
Идея смарт-контрактов появилась еще в далеком 1994 году, когда Ник Сабо предложил использовать распределенный глобальный код для хранения информации о сделках. На сегодняшний день они считаются очень перспективной технологией, которая сможет значительно упростить и обезопасить многие сферы жизни. Давайте разберемся, как устроены «умные» контракты и зачем они нужны.


Читать дальше →
Total votes 25: ↑16 and ↓9+7
Comments11

Dagger 2.11 & Android

Reading time8 min
Views49K

В данной статье рассматривается использование специализированного модуля Dagger 2 под android и подразумевается, что у вас есть наличие базовых знаний по Dagger 2.


В Dagger 2.10 был представлен новый модуль специально для Android. Данный модуль поставляется как дополнение, состоящий из дополнительной библиотеки и компилятора.
В версии 2.11 были некоторые небольшие изменения, в частности некоторые классы, были переименованы, поэтому будет использоваться именно эта версия.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments12

Заблуждения Clean Architecture

Reading time15 min
Views409K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments203

Миллион WebSocket и Go

Reading time11 min
Views97K

image


Привет всем! Меня зовут Сергей Камардин, я программист команды Почты Mail.Ru.


Это статья о том, как мы разработали высоконагруженный WebSocket-сервер на Go.


Если тема WebSocket вам близка, но Go — не совсем, надеюсь, статья все равно покажется вам интересной с точки зрения идей и приемов оптимизации.

Читать дальше →
Total votes 119: ↑115 and ↓4+111
Comments78

Как я "<" моноидом делал

Reading time6 min
Views8K
image Некоторое время назад в одном уютном камерном собрании я делал доклад о своей разработке — скриптовом лиспоподобном языке Liscript. Начал с азов — семантики вычисления списков, префиксной нотации… Дошел до произвольной арности стандартных операций:

+ 1 2 3
=> 6

все интуитивно понятно, вопросов не возникает. Рассказываю про булевские значения, привожу пример:

< 1 2
=> true

тоже все понятно. И тут вопрос из зала: «а если 3 аргумента передать, как будет вычисляться?» Я решаю, что это хороший повод выпендриться умными терминами, и отвечаю: «точно так же — как свертка по моноиду» :) И тут же поправляясь — «хотя операция сравнения не является моноидом», пишу пример:

< 1 2 3
=> true
< 1 2 3 4 1 2
=> false

Все так же интуитивно понятно, вопросов не возникает и продолжаем дальше (благоразумно оставляя без рассмотрения вычисления примитивных операций на одном аргументе и вообще при отсутствии оных, а также вычитание/деление и прочие немоноидальные операции :)). Успешно миновав в докладе подобных камней, через некоторое время я подумал — а можно ли как-то изловчиться, и все-таки сделать операцию сравнения моноидом (в каком-либо смысле)? И мне кажется, мне это удалось. Заинтересовавшихся темой прошу под кат.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments13

Как три школьника взломали исходный код Final Fantasy V, чтобы локализовать её

Reading time10 min
Views24K
image

Однажды в конце 90-х Мирия (Myria) зашла в компьютерный класс старшей школы Ирвайна и наткнулась на парня, игравшего в Final Fantasy V. Это было необычно: во-первых, Final Fantasy V никогда не выпускали в США. Чтобы поиграть в эту японскую игру 1992 года на английском, нужно было сначала скачать ROM, а потом установить неофициальный фанатский патч с переводом, который недавно появился в Интернете. Мирия знала об этом патче, и это тоже было необычно: она помогала в его создании.

Парень был потрясён тем, что этот патч создала его одноклассница. «Он не знал, что я работала над патчем», — сказала Мирия, попросившая не раскрывать своего настоящего имени. «Меня удивило, что нашёлся тот, кто действительно играет в него».

За двадцать лет Мирия привыкла встречать людей, игравших в неофициальную английскую версию Final Fantasy V. Хоть это и не был первый фанатский перевод видеоигры (первым стал голландский перевод 1993 года игры для MSX SD Snatcher), но он стал наиболее существенным. Он дал понять бесчисленным западным фанатам, что "Final Fantasy III" Squaresoft на самом деле не была третьей частью Final Fantasy, и, что более важно, продемонстрировал миру силу, которую имеют фанаты в индустрии видеоигр. Устав от того, что такие компании как Square отказываются от распространения игр на западных рынках, фанаты просто локализовали Final Fantasy V самостоятельно. Позже они сделали то же самое с RPG, например, с Seiken Densetsu 3 и Mother 3. Они переводили скрипты с японского на английский, редактировали перевод и реализовывали эти скрипты в играх с помощью постоянно совершенствующихся программ.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments26

Системный подход к тестированию Android-приложений, или О чем молчали разработчики

Reading time8 min
Views28K

У каждого тестировщика рано или поздно наступает неловкий момент. Обнаружился вредный баг и его необходимо локализовать. По закону подлости баг воспроизводится нестабильно, при непонятных шагах и только на некоторых устройствах. Есть логи, но они не информативны. Разработчик занимается новой функциональностью, он не может отвлечься от текущих задач, пока не будут найдены четкие шаги воспроизведения. Менеджер ждет исправления (надо быстрее, заказчик переживает).


Как внести ясность в такой ситуации? Некуда деваться, пора разбираться, что же там происходит «под капотом» приложения.


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

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views202K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Total votes 215: ↑213 and ↓2+211
Comments74

Реактивные приложения с паттерном RxPM. Прощайте​ MVP и MVVM

Reading time12 min
Views40K

Уже продолжительное время я размышляю над паттерном RxPM и даже успешно применяю его в «продакшене». Я планировал сначала выступить с этой темой на Mobius, но программный комитет отказал, поэтому публикую статью сейчас, чтобы поделиться с Android-сообществом своим видением нового паттерна.


Все знакомы с MVP и MVVM, но мало кто знает, что MVVM является логическим развитием паттерна Presentation Model. Ведь единственное отличие MVVM от PM – это автоматическое связывание данных (databinding).


В этой статье речь пойдет о паттерне Presentation Model с реактивной реализацией биндинга. Некоторые ошибочно называют его RxMVVM, но корректно будет называть его RxPM, потому что это модификация шаблона Presentation Model.


Этот паттерн удобно использовать в проектах с Rx, так как он позволяет сделать приложение по-настоящему реактивным. Кроме того, он не имеет многих проблем других паттернов. На диаграмме ниже представлены различные варианты и классификации шаблонов представления:



Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments42

Анализ исходного кода Another World

Reading time7 min
Views21K
image

Я потратил две недели на чтение и реверс-инжиниринг исходного кода Another World (в Северной Америке игра вышла под названием Out Of This World). Моя работа основана на обратной разработке Грегори Монтуа (Gregory Montoir) оригинального исполняемого файла для DOS из двоичного кода в C++.

Я был потрясён, обнаружив элегантную систему, состоящую из виртуальной машины, интерпретирующей байт-код в реальном времени и генерирующей полноэкранное векторное движение. Результатом этой работы стала одна из лучших игр всех времён…

Всё это умещалось на гибкий диск ёмкостью 1,44 МБ и работало на 600 КБ ОЗУ. Совсем неплохо для 1991 года! Как обычно, я привёл свои заметки в порядок — это поможет кому-нибудь сэкономить несколько часов работы.
Total votes 74: ↑74 and ↓0+74
Comments20

Dagger 2. Часть первая. Основы, создание графа зависимостей, Scopes

Reading time10 min
Views170K

Всем привет! В последнее время появилось много средств, библиотек, которые существенно облегчают написание кода под Android. Только успевай за всем следить и все пробовать. Одним из таких средств является библиотека Dagger 2.


В сети уже много различного материала, посвященного данной библиотеке. Но когда я только начинал ознакамливаться с Dagger 2, читал статьи, смотрел доклады, я во всем этом находил один общий недостаток — мне, как человеку, не работавшему со Springом и прочими подобными фреймворками/библиотеками, было довольно сложно понять, откуда берутся зависимости, как они "провайдятся" и что вообще там происходит. На слушателей/читателей обычно сразу "вываливается" большое количество кода с новыми аннотациями. И это как-то работало. В итоге, после доклада/статьи в голове все никак не могло сложиться в единую понятную картину.


Сейчас, оглядываясь назад, я понимаю, что мне тогда очень не хватало схематичного отображения, картинок, явно показывающих "что, откуда и куда". Поэтому в своем цикле статей я постараюсь восполнить данный пробел. Надеюсь, это поможет новичкам и всем заинтересованным лучше понять Dagger 2 и решиться попробовать его у себя в проекте. Могу сразу сказать, это стоит того.


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

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments22

Dagger 2. Часть третья. Новые грани возможного

Reading time19 min
Views63K

Всем привет! Наконец-то подоспела третья часть цикла статей о Dagger 2!


Перед дальнейшим прочтением настоятельно рекомендую ознакомиться с первой и второй частями.


Большое спасибо за отзывы и комментарии. Я очень рад, что мои статьи действительно помогают разработчикам окунуться в мир Даггера. Именно это и придает силы творить для вас дальше.
В третьей части мы с вами рассмотрим различные интересные и немаловажные фичи библиотеки, которые могут вам очень пригодиться.


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


Есть, конечно, моменты, которые расписаны более-менее. Но вот всякие новые фичи описаны так, что мне приходилось методом проб и ошибок, залезая в сгенерированный код, самому разбираться, как оно все работает. Благо хорошие люди пишут хорошие статьи, но даже иногда они не дают четкого и ясного ответа сразу.


Итак, хватит разглагольствовать, и вперед к новым знаниям!

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

Прокачиваем NES Classic Mini

Reading time15 min
Views90K
На geektimes.ru недавно была статья о том, что «умельцы» взломали NES Classic Mini. Однако, там даже не упомянули о том, что это сделали русские. Нет, не я, а человек под ником madmonkey. Я же сразу решил написать приложение под Windows с дружелюбным интерфейсом, чтобы это можно было делать в пару кликов. В этой статье я хочу рассказать более детально о сути «взлома», о том, как в NES Mini всё устроено, и о трудностях, с которыми пришлось столкнуться.

И да, я опять предлагаю своё изложение в двух вариантах: видео и традиционная текстовая статья. Кому как больше нравится.
Total votes 88: ↑88 and ↓0+88
Comments22

@ActivityScope с помощью Dagger 2

Reading time8 min
Views13K
Привет, Хабр! Хочу поделиться опытом создания ActivityScope. Те примеры, которые я видел на просторах интернета, на мой взгляд, не достаточно полны, неактуальны, искусственны и не учитывают некоторых нюансов практической разработки.

Статья предполагает, что читатель уже знаком с Dagger 2 и понимает что такое компонент, модуль, инжектирование и граф объектов и как все это вместе работает. Здесь же мы, в первую очередь, сконцентрируемся на создании ActivityScope и на том, как его увязать с фрагментами.

Итак, поехали… Что же такое scope?


Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments10

Cicerone — простая навигация в Андроид приложении

Reading time8 min
Views84K


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


Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments29

С днем рождения, Аарон Шварц

Reading time17 min
Views13K
Журналист: Почему вы не монетизируете свои сайты?
Аарон: Интернет был создан не для этого.

Аарон Шварц родился 8 ноября 1986 года. У него была головокружительная карьера. Интернет-легенды восхищались им. Пол Грэм ставил его во главу списка самых талантливых людей. Но бунтарский дух Аарона не позволил ему быть равнодушным к той фигне, что происходит в мире и очень быстро он перешел дорогу правительству. Вспомним его наследие.


Шварц и легенды ИТ: Тед Нельсон и Дуглас Энгельбарт.

  • В 12 лет создал сайт Info, где каждый мог писать о том, что знает (а другие могли дополнять и комментировать). Это был предвестник Википедии. Учитель сообщил ему в ответ, что затея идиотская, потому что люди в мире делятся на ученых, которые пишут энциклопедии, и неученых, которые их не пишут.
  • В 13 лет выиграл ArsDigita Prize, соревнование молодых людей, создающих «полезные, образовательные и объединённые» некоммерческие веб-страницы.
  • В 14 лет Шварц стал соавтором спецификации RSS 1.0.
  • Аарон Шварц работал под руководством Тима Бернерса-Ли в составе основной рабочей группы RDF в Консорциуме W3C.
  • Поступил в Стэнфордский университет, но бросил учёбу через год.
  • Попал на первую программу в Y Combinator со стартапом Infogami, который впоследствии слился с популярным сайтом Reddit.
  • Работал над Open Library, Creative Commons и watchdog.net.
  • Работал над созданием Deaddrop позже переименованный в SecureDrop, платформой для анонимного слива информации. Сейчас этой платформой пользуются крупнейшие мировые СМИ: The Intercept, The Guardian, and The Washington Post.
  • Внес существенный вклад в Markdown.
  • В 2008 вместе с Virgil Griffith разработал Tor2web, HTTP proxy для Tor-сервисов.

Под катом пара фоток и статьи Аарона, а так же кино про этого талантливого парня.
Total votes 48: ↑47 and ↓1+46
Comments1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity