Pull to refresh
183
0.2
Константин Власов @CaptainFlint

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

Send message

Building VirtualBox for Windows

Reading time 39 min
Views 9.8K

 Intro


It is a well-known fact to many users of the Windows version of VirtualBox (from now on, VB; not to be confused with Visual Basic) that starting with 4.3.14 the developers added the so-called «hardening» designed to prevent malicious injections into VB. Although the intentions were good, the implementation happened to cause numerous conflicts with totally legitimate products such as antiviruses, cryptographic modules and even some updates of the Windows itself, and when such a conflict occurs VB simply stops working. Users have to wait for at least a month till the new VB version is released with the proper exclusions added. Worst case is, the conflicting application or update has to be uninstalled, or VB itself has to be downgraded to the version 4.3.12 which was the latest one without hardening. Numerous requests to add a user-controlled exclusion list, or an option to disable hardening, are all left unanswered. The only reply from developers sounds like «if you don't want it build it from source code yourself». Well, looks like we'll have to.

Although the build instructions are described on the official project Wiki, they are incomplete and somewhat outdated, while the build procedure often fails with vague error messages. So when, in the end, I got it working I thought it was worth documenting in full details in a separate article. This instruction is being updated from time to time, and at the moment it is adapted to building VB version 6.1.18. However, if you need information on building earlier versions of VB or auxiliary libraries you can always get it from the history of changes.

OK, I'm in
Total votes 9: ↑8 and ↓1 +7
Comments 0

Собираем VirtualBox под Windows

Reading time 40 min
Views 37K

 Введение


Как известно большинству пользователей Windows-версии VirtualBox (далее — VB, не путать с Visual Basic), в релизе 4.3.14 разработчики этой программы добавили дополнительный механизм защиты, называемый «hardening» (что можно перевести как «упрочнение»), который привёл к многочисленным проблемам совместимости VB с антивирусами, драйверами крипто-модулей и даже отдельными обновлениями самой Windows, в результате чего виртуальные машины попросту отказываются запускаться. В лучшем случае пользователю приходится ждать около месяца, пока проблемная программа, о которой он сообщит разработчикам, окажется учтена в следующем релизе VB. В худшем случае придётся либо удалять конфликтующую программу (или системное обновление), либо откатывать VB до версии 4.3.12 — последней, в которой не было этой защиты. Многочисленные предложения к разработчикам о добавлении пользовательского списка исключений или опции, отключающей защиту целиком, остаются без внимания. Единственный внятный ответ с их стороны звучит так: «не хотите защиту — компилируйте из исходников сами». Что ж, придётся этим заняться.

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

Я заинтересован
Total votes 23: ↑23 and ↓0 +23
Comments 32

Everspin начала поставки STT-MRAM-памяти

Reading time 2 min
Views 29K
image

Уже несколько лет ходят слухи о разработке новых видов компьютерной памяти, однако до сих пор эти проекты оставались на уровне лабораторных экспериментов или, в лучшем случае, штучного производства. К счастью, ситуация постепенно начинает меняться. Компания Everspin, занимающаяся разработкой магниторезистивной памяти, объявила о начале поставок 64-мегабитных модулей. Ранее максимальный объём выпускаемых ими чипов составлял лишь 16 мегабит, причём технология MRAM не позволяла существенно увеличивать плотность компоновки, поскольку это вызывает чрезмерное возрастание тока записи. В новых модулях используется технология переноса спинового момента (Spin-transfer torque), когда для смены ориентации поля в магнитном материале используется не наложение внешнего магнитного поля, а протекающий ток, в котором преобладают электроны с нужным направлением спинов. Это позволило обойти проблему увеличения плотности чипов.
Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 15

Проект Animusic 3 просит о помощи

Reading time 1 min
Views 2.1K
Наверное, многие из вас уже знакомы с творчеством компании Animusic, изумительными музыкальными анимациями. На Хабре про них уже писали, и если кто-то до сих пор не сталкивался с этими произведениями, настоятельно рекомендую заполнить этот пробел. К сожалению, есть все шансы на то, что очередной альбом может не выйти, и в связи с этим компания просит сообщество помочь финансовыми вложениями посредством Kickstarter-проекта.
Хочу подробностей
Total votes 33: ↑28 and ↓5 +23
Comments 6

Улучшаем форумный движок на стороне клиента

Reading time 7 min
Views 1.1K
Многие из нас знают о возможности менять внешний вид веб-сайтов локальными средствами, без модификации файлов на сервере. Существуют разные способы делать это, самые популярные — пользовательские скрипты и стили, которые автоматически применяются браузером к загруженной странице. Разумеется, возможности такой правки весьма ограничены, и решить какую-то серьёзную задачу, требующую нестандартного запроса к базе, таким способом не получится.

