LINUX.ORG.RU

Сообщения svyatozar

 

Постал 2 бесплатный на GOG

Форум — Games

Классический 3Д шутер с чёрным юмором теперь бесплатный на ограниченный срок (осталось 33 часа).

По идее у этой игры была Линукс версия, не вижу её на GOG.com.

Картинка с gog.com

Перемещено hobbit из games

 ,

svyatozar
()

shex - мой просмотрщик двоичных файлов. С++, Vulkan, glfw3

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

Сегодня, наконец, допилил функциональность и решил выложить исходники.

Функциональность минимальная. Можно двигать клавишами вверх, вниз, page up, page down, [shift] + F3-F9, колесом мыши, а так же мышкой двигать линейку прокрутки слева.

Просто потихоньку изучаю Вулкан. Гуй встроен в шейдер.

Всем хорошего дня!

https://github.com/alexkh/shex

>>> Просмотр (600x1067, 56 Kb)

 , , , ,

svyatozar
()

Моё понимание ООП

Форум — Development

Мою прошлую тему загадили и утопили в молоке, завалили вопросами типа «а что ты понимаешь под ООП». И жалуются что я не отвечаю. Но не на все вопросы есть простые ответы. «Один дурак может задать столько вопросов, что сто мудрецов не смогут ответить!». И всё же я попробую представить своё видение.

Если взять просто данные, хранящиеся в структурах, то их можно сравнить с бухгалтерскими счётами: ты можешь сам прочитать данные, можешь сам изменить их, можешь переписать их себе в блокнот, можешь положить на хранение в ящик или передать их другому.

Объект - это как банкомат. Это - чёрный ящик, который надо подключить в сеть, подключить в интернет, при чём ты не знаешь сколько киловатт энергии он потребляет, сколько траффика он жрёт, сколько других людей и банкоматов влияют работу этого, ты не знаешь сколько данных он хранит. Он полностью сам решает, принимать ли твою банковскую карту или нет. Он может снимать зависящее от инфляции количество денег при запросе на выдачу состояния счёта. Он может быть устаревший или усовершенствованный, где функции могут иметь странные побочные эффекты. Он может вставить в выписку счёта рекламу. Да мало ли что ещё. Это - посредник со всеми вытекающими последствиями. Даже если ты пишешь его сам, используя его в разных проектах, ты можешь наделать изменений, которые могут неявно повлиять и на старые проекты побочными эффектами, либо потерей точности при дополнительный преобразованиях и т.д.

Вобщем, в первом случае модель, где ты контролируешь объём памяти, занимаемый данными, их формат (например, целый или с точкой) ты хранишь их в своей комнате и сам решаешь, делиться этими данными или нет. Это всё возможно из-за того что у тебя есть дополнительные знания (контекст), которые нигде в системе не хранятся. Твои функции, работающие с этими данными, предполагают что данные хранятся в том или ином формате и это позволяет избежать лишних преобразований, а так же необходимость в каждом объекте хранить лишние метаданные.

В случае с объектом ты можешь не знать где хранятся данные (в том числе, географически), сколько памяти задействовано, сколько ресурсов процессора задействовано на их обработку. Видна только маска - интерфейс.

Сразу хочу отметить, что я не против банкоматов, они не идеальны, но пока безналичный расчёт не везде принимают, приходится ими пользоваться. Проблема ООП в том, что в нём всё является таким «банкоматом» и везде принимается только нал. Любому очевидно, что когда имеешь дело с банкоматами, ты не можешь ничего оптимизировать.

ООП - это такая модель, в которой «всё является объектом», то есть данные заворачиваются в объект и вместо естественного для вычислительной машины хода обработки данных «данные на входе -> данные на выходе», твой код имеет дело с интерфейсами, т.е. идёт общение с «чёрным ящиком», который «сам знает что делать».

Простой пример: веб-браузер HTML+CSS+Javascript В этом примере HTML - это данные в чистом виде. Они не «знают» как себя отобразить. CSS - тоже данные. Это не объекты. И есть Javascript код, который имеет полный доступ к дереву документа. И когда ты пишешь веб-браузер, у тебя данные на входе - веб страница на выходе - это информационн-ориентированный подход (Data-oriented), в центре которого данные, а не объекты. Сохраняя страницу в формате .pdf ты тоже создаёшь данные на выходе. Эти данные можно отправить в другую программу для дальнейшей обработки. Это как инструмент.

 

svyatozar
()

О вреде ООП надо говорить! Это - слишком важная тема, чтобы отмалчиваться.

Форум — Talks

Здравия всем!

Я редко пишу на этом форуме, никого здесь не знаю… Но всё-таки решил попробовать. Удалят - и ладно.

Хочу лишь обратиться к молодому поколению программистов: в университете вам будут впаривать ООП - не ведитесь. Я много лет жизни потерял пытаясь понять что это за зверь. Это настоящая религия. Тебя убеждают что это хорошо, а когда ты понимаешь что это плохо - тебе говорят: ну ты просто ещё не знаешь паттернов, 5 принципов дяди Боба и т.д.

Много лет спустя, я поизучал эти паттерны, принципы и пришёл к выводу. Всё это демагогия. Это реально секта. Создана парадигма, которая не работает из-за противоречия в самой своей сути. И чтобы оправдать её существование была создана куча теорий, которые добавляют сложность в систему.

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

информация ничего не значит без контекста.

В классическом примере ООП используется для пользовательского интерфейса. ООП объект хочет быть самостоятельным, «знать» как себя отобразить. Но это зависит от размера экрана, а если вывод в документ PDF, то предпочтительнее вектор, а не растр и так далее. Рано или поздно работа с ООП постоянно натыкается на конфликт: как передать контекст объекту.

Об этом много сказано, есть много примеров и разборов. Я уверен что студентам некогда читать длинные статьи где много буков. Они легко гуглятся и вот одна из наиболее кратких со ссылками на более подробные https://habr.com/ru/post/451982/

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

Перемещено xaizek из development

 

svyatozar
()

Мой пульт управления GrandOrgue для Sway WM

Галерея — Рабочие места

Я заметил что на форуме много музыкантов, поэтому возможно, кому-то будет интересно.

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

Написано полностью на Джаваскрипте. Требует Sway и node.js.

Важный момент: коммуникации не шифруются и нет проверки логина/пароля. Данное решение только для использования в локальной (домашней) сети, в которую не имеют доступ посторонние.

Репозиторий на гитхабе: https://github.com/alexkh/gorc

>>> Просмотр (3000x2244, 3510 Kb)

 , , , ,

svyatozar
()

БиБиСи открыло доступ к более 16000 звуковым эффектам

Форум — Talks

Более 16000 звуковых эффектов легендарной бибиотеки БиБиСи стали доступными для личных, исследовательских или обучающих проектов. Компания сохраняет копирайт и использование в коммерческих целях запрещено, однако, могут служить источником вдохновения для синтеза похожих звуков если нужен, например, образец звучания парового двигателя.

Архив звуковых эффектов БиБиСи

Перемещено alpha из multimedia

 , , , ,

svyatozar
()

Шестнадцатиричный просмотрщик файлов в разработке.

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

Выставляю на всеобщее обсуждение мой новый шестнадцатиричный просмотрщик файлов. Это моё упражнение в создании вейланд/x11 приложения на технологии Вулкан.

Основные характеристики:

-шрифт misc fixed 6x13 в кодировке koi8 (с добавлением символов для заполнения непечатной части кодировки от 0 до 32)

-пиксельная точность: в лучших традициях пиксель-арта нет никакого сглаживания шрифтов

-зависимости: Vulkan и Glfw

-цвет зависит от значения байта. Текст выделен белым цветом.

-всё в одном шейдере, 2 треугольника, один проход, шрифт в месте с двоичным кодом файла подаётся через UBO

Приветствуется любая критика.

Благодарю за внимание!

>>> Просмотр (400x478, 37 Kb)

 , , , ,

svyatozar
()

Смитсоновский музей открыл 2.8 миллиона изображений и видео

Новости — Open Source
Группа Open Source

Отличная новость для любителей халявы вообще, а также для творческих людей, которые смогут найти применение оцифрованным материалам Смитсоновского музея США. Лицензия CC0 позволяет не только смотреть, скачивать, но и использовать эти материалы в своих творческих проектах без ссылок на источник.

Открытый доступ к оцифрованным материалам музеев - довольно распространённая в наши дни практика, просто Смитсоновский музей отличился огромным количеством выложенных сразу материалов, и они обещают выкладывать ещё. Есть и другие не всем известные места для легального скачивания открытых файлов: например, огромный нотный архив старой музыки https://imslp.org/wiki/Main_Page Говоря о халяве, стоит упомянуть известную коллекцию бесплатных книг проект Гутенберг https://www.gutenberg.org/

>>> Поиск по Смитсоновскому архиву оцифрованных документов

 , , , ,

svyatozar
()

3dbuzz закрылся, открыв свои учебные видео

Новости — Документация
Группа Документация

Сегодня в реддите появилось сообщение о закрытии некогда одного из самых крупных платных сайтов с учебными видео по 3д, 2д арту и разработке игр, в частности алгоритмы ИИ и прочее. К счастью, они решили выложить свои видео в открытый доступ по адресу https://3dbuzz.com.

>>> Подробности

 , , , ,

svyatozar
()

Минималистский оконный менеджер в разработке

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

Долгое время пользовался Awesome, но в нём непросто было приспособить кнопку мыши «back» для того чтобы передвигать окна. Уже почти год отлаживаю свой собственный оконный менеджер. В нём окна передвигаются кнопкой «back», а размер окон меняется кнопкой «back» в сочетании с правой кнопкой мыши. Для удаления окна используется кнопка «back» и колесо вниз. Как видно из скриншота, никаких внешних рамок и заголовков окон нет, но у меня слева всегда 3 xterm и я научился находить их на ощупь...

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

 ,

svyatozar
()

А куда сейчас без Вмваря...

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

Вобщем сабж... Gentoo, Windowmaker, Gnome panel, музыка барокко John Hebden. Код - пустячок для экспериментов с матрицами...

Цветовая гамма vi:

set guifont=andale\ mono\ 14
hi clear
set background=dark
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "sv"

highlight Comment ctermfg=green guifg=green
hi NonText guifg=brown

highlight Constant ctermfg=14 cterm=none guifg=#0077ff gui=none
highlight cString guifg=white gui=bold ctermfg=white cterm=bold
highlight cCppString guifg=white gui=bold ctermfg=white cterm=bold
highlight cBracket guibg=red gui=bold ctermbg=red cterm=bold

highlight Identifier guifg=#00c0c0 ctermfg=cyan
highlight Statement ctermfg=3 cterm=bold guifg=#c0c000 gui=bold
highlight PreProc ctermfg=lightblue guifg=#0088ff
highlight Type ctermfg=2 guifg=orange
highlight Special ctermfg=12 guifg=#bb00bb gui=bold
highlight Error ctermbg=9 guibg=#ff0000
highlight Todo ctermfg=4 ctermbg=3 guifg=#000080 guibg=#c0c000
highlight Directory ctermfg=2 guifg=#00c000
highlight StatusLine ctermfg=11 ctermbg=12 cterm=none guifg=#ffff00 guibg=#0000ff gui=none
highlight Normal guifg=#cccc66 guibg=#000000 ctermfg=darkyellow
highlight Search ctermbg=3 guibg=#c0c000
hi operator guifg=pink
hi statement guifg=red ctermfg=red

hi DiffChange guibg=darkgreen
hi DiffText guibg=olivedrab
hi DiffAdd guibg=slateblue
hi DiffDelete guibg=coral

>>> Просмотр (1600x1200, 247 Kb)

svyatozar
()

Русская альтернатива UTF-8

Форум — General

Здравия!

Есть идея изменить маленько UTF-8 чтобы русские буквы помещались в байт. Мне это надо самому для написания форума, ну и вот думаю,может еще кому пригодится...

Идея простая. То же что и UTF-8, но флаг помещается не в 8-й бит байта, а с 7 байт в отдельном, восьмом байте, составляя 64-битный блок.

Кроме того, 64-й бит по умолчанию выставляется в 1, таким образом значение 0x00 остается прежним - конец строки, и вся кодировка полностью совместима с библиотекой stdio.h, которую я очень люблю...

Далее, если 64-й бит все же 0, то это трактуется так: вся строка написана в кодировке ASCII.

Самое интересное что в первый байт можно поместить Русские буквы. Мне для моих целей нужна Кириллица, строчные буквы Глаголицы. Еще место останется для Греческого (используется в физике и математике), и возможно даже Футарк - для любителей RPG игр.

Если кому идея нравится, я сделаю сайт для дискуссии/публикации стан- дарта и имплементаций...

Успехов!

svyatozar
()

Заведи себе Дженту

Новости — Linux в России
Группа Linux в России

Здравия! В преддверии выходных спешу помочь желающим установить Дженту Линукс. Перевод инструкции по установке я выложил сюда: http://wiking.sourceforge.net/rugen/i...

>>> Заведи себе Дженту

svyatozar
()

RSS подписка на новые темы