Pull to refresh
5
0
Щукин Антон @AntonPalich

iOS Engineer

Send message

Сложные отображения коллекций в iOS: проблемы и решения на примере ленты ВКонтакте

Reading time17 min
Views21K

Привет! Меня зовут Саша, я iOS-разработчик в команде, которая делает ленту ВКонтакте. Сейчас расскажу, как мы оптимизируем отображение интерфейса и обходим связанные с этим проблемы.
Думаю, вы представляете, что такое лента VK. Это экран, где можно просматривать разнообразный контент: тексты, статичные картинки, анимированные гифки, встраиваемые элементы (видео и музыку). Всё это должно отображаться плавно, отсюда высокие требования к производительности решений.


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


Если вы больше любите слушать, чем читать, видеозапись доклада есть вот тут.


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

Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако

Reading time3 min
Views35K

Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

Системы вроде Amazon Echo передают в облако для хранения ваши конфиденциальные разговоры (даже записанные случайно). В некоторых случаях записи прослушиваются живыми операторами. Это не просто потеря конфиденциальности. Это как добровольно впустить в свою квартиру «товарища майора», который стоит рядом 24 часа в сутки, слушает и внимательно записывает, притворяясь услужливым ассистентом.

Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments51

Одна особенность корпоративной культуры, необходимая для благополучия кодовой базы

Reading time7 min
Views13K


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


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

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

iTunes In-App Purchases со стороны сервера

Reading time13 min
Views36K
Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

В данной статье описываются некоторые особенности верификации платежей iTunes (в т.ч. и подписок) с серверной стороны, которые, как мне показалось, не достаточно освещены в существующих статьях.

Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments33

Что такое grep и с чем его едят

Reading time6 min
Views659K
Эта заметка навеяна мелькавшими последнее время на хабре постами двух тематик — «интересные команды unix» и «как я подбирал программиста». И описываемые там команды, конечно, местами интересные, но редко практически полезные, а выясняется, что реально полезным инструментарием мы пользоваться и не умеем.
Небольшое лирическое отступление:
Года три назад меня попросили провести собеседование с претендентами на должность unix-сисадмина. На двух крупнейших на тот момент фриланс-биржах на вакансию откликнулись восемь претендентов, двое из которых входили в ТОП-5 рейтинга этих бирж. Я никогда не требую от админов знания наизусть конфигов и считаю, что нужный софт всегда освоится, если есть желание читать, логика в действиях и умение правильно пользоваться инструментарием системы. Посему для начала претендентам были даны две задачки, примерно такого плана:
— поместить задание в крон, которое будет выполняться в каждый чётный час и в 3 часа;
— распечатать из файла /var/run/dmesg.boot информацию о процессоре.

К моему удивлению никто из претендентов с обоими вопросами не справился. Двое, в принципе, не знали о существовании grep.

image

Поэтому… Лето… Пятница… Перед шашлыками немного поговорим о grep.
Читать дальше →
Total votes 188: ↑174 and ↓14+160
Comments144

Material Design: на Луну и обратно

Reading time11 min
Views387K
“Это унылое диалоговое окно действительно нужно?”



В этой статье я изложил главные принципы Material Design и дал советы по их воплощению. Текст написан по следам мастер-класса для разработчиков, который мы, Роботы, устраивали совместно с российским офисом Google (Think Mobile).


Когда-то все продукты Google выглядели по-разному плохо. Даже один продукт на разных платформах выглядел неконсистентно.

Все стало меняться в 2011 году, когда в Google начали усиленно работать над унификацией визуальной части экосистемы своих продуктов и назвали все это Project Kennedy.

При чем тут Кеннеди?
Легенда такова: президент Кеннеди инициировал программу полёта человека на Луну (если верить, что этот полёт когда-либо был). А большой начальник в Google Ларри Пейдж исповедует принцип, что продукты нет смысла улучшать на 10% — они должны быть в 10 раз лучше, чем у конкурентов. Если уж запускать продукт, то сразу на Луну. Вот и здесь было решено круто всё переделать.

Читать дальше →
Total votes 146: ↑135 and ↓11+124
Comments120

Указатели, ссылки и массивы в C и C++: точки над i

Reading time10 min
Views611K
В этом посте я постараюсь окончательно разобрать такие тонкие понятия в C и C++, как указатели, ссылки и массивы. В частности, я отвечу на вопрос, так являются массивы C указателями или нет.

Обозначения и предположения


  • Я буду предполагать, что читатель понимает, что, например, в C++ есть ссылки, а в C — нет, поэтому я не буду постоянно напоминать, о каком именно языке (C/C++ или именно C++) я сейчас говорю, читатель поймёт это из контекста;
  • Также, я предполагаю, что читатель уже знает C и C++ на базовом уровне и знает, к примеру, синтаксис объявления ссылки. В этом посте я буду заниматься именно дотошным разбором мелочей;
  • Буду обозначать типы так, как выглядело бы объявление переменной TYPE соответствующего типа. Например, тип «массив длины 2 int'ов» я буду обозначать как int TYPE[2];
  • Я буду предполагать, что мы в основном имеем дело с обычными типами данных, такими как int TYPE, int *TYPE и т. д., для которых операции =, &, * и другие не переопределены и обозначают обычные вещи;
  • «Объект» всегда будет означать «всё, что не ссылка», а не «экземпляр класса»;
  • Везде, за исключением специально оговоренных случаев, подразумеваются C89 и C++98.


Указатели и ссылки


Указатели. Что такое указатели, я рассказывать не буду. :) Будем считать, что вы это знаете. Напомню лишь следующие вещи (все примеры кода предполагаются находящимися внутри какой-нибудь функции, например, main):

int x;
int *y = &x; // От любой переменной можно взять адрес при помощи операции взятия адреса "&". Эта операция возвращает указатель
int z = *y; // Указатель можно разыменовать при помощи операции разыменовывания "*". Это операция возвращает тот объект, на который указывает указатель

Читать дальше →
Total votes 70: ↑48 and ↓22+26
Comments73

Разыменовывание нулевого указателя приводит к неопределённому поведению

Reading time6 min
Views53K
Silent NULL (Разыменовывание нулевого указателя приводит к неопределённому поведению)
Ненароком я породил большую дискуссию, касающуюся того, допустимо ли использовать в Си/Си++ выражение &P->m_foo, если P является нулевым указателем. Программисты разделились на два лагеря. Одни уверенно доказывали, что так писать нельзя, другие столь же уверенно утверждали, что можно. Приводились различные аргументы и ссылки. И я понял, что нужно внести окончательную ясность в этот вопрос. Для этого я обратился к экспертам Microsoft MVP и разработчикам Visual C++, общающимся через закрытый список рассылки. Они помогли подготовить эту статью, и я представляю её всем желающим. Для нетерпеливых: этот код не корректен.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments193

Skyforge: технологии рендеринга

Reading time16 min
Views103K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Total votes 139: ↑132 and ↓7+125
Comments51

Методологии управления информационными проектами

Reading time13 min
Views48K
Предисловие: целью данной публикации ставится получение обратной связи и сбор критики по статье от ИТ-сообщества в преддверии её печати в периодическом издании. В статье будет представлено краткое описание, в хронологическом порядке, популярных методологий в области управления информационными проектами.

В 1958 году консалтинговая компания «Booz Allen Hamilton Inc.» совместно с центром разработки «Lockheed Martin Space Systems» и подразделением программных разработок специального проектного центра департамента ВМС США разрабатывают технику оценки и анализа программ (проектов) «Program Evaluation and Review Technique» под кодовым названием PERT — для проекта разработки системы вооружения подводных лодок «Polaris» [1] (баллистические ракеты).

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

Данная методология применялась при подготовке к зимним олимпийским играм 1968 года в Гренобле [2], она же была первая в своем роде, возрождающая подход «Научной организации труда» [3] впервые описанный Тейлором Фредериком Уинслоу в 1911 году, пытавшегося применить науку для инженерии процессов и управления.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments19

Книга Леонарда Сасскинда «Битва при черной дыре»

Reading time3 min
Views23K
Как же здорово иногда почитать качественные книги, в которых на популярном языке рассказывается о сложных научных теориях. Конечно, после таких книг нельзя говорить, что ты разбираешься в этих теориях, но получить хотя бы общее представление о них полезно. Одной из таких замечательных книг является «Битва при черной дыре» физика-теоретика Леонарда Сасскинда. Второе название книги «Мое сражение со Стивеном Хокингом за мир, безопасный для квантовой механики».

Стержень книги — это научный спор автора и его сторонников со Стивеном Хогингом (и его сторонников) по вопросу о том, пропадает ли информация, попавшая в черную дыру бесследно, или все-таки каким-то образом ее можно оттуда извлечь (теоретически). Хокинг считал, что информация пропадает, но это значит, что в этом случае должен переставать работать один из основных принципов квантовой механики, что обеспокоило Сасскинда и его друга, лауреата Нобелевской премии Герарда ’т Хоофта (интересно, что означает такой апостроф в начале фамилии?) Сасскинд пытался доказать, что информацию можно извлечь (опять же, теоретически), собрав частицы, которые образуются при испарения черной дыры. Самое интересное, что это самое испарение черных дыр предсказал и обосновал все тот же Хокинг в далеком 1974 году, и сейчас это излучение носит его имя.



Сасскинд рассказывает, как в течение долгих лет (начиная с 1983 года и до двухтысячных годов) появлялись различные теории, которые между собой взаимодействовали, и которые в результате помогли ответить на поставленный вопрос, разумеется, в пользу автора книги. Книга Леонарда Сасскинда Битва при черной дыре icon smile Самое замечательное во всей этой истории то, что этот спор был чисто научный, не перерос полемику и не сказался на отношениях между двумя сторонами.


Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments22

Космонавты, которые намного круче чем любой герой боевика

Reading time6 min
Views100K
От переводчика: В последнее время на первый план выходит техническая часть космических программ. В сети можно найти большое количество статей, рассказывающих о тех или иных научных достижениях, помогающих нам в освоении космоса. Но не стоит забывать и про космонавтов, отважно бросающих вызов звездам. В этой статье автор рассказывает о пяти случаях, которые заставляют как никогда проникнуться уважением к этим покорителям космоса.

Читать дальше →
Total votes 229: ↑227 and ↓2+225
Comments46

10 главных советов Mac OS X

Reading time5 min
Views454K
Я давно и весьма успешно пользуюсь техникой и ОС от Apple. При этом, я постоянно вижу, как окружающие меня люди: начинающие пользователи, да и весьма оптыные зачастую, не очень хорошо ориентируются в богатых возможостях этого ПО и железа. Поэтому я решил помочь и перевести несколько западных статей с советами и секретами. Считаю, что «родная» для Apple пресса наилучшим образом справляется с раскрытием потенциала OS X.

Первый материал с Lifehack.org

Вы когда-нибудь видели того, кто действительно умеет пользоваться компьютером Mac и операционной системой OS X? Иногда выглядит просто волшебством, как они заставляют двигаться окна, появляться изображения, запускаться приложения и делать множество других классных вещей – при этом их пальцы, кажется, вообще не покидают клавиатуру.Я не могу похвастаться знанием многих советов и рекомендаий Mac, тем не менее, у меня есть в запасе несколько советов, которые могут показаться вам полезными. Некоторые из них достаточно распространены, некоторые – не столь известны, но все они сделают нечто важное, на шаг приближая вас к рангу Мастера Джедаев вашего Mac.

Читать дальше →
Total votes 136: ↑90 and ↓46+44
Comments223

Парное обучение: смотри как это работает

Reading time1 min
Views8.1K
Мы запускаем новую учебную программу, анонс которой на Хабре попытался даже разместить один из наших знакомых, за что был минусован. В анонсе мы сказали, что добавляем в обучение парную работу и получили самые разные отзывы.

Кто-то говорит, что парное обучение это круто и вообще любая парная работа идет гораздо легче. Кто-то сомневается.

Мы включили запись и решили рассказать как это работает у нас.

Получился подкаст на 10 минут, где мы без подготовки и маркетинговых заморочек рассказываем, откуда в наши клубы пришел парный формат обучения.

Что в этом подкасте?
— Как Панкратов (case) худеет :)
— Что заставляет Орлова (eagleson) вставать и делать зарядку по утрам
— Как мы работаем в паре за 1.200 км друг от друга
— Психология работы в паре: объясняем на пальцах

Послушать на podFM или просто скачать mp3 (10 мин).
Total votes 39: ↑22 and ↓17+5
Comments3

Создание Warcraft (часть 2)

Reading time10 min
Views76K
От переводчика

Вторая заметка о создании Warcraft от одного из создателей серии — Патрика Вайата. В первой части он обещал нам рассказать о многих интересных деталях и сдержал обещание. Правда рассказал о совсем других деталях, но они от этого еще интереснее.

Под хабракатом — о том, что именно, помимо любви к Dune 2 подтолкнуло на создание Warcraft; почему в Warcraft такая яркая графика; какие здания не попали в Warcraft 1; откуда растут ноги у героев в Warcraft III и еще несколько интересностей, включая заднюю обложку коробки первого издания и несколько скринов для того, чтобы пустить слезу ностальгии.

Традиционно буду рад замечаниям, исправлениям. И спасибо всем, кто писал по этому поводу в прошлый раз!

Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments30

Несколько слабо известных эмпирических правил

Reading time6 min
Views10K


По какой-то причине русскоязычные пользователи Интернета не пользуются многими полезными понятиями, законами и эмпирическими правилами, созданными англофонами. Для тех эпоха активного сетевого общения и освоения цифровых технологий началась ещё в начале 90-х, и уже к концу десятилетия были созданы несколько любопытных понятий, которые за редкими исключениями наиболее интересных не настолько распространены. Здесь будет с несколько необычных позиций объяснено, как связаны провал SOPA, сегодняшнее закрытие русскоязычной Википедии и кошачьи, по какой причине анонимы такие злые, почему некоторые хорошие публикации на «Хабрахабре» никогда не имеют комментариев и отчего узкое место безопасности любой системы есть человек.
Читать дальше →
Total votes 108: ↑98 and ↓10+88
Comments46

Я — Бренд или как поднять свою ценность?

Reading time7 min
Views7.7K
После написания поста об алгоритме IT собеседования, мы в комментариях обсуждали, что постоянно кому-то нужно что-то доказывать, выполнять глупые тестовые задания и т.д. Область, в которой мы работаем, растет и развивается очень быстро. Классические институты не успевают менять свои программы, да и преподаватели уже не в курсе происходящего.

Мы не можем просто по корочке авторитетного института принять специалиста, исключения разве что PMI, PMP, PM и т.д. сертификаты, которые могут сказать, что человек учился в авторитетной компании, которая входит в международную сеть руководителей проектов и гарантирует качественное образование и выдает сертификаты только тем, кто в полном объеме освоил все знания.

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



Итак, всех заинтересованных — прошу под кат.
Читать дальше →
Total votes 38: ↑25 and ↓13+12
Comments53

Upgrade или второе дыхание macbook MB467 (Late 2008)

Reading time3 min
Views94K
Доброго всем времени суток. Недавно столкнулся с проблемой, с которой в свое время сталкиваются все обладатели того или иного компьютера (в данной случае ноутбука), а именно — медленной работой и нехваткой ресурсов для нормальной работы вашего девайса.
image
MacBook MB467

До:
Процессор: Intel Core Duo 2.4 GHz
Шина: 1066 MHz
Кеш 3 MB
Память (RAM) 4096 MB
HDD 250 GB

После:
Процессор: Intel Core Duo 2.4 GHz
Шина: 1066 MHz
Кеш 3 MB
Память (RAM) 8 GB
SSD 60GB + HDD 250 GB


Многие сразу начинают задумываться про замену своего компьютера на более новый, но т.к. финансовых средств на данный момент у меня не было я решил сделать некий upgrade своей старой лошадки. Провел парочку тестов до и после (тесты касались температурного режима работы процессора и дисков, скорости загрузки ОС и некоторых программ), и, когда я увидел, что результаты превзошли ожидания родилась эта статья.
Читать дальше →
Total votes 110: ↑75 and ↓35+40
Comments219

40 механик для социальных игр

Reading time4 min
Views29K
Разработчик игр Раф Костер (Raph Koster) составил всеобъемлющий список базовых правил, на которых основаны социальные отношения в играх (мультиплеер, параллельная игра и т.д.). Эти правила для разработчиков игры заменяют азбуку. Во многом они пересекаются с принципами игровой механики, которые уже обсуждались на Хабре.

Раф Костер приобрёл известность как создатель дизайна Ultima Online и креативный директор проекта Star Wars Galaxies, после чего основал собственную студию.
Читать дальше →
Total votes 102: ↑92 and ↓10+82
Comments33

Учимся договариваться у ФБР и «Виталсмартс»

Reading time2 min
Views3.3K
"В жизни каждого мужчины
наступает момент,
когда он без-воз-вратно рвет..."
(из фильма "Здравствуйте, я ваша тетя")


В жизни многих айтишников наступает момент, когда их светлые головы посещает идея начать свое дело. Айтишники — существа логичные; и логика говорит им: работать на дядю или тетю со временем становится невыгодно и бесперспективно. «Создам… скажем, веб-студию» — говорит он себе.

Продравшись сквозь бюрократические дебри, наш компьютерный гений открыл фирму, создал и раскрутил свой сайт, взял пару-тройку заказов… и энтузиазм его несколько поубавился. Потому что на сцену вышел новый персонаж — Его Высочество Клиент. Тот самый, про которого ClientsFromHell, Zadolba.li и проч.

Айтишник — умнейший человек. В технических вопросах, да и не только — настоящий профи. Но кое-чему он научиться просто не мог — а именно: договариваться. А когда? Он провел почти всю жизнь среди более-менее близких людей — семьи, одноклассников, однокурсников, коллег. Тех, кому волей-неволей пришлось принимать его таким, как есть. Ему не приходилось выцыганивать скидку, блефовать с конкурентами, прессовать поставщиков и умасливать клиентов.

Я расскажу о двух книгах, которые будут неплохим подспорьем молодому предпринимателю. Они посвящены искусству переговоров в критических ситуациях.

Очередная поп-психология, «сделайте глубокий вдох и подумайте о вечности»? Нет же! Обе книги написали профессиональные переговорщики: автор первой тренирует антитеррористические подразделения ФБР, авторы второй специализируются на критически важных переговорах в бизнесе.



Итак, два пособия:
Марк Гоулстон — «Я слышу вас насквозь» (в оригинале — «Просто слушай»).
Патерсон, Гренни, Макмиллан — «Есть серьезный разговор».
Читать дальше →
Total votes 86: ↑78 and ↓8+70
Comments25
1
23 ...

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity