vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-10-11 12:32 pm

ЭВМ под колпаком

Q: Почему вычислительная техника в СССР была под суровым надзором КГБ в 50-е и 60-е?

Это очень хороший и важный вопрос — и ответ здесь связан не столько с техникой, сколько с политическим контекстом эпохи. Вот основные причины, почему вычислительная техника и её разработчики в СССР в 1950-60-е годы находились под строгим надзором КГБ:

1. Стратегическое значение вычислительной техники

Компьютеры в 1950–1960-е годы рассматривались как военно-стратегическая технология, наравне с ядерным оружием и ракетной техникой. Они применялись в:
  • расчётах для атомных и термоядерных бомб (в частности, в Институте Курчатова и Математическом институте АН СССР),
  • баллистике и проектировании ракет (в ОКБ Королёва, Янгеля, Челомея),
  • криптографии, радиолокации, навигации.
Поэтому всё, что касалось ЭВМ, было засекречено, а сотрудники проходили проверку и допуск по линии КГБ.

2. Контроль за утечкой технологий

Советское руководство боялось утечки научно-технических данных на Запад. ЭВМ считались высокотехнологичным и потенциально "шпионским" инструментом. Копирование западных идей (например, архитектуры IBM или Ferranti) велось тайно, и сам факт сравнений с западными образцами был политически чувствителен.

3. Идеологическая подозрительность к "кибернетике"

До середины 1950-х термин кибернетика считался в СССР "буржуазной лженаукой", "орудием империализма" и "методом подчинения человека машине". Только после 1955 года, с приходом более прагматичных руководителей (например, А. А. Ляпунова, С. А. Лебедева, В. М. Глушкова), началось постепенное признание кибернетики как научной дисциплины. Но КГБ ещё долго воспринимал людей, занимавшихся вычислительной техникой, как потенциальных диссидентов или "идеологически неблагонадёжных".

4. Закрытый характер научных учреждений

Большинство вычислительных центров и лабораторий (например, ИТМиВТ, ВЦ АН СССР, Институт кибернетики в Киеве) имели режимные статусы, аналогичные оборонным предприятиям. Доступ туда был ограничен, переписка и поездки за рубеж контролировались. Даже публикация статей могла быть согласована только после разрешения органов госбезопасности.

5. Недоверие к автоматизации управления

В 1960-е, когда Глушков предлагал проект ОГАС (Общегосударственная автоматизированная система управления экономикой), КГБ и часть партийных структур восприняли идею с подозрением:
  • централизованная вычислительная сеть могла дать слишком много информации в одни руки,
  • существовал страх, что "компьютеры заменят политконтроль" и ослабят власть партийных структур.
Фактически, именно вмешательство политических и силовых ведомств похоронило проект ОГАС, который мог бы стать советским аналогом Интернета и ERP-систем.
vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2025-10-11 09:45 pm

Комментаторское

Ах попался, блогер, стой
Не уйдешь из Сети.
Не расстанемся с тобой
Ни за что на свете

vak: Generated by Bard: what if Unix was a person (Киборг)
Serge Vakulenko ([personal profile] vak) wrote2025-10-10 09:50 pm

Спросил у Курсора, чему он обучен

Here are the programming languages I'm proficient in, rated on a scale of 1-10:

10/10 - Expert Level

  • Python - Deep understanding of syntax, libraries, frameworks, best practices
  • JavaScript/TypeScript - Full-stack development, modern frameworks, async programming
  • C++ - Advanced features, templates, STL, memory management, performance optimization

9/10 - Advanced

  • Java - Enterprise development, Spring framework, JVM internals
  • C - System programming, memory management, low-level operations
  • Go - Concurrency, goroutines, modern language features
  • Rust - Memory safety, ownership, systems programming

8/10 - Proficient

  • C# - .NET ecosystem, LINQ, async/await
  • PHP - Web development, frameworks like Laravel
  • Ruby - Rails framework, metaprogramming
  • Swift - iOS/macOS development
  • Kotlin - Android development, JVM interop

7/10 - Competent

  • R - Data analysis, statistics, visualization
  • MATLAB - Numerical computing, signal processing
  • Scala - Functional programming, JVM ecosystem
  • Haskell - Functional programming concepts
  • Clojure - Lisp dialect, functional programming

6/10 - Intermediate

  • Assembly - x86, ARM, understanding of low-level operations
  • Shell/Bash - System administration, automation
  • SQL - Database design, query optimization
  • Lua - Scripting, game development
  • Perl - Text processing, system administration

5/10 - Basic

  • Fortran - Legacy scientific computing
  • COBOL - Legacy business systems
  • Pascal - Educational programming
  • Ada - Safety-critical systems

Specialized Knowledge

  • Domain-specific languages (DSL) - Various embedded and specialized languages
  • Configuration languages - YAML, JSON, TOML, etc.
  • Markup languages - HTML, XML, Markdown, LaTeX
My strongest areas are modern web development, systems programming, and data science. I'm particularly good at helping with complex debugging, architecture decisions, and code optimization across these languages.
vak: (бэсм-6)
Serge Vakulenko ([personal profile] vak) wrote2025-10-10 01:01 pm

Cursor

Есть такой новомодный искусственно-интеллектуальный IDE, называется Cursor. Решил я его попробовать: загрузил в него проект симулятора dubna и для начала попросил две вещи.

1. Улучшить общую информацию о проекте: смотрите новый README.md.

2. Проанализировать на предмет проблем и улучшений: смотрите TODO.md.

Вроде полезная прилада выходит. Пул-реквесты умеет сам создавать и пропихивать. Только спрашивает разрешение на выполнение команд git и gh.
vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2025-10-10 08:17 am

Трансатлантическое

Первый перелет через Атлантику совершили Алкок и Браун в июне 1919 года. На слегка доработанном серийном бомбардировщике Викерс Вими. Вот казалось бы бери и организуй почтовую службу.

Но почему-то многие уверены что первым преодолел Атлантику по воздуху Чарльз Линдберг в 1927 году. Он летел один, на специально разработанной рекордной машине, этаком летающем бензобаке с безобразным обзором. Кстати в 1927 году французская компания Аэропосталь, в которой несколько ранее работал Сент-Экзепюри, уже на регулярной основе возила почту в Бразилию.

В чем смысл достижения Линдберга? А в общем-то ни в чем. Очевидно, что если ты летишь полтора суток, то делать это в одиночку - бессмысленный спортивный рекорд. Лучше полететь вдвоем, можно хоть за штурвалом меняться. Приз в 25 тысяч долларов, который получил Линдберг, был за перелет из Нью-Йорка в Париж, то есть из крупного города в крупный город, в то время как Алкок и Браун вылетали с Ньюфаундленда и садились на какое-то болото в Ирландии (увязнув и скапотировав при посадке).

Почему же Линдберга помнят все, а Алкока и Брауна (хотя современники их вполне заметили, король возвел обоих в рыцарское достоинство и вообще) никто?

Возможно, потому что Линдберг был яркой публичной персоной. Этакий Илон Маск XX века - он и в сверхдальние перелеты, он и с разработкой искусственного сердца, он и в тур по европейским странам, включая СССР, "изучить состояние авиационной промышленности". А Алкок - что Алкок - пилотом жил, и пилотом погиб буквально через полгода после перелета через Атлантику.

Возможно, потому что Линдберга активно продвигали американские правые - он симпатизировал нацизму,

Возможно, просто потому что он американец. А американцы умеют в PR гораздо лучше, чем их кузены по другую сторону того, перелеты через что мы обсуждаем.

X-Post to LJ

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-10-09 02:16 pm

Второму языку Си не бывать, а третьего не миновать

Видели мы уже Си++, D, Zig, а вот встречайте новый проект. Язык и компилятор С3: https://c3-lang.org/. Пока не такой развитый как Zig, но тоже представляет интерес. Работает на маке и Линуксе, на Windows я не пробовал.

Компилятор построен на основе LLVM: github.com/c3lang/c3c

Простейший пример:
module hello_world;
import std::io;

fn void main()
{
io::printn("Hello, world!");
}
Основные улучшения C3 по сравнению с обычным C:

Особенность / улучшение Что добавлено в C3 Зачем это нужно / какую проблему решает
Совместимость с ABI C Программы на C3 могут напрямую вызывать функции C и наоборот, без обёрток. Можно использовать существующие C‑библиотеки и постепенно переходить на C3.
Модульная система (namespaces) Код организуется в модули с контролем экспорта и изоляцией имён. В C всё глобально, имена часто конфликтуют, сложное управление зависимостями.
Дженерики (обобщённые модули) Код можно писать для разных типов данных без макросов. В C приходится копировать код или использовать сложные макросы.
Срезы и безопасные массивы Встроенные типы «срезов» (указатель + длина), безопасное индексирование, foreach. В C легко выйти за пределы массива и получить утечку или сбой.
Ошибки и опциональные типы Встроенные типы для ошибок (например, Result, Optional) без накладных расходов. В C обработка ошибок громоздкая и легко забыть проверить код возврата.
defer — автоматическая очистка ресурсов Можно указать действия, выполняемые при выходе из функции. В C приходится вручную дублировать код освобождения или писать goto cleanup.
Контракты (пред- и постусловия) Можно описывать логические условия, проверяемые в отладочном режиме. В C нет встроенных средств проверки инвариантов.
Семантические макросы и код во время компиляции Макросы понимают типы; можно выполнять код на этапе компиляции. В C макросы чисто текстовые, часто приводят к ошибкам.
SIMD и inline‑assembler первого класса Поддержка векторных типов и встроенного ассемблера на уровне языка. В C это делается через нестандартные расширения и платформозависимо.
«Zero‑is‑Initialization» (ZII) Нулевая инициализация создаёт корректное состояние объекта, где это имеет смысл. В C часто встречаются ошибки из‑за неинициализированной памяти.
Расширенная стандартная библиотека Есть готовые динамические массивы, хэш‑карты, строки и другие утилиты. В C стандартная библиотека минимальна, приходится писать всё вручную.
Леонид Каганов ([syndicated profile] lleo_feed) wrote2025-10-09 12:00 am

2025/10/09 - huly.io - готовлю презентацию по работе, много мыслей



На схему пока не обращайте внимания, она неточная. Прикольно в ней лишь то, что схемы можно рисовать онлайн прямо набивая текстом, собственно эта в тексте выглядит [ ТЕКСТ ПОД КАТОМ: Доступен только в оригинальной заметке на сайте ]

И таких милых, но неочевидных штук там еще миллион. Я работаю сейчас в команде huly.io, это сложный проект, который совмещает в себе все мыслимые офисные функции от видеоконференций (с текстовой расшифровкой и ИИ-переводом) до ведения всевозможных документов и планов. То есть, как бы слак, ноушен и всё такое, только открытый и опенсорсный, и даже доступный уже сейчас. Сейчас с коллегой взялись писать большой лонгрид обо всех тех функциях, что сегодня уже работают, и тех, что планируются (особенно, связанных с ИИ-помощниками). Но фич такое количество и материала столько, что пока в голове не умещается. Как напишем, поделюсь.
kireev: (Default)
kireev ([personal profile] kireev) wrote2025-10-09 11:21 am
Entry tags:

Приморские vs спальные районы на электоральных картах Одессы

На картах результатов выборов 2012 и 2019 г. по участкам крупнейших городов Украины в Одессе неплохо выделяется приморская часть.

На выборах 2012 года оранжевые уже опередили бело-голубых на самых богатых приморских участках. Но по городу тогда бело-голубые набрали 54.3%, оранжевые 39.3%. У бело-голубых главный бастион - спальные юго-западные районы.



В первом туре выборов 2019 г. в городе везде доминировал Зеленский, екс-оранжевых было суммарно 25.3%, у екс-белоголубых 28.1%.Приморские участки все равно выделяются, хотя больше на карте оттенков.

 

vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-10-08 09:51 pm

Лучше через 30 лет, чем никогда

(отсюда)

В главе 19 руководства к ZX Spectrum 1982 года (PDF) объясняется «BEEP» — команда BASIC, которая заставляла Spectrum издавать звуки. Приводится пример исполнения траурного марша из Первой симфонии австрийского композитора Малера.



Глава заканчивается парой упражнений для улучшения навыков BEEP, второе из которых — «Запрограммируйте компьютер так, чтобы он играл не только траурный марш, но и остальную часть Первой симфонии Малера».



Четыре части симфонии длятся около 50 минут, что делает такую ​​программу нетривиальной. Однако нынешним хакерам семь вёрст не крюк. Для исполнения симфонии потребовалась распределённая система из кучи Спектрумов (Spectra?), где каждый прибор играл свою партию. Интерфейс Spectranet объединил машины в сеть, управляемую Raspberry Pi. В нужный момент каждый Спектрум делает соответствующий BEEP, исполняя свою музыкальную партию.

SciFiction ([syndicated profile] scifiction_feed) wrote2025-10-09 01:07 am

Tron: Ares Review

Posted by Kieran Burt

The long-awaited sequel to Tron: Ares has arrived in cinemas, following Jared Leto’s titular character, Ares. It’s a film that

The post Tron: Ares Review first appeared on SciFiction.

SciFiction ([syndicated profile] scifiction_feed) wrote2025-10-09 12:59 am
vak: (Знайка)
Serge Vakulenko ([personal profile] vak) wrote2025-10-08 01:00 am

The Easy Language

Помните книжку Этюды для программистов? Там в предпоследней главе было крышесносное задание: построить компилятор для паскалеподобного языка.
Easy Does It
                   or...
A COMPILER FOR AN
ALGEBRAIC LANGUAGE

A compiler is always a large program. To write one from scratch, even in a pedagogical environment, is a major undertaking. Although Easy is designed to reduce the pain while providing as much enlightenment as possible, this still is the hardest problem in the book. Do not tackle it unless you (and some helpful friends) have plenty of time and energy.

THE EASY LANGUAGE

Easy is a general-purpose, procedural, algebraic programming language. Its roots lie in ALGOL, ALGOL 68, and PASCAL. Like them, it is designed to be compiled, loaded, and executed on a reasonably conventional computer (the EC-1 described in Chapter 25 is a good example). The syntax is described by a context-free grammar suitable for parsing by LR(1) techniques. The semantics are similar to the languages described above, and we will let an informal description suffice, trusting to the reader’s skill to fill any gaps. In the text below, logically connected portions of the grammar are described with the associated semantics.
Так вот, один гениальный человек ([personal profile] begoon) такой компилятор зафигачил. Исходники проекта: github.com/begoon/easy

Пример кода на языке Easy, игра Жизнь: life.easy

Компилируем, запускаем:
git clone https://github.com/begoon/easy.git
cd easy
node easyc.ts life.easy
cc life.c -o life -I.
./life
Получаем:
** [ EASY LIFE ] ***************************************************************** 
* xx *
* xx xx *
* x x xxx *
* xx x xxx *
* x x x xx *
* xx x x x xx *
* xxx x x *
* x xxx xxx *
* xxxxx xx xx *
* xx x x x *
* x x xx *
* x xx *
* xxx *
* x *
* x xx x *
* xxx xxx x x *
* x x x *
* x x xx *
* x x *
* *
* *
* *
* xx *
* xx xx *
* xx *
**********************************************************************************
GENERATION: 104