Search
Write a publication
Pull to refresh
7
0
Виктор Наумик @vicnaum

User

Send message

Как проектировался новый Photo Viewer в Facebook

Reading time6 min
Views902
Это перевод поста из Facebook Engineering Blog, который интересен, наверное, даже не столько сутью решения, которое в нем описано, сколько рассказом о «кухне» разработки в Facebook. Речь идет об обновленном функционале просмотра фотографий, который появился в конце сентября 2010 г. и был немного еще улучшен на днях.

imageЗадумавшись об обновлении Photo Viewer, мы столкнулись с множеством трудностей. Очевидно, что фотографии это наиболее востребованная функция Facebook. Ежедневно наши пользователи загружают более 100 миллионов фотографий, а предназначенный для этого функционал был создан довольно давно и явно нуждался в доработке.

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

Как нам это удалось
Мы начали с составления списка текущих проблем:
  • Наибольшие проблемы возникали с надежностью. Изображения загружались медленно, и иногда процесс зависал на неопределенное время. Пользователям приходилось обновлять страницу в браузере, чтобы увидеть фотографии и комментарии к ним.
  • При просмотре фотографий из Ленты новостей приходилось либо открывать их в новой вкладке, либо мириться с тем, что после просмотра нужно было заново прокручивать ленту вниз, чтобы вернуться к предыдущей позиции. Для разбирающихся в компьютере людей это не составляло особых проблем, но многие из наших пользователей испытывали связанные с этим неудобства.
  • Функционал просмотра комментариев к фотографиям был также реализован не самым удобным образом. Процесс выглядел так – нужно было посмотреть фотографию, промотать страницу вниз, чтобы увидеть подпись и комментарии к ней, а потом вернуться обратно наверх, и так каждый раз.
  • JavaScript, предназначенный для загрузки и кэширования фотографий, а также для публикации комментариев, был также реализован не самым лучшим образом. Он оставался неизменным на протяжении многих лет, на фоне того, что технологии работы браузеров и требования к ним значительно ушли вперед.

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

Регистрация приложения в AppStore — мы сделали это!

Reading time3 min
Views146K
Сегодня мы не будем рассказывать о том, как правильно платить налоги и отправлять декларации через интернет — про это мы расскажем как-нибудь в следующих публикациях.

Вместо этого мы поделимся нашим опытом проникновения в AppStore. Ежедневно в него попадают тысячи приложений, в карманы разработчиков (и Apple) текут зелёные реки хрустящих бумажек, а в программе разработчиков iOS developer регистрируются сотни новых программистов и компаний. Растущая популярность платформы iOS подтолкнула нас к мысли — почему бы не написать собственное приложение для iPhone? Кстати, наше приложение совершенно бесплатное :)

Мы не будем подробно останавливаться на всех перипетиях разработки приложения внутри команды, но наш опыт регистрации фирмы в программе разработчиков Apple может оказаться полезным. Распишем весь процесс подробно, по шагам и с картинками.
Читать дальше →

Ломаем web c '#!' (hash-bang)

Reading time6 min
Views19K
Ниже предлагается перевод статьи, обращающей внимание на, на мой взгляд, довольно острую проблему в эпоху web 2.0, а именно чистоту URL-адресов.

На примере сайта Lifehacker.com показано какими проблемами может обернуться слепое следование state-of-the-art технологиям, погоней за SEO и отрицание принципа «прогрессивного улучшения» (progressive enhancement).


На прошлой неделе, в понедельник, сайт Lifehacker.com был недоступен по причине неработающего JavaScript. Lifehacker.com, наряду с остальными сайтами компании Gawker, отображали пустую главную страницу без контента, рекламы и всего остального. Переход с результатов поиска Google на подстраницы переправлял обратно на главную.

Javascript-зависимые URL


Gawker, как и Twitter до него, перестроил свои сайты на полную зависимость от JavaScript'а, включая URLы его страниц. JavaScript не смог загрузиться, что привело к отсутствию контента и сломаным URLам.

Новые адреса страниц выглядят теперь следущим образом: http://lifehacker.com/#!5753509/hello-world-this-is-the-new-lifehacker. До понедельника, адрес был тем же, только без #!..

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

Анимированные баннеры на Javascript — это просто*

Reading time7 min
Views20K
*) На самом деле все равно сложно, но зато проще, чем было раньше.

История началась с постановки задачи: нужно сделать анимированный баннер с примерно тридцатью объектами средствами HTML+javascript за один день. За день, конечно, баннер сделан не был, а был сделан за два усилиями трех человекодней. После выполнения задания осталась библиотека пакетной анимации, которую я назвал Scenario. О её доработанной версии я и хочу рассказать.

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

Запуск сценария из любого места предельно прост:

var newScenario = [...];
$.scenario(newScenario, {
    complete: function(time) {
        alert('Готово!');
    }
});

Осталось только разобраться, что писать вместо трех точек в примере :)
Читать дальше →

Как не надо делать автообновления

Reading time2 min
Views21K

(В кабинете у психолога молодой мужчина...)

Понимаете, моя жизнь связана с компьютерами. Я использую компьютеры на работе, дома. Иногда ко мне обращаются друзья и знакомые. Так вот (тяжело вздыхает)… В последний год мне кажется, что меня преследуют. Время от времени я получаю странные красные окошки на всех моих компьютерах. Зачем они попадаются мне на глаза – я не знаю, но я их вижу все чаще и чаще!
Читать дальше →

Proдвинутый папа — территория для IT пап

Reading time2 min
Views1.2K
Уважаемые Хабра-папы (а так же те, кто собирается стать папой в ближайшее время). Я папа, со стажем 2 года и в данном посте я хочу рассказать Вам о том, как родилась идея портала для пап Proдвинутый папа.



Давайте заглянем внутрь проекта

Атака на банк-клиент или Охота на миллион

Reading time4 min
Views4.8K
У современного человека все многообразие вредоносного программного обеспечения описывается словом «вирус». Однако вирусы в классическом их понимании (имеющие саморепликацию основной особенностью) уже давно не занимают лидирующих позиций в рейтинге компьютерных угроз. На первое место вышли черви и трояны – они могут как вымогать деньги (печально известные Trojan.Winlocker и Trojan.Ransom), собирать информацию о пользователе (пароли и списки контактов, по которым они рассылаются для увеличения покрытия), так и похищать крупные суммы денег без ведома жертвы (а ей может быть как простой пользователь, так и крупная компания или банк).

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

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

Кому я нужен?

Reading time3 min
Views6.5K
0x00 Предисловие

Навеяно недавним постом о безопасности клиент-банков. Почитал комментарии и понял что данная тема видимо плохо освещена на Хабре. Посвящается всем кто любит покричать «Да что хакер может взять на моем компьютере», «Да кому я нужен». Что происходит? А главное как утекают деньги со счетов? Интересно? Добро пожаловать под хабракат.

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

Выбирая работу, не забудьте выбрать босса

Reading time4 min
Views6.6K
Я ошибался дважды, выбирая работу. Совсем не от того, что неверно выбрал карьеру специалиста в сфере информационных технологий. Это очень, очень, очень интересная работа. Почти как работа капитана космического корабля… ;)

Я выбирал компании, но не выбирал боссов. И в этом состояла моя ошибка. Думаю, что не только моя…
Читать дальше →

Меньше шумов с новыми CMOS-сенсорами

Reading time2 min
Views34K
На Mobile World Congress 2011, который стартует в Барселоне в понедельник и продлится до 17 февраля, Samsung продемонстрирует два новых CMOS-сенсора (S5K3L1 и S5K3H2), которые ориентированы на применение в смартфонах.

image

Не смотря на распространенное (и вполне справедливое) убеждение «камера в телефоне баловство, фотоаппарат она не заменит», часто случаются ситуации, когда под рукой ничего лучшего, чем камера в телефоне не оказывается. И тут в качестве софтверного фильтра, улучшающего качество фотографии, часто применяется фраза «Сорри за качество, снимал телефоном». Samsung очень любит своих покупателей и совсем не хочет, чтобы они лишний раз извинялись за собственную технику. Поэтому наши инженеры не устают предлагать новые решения, которые позволят гордиться снимками, а не извиняться за них.
Читать дальше →

С чего начать разработку бизнес процессов

Reading time2 min
Views36K
Специалисты знают, что прежде, чем автоматизировать бизнес процессы приходится эти самые процессы разрабатывать заново или оптимизировать, потому как автоматизация хаоса дело неблагодарное да, по сути, и не возможное.

Устанавливая задачу персоналу типа «опишите свою деятельность», или «каков результат вашей деятельности» в буквальном смысле сводит его (персонал) с ума. Возникает непонимание, а как следствие раздражение, соответственно речь о сотрудничестве уже не стоит. Некоторые скачивают из Интернета инструкции совершенно не применимые на практике, некоторые в интеллектуальных муках что-то рожают, однако на коррекцию уже нет сил и желания.

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

Live-прототипирование приложений на Titanium с использованием Livetanium

Reading time2 min
Views1.7K
Наверняка многие из вас слышали о платформе Titanium Mobile от Appcelerator, которая позволяет разрабатывать нативные приложения под iOS и Android c использованием JavaScript (для тех кто не слышал и не пробовал, добро пожаловать). Я работаю с Titanium около 10 месяцев и меня практически все устраивает, но есть одна проблема, после использования XCode и Interface Builder работа над интерфейсом программы раздражает: Titanium не поддерживает nib-файлы, а это значит что размеры элементов приходится подгонять вручную и нет возможности использовать какие-то элементы повторно (частично эту проблему решает JSS, работает по аналогии с CSS). На самом деле проблема не в том чтобы подгонять размеры вручную (например, при html-верстки я давно отказался от WYSIWYG-редакторов и использовал vim), а в том что после внесения изменений нужно ждать компиляции и установки программы в симулятор/эмулятор, а ведь так не хочется тратить на это время.
Читать дальше →

Этот сайт не доступен из вашей страны. Киберсвинья Пётр компилирует трактор

Reading time3 min
Views24K
Нас спрашивали, какие интересные заграничные сервисы можно разблокировать с помощью Kebrum VPN. Под катом находится список ресурсов, доступ к которым можно получить представляясь пользователем из Германии, Англии, США и других цивилизованных стран. Конечно, это далеко не полный список, и надеюсь, что хабралюди помогут нам пополнить его. (Пополнили, есть обновления)

Показать всё, что скрыто

Двадцать вопросов, которые помогают разработать алгоритм

Reading time5 min
Views8.4K
Как разработать алгоритм, решающий сложную задачу? Многие считают, что для этого нужно «испытать озарение», что процесс этот не вполне рационален и зависит от творческой силы или таланта.

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

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

Поможем Сбербанку

Reading time5 min
Views14K
Краткое содержание предыдущей серии: Сбербанк приходит на Хабр, декларирует намерение радикально измениться, собирает море гневных комментов, благодарит всех за полезные отзывы.

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

Но все мы немножко верим в чудо :) Почему бы не попробовать помочь Сбербанку, раз уж они так настойчиво просят?

Дорогая служба качества, я (а со мной, думаю, и большинство присутствующих) очень хотели бы донести до вас одну простую мысль: вам нужно оптимизировать ровно ОДИН параметр — ВРЕМЯ. ВРЕМЯ КЛИЕНТОВ. Всё остальное — маркетинговые рюшечки, которые никому никуда не впились, кроме маркетологов. Если Вы сможете сделать так, чтобы ваши клиенты перестали чувствовать, что только что потратили зря два часа жизни — вам всё простят.

Под катом — небольшое руководство к действию, каким вижу его я.

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

Собираетесь открыть веб-студию? Не забудьте про направление продвижения!

Reading time4 min
Views22K
Моя веб-студия работает в Новосибирске, в основном на местных заказчиков. Мне, как директору компании, всегда было интересно, как же обстоят дела с веб-разработкой в других регионах. Я знал, что на чистой разработке особо не выживешь, но не обладал подтверждающей информацией.
И вот журнал «Деловой Квартал» провел исследование рынка веб-разработки в регионах. Я подготовил сводную таблицу и попробовал рассказать о своих мыслях о результатах исследования.
Читать дальше →

Про фрилансера Ивана и как он не вставал с дивана

Reading time6 min
Views49K
Совсем недавно мы писали о том, как сдавать жилье в аренду, не навлечь на себя гнев государства и не вылететь при этом в трубу, используя простые практические советы по оптимизации налогообложения, рациональный подход и электронного бухгалтера «Эльбу».

Сценарий со сдачей квартиры всем хорошо знаком, но тот кейс, о котором сейчас пойдет речь, покажется многим из вас более жизненным и актуальным. А речь пойдет о фрилансере Иване — успешном блоггере и стоковом фотографе.
Читать дальше →

Взлом программы однокомандного процессора

Reading time2 min
Views2.1K
Разного рода "ненормальное" программирование весьма популярно среди любителей поломать голову над разными задачками. Порой программу для очередной "ненормальной" среды программирования уже нереально написать вручную, а надо писать генератор, создающий код.

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

Итак, имеется модель некоторого виртуального процессора, выполняющего только одну логическую операцию — Стрелку Пирса.
Читать дальше →

Кластеризация палитры изображения и сжатие в формате PNG

Reading time7 min
Views15K

Аннотация


В данной статье читателю предлагается опыт разработки алгоритма сжатия изображения, хранящегося в формате PNG. Сжатие осуществляется за счет квантования палитры с использованием классификатора К–внутригрупповых средних. Приводится исходный код алгоритма, написанный на языке Java. Указываются проблемы и дальнейшие пути улучшения алгоритма.
Читать дальше →

Возлюби клиента своего… или как не стать «таджиком» в разработке сайтов

Reading time4 min
Views1.3K
Работа с клиентами бывает разной. Бывает легкой, простой – о которой вспоминаешь, как о дружбе в университете – позитивной и непринужденной. Этого клиента хочется поздравить с днем рождения, поинтересоваться об успехах проекта и постоянно вносить предложения о развитии. С таким можно покорять просторы рунета креативом, он верит в твой профессионализм и эта вера монетизируется в его заработке с сайта. Он приведет к вам еще своих друзей, коллег, знакомых. И все будут счастливы. Для такого клиента хочется свернуть горы, ты как счастливый ребенок за конфету купаешься в ласковом доверяющем взгляде и хочется делать и делать еще для этого проекта. Хочется вставать в 7-мь утра и читая письма от этого клиента – начинать рабочий день. И все сбывается.

А еще работа с клиентами бывает нудной, затянутой и неинтересной. Эти клиенты звонят тебе сами в 7-мь утра и ты чертыхаясь и ненавидя всех вокруг, начинаешь еще одно утро с таким заказчиком.
Читать дальше →

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity