LINUX.ORG.RU

Сообщения ados

 
Форум — Development

Arch -> NixOs для скриптомакаки

Думаю переделать ноутбук для разработки. Разные браузеры, python, базы данных и прочие инструменты. Сходу приходит вариант накатить привычный arch, но вот задумываюсь об альтернативах. NixOs привлекает возможностью поставить интерпретатор определённой версии.

Насколько хорошо репозитории пакетов NixOs покрывают потребности? Часто ли нужно руками чинить при обновлениях и работе?

PS: ноут уже не новый и CPU (intel i3) довольно слабоват.

 , ,

ados
()
Форум — Mobile

Мошенники на ведроиде

УМВД России по Зажопинской области ПРЕДУПРЕЖДАЕТ

ОСТОРОЖНО
ЭТО МОШЕННИКИ,
если ПРОСЯТ:
...
+ РЕКВИЗИТЫ КАРТЫ
+ CVC код или код из СМС сообщеения
...
ТЕБЯ ДОЛЖНО НАСТОРОЖИТЬ!
Сомневаешся,
ПОЗВОНИ
РОДСТВЕННИКАМ,
В ПОЛИЦИЮ 112, 02,
В БАНК

Если я правильно понимаю цитату, под категорию «МОШЕННИКИ» подпадает куча приложений на андроид - приложение от РЖД, например. Ладно там просят номер карты банковской - понять можно, но ещё ведь требуют и CVC. Стоит ли оформлять заяву в полицию? Кто-нибудь уже пробовал?

 ,

ados
()
Форум — Games

У кого-нибудь получалось собрать d2x-xl под онтопик?

Сабж вот отсюда https://www.descent2.de/index.html ?

 

ados
()
Форум — Development

Поиск файла того же имени

С помощью Path(file).rglob(…) найден файл, надо найти с тем же именем, но немного другим суффиксом. Признаться довольно долго искал решение и всё же получилось такое:

import os

def find_ifo (path):
    name = os.path.splitext(path)[0]
    g = path.parent.glob('*.[iI][fF][oO]')
    return next(x for x in g if os.path.splitext(x)[0] == name)

ИМХО какое-то уродство получилось. Может среди обширного набора инструментов есть что-то попроще?

 , ,

ados
()
Форум — Talks

Законодательство и костыли

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

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

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

 ,

ados
()
Форум — Linux-org-ru

Отдельный раздел для флуда

Известно что бремя модерирования на ЛОРе вносит определённую деформацию психики. В целях поддержания психологического здоровья модераторского состава предлагаю идею создания специального раздела на форуме с особым набором правил. А именно чтобы не было никаких правил: без запрета на нацпол, мат, оффтоп, оскорбления, анонимный постинг, жж и прочего тупака. Правил нет как для пользователей так и для модератора, т.е. модератор также может под любым надуманным предлогом и без объяснений (внятных) снести хоть все треды в разделе. Соответственно над входом в раздел должны висеть плашки об отказе от ответственности за нанесённый психологический ущерб входящему и за любую ценную информацию оставленную в темах раздела. В общем предлагаю создать раздел куда может сходить модератор и выпустить пар. ИМХО к разделу лучше всего подходит название «песочница».

Вот, правда, как ещё сделать так чтобы в таком разделе модератор мог банить по любому поводу, но так чтобы всех не перебанить? Разрешить постинг забаненым с перечёркнутыми никами?

 , психотерапия

ados
()
Форум — Development

Производительность генераторов и операций со списками

Как можно ещё ускорить выполнение такого скрипта:

#!/usr/bin/env python

import sys, difflib, re, os
from pathlib import Path


def regexp_compile (r):
    return re.compile(r, re.IGNORECASE)

def words_generator (buff):
    length = len(buff)
    start = 0
    while start < length:
        x = buff.find(b'\x00', start)
        yield buff[start:x].decode('utf-8')
        start = x + 9 # 1 byte for \0 + 4 bytes * 2 
        ## 32 bit for word index and 32 bit for word length


class RegexAccumulator:
    def __init__ (self, regexp):
        self.collection = list()
        f = lambda s: re.fullmatch(regexp, s) and s not in self.collection
        self.filter = f

    def accumulate (self, words):
        self.collection += list(filter(self.filter, words))

    def result (self):
        self.collection.reverse()
        return self.collection


class UsualAccumulator:
    def __init__ (self, word):
        self.word = word
        self.list1 = list()
        self.mlist = list()

        w = re.escape(word)
        regex1 = regexp_compile(".*" + w)
        self.regex2 = regexp_compile(w)

        self.rfilter = lambda s: re.match(regex1, s) and s not in self.list1
        self.mfilter = lambda s: s not in self.list1 and s not in self.mlist


    def accumulate (self, words):
        self.list1 += list(filter(self.rfilter, words))
        mlist = difflib.get_close_matches(self.word,
                                          words,
                                          n=400,
                                          cutoff=0.7)

        self.mlist += list(filter(self.mfilter, mlist))

    def result (self):
        result = list()
        list2 = list(filter(lambda s: re.match(self.regex2, s),
                            self.list1))

        if self.word in list2:
            result.append(word)
            list2 = list(filter(lambda s: s != word, list2))

        result += list2
        result += list(filter(lambda s: s not in result,
                              self.list1))
        result += list(filter(lambda s: s not in result,
                              self.mlist))

        result.reverse()
        return result


if __name__ == "__main__":

    word = sys.argv[1]
    if word == "-r" and len(sys.argv) > 2:
        accumulator = RegexAccumulator(sys.argv[2])

    else:
        accumulator = UsualAccumulator(word)


    files = Path(os.environ['STARDICT_DATA_DIR']).rglob("*.[iI][dD][xX]")

    for name in files:
        with open(name, 'rb') as f:
            ## My biggest .idx file ~ 11Mb so ...
            buff = f.read()
        accumulator.accumulate(list(words_generator(buff)))

    for word in accumulator.result():
        print(word)

Скрипт ищет слова в stardict словарях http://stardict-4.sourceforge.net/StarDictFileFormat секция {3}.

Очевидно что бутылочное горлышко в методах accumulate. Ещё может вместо words_generator и метода result у UsualAccumulator можно что-то более производительное приделать.

 ,

ados
()
Форум — Mobile

Картинки в w3m не работают

Захожу через w3m в termux на LOR и картинки не работают. w3m-img поставил.

 , ,

ados
()
Форум — Linux-org-ru

Юридический раздел

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

Да и времена Луговского с его технофашизмом и прочими биореакторами уже давно в прошлом. Humanist live matters короче.

 , ,

ados
()
Форум — General

Настройка IP камеры

Вот «досталась» мне некая EVC-DB-SL20-P/A/C (BV). Хочу настроить запись на microsd и, желательно, поменять настройки подключения по IP. В инструкции такие варианты:

  1. Подключение через браузер IE с какой-то неведомой Active X. Рассматривать не стал, уж извините.
  2. iVMS320 из esocctv.ru. Что под wine, что на винде (правда, свежее WinXP ничего под рукой не нашлось) софтина работает одинаково - подключение и картинка есть, окно настройки падает. Проприетарщина использует Qt.
  3. Очередная проприетарная BitVision для андроида с гугломаркета. Похоже вообще не подключается.

Может быть есть чем свободным обойтись можно?

 ,

ados
()
Форум — Security

Задачка про бумажку с паролями

Вот допустим я отправляюсь куда-то, что там меня ждёт непонятно. Есть у меня список аккаунтов с паролями, которые мне могут понадобиться. Этот список зашифрован и храниться на оборудовании, которому доверяю. С собой могу взять только оборудование, которому я не настолько доверяю чтобы хранить на нём этот список. Связи с надёжным оборудованием нет. Список довольно большой - все пароли запомнить не могу. Вижу 3 выхода:

  • Перевести все аккаунты на один пароль, который могу запомнить
  • Взять бумажку и записать все пароли на неё
  • Бумажка может попасться не в те руки, и, поэтому, я записываю на неё только часть паролей для каждого аккаунта, а другую часть, которая едина для всех паролей, запоминаю

