Search
Write a publication
Pull to refresh
297
0.2
Дмитрий Кашицын @Halt

Программист, линуксоид, паяльник-железячник

Send message

Существует ли отечественный процессор Мультиклет?

Reading time8 min
Views45K
В этом посте я хочу рассказать о наших усилиях по использованию российского процессора с оригинальной архитектурой Мультиклет. Нам интересен перенос нашей ОСРВ Embox на данную платформу, так как это даст возможность использовать довольно большое количество приложений, которые у нас имеются — например, SIP-телефон, о котором мы уже рассказывали.

Речь пойдёт о проблемах, с которыми мы столкнулись в процессе переноса, и о том, как мы эти проблемы устраняли. Возможно, это будет интересно не только тем, кто планирует использовать данный процессор, но и тем, кому по каким-то причинам будет необходимо перейти со стандарта c99 и gcc на стандарт c89 и какой-нибудь несовместимый с gcc компилятор. Также в заключении я позволю себе добавить личные ощущения от взаимодействия с данной платформой.
Читать дальше →

Ускоренный курс по нотациям в теории языков программирования

Reading time10 min
Views32K
Программисты часто сталкиваются с проблемами чтения математических нотаций, когда пытаются разобраться с теоретическими основами какого-либо языка программирования. Также с ними толкнулся и я в своих теоретических изысканиях. К счастью, мне очень помогла замечательная статья Джереми Сиека (Jeremy Siek), чьим переводом я хочу с вами поделиться. Надеюсь она поможет многим программистам-«не математикам».
Читать дальше →

TIS-100 — паззл про многопоточный ассемблер, который никто не ждал

Reading time3 min
Views89K
image

Удивительно, но никто не написал ничего про игрушку «TIS-100», которая недавно появилась в Steam (стоит всего 150 рублей, уже 460 положительных отзывов против 6 отрицательных).

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

Итак, о чем игра?
Читать дальше →

Почерк нейронной сети притворяется почерком человека

Reading time2 min
Views19K
image

Около года назад учёный из университета Торонто Алекс Грейвс опубликовал научную работу «Generating Sequences With Recurrent Neural Networks» (pdf) на arXiv.org, однако только недавно пользователи Hacker News обратили на неё внимание. Это произошло благодаря тому, что демонстрационная часть статьи доступна в интернете в виде простого сайта, функциональность которого заключается в имитации нейронной сетью человеческого почерка.
Узнать подробности

Злоупотребление правом или как легко отнять фанатское сообщество (на примере антивируса Dr. WEB)

Reading time4 min
Views76K
История о том, как я создал и развивал фанатскую группу, и как ее у меня отобрали.

«… Ты человек жестокий: берешь, чего не клал, и жнешь, чего не сеял».
От Луки (гл. 19, ст. 21):

В далеком 2007 году я на добровольных началах, не являясь сотрудником фирмы Доктор Веб (c одобрения ее сотрудников, с которыми я общался на официальном форуме), создал фанатскую группу во Вконтакте vk.com/drwebuser (обратите внимание на адрес группы, я оставил возможность фирме создать vk.com/drweb), объединяющую «счастливых» пользователей антивирусных продуктов данной компании. На самом деле не всегда счастливых, а часто заложников этих продуктов, потому что решения о выборе антивирусного ПО, часто принимаются руководителями организаций, и у юзеров не остается выбора чем пользоваться. Поэтому кроме развития данной группы, я добровольно и без вознаграждения длительное время в ней занимался технической и моральной поддержкой пользователей антивирусов Доктор Веб.



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

Семь видов интерпретаторов виртуальной машины. В поисках самого быстрого

Reading time35 min
Views35K
Все проблемы в области Computer Science могут быть решены введением дополнительного уровня косвенности. За исключением одной: слишком большого числа уровней косвенности.
All problems in computer science can be solved by another level of indirection, except for the problem of too many layers of indirection.

