LINUX.ORG.RU

Избранные сообщения crazy_man

Накидайте линки на стримы бесплатной музыки для мозговой деятельности

Форум — Talks

Пожалуйста?

Чтобы можно было просто в консольке mpv на линк натравить и все.

Подойдет электронная ambient или что-то другое?

Спасибо.

 , , , ,

Oxdeadbeef
()

Arch не выходит из гибернации

Форум — General

Всем привет. На ноутбуке x555ld стоит arch linux. На окнах очень полюбился режим гибернации. На arch с ним возникают проблемы, работает крайне не стабильно: если система недавно перезагружалась, то иногда восстанавливается нормально, но в большинстве случаев при загрузке после применения хука resume появляется мигающий или не мигающий черный курсор в левом верхнем углу на черном экране без каких либо надписей, ctrl+alt+f* не работают, в systemctl никаких записей об этом неуспешном запуске не наблюдаю. Стоит сказать, что использую загрузчик refind. Swap = 6ГБ (ОЗУ = 4ГБ). Кое-какая информация: https://gist.github.com/anonymous/cc7ea66009ff69d441376cc908dc2377 Может кто знает хотя бы в какую сторону копать? Надеюсь на вашу помощь.

 ,

Simarc
()

Помогите починить dsdt

Форум — Admin

Помогите собрать dsdt без ошибок. Сам уже замучился разбираться в этом asl, жутко странный язык, на русском ничего по нему не нашел, а по-английски не готов читать. Ошибки какие-то не типичные. Также не понятно, как asus собрал dsdt интеловским компилятором 2012 года, если у меня он выдает 5 ошибок (может декомпилируется с ошибками?).

aml: http://rgho.st/8ZqBGGyLn

asl: http://rgho.st/8jJbgdf9Y

Декомпиляция:

Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Input file dsdt.dat, Length 0x161BD (90557) bytes
ACPI: DSDT 0x0000000000000000 0161BD (v02 _ASUS_ Notebook 00000012 INTL 20120711)
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed

Found 18 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Disassembly completed
ASL Output:    dsdt.dsl - 750692 bytes
Обратная компиляция:
Intel ACPI Component Architecture
ASL+ Optimizing Compiler version 20160212-64
Copyright (c) 2000 - 2016 Intel Corporation

Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl   2399:                 Zero
Error    6126 -                    ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl   2483:                         Zero
Error    6126 -                            ^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl  12338:         }
Error    6126 -         ^ syntax error, unexpected '}'

dsdt.dsl  21771:                 Local1 = (0x0A - Local0)
Error    6126 -                      ^ syntax error, unexpected PARSEOP_LOCAL1

dsdt.dsl  24058: 
Error    6126 - syntax error, unexpected $end and premature End-Of-File

ASL Input:     dsdt.dsl - 24058 lines, 750692 bytes, 11855 keywords
Hex Dump:      dsdt.hex - 203 bytes

Compilation complete. 5 Errors, 0 Warnings, 0 Remarks, 0 Optimizations
Ноутбук asus x555ld. Кто в этом разбирается гляньте пожалуйста.

 ,

Simarc
()

Liberation Circuit 1.1

Новости — Игры
Группа Игры

Состоялся релиз Liberation Circuit 1.1 — свободной стратегии в реальном времени, отличающейся от многих конкурентов возможностью запрограммировать юнитов.

( Описание игры и основных изменений )

Репозиторий проекта на Github и скриншоты

Видео процесса игры

Руководство по игре

>>> Объявление о выпуске новой версии

 , , ,

the_electric_hand
()

Как перепрошить себе мозг?

Форум — Talks

Есть ли какие-нибудь способы «удлинить» цепочку Цель - Действие - Достижение цели - Удовольствие? У меня большие проблемы с достижением мало-мальски долгосрочных целей. Стоит только приняться за одно из намеченных Больших Дел, как мозг начинает плакаться и канючить, прося привычную дозу условного дофамина.

Механизм такой:

1) Принимаюсь за работу

2) Начинается внутренний диалог на тему «ты какой-то фигнёй маешься», «да кому это нужно», «впустую тратишь время»

3) Настроение падает, работать не получается

4) Помаявшись, иду за привычной дозой дофамина: флужу в Сети, иду гулять и социобл**ствовать, наркоманить или/и пить

5) Понимаю, что снова профукал время, страдаю от этого

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

Короче, тупик какой-то. Что делать-то? Психологические и философские теоретизирования из разряда «тебе нужно понять», «ты должен осознать» мне нафиг не нужны, на одном понимании и осознании никуда не уедешь. Нужны рабочие практические методы. Плевать, откуда они будут взяты - религия, эзотерика, шаманские учения, гестаповские практики. Лишь бы работало.

 , ,

Deleted
()

Divinity Original Sin Enhanced Edition @ Mesa r600g

Галерея — Скриншоты

Я таки заставил эту игру работать 😊

В процессе была куча сегфолтов и адовые артефакты.

По сути проблемы всего три (конкретно для r600g, в целом для месы – 2):

  1. Контекст OpenGL 4.2. Драйвер r600g рапортует версию 3.3, а движок игры, в свою очередь, работает по принципу segfault driven error handling. Решается просто:
    MESA_GL_VERSION_OVERRIDE=4.2 
    MESA_GLSL_VERSION_OVERRIDE=420
  2. Невалидные шейдеры. Тут сразу:
    • Во-первых, разрабы используют расширение ARB_shading_language_include, которое не поддерживается ничем кроме невидиевской проприетарщины. Но во имя амдшной проприетарщины они запилили в движок fallback режим, в котором это расширение реализуется прямо в движке на коленке, однако включается этот fallback режим (немного) через жопу – они (только) проверяют возвращаемое значение функции glXGetProcAddressARB на nullptr. А glXGetProcAddressARB не обязан возвращать nullptr, кроме адреса надо смотреть еще в список расширений, чего они не делают, а месовская реализация никогда не возвращает nullptr -> segfault driven error handling. Чинится этот баг подстановкой костыля в LD_PRELOAD.
    • Во-вторых, в шейдерах постобработки SMAA/FXAA у них где-то в дебрях кода обложенное ifdef'ами лежит включение очередного расширения, что, блджад, не правильно. После обнаружения этой фигни месовский GLSL компилятор совершенно справедливо прерывает компиляцию, а так как ребята не умеют в обработку ошибок — см. выше. Этот баг обходится с помощью месовского механизма подмены шейдеров в рантайме и костыля-решейпера их кода шейдеров. файла drirc, в который нужно добавить
      <application name='Divinity Original Sin Enhanced Edition' executable='EoCApp'>
          <option name='allow_glsl_extension_directive_midshader' value='true' />
      </application>
  3. Графические артефакты. У них в движке (насколько я понял) есть две принципиально разные ветки кода/рендеринга, которые разделяются по (внимание!) строке в GL_VENDOR: если в этой строке что угодно кроме "ATI Technologies Inc.", то активируется невидиевская ветвь, что на месе приводит к аду, если же доставить в LD_PRELOAD еще один костыль с этой строкой, то рендеринг становится мягким и шелковистым.

TL;DR: Gentoo, дефолтные кеды, ШГ, панелька с автоскрытием.

>>> Просмотр (1600x900, 1682 Kb)

 ,

Stil
()

Список, просто необходимых, адонов для безопасного серфинга ваших интернетов под Лисой

Форум — Security

Список для 2017 года?

Мой список:

  • NoScript
  • uBlock Origin
  • HTTPS Everywhere
  • Self-Destructing Cookies

Что нибудь еще новенькое/лучшее есть? Делимся.

UPD: https://www.privacytools.io/#addons

 , ,

Oxdeadbeef
()

ring и белый пушистый полный лис

Форум — Talks

Собственно в октябре когда очередной взглючил скайп я попробовал завести эту штку, окружение простое и банальное:

ноут и PC в локалке за роутером, unpn в роутере включен (линуксовые программы его успешно используют), тогда я даже не смог отправить сообщение с компа на ноут

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

У кого получилось хоть както заставить сие работать?

 

Deleted
()

20 минут нового гнома. Делюсь восхищением.

Форум — Talks

Привет, ЛОР.
Под воздействием недавнего срача решил потыкать последнего гнома.
Итак.

1) Кедософт по имени Yakuake у меня всю жизнь висит на Alt+` и отлично работает. Но не в гноме. В гноме - никакой реакции. Позже оказалось, что эта комбинация клавиш выполняет необходимую каждому пользователю функцию: рисует превьюшку активного окна. (UPD: Меня уже просветили что это и зачем, спасибо, больше не надо).

2) Куда эти умные, талантливые люди спрятали logout!? Гугло пишет, что выход из сессии на однопользовательских системах выпилен и впиливается обратно только расширением. Это что, правда?

3) Ходить в quicklaunch через дополнительный клик - это сильно новаторский взгляд на само понятие «quick».

4) В панели Activities болталась назойливая надпись по «1 уведомление». Уведомлений было 2: от менеджера носителей и от упомянутой в п.1 якваки. После прочтения обоих надпись все так же гласила об одном уведомлении. После удаления обоих среда перестала реагировать на клики мышкой куда бы то ни было, кроме юзерского меню (но на клик в какой-либо пункт в этом меню реакции тоже уже не было).

5) После смены шрифта при помощи твикалки шрифт в контекстных менюшках не изменился, не помог и рестарт сессии.

6) Кстати, о рестарте. Рестарта сессии гном попросил после того, как я сменил язык. Я согласился, и гном нарисовал мне окошко с надписью навроде «сессия завершится через 60 секунд». Да, эти «60 секунд» тупо стояли на месте и никуда не тикали.

7) Стоит сказать, что я полез менять язык потому, что не нашел, как сказать гному, что предпочитаемым языком ввода для новых приложений я хочу видеть английский, а не русский, который почему-то выперся на первый план, как только я добавил его в варианты ввода. Кстати, зачем кнопочка с пиктограммой клавиатуры под списком «input sources»? Я не вижу какой-либо реакции от щелчка по ней.

8) Звук работает, что не мешает пункту «Settings->Sound->Output» быть девственно чистым от каких бы то ни было устройств, и ползунки микшера весело болтаются безо всякого воздействия на деействительность (в отличие от регулирове громкости в тотеме, которая таки регулирует громкость, ЗАТО при этом в области видео рисуется черт знает что из квадратиков - наверное, это должен был быть OSD).

Извините, что не дотянул до 10 пунктов, но я, наверное, пойду обратно в кеды, а там и до венды рукой подать.

thesis
()

Еще на тему визуализации аудио

Галерея — Скриншоты

По мотивам этого топика, сильно зачесалось оформить себе нескучную музыку на стол. Беглый обзор показал, что самый художественный свист в этом плане выдает проект C.A.V.A., но консоль это немного не то. Поэтому была написана обертка на питоне, которая читает вывод cava и рисует в собственном gtk окне. Бонусом оно умеет часть настроек cava через гуй, играть mp3 через gstreamer, брать картинки из тегов и определять (с переменным успехом) их цвет. Можно посмотреть демо всего этого и поковырять исходники. Там еще некоторые косяки, но что-то я поднаелся, пусть будет так.

Окружение: все тот же старый awesome 3.5.9.

>>> Просмотр (1920x1080, 702 Kb)

 ,

Worron
()

запуск в отдельном X-сервере

Форум — Desktop

Столкнулся с невозможностью в некоторых играх переключаться по ALt-Tab и вспомнил что раньше я запускал игры в отдельном Х-сервере и даже имел для это написанный скрипт.

С тех пор много воды утекло и когда я попробовал по-старинке выполнить

xinit /path/to/program -- :2 vt02

то столкнулся с тем что новые иксы не запустились, а старые померли. Гуглёж в течении часа ничем не помог.

Что изменилось с того времени когда всё работало:

  • В качестве инита пришел systemd(попрошу без холиваров по этому вопросу)
  • На замену kdm пришел sddm
  • На замену kde4 пришла kde5

Подскажите хоть в какую сторону копать? Пробовал loginctl поковырять - ничего не нагуглил по моему вопросу.

 , ,

Loki13
()

Как стать умнее?

Форум — Talks

[жж]
Осознал, что при столкновении с задачами, подразумевающими думанье, отличное от стандартного, я почти полный лох. Примеров таких задач в Интернете полно, даже на ЛОРе их постили. А ведь их решать научиться нужно не ради превосходства в решении абстрактынх головоломок, а ради весьма конкретной необходимости IRL. Вот читаешь «Шерлока Холмса» или что-то вроде и понимаешь, что как главные герои до всего додумываться, да ещё и так быстро, не смог бы... Пробовал (и пробую) тыкать шахматы: установил gnome-chess (кстати, где там вообще настройки?), сыграл c ИИ кучу партий и ещё ни разу не выиграл, т. е. строить стратегию я тоже плохо могу.
[/жж]

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

Линукс тут при том, что чтобы под него программировать годные вещи, нужно хорошо думать.

UPD. Всем, кто советует читать учебники и другие книги: Как стать умнее? (комментарий)

 , , ,

sudopacman
()

Линукс для людей (и не только) - тюнинг Wine

Форум — Desktop

Привет, друзья! В этом треде я соберу полезные советы при работе с Wine! Добавляйте своих советы в комментарии!

1). Если ваша программа перестала работать

На форуме часто спрашивают: «работа-ло-работало, и вдруг всё перестало, что делать?». Отвечают: «это регрессия вткатись на ту версию, в которой работало», «Но я не обновлялся!»

Решение: откройте консоль и наберите

cd ~/
mv .wine wine-oldprefix
WINEARCH=win32 winecfg

Вы создадите новый Wine Prefix, в который приложение можно установить заново! В случае неудачи, вы можете вернуть старый вайн префикс! В случае успеха - удалить старый префикс

TODO: грамотно стереть старые пункты главного меню, и вернуть в случае возврата

2). Ваша программа не работала изначально

Поищите информацию о ней на сайте http://appdb.winehq.org/. Возможно программа работает, но нуждается в дополнительной настройке! Например, копирование файла DLL из C:\WINDOWS\Systtem32 настоящей Windows XP, и прописывание его в winecfg как Native. Установка noCD. Редактирование конфига программы. На AppDB должна быть инструкция!

Рейтинги программ на AppDB:

Platimum: работает без дополнительной настройки
Gold: работает либо после минимального допиливания, либо не работает незначительная часть программы (проде программы активации, лол)
Silver: Работает с проблемами
Bronze: Не работает, но полезный результат может быть, если помучить приложение (и себя)
Grabage: Не работает (или работает только бесполезная часть)

3). Ключ реестра UseGLSL = disabled

В OpenGL 2.0 появился шейдерный язык GLSL. В Direct3D 8 появился шейдерный язык HLSL. Тулкит NVIDIA Cg умеет компилировать шейдеры как в собственном формате, так и в этих двух. Если вы отключите GLSL в Wine, то будет использоваться NVIDIA Cg! Это даёт увеличение производительности игр, например StarCraft 2 выдаёт больше FPS на 30%.

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

Чтобы отключить GLSL, запустите программу wine regedit, найдите папку HKEY_CURRENT_USER\Software\Wine\Direct3D\ (возможно, папку Direct3D придётся создать) и добавьте «Строковый ключ» UseGLSL со значением disabled. Данные чувствительны к регистру, обратите внимание! В случае успеха, при запуске wine из консоли появится сообщение:

err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks

4). Winetricks

[url=]https://wiki.winehq.org/Winetricks]Winetricks это shell-скрипт, упрощающий типовые задачи, необходимые для настройки программ. Запустите winetricks --gui, чтобы увидеть список программ, устанавливаемых в 1 клик! На странице игры на AppDB пишут, что опенсорсные реализации Direct3D 9 не полны, и нужен проприетарный? И там же - инструкция: winetricks directx9 На странице офисного приложения пишут, что необходим .NET 3.5? И там же - инструкция: winetricks dotnet35sp1

Кстати: winetricks glsl=disabled

5). Платный Wine

Компания Codeweavers выпускает платную версию Wine под названием Crossover. В нём гарантируется работа примерно 100 программ - а если что-то не работает, вам обязаны починить. Эти программы устанавливаются «в один клик», в то время как в Wine может понадобиться ручная работа. В Crossover WineTricks заменён на Crossover Tie, а также наболее удобную графическую оболочку.

В Crossover есть отличия от Wine - в настоящий момент это патчи CSMT. Они создают отдельный тред для Direct3D, что увеличивает производительность некоторых игр до 100%.

Несколько месяцев назад, CSMT был добавлен и в бесплатный Wine - однако каждый новый релиз мы узнаём, что добавлена новая порция CSMT (а в предыдущий раз не все из 200 патчей были приняты).

В прошлые годы такими изменениями были патчи DirectWrite (2012) и поддержка Direct3D 9 (2008). Когда пришла пора добавить их в Wine, добавляли порциями, и растянулось надолго.

Стоимость Crossover в год: 60 евро. Если не продлять, работа программ сохраняется - блокируются только обновления. Триал демо-версии - 15 дней. Сайт: https://codeweavers.com/

6). Wine Staging

Wine с экспериментальными патчами. Если в платном упор делается на стабильность, то в Wine Staging - на самые новые изменения. То есть он даже круче, чем платный Wine!

Список изменений:

  • CSMT (Commandstream multithreading) for better graphic performance
  • CUDA / PhysX / NVENC Support for NVIDIA graphic cards
  • DXVA2 GPU video decoding (experimental)
  • EAX 1 support
  • Fixes for various upstream regressions
  • GTK 3 theming support
  • Improved GPU detection
  • Loading of .NET CLI images without entry point
  • Named Pipe message mode support (Linux kernel >= 3.4 only)
  • Performance improvements for IO-heavy programs and memory allocation functions
  • S3 texture compression (DXTn) support
  • Support for installing MSU files
  • Various improvements to d3dx9
  • Various speed improvements (shared memory, RT priority)
  • Windows ACL support

Сайт: https://www.wine-staging.com/ Существуют готовые сборки.

9). Gallium Nine

Открытую реализацию Direct3D 9, созданную в рамках проекта Wine, научили работать аппаратно. Раньше он умел работать только как транслятор поверх аппаратного OpenGL.

Подробнее: http://www.gearsongallium.com/?p=1619

 , , линукс для людей

ZenitharChampion
()

Acestream 3.1. Как собрать для Arch?

Форум — General

Представляется ли возможным сейчас собрать самому acestream для arch версии 3.1? В aur лежит версия 3.0, но она не работает на данный момент с торрент-тв.

 , ,

SanCho
()

Тайм менеджмент

Форум — General

Здравствуйте. Решил заняться тайм-менеджментом, посоветуйте ПО (с возможностью синхронизации).

Для Linux и Android (без гугл-апс).

Нудругого рода советы по теме тоже принимаются.

 , ,

BruteForce
()

Новая могилка

Форум — Talks

Подумываю заменить свой изрядно побитый за джва года S4. Глаз лёг на Xiaomi Mi4c, весьма неплохой аппарат вроде. Плотно их продукцией не пользовался, но изредка игрался с клиентскими xiaomi, прошивка оставила очень положительное впечатление. Из других вариантов - новый самсунг или новый нексус, но они что-то в 3 раза дороже при примерно том же железе. Расскажите про китайцев, кто ими пользуется.

Предложения купить айфон или кирпич с эрзац-ос вроде убунты не принимаются, тому що только под андроид есть БОЖЕСТВЕННЫЙ UC Browser, в котором можно скроллить страницы кнопами громкости и есть adblock.

Трубка будет использоваться для звонков (много), интернетов (много), навигации (иногда), плеера (иногда).

 , , , ,

iz_tabakerki
()

Написание свободной(Free as in Freedom) книги-самоучителя по программированию: планы, цели, задачи

Форум — Development

Итак, я решил написать(или как вариант, собрать из кусочков) книгу-самоучилель по программированию, в которой бы не было глупых и нелепых ограничений на распространение. Однако копилефт я все же считаю приемлемым в данном случае. Общественным достоянием это не будет т.к. вполне могут найтись желающие использовать результат в своих проприетарных книгах, а проприетарные книги — плохо. Лицензия самого текста книги-учебника будет или Creative Commons Attribution-ShareAlike (что позволит без каких-либо проблем переиспользовать текст из википедии) или что-то вроде GNU Free Documentation License (без неизменяемых разделов естественно).

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

Теперь к теме того, на кого книга ориентирована, какие начальные знания предполагаются, чему книга будет учить, какой первый ЯП взять и каков будет авторский самысел: С этим моментом я пока что не определился окончательно, и тут есть что обсудить. В частности, я не вижу особого смысла объяснять какие-то базовые понятия комбинаторики, об этом можно доступным языком прочитать из школьных учебников. Системы счисления(СС), перевод из одной СС в другую - вот это еще можно. One's и two's complement представления знаковых чисел — про это тоже можно написать. Если же человек не понимает комбинаторику, он ее быстро поймет на примере кода, который будет достаточно наглядно это показывать, и который всенепременно будет.
Пока что в качестве первого языка я склоняюсь к Си, и тому есть причины. Все прочие распространенные языки (кроме ассемблера, хотя его трудно назвать распространенным) не настолько близки к аппаратному уровню. Про нужность понимания на низком уровне написано тут http://russian.joelonsoftware.com/Articles/BacktoBasics.html https://habrahabr.ru/company/piter/blog/271347/ , не вижу смысла повторяться. Приведу лишь цитату:

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

Притом еще один важный момент: Си будет изучаться параллельно с ассемблером. Если речь идет об изучении ассемблера, необходимо четко зафиксировать то, на какой архитектуре это все происходит и в какой ОС. Так вот, ОС будет GNU/Linux а архитектура x86-64. Будут постоянно проводиться параллели между тем, что из себя представляет код на Си в текстовом виде, и тем, в какой текст на ассемблере его превращает компилятор. В связи с этим, первым делом будет рассказано о goto и конструкции if(условие) goto метка;. Про конструкции вида

if(условие)
{
  что-то_делаем;
}
else
{
  что-то_другое_делаем;
}
Будет рассказано немного позже, притом это будет рассказано и словами, и через написание эквивалентного кода через if(условие) goto метка;. Циклы, for(){} while{}, do{}while(), конструкция switch-case и break continue внутри них будут так же объясняться через все тот же if(условие) goto метка; притом будет делаться явный акцент на том, что намного лучше использовать нормальные циклы, чем лепить всюду этот условный goto. Кроме того, будет так же рассказано про Labels as Values. Почему так важна эта странная штука, if(условие) goto метка;? Потому что она имеет наипрямейшее отношение к тому, как работают ЭВМ, а всякие циклы СКРЫВАЮТ это. Рекурсия в Си будет объясняться только после того, как будет объяснено, что такое стекфрейм и соглашения вызова, будет сказано про оптимизацию хвостовой рекурсии, и о проблеме забивания стека, если такая оптимизация не происходит, притом это будет наглядно показано в ассемблере. Учиться отлаживать код надо будет тоже «с пеленок», притом отлаживать и ассемблер, и всякие там Си. Будет и про асм-вставки в Си, clobber list. В качестве ассемблера будет рассматриваться GAS, а никакой не NASM т.к. GCC умеет выплевывать ассемблер именно в GAS синтаксисе. Насчет выбора Intel или AT&T синтаксиса - тут я склонюсь пожалуй к тому, что надо ЗНАТЬ И УМЕТЬ ПОНИМАТЬ ОБА. Кроме того, GAS давно уже умеет в оба синтаксиса, так что проблем с этим не будет. Единственная проблема с GAS в том, что это однопроходной ассемблер, так что можно освоить и какой-нибудь NASM, YASM.

Первые хеллоуворды будут написаны вообще в особом стиле, без использования printf() и вообще без библиотеки Си; Будут использованы куски на ассемблере, которые делают системный вызов write и read, и с ними можно(нужно) будет линковаться, чтоб что-то вывести на экран. Будет рассказано и про printf естественно, но только когда будет совершенно четко ясно, что такое вообще va_list. Будет куча отсылок к драфту стандарта Си (недрафт почему-то платный). Будет так же рассказано про устройство ОС. В конце скорее всего будет дано задание сделать свою игрушечную ОС так что предполагается что человек к тому моменту должен уже отлично понимать всякие там связные списки, графы, очереди, спинлоки-аллокаторы свои уметь делать на асме при желании. Алгоритмы сортировки, обхода графов, хеш-таблицы, все это будет объяснено на языке Си, и плюсов вообще касаться я не буду.

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

Кроме того, после моей книги предполагается, что человек должен уметь заниматься такими ненужными (в GNU/Linux) на первый взгляд вещами, как крякинг, реверсинг, исправление ошибок в бинарниках, не обладая исходным текстом. Восстановление логики работы программы по дизасму. Ну и программирование в машинных кодах (без ассемблера, одним HEX редактором).

Как-то уж слишком дофига, не находите? Может быть не надо так глубоко во все это нырять? Жду предложений и критики по поводу того, что нужно, а чего не нужно писать. Возможно что я слишком много хочу.

cast ASM be_nt_all mister_VA

UPD: Программирование и отладка на C/ASM - Первые программы. Знакомство с C и ассемблером. Компиляция, линковка, код возврата. Вывод текста.

 , , ,

SZT
()

fontconfig-2.11.95-1 ломает шрифты в браузере

Форум — General

После апдейта в Archlinux, и как сообщают в других дистрибутвах, пакета fontconfig-2.11.95-1 шрифты в браузере становятся мыльными и жирными.

Я столкнулся с этим еще в тестинге:

https://bbs.archlinux.org/viewtopic.php?id=211045

Чтобы пофиксить, добавляем в

~/.config/fontconfig/fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
	<!-- Disable the effects of 10-hinting-slight.conf -->
	<match target="pattern">
		<edit name="hintstyle" mode="delete"><const>hintslight</const></edit>
	</match>
</fontconfig>

И шритфы становятся нормальными.

 , ,

int13h
()

Присобачить portage к Manjaro/Arch

Форум — General

Короче, в сравнении с гентушным portage арчевский метод сборки кастомных пакетов сосёт безоговорочно. Вот интересно, можно ли как-нибудь прикрутить синей изолентой к Арчу portage? Высказывайте любые идеи. Мозговой штурм, так сказать.

P.S. Кстати, разницы в отзывчивости и производительности между Gentoo и Manjaro я не заметил. Хехе.

 , ,

Deleted
()

Посоветуйте музыки

Форум — Talks

Сверхбыстрого дет-метала/треш-метала.

 ,

int13h
()