Понятно что никакой способ 100% гарантий безопасности не даёт - интересуют насколько каждый способ ближе к 100%.

 

ados
()
Форум — Development

Common lisp, GTK и лапшелогика

Вот есть код:

(let ((some (trick 'construct)))
  (if (very-bad? some)
      (trick 'good-bye)
      (progn (when (bad? some)
               (setf some
                     (trick 'fix some)))
             (trick 'show some))))

В данный момент код в теле функций и форма с trick - вызов функции с созданием gtk окна, работой в этом окне, закрытием и, уже после, trick возвращает значение.

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

(low-level-init-gtk)
(let ((window (build-...)))
  ;; Здесь создаём объекты и рассовываем лямбды для отрисовки
  ;; и обработки событий
  ...
  
  ;; ииии
  (gtk-main-loop))

Ещё хочу это обернуть в unwind-protect чтобы высвобождать систему звука, например. Тут уже мало того формы с trick перестают быть просто вызовами функций, так вообще всю логику из первого куска кода нужно раздробить и размазать по обработчикам. Без этого только продолжения использовать? Или есть другие практики описания такой логики?

 , ,

ados
()
Форум — Talks

А кто у нас самый некомпетентный «пятизвёздочник»?

И самый мощный генератор тупняка с пятью звёздами наперевес. Думаю, это интересно каждому посетителю ЛОРа.

 

ados
()
Форум — Science & Engineering

Задачка с чайником

Есть обыкновенный чайник с дугообразной ручкой, двумя концами которой та крепится к сосуду. Чайник цельнометаллический за исключением пластика поверх ручки чтобы металл не обжигал. Задача узнать конструкцию ручки - или это пластиковая ручка, к концам которой приделывается два металлических прута для крепления к сосуду или это цельный металлический прут покрытый пластиковым материалом посередине. Деструктивные действия к чайнику применять нельзя. Снять ручку, чтобы померить электропроводимость, нельзя. Рентгеновское излучение недоступно. Металл чайника не магнитится.

 

ados
()
Форум — Mobile

Как укротить проприетарщину?

Или как выйти максимально сухим из воды?

Есть у меня аппарат с lineage os 16.0 на котором практически отсутствует что либо из несвободного ПО. Пока не жалуюсь - батарейка используется экономно, память непонятно чем не захламляется, root спокойно обеспечивается через magisk.

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

 , ,

ados
()
Форум — Talks

Кетчуп для линуксоида

https://i.postimg.cc/Tw6ZQSg9/IMG-20210331-150543.jpg

Кто пробовал? Какие подводные? Написано - произведено в Нижнем Новгороде.

 ,

ados
()
Форум — Linux-org-ru

Где спам, alpha?

 

ados
()
Форум — Talks

Кто тут жалуется на артрит от дефолтной раскладки в Emacs?

Вы на гитаре играть пробовали что-нибудь сложнее кузнечика?

Перемещено leave из desktop

 

ados
()
Форум — Games

Загадки со словами

Игры с ИИ и что-то по-интереснее городов - с ассоциациями, там, антиассоциациями. Возможно обучение ИИ в ходе игры. Существует ли такое?

 

ados
()
Форум — Mobile

Ломануть смартфон

Такая вот ситуация: иду по улице и вижу симпатичную девушку. Хочу познакомиться, но она вся целиком в телефоне. Можно ли каким-либо воздействиям по радиоканалам заставить её телефон обратить на меня её внимание?

Понимаю что тема тянет на статью, но я же не со зла, а всего лишь хочу привнести больше любви в этот мир.

 , ,

ados
()

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