Как стать автором
Обновить
0
0
Александр @Unlogic

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

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

Шаблоны ЕСКД и ГОСТ 7.32 для Lyx 1.6.x

Время на прочтение3 мин
Количество просмотров23K
Уже более полугода я пользуюсь текстовым процессором Lyx. Встроенных шаблонов с лихвой хватало, чтобы писать конспекты лекций, готовиться к семинарам и делать несложные отчеты к лабораторным работам. Но в прошлом семестре пришлось делать два курсовых проекта в соответствии с требования ЕСКД. Я начал работу в Lyx, но без специальных шаблонов документов, мои отчеты в редакторе выглядели так:

Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии22

Будни разработки облака, часть первая

Время на прочтение6 мин
Количество просмотров1.7K
Серию официальных постов в блоге компании про то, как работать с облаком я ещё продолжу, но параллельно мне хочется рассказать про те проблемы, с которыми мы столкнулись во время адаптации Xen Cloud Platform под нашу модель работы облака. Эти посты будут чуток сложнее и предполагают, что читатель хотя бы в общих чертах знает, как работает Xen.

Когда концепция «оплата по потреблению» только-только оформлялась, а я судорожно искал «как считать», мне казалось, что процессор и память — это два самых простых ресурса.

Действительно, у нас есть xencontrol (библиотека управления гипервизором Xen), которая может точно сказать про каждый домен (запущенную виртуальную машину), сколько у неё есть памяти, сколько наносекунд времени было потрачено. Эта библиотека запрашивает информацию напрямую (через xenbus) у гипервизора и подвергает её минимальной обработке.

Выглядит эта информация примерно так (вывод биндинга xencontrol для питона):
{
    'paused': 0, 
    'cpu_time': 1038829778010L, 
    'ssidref': 0, 
    'hvm': 0, 
    'shutdown_reason': 0, 
    'dying': 0, 
    'mem_kb': 262144L, 
    'domid': 3, 
    'max_vcpu_id': 7, 
    'crashed': 0, 
    'running': 0, 
    'maxmem_kb': 943684L, 
    'shutdown': 0, 
    'online_vcpus': 8, 
    'handle': [148, 37, 12, 110, 141, 24, 149, 226, 8, 104, 198, 5, 239, 16, 20, 25], 
    'blocked': 1
}


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

Казалось бы «бери и считай», однако, дьявол кроется в деталях…

Извините за жёлтый заголовок ниже, но именно так звучал вопрос в полемике в ходе обсуждения одной из проблем:

Hyper-threading + Xen = воровство денег у клиентов


Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии13

Один компьютер на двоих (и более) или multiseat на базе Ubuntu 10.04 LTS

Время на прочтение22 мин
Количество просмотров48K
В данной статье рассматривается реализация multiseat на базе Ubuntu 10.04 LTS с аппаратным ускорением. Пример, рассмотренный в этой статье, уже введен в эксплуатацию и работает около полугода в обычном Минском офисе. Описываются проблемы реализации и внедрения готовой системы в работу с точки зрения обычного студента-электроприводчика, который подрабатывает на полставки системным администратором.

Вступление



Вот время работы системным администратором в небольшом офисе при обновлении парка компьютеров появилась небольшая проблема. Современные компьютеры дают уровень производительности, много превосходящий необходимый для офисных компьютеров. Причем реалии рынка таковы, что различия в производительности мало сказываются на цене. И вроде бы дешевые компьютеры на базе Atom по ценовому признаку практически не отличаются от более производительных компьютеров на базе обычных процессоров Amd и Intel (материнская плата с процессором Atom стоит около 100-150 у.е. на май 2010 года, Минск, и та же цена на октябрь 2010 в том же Минске).

Та же ситуация и с жесткими дисками: для офисной работы нет необходимости в объеме диска более 40-80 Гб. Но на рынке такие жесткие диски уже практически не представлены. На момент написания статьи в продаже были жесткие диски емкостью 160 Гб (38$), 250 Гб (39$), 320 Гб (40$), 500 Гб (41$), дальше различия по ценам заметны сильнее. Цена за гигабайт жестких дисков малого объема довольно высока. Та же ситуация и со всеми остальными комплектующими.

Возникает закономерный вопрос, как рационально все это использовать? Давайте подойдем логически — чтобы удешевить систему можно либо купить комплектующие похуже (не сильно удешевляет), либо отказаться от некоторых комплектующих. По сути, в рабочем месте обязательными являются устройства ввода (клавиатура, мышь, планшет и т.д.) и устройства отображения информации (монитор, проектор и т.д.). Остальная часть системы пользователей особо не касается, и от нее можно избавляться. Безусловно, от всего избавиться не получится. Давайте заглянем под крышку системного блока. Тут мы обязательно видим материнскую плату, видеокарту (может быть уже на материнской плате), процессор (тоже может быть на материнской плате) и память. А вот остальные комплектующие уже не так важны. Оптический привод мало востребован, и поэтому его, скорее всего, не будет.
С жестким диском тоже интересная ситуация. Его может и не быть, тогда у нас будет так называемая бездисковая станция. Тут вся информация загружается по сети с сервера (реализация PXE+NFS и немного бубна). Но хочется чего-то большего.
Тогда и возникла идея подключить к одному компьютеру две клавиатуры, две мыши и два монитора и заставить их работать независимо. В зарубежных источниках такие системы называются multiseat.
Но можно на этом и не ограничиваться, а делать бездисковую multiseat-станцию. Этот вариант отлично подойдет для пары multiseat-станций с сервером. В данной статье не рассматривается.

Читать дальше →
Всего голосов 153: ↑145 и ↓8+137
Комментарии125

Full Circle Magazine Special Edition — The Perfect Server

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


Сегодня свет увидел специальный выпуск журнала Full Circle Magazine под интригующим номером 1.
В нем собраны статьи по установке и конфигурированию различных серверных приложений на основе Ubuntu Server
узнать больше
Всего голосов 39: ↑34 и ↓5+29
Комментарии19

Операционные усилители (на основе простейших примеров): часть 1

Время на прочтение3 мин
Количество просмотров274K
В курсе электроники есть много важных тем. Сегодня мы попытаемся разобраться с операционными усилителями.
Начнем сначала. Операционный усилитель — это такая «штука», которая позволяет всячески оперировать аналоговыми сигналами. Самые простейшие и основные — это усиление, ослабление, сложение, вычитание и много других (например, дифференцирование или логарифмирование). Абсолютное большинство операций на операционных усилителях (далее ОУ) выполняются с помощью положительных и отрицательных обратных связей.
В данной статье будем рассматривать некий «идеал» ОУ, т.к. переходить на конкретную модель не имеет смысла. Под идеалом подразумевается, что входное сопротивление будет стремиться к бесконечности (следовательно, входной ток будет стремиться к нулю), а выходное сопротивление — наоборот, будет стремиться к нулю (это означает, что нагрузка не должна влиять на выходное напряжение). Также, любой идеальный ОУ должен усиливать сигналы любых частот. Ну, и самое важное, коэффициент усиления при отсутствующей обратной связи должен также стремиться к бесконечности.
Читать дальше →
Всего голосов 78: ↑72 и ↓6+66
Комментарии29

Моноиды и их приложения: моноидальные вычисления в деревьях

Время на прочтение20 мин
Количество просмотров24K
Приветствую, Хабрахабр. Сегодня я хочу, в своём обычном стиле, устроить сообществу небольшой ликбез по структурам данных. Только на этот раз он будет гораздо более всеобъемлющ, а его применения и практичность — простираться далеко в самые разнообразные области программирования. Самые красивые применения, я, конечно же, покажу и опишу непосредственно в статье.

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

Итак, на повестке сегодняшнего дня — моноиды и их основное применение для кеширования вычислений в деревьях.

Моноид как концепция


Представьте себе множество чего угодно, множество, состоящее из объектов, которыми мы собираемся манипулировать. Назовём его M. На этом множестве мы вводим бинарную операцию, то есть функцию, которая паре элементов множества ставит в соответствие новый элемент. Здесь и далее эту абстрактную операцию мы будем обозначать "⊗", и записывать выражения в инфиксной форме: если a и b — элементы множества, то c = ab — тоже какой-то элемент этого множества.

Например, рассмотрим все строки, существующие на свете. И рассмотрим операцию конкатенации строк, традиционно обозначаемую в математике "◦", а в большинстве языков программирования "+": "John""Doe" = "JohnDoe". Здесь множество M — строки, а "◦" выступает в качестве операции "⊗".
Или другой пример — функция fst, известная в функциональных языках при манипуляции с кортежами. Из двух своих аргументов она возвращает в качестве результата первый по порядку. Так, fst(5, 2) = 5; fst("foo", "bar") = "foo". Безразлично, на каком множестве рассматривать эту бинарную операцию, так что в вашей воле выбрать любое.

Далее мы на нашу операцию "⊗" накладываем ограничение ассоциативности. Это значит, что от неё требуется следующее: если с помощью "⊗" комбинируют последовательность объектов, то результат должен оставаться одинаковым вне зависимости от порядка применения "⊗". Более строго, для любых трёх объектов a, b и c должно иметь место:
(ab) ⊗ c = a ⊗ (bc)
Легко увидеть, что конкатенация строк ассоциативна: не важно, какое склеивание в последовательности строк выполнять раньше, а какое позже, в итоге все равно получится общая склейка всех строк в последовательности. То же касается и функции fst, ибо:
fst(fst(a, b), c) = a
fst(a, fst(b, c)) = a
Цепочка применений fst к последовательности в любом порядке всё равно выдаст её головной элемент.

И последнее, что мы потребуем: в множестве M по отношению к операции должен существовать нейтральный элемент, или единица операции. Это такой объект, который можно комбинировать с любым элементом множества, и это не изменит последний. Формально выражаясь, если e — нейтральный элемент, то для любого a из множества имеет место:
ae = ea = a
В примере со строками нейтральным элементом выступает пустая строка "": с какой стороны к какой строке её ни приклеивай, строка не поменяется. А вот fst в этом отношении нам устроит подлянку: нейтральный элемент для неё придумать невозможно. Ведь fst(e, a) = e всегда, и если ae, то свойство нейтральности мы теряем. Можно, конечно, рассмотреть fst на множестве из одного элемента, но кому такая скука нужна? :)

Каждую такую тройку <M, ⊗, e> мы и будем торжественно называть моноидом. Зафиксируем это знание в коде:
public interface IMonoid<T> {
    T Zero { get; }
    T Append(T a, T b);
}

Больше примеров моноидов, а также где мы их, собственно, применять будем, лежит под катом.
Читать дальше →
Всего голосов 127: ↑124 и ↓3+121
Комментарии27

Война в киберэпоху: концепция геоцентрического ТВД

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

Освоение кибернетического пространства военными уже привело к переоценке многих постулатов военной науки прошлого, и даже представлений о характере обеспечения глобального доминирования. Появились новые теоретики военного дела и новые теории.
Наиболее интересным текущим результатом этого процесса (он явно только начался, и ещё преподнесёт сюрпризы) является, вероятно, доктрина «Геоцентрического ТВД», выдвинутая командующим космическими войсками ВВС США генералом Робертом Келером. В ее основе – представление о фундаментальной взаимосвязи кибернетического и космического пространств. Стоит обсудить недолгую, но богатую событиями историю признания доктрины геоцентрического ТВД, хотя бы обозначить здесь основные ее постулаты, и попытаться понять её смысл.
подробности
Всего голосов 107: ↑97 и ↓10+87
Комментарии72

LaTex: Упражнение

Время на прочтение1 мин
Количество просмотров4.7K
Для того, чтобы старшему ребёнку давать примеры на сложение и вычитание в столбик, написал скрипт на Groovy, который генерирует LaTeX с примерами.
Цель была попрактиковаться в груви, ну и писать примеры от руки надоело.

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

Вот скрипт, надеюсь кому нибудь пригодится:
Читать дальше →
Всего голосов 27: ↑21 и ↓6+15
Комментарии25

Java как язык для параллельных вычислений. Установка, настройка, первая программа

Время на прочтение2 мин
Количество просмотров20K
Здравствуйте,

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

Содержание:
1) Имплементации MPI for Java; Что это? Где взять?
2) Как установить всё это? Как настроить?
3) Напишем свою самую-самую простую программу. Как её запустить?

Читать дальше →
Всего голосов 42: ↑35 и ↓7+28
Комментарии43

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность