У кого-нибудь получалось собрать d2x-xl под онтопик?
Сабж вот отсюда https://www.descent2.de/index.html ?
Сабж вот отсюда https://www.descent2.de/index.html ?
С помощью 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)
ИМХО какое-то уродство получилось. Может среди обширного набора инструментов есть что-то попроще?
По сути своды законов в различных странах это код по которому работает общество. Такой код выдержан, обычно, в декларативном стиле и, местами, в процедурно-императивном, но это не суть. Как и в свободном софте там полно костылей и несуразностей. Причём мне часто приходится сталкиваться с мнением, что в России или ты находишь лазейку среди таких костылей и живёшь как человек, или гниёшь на шахте, заводе, галере, etc.
Хоть нагромождений костылей в СПО всё больше с годами, по ощущениям, тем не менее чувствуется внимание к такой проблеме, и, даже, кто-то вычищает код. Иногда даже сносят довольно полезные вещи при этом.
Мне интересно узнать есть ли такие страны где подобным образом уделено внимание аналогичной проблеме в законодательстве. Где законодатели, получая зарплату с налогов, думают как выкидывать хлам который нагенерировал бешеный принтер в своё время.
Известно что бремя модерирования на ЛОРе вносит определённую деформацию психики. В целях поддержания психологического здоровья модераторского состава предлагаю идею создания специального раздела на форуме с особым набором правил. А именно чтобы не было никаких правил: без запрета на нацпол, мат, оффтоп, оскорбления, анонимный постинг, жж и прочего тупака. Правил нет как для пользователей так и для модератора, т.е. модератор также может под любым надуманным предлогом и без объяснений (внятных) снести хоть все треды в разделе. Соответственно над входом в раздел должны висеть плашки об отказе от ответственности за нанесённый психологический ущерб входящему и за любую ценную информацию оставленную в темах раздела. В общем предлагаю создать раздел куда может сходить модератор и выпустить пар. ИМХО к разделу лучше всего подходит название «песочница».
Вот, правда, как ещё сделать так чтобы в таком разделе модератор мог банить по любому поводу, но так чтобы всех не перебанить? Разрешить постинг забаненым с перечёркнутыми никами?
Как можно ещё ускорить выполнение такого скрипта:
#!/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 можно что-то более производительное приделать.
Захожу через w3m в termux на LOR и картинки не работают. w3m-img поставил.
ЛОРу уже давно пора бы обзавестись подобным разделом, т.к. уже давно на вполне технические вопросы здесь получают вполне логичные решение в стиле «пиши в прокуратуру», «смотри такие то пункты договора» или «перед работами оформляйте такой-то договор». Сама всеми уважаемая организация GNU активна по большей части именно в гуманитарной сфере.
Да и времена Луговского с его технофашизмом и прочими биореакторами уже давно в прошлом. Humanist live matters короче.
Вот «досталась» мне некая EVC-DB-SL20-P/A/C (BV). Хочу настроить запись на microsd и, желательно, поменять настройки подключения по IP. В инструкции такие варианты:
Может быть есть чем свободным обойтись можно?
Вот допустим я отправляюсь куда-то, что там меня ждёт непонятно. Есть у меня список аккаунтов с паролями, которые мне могут понадобиться. Этот список зашифрован и храниться на оборудовании, которому доверяю. С собой могу взять только оборудование, которому я не настолько доверяю чтобы хранить на нём этот список. Связи с надёжным оборудованием нет. Список довольно большой - все пароли запомнить не могу. Вижу 3 выхода:
Понятно что никакой способ 100% гарантий безопасности не даёт - интересуют насколько каждый способ ближе к 100%.
Вот есть код:
(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 перестают быть просто вызовами функций, так вообще всю логику из первого куска кода нужно раздробить и размазать по обработчикам. Без этого только продолжения использовать? Или есть другие практики описания такой логики?
И самый мощный генератор тупняка с пятью звёздами наперевес. Думаю, это интересно каждому посетителю ЛОРа.
Есть обыкновенный чайник с дугообразной ручкой, двумя концами которой та крепится к сосуду. Чайник цельнометаллический за исключением пластика поверх ручки чтобы металл не обжигал. Задача узнать конструкцию ручки - или это пластиковая ручка, к концам которой приделывается два металлических прута для крепления к сосуду или это цельный металлический прут покрытый пластиковым материалом посередине. Деструктивные действия к чайнику применять нельзя. Снять ручку, чтобы померить электропроводимость, нельзя. Рентгеновское излучение недоступно. Металл чайника не магнитится.
Или как выйти максимально сухим из воды?
Есть у меня аппарат с lineage os 16.0 на котором практически отсутствует что либо из несвободного ПО. Пока не жалуюсь - батарейка используется экономно, память непонятно чем не захламляется, root спокойно обеспечивается через magisk.
Но вот хочу попробовать поставить что-нибудь не наше - приложение от банка или какой-нибудь модный Whatsapp. Как усмирять зверя по поводу запускаться когда не положено, по поводу аппетитов на память и прочих прав?
https://i.postimg.cc/Tw6ZQSg9/IMG-20210331-150543.jpg
Кто пробовал? Какие подводные? Написано - произведено в Нижнем Новгороде.
Вы на гитаре играть пробовали что-нибудь сложнее кузнечика?
Перемещено leave из desktop
Игры с ИИ и что-то по-интереснее городов - с ассоциациями, там, антиассоциациями. Возможно обучение ИИ в ходе игры. Существует ли такое?
Такая вот ситуация: иду по улице и вижу симпатичную девушку. Хочу познакомиться, но она вся целиком в телефоне. Можно ли каким-либо воздействиям по радиоканалам заставить её телефон обратить на меня её внимание?
Понимаю что тема тянет на статью, но я же не со зла, а всего лишь хочу привнести больше любви в этот мир.
Есть в пекарне БП мощностью X Вт. Хочу поменять видеокарту и новая будет жрать на Y Вт больше. Как узнать потянет ли это БП до покупки новой видеокарты?
Honor a8 pro. Со слов хозяина на 3-5 секунд попал в водную среду. Потом его почти сразу зарыли в сахар, потом в рис. Через некоторое время он очухался и ещё полдня, булькая динамиками, работал, даже звонил. После отрубился и уже какой день никаких признаков жизни.
Помогите понять вывод из строя каких именно частей послужил причиной смерти аппарата?
Перемещено Zhbert из mobile
← предыдущие | следующие → |