Тем не менее, даже в этом случае может оказаться, что не всё так безнадёжно. В данной статье я хочу рассказать о собственном опыте создания локальной надстройки для форумного движка phpBB2, которая исправляет отображение статуса прочитанности для тем и сообщений. Хоть результатом данной попытки оказался вполне работоспособный продукт, которым я теперь постоянно пользуюсь, целью написания данной статьи всё же является не презентация продукта, а описание подхода к решению проблемы. Код полученной программы я выкладываю, но в силу специфики задачи он недостаточно универсален и не может использоваться как есть, без предварительной (и довольно кропотливой) настройки под движок конкретного сайта. Решил предупредить об этом заранее, чтобы не было разочарований.
Читать дальше →
Total votes 10: ↑6 and ↓4 +2
Comments 9

Проблемы использования SVG-кнопок в браузерах

Reading time 10 min
Views 20K
Данная статья является продолжением статьи Рисуем кнопку в SVG, в которой рассматривались проблемы создания SVG-изображений, предназначенных для использования в качестве кнопок на веб-страницах. Здесь я перейду непосредственно к внедрению полученных картинок в HTML-код и расскажу, с какими проблемами столкнётся при этом разработчик, как эти проблемы можно решать и что делать с проблемами, которые решить не удаётся.

На всякий случай (для тех, кто не читал первую статью) повторю, что многие из проблем решить так и не удалось, и что это в конце концов вынудило меня отказаться от идеи использования SVG. Так если вам не хочется тратить время на чтение статьи, не приводящей к реально использующемуся результату, вы вполне можете её пропустить. Тех же, кому несмотря на это интересны детали и конкретика, прошу под кат.
Читать дальше →
Total votes 31: ↑24 and ↓7 +17
Comments 43

Рисуем кнопку в SVG

Reading time 7 min
Views 8.4K
В настоящее время я работаю над одним веб-приложением, и вот захотелось мне обновить нынешний, довольно-таки топорный интерфейс на что-то более современное, более красивое. Начать решил с кнопок как с наиболее технически нагруженной части: в них требуется не только заменить внешний вид, но и добавить индикацию нажатия и обработку событий. Сразу же возникла проблема: как обеспечить масштабирование? Обычной растровой картинкой не обойтись, так как у пользователей могут использоваться разные шрифты (как вид, так и размер), и картинка-подложка не будет под них адаптирована. Логично было бы попробовать использовать для этих целей SVG, чем я и занялся.

К сожалению, в конечном итоге я пришёл к выводу, что овчинка не стоит выделки: слишком много проблем вылезло при попытке реализации этой идеи. Тем не менее, я не считаю это время потерянным: я приобрёл новые знания и навыки и теперь хотел бы поделиться ими с сообществом, чтобы облегчить жизнь тем, кто решит повторить мой путь. Описать свои мучения я планирую в двух статьях: в первой — работа над собственно SVG-картинкой, во второй — техника внедрения полученной картинки в качестве кнопок, возникающие при этом проблемы и их решение или обходные пути. Кому интересна первая часть, прошу под кат.
Читать дальше →
Total votes 41: ↑38 and ↓3 +35
Comments 49

Небольшой трюк для быстрого переключения между приложениями

Reading time 4 min
Views 12K

Преамбула


Так получилось, что я с давних пор пользуюсь мышками Logitech — MX300 и MX310. У них над колёсиком есть дополнительная кнопка, на которую можно повесить различные функции. В старых драйверах (MouseWare) в числе этих функций была «Recall Application», по которой происходило переключение на предыдущее активное окно — примерно то же, что происходит, если однократно нажать Alt+Tab. Мне эта возможность сразу же пришлась по душе: нередко возникает ситуация, когда нужно переключиться в какое-нибудь окно, что-то там сделать (например, скопировать строку) и вернуться назад (соответственно, чтобы вставить эту скопированную строку). Alt+Tab в данном случае оказывается менее удобен (т.к. левую руку надо снимать с сочетания Ctrl+C, а потом возвращать в прежнее положение для нажатия Ctrl+V).

Но вот я поставил себе Windows XP x64, и оказалось, что MouseWare для 64-битных систем недоступен. Для MX310 обнаружилась более современная утилита SetPoint, но функции «Recall Application» в ней больше нет. К счастью, удалось настроить на нужную кнопку отправку сочетания клавиш Alt+Tab, однако мигание окошка со списком задач в момент переключения немного раздражало. Так что, преодолев лень, я сподобился написать небольшую утилитку, которая помогла устранить этот недостаток.
Читать дальше →
Total votes 24: ↑15 and ↓9 +6
Comments 19

Необычный оператор диапазона

Reading time 6 min
Views 4.8K
Должен предупредить, что это ещё одна статья, не содержащая никаких откровений. Для тех супер-гиков, которые назубок знают весь perldoc, она будет абсолютно бесполезной, так что, уважаемые супер-гики, можете проходить мимо и не информировать, что всё это есть в доках. Я и так это знаю. :-) Моя статья для всех остальных, для тех, кто весь perldoc целиком либо не осилил, либо осилил, но не понял, либо понял, но не запомнил.

Я думаю, многие знают о так называемом операторе диапазона, записывающемся как .. (две точки), с помощью которого можно быстро создавать массивы из набора последовательных элементов. Например, следующий код создаёт массив из 35 чисел: 3, 4, 5, …, 37:
my @arr = 3 .. 37;
Помимо чисел можно использовать строки: в этом случае для генерации элементов массива будет выполняться так называемый магический инкремент (например, можно задать диапазон букв: 'a' .. 'z').

Однако оператор диапазона может использоваться и в скалярном контексте, принимая в качестве операндов булевские выражения и возвращая булевский результат. И вот здесь начинается самое интересное, потому что это оператор с состоянием: результат операции будет зависеть не только от значений левого и правого операндов, но ещё и от истории вызовов данного выражения!
Читать дальше →
Total votes 45: ↑36 and ↓9 +27
Comments 20

Этот загадочный while…

Reading time 3 min
Views 6.7K
«Все потребности в нем заложены, какие только бывают на свете. И все эти потребности он может удовлетворить. С помощью нашей науки, разумеется.»
А. и Б. Стругацкие


Я думаю, многим из Perl-программистов знакома следующая конструкция построчного чтения содержимого файла:
while (<FILE>) {
    # do something
}
Этот код стал настолько привычным, что многие даже не задумываются, а как же он, собственно, работает. В данной статейке я опишу одну особенность, о которой весьма полезно помнить.
Читать дальше →
Total votes 62: ↑49 and ↓13 +36
Comments 65

Особенности национальных выражений

Reading time 2 min
Views 1K
Захотелось мне поделиться с хабравчанами-перловодами одним интересным случаем, произошедшим у нас на работе. В процессе ревизии старого кода была обнаружена некая загадочная конструкция (здесь и далее реальный код несколько сокращён и приглажен):
sort { my ($x, $y) = ($a, $b); ($x =~ s{/}g) <=> ($y =~ s{/}g); } @array;
Казалось бы, обычная сортировка с переопределённой функцией сравнения. По изначальной задумке автора здесь должна была быть сортировка массива строк по количеству прямых слэшей в этих строках (известно, что выражение замены возвращает в качестве значения количество произведённых замен), однако что-то в этой функции не то. Вроде бы, «заменительная» часть выражения s/pattern/replace/g никогда не была опциональной, однако именно это мы видим в выражениях $a =~ s{/}g. Как же оно работает? Вот с этим мы сейчас и будем разбираться.
Читать дальше →
Total votes 46: ↑39 and ↓7 +32
Comments 54

Книга о Total Commander

Reading time 1 min
Views 1.1K
Обложка Авторы: Власов К. А., Казаков В. Ю.
Название: Total Commander: эффективная работа с файлами и архивами
Серия: В подлиннике
Издательство: БХВ-Петербург

Формат: 70*100 1/16, мягкая обложка
Объём: 752 страницы
ISBN 978-5-9775-0022-7
Тираж: 2000 экз.
Цена: от 400 руб.

Интернет-магазины:
OZON.ru
Books.Ru
Аннотация

Работать с файлами и каталогами можно по-разному. Кто-то не знает ничего, кроме стандартного Проводника, и даже простые операции получаются у него долгими и неудобными. А кто-то освоил другие, более мощные и удобные инструменты и может справиться с любой задачей играючи. Хотите уметь работать с файлами так же эффективно? Тогда эта книга для вас! Прочитав её, вы научитесь пользоваться замечательным файловым менеджером Total Commander, который превратит вас в полноправного хозяина своего компьютера и сделает простым и приятным то, что прежде казалось невероятно трудным или даже совершенно немыслимым.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Comments 3

Information

Rating
1,978-th
Location
Анталия, Анталья, Турция
Registered
Activity