Search
Write a publication
Pull to refresh
0
0
NickLion @NickLion

User

Send message

Изучаем MIPS-ассемблер

Reading time7 min
Views68K


Как говорит Википедия, MIPS – микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) и впервые реализованный 1985 году. Существует большое количество модификаций этой архитектуры, созданных специально для 3D-моделирования, быстрой обработки чисел с плавающей запятой, многопотоковых вычислений. Различные варианты этих процессоров использутся в роутерах Cisco и Mikrotik, смартфонах, планшетах и игровых консолях.

Инструкции MIPS достаточно просты для понимания, и именно с него рекомендуется начинать изучение ассемблера. Чем сейчас, собственно, и займёмся.
Читать дальше →

Цифровой окуляр для микроскопа своими руками

Reading time2 min
Views85K
В школьные годы мне очень нравилось рассматривать разные предметы под микроскопом. Все что угодно — начиная от внутренностей транзистора и заканчивая различными насекомыми. И вот, недавно решил я снова побаловаться микроскопом, подвергнув его небольшим переделкам. Вот что из этого получилось:


Под микроскопом — микросхема КС573РФ2 (ROM c УФ-стиранием). Когда-то на ней была записана тестовая программа для Спектрума.

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

Простой многопоточный тип доступа к данным и атомарные переменные

Reading time6 min
Views20K
Автор: Alexander Sandler, оригинал статьи (23 декабря 2008)

Введение


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

Подсчет ссылок атомарными переменными в C/C++ и GCC

Reading time7 min
Views7.2K
Автор: Alexander Sandler, оригинал статьи (27 мая 2009)

Введение


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

Скрипты на коленке — приручаем klipper Часть 1

Reading time4 min
Views4.9K
Эдвард руки-ножницы
Одна из причин почему я люблю KDE — это маленькая иконка ножниц в системном лотке, знак того, что klipper запущен и уже работает для вас.

Основная задача klipper — запоминать историю буфера обмена и давать возможность перемещаться по ней. Таким образом, даже если вы скопировали в буфер несколько отрывков информации нажав Ctrl+C, всегда остаётся возможность вставить любой из них выбрав его в истории и нажав Ctrl+V.

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

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

Юнит-тестирование в Qt

Reading time6 min
Views86K

gollum подметил что в тексте картинки есть ошибка

Салют, хабр! Как дела?

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

Документация и руководство по программированию Ivy Bridge

Reading time2 min
Views2.2K
Компания Intel опубликовала четыре тома документации (2400+ страниц) с описанием архитектуры и полным руководством по программированию графических процессоров Ivy Bridge. Документация относится к наборам микросхем Intel HD Graphics 2500/4000, которые используются с процессорами третьего поколения Intel Core i7/i5/i3.

Все 17 PDF'ов опубликованы на сайте Linux Graphics Drivers from Intel под лицензией Creative Commons.

Документация описывает регистры, инструкции и интерфейсы памяти для программного взаимодействия с компонентами, в том числе графическое ядро (MMIO, медиарегистры, движок рендеринга, растровый движок), конвейер 3D-обработки, мультиформатный транскодер (MFX), регистры VGA, PCI и другие компоненты, а также различные системы: URB, оценка движения на видео, пиксельный интерполятор и исполнительный модуль (execution unit).
Читать дальше →

Краткая история проекта OpenCV

Reading time5 min
Views38K
Автор: Кирилл Корняков, лидер команды разработчиков в Itseez.

Привет, Хабр!

image

Этой записью мы открываем блог компании Itseez (от англ. it sees — «оно видит!»). Компания основана адептами компьютерного зрения, проработавшими в этой области более 13 лет, среди которых есть участники проекта OpenCV с первого дня его существования. Наша стратегия связана с разработкой технологий и продуктов в области компьютерного зрения под девизом ”Vision that works!”. Наши клиенты — Willow Garage, NVidia, Intel, Microsoft, несколько менее известных компаний и стартапов. На сегодняшний день коллектив Itseez — это команда из 40 инженеров и исследователей, многие сотрудники активно участвуют в образовательной деятельности: преподают в университете, публикуются в журналах и выступают на конференциях, а также проводят школы по компьютерному зрению.

