Pull to refresh
43
0
Маркин Алексей @alexanius

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

Send message

Orange Pi PC — полноценный мини-пк за 15 долларов на Linux

Reading time11 min
Views264K
image

Уже не раз замечал интерес к новой плате-клону всем известной Raspberry Pi от китайских энтузиастов из компании Xunlong под звучным названием Orange Pi PC. Прославилась она, в основном, своим неплохим «железом» (4-ядерный процессор Allwinner H3, 1Gb RAM и GPU Mali-400MP2 600MHz), наличием неплохого функционала (HDMI, AV, Ethernet, 3 USB, microUSB-OTG, инфракрасный порт для управления с пульта и GPIO-гребенка, по словам разработчиков, якобы «100% совместимая с Raspberry Pi), а главное — ЦЕНА. Создатели оценили свой девайс всего лишь в $15, ПЯТНАДЦАТЬ долларов, Карл! (скоро мы увидим, что это на самом деле весьма лукавое заявление, и конечный девайс стоит дороже).

Итак, давайте рассмотрим данную плату повнимательнее.

В рунете уже есть на нее обзоры, но все они представляли из себя нечто вида „установил андроид и подключил к телеку на кухне“. Я предлагаю взглянуть на плату с другой стороны, а именно — установить туда линукс, поюзать её как настоящий ПК, и даже немного поиграть.

Для тех, кому лень читать полностью, прорезюмирую:

Интересная штука, на данный момент вполне юзабельная, но имеется огромное количество огрехов и косяков, требующих допиливания напильником. Покупать только на свой страх и риск! Простому пользователю, рассчитывающему иметь готовое решение „из коробки“, я бы посоветовал обратить внимание на ТВ-боксы на базе Android или Windows. Продвинутому пользователю, знакомому с Linux, который не боится неизведанных челенджей в сыром продукте, и которому хотелось бы иметь неттоп для интернет-серфинга, работы с документами, программирования и скромных игр — must have! Особенно с учетом цены.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments56

Почему происходит отвал чипа на самом деле

Reading time4 min
Views31K
За не имением возможности ответить в виде комментария на статью «Устройство кристалла ИМС с шариковыми выводами и почему происходит отвал», приходится писать полноценную публикацию в песочницу.

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


Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments28

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

Reading time35 min
Views33K
Все проблемы в области 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, а также программ, использующих копипаст во имя скорости или даже создающих куски самих себя, прошу пожаловать под кат.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments48

Механизмы профилирования Linux

Reading time9 min
Views39K


Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
Читать дальше →
Total votes 60: ↑60 and ↓0+60
Comments11

Vim по полной: Введение

Reading time5 min
Views70K
Привет, хабраюзер!

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

В этой серии статей я решил поделиться собственными наработками и, возможно, показать, на что может быть способен этот редактор в руках программиста. Серия будет состоять из следующих частей:
  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

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

Готов? Вперед под кат!
Total votes 52: ↑49 and ↓3+46
Comments86

В продажу поступили ПК и серверы на базе процессоров «Эльбрус-4С»

Reading time2 min
Views149K
Российская компания МЦСТ объявила о начале продаж персональных APM-компьютеров для офисного пользования «Эльбрус-401» и серверов «Эльбрус-4.4» на базе 4-х ядерных микропроцессоров «Эльбрус-4С», созданных по технологии 65 нанометров. На сайте компании приводятся подробные характеристики этих 2-х новинок от российского производителя, и сейчас мы кратко выделим основные из них.


Читать дальше →
Total votes 64: ↑53 and ↓11+42
Comments313

В производство запущена опытная партия процессоров Эльбрус-8С

Reading time2 min
Views148K

Сегодня в производство была запущена опытная партию универсальных микропроцессоров Эльбрус-8С, с расчётная рабочей частотой в 1.3 ГГц. Вычислительная мощность данного процессора 250 Гфлопс, а производится он по технологии – 28 нм. Получение готовых образцов микросхем ожидается в октябре 2014 года.

Микропроцессор Эльбрус-8С — полностью российская разработка, которой занимается ЗАО «МЦСТ». Его кристалл спроектирован по технологии 28 нм, имеет 8 процессорных ядер с улучшенной 64-разрядной архитектурой Эльбрус 3-го поколения, кэш-память 2-го уровня общим объёмом 4 мегабайта и 3-го уровня объёмом 16 мегабайт.

Читать дальше →
Total votes 113: ↑103 and ↓10+93
Comments176

Железо на службе у алгоритма (продолжение)

Reading time29 min
Views81K
Борис Бабаян о прошлом, настоящем и будущем вычислительной техники


Борис Бабаян


Почти три месяца прошло с момента публикации первой части этой работы. Всё это время вызревала вторая часть и… наконец, созрела!

Как и в предыдущей части, повествование построено от лица Бабаяна. Большинство своих комментариев я оформил в виде врезок либо ссылок на интернет-страницы.

Поехали!
Total votes 91: ↑84 and ↓7+77
Comments50

Отечественный процессор «Эльбрус-4С» скоро запустят в серийное производство

Reading time1 min
Views246K
Российская компания МЦСТ, специализация которой разработка универсальных микропроцессоров, микроконтроллеров и управляющих вычислительных комплексов, сообщила об успешном завершении испытаний нового процессора «Эльбрус-4С» (Эльбрус-2S), который готов к серийному производству.



Читать дальше →
Total votes 131: ↑116 and ↓15+101
Comments239

Классификация 3D принтеров (7 технологий 3D печати)

Reading time4 min
Views229K
На хабре уже были статьи о технологиях печати, которые используют 3D принтеры, однако в данной статье я постарался подойти к вопросу системно, чтобы в голове у читателя сложилась четкая картина о том, какие принципы заложены в технологии 3D печати, какие материалы используются и в конечном итоге какую технологию лучше использовать для получения определенного результата, будь то деталь из титана, или мастер-модель для последующего тиражирования.
Статья основана на книге Fabricated: The New World of 3D printing

image

Читать дальше →
Total votes 61: ↑57 and ↓4+53
Comments8

Железо на службе у алгоритма

Reading time14 min
Views199K
Борис Бабаян о прошлом, настоящем и будущем вычислительной техники

Борис Бабаян
Каким представляется развитие вычислительной техники человеку, который уже более полувека занимается разработкой компьютерных технологий?

Мне удалось побеседовать на эту тему с Борисом Арташесовичем Бабаяном, директором по архитектуре компании «Интел».

Борис Бабаян известен как главный архитектор компьютерных вычислительных систем «Эльбрус-1», «Эльбрус-2» и «Эльбрус-3». Некоторые из его идей использованы в архитектуре Transmeta. В настоящее время Борис возглавляет разработку новой микропроцессорной архитектуры в компании «Интел».

Чтобы совсем покончить с формальностями, перечислю звания, степени и должности Бориса: член-корреспондент РАН, доктор технических наук, профессор, заведующий кафедрой «Микропроцессорные технологии» МФТИ, Intel Fellow, лауреат Государственной и Ленинской премий.

Дальнейшее повествование построено от лица Бабаяна. Мои скупые комментарии оформлены в виде врезок либо ссылок на интернет-страницы.

Поехали!
Total votes 210: ↑200 and ↓10+190
Comments138

Отъявленный программист: Неформальные истории и откровенные разговоры об IT-индустрии

Reading time8 min
Views27K
В издательстве «Питер» прорабатывается идея издать не совсем обычную книгу. Это будет сборник неформальных интервью с известными (и не очень) ИТ-специалистами об их работе, жизни и взглядах. Пожалуй, на русском языке это первая попытка исследовать архетип компьютерщика с разных углов зрения.
Мы не делали ставку исключительно на очень известных людей (хотя несколько героев, безусловно, всемирно известны), а прежде всего, нас интересовала яркость каждой отдельной личности, их взаимное разнообразие.

Логически вся книга планируется из трех разделов-частей:
1) Интервью с программистами, админами, т.д. – прямая речь;
2) Интервью об информационных технологиях и интернете, их влиянии на общество – профессионалы, не являющиеся непосредственно разработчиками, но которые «варятся» в этой кухне, расскажут об их, подчас, странной субкультуре и технологиях;
3) Случаи из жизни программистов и айтишников – несколько ярких и живых примеров, полуюмористических (или поучительных) историй, основанных на реальных фактах и событиях (в стиле Веллера и его «Легенд Невского проспекта»).

На Западе книги подобного плана весьма популярны: достаточно вспомнить «Coders at Work» Сейбела, у нас подобный жанр пока ещё только приживается.
В связи с этим хочется установить предварительную обратную связь с будущими читателями. Любопытна ли будет вам такая книга? Какие вопросы и темы было бы интересно затронуть? Может быть, вы захотите предложить нам ещё каких-то интересных собеседников?

Ниже под катом можно посмотреть список интервьюируемых и краткую аннотацию по теме беседы.
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments35

Запрет хранения данных россиян на зарубежных серверах: что будет после 1 сентября 2016 года?

Reading time3 min
Views248K


Сегодня состоялось событие которого все так долго ждали, теперь не будет никаких полумер, с 1 сентября 2016 запрещено хранение любых персональных данных за пределами РФ.

Что произошло?
Что попадает под запрет?
Что будет с интернетом?
Что всё это значит?
Что делать?


На эти вопросы я постараюсь ответить внутри поста.
Читать дальше →
Total votes 270: ↑226 and ↓44+182
Comments1006

Передача умных указателей по константной ссылке. Вскрытие

Reading time4 min
Views19K
Умные указатели часто передаются в другие функции по константной ссылке. Эксперты C++, Андрей Александреску, Скотт Мейэрс и Герб Саттер, обсуждают этот вопрос на конференции C++ and Beyond 2011 (Смотреть с [04:34] On shared_ptr performance and correctness).

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

Но этот пост не про корректность. Здесь мы рассмотрим производительность, которую мы можем получить при переходе на константные ссылки. На первый взгляд может показаться, что единственная выгода это отсутствие атомарных инкрементов/декрементов счётчика ссылок при вызове конструктора копирования и деструктора. Давайте напишем немного кода и посмотрим более внимательно, что же происходит под капотом.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments13

Спецификатор constexpr в C++11 и в C++14

Reading time16 min
Views219K
Одна из новых возможностей C++11 — спецификатор constexpr. С помощью него можно создавать переменные, функции и даже объекты, которые будут рассчитаны на этапе компиляции. Это удобно, ведь раньше для таких целей приходилось использовать шаблоны. Но тут все не так просто. У тех, кто не так хорошо знаком с constexpr, может сложиться впечатление, что теперь не будет никаких проблем с расчетами на этапе компиляции. Но на constexpr-выражения наложены серьезные ограничения.

В первой части будет рассказано про constexpr, о том, какие будут изменения в стандарте C++14, а во второй части будет пример использования constexpr: библиотека, которая считает результат математического выражения в строке.
С помощью нее можно будет написать следующий код:
constexpr auto x = "(4^2-9)/8+2/3"_solve;
std::cout << "Answer is " << x;

И ответ в виде дроби будет получен на этапе компиляции:
Answer is 37/24
Сразу предупреждаю, код этой библиотеки сложно понять.
Кому эта тема интересна, добро пожаловать под кат!
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments45

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

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


Вот так выглядит ленточное хранилище (наше было поменьше) и библиотечный робот (наш такой же). Китаец в комплект не входит.

Часть 1. Коробка


Помню, стояли последние дни ноября. Уже думая об окончании рабочего дня, я планировал свой вечер, когда вдруг мне сообщили, что в славном сибирском городе N у нашего заказчика сломалась ленточная библиотека. Запчасть сразу же отправили транспортной компанией, но вот уже 3 дня, как она все еще была в пути. Транспортная компания невнятно объяснялась и хмыкала в телефон, а заказчик стал не в шутку нервничать. Прогнозы были неопределенные, поэтому было принято решение везти еще одну запчасть своими силами на самолете. Сотрудник склада вручил мне габаритную коробку весом килограмм десять, обклеенную штрих-кодами и стикерами, и радостно хлопнул меня по плечу со словами: «Только не вздумай в багаж сдавать — помнут».

Коробка меня, безусловно, беспокоила, но не меньшее беспокойство мне внушал пакет с сухим молоком, который в последний момент мне вручил менеджер проекта. «У них там какие-то траблы с молочкой сейчас… из-за непогоды что ли… ребята местные просили 2 кг им привезти. Тебе ж не сложно?» — сказал он. По выражению его лица и характерному жесту ладони, как бы прикрывавшей мне рот, было ясно, как он сейчас хотел, чтобы я оказался сговорчивым или даже немым.
Читать дальше →
Total votes 505: ↑496 and ↓9+487
Comments135

Неочевидная особенность в синтаксисе определения переменных

Reading time3 min
Views6.5K
Предлагается совершенно невинный на вид кусок кода на C++. Здесь нет ни шаблонов, ни виртуальных функций, ни наследования, но создатели этого чудесного языка спрятали грабли посреди чистa поля.

struct A {
  A (int i) {}
};

struct B {
  B (A a) {}
};

int main () {
  int i = 1;
  B b(A(i)); // (1)
  return 0;
}


* This source code was highlighted with Source Code Highlighter.


Вопрос: какой тип у переменной b? Совсем не тот, который можно было бы предположить на первый взгляд.

Ответ под катом
Total votes 87: ↑75 and ↓12+63
Comments70

Открыты исходники первых игр Джона Кармака

Reading time1 min
Views47K
imageНекоторые приятные сюрпризы предугадать просто невозможно.

Хотите посмотреть на исходные коды одних из самых первых 3D-игр, да еще и за авторством знаменитого игрового программиста? Пожалуйста! Вашему вниманию предлагаются исходные коды таких игр, как Catacomb 3-D и Hovertank 3D. Написаны игры когда-то были в Borland Turbo Pascal и Borland C++ 2.0; выложены сегодня под лицензией GPL.

Когда-то Кармак набивал руку на Hovertank 3D (считается самым первым в истории шутером от первого лица). Потом был Catacomb 3D: The Descent (выпущенный все еще Softdisk — но разработанный уже id Software). Обе игры вышли в 1991 году, и вроде как особым успехом не пользовались. Однако, в 1992 году прогремел Wolfenstein 3D, навсегда изменивший мир шутеров. Видимо, открытие исходных кодов приурочено к выпуску новой (и на удивление хорошей) части этой серии. Если вам интересно узнать про историю этих игр чуть больше, то можете почитать мой перевод.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments21

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views210K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →
Total votes 355: ↑352 and ↓3+349
Comments86

Blind Deconvolution — автоматическое восстановление смазанных изображений

Reading time6 min
Views147K
Смазанные изображения — один из самых неприятных дефектов в фотографии, наравне с расфокусированными изображениями. Ранее я писал про алгоритмы деконволюции для восстановления смазанных и расфокусированных изображений. Эти, относительно простые, подходы позволяют восстановить исходное изображение, если известна точная траектория смаза (или форма пятна размытия).
В большинстве случаев траектория смаза предполагается прямой линией, параметры которой должен задавать сам пользователь — для этого требуется достаточно кропотливая работа по подбору ядра, кроме того, в реальных фотографиях траектория смаза далека от линии и представляет собой замысловатую кривую переменной плотности/яркости, форму которой крайне сложно подобрать вручную.


В последние несколько лет интенсивно развивается новое направлении в теории восстановления изображений — слепая обратная свертка (Blind Deconvolution). Появилось достаточно много работ по этой теме, и начинается активное коммерческое использование результатов.
Многие из вас помнят конференцию Adobe MAX 2011, на которой они как раз показали работу одного из алгоритмов Blind Deconvolution: Исправление смазанных фотографий в новой версии Photoshop
В этой статье я хочу подробнее рассказать — как же работает эта удивительная технология, а также показать практическую реализацию SmartDeblur, который теперь тоже имеет в своем распоряжении этот алгоритм.
Внимание, под катом много картинок!
Читать дальше →
Total votes 243: ↑239 and ↓4+235
Comments150

Information

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