Как стать автором
Обновить
49
0
Владимир Игнатьев @Vlad911

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

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

Вычисление N-го знака числа Пи без вычисления предыдущих

Время на прочтение4 мин
Количество просмотров134K
С недавних пор существует элегантная формула для вычисления числа Пи, которую в 1995 году впервые опубликовали Дэвид Бэйли, Питер Борвайн и Саймон Плафф:
image

Казалось бы: что в ней особенного — формул для вычисления Пи великое множество: от школьного метода Монте-Карло до труднопостижимого интеграла Пуассона и формулы Франсуа Виета из позднего Средневековья. Но именно на эту формулу стоит обратить особое внимание — она позволяет вычислить n-й знак числа пи без нахождения предыдущих. За информацией о том, как это работает, а также за готовым кодом на языке C, вычисляющим 1 000 000-й знак, прошу под хабракат.
Читать дальше →
Всего голосов 118: ↑111 и ↓7+104
Комментарии95

π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 мин
Количество просмотров139K
Наверное, все вы знаете компанию Yota – оператора связи четвёртого поколения. Yota первой в России запустила LTE-сети и в настоящий момент предоставляет услуги мобильного интернета более чем в 20 городах России. А мы, Yota Devices, специализируемся на создании пользовательских устройств для работы в таких сетях. До недавних пор это были только модемы и роутеры, но некоторое время назад мы начали работу над совершенно новым продуктом: телефоном с двумя экранами – уже известном как YotaPhone или Йотафон. Более подробно о самом устройстве и особенностях его разработки мы планируем рассказывать здесь. Добро пожаловать в первый официальный Йотафон-пост на Хабре.

Читать дальше →
Всего голосов 149: ↑141 и ↓8+133
Комментарии129

Автоматизация тестирования Android-приложений с помощью Robotium и Spoon

Время на прочтение1 мин
Количество просмотров20K
В рамках внутренней активности с кодовым названием e-Lectures мы продолжаем выкладывать небольшие видео от наших мобильных разработчиков.

В этой лекции Степан stepango Гончаров расскажет об инструментах и методиках, применяемых в компании e-Legion для автоматизированного тестирования Android-приложений.


Презентация

В комментариях делитесь своими впечатлениями о докладе и рассказывайте, как вы тестируете Android-приложения.
Всего голосов 40: ↑40 и ↓0+40
Комментарии9

Визуализация аудио в HTML5

Время на прочтение7 мин
Количество просмотров20K
Наше практическое погружение описывает необычный сценарий — мы будем говорить не о том, что может HTML5, а о тех возможностях, которые на сегодня он еще не предоставляет и как эту неувязку можно обходить на практике.



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

Визуализация аудио, точнее принципиальный низкоуровневый доступ к аудио-информации, находится где-то между черновыми набросками и заметками на будущее.
Читать дальше →
Всего голосов 113: ↑110 и ↓3+107
Комментарии29

Илья Сегалович, 1964–2013

Время на прочтение1 мин
Количество просмотров60K
Добавлено в 20:22
Сегодня ночью семья Ильи сообщила, что он скончался. Потом поступила информация, что Илья подключен к аппарату жизнеобеспечения, но признаков мозговой активности нет. Мы ждем официальную информацию.



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

Последний раз он выступал перед нашими cтамбульскими ребятами в прошлый четверг. Он вышел и сказал: «Здравствуйте, меня зовут Илья». Все засмеялись, и он рассказал про поисковую платформу Острова.

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

Аркадий Волож

Всего голосов 274: ↑241 и ↓33+208
Комментарии36

Создаем резюме на LaTeX — как и зачем?

Время на прочтение5 мин
Количество просмотров91K
Многие документы я подготавливаю в LaTeX, а не в Word. И к моменту, когда я определяюсь со следующим местом работы, я подвожу итоги сделанного, и, уж чтобы не пропадало, фиксирую их в документах, составляющих каркас моего CV. По моему личному убеждению, тщательность в создании документов для будущего работодателя нужна не столько для коммуникаций с «эйчарами», сколько для осмысления дороги, по которой идешь, и направления, в котором решаешь двигаться дальше. Итак, почему я для резюме выбрал LaTeX?

Читать дальше →
Всего голосов 125: ↑99 и ↓26+73
Комментарии71

32 миллионный краудфандинг от Canonical на производство нового смартфона

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

22 июля, на Crowdfunding сайте Indiegogo была запущена новая кампания от Canonical на разработку нового мобильного телефона нового поколения. Смартфон будет поставляться с двумя операционными системами в режиме Dual Boot, недавно анонсированная операционная система от Canonical Ubuntu Touch и для тех кого новая операционная система чем то не устраивает, из коробки есть возможность использовать Android.


Читать дальше →
Всего голосов 90: ↑81 и ↓9+72
Комментарии97

Женщина-математик, которая разрабатывает алгоритмы для лифтов

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


55-летний американский математик Тереза Кристи (Theresa Christy) работает в компании Otis Elevator Co. и считается одним из лучших специалистов по вертикальному транспорту. Двадцать пять лет своей жизни она посвятила разработке и оптимизации алгоритмов для лифтов. Именно её привлекли во время недавней реконструкции Empire State Building стоимостью $550 млн. Тереза Кристи увеличила скорость лифтов на 20% до 6 м/c, так что они теперь проходят первые 80 этажей всего за 48 секунд.
Читать дальше →
Всего голосов 217: ↑205 и ↓12+193
Комментарии187

PopulateJS: don't repeat yourself в HTML-разметке

Время на прочтение4 мин
Количество просмотров8.5K
Распространение LESS/SCSS, а также ожидаемые движения в мире браузеров и стандартов, появление jQuery, наконец, вернуло фан в вёрстку HTML-страничек и во фронт-энд разработку.
Но представьте, что вам требуется сверстать раздел в интернет-магазине, раздел блога, или целую главную страницу Хабра? Да, мы делим страницу на отдельные блоки и делаем для них разметку, порождаем множество вложенных блоков, делаем для них CSS/LESS/SCSS. Безусловно, существуют такие замечательные средства как Zen-Coding, шаблонизатор jQuery Templates, а для построения сеток (grids) — всевозможные CSS-фреймворки, наподобие Bootstrap или же Zurb Foundation.

Но часто хочется посмотреть как же ведет себя вёрстка списков, когда в них не один только что свёрстанный элемент, а множество элементов. Наверняка, вы копипастили хотя бы раз в жизни разметку блока, чтобы заполнить страницу контентом, особенно когда под рукой нет запущенной любимой CMS или веб-фреймворка с шаблонизатором. А потом удаляли копипасту. Или что хуже, вы из тех, кто получает «в нарезку» HTML'ки от тех, кто верстает, и вам необходимо удалять эту копипасту самим.

Добро пожаловать под кат, если вам это хорошо знакомо
Всего голосов 25: ↑17 и ↓8+9
Комментарии18

Компьютер сгенерировал эффективные, но непонятные человеку алгоритмы ускорения TCP

Время на прочтение2 мин
Количество просмотров118K
TCP (Transmission Control Protocol) — основной протокол интернета. Одна из его главных задач — бороться с перегрузками в сети (network congestion), когда возникают заторы из пакетов. Регулирование осуществляется путём взаимной подстройки скорости отправки запросов, причём для этого существует множество хитрых методов. Например, в Linux используется алгоритм под названием TCP Cubic, а под Windows — Compound TCP. Кроме них, существуют ещё TCP Tahoe, Reno, NewReno, Vegas, FAST, BIC и др.

Специалисты из Массачусетского технологического института разработали программу Remy, которая методом проб и ошибок пыталась улучшить существующие алгоритмы подавления заторов TCP. Результат превзошёл все ожидания. Эффективность алгоритмов RemyCC превзошла и TCP Cubic, и Compound TCP, и остальных «конкурентов» в различных сетевых условиях. Проблема только в том, что учёные не совсем понимают, за счёт чего именно Remy удалось показать такой феноменальный результат.


Читать дальше →
Всего голосов 206: ↑174 и ↓32+142
Комментарии145

Безопасность случайных чисел в Python

Время на прочтение5 мин
Количество просмотров27K
Эта статья – вторая в ряде публикаций, посвященных уязвимостям генераторов псевдослучайных чисел (ГПСЧ).

В последнее время появился целый ряд публикаций, описывающих уязвимости ГПСЧ, начиная от самых основ ([1]) и заканчивая непосредственно уязвимостями в различных языках программирования и реализованных на их основе CMS и другого ПО ([2],[3],[4]).

Эти публикации популярны по той причине, что ГПСЧ – основа многих аспектов безопасности веб-приложений. Псевдослучайные числа/последовательности символов используются для обеспечения безопасности веб-приложений в:

  • генерации различных токенов (CSRF, токены сброса пароля и т.д.);
  • генерации случайных паролей;
  • генерации текста в CAPTCHA;
  • генерации идентификаторов сессий.

В прошлой статье мы, опираясь на исследования George Argyros и Aggelos Kiayias ([3]) научились предугадывать случайные числа в PHP на основе PHPSESSID и уменьшать различными способами энтропию псевдослучайных чисел.

Сейчас мы рассмотрим ГПСЧ в веб-приложениях, разработанных на языке Python.
Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии11

Как хвост виляет собакой. Азбука пропаганды

Время на прочтение4 мин
Количество просмотров210K
Чем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.

Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
— Почему собака виляет хвостом?
— Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.

Ещё 7 приёмов - под катом
Всего голосов 402: ↑352 и ↓50+302
Комментарии183

Эластичное избыточное S3-совместимое хранилище за 15 минут

Время на прочтение6 мин
Количество просмотров57K
S3 сегодня не удивишь наверное никого. Его используют и как бэкенд хранилище под веб сервисы, и как хранилище файлов в медиа индустрии, так и как архив для бэкапов.



Рассмотрим небольшой пример развертывания S3-совместимого хранилища на основе объектного хранилища Ceph
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии26

Что-то посложнее факториала

Время на прочтение14 мин
Количество просмотров28K
Давным-давно, когда трава была зеленее, а деревья выше, жил-был тролль, по имени Xenocephal. Жил он, в принципе, во многих местах, но мне повезло встретить его на одном форуме, где я, в то время, набирался ума-разума. Я уже не вспомню топика, в котором протекала беседа, но суть ее сводилась к тому, что Xenocephal пытался убедить всех окружающих, что Lisp (с его макросами) — всему голова, а C++, с его шаблонами, жалкое подобие левой руки. Также утверждалось, что наметапрограммировать в нем что-то сложнее набившего оскомину факториала не представляется возможным.
Читать дальше →
Всего голосов 65: ↑59 и ↓6+53
Комментарии47

Пишем плагин для IntelliJ IDEA, добавляем функциональности редактору кода

Время на прочтение5 мин
Количество просмотров30K
Начиная работать в IntelliJ IDEA, обнаружил отсутствие удобной комбинации клавиш, которой пользуюсь в Eclipse — Ctrl+Alt+Up. По этой комбинации выделенный блок текста или строка, копируется вверх с перемещением курсора в начало скопированного блока.
В Idea есть действие по умолчанию на Ctrl+D, которое копирует блок вниз (Ctrl+Alt+Down в Eclipse), но невозможно добавить аналогичное действие вверх. После гугления был задан вопрос в Q&A, оставшийся без ответа. Заведён issue на jetbrains. Все эти действия не дали ответа, поэтому решено было написать небольшой плагин для Idea.
Далее
Всего голосов 47: ↑42 и ↓5+37
Комментарии11

uptodate.js — библиотека для автообновления элементов времени

Время на прочтение1 мин
Количество просмотров18K
Как часто Вы используете конструкции вида «5 минут назад», «Полчаса назад» на вашем сайте? А что если пользователь открыл вкладку и забыл про нее на пару часов? «5 минут назад» явно теряет свою актуальность.
Именно для того чтобы исправить это досадное недоразумение служит uptodate.js

image

Читать дальше →
Всего голосов 87: ↑74 и ↓13+61
Комментарии42

Стартапер «С нуля», мой опыт, истории успехов

Время на прочтение19 мин
Количество просмотров84K
Свой текущий стартап я запустил в марте 2012. До этого я занимался предпринимательской деятельностью в вебе с 1999 года. Я начинал в г. Кривой Рог, Украина. Допотопную телефонную линию, на которой периодически висели беседы неизвестных мне людей, мог пробить только модем USRobotics. С его помощью можно было попасть в магический мир — лучик надежды посреди тотальной бесперспективности.

С тех пор мне удалось поэкспериментировать с запусками десятков трех проектов, которые, обрастая опытом, плавно перетекали друг в друга, превратившись в 6 прибыльных проектов.
Читать дальше →
Всего голосов 166: ↑123 и ↓43+80
Комментарии144

Настраиваем Windows для программирования OpenGL

Время на прочтение5 мин
Количество просмотров94K
Пост ориентирован на новичков. В нем не рассматривается настройка Visual Studio. Он научит вас настраивать некоторые текстовые редакторы на компиляцию OpenGL приложений, либо выполнять это из консоли вручную.

Недавно, наконец, вышло 8-е издание книги OpenGL programming guide, которую я ждал уже более чем 2 года. Чуть раньше я познакомился с замечательным текстовым редактором Sublime Text 2 и решил настроить его вместо установки тяжелой Visual Studio.

Итак, для начала нам нужен компилятор — я остановился на G++. Он является частью GCC, а его порт под Windows называется MinGW. С него и начнем:
Пошаговые инструкции
Всего голосов 42: ↑28 и ↓14+14
Комментарии25

Основы безопасности операционной системы Android. Native user space, ч.2

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

Вступление


Сегодня я продолжу рассматривать безопасность на уровне немного выше ядра. Во второй части мы рассмотрим, откуда появляются system.img, userdata.img и cache.img, а также как обеспечивается безопасность в Native user space.
Всем кому интересно, добро пожаловать!
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии4

Информация

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