На страницах блога мы бы хотели рассказывать о том, что интересного происходит в реальном и кибер-пространстве вокруг нас, а также в мире компьютерного зрения. Мы надеемся, что публикуемые материалы будут интересны людям, близким к машинному обучению, робототехнике, вычислительной фотографии, технологиям интеллектуального видеонаблюдения и дополненной реальности, а также к смежным направлениям Науки и Техники. Важной особенностью Itseez является то, что многие наши разработки являются open-source, поэтому мы постараемся подкреплять свои слова примерами реального кода.

Поскольку это первая запись в нашем блоге, хотелось бы поделиться чем-то интересным, поэтому мы расскажем о ключевом проекте компании — о разработке библиотеки алгоритмов компьютерного зрения OpenCV (о своем вкладе в ROS (Robot Operating System) и PCL (Point Cloud Library) мы пока умолчим). Подготовленный читатель, вероятно, удивится, задавшись вопросом: “Но ведь OpenCV разрабатывается Intel / Willow Garage!”, и будет прав, но лишь отчасти. Действительно, далеко не все знают, что большинство ведущих разработчиков OpenCV живут и трудятся в России, в городе Нижний Новгород, и являются сотрудниками компании Itseez. Поэтому, чтобы устранить недоразумения, первый пост мы решили посвятить краткому изложению истории OpenCV. Также, пользуясь случаем, в заключении мы поделимся некоторой инсайдерской информацией о будущем проекта.
Читать дальше →

VIM — жестокий и беспощадный

Reading time1 min
Views13K


Если коротко, то это аппаратное расширение для ускорения работы с vim.

Когда педаль нажата, vim переходит в Insert Mode. Когда отпущена, происходит нажатие Escape, и вы возвращаетесь в Normal Mode.

Автор проекта — Александр Левчук.

Всем чудных выходных!

Развитие образного мышления

Reading time3 min
Views68K
image

Пламенный привет, дорогие хабравчане!

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

Делаем IBM PC на FPGA

Reading time3 min
Views83K
Думаю многие, кто работал с FPGA думали — а не сделать ли свой компьютер полностью на ней, с x86 процессором, периферией и прочим? 8-и битные компьютеры часто реализовывали в FPGA, но вот целый PC…

Для успешной работы помимо x86 процессора нужен еще BIOS со всеми реализованными прерываниями (включая доступ к «диску» на SD карте), BIOS VGA-совместимой видеокарты, вся периферия, контроллер памяти, таймер и многое другое. Задача намного сложнее чем кажется на первый взгляд, но тем не менее, в проекте ZetCPU она решена.

Из ограничений — работает только 16-и битный режим на 12.5Mhz, без математического сопроцессора.
Читать дальше →

Защита gitlab и gitolite от подбора паролей и ключей

Reading time3 min
Views5.8K
Совсем недавно на мой сервер с git репозиторием началась атака по подбору паролей к gitlab и ключей к ssh. Намерения злоумышлеников понятны — вытащить исходный код проприетарного приложения хранящегося в git.

Мне не совсем понятны попытки подбора ssh-ключей, т.к. проблематично подобрать RSA-ключ (это займет десятки лет), но я всё же сделал некоторые ограничения для того что бы не так сильно «загаживались» логи.

Кому интересно как защитить gitolite и gitlab (работает за nginx) от подбора паролей — добро пожаловать под кат.
Читать дальше →

Копулы — что это такое и с чем их есть

Reading time5 min
Views17K
На данном ресурсе часто говорят о работе со случайными величинами — ну много где они нужны. Иногда случается так, что вам нужно определить зависимость двух случайных величин друг от друга. Тут вы воскликнете — «Пффф, дык мы ж такое в школе проходили — корреляция». Вот тут я хочу вас огорчить — корреляция Пирсона — всего лишь один из множества способов показать зависимость двух случайных величин. К тому же он линейный. То есть, если зависимость между X и Y не линейная, а, допустим, квадратичная, то есть X=Y^2, тогда корреляция Пирсона покажет отсутствие зависимости. Но мы то знаем что это не так. Если вы не задумывались об этом раньше, то сейчас у вас должны появляться идеи — «Как же так?», «А что же делать?», «Аааа, мы все умрем!» Ответы на все эти непростые вопросы я постараюсь дать под катом.
Читать дальше →

Контакт есть, сигнала нет

Reading time21 min
Views151K

или как рассогласованные линии портят ваш сигнал


На форуме Dangerous Prototypes я однажды принял участие в одном обсуждении, посвященном проблемам с шиной SPI, кторая переставала нормально работать, начиная с некоторой длины. Мой опыт подсказывал мне две вещи: 1) проверить источник питания, 2) проверить линию на наличие отражений. Тогда я понял, что это должно быть общей проблемой для всех радиолюбителей. Линии передачи данных — сложная тема, и настало время снять покров таинственности с этой электронной магии.
Читать дальше →

Как мы делали плагин для kate

Reading time3 min
Views4.1K
В данной статье описан процесс написания плагина для kate под названием Neznaju. Плагин предназначен для совместного редактирования текста через сеть. Используя этот плагин вы можете создать сервер, или подключиться к созданному кем-то серверу и совместно редактировать какой-то текст. Плагин максимально простой. На данный момент он поддерживает подключение нескольких клиентов, а также редактирование объёмных файлов (т. к. передаётся только информация об изменениях в документе).
Читать дальше →

Рандомизированные деревья поиска

Reading time8 min
Views58K

Не знаю, как вы, уважаемый читатель, а я всегда поражался контрасту между изяществом базовой идеи, заложенной в концепцию двоичных деревьев поиска, и сложностью реализации сбалансированных двоичных деревьев поиска (красно-черные деревья, АВЛ-деревья, декартовы деревья). Недавно, перелистывая в очередной раз Седжвика [1], нашел описание рандомизированных деревьев поиска (нашлась и оригинальная работа [2]) — настолько простое, что занимает оно всего треть страницы (вставка узлов, еще страница — удаление узлов). Кроме того, при ближайшем рассмотрении обнаружился дополнительный бонус в виде очень красивой реализации операции удаления узлов из дерева поиска. Далее вы найдете описание (с цветными картинками) рандомизированных деревьев поиска, реализация на С++, а также результаты небольшого авторского исследования сбалансированности описываемых деревьев.
Читать дальше →

Распознавание пульса человека на видео

Reading time1 min
Views18K
В MIT CSAIL и Quanta Research Cambridge разработали видеофильтр, который усиливает незначительные различия между кадрами. Например, видеокамера регистрирует незаметное для глаза изменение цвета кожи из-за притока/оттока крови — пропустив видео через фильтр, мы получаем чёткую визуализацию пульса.



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

Ropes — быстрые строки

Reading time5 min
Views26K
Здравствуй, Хабр.
Большинство из нас так или иначе работает со строками. Этого не избежать — если ты пишешь код, ты обречен каждый день складывать строки, разбивать их на составные части и обращаться к отдельным символам по индексу. Мы давно привыкли что строки — это массивы символов фиксированной длины, а это влечет за собой соответствующие ограничения в работе с ними.
Так, мы не можем быстро объединить две строки — для этого нам потребуется сначала выделить необходимое количество памяти, а потом скопировать туда данные из конкатенируемых строк. Очевидно, что такая операция имеет сложность порядка О(n), где n — суммарная длина строк.
Именно поэтому код

string s = "";
for (int i = 0; i < 100000; i++) s += "a";

работает так медленно.

Хочешь выполнять конкатенацию гигантских строк быстро? Не нравится, что строка требует для хранения непрерывную область памяти? Надоело использовать буферы для построения строк?

Хватит это терпеть!

Yet another cool story about bash prompt

Reading time10 min
Views38K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

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

Information

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