LINUX.ORG.RU
ФорумTalks

А что там система на PHP?

 ,


2

2

И правда, давно не писал как там дела у лучшего в мире DE дистра на PHP.

К сожалению, появился другой, более приоритетный проект, а именно самодельный гибридный инвертор с настоящей, некитайской функцией подмешивания, посему программированию могу уделять час-два в неделю.

Из новенького

Решил пойти по пути наименьшего сопротивления, и остановиться на дистре.

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

Что касается самого DE

Избавился от консольных утилит для работы с иксами. Архитектура иксовая конечно дикий ад. Но зато теперь код изящнее, а настройки более гибче.

Почти полностью разобрался с треем через d-bus. Теперь оно не тормозит, проц не жрет. Вдобавок средствами PHP научился принудительно обесцвечивать иконки в серой палитре, или с красивыми стильными тенями. Выглядит почти прикольно, и не зависит от программы.

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

Облегчил док. Заметил по своим знакомым, что никто не перетаскивает иконки — они остаются на усмотрение системы. Так что перетаскивание убрал. Ну и остановился на индикации приложений в виде серой точки — закрыто, голубой точки — запущено, красной точки — требует внимания, голубой полоски — активно. Решил не нагромождать меню по ПКМ, а сделал два вида - основное по ПКМ, добавочное по shift+ПКМ. Например при ПКМ в меню есть опция «Закрыть», а в меню вызываемом shift+ПКМ, вместо нее «Закрыть принудительно».

С меню к сожалению получилось не все что я хотел. Хотел добавить туда возможность запускать программы от рута. Но из-за специфики PHP, а точнее вызова программы после программы (pkexec) либо меню закрывается только после завершения самой программы, либо pkexec не запускается вовсе. Городить костыли навроде передачи команды на запуск крутящемуся в фоне демону — не хочу. Зато теперь можно с меню добавлять в док, не запуская. Может чё еще добавлю.

Настройки

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

Внутря

Запилил демон настроек, который преобразует конфигурационный файл ДЕ в субконфигурации той или иной подсистемы. Кстати про настройки. Остановился на самом оптимальном и читаемом на мой взгляд формате — подобно HTML-теговому: <keyboard_layouts>us ru</keyboard_layouts>

Поскольку это все же PHP, т.е. может быть ненадежно, сделал лимит перезапусков DE чтобы не было бесконечных циклов, если 5 раз не вышло - запускается xterm.

Все-таки пересобрал xembedsniproxy — шняга которая конвертит программы со старого формата иксового трея, в новомодно-костыльный dbus-ный.

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

Ввел некоторые ключи производительности в само DE. Что-то типа «безопасного режима» что ли. С некоторыми ключами, эффекты отключаются, задержки между итерациями разных проверок увеличиваются, и в целом система адекватно насколько это возможно, работает на первом EeePC на одноядерном селероне 900 МГц и 2Гб ОЗУ.

На данный момент, будучи абсолютно работоспособной (хоть и не готовой в продакшен), система без учета иксов и прочих сопутствующих либ, занимает 3 мегабайта ОЗУ. Так-то. Исходный код, он же исполняемый код - занимает 700Кб. Абсолютно вся система, включая скомпиленный интерпретатор PHP и сырцы либ — 76 мегабайт на носителе.

В дистре это DE вместе со всеми необходимыми потрохами, я решил размещать в одной единственной директории в корне. Посему любые операции — удобны и делаются в обыкновенном ФМ без рисков положить систему.
Удалить: rm -rf /system.
Апгрейднуть: mv /system /system_old;mv ~Downloads/new_version /system.

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

Когда будет готово для скачивания?

В целом, осталось допилить немного. По сути лишь контрольную панель и ФМ. Уделяя по часу в день, за месяц бы справился. Поэтому думаю к середине-концу зимы уже смогу дать ссылочку на виртуалку.

https://ibb.co/ykj0cMV

https://ibb.co/RYWcsFL

★★★★★

Последнее исправление: hobbit (всего исправлений: 6)
Ответ на: комментарий от lovesan

Конечно может

echo IntlDateFormatter::formatObject(
  IntlCalendar::createInstance("US/Pacific"), 
  IntlDateFormatter::FULL, 
  "ru_RU");
А смысла ввязываться для этого в недояву майкрософта нету. LAMP это лучшая платформа.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от lovesan

Нет нет нет, сначала пишем портянку выше. Свернуть портянку в один вызов, можно и на ассемблере, и на коболе. В PHP твоя портянка в 10 раз короче.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от lovesan

После закрытия «1С-Битрикс: Управление сайтом ASP.NET 4.5», платформа .NET окончательно стала ненужной. О каких библиотеках речь то?

Как блог на .NET поднять, оплатив на год услугу «Бизнес хостинг 50р/мес»? Даже вывод даты и то длиннее чем в PHP, не говоря уже о всех этих объектах, модулях, и msproj.xml

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от lovesan

на PHP эта портянка написана

Все так, написана, поддерживается и отлажена. Зачем мне писать свою? Какое преимущество дает переписывание готового к работе кода на Lisp? Что это даст разработчику DE или вебмастеру?

MOPKOBKA ★★★★★
()
Ответ на: комментарий от lovesan

Свой покажи, моя то либа в проде используется.

То есть написанной прикладной программы у тебя нет. Я так и понял.

А скажи, ты вообще топик читал, ссылки открывал?

Или лисперы все такие упоротые, что сравнивают какую-то либу с полноценным десктопным окружением?

windows10 ★★★★★
() автор топика
Ответ на: комментарий от MOPKOBKA

После закрытия «1С-Битрикс: Управление сайтом ASP.NET 4.5», платформа .NET окончательно стала ненужной.

Че? 4.5 это откуда-то из времен динозавров. Ты про .Net Core а затем Unified .Net видимо не слышал.

О каких библиотеках речь то?

Найди мне решения уровня WPF/Avalonia для уи. EntityFramework для работы с RDBMS, или хотя бы SignalR для реалтайм веба.

PHPшная отрасль это простенькие и говеные вебсайтики, в этом плане Wordpress это вершина развития PHP, вот в этой вот сфере PHP и должен оставаться.

lovesan ★★★
()
Ответ на: комментарий от windows10

Какая программа именно тебе нужна? Вон там example, это приложение, являющееся браузером пакетов лиспа, чем не программа. С UI и все такое.

Свою программу покажи нормальную, не хелловорлд

lovesan ★★★
()
Последнее исправление: lovesan (всего исправлений: 1)
Ответ на: комментарий от lovesan

PHPшная отрасль это простенькие и говеные вебсайтики, в этом плане Wordpress это вершина развития PHP, вот в этой вот сфере PHP и должен оставаться.

Отрасль любого языка - это конечный продукт написанный на нем.

В отличие от тебя, я не упоротый фанатик. И пробовал писать это DE как на питоне, так и на чистом С. Остановился на PHP именно благодаря его преимуществам.

Но я понимаю в принципе почему у тебя подгорает от PHP. 90% веба написано на нём, остальные ЯП эту нишу либо ниасилили (как питон), либо вообще потеряли (как перл). А теперь получается, что на нем и десктопные приложения может писать любая макака, да и мало того что десктопные приложения, так еще и куски операционной системы.

Лисп же по факту не дает никаких преимуществ, кроме осознания себя нитакусиком, а это отголоски юношеского максимализма и неуверенности в себе.

А уверенным в себе мужикам, не надо доказывать что их ЯП лучший, они просто пишут на нем, и показывают что написали.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от lovesan

inb4 называть дотнет недожабой это смешно просто

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

красноглазые застряли в прошлом тысячелетии походу, натурально. Я не помню тогда был .NET 1.1 или еще нет? году в 1999м то

lovesan ★★★
()
Ответ на: комментарий от lovesan

Свою программу покажи нормальную, не хелловорлд

В смысле мою? Я еще раз спрашиваю, ты топик читал, ссылки открывал?

На ссылках - десктопное окружение. Если ты не вкурил с первого раза, то это десктопное окружение - и есть моя программа, писанная на PHP.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от lovesan

Найди мне решения уровня WPF/Avalonia для уи.

Как ты написал, «это откуда-то из времен динозавров», ты как собрался свое ускоренное DirectX приложение в вебе запускать? А про веб инструменты ты и сам знаешь думаю.

EntityFramework

Тоже что то из 90х, когда были объектно ориентированные базы данных, и можно было отобразить их на объекты, сейчас есть решение получше https://www.php.net/manual/en/book.mysqli.php

SignalR

Смотря для чего ты его собрался использовать, выглядит слишком низкоуровневым, где подходят и вебсокеты, но скорее всего используется для сигналов как в qt, тут намного лучше и удобнее будет livewire, который прозрачно свяжет твой на бекенде с фронтендом, и можно будет обмениваться сообщениями.

PHPшная отрасль это простенькие и говеные вебсайтики

Сложные сайты должны сложно писаться? Когда то сложными были и простые CRUD программы, и их долго делали на MFC C++, сейчас уже известно что стало с этими программистами.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от lovesan

Если код уже есть в стандартной библиотеке, то я его не переписываю, зачем? Мой код в основном это логика а не какое то низкоуровневое взаимодействие. Ты реально очень похож мышлением на этих MFC C++ программистов CRUD, которые не понимали что их возня с памятью и сложные абстракции не к месту.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от lovesan

Сборка в один файл это очень полезно, ты его потом через WinSCP на сервер по FTP заливаешь? В Linux такой проблемы вообще нету, у тебя в приложении обычно должно быть много файлов, и потом ты их запаковываешь в .deb, если сторонник ПМ. Один .exe полезен только для устаревших приложений под Mac/Win, которые еще не переехали на LAMP или другой веб-стек.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от windows10

На какой хер тебе писать DE? Это наркомания. Мало что на PHP, но сам факт.

Это никому не нужно. Ты не способен контрибутить в существующие DE? В линуксе итак на десктопе говно и разброд, и еще одно поделие, да к тому же на тормозном убогом недоязыке, кривое, и с минимумом фич, нахер никому не сдалось.

Но я понимаю в принципе почему у тебя подгорает от PHP. 90% веба написано на нём,

В индии 1.5 миллиарда людей купаются в говне, напоминаю. 1.5 миллиарда это 10 россий. Иди купайся в коровьем говне. Не хочется, да? Кстати индусы и PHP очень любят, хммм, нет ли тут какой-то связи?

Лисп же по факту не дает никаких преимуществ

Как ты способен рассуждать о том, что в глаза не видел, и о чем понятия не имеешь вообще? Я вот на PHP написал в свое время просто огромное количество говнокода, тут и вордпресс, и разное. Ты же лисп в глаза не видел, и несешь ахинею. У тебя синдром как его, блаб парадокс, вот.

А уверенным в себе мужикам, не надо доказывать что их ЯП лучший, они просто пишут на нем, и показывают что написали.

Зачем доказывать? Идиотам бесполезно что-то доказывать, то что CL это лучший язык это просто факт. Типа, как там, небо голубое, трава зеленая, Россия наша отечество, и так далее. Факт.

lovesan ★★★
()
Ответ на: комментарий от windows10

На ссылках - десктопное окружение. Если ты не вкурил с первого раза, то это десктопное окружение - и есть моя программа, писанная на PHP.

Это говеный хелловорлд, никому не нужный к тому же

lovesan ★★★
()
Ответ на: комментарий от MOPKOBKA

Если код уже есть в стандартной библиотеке, то я его не переписываю, зачем?

Там говно совершенно базовое, и для тупых случаев.

Стандартная библиотека дотнета кстати больше, она огромная просто

https://learn.microsoft.com/en-us/dotnet/api/?view=net-9.0

Мой код в основном это логика а не какое то низкоуровневое взаимодействие.

Типа, взять из СУБД говна, и положить в JSON(т.е. твоя «логика») это высокоуровневое взаимодействие? Деточка, это как раз всратые детали всякие, которые на нормальных языках пишут с помощью разных DSL и всего такого, на высоком уровне. На что пых, как и многие другие недоязычки просто не способны, по причине квадратно-гнездового устройства. Весь код на пыхе это низкоуровневое говно, вон не зря автор треда его с сишечкой сравнивает. Одного порядка вещи, даром что память нельзя колбасить вручную(ну хотя нет, можно, через FFI, так что тем более)

lovesan ★★★
()
Ответ на: комментарий от MOPKOBKA

Все так, написана, поддерживается и отлажена.

А я вот кстати с годами научился не доверять коду написанному на Си просто по дефолту, и всем рекомендую.

lovesan ★★★
()
Ответ на: комментарий от lovesan

Там говно совершенно базовое, и для тупых случаев.

Опять MFC C++ мышление, если я что то пакую в zip архив, но мне совершенно точно наплевать на эффективность. Я не хочу писать 10 фабрик что бы контролировать каждый бит в zip архиве. Точно так же MFC C++ программисты не понимали, как это ты для гуи и CRUD не хочешь заниматься ручным управлением памятью, выделять арены.

Стандартная библиотека дотнета кстати больше, она огромная просто

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

Типа, взять из СУБД говна, и положить в JSON(т.е. твоя «логика») это высокоуровневое взаимодействие?

Ты не туда ушел, mysqli это интерфейс взаимодействия с БД, точно так же как и EF.

Логика пишется поверх этого, или ты прямо в EF классы ее загоняешь и намертво привариваешь к структуре БД и конкретному фреймворку ORM?

Так вот, EF это для объектных баз данных из 90х годов, я такие не застал, наверное это FoxPro и другие. Сейчас доминируют реляционные бд, и намного проще описывать отношения в SQL, потом взаимодействовать с БД через mysqli, и поверх этого уже строить логику.

БД это типа движок данных, если использовать БД как серьезную платформу, то зачем EF нужен непонятно, вроде и на самом FoxPro можно формы было делать, и сейчас есть его альтернативы, так что можно не вылазить из этих БД вообще. Ну или хотя бы C# внутрь впилить.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от lovesan

У меня pwsh установлен, с чего ты взял что я не знаю про .Net Core? Я пишу что один исполняемый файл это не особо актуально в Linux. Для сервера размещать какие то бинарники в папках это странно, для десктопа это неудобства, у тебя должен быть как минимум еще один program.desktop файл что бы отображалось описание, иконка.

А я вот кстати с годами научился не доверять коду написанному на Си просто по дефолту, и всем рекомендую.

Ну пользуешься же ntoskrnl.exe, а PHP открыт, всегда можно почитать функцию, отладить, заслать патч.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от MOPKOBKA

Опять MFC C++ мышление, если я что то пакую в zip архив,

«Паковать в ZIP архив» это как раз низкоуровневое мышление говнокодерков

Ты опять показываешь, что не понимаешь, как на самом деле, и в каких терминах надо писать логику, и вот это всё

lovesan ★★★
()
Ответ на: комментарий от MOPKOBKA

Я пишу что один исполняемый файл это не особо актуально в Linux.

Смешное. Вон у гошников, и у админов всяких в частности, это у Go одна из ключевых фич вообще.

И это огромная головная боль, работать с языками, где говно раскидано по системе - ну типа пыхоплеяды(PHP, Python, Perl)

lovesan ★★★
()
Ответ на: комментарий от MOPKOBKA

PHP открыт, всегда можно почитать функцию, отладить, заслать патч.

Сдалось мне еще в это говно коммитить, пусть воняют в сторонке

lovesan ★★★
()
Ответ на: комментарий от lovesan

«Паковать в ZIP архив» это как раз низкоуровневое мышление говнокодерков
... и в каких терминах надо писать логику,

Лол, причем тут логика? Я говорю про некое действие, которое сложно выполнить в CL, и легко в PHP, как пример. Ты уже продемонстрировал что это сложнее в CL. Какую бы ты логику выше не строил, а низы с упаковкой архива легче в PHP.

Если хочешь поговорить о высоких абстракциях, то тебе нужно приводить примеры как в CL в этом выигрывает. Почему DSL на нем лучше чем на PHP, и так далее.

И это огромная головная боль, работать с языками, где говно раскидано по системе - ну типа пыхоплеяды(PHP, Python, Perl)

Если ты работаешь с машиной где из под Windows 7 Ultimate x64 запущен VirtualBox с Ubuntu, то несомненно. Но вроде мир уже шагнул в контейнеры, атомарные окружения, и многое другое. Это не про админов 1С, но я думаю они в состоянии ввести apt install lamp и закинуть moy-site.php в папку.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от lovesan

Я не понимаю, тут то грустные смайлики, то веселые, у вас всё в порядке?

Tark ★★
()
Ответ на: комментарий от lovesan

Главное что у меня удобное работающее окружение, функционирующее как положено =)

windows10 ★★★★★
() автор топика

Между тем, пока lovesan тратил время на комментирование крутизны lisp для написания какой-то либы - хеллоуворлдщик потратил пару часиков на очеловечивание хеллоуворлда.

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

https://www.youtube.com/watch?v=xq9xPfkQ1zc

Можете критикануть, чего не хватает в данной настройке. Если хотите =)

windows10 ★★★★★
() автор топика
Последнее исправление: windows10 (всего исправлений: 1)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)