LINUX.ORG.RU

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

Python скрипты с единой конфигурацией

Форум — Development

Есть один python-проект для общения с сервисом в сети. Интерфейс выполнен в виде набора скриптов, причём одни скрипты используют разный набор модулей в проекте, т.е. одному скрипту нужен модуль для работы с БД и с сетью, другому просто покопаться в БД. Для настройки всего этого использую один файл настроек. При этом пытаюсь сделать чтобы все эти модули настраивались одной и той же процедурой:

    .
    ├── config.py
    ├── config.ini
    ├── script.py
    ├── db_module
    │   ├── __init__.py
    │   ├── config.py
    │   └── db_api.py
    └── rpc_module
        ├── __init__.py
        ├── config.py
        └── fetch.py
#!/usr/bin/env python3

from pprint import pprint

from rpc_module.fetch import fetch_some
import config


config.configure(config_file = "init.ini")

pprint(fetch_some())

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

## __init__.py
from ..config import __configurators
from .config import configure

__configurators.append(configure)
## config.py
from collections import deque
from configparser import ConfigParser

__configurators = deque()


def read (f = "config.ini"):
    c = ConfigParser()
    c.read(f)
    return c

def configure (config_file = None):
    if config_file is None:
        config = read()
    else:
        config = read(config_file)
    for configurator in __configurators:
        configurator(config)

Получаю:

ImportError: attempted relative import beyond top-level package

Гугл подсказывает как обойти это хаком с sys.path, но может есть другие решения?

 

ados
()

Самораспаковывающийся tar.gz

Форум — General

Делаю установщик для продукта. Сам продукт распространяется в архиве, который распаковывается в /opt. Решил, что для пользователя будет удобно, если будет не архив с архивом и скриптом установки, а что-то вроде .run файла драйверов проприетарных. Нагуглил как это делается:

#!/bin/bash
sed '0,/^#EOF#$/d' $0 | tar zx; exit 0
#EOF#
How to use:
# create sfx
cat selfextract.sh data.tar.gz >example_sfx.sh
# unpack sfx
bash example_sfx.sh

Но при попытке запустить распаковку, получаю:

gzip: stdin: Unexpected end of file

tar: Child returned status 1
tar: Error is not recoverable

Вопрос. Что я делаю не так? Может ли это быть из-за того что архив размером больше 2х гигабайт? (а иногда и больше 6)

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

PS: В будущем вероятно это будет в deb\rpm\etc, но пока что нет ресурсов делать пакеты для разных ОС.

 ,

Loki13
()

1 биллион челлендж

Форум — Development

Даётся CSV файл с температурой от метеостанции и названием локации. Таких записей миллиард. Нужно найти максимальную, минимальную и среднюю температуру по каждой локации за минимальное время. Подробнее https://www.morling.dev/blog/one-billion-row-challenge/

  • Срок до 31 января

  • Пишем на джаве (но там вроде и другие ЯП участвовали)

  • Приз имя на доске почёта

Предоставленные реализации на текущий момент https://github.com/gunnarmorling/1brc?tab=readme-ov-file#results

Реализации и челленджи на других ЯП https://github.com/gunnarmorling/1brc/discussions/categories/show-and-tell

 ,

foror
()

Yandex все?

Форум — Talks

редиректит на «левый сайт»

А ведь сколько лет …

 

bdfy1
()

Btrfs или диск?

Форум — Talks

Прислали логи на посмотреть, в них такая куча ошибок:

Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:46 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51
Aug 14 23:11:47 nixos kernel: BTRFS critical (device dm-2): corrupt leaf, bad key order: block=261648994178,root=1, slot=51

и еще такие:
Aug 14 23:12:52 nixos kernel: BTRFS info (device dm-2): no csum found for inode 3524 start 23916544

Кто виноват? Btrfs или диск сыпится (проверку поверхности пока не делали)

 

Kolins
()

BCacheFS наконец смогла

Форум — Talks

