Как стать автором
Обновить
2
0
Flex25 @Flex25

Пользователь

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

Проблема диагональных бордеров и Firefox

Время на прочтение2 мин
Количество просмотров14K
Недавно столкнулся с такой проблемой — верстал нестандартную рамку для картинок с помощью псевдо-элементов и бордеров и столкнулся с тем, что Firefox совершенно не справляется с сглаживанием линий (антиалиасинг) этих самых бордеров.

Погуглил решений, натолкнулся в итоге на эту небольшую статью, которая чудесным образом решила проблему. Надеюсь, кому-нибудь ещё пригодится, хоть и статья малюсенькая.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии20

За один проход

Время на прочтение7 мин
Количество просмотров155K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1+71
Комментарии56

Proxygen — HTTP-фреймворк для С++ от Facebook

Время на прочтение8 мин
Количество просмотров18K
Proxygen — это коллекция библиотек для использования протокола HTTP на С++, включающая в числе прочего очень простой в использовании HTTP-сервер. Кроме классического HTTP/1.1 фреймворк Proxygen поддерживает SPDY/3 и SPDY/3.1. Вскоре также будет полностью поддерживаться HTTP/2.

Proxygen не задумывался как замена Apache или nginx — эти проекты сфокусированы на создании достаточно гибких и конфигурируемых веб-серверов, позволяющих благодаря тонкой настройке добиться максимальной производительности. Задачей Proxygen является работать достаточно хорошо на дефолтных настройках, давая программисту простые в использовании веб-сервер и веб-клиент, легко интегрирующиеся в уже существующие проекты. Мы хотим помочь людям строить веб-сервисы на С++ с меньшими затратами и мы верим, что Proxygen — отличный фреймворк для этого. Вы можете почитать документацию по нему и подключиться к разработке на Github.

Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии19

Создаем портфолио на основе фотографий из Instagram

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


Здравствуй, дорогой хабрадруг! В этом уроке мы создадим простой сайт-портфолио, который будет базироваться на фотографиях из вашего аккаунта в Instagram. Дизайн сайта сделал Tomas Laurinavicius, и он получился у него простым, функциональным и просторным. Итак, начнем.

Скачать исходники | Демо
Читать дальше →
Всего голосов 73: ↑41 и ↓32+9
Комментарии24

Яндекс.Карты в трёхмерном мире. Высотность, устройство городов и как люди в них ориентируются

Время на прочтение2 мин
Количество просмотров97K
На Яндекс.Картах теперь можно отличить высотку от одноэтажного здания и узнать известное здание по 3D-модели — все объекты на них стали объёмными. Сейчас на картах более 1000 моделей особенных сооружений в разных городах, со временем их станет больше.

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



В Москве почти 4,5 тысячи высоких — выше 50 метров — зданий. Больше всего таких домов в Тропарево-Никулино, Раменках, Митино, Обручевском районе и Ясенево. Около 90 строений Москвы — выше 100 метров. По количеству таких зданий лидируют Пресненский район, Раменки, Хорошевский район, Тропарево-Никулино и Восточное Бирюлево. Самое высокое здание города — Останкинская башня. Для столицы мы отрисовали модели Московского Кремля, Храм Христа Спасителя, главного здания МГУ, Останкинской башни и многих других объектов, которые служат для людей ориентирами.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии57

Как использовать API сайта, у которого нет API?

Время на прочтение4 мин
Количество просмотров80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии40

Почему свет движется со скоростью света?

Время на прочтение5 мин
Количество просмотров85K
(Прим. пер. ― см. прим. пер. в конце поста)

Почему свет движется со скоростью света? Почему он просто не стоит на месте? Что приводит его в движение (тем более, такое быстрое)?

image

Всё и везде, просто по факту своего существования, «движется» со скоростью света (которая на самом деле не имеет ничего общего со светом). Да, это касается и вас тоже. Вот прямо сейчас.

Люди в основном воспринимают «вселенную» как «пространство», нечто отдельное от «времени», и честно говоря, они неправы. Пространство и время — не отдельные штуковины. Вселенная сделана из «пространствовремени», прямо так, без пробела. Вы, наверное привыкли к тому, что «год» — это единица времени, а «световой год» — единица расстояния, то есть это разные вещи; но с точки зрения физика это ровным счетом одно и то же (ну, конечно, смотря каким видом физики вы занимаетесь).

В нашей будничной жизни мы исходим из того, что движение — это некое расстояние (пространство), преодоленное за некое время. Однако, если мы решили, что это одно и то же, наше определение движение внезапно становится полной ерундой. «Я прохожу километр за каждый километр, который я прохожу» — кошмар какой-то!

Читать дальше →
Всего голосов 217: ↑199 и ↓18+181
Комментарии303

Часть 2. Сколько мегабит/с можно пропустить через зрительный нерв и какое разрешение у сетчатки? Немного теории

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


Другие публикации из этой серии


Часть 1. Unboxing VisuMax — фемто-лазера для коррекции зрения
Часть 3. Знакомьтесь — лазер по имени Amaris. Переезды и первое пробуждение VisuMax
Часть 4.1 Возвращаем зрение. От очков до эксимерного лазера
Часть 4.2 Возвращаем зрение. От очков до эксимерного лазера

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

Я постараюсь рассмотреть человеческое зрение через призму IT. Если кому-то не слишком интересно читать часть, посвященную биологическим аспектам зрения — ничего страшного. Просто пропустите разделы, начиная с оптической системы глаза, и сразу переходите к традиционному конкурсу от наших девушек. Однако, я все же рекомендовал бы ознакомиться с этим материалом, чтобы лучше понять следующую статью, в которой мы будем рассматривать LASIK, Femto-LASIK, ReLEx SMILE и другие методы лазерной офтальмохирургии.

Есть настроение разобраться, что именно говорят эти непонятные люди в белых халатах, задумчиво глядя на результаты вашего обследования? Вы хотите узнать немного нового об уникальном природном даре — зрении? Тогда добро пожаловать под habracut. Как обычно — много иллюстраций и трафика (≈5 MB).
Читать дальше →
Всего голосов 267: ↑260 и ↓7+253
Комментарии426

Мой опыт: Российские интернет банки и карты

Время на прочтение5 мин
Количество просмотров250K
Привет всем! Если вы фрилансер, то наверняка имели дело с банковскими картами. Сейчас на Российском рынке огромное предложение карт, начиная от банковских премиальных, заканчивая скидочными и бонусными от кафе до авиакомпаний.
Сразу хочу сказать, что пост никаким образом не является рекламным. Тут только мое мнение и мой опыт по отношению к Российским банкам и их картам. В обзоре я использовал только те банки, с которыми работал лично.


Читать дальше →
Всего голосов 131: ↑85 и ↓46+39
Комментарии437

Билл Гейтс отвечает на вопросы пользователей Reddit

Время на прочтение1 мин
Количество просмотров70K
Около часа назад Билл Гейтс анонсировал на Reddit AMA-интерактив («ask me anything») со своим участием.
Читать дальше →
Всего голосов 75: ↑73 и ↓2+71
Комментарии59

Интервью как процесс с точки зрения собеседующего

Время на прочтение8 мин
Количество просмотров9.4K
Волею судеб так сложилось, что кроме повседневных обязанностей по написанию кода, исправлению ошибок, бесчисленных митингов и stand-up-ов, и всего прочего-прочего, я оказался вовлечён в процесс проведения собеседований.

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

Отработав в компании более 4х лет в нескольких смежных больших проектах я участвовал в собеседовании более чем 50 человек, из которых было нанято только 5.

На данный момент я покинул компанию о которой я описываю, и по согласованию сторон, могу поделится с тем как устроен этот процесс немного изнутри.

По большей части буду говорить о техническом интервью — том самом этапе, где мы проверяем компетентность кандидата как инженера. Процесс сложный и дорогой, в нём нет единственно правильного подхода. По своей сути, цель диалога понять — какой остаточный набор знаний есть у кандидата, его способность думать и соображать и личностные качества, ну и ответить на самый главный вопрос вселенной и всего такого — готов ли я с этим человеком работать бок-о-бок в проекте.
Читать дальше →
Всего голосов 28: ↑18 и ↓10+8
Комментарии74

Пиши резюме правильно или “умею улыбаться и пеку оладушки”

Время на прочтение9 мин
Количество просмотров181K
Update статьи “Пиши резюме правильно или “умею улыбаться и пеку оладушки”.

Начну с того, что я IT рекрутер. В этом тексте выражено только мое мнение по вопросу составления резюме. Это вовсе не значит что мои коллеги по отрасли считают также. Возможно, с чем то-то они согласны, с чем-то нет.

Да, каюсь, в первоначальном варианте статьи, опубликованном некоторое время назад, я несколько категорично выразила свое мне о наличии и качестве фотографии в резюме. Давайте поступим так: ставить фотографию или нет — решать вам. По своему опыту могу сказать лишь, что:

1. Работая в IT кадровом агентстве, я общаюсь с кандидатами только по телефону и мне психологически комфортнее представлять себе человека визуально. Возможно вам тоже. Часто процесс трудоустройства растягивается на недели, а то и на месяцы. В этот период я веду с кандидатом переписку, общаюсь по телефону и в скайпе. Волнуюсь за него, особенно если процесс рассмотрения резюме почему-то затягивается, а человеку срочно нужна работа. Если история заканчивается хорошо, и кандидата приглашают в компанию — радуюсь. И так изо дня в день, и из месяца в месяц. Человек становится уже в чем-то близким для меня. И не представляя его визуально — чуть сложнее и как-то грустнее, что ли, работается.

Поэтому фото в резюме важно для меня, как для рекрутера.

2. Для руководителя, ищущего специалиста себе в команду — фото в резюме кандидата может быть важно по другой причине: с этим человеком он и его коллеги будут работать по 8 часов в день 5 дней в неделю. И хочется, чтобы человек вписался в команду. Конечно, понять, впишется специалист в команду, или нет, можно только на собеседовании, и то не всегда. Но всех на собеседование не пригласишь, у руководителя мало времени для этого. Фото в таком случае выступает для него одним из фильтров для экономии времени.

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

И напоследок, перед тем как вы начнете, уже наконец, читать саму статью, хочу попросить вас — не стесняйтесь комментировать! Ваше мнение для меня очень важно, потому что вы — мои друзья, или коллеги по отрасли или те, кому я звоню каждый день, говоря: ”здравствуйте, я нашла ваше резюме..."

По долгу службы я каждый день просматриваю HeadHunter, Linkedin и множество других ресурсов для поиска на предмет IT специалистов разного толка.
Находясь по ту сторону HeadHunter’а, не перестаю удивляться изобретательности тех, кто находится в поиске работы.
Предлагаю поговорить о том, как эффективно позиционировать себя на рынке труда.
Правильное продающее резюме это первый и главный шаг к работе мечты.
Рекомендации будут практические, проверенные на собственном опыте как со стороны соискателя, так и со стороны рекрутера.
И как же оформлять резюме?
Всего голосов 119: ↑81 и ↓38+43
Комментарии246

Постиндустриальное общество: ценности, семья, мораль и право

Время на прочтение10 мин
Количество просмотров19K
Disclaimer. Написать этот топик меня побудил комментарий nail84 к предыдущему бестселлеру про порнографию.

Современное западное общество является, с социологической точки зрения, совершенно уникальным. Перечислю вкратце: эмансипация женщин; либерализация права (легализация наркотиков, проституции, однополых браков, et cetera); либерализация морали, в т.ч. сексуальной; распад традиционной семьи; длинное детство и длительное образование; деградация института брака; снижение рождаемости и повышение фертильного возраста; консюмеризм — все эти явления в совокупности никогда не встречались в человеческой истории.

В предыдущем топике я писал, что не приемлю объяснений вида "(что-нибудь имеет место), потому что таково западное общество", поскольку такие объяснения ничего не объясняют. В этом топике я постараюсь показать, что все эти процессы объяснимы со вполне рациональных позиций.

P.S. Топик в персональных блогах, не хочешь — не читай. Писать в комменты «это не для Хабра!!! одынодын» не надо.

Поехали
Всего голосов 166: ↑140 и ↓26+114
Комментарии240

Отец Google Maps и Google Wave перешел в Facebook?

Время на прочтение2 мин
Количество просмотров785
image
Когда Google сделала в прошлому году ставку на амбициозный проект Wave, они знали что это авантюра. Но большая его часть скрывалась за командой, разрабатывавшей этот проект. Ее возглавлял Ларс Расмуссен, инженер, известный как один из создателей очень успешного сервиса Google Maps. Теперь он покинул компанию, и по слухам, возглавит команду Facebook.
Читать дальше →
Всего голосов 68: ↑50 и ↓18+32
Комментарии53

Стиву Джобсу предлагали должность первого Google CEO

Время на прочтение1 мин
Количество просмотров598
Оказывается, когда Ларри Пейдж и Сергей Брин выбирали кандидатуру на должность первого президента компании, то после просмотра 12 или 13 кандидатов они обратились к Стиву Джобсу. К сожалению, безрезультатно: они так и не смогли оторвать Джобса от его «любимых маков». Когда попытка провалилась, следующим кандидатом стал Эрик Шмидт. Ларри и Сергею понравилось, что он ездит на фестиваль хиппи Burning Man в пустыне Невада. Шмидт успешно работает в Google до сих пор.

Об этом мы узнали из новой серии документального фильма Bloomberg Game Changers (вышла 28 октября, 21:00 EDT) об основателях Google. Целиком 48-минутный эпизод можно посмотреть здесь.
Читать дальше →
Всего голосов 61: ↑49 и ↓12+37
Комментарии29

Стажировка в Google (окончание)

Время на прочтение9 мин
Количество просмотров11K
В последней части своего отчета я расскажу про жизнь интерна в главном офисе Google, про офис и, собственно, про саму стажировку.

Читать дальше →
Всего голосов 142: ↑130 и ↓12+118
Комментарии70

Совместная работа над кодом в компании Google

Время на прочтение3 мин
Количество просмотров2.3K
Во второй главе книги «Coders at Work», Брэд Фицпатрик (Brad Fitzpatrick) — автор Live Journal, а сейчас сотрудник компании Google, помимо всяких интересных баек о создании Live Journal, об учебе и о многом другом, рассказывает и о принципах владения кодом и о совместной работе над ним в компании Google.

image

Как известно, в Google существует возможность использовать двадцать процентов своего рабочего времени в целях, отличных от целей текущего проекта (но в целях и интересах компании в целом). Это явление называется групплеты (grouplet) (об этом можно почитать в замечательной статье «The Google Way: Give Engineers Room», или в переводе этой статьи здесь), соответственно, у каждого разработчика может появиться дикое желание порыться в чужом коде и поучаствовать в каком-то проекте. А поскольку таких проектов, мягко говоря, много, то требуются некоторые формальные правила, которые позволят поддерживать весь код в актуальном состоянии и не позволят его качеству опускаться ниже определенного уровня.

Читать дальше →
Всего голосов 88: ↑79 и ↓9+70
Комментарии71

Взгляд со стороны специалиста на трудоустройство в Великобритании

Время на прочтение4 мин
Количество просмотров8.4K
Представляете, что к вам на собеседование через час придёт человек, а вы даже не знаете мужчина или женщина это и сколько ему или ей лет?

Трудоустройство в Великобритании кардинально отличается от российского и восточно европейского и анонимно до определённого момента.

Всё потому что присутствуют агенты, работа которых напоминает агентов писателей, художников и актёров. Я никогда не был внутри агентского процесса, но побывал с двух сторон трудоустройства и порой выпиваю со знакомым агентом.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии94

folly::fbvector — улучшенный std::vector от Facebook

Время на прочтение6 мин
Количество просмотров26K
Folly — это открытая С++ библиотека, разрабатываемая Facebook и используемая им во внутренних проектах. С целью оптимизации расходов памяти и процессорных ресурсов библиотека включает собственные реализации некоторых стандартных контейнеров и алгоритмов. Одной из них является folly::fbvector — замена стандартного вектора (std::vector). Реализация от Facebook полностью совместима с оригинальным интерфейсом std::vector, изменения всегда не-негативны, почти всегда измеримы, часто — существенно, а иногда даже грандиозно влияют на производительность и\или расход памяти. Просто включите заголовочный файл folly/FBVector.h и замените std::vector на folly::fbvector для использования его в своём коде.

Пример


folly::fbvector<int> numbers({0, 1, 2, 3});
numbers.reserve(10);
for (int i = 4; i < 10; i++) {
  numbers.push_back(i * 2);
}
assert(numbers[6] == 12);


Мотивация


std::vector — устоявшаяся абстракция, которую многие используют для динамически-аллоцируемых массивов в С++. Также это самый известный и самый часто используемый контейнер. Тем большим сюрпризом оказывается то, что его стандартная реализация оставляет достаточно много возможностей по улучшению эффективности использования вектора. Этот документ объясняет, как реализация folly::fbvector улучшает некоторые аспекты std::vector. Вы можете воспользоваться тестами из folly/test/FBVectorTest.cpp чтобы сравнить производительность std::vector и folly::fbvector.
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии50

Как я перепробовал пять платежных систем для своего сайта

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


Более трех лет назад я написал пост о выборе платежной системы для приема платежей на своем прошлом проекте. С тех пор прошло довольно много времени и многое в способах приема платежей изменилось. Теперь я расскажу как делал прием платежей на сайте poiskvps.ru.

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

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


Читать дальше →
Всего голосов 100: ↑86 и ↓14+72
Комментарии69

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность