Как стать автором
Обновить
0
0
Даниил Козлов @kzlv

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

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

πfs — революционная файловая система без хранения данных­

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

Что это?


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

Как собрать?


πfs собирается элементарно:
./configure
make


Да и использовать его не сложнее:
πfs -o mdd=<metadata directory> <mountpoint>

Где metadata directory — каталог с метаданными (названия файлов, смещение в π), а mountpoint ­— каталог монтирования.

Что же π делает с моими данными?


π — одна из самых важных констант математики, и у нее есть куча интересных свойств (о которых можно прочесть в статье на википедии)
Одним из таких свойств числа π предположительно является нормальность, что означает, что все его числа распределяются равномерно, при условии, что это дизъюнктивная последовательность, т.е. все конечные числовые последовательности находятся внутри него. Если мы рассмотрим число π по основанию 16 (HEX), то это предположение верно. Первая запись об этом была в 2001 году.
Ну а если так, то зачем нам хранить все эти эксабайты данных на винчестерах, если мы можем найти их в π?
Читать дальше →
Всего голосов 395: ↑300 и ↓95+205
Комментарии228

Обратные сетевые эффекты — от чего умирают большие сети

Время на прочтение4 мин
Количество просмотров35K
Для успеха любой социальной сети жизненно важен сетевой эффект, который заключается в том, что ценность сети растёт с ростом количества участников. Согласно эмпирическому закону Меткалфа, полезность сети приблизительно равна половине квадрата численности участников. Тем не менее, сетевой эффект не является гарантией безоблачного существования крупной сети. Закон Меткалфа не помешал Facebook обойти Friendster и MySpace.

Сангит Пол Чодри — предприниматель, аналитик и бизнес-консультант из Сингапура — считает, что причиной смерти многих крупных сетей становятся так называемые обратные сетевые эффекты, из-за которых ценность сети не растёт, а уменьшается с ростом числа пользователей. Как они работают?
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии17

Основы основ: акции (часть два)

Время на прочтение6 мин
Количество просмотров50K
Итак, в предыдущем топике мы обсудили, что такое акции, зачем они нужны и откуда они берутся. Если вы не читали его и не ощущаете себя полностью знакомыми с этими вопросами — возможно, имеет смысл прочитать. А пока мы плавно переходим к тому, что с этими акциями происходит после IPO.

Замечание автора: как и в предыдущих топиках, я не ставлю целью объять необъятное, и постараюсь лишь «на пальцах» объяснить некоторые базовые вещи. Если вы считаете, что информация не полна или не точна — я в высшей степени приветствую развернутые комментарии (которые я постараюсь инкорпорировать в текст статьи) — или, что еще лучше — самостоятельные топики. И еще — огромное спасибо всем тем, кто читал, комментировал, уточнял, задавал вопросы — мне приятно видеть, что людям это интересно. Мне приятно было получать ваши комментарии, и я постараюсь ответить на все возникшие вопросы.

Как торгуются акции


Большинство акций так или иначе продается на биржах (альтернативой являются внебиржевые сделки, так называемые over-the-counter). Биржа (вообще-то биржи бывают разные, а здесь речь пойдет о фондовых биржах — stock exchange) — это, в самом простом понимании, место где покупатели и продавцы встречаются и договариваются о цене. Какие-то биржи очень похожи на то, что вы видели в голливудских фильмах — люди стоят в торговом зале и кричат «Продаю…! Покупаю!!» — таковой до последнего времени (начала 2007) была биржа NYSE — знаменитый New York Stock Exchange.

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

Читать дальше →
Всего голосов 105: ↑93 и ↓12+81
Комментарии62

Основы основ: акции

Время на прочтение4 мин
Количество просмотров59K
На самом-то деле, это все, без исключения, каждое слово от первого до последнего — про акции. Акции, акции, акции — у человека, который прошел «веселые девяностые», МММы и прочие радости нашей с вами «тогдашней» жизни слово это вызывает не вполне положительную реакцию и понятное желание «никому больше никогда и ничего». А на самом-то деле ничего страшного в этом слове нет, и более того, в подавляющем большинстве случаев акции это то, что позволяет компании расти и развиваться. Именно акции и лежат в основе — самом фундаменте мирового фондового рынка.

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


Глоссарий


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

Акция


Итак, акция (англ: share, но чаще – stock или equity) — владение частью компании. Что это такое физически? В последнее время все чаще — ничего. То есть где-то в каком-то большом компьютере (а иногда — во многих) хранится запись о том, что Mr V. Pupkin является держателем N акций ZAO «Horns and Hooves Plc». Чем больше N, тем, соответственно, большей частью г-н Пупкин владеет. Да, вы поняли меня правильно — наличие акции или акций той или иной компании у вас означает, что вы владете какой-то частью всех офисов, компьютеров, мебели и даже интеллектуальной собственности компании.

Читать дальше →
Всего голосов 124: ↑106 и ↓18+88
Комментарии92

Жизнь разработчика (в картинках)

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

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Всего голосов 884: ↑700 и ↓184+516
Комментарии132

Проект Dronecode: свободная платформа для беспилотных аппаратов

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


Организация Linux Foundation взяла под своё крыло проект Dronecode, цель которого — создание свободной и открытой платформы для беспилотных летательных аппаратов (БПЛА).

Ключевым участником является компания 3D Robotics, которая предоставила в общественное пользование платформу APM Autopilot Suite для управления БПЛА (платформа раньше была известна как ArduPilot).

Кроме того, в Dronecode включили разработки ещё одного проекта PX4, который ведётся в техническом университете Цюриха.
Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии16

Почему существует так много Питонов?

Время на прочтение9 мин
Количество просмотров139K
Питон изумителен.

Удивительно, но это довольно неоднозначное заявление. Что я имею ввиду под “Питоном”? Может, абстрактный интерфейс Питона? Или CPython, распространенная реализация Питона (не путать с похожим по названию Cython)? Или я имею ввиду что-то совсем иное? Может, я косвенно ссылаюсь на Jython, или IronPython, или PyPy. Или может я отвлекся так сильно, что говорю о RPython или RubyPython (которые очень сильно отличаются).

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

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

В этом посте я начну с нуля и пройдусь по разным реализациям Питона, а закончу подробным введением в PyPy, за которым, по моему мнению, будущее языка.

Все начинается с понимания того, чем на самом деле является “Питон”.
Читать дальше →
Всего голосов 169: ↑161 и ↓8+153
Комментарии74

Использование Tsearch2 в PostgreSQL 8.3

Время на прочтение7 мин
Количество просмотров8.4K
Многим при реализации поиска по сайту приходится делать запрос к базе данных, использующий оператор LIKE или регулярные выражения.
С выходом PostgreSQL 8.3 модуль полнотекстового поиска tsearch2 был встроен в ядро системы (об этом ранее уже писалось на Хабре), и с его помощью можно реализовать поиск по базе данных, который будет более функционален. В принципе, в статье, указанной выше, приведен пример использования этого модуля, но хотелось бы поделиться опытом реализации полнотекстового поиска в реальном проекте.
читать дальше
Всего голосов 8: ↑7 и ↓1+6
Комментарии6

Перевод учебника по алгоритмам

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


Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
Читать дальше →
Всего голосов 323: ↑321 и ↓2+319
Комментарии109

Иной взгляд на оформление заказа в интернет-магазине

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


В странах СНГ не менее 75-80% заказов приходятся на cash-and-delivery (оплата заказа при доставке). Это отличие российского и западного потребителя легло в основу редизайна оформления заказа Сотмаркета еще в 2012 году. Тогда впервые в России интернет-магазин перестал требовать авторизации или регистрации клиента перед совершением покупки.

Фоновая регистрация и авторизация пользователей


Хотя авторизация на последнем шаге покупки и не несет никакой ценности для пользователя, это западное клише глубоко укоренилась в Рунете. Со средней частотой покупки (техники) раз в 9-10 месяцев люди зачастую не запоминают регистрационных данных: эл. почты, логина, пароля. Парадокс в том, что большинство интернет-магазинов с готовностью принимают заказы по телефону, но при этом создают искусственные препятствия при совершении покупке онлайн.

Это наблюдение легло в основу концепции фоновой регистрации и авторизации пользователей.
Читать дальше →
Всего голосов 93: ↑80 и ↓13+67
Комментарии83

Пять вещей, которые нужно учесть, продумывая архитектуру интернет‑магазина

Время на прочтение6 мин
Количество просмотров38K
Не секрет, что заказчики не всегда заранее знают обо всём, что им потребуется от разрабатываемого программного продукта. Многие из них также не могут отличить такие нововведения, которые можно легко добавить в уже готовую систему от таких, которые необходимо либо предусмотреть с самого начала, либо сразу готовиться к значительным правкам существующего кода, сложным миграциям данных, и, соответственно, значительным затратам времени.

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

Давайте рассмотрим, что стоит сразу же учесть при обсуждении проекта интернет-магазина.
Читать дальше →
Всего голосов 29: ↑17 и ↓12+5
Комментарии14

Signed Distance Field или как сделать из растра вектор

Время на прочтение12 мин
Количество просмотров60K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Всего голосов 115: ↑113 и ↓2+111
Комментарии61

LogLog — находим число уникальных элементов

Время на прочтение5 мин
Количество просмотров30K
Здравствуй, Хабр! Мы с тобой уже побаловались фильтрами Блума и MinHash. Сегодня разговор пойдёт о ещё одном вероятностном-рандомизированном алгоритме, который позволяет с минимальными затратами памяти определить примерное число уникальных элементов в больших объёмах данных.

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

Способ всем хорош, но требует относительно большой объём памяти для своей работы, ну а мы с вами, как известно, неугомонные гении эффективности. Зачем много, если можно мало — примерный размер словарного запаса упомянутого выше Шекспира, можно вычислить используя всего 128 байт памяти.

Кажется невозможным?
Всего голосов 81: ↑80 и ↓1+79
Комментарии30

Почему я ненавижу фреймворки

Время на прочтение4 мин
Количество просмотров70K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →
Всего голосов 363: ↑297 и ↓66+231
Комментарии239

Релиз KPHP и движков

Время на прочтение6 мин
Количество просмотров164K
Довольно часто, выступая на различных конференциях, мы делились желанием выпустить под открытой лицензией KittenPHP, согласно традиции, заложенной крупными IT-компаниями, такими как Google и Facebook.

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

В связи с этим под катом вас ждет более подробный рассказ о внутреннем устройстве ВКонтакте и тех инструментах, которые сегодня стали доступны opensource-сообществу.


Читать дальше →
Всего голосов 323: ↑311 и ↓12+299
Комментарии159

Как мы используем инфраструктуру обработки данных в Sports.ru и Tribuna.com?

Время на прочтение6 мин
Количество просмотров47K
Год назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.

У нас нет такого помещения с мониторами и славными бородатыми парнями. Эта картинка найдена в Интернете и сделана в NOC Wallmart. Парни могут себе позволить )
Читать дальше →
Всего голосов 101: ↑90 и ↓11+79
Комментарии62

Наглядно о потоке выполнения в Node.js

Время на прочтение3 мин
Количество просмотров12K
В комментариях к моему предыдущему топику об асинхронном программировании, коллбеках и использовании process.NextTick() в Node.js было задано немало вопросов о том, за счёт чего получается или может быть получена большая производительность при использовании неблокирующего кода. Постараюсь это наглядно показать :) Статья призвана в основном прояснить некоторые моменты работы Node.js (и libeio в его составе), которые на словах бывает трудно описать.

Пример обработки запросов сервером с блокирующим чтением:


В первую очередь прокомментирую полезность использования неблокирующего ввода/вывода. Как правило, использовать блокирующие операции в Node.js стоит лишь на этапе инициализации приложения, и то не всегда. Правильная обработка ошибок в любом случае потребует использования try/catch, так что код при использовании неблокирующих операций не будет сложнее, чем при использовании блокирующих операций.
Нужно лишь помнить, что случае, когда запросов неблокирующих операций может оказаться больше, чем потоков libeio. В этом случае новые запросы будут становиться в очередь и блокировать выполнение, однако для программиста это будет происходить прозрачно.
Преимущества неблокирующих операций и некоторые недостатки в картинках
Всего голосов 43: ↑38 и ↓5+33
Комментарии22

Фондовый рынок: Как устроены биржи и зачем они нужны?

Время на прочтение5 мин
Количество просмотров226K
image

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

Привычные нам биржи, это, по сути – вторичный рынок ценных бумаг, на котором перераспределяются права на долю собственности или долгов компаний эмитентов ценных бумаг. Сами компании, выходящие на биржу благодаря этому не получают никакого финансирования – когда говорят о том, что в результате падения акций компания потеряла столько то миллионов, то это не более чем красивые слова т.к. на самом деле никаких потерь, кроме имиджевых, здесь нет.
Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии89

Модуль nginx для борьбы с DDoS

Время на прочтение6 мин
Количество просмотров67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →
Всего голосов 142: ↑140 и ↓2+138
Комментарии43

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность