LINUX.ORG.RU

Сообщения i_am_not_ai

 

Прочитать все PEPs за 83 часа (скорочтение)

2023-01-20

$ git clone --depth=1 https://github.com/python/peps
Cloning into 'peps'...
remote: Enumerating objects: 738, done.
remote: Counting objects: 100% (738/738), done.
remote: Compressing objects: 100% (721/721), done.
remote: Total 738 (delta 9), reused 131 (delta 9), pack-reused 0
Receiving objects: 100% (738/738), 4.79 MiB | 1.47 MiB/s, done.
Resolving deltas: 100% (9/9), done.

$ du -sh --exclude="peps/.git" peps/
14M	peps/

$ wc -w peps/pep-*.{txt,rst} | tail -n1
 1495878 total

$ echo 'scale=2;1495878/300/60' | bc -q
83.10

Получается, что при средней скорости чтения в 300 слов/минуту все PEPs можно прочитать за 83 часов. Или - 10 дней, если работать по 8 часов в день. А на практике, сколько времени уходит на изучение этого массива рекомендаций?

 

i_am_not_ai
()

Ковариантность и контрвариантность типов в Питоне, примеры

Прочитал про ковариантность и контрвариантность типов в Питоне.

Есть ли какие-то вменяемые простые статьи на эту тему на русском? Где на практике это полезно?

На английском упоминается Liskov’s Substitution Principle.

 ,

i_am_not_ai
()

Вычистить всю историю про конкретный файл/каталог из удалённого и локального репозитория Git

Как убрать из git-репозитория определённый файл/каталог, вычистив его из всех комиттов?

Цель - компактификация, своеобразный shrink бинарных файлов из .git/ и objects/

Нашёл какое-то мутное длинное объяснение на Stackoverflow: https://stackoverflow.com/questions/2100907/how-to-remove-delete-a-large-file...

Я так понял, самый простой способ - это такой:

git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch path_to_file' HEAD

 

i_am_not_ai
()

SSL и Сбербанк-Онлайн .apk

Напомните, пожалуйста, с какого сервера скачивается новое мобильное приложение Сбербанк.Онлайн? При скачивании нового .apk браузером используется не просроченный SSL-сертификат? То есть, Яндекс.Браузер для работы со Сбербанк.Онлайном требуется только на десктопе?

 ,

i_am_not_ai
()

shutil.copy2(src, dst) and mtime milliseconds + sshfs

Столкнулся с ситуацией, когда при копировании shutil.copy2() время в метаданных обновляется с точностью лишь до секунды.

Как сделать, чтобы копировалось точное время?

#!/usr/bin/python3

import shutil, os

fn1 = 'sc.txt'
fn2 = os.path.expanduser('~/fs/sc.txt')

shutil.copy2(fn1, fn2) # uses .copystat()

t1 = os.stat(fn1).st_mtime_ns
t2 = os.stat(fn2).st_mtime_ns

print(t1)
print(t2)

'''
$ ./sc.py

1673517605186013563
1673517605000000000

'''

 ,

i_am_not_ai
()

Python3: private methods

Есть ли более простой способ для запрещения наследования конкретных методов класса?

#!/usr/bin/python3

class Библиотека(object):

  def азъ(self): print('азъ')
  def буки(self): print('буки')

class Интерфейс(object):

  protected_methods = ['буки',]

  def __init__(self): self._wrapped = Библиотека()

  def __getattr__(self, name):

    if name in Интерфейс.protected_methods: raise AttributeError
    return getattr(self._wrapped, name)

class Пустышка(Интерфейс):

  азъ = property()
  буки = property()

if __name__ == '__main__':

  c = Пустышка()

  print('protected methods:', c.protected_methods)

  print('c.азъ:', hasattr(c, 'азъ'))
  print('c.буки:', hasattr(c, 'буки'))

  print('c.азъ():', end = ' ')
  c.азъ()

  print('c.буки():', end = ' ')
  c.буки()

По-моему, в Turbo Pascal это делалось просто, указанием директивы private:

URL: https://stackoverflow.com/a/235657/966789

 ,

i_am_not_ai
()

Linux и побитовая идентичность бинарников

Эту тему затрагивали в своих обсуждениях: te111011010, Stil, toyo-chi, Napilnik, Deleted, hateyoufeel, EXL.

Можно ли собрать ядро с софтом без «лишней» информации, чтобы каждый раз сборки были бинарно идентичны, при одинаковых конфигах? Например, чтобы в бинари не писался timestamp и т.п.

Кто-то пробовал такой дистриб создать? Какой для этого используется компилятор?

 , ,

i_am_not_ai
()

linux-совместимые 3G/4G-модемы (USB)

Подскажите, как сейчас обстоят дела с поддержкой USB-модемов в Linux?

Где-то на форумах читал, что пришли к какому-то стандарту, и сейчас USB-модем эмулирует работу сетевой USB-карты.

p.s. Лет 15-20 назад, помню, выходили в интернет обычно через шнурок от телефона (GPRS), потом появились эти-самые модемы. И не все модемы умели работать под Linux. Как с этим сейчас дела?

 , , ,

i_am_not_ai
()

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