Программные интерпретаторы известны своей невысокой скоростью работы. В этой статье я расскажу, как их можно ускорить.
Я давно уже хотел поподробней остановиться на создании интерпретаторов. Прямо таки обещал, в том числе самому себе. Однако серьёзный подход требовал использования более-менее реалистичного кода для примеров, а также проведения измерений производительности, подтверждающих (а иногда и опровергающих) мои аргументы. Но наконец-то я готов представить почтенной публике результаты, причём даже чуть более интересные, чем собирался.
В данной статье будет описано семь способов построения программной ВМ для одной гостевой системы. От самых медленных мы проследуем к более быстрым, поочерёдно избавляясь от различных «неэффективностей» в коде, и в конце сравним их работу на примере одной программы.
Тех, кто не боится ассемблерных листингов, испещрённого макросами кода на Си, обильно удобренного адресной арифметикой, goto и даже longjmp, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат.
Читать дальше →

Про Бурали-Форти, Пуанкаре и то самое определение единицы

Reading time11 min
Views84K
Если вы, уважаемый мой читатель, имеете обыкновение проводить много времени в интернете, вы наверняка уже видели эту картинку с цитатой:

image

Наверняка также вы задавались вопросом: что, чёрт подери, здесь написано? Формула из этой цитаты интересна тем, что у человека, имеющего высшее математическое образование, этот вопрос возникает столь же неумолимо, как и у любознательного семиклассника. У нелюбознательных семиклассников несколько иной круг интересов, выходящий за рамки данной статьи; однако даже они не откажут себе в удовольствии похихикать над «этими чокнутыми ботаниками», или как оно там формулируется на современном молодёжном сленге.

В нижеследующем тексте я раскрою перед вами тайну этого загадочного сочетания символов. Пожалуйте под кат, однако помните поучительную историю о любопытной Варваре, которой на базаре рассказали про парадокс Банаха-Тарского, отчего она сошла с ума, разрезала себе нос на конечное количество частей и склеила из них рогатую сферу Александера.
N.B. Я предупреждал.

Как устроен цвет

Reading time1 min
Views58K
Почему формальное определение цвета то ли есть, то ли нет, и связано ли это с тем, что его дал тот самый Шрёдингер? Что имел в виду Вейнберг, когда назвал свою революционную статью «Геометрия цветов»? Почему у цветового треугольника два угла, хотя интуитивно кажется, что должен быть один? Почему обычный детский рисунок показывает, что у автора всё в порядке с цветовосприятием, и зачем художник-академист всю жизнь учится его отключать? Почему в цветовом пространстве находятся кластеры, но они не находятся? Почему любая женщина знает о явлении метамерии окрасок, а ученые всё время забывают? Сколько должно быть цветовых каналов у хорошего фотоаппарата? А у монитора? А почему ответ разный? А красок у принтера?

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



Лектор — Дмитрий Николаев, заведующий сектором зрительных систем в Институте проблем передачи информации им. А.А. Харкевича РАН. Кандидат физико-математических наук, защитил диссертацию на тему «Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены».
Читать дальше →

Ненастоящие сеньор-девелоперы, или почему годы опыта ни о чем не говорят

Reading time6 min
Views142K
Опытный программист из Торонто Мэтт Бриггс так любит свою работу, что говорит: «я бы писал код, даже если бы это было нелегальным». А когда он опубликовал в своем блоге пост о джуниорах, мидлах и старших разработчиках, то собрал больше сотни восхищенных комментариев. Мы в Alconost тоже восхитились и перевели эту статью для вас.

Мы работаем в странной индустрии. Потребность в разработчиках здесь значительно выше, чем кадровое предложение. Эта проблема существует многие годы, и со временем она становится острее.

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

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

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


Постер из сериалa «Компьютерщики»
Читать дальше →

Искусство командной строки

Reading time15 min
Views251K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!

В России снизят плату за электронные госуслуги на 30%, а также повысят трудовую мобильность граждан

Reading time2 min
Views10K
Только в 22 регионах России электронными госуслугами пользуются более 35% граждан. Лидером стал Уральский округ. Там этот показатель достиг 47%. А на Северном Кавказе он не превышает 17%. Однако правительство планировало достичь такого уровня по всей стране к 2015 году. В связи с этим, будут приняты меры по повышению интереса россиян к электронным госуслугам.

