Pull to refresh
135
0
Руслан Ющенко @yruslan

User

Send message

О космической доброте и Челябинском метеорите

Reading time4 min
Views104K
Пока NASA находится в коматозе, самое время рассказать о том, как российская космическая доброта, одержала маленькую победу над российским космическим равнодушием. Сегодня снова поговорим о нашем спутнике Электро-Л, и о том как Хабр может творить маленькие чудеса.

Надеюсь, многие уже знают о российском метеорологическом спутнике Электро-Л, который третий год работает на геостационарной орбите. Я уже неоднократно рассказывал о нем, и демонстрировал результаты его трудов. Сегодня поделюсь еще одной позитивной новостью о спутнике.


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

Бывший директор по приватности Microsoft теперь доверяет только открытому ПО

Reading time2 min
Views49K
Каспар Боуден (Caspar Bowden) с 2002 по 2011 года занимал должность главного советника Microsoft по вопросам конфиденциальности — Chief Privacy Advisor — и отвечал за это направление более чем в 40 странах. Вероятно, ему приходилось сотрудничать с АНБ и другими государственными организациями, хотя Боуден говорит, что никогда не слышал о программе PRISM.

Тем не менее, многолетняя работа в Microsoft привела к тому, что сейчас бывший топ-менеджер корпорации принципиально использует только открытое ПО. Он говорит, что не может доверять программе до тех пор, пока не увидит её исходный код. Вдобавок, два года назад Боуден отказался от использования мобильного телефона.
Читать дальше →

Lock-free структуры данных. 1 — Начало

Reading time12 min
Views153K

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

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

Russian Code Cup 2013: разбираем задачи финала

Reading time20 min
Views28K


23 сентября 2013 года состоялся финал чемпионата по программированию Russian Code Cup 2013.

Первое место занял Петр Митричев (кстати, чемпион RCC 2011). Второй приз взял Геннадий Короткевич, третье — Дмитрий Джулгаков.

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

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

Linux pipes tips & tricks

Reading time8 min
Views195K

Pipe — что это?


Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN

Например:
$ grep -i “error” ./log | wc -l
43

grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.

Логика


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

Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.

Простой дебаг


Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726                   <– PID основного процесса
...
pipe([3,  4])                       <– системный вызов для создания конвеера
....
clone(....) = 13727                <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo",  ["/bin/echo",  "foo"],  [/* 61 vars */] 
.....
[pid 13726] clone(....) = 13728    <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",   
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать дальше →

Материалы конференции DEF CON 1993-2013

Reading time2 min
Views22K


DEF CON — крупнейшая в мире конференция хакеров, каждый год проводящаяся в Лас-Вегасе, штат Невада. Первый DEF CON прошёл в июне 1993 года.

Интересующимся информационной безопасностью, киберпанком, а также просто любым желающим — возможно, что вы упустили эту информацию. DEF CON выкладывают всю доступную информацию с самой первой конференции. Быстрые ссылки:

По ссылкам Вы сможете найти музыку, различное видео, записи выступлений, файлы с соревнований CTF, различный арт и многое, многое другое! Enjoy ;)
Читать дальше →

Фракталы в простых числах

Reading time3 min
Views156K


Я обнаружил этот фрактал, когда разглядывал интерференцию волн на поверхности речки. Волна движется к берегу, отражается и накладывается сама на себя. Есть ли порядок в тех узорах, которые создаются волнами? Попробуем найти его. Рассмотрим не всю волну, а только вектор ее движения. «Берега» сделаем гладкими, для простоты эксперимента.

Эксперимент можно провести на обычном листке в клеточку из школьной тетради.
Читать дальше →

Вам не нужен Hadoop — у вас просто нет столько данных

Reading time4 min
Views79K
Меня спросили: «Сколько у вас опыта с большими данными и Hadoop?» Я ответил, что часто использую Hadoop, но редко — с объёмами данных больше нескольких ТБ. Я новичок в больших данных — понимаю идеи, писал код, но не в серьёзных масштабах.

Следующий вопрос был: «Можете ли вы сделать простую группировку и сумму в Hadoop?» Разумеется, могу, и я попросил пример формата данных.

Они вручили мне флэш-диск со всеми 600 МБ данных (да, это были именно все данные, а не выборка). Не понимаю, почему, но им не понравилось моё решение, в котором был pandas.read_csv и не было Hadoop.
Читать дальше →

«Boost.Asio C++ Network Programming». Глава 2: Основы Boost.Asio. Часть 1

Reading time20 min
Views121K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming». Вторая глава получилась большая, поэтому разобью ее на две части. В этой части мы поговорим именно про основы Boost.Asio, а во второй части речь пойдет про асинхронное программирование.

Содержание:


В этой главе мы рассмотрим то, что вам обязательно знать, используя Boost.Asio. Мы углубимся в асинхронное программирование, которое намного сложнее, чем синхронное и гораздо более интересное.

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

Девять признаков сурового администратора Unix

Reading time4 min
Views131K
Я, к сожалению, не нашел русского перевода этого текста, хотя мне он показался крайне… просветляющим, что ли.

Признак 1: мы не используем sudo


Как CAPS LOCK — «круиз-контроль для крутотенюшки», так и sudo — «костыль для сомневающихся». Если нам нужно сделать что-то от имени root, мы используем su, а не фигню навроде sudo. Если какая-то из Unix-подобных операционных систем заставляет нас использовать sudo, то первое что мы делаем — sudo su и устанавливаем пароль для пользователя root, чтобы комфортно пользоваться su в дальнейшем. Постоянное использование sudo можно сравнить с плаванием c надувным кругом в животе — это безопаснее, да, но лишает необходимости обдумывания поступков.
Читать дальше →

Правительство США предало интернет. Нам надо вернуть его в свои руки

Reading time4 min
Views83K
imageОт переводчика: Брюс Шнайер, специалист мирового уровня по криптографии и информационной безопасности, а так же активный блогер и писатель, опубликовал эту статью в The Guardian после того, как стало известно, насколько плохо на самом деле обстоят дела с безопасностью криптографических технологий, и какую роль в их плачевном состоянии сыграло АНБ.

Неделю назад я перевёл статью Лионеля Дрико "Первая мировая гражданская война" из блога Рикарда Фальквинге, основателя Пиратской партии Швеции, статью эмоциональную и, возможно, слишком резкую. В отличие от пламенных пропагандистов Пиратской партии, Брюс Шнайер всегда был более сдержан и спокоен в оценках, как и подобает авторитетному инженеру и учёному. Но сейчас, похоже, терпение кончилось и у него.




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

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

Это не тот интернет, который нужен миру, или который был задуман его создателями. Мы должны вернуть его себе. И говоря «мы», я имею в виду сообщество инженеров и программистов.

Да, в первую очередь это политическая проблема, которая требует политического решения. Но в то же время это и техническая проблема, и есть несколько вещей, которые инженеры могут — и должны — сделать.
Читать дальше →

Криптопереписка для недоверчивых

Reading time8 min
Views51K
Осторожно: данный пост может вызывать непродолжительное обострение паранойи

Привет! Не верите ли вы в популярные продукты для защищённой переписки так, как не верю в них я? Например, в браузерные крипточаты с шифрованием на стороне клиента, или в p2p-криптомессенжеры?

В данном посте речь пойдет об организации защищённого общения между двумя собеседниками. Он адресован таким же недоверчивым людям как я, поэтому в нём не будет ни кода, написанного мной, ни изобретённых на коленке протоколов и алгоритмов. Будет использоваться только библиотека openssl и набор программ openssh.

image

Подробнее

27+ ресурсов для онлайн-обучения

Reading time5 min
Views971K

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

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

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

Шаблоны проектирования в адвенчурах: часть первая

Reading time7 min
Views39K
Предлагаю к прочтению очередную статью из блога Дэна Шулера о паттернах, которые можно использовать при разработке адвенчур. В свое время мне приходила в голову идея классификации загадок, но я лишь делал небольшой обзор, а не объемную статью. Естественно, я был удивлен и рад тому, что тема была кем-то поднята. Ниже приводится описание самих паттернов, следующим постом будут более развернутые примеры их использования, а в этот решил их не включать, по причине слишком объемного перевода. Также я добавил несколько поясняющих иллюстраций и несколько комментариев от себя.

«То, что мы называем хаосом — это всего лишь закономерности, которые мы не сумели распознать. То, что мы называем случайностями — это всего лишь закономерности, которые мы не в состоянии расшифровать.»
— Чак Паланик

Как насчет абстрактного подхода к разработке адвенчу? Или, хотя бы, для загадок в адвенчурах — это может оказаться полезным!

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

Заовнил, вонзился, запилил: словарь IT-шника

Reading time5 min
Views100K
Как часто друзья и родственники, не связанные с IT, просили вас рассказать, что нового на работе, а вы, увлекаясь, начинали говорить вроде на русском, но совершенно непонятном для них языке? Мы создали наш словарь терминов, в который вошли как внутренний сленг отдельных проектов, так и достояние широкой общественности. Надеемся, эта компиляция поможет айтишникам при необходимости выразить свои мысли на языке маглов, а неайтишникам – понять, что айтишники несут. Ну и просто повеселит всех. Ведь пятница!

Про код и изменения





Код добра – программный код, очевидно содержащий непоправимые улучшения.
Котятоемкий код — очень некрасивое техническое решение. Выражение обязано своим происхождением предположению, что каждый раз, когда программист пишет строчку некрасивого кода, бог убивает котенка.
Непоправимо улучшить – запилить годное, но не до конца проверенное изменение функционала. Синоним — необратимо улучшить.
Мясной коммит (ковровый коммит) – правка, судя по количеству и характеру изменений, наверняка содержащая непоправимые улучшения.
Тупач – очень срочная задача, результаты работ по которой должны попасть в бранч для выкатываемой версии. Образовано от to patch.
Минорный тупач – задача горит – сильнее некуда, но уж очень мелкая.
Глубокий ToDo Later — (отправить задачу в глубокий тудулейтер) статус задачи в таск-трекере отложена на неопределенный срок.
Подпереть костылями – реализовать функциональность за счет непредусмотренного временного решения.
Шрапнельные правки – огромное количество мелких правок по всему проекту, которые очень сложно оттестировать.
Скриптюня — очень классный скрипт, экономит кучу времени, практически лучший друг оператора.
Читать дальше →

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

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


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

Лекториум записал почти тысячу лекций за год

Reading time4 min
Views57K
Дорогой Хабр!



У нас для тебя небольшой подарок. Мы тут работали-работали и вот чего сделали.
Сняли и опубликовали почти тысячу лекций по IT и математике.

UPD2 Помогите, пожалуйста, оперативно решить вопрос насчёт организации торрентов на php.

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

Научный журнал по математике принял статью от генератора текстов Mathgen

Reading time2 min
Views60K
3 августа 2012 года вымышленный профессор Marcie Rathke из несуществующего Университета Южной Северной Дакоты отправил статью в научный журнал Advances in Pure Mathematics, один из многих журналов издательства Scientific Research Publishing.

Статья под названием «Независимые, отрицательные, канонические стрелы Тьюринга в уравнениях и задачах прикладной формальной PDE» (pdf) сопровождалась интригующей аннотацией: «Пусть ρ = A. Возможно ли расширить область изоморфизма? Мы показываем, что D′ является стохастически ортогональным и тривиально-аффинным соответствием. В [10], основным результатом стала конструкция множества Кардано, функции Эрдёша, Вейля, что может пролить важный свет на гипотезу Конвея-Д’Аламбера».

И аннотация, и весь текст, и список литературы в этой «научной статье» были сгенерированы программой Mathgen, которую написал математик Натан Элдридж (Nate Eldredge). Он с гордостью заявил, что статью в итоге приняли для публикации.
Читать дальше →

Заземлённые указатели

Reading time8 min
Views53K
pointres, gnd

Не так давно, один из сотрудников покинул наш коллектив и присоединился к компании, занимающийся разработкой программного обеспечения, связанного с встраиваемыми системами. Ничего особенного в этом нет, всегда и везде, кто-то уходит, а кто-то приходит. Всё зависит от количества плюшек, удобства и предпочтений. Интересно другое. Человек искренне переживает за состояние кода на новом месте работы, что в результате и вылилось в эту совместную статью. Тяжело, «просто программировать», когда знаешь, что такое статический анализ кода.
Читать дальше →

После подключения бесперебойника программа больше не работает

Reading time4 min
Views46K
После публикации статьи "Заземлённые указатели", к ней было сделано немало комментариев. В том числе было отмечено, что различные устройства часто поставляются с поразительно некачественным вспомогательным программным обеспечением. Иногда это весьма раздражает. Впрочем, я не собираюсь брюзжать. Я хочу рассказать забавную историю на эту тему.

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity