RSS
std.rein :: Движок rein [9]
Re: zvon в rein, встречи
hugeping(ping,1) — hugeping
2024-10-17 20:37:27


Перезалил ролики на rutube.

https://rutube.ru/channel/39535814/

idec.talks :: Сеть IDEC [1567]
Re: Новое лицо ii-go
hugeping(ping,1) — hugeping
2024-10-17 19:53:17


А так, я наверное напишу что именно меня не устраивало в старом отображении.

1) Иногда сообщения в обратном порядке, иногда - в прямом. Это выносило мозг. Кстати, я понял что это темплейтом не делается. Это реально в коде уже изменил.

2) Когда видишь "форум" и тыкаешь на ссылку, попасть можешь в разных случаях на разное представление. Иногда на "ленточное" иногда на топик. И понять где ты сейчас находишься - тяжело. Это приводило к "пропусканию" сообщений. Например ты тыкаешь на сообщение, попадаешь в топик и не видишь других сообщений свежих в этой эхе. А на главной же сообщения видны только по эхам! Надоело.

3) В текущем варианте (который наверняка ещё будет дорабатываться) такие решения:

- ленты всегда прямые (от старых к свежим), кроме rss лент которые человек не видит :)
- Первый клик на ссылку на сообщение всегда приводит нас на сообщение в "ленточном" представлении Эхи (не в топик), если только это не заголовок топика. И мы видим все новые сообщения вокруг нашего сообщения.
- Второй клик на [>] отправляет нас в топик, мы как бы "схлопываем" ленту. Назад можно выйти только кнопкой браузера или кликнув на эху в заголовке.

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

Пока это все не влито в master. Кроме внешних отличий очень много внутренних. Которые пока не буду описывать. Подумаю над возможностью иметь несколько "лиц", пока кажется что захардкожено только в том месте где я поменял порядок выборки. Наверное это можно параметризировать.

retro.talks :: Старое железо [62]
Установка Debian 3.1 Sarge из DOS
iiii(blackcat, 2) — All
2024-10-15 23:00:37


Установка Debian 3.1 Sarge из DOS

Часть 1.

Данный способ установки может понадобиться тем, кто хочет поставить Debian, но неоткуда загрузиться (cd нет или не загрузочный, других источников нет). При этом есть рабочий DOS/Win9x. Способ подходит для Etch, Lenny и т.д. Я запускал 6.0 squeeze с icewm на пентиуме вроде 120 с 40 мб памяти.

Основные конвенции: должно быть неразмеченное место на диске (или ненужный раздел) хотя бы в 1 гб.

> Если такого раздела нет, можно переразметить. На диске с sarge идёт fips, но я им никогда не пользовался*. Можно взять древний partition magic для дос. Если данных не жалко и при этом нет дискет, можно поставить grub4dos и через memdisk загрузить виртуальную дискету с загрузчиком, разметить разделы, сделать dos раздел активным, установить dos-загрузчик.

Нужна какая-нибудь сеть для установки пакетов (я даже по нуль-модему ставил). Иначе можно вместо netinst ставить с 1 cd, но тогда будет совсем минимум пакетов. Нужно минимум 24 мб памяти. Для etch минимум 48, но это только для установки, после чего системой можно пользоваться на 32 мб и меньше.

На разделе dos нужно хотя бы мегабайт 150. Начинаем располагать файлы:

http://cdimage.debian.org/cdimage/archive/3.1_r8/i386/iso-cd/
Отсюда берём и записываем на раздел dos образ netinstall

http://archive.debian.org/debian/dists/sarge/main/installer-i386/20050317sarge2/images/hd-media/
отсюда берём linux и initrd.gz

На диске sarge есть loadlin**, либо скачать с http://youpibouh.thefreecat.org/loadlin/

Создать файл linux.bat следующего содержания:
loadlin linux initrd=initrd.gz vga=normal ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw

(для Etch, Lenny: loadlin linux initrd=initrd.gz vga=788)

Я свои эксперименты буду делать с виртуальной машиной с 24 мб ram и 1300 мб hdd.

Честно говоря, про установку Debian мало что сказать, особенно про первый шаг sarge (в отличие от etch и далее, установка sarge двухэтапная). Ну, оно не нашло сетевую карту, я пропустил этот этап, перешёл к дальнейшим. В etch и далее главное не кликнуть сослепу на авторазметку диска, но в sarge авторазметки нет, у меня раздел dos на 300 мб, я сделал раздел / на 950 мб, и осталось 74 мб которые я пустил на своп.

Ставим пакеты, устанавливаем grub, и загружаемся в linux, чтобы перейти на второй этап установки.

Стандартные вопросы, стандартные ответы. Поскольку таймзоны уже послетали, я ставлю таймзону GMT-10, а не Asia/Vladivostok

Никаких установок пакетов на этапе установки лучше не делать, даже в Etch и т.д. А в sarge он и не даст, sarge смотрит не на codename, а на stable/oldstable. С archive.debian.org он поставить не даст. У меня с локального репозитория, где были sarge и etch, но симлинк oldstable стоял на etch, sarge вежливо предложил мне удалить ядро. Я вежливо отказался.

Поэтому, когда спрашивают зеркало, делаем cancel, переходим с config mail system (хотя я просто удаляю exim4, он мне не нужен) или к finish.

Пакеты, что нам нужны, будем ставить потом при помощи волшебного aptitude, в следующей части.

*fips: https://rus-linux.net/MyLDP/BOOKS/rhl-ig-x86-ru-8.0/s1-x86-dualboot-fips.html
** либо можно воспользоваться linld.com: https://busybox.net/~vda/linld/

std.game :: INSTEAD игры [236]
Re: Бездна Света
tuple(ping,54) — boscholeg
2024-10-14 10:11:46


Отзыв написал, спасибо за указание.

pipe.2032 :: Болталка [3554]
Re: Minetest 5.7.0
tuple(ping,54) — Andrew Lobanov
2024-10-14 09:44:47


Неожиданно minetest (кстати, уже вышла 5.9.1) переименовали в luanti.

https://blog.minetest.net/2024/10/13/Introducing-Our-New-Name/

develop.16 :: Обсуждение вопросов программирования [451]
Re: Свой crontab для напоминалок и другого
tuple(ping,54) — btimofeev
2024-10-02 15:03:52


> Это же прекрасно. Теперь все подряд приложения не запускают свои бесконечные фоновые сервисы и не сажают этим батарейку.

В моём случае это работает плохо, так как даже не смотря на постоянное уведомление, telegram куда-то испаряется...

ping.local :: Узел ping [45]
Re: urlы
hugeping(ping,1) — btimofeev
2024-10-01 18:23:59


btimofeev> К примеру, я хочу написать несколько ссылок через запятую https://linux.org.ru, https://opennet.ru(или так https://nethack.org), или пример с точкой https://crawl.develz.org.

Прикол в том, что в урлах могут быть и скобки и запятые и точки. И что угодно. Так что сделать регулярку которая сработает правильно всегда -- невозможно. Я начинал с регулярки, которая не включала в себя знаки препинания в конце и в итоге ссылки на вики отображались часто неправильно.

В итоге я решил что компромисс это включать всё до пробела или перевода строки и просто учитываю это когда размещаю ссылки. Вообще, я бы хотел чтобы стандартом форматирования idec был gmi :)

linux.14 :: Linux [917]
Re: pass - консольный менеджер паролей
btimofeev(ping,6) — tuple
2024-10-01 15:39:06


tuple> Для себя я писал отдельный скрипт, который работает как клиент только для чтения хранилища pass. Одной командой он копирует пароль, а другой командой парсит и копирует поле "login: blabla" или "email: gg@gg.ru", если не найдено первое.

Я использую скрипт https://github.com/carnager/rofi-pass , который позволяет искать и копировать логины\пароли через rofi (https://github.com/davatorium/rofi )
P.S. Edited: 2024-10-01 15:39:40

std.hugeping :: Блог hugeping [599]
Re: Трудная проблема сознания в фильме "Престиж" Кристофера Нолана
Andrew Lobanov(tavern,1) — hugeping
2024-04-15 10:08:43


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

А я так и не понял сути этой проблемы. Сколько ни читал (статейки по верхам) и не беседовал с тобой, так и не понял в принципе в чём суть проблемы. Как будто бы мой мозг старательно избегает этого понимания :)

hugeping> Мир устроен удивительно. Кому-то для осознания этого достаточно увидеть падающую снежинку. Другому -- потребуется погрузиться в мир квантовой механики. Но не замечать этого -- невозможно.

Вот тут согласен. Мир -- удивительнейшая штука.

+++ Лично я вижу в этом перст судьбы – шли по лесу и встретили программиста.

std.club :: INSTEAD клуб [1925]
Разработчик токсик или неоправданные ожидания
hugeping(ping,1) — hugeping
2024-02-03 09:08:23


# Оправдания

Я стараюсь не вступать в споры, особенно в сети. Я также стараюсь соблюдать правило: не отправлять сообщений вечером. Сегодня утром я на свежую голову всё-таки решил, что можно и ответить. :) Потому что получается сообщение на тему "Почему разработчик -- токсик"

> это не я автор и мне больше других не нужно.
> Я уже потратил на всё это много дней бесплатного тестирования,
> Если ты мне не веришь и желания разобраться нет, то на нет и суда нет.
> Но кто я такой, чтобы давать советы специалистам? И зачем тебе тратить на меня своё драгоценное время?

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

# Откровенность за откровенность

Бесплатно, деньги, суд... Добро пожаловать в опенсорс! Что сказать? Я уже 1000 раз видел "перегоревших" людей, которые ожидали чего-то от меня, от сообщества или кого-то ещё. Так это не работает. Я делал INSTEAD для удовольствия и не ожидал "награды". Но и делать из меня "должника" -- не красиво.

Да, твой "багрепорт" бесполезен. Потому что:
1) Слишком много текста, иногда частично противоречивого. Описание бага должно быть:
- конкретным, лаконичным и формально точным.

Когда я получаю противоречивые и непонятные сообщения, в которых свалено сразу несколько вещей. Я не занимаюсь "докапыванием". Это бесперспективно. Я одно обдумываю сообщение, одну деталь. А мне в ответ - охапка новых впечатлений. Это тупик. Начали с того, что dpi в системах не настоящий. Начал проверять, получил несколько новых выводов -- насчёт тормозов, глюков итд. В итоге я даже уже не понимаю что именно мы обсуждаем. Кривая какая-то вылезла гнома про ускорение. Функция какая-то SDL...

2) Часть вещей о которых ты говорил оказались не тем, что я думал в начале.
- Начали с DPI которое в гноме 96, но оказалось что это всё-таки не так и масштабирование работает так, как написано. Для меня это "звоночек"-- проблема не в том, что что-то не работает технически, а в том, что тебе не нравится как это работает. А что именно не нравится - я так и не понял. Например "шрифт слишком мелкий" -- ну, что это значит конкретно? Я такое утверждение просто пропускаю, оно для _диагностики_ -- бесполезно. Наверное стоило бы хотя бы скриншоты ситуаций привести с размерами. Типа - размер этого изображения на моем мониторе AxB.

3) Навязывание своих правил игры при ведении дискуссии

Да, я оставляю за собой право не объяснять свои мысли и выводы. Во-первых -- чтобы не обижать. Во-вторых -- я знаю SDL2 и INSTEAD лучше, но чтобы объяснять свои выводы я должен написать кучу всего. Вопрос -- зачем? Если я считаю, что данных недостаточно - я никогда не гадаю -- я просто говорю -- версий нет. Что касается твоих репортов, я пробовал воспроизводить, конечно, нечто подобное. Я даже спрашивал в чате инстед. Но никто мне ничего такого не вспомнил. Я обязан был отчитаться тоже за проделанную работу, чтобы не получить порцию негатива? :)

4) Да, я потратил своё время. Которое мог бы отдохнуть, например. И я его ценю. Оно драгоценно.

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

# Гипотезы по тому, что я понял

Ты просил написать о том, что я думаю по проблемам. Чтобы это обсуждать. Думаю я вот что:

- масштабирование работает так, как задумано
- артефакты отрисовки -- проблема с системной SDL2 или зависимых библиотек
- 100% загрузка даже при движении мыши: либо неправильная диагностика (тормозит в "кнопке" во время кат сцен, но не в обычных играх), либо проблема с системной SDL2.
- ускорение мышки при прохождении окна инстеда. Воспроизвести не смог, возможно следствие смены экрана разрешения + работа SDL - но код инстеда тут не причём и контролировать это я не могу в любом случае (нет смысла вообще рассматривать этот "баг")

Это именно гипотезы, поэтому я не собираюсь их ни доказывать ни обсуждать. В этом нет смысла, пока их нельзя проверить. Кроме того, я думаю, что само описание проблем я воспринял не так (нечёткое описание).

# Заключение

В общем, это -- я, а не ты разочарован нашим общением. :) Подумай тоже над этим. Собственно, и написал я это всё не для каких-то действий, а так... вдруг. :)

P.S. Давно подумываю о том, что Клуб себя изжил. Возможно, стоит оставить только станцию в gemini. Время форумов - ушло, пора и мне уже на покой.

P.S. Edited: 2024-02-03 09:13:22

std.hugeping.micro :: Микроблог hugeping [63]
Re: Последний день лета
hugeping(ping,1) — hugeping
2024-01-27 13:34:54


В настройках инстеда при этом разрешение должно стоять: тема.

zx.spectrum :: Speccy и совместимые компьютеры [28]
Re: cauldron
Andrew Lobanov(tavern,1) — ii.51t.ru
2023-01-19 04:32:59


>> А как же Exolon, Saboteur, Элита? Диззи в конце концов. Мне вот еще запомнилась бродилка - Elven warrior. Да много всего вобщем-то, перечислять долго.
ii.51t.ru> не зна таких. sky fox ещё помню, потом где возле самолёта в пирамиду заходить, bruce lee и ещё несколько названий, а этих не помню. Элиты у меня, скорее всего, не было, так как в 1990 мне было 7 лет и не думаю, что элиту я бы осилил. Я её и в 35 не осиливал, только потом кое-как в oolite начал играть.

Названия очень хорошо знакомы - игры отличные на самом деле. По крайней мере на момент выхода. Да и в 90-х смотрелись весьма неплохо.

>> Только слишком уж он медленно работал, особенно касаемо графики. Из-за этого я даже пытался в местный asm потыкать, но тяжеловато было по причине малого возраста. А вот игрушки шли на ура.
ii.51t.ru> не знаю, асм я не осилил никогда. ходил в библиотеке все книжки и журналы читал, в том числе иностранные. а вот с бейсиком - навсегда :)

Что, кстати, нынче по бейсику есть годного? Есть gambas, но он только под линуксы. Есть FreeBasic, но я про него вообще ничего не знаю.

+++ Caesium/0.4 RC1

std.favorites :: Избранное [55]
plan.9 :: ОС Plan 9 [18]
Re: dumb
Difrex(dynamic,1) — nvkv
2021-08-25 15:28:22


О, эта штука может пригодиться на очередном CTF :)

std.prog :: INSTEAD программирование [203]
std.tech :: INSTEAD движок [195]
music.14 :: Музыка [131]
Re: Power Metal
vvs(ping,12) — Andrew Lobanov
2021-03-09 13:19:36


AL> Ну, например, из фидо я сбежал не от слишком большого количества случайных попутчиков. Наоборот, мелкое сообщество, готовое писать только ради того чтобы писать, годами по кругу обсуждает одни и те же темы, при этом не особо стремясь меняться. Это гораздо хуже смерти или слишком активной жизни :)

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

std.english :: ENGLISH conference [2]
Right-to-left text support in INSTEAD!
hugeping(ping,1) — All
2020-11-01 09:53:56


Hi!

Thanks to Mehdi Sadeghi the RTL support is merged in master branch!

https://github.com/instead-hub/instead

https://user-images.githubusercontent.com/3101557/89707728-2300ac80-d971-11ea-9334-4de9f237d1f8.png

To use RTL feature you need enable WITH_HARFBUZZ CMAKE flag. SDL2_ttf should be compiled with HarfBuzz too (default off)

There is game tag added -- Direction: rtl|auto.

difrex.blog :: Блог Difrex [13]
Автоматический тайлинг в Sway
Difrex(tavern,23) — All
2019-04-07 15:08:45


Я давно использую i3wm в работе, а после выхода версии 1.0 Sway я перешел на него с i3. Sway - это пракатически полностью совместимый с i3 композитор Wayland. По-этому перейти на него оказалось очень просто. Мои конфиги Sway можно посмотреть на Github.

Почему-то я долгое время думал, что мне в i3/sway не хватает полностью ручного тайлинга, я пробовал различные оконные менеджеры с ручным тайлингом, такие как, `bspwm`, `herbstlutfwm` и другие, но они не заходили. Потом я решил попробовать AwesomeWM, все-таки это по сути фреймворк и на Lua можно написать все, что угодно. В нем мне очень понравилась стандартная возможность автоматического тайлинга. Вот, что мне переодически нужно, подумал я. Но во всех WM, что я пробовал не было нормальной поддержки скретчпадов - это такие плавающие окна, которые большую часть времени скрыты, и показать их можно, например по комбинации клавишь. Что же мне на самом деле хотелось от WM - скретчпады, полуручной и автоматический тайлинг, возможность менять поведение скриптами на любом языке. По всем параметрам подходил Sway за исключением автоматического тайлинга. Было решено добавить его самостоятельно.

После небольшого иследования этого вопроса оказалось, что у sway есть IPC с возможностью подписки на определенные события. Проблема возникла в том, что существующие биндинги к i3 ipc не подходили, т.к. формат дерева в JSON у Sway отличается, а так же добавляются новые возможности, типа, получения устройств ввода, чего не было в i3.

Так я решил написать(и написал) биндинг к Sway IPC на Go. И уже поверх этого начал писать демона, который реализует автоматический тайлинг.

На данный момент я реализовал `spiral` layout, который работает, так как я хочу и полностью меня устраивает. Так же на начальном этапе реализован `left` layout. Демонстрацию этих режимов можно посмотреть в видео ниже.

## Как этим воспользоваться?

Для начала нужно скомпилировать swaymgr. Из зависимостей только Go - поставь его из репозиториев твоего дистрибутива.


git clone https://github.com/Difrex/gosway
cd gosway/swaymgr
go get -t -v ./...
go build -o ~/.local/bin/swaymgr


Теперь можно добавить swaymgr в конфигурацию sway. Добавь следующие строчки в `~/.config/sway/config`


exec_always ~/.local/bin/swaymgr
bindsym $mod+Alt+m exec ~/.local/bin/swaymgr -s 'set manual'
bindsym $mod+Alt+l exec ~/.local/bin/swaymgr -s 'set left'
bindsym $mod+Alt+s exec ~/.local/bin/swaymgr -s 'set spiral'


Комбинации клавишь меняй по своему вкусу.

Swaymgr запоминает свою расскладку для каждого рабочего стола, а состояние хранит в `~/.autotiling.bolt`. В репозитории ты так же найдешь скрипт, который можно использовать, например, с `i3blocks`.

## Про внутреннее устройство

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

Swaymgr - это отлельное приложение, которое использует `gosway/ipc`.

Для того, чтобы взаимодействовать со Sway через unix-socket необходимо два подключения:

1. Соединение для передачи различных комманд
2. Соединение на которое будут приниматься события от оконного менеджера

Так же для хранения настроек рабочих столов используется встроенная, минималистичная база данных Bolt. Функция `newManager() (*manager, error)` создает все необходимые подключения и вызывает функцию инициализации интерфейсов `Layout`. Возвращаемая структура имеет такой вид:


type manager struct {
commandConn *ipc.SwayConnection
listenerConn *ipc.SwayConnection
store *store
layouts map[string]Layout
}


Главный интерфейс, с помощью которого реализуются все режимы - Layout, выглядит он так: Файл `swaymgr/layouts.go`


type Layout interface {
// PlaceWindow must receive an *ipc.Event
// and do the container manipulation
PlaceWindow(*ipc.Event) error
// Manage must store WorkspaceConfig in the database with
// the workspace name, layout name and with the Managed: true
Manage() error
}


У этого интерфейса есть всего два метода:

* `Manage() error` - вызывается тогда, когда текущий рабочий стол переключается в какой-либо режим
* `PlaceWindow(*ipc.Event) error` - вызывается тогда, когда создается новый контейнер на рабочем столе, который является управляемым.

### Как работает spiral layout

Я рассмотрю управлене окнами на примере реализации режима spiral.

Структура этого режима состоит всего из двух полей:

* `Conn *ipc.SwayConnection` - Коммандное подключение к unix-сокету Sway
* `store *store` - Открытое соединение к базе данных, в котой хранятся текущие настройки рабочих столов

При наступлении события создания нового окна, и если текущий рабочий стол управляется, данное событие передается в метод `PlaceWindow(event *ipc.Event)`. Для начала необходимо найти текущее окно на котором находится фокус:


nodes, err := s.Conn.GetFocusedWorkspaceWindows()
if err != nil {
return err
}
var result ipc.Node
for _, node := range nodes {
if node.Focused {
result = node
break
}
}


Далее вся логика позиционированния окон помещается в 7 строчек:


if result.WindowRect.Width > result.WindowRect.Height {
_, err := s.Conn.RunSwayCommand(fmt.Sprintf("[con_id=%d] split h", event.Container.ID))
return err
} else {
_, err := s.Conn.RunSwayCommand(fmt.Sprintf("[con_id=%d] split v", event.Container.ID))
return err
}


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

## Зарезервированные режимы

Я заранее зарезервировал некоторые режимы которые очень хочется реализовать. Вот они:

* `type FiberLayout struct{}` - режим подсмотренный в AwesomeWM. Окна размещаются симметрично друг под другом и вдоль
* `type TopLayout struct{}` - самое большое окно размещается вверху экрана, остальные внизу разделяясь по горизонтали
* `type BottomLayout struct{}` - тоже самое, что и для TopLayout, но главное окно находится внизу
* `type RightLayout struct{}` - тоже самое, что и LeftLayout, но главное окно размещается справа

Проект на Github. Учитывай, что это пока самая ранняя реализация и тут могут быть баги в больших колличествах, правда ничего критичного я пока не находил - пользоваться можно. Буду очень рад баг-репортам и фич-реквестам, а так же особенно пулл-реквестам. Лицензия проекта: Apache.

Ссылка: https://difrex.lessmore.pw/post/sway-autotiling/