Как стать автором
Обновить
15
0
Помыткин Илья @Delphist2008

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

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

Разборка электронной книги Pocketbook 611

Время на прочтение 3 мин
Количество просмотров 131K
Вчера мне «на посмотреть» оставили мёртвую электронную книжку Pocketbook на E-Ink, модель 611.



Жалобы
стандартно «Зависла при перепрошивке»+«мы ничего не трогали!»

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

Осмотр
Перезагрузка не помогает, выключение не помогает, подключение к питанию через USB (компьютер и СЗУ с различными I от 0.25А до 1А) не помогает, длительная зарядка не помогает, «перепрошивка в слепую» не помогает

Диагноз
Всё плохо. Сведения о поломках таких книг скудны, но в целом профильные форумы дают вывод — неудачная модель для неудачников, покупайте Amazon Kindle, shit happens.

Направление
В морг. Остаётся только вскрытие, со слабой надеждой на воскрешение, как на чудо)… Книжка не имеет никаких «пользовательских» отсеков, аккумулятор встроенный, с какой стороны разбирать — непонятно. Youtube молчит и не даёт рецепта… 1 зелёная часовая двусторонняя отвёртка добыла нам фоторецепт полной разборки до…



Рецепт под катом
Читать дальше →
Всего голосов 49: ↑45 и ↓4 +41
Комментарии 50

Байки о несовместимых приложениях

Время на прочтение 7 мин
Количество просмотров 11K
Это отрывки из бесплатной главы из бумажной книги «The Old New Thing». Они ничему не пытаются научить; это просто короткие забавные эпизоды из будней борцов за совместимость новых версий Windows со старыми приложениями.

Изменяем номер версии Windows


Изменить номер версии, который Windows сообщает программам, не просто, как кажется. Например, некоторые программы проверяют номер версии так:
UINT Ver = GetVersion();
UINT MajorVersion = LOBYTE(uVer);
UINT MinorVersion = HIBYTE(uVer);
if (MajorVersion < 3 || MinorVersion < 10) {
    Error("This program requires Windows 3.1");
}

Представьте себе, как этот код отработает на Windows 95, у которой номер версии 4.0. Вторая проверка срабатывает из-за того, что 0 меньше 10.
И ладно бы программа просто выводила сообщение об ошибке и завершалась. Многие рушились: очевидно было, что их поведение на «неподдерживаемых» версиях Windows никогда не тестировалось.

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

Программы для MS-DOS тоже не все гладко реагировали на изменение версии ОС. Это удивительно потому, что к тому времени у MS-DOS уже были десятки выпущенных версий и под-версий, и разработчикам пора было бы уже научиться проверять номер версии. Но например, один пакет программ использовал номер версии DOS как индекс в таблице функций: по собственной функции для каждой вышедшей версии. В таблице было пять функций: от MS-DOS 1.x до 5.x. Когда программа запускалась под MS-DOS 6.0, она вызывала адрес за пределами таблицы, и рушилась.

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

Читать дальше →
Всего голосов 147: ↑140 и ↓7 +133
Комментарии 144

SATA-контроллер, смазанная фотография и конкурс

Время на прочтение 6 мин
Количество просмотров 15K
Несколько дней назад, на форуме KolibriOS зарегистрировался англоязычный пользователь с ником mdickie, и пожаловался, что в его ноутбуке Dell Latitude C640 не работает мышь: board.kolibrios.org/viewtopic.php?f=4&t=2389. Так как недавно у нас появилась поддержка USB (в частности, USB-мышей), то наш основатель Mario_Z логично предположил, что mdickie использует какую-то старую версию, и посоветовал ему скачать последнюю ночную сборку и проверить на ней.