Спустя десяточек лет и некоторые истерики Кента Оверстрита bcachefs наконец дошла до ядра. link

Ждем теперь в дистрибутивах. Утро порадовало сегодня.

 ,

HerbertHoover
()

IT-кампусня и Карго-культисты.

Форум — Talks

Доброго веч3рочка. Хотел бы поговорить об индустрии IT в России, конкретно о том, что многие регионы сейчас разворачивают проекты которые выглядят как некая российская локальная адаптация Кремниевой Долины, это и казанский Иннополис и нижегородский «IT кампус» и известное всем Sk (Сколково).

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

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

В США эти самые «Кампусы» образуются от того, что будущие предприниматели, пытаюся трансформировать рабочее пространство в привычное для них место студенческого общежития, университетской аудитории, дворов и общих пространств. А у нас это просто выдирается из контекста, вместе даже с этим же названием «кампус» и превращается в какой-то симулякр, обоснованием для существования которого служит лишь этот прообраз, вместо обоснованного базиса.

Предположим, выдрали название, выдрали «энвайронмент». Но ведь в Калифорнии предприниматели существуют в жёстких конкурентных условиях, они прощупывают рынок и реализуют тот самый minimum viable product, готовят pitch для венчурных инвесторов, ЗАТЕМ они выходят на рынок, занимают нишу, покупают здание и пространство для своей компании которое уже затем заполняет персонал и живёт в контексте привычного ТАМ кампуса, опять же потому, что большинство сотрудников это молодые, недавно выпустившиеся из престижных университетов люди.

В РФ - СНАЧАЛА СТРОЯТ этот кампус, потом туда загоняют студентов или просто кого-то, а затем ждут, когда те родят disruptive идею которая бы реализовалась на рынке и окупила хотя бы частичку этих инвестиций. Это натуральный Карго-культ, магическое мышление и поклонение атрибутам, волшебному «кампусу», без понимания смысла, контекста, предпосылок, построим его и у нас появится свой технологический сектор. Может быть я неправ, объясните, кто-то из вас должен работать там.

 , , ,

cheetah111v
()

Telegramm

Форум — Development

Добрый день! Скажите, пожалуйста, есть ли у telegramm, что-то наподобие imap/smtp? Задача заключается: в подключении к аккаунту (не к боту!) и чтения сообщений!(С согласие пользователя)

PS вопрос конечно не для данного портала, но надеюсь на ответ =)

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

 , , ,

max_online
()

Что я делаю в жизни не так? Деньги то так кончатся совсем.

Форум — Talks
  1. Программирую с института. С 1984 года. Программируемые калькуляторы. Машинные коды. Бейсик с циферками на магнитофонных кассетах.

  2. 2002 год - первый личный сайт. И первые попытки фрилансить. Фриланс - практически 0.

  3. 2008 год - 50 личных сайтов и нормальная прибыль с них. Фриланс - практически 0

  4. С 2016 года я, очень эпизодически, находил работу по фрилансу за 2 евро в час. Очень эпизодически

  5. 2022 - работы нет даже за 20 русских руб в час.

  • Опыт программирования - больше 5 лет;

  • Опыт php, perl, mySQL - больше 5 лет;

  • JS - 3 года;

  • вёрстка - больше 5 лет;

  • C++, Java, Python - меньше года, под десктоп.

  • сбор и обработка информации с интернета;

  • генерация pdf-документов «на лету», в программе;

  • Специализация - Drupal (уровень - написание модулей) - 10 лет;

  • Опыт работы с фреймворками есть: написание модулей на Yii около 3 лет, MODX - 2 года ;

  • ООП знаю, пишу;

Что я делаю в жизни не так? Деньги то так кончатся совсем. Спасибо

 ,

kompospec
()

Участвуйте в конкурсе глупых и страшных ошибок на языке C++

Форум — Development

Команда PVS-Studio проводит конкурс прикольных/глупых/страшных ошибок на языке C++ (можно и C). Наверняка на практике у вас было что-то эпичное и интересное. Приглашаю поделиться. Самые «лучшие» ошибки мы соберем в статью, при условии, что их наберётся достаточное количество. А чтобы было интереснее, опишите историю бага.

Узнать детали и поучаствовать здесь: https://pvs-studio.ru/ru/blog/contest/

Дата окончания: 30 декабря 2023 года.

P.S. Отберём 10 участников с самыми интересными случаями и отправим им в подарок – мою бумажную книгу «Вредные советы для C++ программистов». Это переработанный и расширенный вариант «60 антипаттернов для С++ программиста». Если хотите, поставлю подпись. Я же знаю, что здесь есть мои почитатели ;)

 , , ,

Andrey_Karpov_2020
()

Ищу удаленку

Форум — Job

 , ,

PETER
()

52 года назад вышла статья Эдсгера Дейкстры против оператора GOTO

Форум — Talks

Собственно, сабж.

Кстати, оригинальный заголовок был «A Case Against the Goto Statemen», а на получивший известность «GOTO considered harmful» его заменил Никлаус Вирт - автор языка программирования Паскаль, который тогда был ещё и редактором журнала «Communications of the ACM», в котором и было опубликовано письмо Эдсгера Дейкстры.

 ,

saahriktu
()

Как понять чистый С (без библиотек), awk и sed за 10 минут?

Форум — Development

Понимаю основные концепты в высокоуровневых ЯП, типа классов, функций и т.д. Писал на питоне скрипты для себя. Сейчас есть возможность поступить в европе в школу 42 (в рф называется школа 21), где усиленно учат первое время С.

Посмотрел их задания, а там что-то типа алгоритмов и вначале программирование без библиотечных функций. Выводят через write в буфер, кодят аналоги функций в стандартной библиотеке, мыслят алгоритмически и т.д. Все по канонам CS.

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

Ко всему прочему, видел пару заданий на знание awk и sed. И вообще в целом умение распарсить строки из терминала. По времени есть где-то месяц.

Вопрос, как можно подготовиться к такому? Откуда черпать информацию? Может есть уже золотая классика? Информации слишком много и она плохо отсортирована, прошу совета.

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

 , , ,

myredeyes
()

Литература 21 века. Что стоит читать?

Форум — Talks

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

Или рок-н-ролл мертв?

 ,

C
()

«Яндекс» подготовит 350 000 IT-специалистов

Форум — Talks

С 2023 по 2026 гг. «Яндекс» намерен подготовить 350 000 IT-специалистов, что в три раза больше, чем в предыдущие три года. Об этом сообщила директор по образованию в «Яндексе» Дарья Козлова на конференции Yet another Conference on Education (YaC/e). «Владение технологиями и умение программировать – больше не прерогатива тех, кого называют “айтишниками”. Мы давно готовим специалистов для IT-отрасли: разработчиков, тестировщиков, аналитиков, но у нас есть и программы для людей из других сфер», – цитирует Козлову пресс-служба корпорации. В «Яндексе» пояснили, что число айтишников увеличится за счет внедрения новых форматов обучения, появления новых программ подготовки, расширения партнерства с вузами и использования решений на основе генеративных нейронных сетей.

https://www.vedomosti.ru/technology/news/2023/11/15/1005895-yandeks-podgotovit

У меня только один вопрос - чем будут заниматься все эти люди? Или это опять попытка заработать на курсах для вкатывальщиков?

 , ,

C
()

Нападения работорговцев

Форум — Talks

За последнюю неделю фиксирую два домогательства овчарок через хабр карьеру и одно в телеграм, а также 2 попытки устроить скандал IRL. Что, видимо, по их коварному замыслу должно привести меня к тому, что я начну соглашаться на предложения работы со стороны. Это двойной объем от обычного происходящего раз в два месяца террора. Вероятно меня слили два раза или им тяжелее работать через страны снг и в текущей ситуации и они решили удвоить эфорты. Прошлый раз когда меня выгоняли с работы, я заметил, что был выброшен на рыначек труда одновременно с значительными массами айтишников. При этом конечно «кадровички» вели себя совершенно противоположным образом, т.е. незаинтересованно и претенциозно. Это навело меня на гипотезу об том, что работорговцы начали работать методами облав, приуроченных к кризисам, войнам и т.п, чтобы облегчить себе вывоз специалистов в другие страны. Пример в подтверждение - внезапная отмена виз из израиля в сша накануне атаки из газы. Нападают ли на вас с предложениями работы, подработки, ухода с текущей прямо сейчас?

 

Syncro
()

Объясните как использовать метод Docker API | Python

Форум — Development

Метод фунции containers run требует аргументов

Все понятны кроме одного

Вот пример моего кода:

        client.containers.run(image='slave:latest', detach=True, name='Jenkins_slave', network_mode='bridge', 
        volumes={
        '/home/jenkins': {
            'bind': 'slave_data', 
            'mode': 'rw'
            }
        })

Только вот жалуется, что slave_data не является путем, а вместо 'bind' 'volume' не принимает

Кусок документации

volumes (dict or list) –

A dictionary to configure volumes mounted inside the container. The key is either the host path or a volume name, and the value is a dictionary with the keys:

    bind The path to mount the volume inside the container
    mode Either rw to mount the volume read/write, or ro to mount it read-only.

For example:

{'/home/user1/': {'bind': '/mnt/vol2', 'mode': 'rw'},
 '/var/www': {'bind': '/mnt/vol1', 'mode': 'ro'}}

Линк на доку

Что нужно: slave_data(это volume, не bind монтирование) должно примонтировать в /home/jenkins

как быть?

 , ,

Deleted
()

Муки выбора языка программирования

Форум — Development

Пытаюсь выбрать язык программирования для личного проекта.

Хочется, чтобы у языка были:

  • библиотека для загрузки/выгрузки изображений с поддержкой широкого круга форматов
  • биндинги для sdl2
  • работа с битовыми массивами размером больше чем 64 элемента (с поиском единиц)
  • перегрузка оператора индекса в том числе при присвоении
  • ассоциативные массивы с лаконичным доступом к элементам
  • документацией с поддержкой мобильного просмотра в 2023 году-то
  • поддержкой компиляции для мобильных архитектур
  • нормальный полиморфизм, а не как в Rust
  • востребованность на рынке труда

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

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

Haskell имеет поддержку даже многомерных битовых массивов, но вот документацию на мобильном листать не удобно. В принципе не критично, но я не уверен что haskell вообще подходящий инструмент для моей задачи. А задачу мою можно найти по тегу «гексагональный пиксель» здесь.

Что выбрать?

 , , , ,

unDEFER
()

FreeOrion 0.5 «Государство и политики»

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

После долгих двух лет и восьми месяцев с прошлого релиза вышла очередная версия FreeOrion — свободной космической 4X-параллельно-пошаговой стратегии, вдохновлённой серией игр «Master of Orion».

Это, возможно, самый долгий релиз за всё время, и всё же он, наконец-то, был опубликован. Причина для обновления номера версии до 0.5 — ввод новой важной механики: ресурс «Влияние» и государственные политики, что составляет релиз «Государство и политики». Это привносит значительные изменения в игровой процесс и требует тщательно сбалансировать множество вещей. Также ИИ должен был по-быстрому использовать новую механику (хотя бы до уровня работоспособности), и далее стандартный набор изменений: исправления ошибок, настройка ИИ, оптимизации и т.д.

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

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

 , , ,

O02eg
()

Сергей Савельев: Искусственный интеллект это обман.

Форум — Talks

https://www.youtube.com/watch?v=Bqqm0hFg9Gs (короткий ролик на 8 минут с основными тезисами)

Интересует мнение зрительного зала линуксоидов и прочих айтишников о мнении известного учёного, занимающегося изучением мозга.

 

bbk123
()