Обновить
3
0.2
Жораев Тимур Юлдашевич@TimurZhoraev

Доцент института МПСУ им. Л. Н. Преснухина

Отправить сообщение

Это всё от того, что адрес устройства не соответствует его месту в сети. Это неисправимый на данный момент недостаток всей IP-архитектуры. Адрес, в общем виде, должен назначаться устройством по заявлению а не присваиванием ему со стороны. Далее, он может получить уникальный виртуальный идентификатор, уходящий уже в таблицы трансляции для многоранговой сети. А вместо этого создаётся некий образ обратной совместимости, на самом же деле это по сути сетевой идентификатор высокой разрядности с околонулевой вероятностью коллизий. То есть в идеальном варианте должен быть бесшовный стек 4<->6, но что-то пошло не так. Хотя могли бы первые 4 байта 4-ки с checksum ввести как суффикс для 6. Тогда и сам адрес можно было бы без ошибок записать а остальные байты это сетевая виртуальная машина, которая парсит уже назначение пакета.

Зато если пообещать юнатам что их юниты-танчики с IP8 будут на 0.8% быстрее, и они готовы вывернуть у родителей карманы для покупки нового железа а-ля элемент с тремя кулерами, то скорее бизнес-модель будет уже более дружелюбной и не такой формальной.

Это две стороны одной медали. Сеть - это то что создано для человека и действительно, идеальный вариант это удобство чтения и использования. Домохозяйке с чайником даже не надо 192.168, достаточно розетка номер 1 и шнур номер 2. Всё. Равно как JSON -> CSV, достаточно нажимать кнопку "запятая" без всяких скобочек и кнопки вверх-вниз. Но вот далее когда начинается транспорт её запросов, там будет уже другой вариант, когда нужно организовать общение уже уровня сервер-сервер. И там уже вообще говоря человеку не место, идентификаторы присваиваются автоматически. UUID чем не IP8, да ещё и с временной меткой. Там и дату отправки пакета можно прикрутить, чтобы спустя хотя бы лет 10 он был доставлен, если эту выпавшую флешку воткнуть заново.

В данном случае соблюдается принцип скорее "работает - не трожь". Работоспособность поддерживается уже просто неприличными человеко-часами а также неясным состоянием удобства из разряда "я принёс компьютер и хочу его объединить с другим в один клик, воткнуть ещё в параллель какую-то коробку с RJ-45 и видеть её как значок или панель в Dos Navigator". В любом случае паровоз рано или поздно сменится электротягой и дизелем. Можно конечно приспосабливаться, затолкав в котёл тяговую аппаратуру и прикрутив мотор к детандеру, но это сомнительный девайс получается. Вопрос скорее уже не в аппаратуре а в обучении этим принципам и наличии групп поддержки, которые готовы 20+ лет мейнтейнить то что жалко выбрасывать.

Возникает другой вопрос - можно ли написать качественный датасет и сказать ИИ что это преимущественный шаблон для обучения

На рисунке int8 - там точно экспонента? Которая занимает всё число. Вроде как int8 это линейное представление. То есть увеличение значащего разряда на 1 ведёт к увеличению числа на 1. Либо это число хранит значение, на которое влево/вправо сдвигаются операнды при работе с ним, тогда это уже экспонента.
int8 также можно представить в q-формате. Например, q6. В этом случае числа представляются как (для беззнака)a \cdot 2^1+b \cdot 2^0+c \cdot 2^{-1}+d \cdot 2^{-2}+e \cdot 2^{-3}+f \cdot 2^{-4}+g \cdot 2^{-5}+h \cdot 2^{-6}, где двоичная запятая расположена после второго разряда. С ними можно производить такие же действия. Если число нормализовано - запятая стоит формально сразу после знакового разряда и это будет формат q7. Единственное что после каждого умножения необходимо корректировать результат (8x8=16 бит, 7x7=14->15) сдвигом влево, но некоторые архитектуры для нормированных чисел делают это автоматически. Вообщем все значения лежат в диапазоне от -1 до 1- 2^{-N}

Это всё навязанное легаси и инерция по разработке спецификации под переменную длину с учётом современных реалий с точки зрения методов доставки данных а не аппаратуры-драйверов. То есть фактически в карточке появляется локальный контроллер который занимается коммутацией, кешированием, транспортом помимо основного, который осуществляет маршрутизацию и применяет правила. Это сопоставимо с внедрением С-подобных сущностей, например как OpenCL/CUDA для программирования внешних сопроцессоров. Вот эту необходимую по сути оснастку всё никак не тронут с места, вместо этого предлагаются прыжки с костылями на основе инструментов полувековой давности. Если посмотреть с точки зрения того как там летают данные обёрнутые адресами то это фактически протокол внутри протокола (причём уровень вложенности уже вышел за разумные пределы) который давным давно уже развернуть как единое целое.

Раньше набирали 8 для звонка по межгороду или заказной 07. Краткие себе цифры. Например IP с адресом 0 - это null, 1 - это localhost, 1.0 - память, 2.1 - диск, 4.3.2 - домовой провайдер, 6.4.6.4 - широкополосный спам, 4.2.4.2.4.2.4.2 - Вояджёр-3. Адресация должна быть хешируемой и по-хорошему содержать типизацию устройств, чей это адрес, сервер, эндпойнт, транслятор, а также управляющие команды и микро-байткод. То есть сам IP адрес это уже микро-пакет переменной длины с конкретным назначением, карточки уже вполне с этим могут справляться. Просто в то время маска была в прямом смысле маской на чём-то вроде К555ЛА3 и с приёмником пакета на 74HC165, больше этим причин заниматься нет, включая IP6.

Если взглянуть на проблемы базы данных шире, то скорее всего концептуально они уже в большей мере трансформировались в некий большой роутер нежели то для чего они изначально были задуманы. То есть вряд ли имеются потребности писать код SQL с уровнем вложенности условий с десяток и хитрым акртангенсом от даты рождения регистрируемого юзера. На первый план выходит ограничение пропускной способности канала, масштабируемость с резервируемостью и простотой обращения с обслуживанием. Скорее всего это превратится в некий агрегат микросервисов с оптимальным распределением данных за счёт кеширования и хеширования, включая алгоритмы на основе нейросетей, индексацию сжатой информации. Скорее всего это будет некий asyncio с объектным хранилищем с дополнительными атрибутами свойств, включая поведение предикатов, фактически, имитируя SQL на уровне байткода, и являющийся расширением языка общего назначения. Потому как если взглянуть на состав трафика из 90-х и тот что сейчас, то получается что БД уже без буквы Б, то есть смысл структурирования человеком уже уходит на второй план.

Опять-таки AI заставляют делать не свойственное ему дело - программировать на том на чём это делает человек. Гораздо эффективнее будет даваться некий мета-язык, пусть даже байткод с атрибутами для HRF, но система команд которого уместится грубо говоря в 256 байт. То есть обучение уже будет непосредственно на алгоритмах и вобрать он может в локальную память гораздо больше чтобы можно было ему запускать автоматом тесты и самому себе делать assertions и проверять их, чтобы избежать глюков сетей.

Это всё потому что с 80-х формат "чтения человеком" подразумевает Volkov/Norton Commdander/блокнот в виде "открыть .txt". То есть спецификация полувековой давности уже почти. Мы привыкли работать с самыми примитивными редакторами, так как их сдерживает именно такое описание. Вместо того чтобы приложить усилия именно на сам редактор, который будет поддерживать сказанное по умолчанию и генерить по выходу уже файл с комментами, которые вставляются туда либо как двоичка, либо как текст с тегом как угодно, предлагается опять свистопляска вокруг парсеров CSV, {}, #, @#$@#% как символов-разделителей помимо знаменитых 0x10 и 0x13.

Это самое интересное что за эти 25+ лет если вернуться в любые IDE-шки того времени то что называется найдите пару отличий. Особо ничего не поменялось разве что принципиальный момент - это добавился AI ассистент, и то только в роли быстрого справочника. То есть как была файловая система как средство структурирования так и осталась, как был С для эмбеддеров так и сейчас во главе. То есть значимого прогресса в концептуальной области нет, это следствие обучения этому делу по "классике", йота-экзабайты легаси, требования со стороны коммерции "работает-не трожь" и войти в айти за 21 день, где собственно кроме той самой классики с синтаксическим сахаром больше ничего и нет.

Ох уж эти линейные файлы с алфавитно-цифровым последовательным вводом. В 21-м веке проще уже написать промт:
- write simple spreadsheet editor usind ncurses using python
Получить рабочий вариант что то вроде

Скрытый текст
import curses
import sys

# Data for the spreadsheet (using a 2D list)
sheet_data = [
    ["id", "name", "role"],
    ["1", "Alice", "Admin"],
    ["2", "Bob", "User"],
]

ROWS = len(sheet_data)
COLS = len(sheet_data[0])  # Use the number of columns in the first row
CELL_WIDTH = 12

current_row = 0
current_col = 0


def draw_sheet(stdscr):
    """Draws the current state of the sheet to the screen."""
    stdscr.clear()
    for i in range(ROWS):
        for j in range(COLS):
            content = str(sheet_data[i][j])[:CELL_WIDTH - 1]
            display_str = f"{content:<{CELL_WIDTH - 1}}"

            # Highlight the current cell
            if i == current_row and j == current_col:
                stdscr.attron(curses.A_REVERSE)
                stdscr.addstr(i, j * CELL_WIDTH, display_str)
                stdscr.attroff(curses.A_REVERSE)
            else:
                stdscr.addstr(i, j * CELL_WIDTH, display_str)

    stdscr.addstr(ROWS + 1, 0, "Navigate: Arrow Keys | Edit: Enter Key | Quit: 'q'")
    stdscr.refresh()


def edit_cell(stdscr):
    """Allows user to edit the content of the current cell."""
    global sheet_data

    # Enable echoing characters to the screen during input and show cursor
    curses.echo()
    #stdscr.curs_set(1)

    prompt_y = ROWS + 2

    # Clear the prompt line before displaying new prompt
    stdscr.move(prompt_y, 0)
    stdscr.clrtoeol()

    current_value = str(sheet_data[current_row][current_col])
    stdscr.addstr(prompt_y, 0, f"Enter new value for [{current_value}]: ")

    # Read user input starting after the prompt text
    # The input length is limited to CELL_WIDTH - 1 chars
    input_str = stdscr.getstr(prompt_y, 29, CELL_WIDTH - 1).decode('utf-8')

    if input_str:
        sheet_data[current_row][current_col] = input_str

    curses.noecho()  # Turn off echoing
    #stdscr.curs_set(0)  # Hide cursor

    # Clear the prompt line again after input is done
    stdscr.move(prompt_y, 0)
    stdscr.clrtoeol()


def main(stdscr):
    """Main function to initialize curses and handle input loop."""
    global current_row, current_col

    curses.curs_set(0)  # Hide the cursor initially
    stdscr.keypad(True)  # Enable special keys (arrow keys, Enter key etc.)

    while True:
        draw_sheet(stdscr)
        key = stdscr.getch()

        if key == ord('q'):
            break
        elif key == curses.KEY_UP:
            if current_row > 0:
                current_row -= 1
        elif key == curses.KEY_DOWN:
            if current_row < ROWS - 1:
                current_row += 1
        elif key == curses.KEY_LEFT:
            if current_col > 0:
                current_col -= 1
        elif key == curses.KEY_RIGHT:
            if current_col < COLS - 1:
                current_col += 1
        elif key == curses.KEY_ENTER or key in [10, 13]:  # 10 and 13 are ASCII codes for Enter
            edit_cell(stdscr)


if __name__ == '__main__':
    # curses.wrapper handles initialization and safe termination
    curses.wrapper(main)

Запускать в терминале python3 скрипт (пайчарм не эмулирует в должной мере ncurses)

Ну или более графическое:

Скрытый текст
import sys
from PyQt6.QtWidgets import (
    QApplication, QMainWindow, QTableWidget, QTableWidgetItem,
    QVBoxLayout, QWidget, QHeaderView
)
from PyQt6.QtCore import Qt

class SpreadsheetEditor(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Simple PyQt6 Spreadsheet Editor")
        self.setGeometry(100, 100, 800, 600)

        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        self.layout = QVBoxLayout()
        self.central_widget.setLayout(self.layout)

        self.tableWidget = QTableWidget(10, 5)  # 10 rows, 5 columns
        self.layout.addWidget(self.tableWidget)

        self.init_ui()

    def init_ui(self):
        # Set horizontal headers (column names)
        headers = ["A", "B", "C", "D", "E"]
        self.tableWidget.setHorizontalHeaderLabels(headers)

        # Ensure headers stretch to fill available space
        self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)

        # Populate with some default data (optional)
        for row in range(10):
            for col in range(5):
                item_text = f"Row {row + 1}, Col {col + 1}"
                # QTableWidgetItem stores the value
                item = QTableWidgetItem(item_text)
                self.tableWidget.setItem(row, col, item)

def main():
    app = QApplication(sys.argv)
    editor = SpreadsheetEditor()
    editor.show()
    sys.exit(app.exec())


if __name__ == "__main__":
    main()

То есть отходить от того что для чтения и редактирования данных нужно под рукой иметь всегда такое что интерпретирует перевод строки и возврат каретки из 60-х годов прошлого века. Настала эпоха кастомных редакторов непосредственно под данные, тогда это и будет HRF. Помимо описания самой разметки (хоть двоичной) существует некая абстрактная спецификация на средство визуализации, редактирования и её хранения, которое затем транслируется в исполняемый Web/system GUI/консоль.

Вопрос тогда надо ставить иначе - конечно ли количество информации, описывающей Вселенную. Вроде как да, так как всё можно расквантовать до Планковских величин, включая гравитацию. То есть происходит отказ от непрерывных (бесконечных) моделей, где требуется физическая сходимость, при этом математическая - вполне, например, те же синусы-косинусы в формуле Эйлера (для уравнения Шрёдингера) вполне себе содержат sin-cos определяемые формально через бесконечный ряд Тейлора. Хотя sin(x)/x это краеугольный камень преткновения, геометрическое доказательство - не в счёт.

Более того, мнимая единица это... (-1)^{{2}^{(-1)}} и является единичным вектором x+{\bf{j}}y, перпендикулярным действительной оси. Она является не числом в обычном понимании а алгоритмом его нахождения. То есть над полем комплексных чисел определены все необходимые операции +-/*, а по факту это действия над парой действительных. А действия над действительными это над рациональными, потом над целыми, и в конечном итоге над натуральными, как на калькуляторе. Со всеми этими Ньютон-Рафсонами, рядами Тейлора, Вавилонским корнем квадратным, Кордиками, комбинационным сумматором и прочей численной рутиной.

Вот это и есть главная спекуляция. Что квант мозга - это грубо говоря одна клетка, содержащая химическую реакцию эквивалентную нейрону. Потому как нейрон это один из видов взаимодействия между другими подобными клетками. Но сам принцип это химическая реакция по поляризации от аксонов. А что там ДНК делает с этим ещё предстоит узнать. У простейших микроорганизмов даже под микроскопом сложнейшее поведение, со всеми этими жгутиками, ресничками, химическими медиаторами. Так вот там точно также есть "мозг", который даёт указания, например, что нужно сделать чтобы получились пенициллин-устойчивые штаммы бактерий например, или какие-либо резистентные вирусы. Грипп же научился каждый раз мутируя обходить антитела. То есть имеется уже какой-то квант сознания на этот счёт, пусть даже примитивный. Да и модель простейшего нейрона с каким-нибудь сигмоидом и его свойств это уже диссертация, особенно что касается методов обучения в многомерном пространстве, которые решаются аналитически только в уж очень конкретной точке.

Есть ещё подобные лампы для ОЗУ, а также запоминающие трубки для осциллографа.

Есть ещё на более-менее мощных лампах (оконечные УМНЧ в основном тетроды и пентоды) эффект, когда напротив окошка в аноде на стекле отпечатывался серый материал по мере старения лампы. Скорее всего это какой-то перенос с анода или рекомбинация ионов геттера с током электронов.

Да канифоль и ЭПСН-40 это наше всё. Ну или 25 если через диод включить с шунтирующим тумблером. А если удаётся раздобыть/попросить в школьной подсобке лаборатории химии/физики капельку спирта от спиртовок то получается вполне себе хороший "ЛТИ-120". Иногда даже годилась смола с хвойных или таблетка аспирина, паяльный жир, в крайнем случае - парафиновая свечка, как появились стержни для термопистолета - оказалось вполне хороши для этого. Кстати тогда ещё были зубоврачебные кабинеты в школах, где добрый доктор мог отсыпать в спичечный коробок свёрлышек для печатных плат, нарезаемые полотном от ножовки.

Благодаря многовековой селекции получается отличное сено! Плохо что пока что в пределах Земли. На других объектах Солнечной системы гравитация не такая большая. Поэтому трава получается что будет расти в разные стороны, так как детекторы низ-верх будут поломаны. А может даже и проще будет собирать клубки и сразу сушить без пресс-подборщика.

Информация

В рейтинге
2 877-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер электронных устройств, Научный специалист, исследователь
Старший
От 300 000 ₽
Прикладная математика
Разработка программного обеспечения
Оптимизация кода
C
Assembler
Python
Алгоритмы и структуры данных
Объектно-ориентированное проектирование
Многопоточность
Verilog HDL