Предположение Mario_Z оказалось верным — в ночной сборке мышь заработала, но сломалось что-то другое:
It works with the latest build,
Thanks
EDIT: It freezes slower.
К сожалению, пользователь был немногословен (либо английский — не его родной язык), поэтому некоторое время мы выясняли, что же именно не так, задавая наводящие вопросы, пока картина не прояснилась:
I mean it needs a little more time to freeze the mouse.
Oh yes, the whole system freezes. The Keyboard and the clock aren't working.
Здесь уже я догадался, что причиной зависания, скорее всего, является драйвер SATA IDE, который в настоящий момент разрабатывает Mario_Z. На данный момент, в KolibriOS есть родной драйвер только для контроллера PATA, а поддержка контроллера SATA в режиме IDE осуществляется только через BIOS, что вносит 2 ограничения:
  1. Доступ к дискам через «костыль» BIOS очень медленный, поэтому фильм с такого диска в KolibriOS не посмотришь — будет идти рывками. Скорость копирования файлов тоже неприемлемая — можно пообедать, пока копируется большой файл.
  2. Некоторые диски без драйвера вообще никак не видны в системе.

Ввиду этого, на сегодняшний момент у нас пишутся 2 драйвера SATA (параллельно):

Оба драйвера имеют одну неприятную особенность — наглухо подвешивать систему в случае любой нештатной ситуации — и тогда требуются логи, чтобы увидеть конфигурацию дисков и попытаться узнать причину зависания. Именно это и произошло у mdickie, и поэтому я попросил его приложить логи. Естественно, при зависании всей системы скопировать логи прямо из KolibriOS в текстовый файл не получится, и в таких случаях мы просим сфотографировать лог с экрана монитора на смартфон или фотоаппарат, и выложить фото на нашем форуме. И здесь мы переходим ко второй части статьи.
Вторая часть
Всего голосов 40: ↑35 и ↓5 +30
Комментарии 70

Много бесплатных книг по программированию

Время на прочтение 7 мин
Количество просмотров 344K
Читать дальше →
Всего голосов 202: ↑192 и ↓10 +182
Комментарии 42

Ещё немного автоматической генерации музыки

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

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

Итак, мы хотим написать нечто достаточно музыкальное.
С чего начать?
Всего голосов 37: ↑35 и ↓2 +33
Комментарии 42

Автокомпозитор мелодий Muzz

Время на прочтение 10 мин
Количество просмотров 67K
Как сочинить музыку? Где ее готовую взять чтобы, например, озвучить видео на ютубе (и чтобы там не появилась метка о нарушении авторских прав)? Как написать эту самую музыку самому когда никаких мотивов не лезет в голову? Откуда взять идеи о новой мелодии, хотя бы об ее отрывках?

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



И мой рассказ будет посвящен алгоритму, работающему на основе такого рандома, и соответствующему фрагменту софта, проигрывающему свежесочиненные мелодии прямо в колонки или сохраняющему в MID-файлы.

Далее
Всего голосов 76: ↑69 и ↓7 +62
Комментарии 60

Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту

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

Добрый день, уважаемые хабровчане. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый драйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать дальше →
Всего голосов 286: ↑279 и ↓7 +272
Комментарии 44

Google теперь в ответе за вранье пользователей

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


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

Именно так решил Верховный Суд Виктории — он оштрафовал Google на 200 000$ за то, что поисковик вовремя не убрал из выдачи клеветнические данные о связи музыкального промоутера (Milorad Trkulja) с организованной преступностью. Суд постановил, что Google в данном случае — издатель данной информации, ибо отображает данное содержимое со ссылкой на сайт, содержащий клевету.
Читать дальше →
Всего голосов 94: ↑87 и ↓7 +80
Комментарии 147

О тонкостях повышения performance на С++, или как делать не надо

Время на прочтение 4 мин
Количество просмотров 34K
image
Однажды, много лет назад, пришел ко мне клиент, и слезно умолял поручил разобраться в одном чудесном проекте, и повысить скорость работы.

Вкратце, задача была такой — есть некий робот на С++, обдирающий HTML страницы, и собранное складывающий в БД (MySQL). С массой функционала и вебом на LAMP — но это к повествованию отношения не имеет.

Предыдущая команда умудрилась на 4-ядерном Xeon в облаке получить фантастическую скорость сбора аж в 2 страницы в секунду, при 100% утилизации CPU как сборщика, так и БД на отдельном таком же сервере.

Читать дальше →
Всего голосов 134: ↑117 и ↓17 +100
Комментарии 65

Чем же занимаются программисты, и как объяснить это остальным?

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

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

Как рассказать им об этом, не пугая страшными терминами и фрагментами кода?
Под катом я воспроизведу такой рассказ, а также развенчаю несколько мифов о программировании.
Случай из жизни
Всего голосов 187: ↑156 и ↓31 +125
Комментарии 235

Еще раз об изучении языков

Время на прочтение 7 мин
Количество просмотров 189K
Тема изучения иностранных языков уже много раз обсуждалась здесь. В архивах можно найти много различных интересных способов и практических советов по поводу изучения языков. В какой-то момент я решил, что мне тоже, наверное, стоит поделится опытом, накопленным в процессе изучения иностранных языков: более-менее бегло я могу говорить на шести языках.
Всё, о чём я пишу здесь — это моё личное понимание проблемы изучения языков и моё видение возможных решений. Я не претендую на какую-либо истину или научность и не имею законченного профессионального образования в области лингвистики.
Я не буду рассматривать здесь изучение языка на уровне туриста, где достаточным уровнем является способность понять основные пункты меню в ресторане, сделать заказ или суметь спросить дорогу и понять, что тебе ответили. Знание языка на таком уровне, конечно, полезно, но это нельзя назвать «владением языком». Для меня уровень владения начинается с того момента, когда я могу спокойно читать тексты на этом языке используя лишь словарик, встроенный в электронную читалку (раньше AlReader, потом СoolReader, сейчас наконец PocketBook Reader).
Читать дальше →
Всего голосов 74: ↑68 и ↓6 +62
Комментарии 97

Воксельный движок Atomontage

Время на прочтение 2 мин
Количество просмотров 24K
Почитав статьи и посмотрев ролики на тему «революции» в компьютерной графике от Euclideon с их Unlimited Detail движком, решил посмотреть, что нового есть в этом направлении. И наткнулся на один интересный движок Atomontage.

image

Парни работают над ним с 2004 года и имеют десятилетний опыт в геймдеве, в том числе и проектах уровня AAA. Кстати, ведущий разработчик из Словакии, живет в Братиславе. За 7 лет работы сделано на первый взгляд не очень много, но по своему опыту знаю, что когда делаешь, что-то новое — копаешь один в новых направлениях, то на это требуется время.
Читать дальше →
Всего голосов 84: ↑83 и ↓1 +82
Комментарии 71

Путь инди. Как я начал делать игры

Время на прочтение 4 мин
Количество просмотров 23K
Приветствую всех! Решил поведать вам свою историю, возможно, кому-то это будет интересно. А если это кого-то вдохновит на подвиги – значит, я не зря взялся за эту статью.

Коммерция


Недавно стукнуло 3 года с того момента, как я стал профессиональным гейм-девелопером. Слово «профессиональный» здесь не в смысле «крутой разработчик», а в том плане, что это является моим единственным источником дохода.
Итого, с 2009-го по 2011-й было разработано 7 игр. Количество геймплеев со всех игр стремится к 100 миллионам, а доходы с этих игр – к [вырезано цензурой]. Но об этом я сегодня писать не буду, ибо в этом мало романтики, и слишком много цифр. Сегодня речь пойдёт о том, что же предшествовало выбору профессии.
Читать дальше →
Всего голосов 178: ↑159 и ↓19 +140
Комментарии 87

Информация

В рейтинге
Не участвует
Откуда
Искитим, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность