LINUX.ORG.RU

Сообщения provaton

 

Выпуск Xonotic 0.8.5

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

Выпущен новый релиз шутера от первого лица Xonotic 0.8.5. Прошлая версия (0.8.2) была выпущена 5 лет назад, но несмотря на отсутствие релизов все эти года, разработка шла очень активно и накопилось множество изменений.

Xonotic создан на движке Darkplaces, который является глубоко переработанным форком движка Quake1. Код игры и исходники всех используемых 3D-моделей полностью открыты под лицензией GPLv3.

( читать дальше... )

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

 ,

provaton
()

Хаскеллисты проникаются идеями метапрога

Форум — Talks

Я джва года ждал: https://jaspervdj.be/posts/2020-03-12-visual-arrow-syntax.html

Для Ъ, набор хаков, позволяющих писать на хаскелле в стиле:

example03 =
  (📈) (+1)━┳━►(+1)━┓
  (📈)      (+1)━━━━╆━►add━┓
  (📈)              add────┶━►add
 where
  add = uncurry (+)

 , ,

provaton
()

Драма tokio vs async-std

Форум — Talks

Что-то странное происходит. В одном из устаревших проектов для асинхронного ИО в rust romio появился pull request, который добавил в ридми проекта упоминание tokio как более современной альтернативы поддерживающей новый синтаксис async/await (до этого там было лишь упоминание async-std). Спустя некоторое время, автор pull request’а, и все, кто поставил ему палец вверх оказались в бане. Спустя некоторое время реквест таки замержили, и автор репозитория написал пространный коммент, которые среди прочего упоминает о конфликте между разработчиками tokio и async-std.

Pull request https://github.com/withoutboats/romio/pull/106 Коммент - https://github.com/withoutboats/romio/pull/106#issuecomment-548947560

Кто-то в курсе, в чем вообще суть конфликта между tokio и async-std? Очень любопытно об этом узнать. визаутбоатс пишет, что конфликт непубличный, но в эпоху интернета хотя бы часть инфы должна была просочиться. А я тут в танке сидел за новостями не следил.

PS: «My code is written for people of better character than you, go away.» - фонд золотых цитат прямо)

 

provaton
()

Как сделать годную тему подсветки синтаксиса самому?

Форум — Desktop

Такое дело. Хочу хорошую цветовую тему для емакса. Перебрал кучу готовых, но все не по душе мне. Остаётся вариант делать самому. Но как? Простым экспериментированием не получается - слишком уж много вариантов нужно перебрать, и не очевидно сразу какой цвет с каким нормально смотрится, а какой нет. Нужен научный подход, в общем. Стал гуглить, нашёл только туториал на w3schools https://www.w3schools.com/colors/default.asp

Там есть пять подходов для определения базовых цветов темы (монохромный, аналоги, противоположные, triadic, compound). Но совершенно не раскрывается какой из них правильный, а какой нет. Хотя казалось бы, блин, методы аналогичных цветов и противоположных в корне отличаются!

В общем, посоветуйте как научиться понимать, сочетаются ли цвета друг с другом или не сочетаются. За ссылки на годные статьи благодарен.

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

Перемещено shell-script из talks

 

provaton
()

Пенсия DIY

Форум — Talks

Насоветуйте мне, пожалуйста. Такое вот дело.

Мне сейчас около 30. Хочу в 40-45 лет на пенсию. Собственно государственная пенсия у меня независимо от возраста, в котором я на нее выйду, будет около нуля (прошу даже не обсуждать этот вопрос), поэтому рассчитывать можно только на свои скромные силы. Думаю, можно откладывать где-то 50-70% ЗП. Вопрос, куда можно инвестировать отложенное, чтоб оно приносило пассивный доход в размере хотя бы 50% ЗП... Пока есть только идея покупать квартиры и сдавать, но надо ведь диверсифицировать пакет как-то. Что еще можно? Идти на биржу торговать биткойном?

Прошу накидайте идей по теме.

 ,

provaton
()

Переключение между многими раскладками клавиатуры в X11

Форум — General

По некоторым причинам мне нужно достаточно много раскладок (в данный момент 5). При этом, двумя из них я пользуюсь постоянно (англ и рус), остальными реже. Если добавить их все стандартным для X11 способом, то хоткей переключения будет переключать через все раскладки (1-2-3-4-5-1), что достаточно неудобно, так как 3-4-5 нужны редко.

В OS X есть такая фича, что однократное нажатие хоткея переключения переключает между двумя последними раскладками, а продолжительное нажатие переключает на третью и дальше (и при этом на экране показывается список всех раскладок).

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

 ,

provaton
()

Работа на rust - реально ли?

Форум — Talks

Я питонщик с где-то десятилетним опытом. Вроде в питоне все классно, есть работа, норм зп, да и эйчары регулярно сыплют в инбоксы заманчивыми предложениями. Но что-то надоел он мне. Точнее, динамическая типизация надоела. Где-то полгода пишу личные проекты всякие на rust'е, и могу с уверенностью сказать, что оно мне нравится с каждым днем все больше и больше.

Все больше закрадываются мысли что хочу кодить на расте за еду, а не только лишь ради фана. Но что-то на рынке как-то он не сильно нужен. На upwork'е работ нет от слова вообще. Хотя мелькают порой новости о success stories во всяких корпорациях, но реальные вакансии на глаза не попадаются.

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

 

provaton
()

«нечеткий» крон

Форум — General

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

 

provaton
()

Разное поведение transport.get_extra_info в дефолтном asyncio и uvloop.

Форум — Development

Хочу вот перевести свою поделку на uvloop, но столкнулся с такой вот проблемой.

Код:

import asyncio

import uvloop


async def test(loop):
    transport, protocol = await loop.create_datagram_endpoint(
        asyncio.DatagramProtocol, remote_addr=('45.76.92.79', 26000))
    print(type(transport), transport.get_extra_info('sockname'))

loop = asyncio.new_event_loop()
loop.run_until_complete(test(loop))
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
loop = asyncio.new_event_loop()
loop.run_until_complete(test(loop))

Вывод:

<class 'asyncio.selector_events._SelectorDatagramTransport'> ('45.76.92.79', 38734)
<class 'uvloop.loop.UDPTransport'> ('0.0.0.0', 50589)

Почитав сорцы uvloop'а я заметил, что если не указан локальный адрес в аргументах у create_datagram_endpoint, тогда uvloop вызывает socket.bind('0.0.0.0'). Но мне как бы очень нужен локальный айпи, и очень не хочется указывать его в конфиге.

Собственно вопроса два - зачем вызывать бинд на 0.0.0.0, и можно ли как-то автоматически задетектить локальный айпи адрес перед вызовом create_datagram_endpoint?

 , , uvloop

provaton
()

Вышел Xonotic 0.8.2

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

Вышел в свет новый релиз игры с открытым исходным кодом Xonotic — шутера от первого лица, ориентированного на многопользовательскую игру. Xonotic является форком игры Nexuiz, и основан на движке Darkplaces — глубоко переработанном форке движка Quake I.

( читать дальше... )

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

 ,

provaton
()

SSL и неSSL на одном веб-сервере.

Форум — Admin

Подскажите, пожалуйста, как по-человечески решить следующую проблему: один веб-сервер (в данном случае nginx) хостит несколько сайтов на разных доменах. Некоторые домены имеют ssl-сертификат, и их нужно хостить на портах 80 и 443, некоторые не имеют, и их нужно хостить только на 80. Но если все сконфигурировать в лоб, то nginx отвечает на https-запрос по всем доменам, даже тем, которые не имеют ssl-сертификата. Ответ получается неприятным - используется сертификат от другого домена и вылазит предупреждение в броузере. Я понимаю, почему так происходит, но не понимаю что с этим делать. Поэтому, два вопроса.

1. Как сконфигурировать nginx, чтоб он просто обрывал коннект при запросе на 443 для домена, не имеющего сертификат?

2. Если ли какая-то возможность выдать человеческий ответ при запросе на 443 и отсутствии сертификата, например редирект на порт 80? Я понимаю, что при запросе по https клиент ожидает зашифрованного ответа, а чтоб зашифровать нужен сертификат, но может там есть какие-то неизвестные воркэраунды в протоколе?

3. Что-то еще можете посоветовать?

 , ,

provaton
()

XML -> JSON

Форум — Development

Есть задача придумать человекоредактируемый формат сериализации простенькой древовидной структуры. Каждый элемент структуры является либо контейнером, либо конечным элементом (листом). Контейнер может содержать произвольное количество элементов (как контейнеров, так и листов). При этом, у контейнеров и листов есть метаданные, достаточно сложные.

На XML такая задача решается элементарно, например как-то так:

<root>
  <container title="foo">
    <container title="baz">
      <element title="e1" />
      <element title="e2" />
    </container>
    <element title="e3" />
  </container>
</root>

Но есть определенные причины хотеть не XML, а JSON. А как сконвертировать подобное дерево в JSON? Я вот предпринял две попытки и получилась громоздкая хрень:

{
    "root": [
        {
            "type": "container",
            "title": "foo",
            "elements": [
                {
                    "type": "container",
                    "title": "baz",
                    "elements": [
                        {
                            "type": "element",
                            "title": "e1"
                        },
                        {
                            "type": "element",
                            "title": "e2"
                        }
                    ]
                },
                {
                    "type": "element",
                    "title": "e3"
                }
            ]
        }
    ]
}
{
    "root": [
        {
            "container": {
                "title": "foo",
                "elements": [
                    {
                        "container": {
                            "title": "baz",
                            "elements": [
                                {
                                    "element": {
                                        "title": "e1"
                                    }
                                },
                                {
                                    "element": {
                                        "title": "e2"
                                    }
                                }
                            ]
                        }
                    },
                    {
                        "element": {
                            "title": "e3"
                        }
                    }
                ]
            }
        }
    ]
}

Обилие скобочек явно не способствует человекоредактируемости. Есть идеи как-то улучшить JSONовский формат?

 ,

provaton
()

Что делают хаскеллисты если нужно внезапно выполнить I/O?

Форум — Development

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

def func(args):
    a = subfunc1(args)
    b = subfunc2(a)
    return subfunc3(b)
func args = subfunc3 b where
     b = subfunc2(a)
     a = subfunc1(args)

Функции работают одинаково, плюс относительно хаскелловской функции я знаю что она не зависит от глобального состояния и прочий хаскелловский блёрб.

Но тут ВНЕЗАПНО я понял, что хотел бы логгировать все случаи, когда subfunc1 выдал какой-то определенный результат. В случае с императивным кодом все просто

def func(args):
    a = subfunc(args)
    if some_condition(a):
        logger.warning('Some shit happened')
    ....

В хаскелле для такого надо фактически все с нуля переписывать через какую-то монаду.

Вопрос, как правильно писать на хаскеле чтоб в такой ситуации отделываться минимальными изменениями кода?

 

provaton
()

Жуйк все

Форум — Talks

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

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

 , ,

provaton
()

Забрать диплом из ВУЗа

Форум — Talks

Года 3 назад закончил КПИ, но диплом до сих пор и не забрал. Реально стремно туда идти, там какие-то советские суровые тетушки которые на тебя свысока смотрят, заставляют какие-то странные бумаги подписывать, по куче кабинетов бегать. В общем, 3 года уже собираюсь сходить, и никак не решусь. Боюсь теперь, что еще спросят, почему так долго не приходил.

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

 , ,

provaton
()

Релизнулась freebsd 10.0

Форум — Talks

«„„Спустя два года с момента выхода ветки FreeBSD 9 представлен релиз FreeBSD 10.0, ставший одним из самых значительных релизов за историю существования проекта. Новая ветка примечательна переходом на использование по умолчанию компилятора Clang, интеграцией гипервизора BHyVe, заменой DNS-сервера BIND на Unbound, новая реализацией протокола CARP, интеграцией подсистемы FUSE, переходом по умолчанию на пакетный менеджер pkg. Установочные сборки, способные работать в Live-режиме, доступны в вариантах Bootonly (200 Мб), DVD (2.4 Гб), CD (630 Мб) и Memstick (680 Мб) для платформ amd64, i386, powerpc64, sparc64 и ia64.““»

http://www.opennet.ru/opennews/art.shtml?num=38886

Жива, курилка. И они даже осилили clang. Интересно, это первый релиз современной юникс-подобной ОС без gcc?

 ,

provaton
()

Никто не использует Python 3

Форум — Development

Вот, даже уже на самых главных питонистов потихоньку находит озарение, что python3 покаместь нафиг никому не сдался и принес лишь кучу геморроя. И главное, наверное с этим нужно что-то делать.

http://www.opennet.ru/opennews/art.shtml?num=38761

Алекс Гейнор (Alex Gaynor), входящий в совет директоров организации Python Software Foundation, выразил опасение, что после 5 лет существования ветка Python 3 до сих пор не получила должного распространения. Первый стабильный выпуск Python 3.0 был опубликован ещё в декабре 2008 года, но с тех пор интенсивность перевода проектов на Python 3 оставляет желать лучшего.

Например, в каталоге Python Package Index с Python 3 связано всего 2% загрузок пакетов. Более того, почти не создано кода, работающего только с Python 3. Такие проекты как Django, добавившие поддержку Python 3, продолжают вести первичную разработку и тестирование с использованием Python 2, попутно проверяя работоспособность в Python 3 через средства непрерывной интеграции. Ни одна опрошенная крупная компания, развивающая проекты на языке Python, не использует специфичный для Python 3 код и не планирует миграцию кодовой базы на Python 3.

В качестве основной причины низких темпов перехода на Python 3 упоминается продолжение параллельного развития ветки Python 2, что привело к отсутствию стимула перехода на Python 3 - при должной поддержке Python 2 и отсутствии мотивов для срочного перехода на Python 3, разработчики приложений могут бесконечно откладывать миграцию, оставляя данную задачу в качестве низкоприоритетных планов.

В качестве второй причины называется отсутствие у разработчиков интереса к ветке Python 3, которая не содержала кардинальных прорывных улучшений, которые могли бы подтолкнуть людей к внедрению новой ветки. В частности, Python 3 не сдвинулся вперёд в таких востребованных областях, как уход от глобальной блокировки (GIL, Global Interpreter Lock) и заметное повышение производительности. Вместо этого в Python 3 был расширен стандартный набор библиотек и проведена чистка проблемных мест, которые опытные разработчики уже научились обходить по привычке. В итоге, 99% разработчиков не используют новшества Python 3 и прекрасно обходятся без них.

В свою очередь, недостаточный объем внедрений рабочих решений на базе Python 3 приводит к проблемам с полноценным тестированием добавляемых новшеств в реальных проектах, что сказывается на ухудшении качества кодовой базы Python 3.x. В качестве одного из выходов из сложившегося тупика предлагается выпустить ветку Python 2.8, в которую бэкпортировать все новшества из Python 3, в том числе объявить устаревшими возможности, для которых нельзя обеспечить обратную совместимость (например, выводить предупреждение при использовании str + unicode), что подтолкнёт разработчиков к адаптации новых возможностей.

 ,

provaton
()

Релиз системы бухгалтерского учета GnuCash 2.6

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

Анонсирован новый релиз системы бухгалтерского учета GnuCash 2.6. Из изменений можно выделить следующие:

  • Улучшена система отчетов:
    • Для построения графиков теперь используется jqplot.
    • Переработана система управления отчетами.
    • Добавлена возможность экспорта отчета в PDF.
  • Добавлена возможность привязки к транзакции внешнего файла или адреса URL (например, банковской выписки или чека из магазина).
  • Добавлена возможность пометки счетов цветами.
  • Добавлена опция для автоматического сохранения данных при выходе из программы.
  • Добавлена возможность открытия заблокированного файла в режиме «только чтение». Таким образом, появилась возможность просмотра одной базы данных одновременно несколькими пользователями.
  • Добавлена возможность сохранять настройки фильтрации транзакций.
  • Улучшен модуль для предпринимателей.
  • Для хранения настроек теперь используется GSettings (ранее использовался GConf).
  • Лицензия была изменена с GPLv2 only на GPLv2 or later.

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

 ,

provaton
()

Вещества и их влияние на интеллектуальную деятельность

Форум — Talks

Давайте делиться опытом употребления веществ и влияния этих веществ на проф. деятельность в области IT. Чтоб не прогневать модераторов, давайте обсуждать только легальные вещества (то есть, лекарственные препараты, продающиеся в аптеке без рецепта и нелекарственные препараты). Начну с себя.

  • Пепси - немного активирует, кратковременно улучшает внимание, но зато в целом ухудшает состояние организма. Нарушает сон, делает изможденныным. И вызывает довольно некислое привыкание.
  • Энергетические напитки - эффект тот же, что у Пепси, только сильнее. Насчет привыкания не знаю, много не пил.
  • Черный чай - эффект схожий с Пепси, только слабее. Если много пить во второй половине дня, то депривация сна обеспечена.
  • Чаи на травах - помогают заснуть, но если много выпить, то обычно отшибают внимание даже на следующий день. Тоже самое касается снотворных таблеток на травах типа Седафитона.
  • Глицин - отличная штука, успокаивает, помогает заснуть, на следующий день все когнитивные функции улучшаются.
  • Пирацетам - не заметил никаких положительных и отрицательных влияний. Видно доза была маленькая.
  • Валерьянка - плохо влияет на внимание, седативный эффект незначительный.
  • Алкоголь - влияние на когнитивные функции резко отрицательное, как в краткосрочный так и в долгосрочный период.

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

Интересно почитать опыт других людей тоже.

 

provaton
()

Как правильно оценить фототехнику для продажи?

Форум — Talks

Такая ситуация. Есть тушка Nikon D600, пробег в районе 5000 кадров, юзалась около 9 месяцев, состояние идеальное. Сейчас новая стоит 13500-14000 гривен. Хочу продать. Какую цену поставить чтоб не продешевить и чтоб купили где-то в течении месяца? Например, за 12000 реально продать будет?

 ,

provaton
()

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