Pull to refresh
77
0
Дмитрий Калугин-Балашов @rvncerr

User

Send message

«Hello World!» на C массивом int main[]

Reading time5 min
Views46K
Я хотел бы рассказать о том, как я писал реализацию «Hello, World!» на C. Для подогрева сразу покажу код. Кого интересует как до этого доходил я, добро пожаловать под кат.

#include <stdio.h>
const void *ptrprintf = printf;
#pragma section(".exre", execute, read)
__declspec(allocate(".exre")) int main[] =
{
    0x646C6890, 0x20680021, 0x68726F57,
    0x2C6F6C6C, 0x48000068, 0x24448D65,
    0x15FF5002, &ptrprintf, 0xC314C483
};

Реализация
Total votes 114: ↑108 and ↓6+102
Comments143

Векторная графика в LaTeX. Пакет PGF/TikZ

Reading time7 min
Views58K
Доброго времени суток. Давно собирался рассказать о возможностях векторной графики в LaTeX, предоставляемых низкоуровневым макропакетом PGF и его расширением TikZ, а выход предыдущей статьи о пакете Xy-pic для создания диаграмм и графов и появление свободного времени сделали возможным начать работу :-).

Мне в своё время понадобилось найти и изучить какое-то гибкое средство для создания качественных векторных изображений, потому что уже достали криво масштабированные, вставленные с ужасным расширением картинки растровых форматов, портящие всё впечатление от документа, да и увеличивающие его размер в два раза из-за одной большой картинки с прямоугольником и несколькими подписями к нему. Имеющиеся возможности встроенного окружения picture весьма скудны; пакет PStricks ориентирован на язык PostScript (не работает с pdflatex, который мне необходим), хотя и может кое-что, чего не может PGF; система MetaPost, пожалуй, является наиболее мощной из всех в этой области, но функционирует с использованием отдельного интерпретатора со всеми вытекающими из этого последствиями. Таким образом, выбор пал на PGF/TikZ.


Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments17

Эра NoSQL позади

Reading time5 min
Views55K

Новый тренд на HighLoad++ — множество докладов об использовании оперативной памяти. Слово Константину Осипову, разработчику платформы Tarantool, автору доклада «Что особенного в СУБД для данных в оперативной памяти».

Ты отвечал в MySQL за производительность, как так получилось, что ты решил разрабатывать свою СУБД?
В MySQL я руководил одной из команд разработки сервера, за производительность там отвечали все.

MySQL по многим параметрам был работой мечты, но, к сожалению после того, как мы стали частью Oracle, многое изменилось.

Несколько моих коллег ушли в MariaDB, кто-то основал свою компанию (SeveralNines, FromDual). Я никогда не чувствовал себя «недогруженным», а с уходом многих ключевых разработчиков работа вообще превратилась в марафон по передаче знаний. Сопротивление поглощению, желание начать всё с чистого листа, бунт против медленного принятия решений большой компанией, нежелание по разным причинам уезжать в США, в конце концов, хорошее предложение от Mail.Ru, которому к этому моменту уже было около года — и я ушёл.

Если бы знал, куда ухожу, ещё десять раз подумал бы. Иногда вообще не было веры, что удастся сделать что-то полезное, чем будут пользоваться за пределами Mail.Ru, да и сейчас Tarantool очень далёк пока от «идеальной СУБД».
Читать дальше →
Total votes 48: ↑35 and ↓13+22
Comments30

Как работает реляционная БД

Reading time51 min
Views546K
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3+226
Comments134

Кратко об идеальном 7-и портовом USB 3.0 хабе ORICO

Reading time2 min
Views227K
Давно ко мне не попадало железо, настолько соответствующее моим представлениям об идеале, что об этом хотелось написать на хабр. Речь пойдет о 7-и портовом USB 3.0 хабе ORICO. Чуть ранее я писал, что получается когда китайцы по привычке делают копии — сегодня мы увидим, что может получится, когда китайцы делают оригинальный продукт. И то, как хорошо все получилось — удивляет и немного пугает (в том плане, что бизнес-модель «разрабатываем на западе — делаем в Китае» может подойти к концу). Забегая вперед, фотография:

Подробности и внутренности...
Total votes 115: ↑111 and ↓4+107
Comments142

Интересно и познавательно: наблюдаем вехи истории космонавтики с Orbiter

Reading time10 min
Views120K


Животные и люди умеют обучаться, играя. В самом деле, что может быть лучше — и интересно, и познавательно. Компьютерные игры не являются исключением, с некоторыми из них можно учиться. Я очень удивился, когда, поискав по Хабру, узнал, что космический симулятор Orbiter всего пару раз мельком упоминался здесь. Бесплатный космический симулятор с открытой для аддонов архитектурой и честной ньютоновской физикой оказался незаслуженно обойдённым вниманием. Наверное, из-за своей требовательности к начинающему игроку.
Как мы будем с этим бороться, и чему учиться?
Total votes 85: ↑84 and ↓1+83
Comments23

Eaglecam: видео полета орла «из первых рук»

Reading time1 min
Views90K
image

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

Читать дальше →
Total votes 84: ↑73 and ↓11+62
Comments75

Что делать, если «кина не будет» или как обойти блокировку сайта провайдером

Reading time6 min
Views1.5M
Настал мой законный выходной и, выбрав время для просмотра фильма (люблю я старую классику), я занялся его поиском. Зайшел на один из привычных для меня сайтов, и наткнулся на такую вот блокировку данного ресурса.

блокировка

«Вот те раз!» — подумал я. Ни в одном реестре запрещенных сайтов данный ресурс не присутствовал и, с чего билайн его заблокировал — непонятно. Естественно после таких вот «заявочек» в голову полезли страшные мысли: «а что если завтра любимого „кина“ не будет!». Данные мысли тут же подвигли меня начать искать способы борьбы с данной ситуацией, и написать, для тех кому будет интересно, маленький обзор нескольких решений по обходу блокировки сайтов. (под катом скрины)
Читать дальше →
Total votes 120: ↑96 and ↓24+72
Comments87

Тайные приемчики рекрутеров: ЧТО мы говорим на собеседовании и ЧТО на основании этого о нас узнает работодатель?

Reading time4 min
Views27K
Приветствую уважаемое хабрасообщество!

Так как рекрутинг – это не только моя работа, но и увлечение, хочу поделиться с вами интересной, по моему мнению, информацией. Речь пойдет, простите за тавтологию, о самой речи – словах, которые мы с вами подбираем, выражая свои мысли в беседе с менеджером по персоналу.
Казалось бы – а что тут подбирать? Называем вещи своими именами и все. Работа скучная – «неинтересная», руководство непрофессиональное – «дилетанты», зарплата небольшая – «смешная», каждый сам за себя – «коллектив неслаженный».
Но не все так просто как кажется на первый взгляд.
Читать дальше →
Total votes 114: ↑92 and ↓22+70
Comments118

Как начать летать самостоятельно, хоть на чем-то, с мотором

Reading time10 min
Views235K
Вторая статья для желающих начать летать самостоятельно.
Сегодня мы будем рассматривать варианты сжигания дохлых мамонтов (бензина) для приобретения кинетической энергии.

Парящий полет (первая статья)
  • Параплан
  • Дельтаплан
  • Планер

Моторный полет (под катом)
  • Самолет
  • Мотодельтаплан (дельталет)
  • Паратрайк (аэрошют)
  • Парамотор (карлсон, мотопараплан)
  • Мотопланер



Первый раз за штурвал самолета я сел в 18 лет. До первого самостоятельного вылета налетал 25 часов и совершил около 100 взлетов и посадок. Сейчас мой суммарный налет на всем, что летает — порядка 400 часов. Это жутко мало, чтобы считать себя опытным пилотом, но достаточно, чтобы подсесть на “летную иглу”. Приглашаю и вас стать авиазависимыми.
Запустить двигатель
Total votes 142: ↑133 and ↓9+124
Comments176

Практические советы по верстке бланков заявлений в ЛаТеХе

Reading time3 min
Views27K
Несколько полезных приемов для любителей LaTeX'а, желающих сверстать бланк какого-нибудь заявления. Будем для примера верстать форму претензии к Почте России (её «официальный» вариант можно, если повезёт, скачать с сайта Почты России). Всю верстку от первой и до последней буквы объяснять не будем, предполагая, что читатель с основами ЛаТеХа знаком. Рассмотрим специфические рецепты верстки «линеек» где нужно вписать пропущенные слова, чекбоксов с метками, подписей мелким шрифтом снизу текста и линий разной толщины и прерывистости.

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

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments14

«Boost.Asio C++ Network Programming». Глава 3: Эхо сервер/клиент

Reading time9 min
Views68K
Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:


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



Здесь будет приводиться не весь код целиком, а только его части, весь код можно посмотреть по ссылке в конце статьи.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments1

C++ User Group по-русски

Reading time3 min
Views16K
Всем привет!
Не так давно я писал о своей поездке на конференцию Meeting C++ в Дюссельдорфе. В процессе обсуждения поездки с разными людьми, в том числе на Хабре я понял, что не только мне не хватает живого общения с коллегами. Есть много встреч, конференций и семинаров, посвящённых разработке ПО и разным её аспектам. Но, в свете появления нового стандарта поменялось многое и обсудить это хочется не только в интернете, но и лично. То есть хочется поговорить именно о C++ и связанных вопросах: новый стандарт, тренды, boost, разные полезные либы, решения и прочее. Так за обсуждениями я как-то незаметно и внезапно для самого себя решил организовать C++ User Group в России.

Под катом кратко что из этого пока вышло.
Читать дальше →
Total votes 62: ↑59 and ↓3+56
Comments23

Некоторые наблюдения и советы по использованию Bittorrent Sync для синхронизации резервных копий

Reading time4 min
Views41K
Как только выпустили Bittorrent Sync, я сразу его стал использовать для резервирования файлов на домашнем компьютере, настроив штатным образом через web-интерфейс. Программа показала себя с наилучшей стороны, и у меня появилось желание использовать её также для копирования резервных копий на серверах…

Я настроил и использую уже около месяца Bitorent Sync в продакшене и готов поделиться некоторыми наблюдениями.
Подробности
Total votes 36: ↑34 and ↓2+32
Comments31

Задачи на собеседованиях в Яндексе

Reading time15 min
Views359K
Открытые вакансии на должность разработчика в Яндексе есть всегда. Компания развивается, и хороших программистов не хватает постоянно. И претендентов на эти должности тоже хоть отбавляй. Главная сложность – отобрать действительно подходящих кандидатов. И в этом плане Яндекс мало чем отличается от большинства крупных IT-компаний. Так что базовые принципы, описываемые в этой статье, могут быть применимы не только к Яндексу.

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

image
Читать дальше →
Total votes 221: ↑178 and ↓43+135
Comments329

Майнинг и как он работает: матчасть

Reading time6 min
Views561K

Привет, %username%!
Я расскажу и покажу как работает основа генерации денег в криптовалютах — майнинг. Как создается первый блок, новые блоки и как появляются деньги из ниоткуда.
Чтобы было проще понять, мы напишем свой импровизированный майнер для импровизированной криптовалюты HabraCoin.
Читать дальше →
Total votes 274: ↑252 and ↓22+230
Comments482

Microsoft начали охоту за ZeroAccess

Reading time2 min
Views23K
Компания заручившись поддержкой ФБР и Europol начала операцию по выведению из строя одного из самых крупных на сегодняшний день ботнетов, который приносил злоумышленникам большие деньги. Вредоносным кодом ZeroAccess (aka ZAccess, Sirefef) скомпрометировано более 2 млн. компьютеров и он используется злоумышленниками для выполнения различных мошеннических операций и извлечения материальной выгоды, один из самых известных компонентов — кликер, который позволяет генерировать переходы по рекламным ссылкам на компьютерах ничего не подозревающих пользователей (с предполагаемой ежемесячной прибылью киберпреступников $2,7 млн).



Про одну из последних модификаций этой вредоносной программы мы писали в блоге. Современная версия ZAccess использует скрытное заражение системного файла services.exe (aka SCM). Причем вредоносный код имеет в своем арсенале и компоненты для 64-битной версии Windows. Подобный способ обеспечения своего выживания является достаточно эффективным, при этом нужно отметить, что авторы этого вредоносного ПО подходили к его разработке весьма серьезно, так предыдущие версии содержали специальный сложно обнаруживаемый руткит, который глубоко скрывал компоненты вредоносной программы. В прошлом году стало очевидно, что злоумышленники переключились на разработку обновленной версии, которая использует модификацию services.exe. Очевидно это связано с все большим доминированием 64-битных ОС и невозможностью применения 32-битных руткит-технологий на этих ОС ввиду очевидных ограничений.

Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments15

Станция УВБ-76 подала четвёртый сигнал за 30 лет

Reading time1 min
Views160K
Коротковолновая радиостанция УВБ-76 расположена в деревне Поварово в 40 км к северо-западу от Москвы (фото со спутника). Среди радиолюбителей всего мира известна как «жужжалка» (The Buzzer). Начиная с 1982 года она круглосуточно передаёт в эфир непрерывный шум на частоте 4625 кГц (линк на онлайн-трансляцию). Жужжащий звук длится 0,8 секунды, прерывается на 1-1,3 секунды и повторяется 21-34 раза в минуту. Назначение станции неизвестно.

За все 28 лет вещания было зарегистрировано всего три случая, когда в эфир вышло голосовое сообщение. Каждый раз это было некое зашифрованное послание на русском языке. И вот 23 августа 2010 года это случилось снова.

Как сообщают западные радиолюбители, примерно в 17:32 GMT станция УВБ-76 передала следующее сообщение: «УВБ-76, УВБ-76 — 93 882 НАИМИНА 74 14 35 74 — 9 3 8 8 2 Николай, Анна, Иван, Михаил, Иван, Николай, Анна, 7, 4, 1, 4, 3, 5, 7, 4» (mp3).
Читать дальше →
Total votes 243: ↑230 and ↓13+217
Comments374

Отладка самолета? Это очень просто!

Reading time13 min
Views119K
Некоторое время назад мне пришлось очень плотно поучаствовать в приемо-сдаточных испытаниях самолета. Эти испытания были основной частью процесса передачи свежеизготовленного, самого (по моему мнению) технически продвинутого на настоящий момент времени бизнес-джета от производителя заказчику. Казалось бы, причем здесь тестирование, разработка, да и вообще тематика Хабра? Желающие узнать это могут перевернуть страницу и прочитать довольно много текста, причем вообще без картинок.
Читать дальше →
Total votes 262: ↑259 and ↓3+256
Comments150

Реализация мечты, или Радио 86РК — 25 лет спустя

Reading time13 min
Views184K
В уже далеком 1986 году у меня появилась мечта. Вернее, МЕЧТА – построить свою собственную микро-ЭВМ «Радио-86РК», схема которой была опубликована в журнале «Радио» (и который уже неоднократно упоминался на Хабре, например, здесь — habrahabr.ru/post/172405 ).
Читать дальше →
Total votes 249: ↑249 and ↓0+249
Comments88

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity