Search
Write a publication
Pull to refresh
6
0
Станислав Сидельников @ssidelnikov

User

Send message

7 уроков, полученных при создании Reddit

Reading time7 min
Views23K
UPD. Оригинальная статья достаточно старая — 2010 года. Сейчас ситуация выглядит по-другому.

В декабре 2010 у Reddit-а было 829М просмотров и 119 серверов.
В конце 2011 года — 2,07B просмотров и 240 серверов.

Спасибо potomushto за актуализацию.

UPD 2. Поправил схему для людей с проблемами цветовосприятия. Спасибо second_pilot и spiritedflow



Стив Хаффман, один из создателей Reddit, рассказал на презентации, чему они научились, пока строили и развивали Reddit до 7,5 млн пользователей в месяц, 270 миллионов просмотров страниц в месяц и более 20 серверов баз данных.


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


Каждый из 7 уроков будет рассмотрен в соответствующей секции.
  • Падайте часто
  • Разделение сервисов
  • Открытая схема данных
  • Избегайте хранения состояний
  • Memcache
  • Сохраняйте избыточные данные
  • Выполняйте максимум работы в фоновом режиме

Читать дальше →

Как должны выглядеть Android приложения?

Reading time7 min
Views31K
Платформа Android не имеет жестких рекомендаций, как должны выглядеть и работать приложения. Google с самого начала дал ясно понять, что у них нет планов начать диктовать, что приемлемо, а что нет. Существует набор UI рекомендаций, но они в основном концентрируются на мелочах вроде значков, виджетов и меню.
Читать дальше →

Обработка естественного языка. Полезные инструменты

Reading time3 min
Views8.7K
Последнее время на Хабре зачастили статьи про обработку естественного языка.
И так уж совпало, что последнее время я работаю в этой области.
Был очень хорошо освещен sentiment analysis, и теггер частей речи pymorphy.
Но мне хотелось бы рассказать, какие средства для NLP использовал я, и что я нашел нового, чего здесь еще не было
Читать дальше →

DisplAir — технология из «Звездных войн» уже сегодня

Reading time5 min
Views45K
Думаю, многие помнят сцену из “Звездных войн“, где Лея передает сигнал о помощи. R2D2 включает своей проектор, и в воздухе появляется трехмерное изображение попавшей в беду принцессы. Считаете, это фантастика? Однако такие технологии доступны уже сейчас. Причем они были созданы не где-то за рубежом, а у нас в России.

В 2011 году победителем Кубка Техноваций стал проект DisplAir. Его суть заключается в проецировании изображения на обработанный поток воздуха. В результате возникает объемная картинка, которую можно покрутить с помощью мультитач жестов. Но лучше один раз увидеть, чем сто раз услышать:


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

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

Читать дальше →

Энергосберегающий background location + отправка данных на сервер из фона

Reading time5 min
Views14K
Постановка задачи

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

Решение

Решение в лоб — использовать данные из коллбеков [CLLocationManagerInstance startUpdatingLocation] как в фоне, так и когда приложение активно. Первый и наиболее критичный недостаток данного решения — высокое энергопотребление (за несколько часов аккумулятор iPhone может полностью сесть). Второй — если приложение будет свернуто и 'убито', никаких апдейтов положения пользователя мы получить не сможем.

Читать дальше →

Эффективное использование Vim

Reading time11 min
Views74K

Введение


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

Эта статья — не набор “волшебных команд” и рецептов (cookbook, как называют такие наборы по-английски), хотя они тут тоже присутствуют, а, скорее, попытка описать, как общие принципы построения эргономичных интерфейсов можно применить в практике использования Vim, чтобы сделать из него удобную и эффективную среду работы с текстами.

Эта статья также не является tutorial’ом для начинающих пользователей Vim, хотя и им (а также пользователям Emacs) может быть интересна, поскольку некоторые упоминаемые принципы являются достаточно общими и действуют не только в системах редактирования текстов, а вообще везде, где идет речь об использовании компьютера для редактирования чего-либо. Тем не менее, я предполагаю, что читатель знаком с основными концепциями, применяемыми в Vim (режимы, регистры, буфера, команды) и не останавливаюсь на их подробном описании.

По умолчанию Vim настроен очень старомодно, и эта настройка подразумевает, что пользователь при работе с текстом будет мыслить метафорами пятидесятилетней давности, как будто бы сейчас заря эпохи UNIX. Однако дизайн Vim позволяет сделать несколько настроек, после которых система станет выглядеть вполне прилично и станет работать весьма эффективно, сочетая в себе полезные черты и древних юниксовых инструментов работы с текстом, и современных WYSIWIG-процессоров, при этом обходя, насколько это возможно, присущие им недостатки. Вот об этих настройках и приемах их использования и пойдет речь.
Читать дальше →

Играй и изучай VIM одновременно

Reading time1 min
Views22K
Наткнулся на интересную вещицу: VIM Adventures.



Это онлайн игра основанная на хоткеях текстового редактора VIM. Полезна будет тем, кто всегда боялся открывать VIM, чтобы, наконец, пересилить страх; а также тем, кто уже давно знаком с VIM, чтобы просто получить немного удовольствия.

Vim

Reading time3 min
Views18K
Всё начиналось в меру невинно. На первом курсе ты экспериментировал один или два раза, но Nano и Pico были проще, они были ближе к тому, чем ты уже пользовался в средней школе на машинах с Windows и Mac. Но время текло, твой багаж знаний пополнялся тем, что вам давали в вузе, и ты начал что-то замечать: все действительно великие программисты, люди, которым под силу было уместить в 4 строчки, то, для чего тебе требовалось 10 страниц кода, те, у которых богатое функциональностью решение учебного проекта было готово через день, в то время как ты неделями мучался лишь с базой, никто из них не пользовался Nano или Pico.

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

«Как ты это делаешь?» — недоверчиво спросил ты.

Твою жизнь изменил лаконичный ответ, состоящий из одного слога: «Vim.»

Вначале ты был раздражен и куда менее производителен. История браузера являла полный индекс документации Vim, твои Nano и Pico-друзья считали тебя сумасшедшим, Emacs-товарищи умоляли одуматься, ты заплатил деньги за ламинированный экземпляр пямятки Vim. Даже спустя недели тренировок, ты всё ещё по привычке иногда тянулся к мыши, но затем одергивал руку, понимая, что придется искать в сети нужную комбинацию для выполнения рутинной операции, о которой раньше тебе никогда не приходилось задумываться.
Читать дальше →

Vim на рабочий стол

Reading time1 min
Views18K

Здравствуйте, коллеги!
После прочтения данной статьи, я понял, что использую этот редактор не на полную мощность. Для того чтобы изучить и запомнить основные используемые команды Vim, нарисовал Wallpaper шпаргалку. Список команд не претендует на полноту, но большинство из них будут вам полезны при работе с Vim. Ее можно будет поставить на рабочий стол или просто открывать по мере необходимости.
Под катом сама картинка:
Читать дальше →

Как я покупал квартиру

Reading time11 min
Views62K
Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
Читать дальше →

Новый паттерн UI — боковая навигация

Reading time7 min
Views50K
Занимаюсь редизайном приложения 10tracks для Android, и решил позаимствовать красивый интерфейсный ход старших братьев — Facebook и других. На эту тему нашлась хорошая статья, переводом которой спешу поделиться с вами. Между тем эта статья — больше платформа для дискуссии, чем нерушимые устоявишеся правила.


За последний год интерфейс Android улучшался с феноменальной скоростью (я подобрал небольшую галерею приложений, которые мне нравятся в Google+). Много изменений являлись лишь косметическими (тема Holo в ICS, шрифт Roboto, и т.д.). Мы не увидели больших качественных изменений в принципах проектирования интерфейсов. Но, возможно, как раз сейчас происходит одно такое.

Почти одновременно несколько приложений внедрили у себя боковую навигацию как в приложении Facebook. Сначала мы увидели, как она используется в новом дизайне Spotify, а затем почти сразу решение переняли Evernote. Не прошло и года, в новом дизайне приложения Google+ представили аналогичный паттерн.
Читать дальше →

Человек вывел виртуальную девушку в реальный мир

Reading time1 min
Views7.5K
Ладно. Итак. Об этом у меня буквально нет слов, но раз уж я блоггер и здесь информационный сайт, то постараюсь.

Используя кинектоподобное устройство Xtion PRO от ASUS и некие видеоочки, парню удалось пойти на свидание с Мику Хацунэ полностью виртуальною японскою поп-звездою.

Она идёт с ним на игровую площадку и отзывается на поглаживания по голове, А ТАКЖЕ И КОГДА ОН СТУЧИТ ЕЙ по голове.

Я не шучу. Смотрите сами. К концу видеозаписи (около 3:08) всё становится ещё неделикатнее.



Есть уже множество предположений о том, как эта технология «дополненной реальности» может использоваться — в том числе и для порнографии. Что ничуть не удивляет.

[с сайта io9]

Выбор Pull To Refresh инструмента

Reading time5 min
Views22K
    Недавно столкнулся с проблемой внедрения в проект механизма Pull To Refresh для обновления списков. Ввиду специфичности имеющихся списков (списки разной длины, от 0 до ~100; подгрузка элементов по требованию; набор списков располагается в самописном компоненте, аля ViewPager) это действительно оказалось проблематично. О всех моих изысканиях в данном направлении читайте под катом.
Читать дальше →

Работающий Pull to refresh

Reading time3 min
Views13K
Это рассказ о том, как получилась работающая реализация Pull to refresh под Android. Совсем не будет примеров кода. Немного картинок и в конце статьи ссылка на архив проекта.

Недавно встала необходимость встроить в текущее приложение Pull to refresh. Это сейчас модно, пользователи привыкли, и для твиттер-клиентов уже стало стандартом. Поиск готовых решений в сети вывел на единственный вариант — open-source проект Johan Nilsson android-pulltorefresh на Github.



Читать дальше →

Заметки о ProgressDialog или как правильно показать прогресс выполнения

Reading time8 min
Views36K


Здравствуйте!

В данном посте я хочу поговорить о таком элементе UI Android как ProgressDialog и вообще о теме отображения прогресса в приложении, возможных реализациях и проблемах.

Под катом вас ждет некоторые мысли по теме + совсем немного кода. Наверно, тема, о которой я буду говорить, многим может показаться очевидной, но глядя на одни и те же «решения» в приложениях из Меркета, все видимо не так однозначно. Плюс, мне будет интересно услышать ваши соображения или best practice по теме.
Читать дальше →

Конкурс ВК: Мессенджер для Android. Как это было!?

Reading time3 min
Views35K
Приятного времени суток!

Сколько человек хочет заняться разработкой под Android, но в силу определенных обстоятельств все никак не может начать (у кого-то нет времени, кому-то скучно просто прорешивать примеры, лень, неопределенность)? Сколько человек добавляет каждую, кажущуюся интересной и полезной, статью на хабре в избранное и забивает? До конкурса ВКонтакте на разработку мессенджера под Android, я был среди числа вышеописанных пользователей. Но в один роковой момент все изменилось…
Читать дальше →

PHP гораздо лучше, чем вы думаете

Reading time4 min
Views41K
Последнее время PHP гнобят все, кому не лень, даже довольно-таки разумные люди. Когда Jeff Atwood создал свой очередной пост, направленный против PHP, это заставило меня задуматься о хороших сторонах этого языка.

Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP.
Либо это их не волнует, либо они не хотят признавать, но PHP эволюционирует очень быстрыми темпами, и как язык, и как сообщество.
Более того, PHP развивается гораздо быстрее, чем какой бы то ни было другой язык или платформа. Конечно, так было не всегда, но последние 5 лет были воистину потрясающими для PHP…

Читать дальше →

Бесплатные способы продвижения Android-приложений

Reading time5 min
Views67K


Всем привет! В этом топике мне хотелось бы обсудить одну из самых интересных и в тоже время загадочных тем для большинства, как мне кажется, инди-разработчиков – это продвижение своих собственных приложений. Скажу пару слов о себе: я примерно 2 года занимаюсь Android-разработкой (исключительно в качестве хобби, правда). У меня есть десяток приложений в Play Store, с совокупным количеством загрузок более 5 млн. Ни то что бы очень много, да и большая часть загрузок приходится на одно приложение, но какие-то выводы касательно маркетинга я для себя сделал. Здесь я хочу поделиться своим опытом, наблюдениями, а так же призываю Вас рассказывать о своих результатах в комментариях. Обмен опытом в этом вопросе был бы полезен всем, я думаю.
Читать дальше →

Ещё раз о «Mercurial против Git» (с картинками)

Reading time3 min
Views61K
Некоторое время назад я опубликовал очень многословное сочинение, где пытался объяснить, почему Git серьёзно поломан, и почему всем следует вместо этого пользоваться Mercurial, до тех пор, пока разработчки Git его не починят. Ну ладно, я был не настолько груб, но близок к этому.

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

Ниже я нарисовал упрощёный граф истории репозитория Git с тремя созданными ветками: «master», «release» и «topic». До того, как энтузиасты Git начнут ругаться, что я исхитрился показать нереально плохой случай запутанности истории, позвольте мне заверить вас, что это на самом деле ещё упрощённый пример. У меня есть доступ к реальному репозиторию Git, где создано шесть рабочих веток релизов, около сорока рабочих тематических веток и несколько сотен ранее существовавших веток, которые уже удалены с центрального сервера.
Читать дальше →

Как создать свой Color Picker на Javascript?

Reading time3 min
Views28K
Я знаю что в сети много подобных скриптов на разный вкус и цвет. Но мне захотелось написать свой с нуля и первое что я сделал полез в Гугл искать алгоритм создания(сolor picker). В итоге я был разочарован так как не нашел нечего кроме готовых скриптов, наверно поэтому после того как я разобрался и написал свой color picker, я решил поделится своим опытом в его написание.

Так как я пишу на чистом js без библиотек (не считая той которую я пишу сам:)) в данном посте будет только хардкор чистый javascript.
Что нужно знать что бы написать cp (сокращенно color picker):
  • Основы Drag'n'Drop
  • Немного разбираться в Canvas (на нем будет рисоваться шкала оттенков Hue)

Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer, Product Manager
Lead
From 500,000 ₽
People management
Building a team
Startup management
iOS development
Flutter
SWIFT
Objective-C
Golang
Git
Python