Search
Write a publication
Pull to refresh
47
0
Boris Nagaev @starius

User

Send message

Как устроена биржевая торговля в России

Reading time5 min
Views98K
Мы довольно часто слышим новости о том, что происходит на зарубежных биржах. Лондонская биржа и NASDAQ, кажется, знакомы даже далеким от биржевой торговли пользователям Сети. Зачастую в этих новостях рассказывается об успехах зарубежных финансистов, в частности, в области технологий – рекордах скорости транзакций, производительности, или, наоборот, сбоях оборудования или программного обеспечения. В результате создается впечатление, что зарубежные площадки самые технологичные в мире.

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

Ускоряем Nginx за 5 минут

Reading time5 min
Views298K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

Nginx на стероидах — расширяем функционал с помощью LUA

Reading time9 min
Views54K
Для обеспечения работы всех наших внешних продуктов мы используем популярный nginx. Это быстро и это надежно. Проблем с ним почти нет. Наши продукты также постоянно развиваются, появляются новые сервисы, добавляется новый функционал, расширяется старый. Аудитория и нагрузка только растет. Сейчас мы хотим рассказать о том, как мы ускорили разработку, неплохо увеличили производительность и упростили добавление в наши сервисы этого нового функционала, при этом сохранив доступность и отказоустойчивость затронутых приложений. Речь пойдет о концепции “nginx as web application”.
А именно, о сторонних модулях (в основном LUA), позволяющих делать совершенно магические вещи быстро и надежно.
image
Читать дальше →

RMI средствами С++ и boost.preprocessor

Reading time11 min
Views7.3K
Это моя первая публикация на сем ресурсе, посему, прошу отнестись с пониманием к допущенным мною ошибкам.

RMI — весьма банальная задача для ЯП, поддерживающих интроспекцию. Но, С++, к сожалению, к ним не относится.

В данной публикации я хочу продемонстрировать возможность реализации весьма юзабильной RMI средствами С++ препроцессора.

Постановка задачи


1. Предоставить максимально простой синтаксис, чтоб невозможно было допустить ошибку.
2. Идентификация(связывание) процедур должна быть скрыта от пользователя для того, чтоб невозможно было допустить ошибку.
3. Синтаксис не должен накладывать ограничения на используемые С++ типы.
4. Должна присутствовать возможность версионности процедур, но, так, чтоб не ломалась совместимость с уже работающими клиентами.
Читать дальше →

Переключения между провайдерами интернета на Debian 7

Reading time7 min
Views19K
В последних дистрибутивах Linux довольно много всяких полезных плюшек в папке /etc, однако мало кто ими грамотно пользуется. Здесь я расскажу про часть из них применительно к последней стабильной версии Debian, и приведу пример реализации переключения на резервный канал.
Все попытки найти банальную автопереключалку приводили к связке из 1-2 скриптов, написанным «под себя» и мало поддающимися настройке. К dhcp не был привязан ни один из них, а значит любые манипуляции на стороне провайдера требовали вмешательство в настройки. Сам писал такие в свое время, но вот теперь решил на новой системе оформить это красиво – так, как это задумывали разработчики Debian, а именно – меняем файлы конфигурации, добавляем свои скрипты и не трогаем те, что нам предоставила система.
Подробности

События, которые повлияли на ваше развитие в детстве

Reading time3 min
Views142K


UPD: игра вышла.

Привет!

Тут такая история. Я заметил, что в какой-то момент стал отмечать для себя важные вещи для развития ребёнка. Например, у меня в детстве был сначала модульный конструктор с мотором, колёсами, батарейками и так далее, а потом – модульный же радиоконструктор. Эти два предмета очень сильно повлияли на то, чем я потом интересовался в будущем.

Ещё пример – в детстве надо обязательно сходить в политехнический и археологический музеи Москвы. Или, например, запомнились такие штуки: первая хорошая НФ, подаренная в 8 лет; дед, научивший меня чертёжному почерку за 15 минут; шахматы каждые выходные; огромная коробка Лего и так далее. И таких событий – тысячи.

У меня просьба. Давайте накидаем важные и интересные вещи, которые можно и нужно сделать с ребёнком до примерно 10 лет. Наверняка ведь у вас есть такие «чекпоинты», которые запомнились.
Читать дальше →

Карта Mesh Wi-Fi: А давайте построим свою Mesh сеть в России и СНГ

Reading time3 min
Views68K


В течение последних месяцев, на хабре появлялись различные статьи с описание Wi-Fi Mesh сетей, которые строились на ПО cjdns.

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

Таким образом появился сервис о котором и хотелось бы рассказать, он поможет желающим организоваться и построить Mesh сеть.
Читать дальше →

Разархивирование поэзии в замедленном режиме (gzip)

Reading time1 min
Views9.9K
Любительница поэзии и программист Джулия Эванс написала красивую программку gzip.jl, которая показывает, как gzip осуществляет декомпрессию текста, сжатого с помощью алгоритма LZ77.

(лучше смотреть без звука)


LZ77 использует словарный подход и кодирует совпадения текста. При повторном упоминании одинакового фрагмента алгоритм использует код предыдущего упоминания (красным цветом).

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

3G интернет в удаленности от базовой станции с помощью тарелки и кофейной банки

Reading time5 min
Views130K

Всем жителям Хабра — привет!




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

Постановка задачи

Интернет – штука полезная и нужная, с этим, думаю, поспорить сложно. И если проблем в городе с интернетом нет, то в деревне, где мне часто приходиться по семейным обстоятельствам бывать, есть определенные проблемы. Есть частный деревянный дом а-ля «хата» (место действия: РБ), из интернета в моей окрестности доступ предоставляют 3 оператора, но максимум – это лишь технология EDGE. До двух ближайших базовых станций (БС) около 3.5 и 7 км. Между домом и БС лес, но не вплотную. Хватило бы и EDGE, но загрузка этих станций от других соседних деревень, судя по скорости, такая, что можно «прятаться в картошку».
Вариант покупать готовое решение отпал сразу из соображений спортивного интереса.
Вдохновившись на одном из форумов удачным опытом парней, где использовалась спутниковая тарелка (она же «офсетная зеркальная антенна») и сам 3G модем в фокусе, решил что-то подобное смоделировать да скрутить.
Сразу скажу, что антенну с модемом хотелось закинуть на чердак, дабы не портила внешний вид дома (об этом ниже).

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

Организация памяти в текстовом редакторе

Reading time6 min
Views36K
Каждый, кто пытался запрограммировать хотя бы простейший редактор текста на низком уровне, сталкивался с задачей организации памяти для хранения редактируемого текста. Структура данных для хранения текста должна удовлетворять следующим требованиям:
  1. иметь малые накладные расходы по памяти. Большая часть доступной памяти должна использоваться для хранения текста, а не служебной информации;
  2. допускать эффективную вставку и удаление в произвольном месте текста.

Удовлетворить эти требования одновременно непросто. Если рассмотреть широкоизвестные структуры данных, такие как массивы, списки, деревья, стеки, очереди, кольцевые буфера — то такой структуры, которая бы позволила эффективно выполнить оба требования, не встречается. В случае массива имеем незначительные накладные расходы по памяти, но операция вставки имеет сложность O(n), где n — размер редактируемого текста. В случае списка сложность вставки и удаления составляет O(1), однако накладные расходы по памяти в несколько раз превышают размер собственно текста. Деревья, кучи, кольцевые буфера, ассоциативные массивы и прочие структуры и вовсе неприменимы для хранения текста в редакторе.

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

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

Несмотря на то, что эта структура данных была открыта давно и использовалась в текстовых редакторах на старых ЭВМ в 8-битную эпоху, это тайное знание предков было в значительной мере утеряно и в современных редакторах встречается редко. Попробуйте открыть файл, состоящий из одной строки мегабайт на 10, в Notepad или Far. Вставка и удаление символов будет длиться секундами.
Читать дальше →

Файл, который нужно закоммитить перед уходом с работы

Reading time2 min
Views113K
Немножко пятничного настроения в субботу. Я думаю, все видели этот код:

image

Но Aras Pranckevičius пошел еще дальше. Как написать код, который не так просто обнаружить?
И если вначале идут простые примеры, то дальше начинается…
Осторожно, чистое зло

Померяемся языками, чей длиннее?

Reading time3 min
Views61K
Всем привет!

Мы в Alconost занимаемся локализацией программного обеспечения и игр на 60+ языков и часто видим, как разработчики сталкиваются с одной и той же проблемой: в разных языках для передачи одной и той же информации требуется разное количество знаков. В итоге в интерфейсе пользователя некоторые надписи “не влезают” и их приходится сокращать, либо изменять размеры контролов.

Известно, что, к примеру, немецкий язык “длиннее” английского, а китайский — “короче”. Однако вряд ли у кого-то получится сходу точно сказать на сколько один язык более “знакоёмкий”, чем другой.

Нам стало интересно, мы собрали статистику и получили вот такую табличку с коэффициентами для примерно двадцати языковых пар — под катом.


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

Простыми словами о преобразовании Фурье

Level of difficultyMedium
Reading time14 min
Views1.1M
Я полагаю что все в общих чертах знают о существовании такого замечательного математического инструмента как преобразование Фурье. Однако в ВУЗах его почему-то преподают настолько плохо, что понимают как это преобразование работает и как им правильно следует пользоваться сравнительно немного людей. Между тем математика данного преобразования на удивление красива, проста и изящна. Я предлагаю всем желающим узнать немного больше о преобразовании Фурье и близкой ему теме того как аналоговые сигналы удается эффективно превращать для вычислительной обработки в цифровые.

image (с) xkcd

Без использования сложных формул и матлаба я постараюсь ответить на следующие вопросы:
  • FT, DTF, DTFT — в чем отличия и как совершенно разные казалось бы формулы дают столь концептуально похожие результаты?
  • Как правильно интерпретировать результаты быстрого преобразования Фурье (FFT)
  • Что делать если дан сигнал из 179 сэмплов а БПФ требует на вход последовательность по длине равную степени двойки
  • Почему при попытке получить с помощью Фурье спектр синусоиды вместо ожидаемой одиночной “палки” на графике вылезает странная загогулина и что с этим можно сделать
  • Зачем перед АЦП и после ЦАП ставят аналоговые фильтры
  • Можно ли оцифровать АЦП сигнал с частотой выше половины частоты дискретизации (школьный ответ неверен, правильный ответ — можно)
  • Как по цифровой последовательности восстанавливают исходный сигнал


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

Итак, приступим?

Как конкретно освободить интернет

Reading time5 min
Views39K
В продолжении статей "Сноуден пролил свет на ситуацию со взломом криптографии. Все плохо" и "Правительство США предало интернет. Нам надо вернуть его в свои руки" — о том, что конкретно нужно сделать для ограничения беспредела спецслужб. Да, Брюс Шнайер уже дал свои рекомендации, но он дал их обычным людям — читателям The Guardian, далёким от ИТ; я же хочу обратиться к специалистам, которые создают и выбирают интернет-технологии.

Но для начала давайте определимся с целями. Основная задача силовых ведомств — всё-таки ловить убийц, наркобаронов, террористов и прочих там педофилов. Задача это нужная и необходимая. Весь вопрос в методах, которыми она решается. Пока это методы сыска — определяется подозреваемый, на него получается ордер в суде, и уже по этому ордеру копы получают доступ к прослушке телефонов, выпискам с банковских счетов, электронной почте — всё нормально. Да, это ограничение прав подозреваемого, вина которого еще не доказана, но это неизбежное зло, иначе копы просто не смогут делать свою работу. Не будет ничего плохого, если сыщик сможет отправить запрос судье в электронном виде со своего смартфона, тот подпишет электронный ордер своей ЭЦП, и на основании этого электронного ордера соответствующие компании отправят копу необходимую информацию в электронном виде назад на служебный смартфон. XXI век в конце концов.
Но увы, копам всегда и везде было проще работать методами жандармов, то есть не думать, а тотально запрещать и не пущать. Так, например, из-за одного подрывника-неудачника, пытавшегося собрать бомбу на борту самолёта и получившего только ожог собственных гениталий, во всём мире теперь нельзя проносить на борт жидкости. Из-за одного придурка с кислотой и пары идиотов с генеральскими погонами теперь ежегодно страдают миллиарды.

Сегодня все сферы жизни так или иначе уходят в интернет, а спецслужбы во всём мире почему-то решили, что теперь они могут получить доступ ко всей передаваемой в интернете информации без всяких ордеров и прочих условностей закона. Но интернет — это техническая штука, и мы, создающие интернет инженеры, можем и обязаны остановить спецслужбы. Нравится нам или нет, но государства будут контролировать магистральные линии связи и крупнейших провайдеров ИТ-услуг, подслушивать и внедрять закладки. Но мы можем и должны создать такие технологические условия, в которых будет технически невозможна автоматическая тотальная слежка государства за гражданами. Я надеюсь, уже никто на планете не верит в честность помыслов главарей спецслужб или в то, что они смогут сами себя ограничить. Поэтому, если мы не справимся и не ограничим их своими силами, уже очень скоро мир Оруэлла покажется недостижимой утопией, идеалом общественного устройства.
За конкретными злодеями — пусть охотятся. Пусть получают ордера на прослушку, пусть взламывают компьютеры негодяев — это всё штучные, ручные методы сыска. А вот тотальный контроль без какой-либо отчетности перед обществом необходимо сделать невозможным.
Читать дальше →

Как не нужно освобождать интернет

Reading time3 min
Views62K
Добрый день, уважаемые хабровчане. Проснувшись сегодня в четырнадцать часов утра, я обнаружил на хабре две статьи: Правительство США предало интернет. Нам надо вернуть его в свои руки и Как конкретно освободить интернет. Скажу прямо, их посыл меня удивил до такой степени, что я решил создать этот пост, даже не допив утренний чай.

Я чувствую себя весьма неудобно, оказавшись вынужденным спорить с Брюсом Шнайером. Но есть мнение, что он, несмотря на свой огромный авторитет, сейчас критически не прав.

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

Первые несколько миллисекунд HTTPS соединения

Reading time10 min
Views172K
После нескольких часов чтения обзоров, Боб с нетерпением нажал на кнопку перехода к оформлению заказа на галлон цельного молока, и…
Воу, что только что произошло?


Интересно? Прошу под кат

Почему с нормальным распределением не все нормально

Reading time7 min
Views53K
image

Нормальное распределение (распределение Гаусса) всегда играло центральную роль в теории вероятностей, так как возникает очень часто как результат воздействия множества факторов, вклад любого одного из которых ничтожен. Центральная предельная теорема (ЦПТ), находит применение фактически во всех прикладных науках, делая аппарат статистики универсальным. Однако, весьма часты случаи, когда ее применение невозможно, а исследователи пытаются всячески организовать подгонку результатов под гауссиану. Вот про альтернативный подход в случае влияния на распределение множества факторов я сейчас и расскажу.
Читать дальше →

локальная компиляция без лагов

Reading time2 min
Views8.4K
Abstract: использование cgroups для ограничения прожорливости компилятора по процессору и диску.

Лирика


Дано:
программист 1шт,
ноутбук с ноутбучным диском на 5200 rpm — 1шт,
исходных файлов на хаскеле 300 шт
Файлы coffee-script (будущий JS) — 300 шт
время компиляции — 40 минут.

Задача: компилировать в бэкграунде не ставя всю систему в состояние «ад и погибель». Можно даже ценой увеличения времени сборки до 50-60 минут.

Решение?

cgroups

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

Об одной изящной конструкции

Level of difficultyMedium
Reading time7 min
Views77K

Введение


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

Распечатать в порядке возрастания все несократимые дроби, знаменатель которых не превосходит заданного числа $n, \, n \le 100$.

Когда я прочитал условие задачи до конца, она не показалась мне сложной (она таковой и не является). Первое, что пришло мне в голову — это просто перебрать все знаменатели от $2$ до $n$ и для каждого знаменателя перебрать числители от $1$ до знаменателя, при условии, что числитель и знаменатель взаимно просты. Ну, а затем остается отсортировать их по возрастанию.

Такое решение верное, и задача прошла все назначенные ей тесты. Однако мой преподаватель сказал, что задачу можно решить намного красивее. Так я и познакомился с замечательной конструкцией: деревом Штерна — Броко.
Читать дальше →

«И не надо спать с сисадмином»

Reading time1 min
Views1.2K
«Делайте сайты, девочки. Одноразовые веб-страницы. Просто, быстро, без регистрации. И не надо спать с сисадмином!» — вот какой призыв, оказывается, вывешен в «Сайтах дня» на Rambler.

Он заставил меня задуматься о распространённости самого явления: на кого вообще ориентирована эта замануха, много ли на свете вообще таких девочек, которые, с одной стороны, спят с сисадмином своего сайта, а c другой стороны, делают это не из приязни, а просто вот такая плата за хостинг?

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

А вам какие случаи попадались?

Information

Rating
Does not participate
Registered
Activity