Одной из таких мер является 30-процентное снижение госпошлины на эти услуги. Ее предложил премьер-министр Дмитрий Медведев. На некоторые услуги госпошлина уже была снижена ранее. Но на такие распространенные процедуры, как оформление паспорта и регистрация автомобиля, госпошлина оставалась прежней.
Читать дальше →

«Аполлон» против лунного заговора: что реальнее осуществить?

Reading time13 min
Views75K

Пролог


image
Астронавты Олдрин (слева) и Армстронг в Хьюстоне во время тренировки выхода на лунную поверхность (22 апреля 1969 года)

Знаете, кого мне всегда напоминали сторонники теорий заговора? Назойливых шахматистов.

Да-да, бывают такие, которые продолжают ходить королем против вашей ладьи. И вы теряетесь, разинув рот от неожиданности: он что, не читал стандартных эндшпилей и не знает своей судьбы — мат не позднее 16-го хода? Что происходит? Он надеется, что вы забыли, как это делается, что вам станет скучно и вы бросите играть?

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

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

А что же тогда делать? Да все очень просто. Надо замолчать. А затем попросить теоретика заговора рассказать все с начала. Нет-нет, не пересказывать теорию, которая обычно является «сутью произошедшего». А описать. Все. Как было сделано. Подробно. С самого начала.

Давайте так и сделаем на примере лунного заговора, который живуч на фоне миссий LRO, Opportunity, Rosetta и сегодняшних ежедневных снимков все приближающегося Плутона.
Читать дальше →

Загадка фликкер-шума разгадана

Reading time10 min
Views70K


Давным-давно, когда диоды были ещё вакуумными, J. В. Johnson впервые наблюдал мерцательный эффект в токе электронных ламп, который он так и назвал – мерцательным или фликкер-шумом. Прошло ровно 90 лет с тех пор, а фликкер-шум продолжают обнаруживать в самых разнообразных системах – от полупроводниковых приборов до разлива рек, от физики до социологии, но объяснить природу его происхождения так никто и не смог.
Читать дальше →

Магия тензорной алгебры: Часть 2 — Векторные и тензорные операции. Ранги тензоров

Reading time10 min
Views137K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Несказанно рад, что читателям понравилась предыдущая статья. Сразу сделаю оговорку — просто рассказать о таком ёмком понятии как тензор не получится — велик объем информации. Могу обещать, что к концу цикла мозаика сложится.

А в прошлый раз мы остановились на том, что рассмотрев представление вектора в косоугольном базисе, и определив, что он представляется двумя разными (ковариантными и контравариантными) наборами координат, получили общие выражения для скалярного произведения, учитывающие изменение метрики пространства. Таким образом, мы весьма осторожно подошли к понятию тензора
Тензор — математический объект, не изменяющийся при изменении системы координат, представленный набором >своих компонент и правилом преобразования компонент при смене базиса.

Скалярное произведение — это хорошо. Но как же быть с остальными операциями? Как они связываются с геометрией пространства и представимы ли в тензорном виде? Разумеется представимы, ведь векторы — это… тензоры! И скаляры — это тоже тензоры. Привычные нам математические объекты лишь частные примеры более общего понятия, коим является тензор.

Вот об этом мы и поговорим под катом.
Читать дальше →

Магия тензорной алгебры: Часть 3 — Криволинейные координаты

Reading time8 min
Views71K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


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

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

А пока что рассмотрим некоторые теоретические основы. Добро пожаловать под кат.
Читать дальше →

В игре Го можно увидеть больше оттенков серого

Reading time2 min
Views18K

Часть первая — Знакомство


Я начинал свою историю игры в Го давным давно в 2006 году. Начало может быть вполне обычное, а может быть и нет.

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

Краткое введение в тензоры

Reading time3 min
Views174K
В заметке Магия тензорной алгебры было дано очень неплохое введение в математику тензоров. Но, как мне кажется, этот текст все-равно несколько сложен для понимания. В нем не до конца понятно, что же это такое тензор и зачем он вообще нужен.

Сейчас я попытаюсь дать совсем простое введение в тензоры. Я не претендую на математическую строгость, поэтому некоторые термины могут употребляться не совсем корректно.
Читать дальше →

Магия тензорной алгебры: Часть 1 — что такое тензор и для чего он нужен?

Reading time7 min
Views380K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение



Это было очень давно, когда я учился классе в десятом. Среди довольно скудного в научном плане фонда районной библиотеки мне попалась книга — Угаров В. А. «Специальная теория относительности». Эта тема интересовала меня в то время, но информации школьных учебников и справочников было явно недостаточно.



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



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

$500 млн за строчку кода или стоимость ошибок ПО в космосе

Reading time12 min
Views37K
Пару месяцев назад на edx.org закончился курс «Введение в космические технологии: Космонавтика и пилотируемые полеты (Introduction to Aerospace Engineering: Astronautics and Human Spaceflight)». Курс вел американский космонавт, на данный момент профессор MIT — Джеффри Алан Хоффман. Как следует из названия, курс довольно простой и общий, тем не менее мне он показался довольно интересным и познавательным.

В одной из частей курса рассматривается вопрос безопасности, и речь, кроме всего прочего, идет о безопасности программного обеспечения. Проф. Хофман приводит интересные примеры проблем с ПО для авиации и космонавтики. В данной статье я чуть-чуть подробнее рассмотрю космические примеры из лекций Хофмана.

Mars Polar Lander


Mars Polar Lander (MPL) 290 килограммовый космический аппарат, запущенный NASA 3 Января 1999 г. для изучения почвы и климата в районе южного полюса Марса. 3 Декабря 1999 г. во время посадки центр управления не смог возобновить с аппаратом связь.


MPL в лаборатории NASA
Читать дальше →

Захват пакетов в Linux на скорости десятки миллионов пакетов в секунду без использования сторонних библиотек

Reading time8 min
Views88K
Моя статья расскажет Вам как принять 10 миллионов пакетов в секунду без использования таких библиотек как Netmap, PF_RING, DPDK и прочие. Делать мы это будем силами обычного Линукс ядра версии 3.16 и некоторого количества кода на С и С++.



Сначала я хотел бы поделиться парой слов о том, как работает pcap — общеизвестный способ захвата пакетов. Он используется в таких популярных утилитах как iftop, tcpdump, arpwatch. Кроме этого, он отличается очень высокой нагрузкой на процессор.

Итак, Вы открыли им интерфейс и ждете пакетов от него используя обычный подход — bind/recv. Ядро в свою очередь получает данные из сетевой карты и сохраняет в пространстве ядра, после этого оно обнаруживает, что пользователь хочет получить его в юзер спейсе и передает через аргумент команды recv, адрес буфера куда эти данные положить. Ядро покорно копирует данные (уже второй раз!). Выходит довольно сложно, но это не все проблемы pcap.

Кроме этого, вспомним, что recv — это системный вызов и вызываем мы его на каждый пакет приходящий на интерфейс, системные вызовы обычно очень быстры, но скорости современных 10GE интерфейсов (до 14.6 миллионов вызовов секунду) приводят к тому, что даже легкий вызов становится очень затратным для системы исключительно по причине частоты вызовов.

Также стоит отметить, что у нас на сервере обычно более 2х логических ядер. И данные могут прилететь на любое их них! А приложение, которое принимает данные силами pcap использует одно ядро. Вот тут у нас включаются блокировки на стороне ядра и кардинально замедляют процесс захвата — теперь мы занимаемся не только копированием памяти/обработкой пакетов, а ждем освобождения блокировок, занятых другими ядрами. Поверьте, на блокировки может зачастую уйти до 90% процессорных ресурсов всего сервера.

Хороший списочек проблем? Итак, мы их все геройски попробуем решить!
Читать дальше →

Information

Rating
2,867-th
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity