Andrey Stolyarov

Андрей Викторович Столяров: сайт автора

Архив гостевой книги с 11.06.2024 по 24.11.2024

Эта страница гостевой книги является архивной. Новые комментарии просьба оставлять в действующей гостевой книге. Ответы на старые комментарии здесь по-прежнему возможны.

Учтите, что комментарии на этом сайте премодерируются.


From Ze'ev profile Sat Nov 23 15:05:36 2024 UTC pencil

Какой лучше использовать XMPP-клиент

Андрей Викторович, доброго времени суток вам.

Вы неоднократно упоминали, что в качестве почтового клиента вы используете mutt. Могу ли я спросить о том какой вы используете XMPP-клиент, если вы продолжаете использовать сей протокол?

Я сам использую Thunderbird, но он довольно глючный и вообще это поделье Mozilla с прикрученым во внутрь браузером и opt-in/opt-out телеметрией мне, мягко говоря, не очень нравится. А вот Pidgin мне вообще не понравился.

parent From Andrey V. Stolyarov profile Sat Nov 23 18:15:25 2024 UTC pencil

userpic

Re: Какой лучше использовать XMPP-клиент

Как ни странно, использую pidgin. Он мне тоже не нравится, но остальные, которые я пробовал, показались ещё кривее. Впрочем, последний раз я что-то отличное от pidgin пробовал лет пятнадцать назад, и даже не помню, чтО это было.

parent From Ze'ev profile Sat Nov 23 18:44:20 2024 UTC pencil

Re: Re: Какой лучше использовать XMPP-клиент

Спасибо за ответ!

Буду продолжать поиски. Всё же мне что-то работающие в консоли, как mutt ближе.

parent From Ze'ev profile Sat Nov 23 19:52:06 2024 UTC pencil

parent From xmpp (unverified) Sun Nov 24 04:50:56 2024 UTC pencil

Re: Re: Re: Re: Re: Какой лучше использовать XMPP-клиент

mcabber: cli + переписка + не отрубает от сервера при плохом соединении, но не передать файлы в HTTP Upload (jingle only и это если другой клиент такое поддержит и будет иметь соответствующий плагин) вылетает в segmentation fault на void linux, openbsd и бог знает на чем еще. Пересборка из исходников по не помогает, какие-то там проблемы у них внутри со списком и malloc.

Стабильно работал на debian (devuan).

Написан на Си

profanity: cli + переписка + передача файлов, но при немного плохом соединении с интернетем отрубает от сервера СРАЗУ. Не очень удачная навигация по вкладкам с переписками, но жить можно. В отличие от mcabber хранит логи в каком-то непонятном .local/share/profanity, где просто куча всего.

Написан на Си

From Artem (unverified) Mon Nov 18 21:12:15 2024 UTC pencil

Часовые пояса

У комментов тут есть время отправки, но оно не такое, как у клиента, и часовой пояс сервера тоже не отображается. Как-то неудобно немножко.

parent From Andrey V. Stolyarov profile Mon Nov 18 21:55:13 2024 UTC pencil

userpic

Re: Часовые пояса

Всё просто, это UTC.

О том, чтобы показывать время как у клиента, тут не может быть речи, поскольку здесь все страницы, у которых в локальной части URI нет thalcgi.cgi, отдаются как обычные файлы. Ну, чтобы было понятно, вот мы тут в гостевой книге общаемся, так вот она, эта гостевая книга:

w_croco@milda:~$ ls -l /var/www/w_croco/stinfo/guestbook/archive/9/index.html 
-rw-r--r-- 1 w_croco webadm 1435528 Nov 18 16:45 /var/www/w_croco/stinfo/guestbook/archive/9/index.html

(ls показывает как раз местное время сервера). Кстати, что-то она жирновата уже, пора её в архив и новую завести. Но вот сейчас, когда я этот комментарий отправлю, на сервере указанный файл будет перегенерён, чтобы комментарий стало видно.

А вот показывать какую-то таймзону, отличную от UTC, как ни странно, мешает дебильный интерфейс "стандартных" функций, работающих со временем. Они таймзону берут исключительно из переменных окружения, меня такой способ общения с библиотечной функцией, скажем так, фрустрирует. Видимо, придётся взять какую-то из имеющихся реализаций и поменять ей интерфейс, но пока что находятся задачи поважнее.

parent From Guest (unverified) Tue Nov 19 06:31:47 2024 UTC pencil

Re: Re: Часовые пояса

Ну есть конечно способ в статичном ХТМЛ-файле показать локальное время на основе UTC, но он вам ооооой как не понравится, а я сейчас буду послан куда-то выпить яда но я если что тоже такое очень не поддерживаю, просто как факт решил обозначить.

parent From Anonymous (unverified) Tue Nov 19 23:20:26 2024 UTC pencil

Re: Re: Часовые пояса

А просто написать в заголовке: From Guest (unverified) Tue Nov 19 06:31:47 2024 UTC

Тогда уже каждый переведет в свое локальное время в уме.

parent From Andrey V. Stolyarov profile Wed Nov 20 08:54:47 2024 UTC pencil

userpic

Re: Часовые пояса

Сделал, нехай будет. Хотя по-моему вы публику несколько переоцениваете.

From Anonymous (unverified) Mon Nov 18 11:28:27 2024 UTC pencil

динамическая линковка и плагины

О недопустимости динамических библиотек в обычном софте все ясно, но как насчет плагинов? Например создание электронной музыки без плагинов не представляется возможным, при этом обработка звука в реальном времени имеет достаточно суровые требования, так что использование скриптовых DSL окажется слишком медленным, и я не вижу других способов реализации таких плагинов, которые в основном занимаются математическими вычислениями, кроме как через dll-ки.

Может быть, если наложить жесткие требования на плагины, скажем чтобы они сами ни с чем больше не линковались (даже с libc только статически) и не создавали dependency hell, тогда применение динамических библиотек в этом случае будет допустимо?

parent From Andrey V. Stolyarov profile Mon Nov 18 11:47:23 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

> создание электронной музыки без плагинов не представляется возможным

Вы вообще сами понимаете, что говорите? Как вообще может предметная область конечного пользователя (создание музыки) зависеть от особенности реализации, каковой особенности вообще-то не видно пользователю и каковая не имеет никакого отношения к предметной области (где музыка и где динамический линкер, пардон).

Самое простое решение, которое приходит в голову — ну, тупо пересобирать софтину при добавлении очередного куска кода, который сейчас добавляется как "плагин" (есличо: обсуждать варианты с закрытыми исходниками я вообще в принципе отказываюсь, за распространение софта без предварительной публикации исходников должна быть уголовка). Но вообще-то возможны и другие решения. Например, этот ваш плагин в откомпилированном виде может представлять собой не либу, а программу целиком, реализующую определённые соглашения о связях с основной программой, да хоть бы даже через стандартные потоки ввода-вывода: основная программа запускает плагин на исполнение с перехваченными стандартными потоками и через них с плагином общается, сделай мне это, сделай мне то; хотя, как мы понимаем, вариантов межпроцессного взаимодействия в действительности существует масса, и можно сделать всё как-нибудь более прилично.

Применение динамической линковки для плагинов — это в целом злобный хак, механизм динамической линковки изначально для этого не предназначался. И нет, динамическая линковка не может внезапно стать допустимой. Хотя бы даже по той причине, что использование этих ваших плагинов неизбежно требует всю программу сделать динамически линкуемой и зависящей от толпы динамических библиотек, поскольку плагинам, оформленным в виде либ, тоже нужен доступ к тем библиотечным функциям, которые используются в основной программе.

parent From Anonymous (unverified) Mon Nov 18 19:02:38 2024 UTC pencil

Re: Re: динамическая линковка и плагины

Я не автор изначального коммента.

А что мешает передать в функцию указатель на структуру, с указателями на функции API, которые должен мочь использовать плагин?

parent From Andrey V. Stolyarov profile Mon Nov 18 20:27:23 2024 UTC pencil

userpic

Re: Re: Re: динамическая линковка и плагины

Ага, функции из условных stdio.h, string.h, stdlib.h или что там вместо них — тоже все по указателям передадим?

parent From другой аноним (unverified) Mon Nov 18 20:35:56 2024 UTC pencil

Re: Re: Re: Re: динамическая линковка и плагины

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

parent From Andrey V. Stolyarov profile Mon Nov 18 20:45:27 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

В библиотеках есть глобальные переменные, так что иметь в памяти одного процесса несколько экземпляров той же libc — один для главной программы и по одному для каждого "плагина" — очевидным образом не получится.

Я, кстати, не уверен, что публичные символы модулей, составляющих .so, можно скрыть от главной программы и других .so'шек. Если нельзя, там ещё и тупо конфликты имён будут.

parent From Anonymous (unverified) Mon Nov 18 19:53:54 2024 UTC pencil

Re: Re: динамическая линковка и плагины

А есть ли дистрибутив Linux без динамичесой линковки в основном дереве?

parent From Andrey V. Stolyarov profile Mon Nov 18 20:16:03 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

Попытки были (StaLi, например), но, по-моему, загнулись. Здесь, на мой взгляд, надо скорее сделать какой-нибудь репозиторий, в котором все пакеты будут самодостаточны (без зависимостей), и собирать его под разные архитектуры и разные пакетные менеджеры. Типа, внёс себе в apt.list или куда там ещё — и можешь ставить из него пакеты, пофиг какой дистр, пофиг какие библиотеки.

Вырастет ли из этого в итоге полноценный дистр — зависит от множества факторов.

parent From Anonymous (unverified) Tue Nov 19 20:21:23 2024 UTC pencil

Re: Re: динамическая линковка и плагины

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

parent From Andrey V. Stolyarov profile Tue Nov 19 20:23:50 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

> запиханы все динамические библиотеки

В этой ветке обсуждается не то, как преодолеть dependency hell, порождённый динамической линковкой, а то, как устранить саму динамическую линковку как таковую — просто потому что она не имеет права на существование. Не умеете читать — не умейте тогда и писать.

parent From Anonymous (unverified) Wed Nov 20 02:22:04 2024 UTC pencil

Re: Re: динамическая линковка и плагины

А вообще, как по-вашему стоит поступать с ресурсами? Например спрайты и звуки в игре, конфиги подсветки синтаксиса разных языков в текстовом редакторе и так далее? Должны они быть в файловой системе или их лучше пихать в исполнимый файл (способы есть)?

parent From Andrey V. Stolyarov profile Wed Nov 20 09:00:37 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

Разумеется, всё должно быть в исполняемом файле. Отдельными файлами может быть только то, что предлагается менять самому пользователю. Поэтому вот эти ваши "конфиги подсветки" ещё могут быть отдельными файлами (хотя лучше всё-таки нет, т.е. загрузку из внешних файлов поддерживать, но всё, что идёт вместе с редактором, утрамбовать внутрь бинарника), а вот картинки и звуки от игрушки быть отдельными файлами просто не имеют права вообще от слова совсем.

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

Насчёт "способы есть" мне даже интересно, а что, есть такие люди, которые в этом сомневаются? Ну то есть бывают такие "программисты", для которых проблема, скажем, взять бинарный файл произвольной природы и сконвертировать его в файл на языке Си, содержащий один большой константный массив? А в основной программе этот массив задействовать? Ну и Makefile написать соответствующим образом, чтобы этот "файл на Си с константой" не считался исходником, автоматически генерился и автоматически же удалялся. Очевидно же, не?

parent From Artem (unverified) Wed Nov 20 11:21:39 2024 UTC pencil

Re: Re: динамическая линковка и плагины

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

Как вариант именно для софта с большим количеством тяжёлых медиаресурсов (игр, например) можно пришивать к бинарнику образ файловой системы.

parent From Andrey V. Stolyarov profile Wed Nov 20 12:53:55 2024 UTC pencil

userpic

Re: Re: Re: динамическая линковка и плагины

> это облегчает работу по созданию не очень значительных модификаций (типа изменённых текстур) и их комбинированию даже не в разы, а на несколько порядков

Это проблемы программистов, не пользователей и даже не майнтейнеров, а программистов (ну хорошо, "разрабочиков", чем и кем бы они ни были). Если хотят себе облегчать задачу, пусть предусматривают два варианта сборки — для внутреннего использования с загрузкой всего из файлов и для передачи конечным пользователям в виде одного монолитного бинарника. Тех поганых бабуинов, которые, облегчая жизнь себе, осложняют её пользователям и майнтейнерам, следует отстреливать.

> можно пришивать к бинарнику образ файловой системы.

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

parent From Artem (unverified) Wed Nov 20 14:39:32 2024 UTC pencil

Re: Re: Re: Re: динамическая линковка и плагины

Я обдумывал вариант с двумя версиями, и отбросил его, поскольку хоть задача создания мода и может быть отнесена к такой, для которой нужна квалификация, но задача комбинирования модов выполняется почти всегда конечным пользователем, под каковым я понимаю того, кто будет играть. И поэтому спустя всего пару лет после выхода игры, если она станет популярной, конечные пользователи будут качать исключительно вариант "для разработчиков", потому что только он и даст им возможность самостоятельно, никого не прося, а просто следуя простой инструкции, поставить более одного мода одновременно, заменив, например, модельку не одного, а сразу двух персонажей. Закончится это тем, что мы вернёмся в исходную точку, с той лишь разницей, что игра будет лежать с кишками наружу не у всех пользователей, а почти у всех. Поэтому нет, возможность именно для конечного пользователя разобрать игру, встроить что-то, и собрать обратно, необходим. Ну, возможно ещё, что "зашивание" ресурсов в сочетании с открытым кодом приведёт к созданию модов, которые невозможно будет скомбинировать, не написав в процессе ещё один, но нафиг-нафиг такой мир.

Требования к среде исполнения повышаются так, что не повышаются совсем, а то и снижаются, ведь разумеется, использовать полноценную ФС для такой простой задачи никто не будет, никто из рода Homo, я имею в виду. Например, в игре Doom, которую если и не запустили ещё на градуснике, то лишь потому, что он ртутный, для хранения ресурсов используется именно файл с примитивнейшей ФС. Вот разве что приклеивать его к исполняемому файлу они не стали.

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

parent From Andrey V. Stolyarov profile Wed Nov 20 15:13:58 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

> задача комбинирования модов выполняется почти всегда конечным пользователем

Ага, теперь отматываем назад и смотрим мой собственный текст:

Отдельными файлами может быть только то, что предлагается менять самому пользователю

Если намерения именно таковы — ну да, пусть будут отдельные файлы. Поскольку я на игрушки более-менее забил лет двадцать назад, мне сложно оценить, насколько тут всё логично или, напротив, притянуто за уши.

> возможно ли сделать для ELF так, чтобы гигантский бинарник не загружался в память целиком

Он и не "загружается", там mmap. В смысле, если я только правильно понимаю, что к чему, секции из бинарника отображаются в адресное пространство процесса, но это не значит, что они тут же будут физически загружены в RAM.

Если адреса 32-битные, нас это не спасёт.

parent From Artem (unverified) Wed Nov 20 16:38:06 2024 UTC pencil

Re: Re: динамическая линковка и плагины

Я имел в виду несколько другое: чтобы часть файла, хранящая ресурсы, вообще не отображалась в память, и, чтобы получить доступ к ресурсам, нужно было бы открывать этот файл именно как файл, или типа того.

parent From Andrey V. Stolyarov profile Wed Nov 20 17:14:47 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

> чтобы часть файла, хранящая ресурсы, вообще не отображалась в память,

Ну, это точно можно (отладочные символы, например, в память не отображаются), вопрос в том, насколько такое нужно. В некоторых случаях может оказаться проблемой просто понять, где лежит тот бинарник, из которого нас запустили.

parent From ELF (unverified) Thu Nov 21 17:22:45 2024 UTC pencil

Re: Re: Re: динамическая линковка и плагины

PT_LOAD (1)
    Indicates that this program header describes a segment to be loaded from the file. 

А если этого типа у сегмента нет, то его можно и не проецировать.

parent From ABTOKOD (unverified) Fri Nov 22 12:01:14 2024 UTC pencil

Re: динамическая линковка и плагины

Всё, что вне сегментов ELF, не может отображаться. Так что можно просто приклеиться в конец, а "каталог" ресурсов разместить в хвосте.

Но нужно думать, какие ресурсы платформозависимые, а какие нет. И стоит ли лепить к каждому загрузочному модулю платформонезависимую часть.

parent From Anonimys (unverified) Wed Nov 20 16:43:16 2024 UTC pencil

Re: Re: Re: динамическая линковка и плагины

>это облегчает работу

Все файлы можно представить в двоичном виде, типо xxd -i file. Тут -i означает include, чтобы сразу в С вставить. И в стандартной библиотеке есть функция fmemopen которая открывает статичный массив как файл. Таким образом, для того чтобы "вшить" ресурсы игры, достаточно просто их добавить при компиляции. Если игра не на С, то можно отдельно их в объектный файл откомпилит

parent From Andrey V. Stolyarov profile Wed Nov 20 17:12:27 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

> xxd -i file

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

> fmemopen

Это "инновация" от glibc, т.е. переносимость сразу идёт лесом. Да и вообще, если такое потребовалось, то что-то мы не то делаем.

parent From Василий Ильич (unverified) Wed Nov 20 14:38:08 2024 UTC pencil

Re: Re: динамическая линковка и плагины

> Разумеется, всё должно быть в исполняемом файле.

Честно признаю, что у меня даже мысли не было что можно так делать. Дошло до того, чтобы на Pascal'е делать игрушки, я думал сделать программку, в которой я буду делать цветные ASCII "картинки", которые где-то будут храниться отдельно (этот вопрос я хотел отдельно изучить, в каких директориях по-хорошему это надо хранить в *nix системах). От этого преступления мир спасли только мои лень и дефицит свободного времени.

Но если "отойти от стада" и, вспоминая, ряд программ, которые действительно работают на одном бинарнике, то это кайф.

parent From Anony (unverified) Wed Nov 20 12:48:20 2024 UTC pencil

Re: Re: Re: динамическая линковка и плагины

Откройте исходники талассы и посмотрите как организована работа с изображениями в директории ./lib/captcha.

parent From Andrey V. Stolyarov profile Wed Nov 20 12:55:02 2024 UTC pencil

userpic

Re: динамическая линковка и плагины

Гыгыгыгыгы, кто-то про это вспомнил раньше меня :-D

From Anonymous (unverified) Sat Nov 16 12:22:01 2024 UTC pencil

Как придумывать задачи?

Здравствуйте, Андрей Викторович, не подскажете как придумывать себе задачи при изучении программирования? Возможно в книге где-то был на это ответ, и я просто пролопатил его или забыл. Меня очень, смущает, что я не могу придумать себе интересную задачу(да и в целом хоть какую-то), возможно, из-за не хватки знаний, которые у меня пока что есть(перешёл к изучению паскаля, только недавно дошёл до подпрограмм). Просто совсем не хочется высасывать из пальца какие-то сомнительные задачи сомнительного качества, которые к тому же на раз два решаются потому, что чего-то стоящего придумать не получается. До этого изучал С++ отдельно, ничего не зная(уже понял, что крайне сомнительная затея была, но всё же с массивами повеселее было).

Вот такую вот простыню я вам расписал.

Предпочту оставаться анонимным в связи с нелепостью вопроса :)

parent From Andrey V. Stolyarov profile Sat Nov 16 18:07:07 2024 UTC pencil

userpic

Re: Как придумывать задачи?

У меня встречный вопрос: является ли командная строка Unix для вас, во-первых, основным инструментом работы с компьютером, и, во-вторых, единственным средством работы с файлами, т.е. верно ли утверждение, что такие вещи, как копирование, переименование, удаление файлов и прочее в таком духе вы делаете всегда исключительно командами командной строки? Подчёркиваю, речь идёт обо всех повседневных делах, которые вы делаете с помощью компьютера, т.е., например, даже если вы, ктулху упаси, играете в какую-нибудь браузерную онлайн-игрушку, которая иначе как в долбаном хроме не запускается, то лучше, конечно, в неё перестать играть, но если перестать никак, то во всяком случае для доступа к ней должна использоваться команда командной строки:

    chrome https://my-fucking-game.example.com

— и вообще должен существовать только один способ запуска браузера — в терминале набрать его название.

Если всё так, идеи скоро появятся. А если нет, то мне вам помочь нечем, моя методика без этого не работает, об этом довольно подробно рассказано в предисловиях к книжке.

Кстати, массивы в Паскале есть, без них вообще было бы странно.

parent From Parthen (unverified) Sat Nov 16 18:56:06 2024 UTC pencil

Re: Re: Как придумывать задачи?

>и вообще должен существовать только один способ запуска браузера — в терминале набрать его название.

А хоткей?

parent From Andrey V. Stolyarov profile Sat Nov 16 20:02:33 2024 UTC pencil

userpic

Re: Как придумывать задачи?

А нахрена? Ctrl-R я бы не сказал, что сильно медленнее, зато позволяет искать не только имя браузера, но и имена сайтов.

parent From Anonymous (unverified) Sat Nov 16 23:21:55 2024 UTC pencil

Re: Re: Как придумывать задачи?

Да, для повседневных задач стараюсь использовать unix систему, но к сожалению единственный аспект, который не получится воплотить — это игры, для которых я иногда запускаю windows. Работа с файлами, браузер и т.п. происходит на unix системе. Забыл отметить, что единственная задача, которую я делал(хотя и очень банальную) — это запуск необходимых мне программ через командный файл шела. То есть запускаю систему, этот файл открываю, и мне запускаются программы(пока что две: браузер и atril) Также, не назвал, по моему мнению, важный аспект: я почему-то ставлю задачи, которые превышают мои силы в сотни раз(конечно не выполняю их, у меня знаний просто нет; я пока что даже главу про подпрограммы на паскале не прочитал); то есть на момент чтения первой главы мне уже хотелось сделать приложение, на моменте чтения главы 2.1 меня вообще занесло каким-то образом к нейросетям, а также весь путь обучения хочется игры делать, ну и, конечно, хочется сделать свою почту и условно локальную сеть.

parent From Andrey V. Stolyarov profile Sun Nov 17 00:44:05 2024 UTC pencil

userpic

Re: Как придумывать задачи?

На вопрос, который я вам задал, вы не ответили. Дело ваше, но мне не вполне понятно, чего вы тогда от меня хотите.

parent From How? profile Sun Nov 17 01:03:24 2024 UTC pencil

Re: Re: Как придумывать задачи?

Извините, не правильно прочитал. Да все задачи выполняю через терминал

parent From Andrey V. Stolyarov profile Sun Nov 17 09:07:01 2024 UTC pencil

userpic

Re: Как придумывать задачи?

А, ну тогда всё просто. Паскалевскую часть книжки вы, насколько я понимаю, только начали, глава 2.3 — это же самое начало. Написать что-то рабочее у вас пока недостаточно знаний. Если вам нужны мелкие задачи на закрепление прочитанного, ну вот есть задачник, а в целом штурмуйте часть про Паскаль дальше. Когда в вашем распоряжении будут массивы, записи, символы и строки, аргументы командной строки, файлы, управление экраном терминала — будет на чём развернуться, а после освоения указателей возможностей станет ещё больше.

parent From How? profile Sun Nov 17 11:26:39 2024 UTC pencil

Re: Re: Как придумывать задачи?

Спасибо большое! Я уже начал думать, что с моим мышлением или со мной что-то не так

parent From Anonymous (unverified) Sat Nov 16 19:34:07 2024 UTC pencil

Re: Как придумывать задачи?

У меня регулярно возникают задачи как-то сами собой, то я пытаюсь что-нибудь на projecteuler решить, то подобрать магический квадрат, то посчитать уравнение времени, то есть поправку между солнечными и обычными часами. Иногда решаю программированием обычные головоломки, которые в общем-то полагается решать вручную из каких-нибудь блогов, видео (MindYourDecision на ютубе например), статей. Или у меня возникают идеи простеньких игр которые почему-то никто толком не сделал. Например есть советская головоломка с цветными шариками в цилиндре - вот компьютерную версию найти весьма сложно.

Почему бы не решать с помощью программирования даже простенькие задачи, которые решаются на раз-два?

parent From Andrey V. Stolyarov profile Sat Nov 16 20:25:37 2024 UTC pencil

userpic

Re: Как придумывать задачи?

Задачи на projecteuler не имеют никакого отношения к начальному обучению программированию. Это скорее шаг в сторону и (на этом этапе) пустая трата времени и сил.

С играми есть одна засада: графический режим нам (опять же на этом этапе) недоступен и не может быть доступен, оконные программы и библиотеки виджетов рассматриваются только в третьем томе, и изложенное там опирается на объектно-ориентированное программирование, к которому приступать раньше чем через два года после начала (и раньше получения опыта создания программ на несколько тысяч строк каждая) — ну, в общем, только мозги портить, причём зачастую необратимо.

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

parent From Alexander (unverified) Sat Nov 16 21:06:39 2024 UTC pencil

Re: Re: Как придумывать задачи?

Андрей Викторович, а книга «Этюды для программистов» Чарльза Уэзерелла может служить подспорьем для вдохновения или примеры из этой книги будут сложными для начинающих? Как-то видел тут в гостевой книге, что вы упоминали эту книгу.

parent From Andrey V. Stolyarov profile Sat Nov 16 22:12:08 2024 UTC pencil

userpic

Re: Как придумывать задачи?

Книжка неплохая, я сам оттуда в своё время один этюд стибрил. Для совсем начинающих она всё-таки вряд ли подойдёт, а для "уже не совсем" начинающих — скажем так, можно предлагаемые там этюды просмотреть, и если что-то из этого реализовать захочется — то реализовать. Если ощутимого желания не возникнет — лучше не вымучивать, всё равно толку не будет.

Если интересуетесь этюдами из книжек, можете ещё на задачник посмотреть, там тоже есть этюды такого рода.

parent From Anonymous (unverified) Sun Nov 17 10:14:08 2024 UTC pencil

Re: Re: Как придумывать задачи?

> Задачи на projecteuler не имеют никакого отношения к начальному обучению программированию.

Ну так я их решаю и не для обучения программированию, а просто потому что хочется. А когда не хочется - не решаю.

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

Игры можно писать только на stdin/stdout в наборе bsdgames есть несколько игр, например adventure. То есть просто после каждой команды игрока выплёвывать всё игровое поле на stdout, так может быть даже проще. Если игра пошаговая, то почему бы нет?

parent From Andrey V. Stolyarov profile Sun Nov 17 10:16:31 2024 UTC pencil

userpic

Re: Re: Re: Как придумывать задачи?

> Мне задачи сами собой прилетают и их больше чем у меня есть времени/желания решать.

Ну так исходный вопрос был задан по конкретной ситуации, у вас ситуация совершенно иная.

From Максим Клочков profile Thu Nov 14 22:06:31 2024 UTC pencil

О компиляторах для начинающих

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

Я в затруднении. Книга Ахо/Сети/Ульман -- классика, конечно, но для введения в предмет IMHO некий оверкилл.

Что прогрессивная общественность посоветует?

parent From Andrey V. Stolyarov profile Thu Nov 14 22:10:39 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

Лично я не посоветую ничего другого. По-моему, нету.

parent From Stan (unverified) Sun Nov 17 12:53:23 2024 UTC pencil

Re: Re: О компиляторах для начинающих

Какая из двух версий книги лучше?

parent From Andrey V. Stolyarov profile Sun Nov 17 15:32:29 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

Так их вроде уже три. Но второе и третье издание я не видел, так что ничего сказать не могу. У первого имеется несомненное достоинство — оно переведено на русский и если хорошо поискать, то найдётся в интернете.

parent From Artem (unverified) Sun Nov 17 15:58:02 2024 UTC pencil

Re: Re: О компиляторах для начинающих

Второе тоже переведено, и тоже находится (мне удалось)

parent From Ilya profile Sun Nov 17 17:50:13 2024 UTC pencil

Re: Re: Re: О компиляторах для начинающих

во втором добавлены 4 новые главы

Глава 7. Среды времени выполнения
Глава 10. Параллелизм на уровне команд
Глава 11. Оптимизация параллелизма и локальности
Глава 12. Межпроцедурный анализ

в PDF на русском языке есть здесь

https://rutracker.org/forum/viewtopic.php?t=5898820

в третье издание 2023 года, добавлена глава про неопределенное поведение, дающее возможности для оптимизации, и глава про то как писать формальные спецификации к языку. Правда оно в EPUB.

https://rutracker.org/forum/viewtopic.php?t=6554237

parent From Andrey V. Stolyarov profile Sun Nov 17 18:32:39 2024 UTC pencil

userpic

Не читал, но осуждаю

Судя по названиям глав, книга превратилась в ньюфажное убожество.

parent From Ilya profile Sun Nov 17 20:33:17 2024 UTC pencil

Re: Не читал, но осуждаю

со Страуструпом так же было, история повторяется

parent From Stan (unverified) Mon Nov 18 17:31:23 2024 UTC pencil

Re: Не читал, но осуждаю

Поэтому и интересовался, какая версия лучше, посмотрев на оглавление второго издания. :) Электронная версия второго издания вообще повсюду валяется. Но я куплю бумажную версию первого, пожалуй. Спасибо.

parent From Василий Ильич (unverified) Fri Nov 15 06:36:32 2024 UTC pencil

Re: О компиляторах для начинающих

Я осмелюсь предложить глянуть на LOR'е цикл статей "STM32 снизу". Там примеры с дизассемблированием, скриптами для ld (для меня это было открытие, что для него пишут скрипты). Так ещё всё и под Linux'ом.

Сам честно только пролистал, пока с AVR балуюсь, т.к. побаиваюсь пока что 32-битную архитектуру на МК. Но даже на AVR, ловятся интересные моменты. Например, если писать на ассемблере, то данные из .data не попадают сразу в ОЗУ, а хранятся в памяти программы и надо ручками это грузить в ОЗУ. На форумах мне писали, чтобы облегчить эту работу в основном два варианта: или писать скрипт для ld или писать на Си, потому что он при компиляции там уже всё сделает "как надо".

parent From Andrey V. Stolyarov profile Fri Nov 15 09:24:52 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

> писать на Си, потому что он при компиляции там уже всё сделает "как надо".

Врут они всё. Там гарвардская архитектура, и в программной памяти минимальное адресуемое — 16-битное слово, при этом в оперативке всё традиционно восьмибитно. И адресные пространства, естественно, свои там и там. В таких условиях никакой компилятор от вас происходящее не скроет, ну то есть можно, конечно, строковые литералы и прочие константные массивы сразу при старте копировать в оперативку, но оперативка-то не резиновая. А если их оставлять в программной памяти, то доступ к ним приходится производить через "хитрые" указатели и хитрым же образом, поскольку приходится объяснять, адрес из какого пространства вы имеете в виду.

parent From Василий Ильич (unverified) Fri Nov 15 14:14:17 2024 UTC pencil

Re: Re: О компиляторах для начинающих

> при этом в оперативке всё традиционно восьмибитно

Этого я как-то не заметил. У меня atmega328p, по документации там адресация Internal SRAM начинается с 0x0100 до 0x08FF. Т.е. чтобы обратиться к ячейке оперативной памяти мне нужно использовать XYZ-регистры, которые используются для 16-битной адресации. Разница между SRAM и PM по обращению к памяти, в том, что к PM я могу обращаться только с помощью Z-регистра, когда к SRAM через все XYZ-регистры. Ну и загрузка из PM 3 такта, а из SRAM 2 такта.

Хотя, к регистрам, которые занимают как раз первые 0x00FF байтов можно действительно обращаться восьмибитно, но там только 32 регистра общего назначения. Много там не похранишь. :)

> Там гарвардская архитектура

Что там гарвардская архитектура я читал, а что именно это значит, обратил это только сейчас. Что PM и SRAM -- разные адресные пространства, я как-то пропустил. А слона в комнате не увидел. Спасибо!

> к ним приходится производить через "хитрые" указатели и хитрым же образом

Осмелюсь предположить, что это как раз из-за того, что только через Z-регистр можно обратиться к PM.

parent From Andrey V. Stolyarov profile Fri Nov 15 14:19:39 2024 UTC pencil

userpic

Re: Re: Re: О компиляторах для начинающих

Я имел в виду, что там байты (a.k.a. минимально адресуемые) таки восьмибитные, а в программной памяти 16-битные. Указатели-то там восьмибитными никак быть не могут, даже на несчастной ATMega8 таки 1024 байта оперативка.

parent From rkvg-es (unverified) Fri Nov 15 17:43:06 2024 UTC pencil

Re: Re: Re: Re: О компиляторах для начинающих

Запутался: под программной памятью Вы здесь подразумеваете ROM или RAM?

parent From Andrey V. Stolyarov profile Fri Nov 15 18:25:25 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

Там, насколько я понимаю, ни то ни другое. Программная память прошивается программатором (т.е. вроде это должен быть ROM), но её при большом желании можно изменять программно, хоть и через гадину (и какой это после этого ROM). Но уж точно это не RAM.

parent From Artem (unverified) Fri Nov 15 19:48:33 2024 UTC pencil

Re: Re: О компиляторах для начинающих

Тогда и чип с прошивкой материнки и прочих железяк это не ROM. Большинство ROM сегодня это EEPROM.

parent From Andrey V. Stolyarov profile Fri Nov 15 21:19:49 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

А вот ни фига, EEPROM там тоже есть, в виде ещё одного (третьего) адресного пространства. И он программной памятью не является.

ROM я всё-таки привык воспринимать как нечто живущее в том же адресном пространстве, что и RAM.

parent From Василий Ильич (unverified) Fri Nov 15 20:46:01 2024 UTC pencil

Re: Re: Re: Re: Re: О компиляторах для начинающих

> Вы здесь подразумеваете ROM

Тут, наверное мой косяк, не пояснил. Есть RAM, которая живёт пока устройство включено. А PM я обозначил Program Memory, которая является энергонезависимой памятью, в которую как раз и зашивается программа. И её действительно можно перезаписывать в ходе работы, но везде где я читал/слушал, пишут/говорят, что делать так ни в коем случае не надо.

Ещё отдельно стоит EEPROM. С ним я ещё не работал. Я понимаю, что он используется как "дисковое пространство". (Надо бы глянуть в первый том, а то уже плохо помню терминологию.)

parent From Василий Ильич (unverified) Fri Nov 15 21:52:24 2024 UTC pencil

Re: Re: Re: Re: Re: Re: О компиляторах для начинающих

> (Надо бы глянуть в первый том, а то уже плохо помню терминологию.)

Забавное когнитивное искажение. Почему-то в голове жёстко отпечаталось, что "памятью" пространство на дисках называть нельзя и надо это дело называть "дисковым пространством" (или чем-то подобным), а память это как раз RAM. Сейчас перечитал, ничего такого не нашёл.

Вот как такое происходит? Это лечится?

parent From Andrey V. Stolyarov profile Sat Nov 16 09:41:07 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

> "памятью" пространство на дисках называть нельзя

Разумеется, нельзя. См. параграф 1.1.2, примерно через две страницы после начала параграфа.

Но на микроконтроллерах приходится менять терминологию, это другой мир. На тех же AVR для работы с EEPROM никакой драйвер не нужен, да и программную память можно гонять в хвост и в гриву командами процессора, но, тем не менее, EEPROM, PM и RAM (то, что обычно называют памятью) тут вещи совершенно разные.

parent From Anonymous (unverified) Fri Nov 15 06:40:45 2024 UTC pencil

Re: О компиляторах для начинающих

А если попробовать это всё разработать самостоятельно и потом уже читать книгу и сравнить свои решения с предложенными?

parent From Andrey V. Stolyarov profile Fri Nov 15 09:28:07 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

Ранние версии Фортрана были исключительно уродливы, поскольку теории синтаксического разбора у их создателей на вооружении не было.

Скорее всего, результатом такого эксперимента станет "изобретение" неких подходов, совершенно естественно кривых, но от которых будет тяжело отказаться, когда допрёт, как оно должно быть.

Вообще, наверное, по всем основным пунктам "вкатывания" в это дело можно найти что-нибудь в Интернете. Начать с порождающих грамматик имени Хомского и их классификации по тому же Хомскому. Потом взять конечные автоматы, освоить их прямую связь с грамматиками типа 3 (регулярными) и примерно прикинуть, как на этом сделать лексический анализатор. Следующим пунктом — рекурсивный спуск. Собственно, этого всего обычно достаточно, если язык изначально проектировать под анализ рекурсивным спуском.

parent From Anonymous (unverified) Sat Nov 16 07:42:47 2024 UTC pencil

Re: Re: О компиляторах для начинающих

https://habr.com/ru/articles/177701/

Судя по этой статейке (надеюсь она и без джаваскрипта откроется, там по сути только текст) грамматики типа 3 позволяют в общем-то задать только начальный элемент, конечный и некоторое количество промежуточных.

https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82

Судя по этой статье, возможно имеется ввиду, что алгоритм должен считывать по одному символу и в зависимости от этого менять состояния, вроде того что он в данный момент считывает имя переменной, литерал, операцию и тд и переходы между состояниями зависят от прешествующих состояний, например после имени переменной в правой части присваивания должна быть скобка, символ операции, пробел или терминатор выражения (перевод строки, точка с запятой и тд) и если находится что-то не то, то алгоритм должен переходить в состояние "ошибка такого-то вида" и прекращать считывать символы.

parent From Andrey V. Stolyarov profile Sat Nov 16 09:35:59 2024 UTC pencil

userpic

Re: Re: Re: О компиляторах для начинающих

В действительности всё довольно просто. На грамматиках типа 3 (регулярных) _не_ берётся скобочная структура, в смысле баланс скобок. Т.е. нельзя задать такой язык (множество цепочек), в котором баланс скобок всегда соблюдается. Поэтому грамматики типа 3 годятся только для лексического анализа, уж идентификатор от числового или строкового литерала оно как-нибудь отличит.

На грамматиках типа 2 (контекстно-свободных) скобочная структура берётся, а вот, скажем, "тройные скобки" — такой язык, в цепочках которого сначала N открывающих скобок, потом столько же, т.е. N, например, точек, а потом ещё N закрывающих скобок — вот такое уже не берётся.

На грамматиках типа 1 (контекстно-зависимых и/или неукорачивающих, у них порождающая мощность одинаковая), насколько я понимаю, берутся все языки, для которых задача разбора алгоритмически разрешима.

Ну а на грамматиках типа 0 берутся все рекурсивно-перечислимые языки. Задача разбора для них в общем случае неразрешима.

Для применения в области формальных языков интересны только грамматики типа 3 и 2, причём из тех, которые типа 2, обычно выделяют ограниченные подклассы, разбираемые за линейное время. Простейший из них, если не ошибаюсь, LL(1) — тот, что берётся рекурсивным спуском.

parent From Anonymous (unverified) Sat Nov 16 15:48:52 2024 UTC pencil

Re: Re: О компиляторах для начинающих

А грамматики имеют что-то общее с регулярными выражениями? И то и другое - способы описать подмножество всех возможных строк из символов какого-то алфавита более компактно чем полным перечислением вариантов.

parent From Andrey V. Stolyarov profile Sat Nov 16 18:09:35 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

> А грамматики имеют что-то общее с регулярными выражениями?

Разве что выразительную мощность: грамматики типа 3 позволяют задать то же самое множество языков, что и регулярные выражения.

> И то и другое

Таких "способов" существует овер-дофига.

parent From искусствовед (unverified) Tue Nov 19 09:18:17 2024 UTC pencil

Re: Re: О компиляторах для начинающих

> Ранние версии Фортрана были исключительно уродливы, поскольку теории синтаксического разбора у их создателей на вооружении не было.

А также из-за очень ограниченного алфавита айбиэмовской оргтехники, на которой готовились и распечатывались фортрановские программы.

parent From Andrey V. Stolyarov profile Tue Nov 19 10:52:14 2024 UTC pencil

userpic

Re: О компиляторах для начинающих

Э нет, пардон, латинский алфавит и пробелы там присутствовали, так что никакие ограничения по доступным символам не имеют никакого отношения к тому, что обыкновенный пробел ранними фортранами тупо ингорировался, а ключевые слова и имена переменных компилятор опознавал как последовательности букв, независимо от того, есть между ними (или внутри них) пробелы или нет.

parent From ABTOKOD (unverified) Fri Nov 22 13:48:37 2024 UTC pencil

Re: О первых компиляторах

Пробел это просто отсутствие пробивок. При чтении в зависимости от контекста он мог интерпретировался как 0 или + в числовых колонках, как пробел в алфавитно-цифровой колонке или как отсутствие данных. То, что печатал принтер в ответ на последовательность импульсов, соответствующую отсутствию пробивок в той или иной колонке, зависело от коммутационной панели, установленной на принтере во время печати. На цепях и барабанах со шрифтами специальной позиции для пробела не было.

Первый FORTRAN следовал существующим традициям электромеханической обработки данных:

Positive signs may be indicated either by a blank or a + ; - signs may be punched with an 11-punch or an 8-4 punch (see Appendix A ) . Blanks in numeric fields are regarded as zeroes.

Для повышения читаемости сочетаний вроде READINPUTTAPE среди 9 спецсимволов не было ни разделительного _ до середины 1960-х ( READ_INPUT_TAPE ), ни строчных букв ( ReadInputTape ), которые стали широко доступны ещё позднее. Поэтому разработчики позволили программисту расставлять пустышки для повышения читаемости так, как нравится (GOTO или GO TO), заодно и самим не париться с пробелами.

parent From Andrey V. Stolyarov profile Fri Nov 22 14:36:32 2024 UTC pencil

userpic

Re: Re: О первых компиляторах

> Пробел это просто отсутствие пробивок.

Век живи, век RTFM и всё равно LMD. Я почему-то думал, что пробел всегда считался полноценным символом с отдельным кодом. Ну да, был неправ.

parent From И (unverified) Sat Nov 23 01:39:06 2024 UTC pencil

Re: Re: О компиляторах для начинающих

Одна из первых публикаций о FORTRAN Automatic Coding System за пределами IBM

https://dl.acm.org/doi/pdf/10.1145/1455567.1455599

parent From Anon (unverified) Sat Nov 16 09:13:40 2024 UTC pencil

Re: О компиляторах для начинающих

Свердлов С. З. - Языки программирования и методы трансляции

Appel & Ginsburg - Modern Compiler Implementation in C

parent From imun (unverified) Tue Nov 19 11:12:34 2024 UTC pencil

Re: О компиляторах для начинающих

Пара книг, которые мне лично понравились:

  • Engineering A Compiler (2nd Edition) by Keith D. Cooper, Linda Torczon.
  • Essentials of Compilation: An Incremental Approach in Racket by Jeremy G. Siek.

В последней студенты скорее всего найдут базовые ответы на все указанные выше вопросы и даже смогут попрактиковаться на задачках (там, правда, Racket, не знаю насколько это прогрессивно).

parent From Andrey V. Stolyarov profile Tue Nov 19 18:50:24 2024 UTC pencil

userpic

Racket, гм

Я бы сказал, использование Racket приводит к когнитивным искажениям. Попросту говоря, мир начинает восприниматься не таким, какой он на самом деле есть.

From Parthen profile Sun Nov 10 01:14:10 2024 UTC pencil

userpic

Яндекс жжёт

Сливы красных флагов из Яндекса:

- в резюме много С, работает руками с железом, пишет ПО в рамках робототехники (чаще всего они не хотят переходить писать веб и завалят секции)

- опыт с Qt, Unreal Engine (gamedev), embedded не должен быть основным

- разработка железа - старые стандарты С++ (98 г), например 15 лет опыта и нет ничего про новые стандарты

https://imgur.com/a/JXNwtKl

Геймдев, микроконтроллеры и робототехнику исключили, а то люди программировать умеют, в веб их не запихнуть :)

parent From Максим Клочков profile Sun Nov 10 11:11:41 2024 UTC pencil

Re: Яндекс жжёт

Там по ссылке ещё много интересного :)

Но не будем забывать, что бэкенд-разработка - это такая же разработка, как курица - птица :) Я здесь же ниже в одном из комментариев писал, чем обычно занимаются бэкенд-разработчики. Умные там не нужны, креативные тем более. Нужны аккуратные и терпеливые.

parent From Дима (unverified) Sun Nov 10 12:16:35 2024 UTC pencil

Re: Яндекс жжёт

Я вот почитываю периодически здесь комментарии и вот стриггерился на Unreal Engine. И решил комментарий оставить.

Я считаю что мне повезло и мне удалось поработать в геймдеве где разработка велась в стиле рекомендуемым автором этого сайта. Т.е. код писался на смеси C и С++, очень редко использовались шаблоны. Сторонних движков не использовалось. Возможно взяли меня туда из-за схожести увлечений с тимлидом. Оба ассемблером увлекались, SoftICE'ом баловались для отладки.

Спустя какое-то время это всё развалилось и пришлось столкнуться с современным игростроем. Сразу свалился на голову Unity (будь он трижды неладен). Пришлось общаться с т.н "Unity программистами" и в какой-то момент я поймал себя на том, что где-то я уже это видел. На самом деле весь этот современный игрострой - это веб середины 2000-х. В основном все "Unity программисты" - это бывшие PHP программисты, разработчики сайтов и т.п. Подходы в разработке такие - взять какую нибудь модную библиотечку (чем современнее, тем лучше) приклеить соплями не разбираясь как это работает и добавить себе плюсик к ЧСВ. Периодически надо обновлять движок до последней версии, после чего всё к чертям ломается. При этом начальству докладывают о том что из-за движка всё поломалось - надо чинить, а они вообще ни в чем не уиноваты, это разработчики движка плохие.

Я какое-то время считал, что хуже этого быть ничего не может, но в какой-то момент столкнулся с Unreal Engine. Здесь всё тоже самое только помноженное на масштаб. Точно также тянут в рот всё самое последнее и модное. К ЧСВ добавляют не 1 плюсик, а 10 плюсиков. Есть впечатление, что в СНГ разработка на UE это использование блюпринтов, С++ здесь редко используется, в основном, как я понял, из-за скорости разработки. Блюпринты наверное раз в 5 ускоряют. С++ там тоже очень специфический. Очень не поощрается использование сырых указателей, обычных массивов (а где сейчас это поощряется?). Игра может упасть из-за использования статических переменных, оказывается анриловский сборщик мусора их может попытаться удалить. Отладочный бинарник + библиотеки на этом движке может весить около 10Гб и это скорее всего не предел. С документацией тут тоже всё хреново. Чтобы понять как что либо сделать вас "старшие" товарищи отправят смотреть видео на ютубчике. Т.е. чтобы получить информацию по какой нибудь мелочи вам придётся посмотреть получасовое (в лучшем случае) видео и возможно не один раз.

Общался с программистом, который на западе работает на UE. У них программисты пишут всё на С++, блюпринты используют только дизайнеры. При всех тех минусах плюсов которые я выше указал. У нас в основном используют блюпринты.

Ну и немного в общем по современном IT и современных программистах. Вот довелось мне немного поучаствовать в разработке сервера на С++. Всего строк написано - меньше 2000. У моего начальника размер бинарников на выходе ~300Мб, у меня 175Мб. Для сравнение, раньше мы игру делали на 100000 строк кода и размер бинарника на выходе ~2Мб.

parent From Artem (unverified) Sun Nov 10 14:57:12 2024 UTC pencil

Re: Re: Яндекс жжёт

>> У моего начальника размер бинарников на выходе ~300Мб, у меня 175Мб

O_0 Это как вообще? Что вы туда затянули такое здоровенное? У меня столько при полностью статической компиляции с включённой отладкой не было ни разу... Это же больше долбаного ядра Linux с кучей модулей, где десятки/сотни миллионов строк!

На первом курсе велели нам разбиться на группы и делать некие "проекты" на свободную тему, и одна из таких групп решила сделать что-то вроде игры. Выбрали Unity, и тот чел, что писал тогда в той команде код, недавно поведал, что на самом деле он почти не писал ничего, а по большей части просто нажимал Tab, и среда писала вместо него. Причём ровно то же самое происходит и сейчас, но уже в курсе Python'а: половину программы пишет ChatGPT, другую половину дописывает PyCharm под аккомпанемент Tab'а.

parent From anon (unverified) Sun Nov 10 16:06:00 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

Да что там си шарпы. Они вроде не сильно заморачиваются над размерами. В комментариях помню спрашивали про язык Zig и замену Си. Вот только выдает этот зиг 2mb с "хэллоу ворлда". И это без отладочной информации. Какой там Си, тут даже паскаль тащит (40кб с учетом программы на 400+ строк). Суть даже не в том, что там "что-то можно открутить", а в том, что свежепоставленный Free Pascal обыгрывает свежепоставленный Zig по размерам исполняемого файла. И это с погоней разрабов заменить Си.

parent From Parthen profile Sun Nov 10 15:38:45 2024 UTC pencil

userpic

Re: Re: Яндекс жжёт

Гм, интересно.

То, что Unity предполагает макакокодинг я и так знал, меня так учить пытались. Но я думал, что в Unreal-то ситуация получше.

Подскажете, как тогда лучше к этому подобраться? Через голый OpenGL?

parent From Andrey V. Stolyarov profile Sun Nov 10 18:23:23 2024 UTC pencil

userpic

Re: Re: Re: Яндекс жжёт

> Через голый OpenGL

Гыгыгыгыгы, я как-то привык считать, что "голый" тут только Xlib, а всё остальное — это уже слой на слое лежит и абстракцией погоняет.

parent From Artem (unverified) Sun Nov 10 23:00:02 2024 UTC pencil

Re: Re: Re: Re: Яндекс жжёт

Не, OpenGL/Vulkan не "над" Xlib, а как бы "сбоку", им вообще не нужны иксы или что-то подобное, они работают напрямую с видеокартой, вернее, их спецификации реализуются прямо в драйверах видеокарты.

А если брать не иксы, а вяленого, то он уже поверх OpenGL построен, что сделало его так себе совместимым с Vulkan (сейчас вроде уже как-то прикрутили, потому что иначе пришлось бы выкидывать).

parent From hui (unverified) Sun Nov 10 19:43:25 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

К чему подобраться? Бери уже готовые свободные графические движки и используй.

parent From Дима (unverified) Sun Nov 10 20:03:35 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

В Unreal всё очень плохо. Не ходите туда. Там сделано всё чтобы от вас ускользало всякое понимание происходящего.

parent From Parthen profile Mon Nov 11 14:16:34 2024 UTC pencil

parent From rkvg-es (unverified) Fri Nov 15 17:49:12 2024 UTC pencil

Re: Re: Re: Re: Re: Яндекс жжёт

Любые IDE-based движки туда же. Потому что это псевдо-сокрытие сложности, которое гарантирует чудовищную неэффективность как конечного продукта, так и усилий по его дальнейшему поддержанию.

parent From Artem (unverified) Fri Nov 15 20:52:50 2024 UTC pencil

Re: Яндекс жжёт

Если это игровой движок в смысле Game Engine, то он по определению IDE-based. Там же интегрировано всё - звук, сеть, модельки, спрайты, код, скрипты... А иначе это именно игровым движком никто не назовёт, ведь для создания игры (а не куска её) он будет непригоден. Например, ни PhysX, ни OGRE игровыми движками не являются именно потому, что реализуют только один аспект (физику и 3D), и не тащат с собой интегрированное всё-на-свете.

parent From Parthen (unverified) Fri Nov 15 22:34:05 2024 UTC pencil

Re: Re: Яндекс жжёт

Спасибо всем за ответы.

По всей видимости, возьму raylib. Выглядит наиболее адекватно из всего представленного.

parent From rkvg-es (unverified) Mon Nov 18 05:15:42 2024 UTC pencil

Re: Re: Яндекс жжёт

> Если это игровой движок в смысле Game Engine, то он по определению IDE-based.

Да Вы что, правда? Почему-то у id Software, которые-то и придумали идею движков как отдельных программных продуктов, никаких IDE к ним не прилагалось.
https://en.wikipedia.org/wiki/Id_Tech

parent From Artem (unverified) Mon Nov 18 19:26:12 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

Редактор уровней, отданный миру уже после того, как этот самый мир расковырял формат уровней и сделал несколько своих редакторов, это всё же не очень похоже на движок как отдельный продукт, изначально созданный для того, чтобы кому-то передать. Скорее на маркетинговый ход. Ну, знаете, точно так же, как движок Warcraft III: отдельно от этой игры он не используется и не выпускается, и, невзирая даже на наличие World Editor в комплекте с самого начала, свою игру на нём не сделать, только карты для исходной.

А вот Unreal Engine, первый из созданных с прицелом на сторонних игроделов, и одновременно первый, включающий всё, что нужно для создания полноценной игры, то есть, игровой движок именно как отдельная, самостоятельная сущность, не прибитая гвоздями к исходной игре и не сливающаяся с ней в одно целое, всегда шёл в комплекте с IDE.

parent From Artem (unverified) Sun Nov 10 23:17:42 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

OpenGL, кагбэ, немножко устарел. Ну как немножко, он уже лет семь как заменён на Vulkan, совместимости меж ними нет, а реализации OpenGL в новом драйвере может и не оказаться. Хотя, скорее всего, OpenGL так и будет работать, уже как слой поверх Vulkan.

Движков много, скорее всего, сможете найти подходящий. И не надо думать, что если те, кого видно, делают вот так, то только вот так и можно делать. Уже одно "обновлять движок до последней версии" из родительского комментария заставило сделать фейспалм: нормальные люди движок игры обновляют разве что при начале работы над новой игрой, потому что при обновлении движка вся уже выполненная работа гарантированно летит в помойку.

parent From Дима (unverified) Tue Nov 12 10:20:13 2024 UTC pencil

Re: Re: Re: Re: Яндекс жжёт

> Движков много, скорее всего, сможете найти подходящий.

Оставлю ссылку на статью 10-ти летней давности. На мой взгляд в ней хорошо описаны плюсы и минусы использования сторонных движков. Один из описываемых минусов - это абсолютная зависимость от движка. Год назад "Unity программисты" на своей шкуре познали что это такое. Особенно обидно было тем кто сильно вложился временем в изучение этого движка.

DIY vs Re-Use: In Search of Balance

parent From rkvg-es (unverified) Thu Nov 14 20:32:35 2024 UTC pencil

Re: Re: Re: Re: Re: Яндекс жжёт

> Год назад "Unity программисты" на своей шкуре познали что это такое. Особенно обидно было тем кто сильно вложился временем в изучение этого движка.

А что там произошло?

parent From Andrey V. Stolyarov profile Thu Nov 14 21:00:44 2024 UTC pencil

userpic

Re: Яндекс жжёт

Полагаю, произошло вот это: https://en.wikipedia.org/wiki/Unity_(game_engine)#Runtime_fee_reception

NB: пять минут назад я этого ещё не знал. Ну это так, к вопросу о том, кого там и зачем на поисковиках забанили :-P

parent From rkvg-es (unverified) Fri Nov 15 17:46:27 2024 UTC pencil

Re: Re: Яндекс жжёт

Так происходит-то регулярно всякое ведь. Вопрос был про то, что имел в виду конкретно этот автор конкретно этого сообщения. :)

parent From Parthen profile Thu Nov 14 22:16:19 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Re: Яндекс жжёт

Разрабы Unity решили взымать плату за каждое скачивание игры, сделанной на их движке. В результате стало возможным, как в том меме, скачать игру пару миллионов раз и обанкротить к чертям геймдевелоперов.

Те, в свою очередь, прикола не оценили и свалили кто куда, вогнав очередной гвоздь в гроб помирающего движка.

Чтобы вы понимали масштаб:

  • Комиссия взымалась в том числе за прошлые установки, до введения этого решения
  • Поскольку посчитать сколько там раз устанавливали игру до введения обновления невозможно, Unity сами прикидывали сколько скачивали и сколько они с вас возьмут
  • Геймдевелоперы настолько офигели, что начали валить на опенсорсные движки, некоторые компании начали выделять разрабам этих движков сто тысячные гранты
  • Даже после этого Unity не отменила это решение, а только перестала взимать плату с маленьких проектов

Это выстрел даже не в ногу, а в голову. И такое ощущение, что спланированный.

parent From Andrey V. Stolyarov profile Thu Nov 14 22:37:38 2024 UTC pencil

userpic

Re: Яндекс жжёт

> И такое ощущение, что спланированный.

Ну, лично я считаю, что одним проприетарщиком меньше — это всегда хорошо; но, оставив это за скобками — а спланированный-то зачем? В смысле, а что, самоубиться нельзя более прямым путём?

parent From Parthen profile Thu Nov 14 23:07:59 2024 UTC pencil

userpic

Re: Re: Яндекс жжёт

Диверсия конкурентов. У Unreal Engine дела только в гору идут, и судя по всему, на корпоративном рынке он может и монополистом стать

parent From Artem (unverified) Fri Nov 15 13:31:09 2024 UTC pencil

Re: Re: Яндекс жжёт

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

Поясню: есть игра Genshin Impact, она на Unity, установок миллионы, прибыли -- многыя миллиарды долларов, популярность не падает. И это не единственная такая игра, просто самая жирная, и почему бы напоследок не подоить её хозяев?

parent From Parthen (unverified) Fri Nov 15 22:33:01 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

>Genshin Impact

Играли, знаем. Но вот конкретно им на это по-барабану, они как китайцы работают на своем форке Unity-CN, который разрабатывает китайский филиал Unity. (Хотя код, по всей видимости, так около одинаковый, Genshin под протоном запускается без проблем)

Но вообще идея интересная, только это анимешное казино надо было доить хитрее, как Apple: разрешить проводить платежи только через свои сервера, а там комиссию, скажем, 30%.

parent From Artem (unverified) Sat Nov 16 11:54:15 2024 UTC pencil

Re: Re: Re: Re: Яндекс жжёт

Да не похоже, что по барабану, их действия (например, открытие новых вакансий) напоминали то ли панику, то ли угрозу, но уж точно не здоровое безразличие.

Почитал новости, в этом сентябре условия опять поменяли, теперь снова просто подписка.

parent From Василий Ильич (unverified) Sat Nov 16 17:38:26 2024 UTC pencil

Гемшин

> Genshin Impact

Одна из главных болей в моей семейной жизни в плане обслуживания ПК. Подруги мою жену подсадили на это гавно, а оно:

  • Мега долго грузится с HDD, чтобы нормально работало, нужен SSD.
  • Занимает уже >100гб в дисковом пространстве, а учитывая, что форточки уже тоже давно плохо работают на HDD, то они вдвоём не могут ужиться на SSD в 128гб.
  • Недавно это гавно ещё потребовало обновить процессор, т.к. нужна поддержка SSE 4.2. (В итоге, свой бывший игровой компьютер один мой товарищ пожертвовал моей жене. Но угадайте, у какой системы отваливается лицензия при смене железа. :-) )

> Genshin под протоном запускается без проблем

А это хорошая новость. Может получится жену на Linux аккуратно пересадить, "офис" всё равно почти сдох из-за отвала лицензии.

Блин, с одной стороны Valve -- корпорация, навязала свою отвратительную DRM'ку, но разработка Proton'а полностью уничтожила потребность в форточках, по крайней мере мою. Смешанные чувства. :-)

parent From Andrey V. Stolyarov profile Sat Nov 16 18:11:15 2024 UTC pencil

userpic

Re: Гемшин

Только водолазы платят за воздух. Только лохи платят за лицензии.

parent From Parthen (unverified) Sat Nov 16 18:48:09 2024 UTC pencil

Re: Гемшин

>Подруги мою жену подсадили

Знакомо. Напишите сюда как начнет им донатить :)

>Занимает уже >100гб

И еще больше займет, как будет по сюжету локации открывать.

>Может получится жену на Linux

Если будете пробовать: скачиваете exe-шник, в Steam добавляете его как сторонную игру. В настройках, раздел Совместимость - "Принудительно использовать Proton".

Запускаете, устанавливаете, закрываете. Потом в директории ~/.steam/steam/steamapps/common/ ищите установленный Genshin, и снова добавляете уже установленную игру в Steam тем же способом.

>Valve -- корпорация

Valve это все же не корпорация, а частная компания. И судя по всему, единственная адекватная на весь мировой геймдев.

parent From Andrey V. Stolyarov profile Sat Nov 16 20:20:11 2024 UTC pencil

userpic

Re: Re: Гемшин

> Valve это все же не корпорация, а частная компания.

Любая частная компания является корпорацией. Обратное в общем случае неверно, поскольку корпорации бывают и государственные, и некоммерческие, и вообще какие угодно.

parent From Artem (unverified) Sat Nov 16 21:14:52 2024 UTC pencil

Re: Re: Гемшин

>> Steam

PortProton -- протон, которому не нужен Steam. Идеально, если самому Steam не нужен (как мне, который только в пролеченные от жадности синглплеерки играет).

parent From Василий Ильич (unverified) Sat Nov 16 22:18:50 2024 UTC pencil

Re: Re: Гемшин

> Только водолазы платят за воздух. Только лохи платят за лицензии.

Запомню. :-)

> Знакомо. Напишите сюда как начнет им донатить :)

Уже почти 3 года. Утверждает, что донат только для "красивых костюмчеков" и на геймплей не влияет, поэтому даже не видит смысла платить. Да и играет, чтобы просто расслабиться.

>> Может получится жену на Linux

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

  • Всякий "офис" у которого, как я понимаю, .doc и .xls являются проприетарными форматами. Который в open source альтернативах не всегда открывается. Я начал писать про другие проблемы из практики пользования и понял, что это будет тут огромная простыня. Её опущу, в общем, претензий дофига. LaTeX лучше, а от Автора жду его программу для работы с табличками. :-)
  • AutoCAD, с которого на open source крайне тяжело перейти, говорю как человек попробовавший все open source CAD'ы представленные в англоязычной википедии (кроме QCAD) и немного сверху.
  • ChemCAD. Какая-то пиратская версия, для работы с которой надо отключаться от NTP, чтобы работало. Кочует с флешки на флешку по университетам и организациям.

В общем, пока "стратегическое отступление".

Из забавного: не смотря на то, что всё и так пиратское у них в офисе стояло, всё равно "пришёл сигнал извне" и "офис" с AutoCAD накрылись. И теперь перелезли на версии 2007 и 2005 годов, соответственно. Ну хех.

parent From Andrey V. Stolyarov profile Sat Nov 16 22:46:54 2024 UTC pencil

userpic

Re: Re: Re: Гемшин

> "пришёл сигнал извне" и "офис" с AutoCAD накрылись

Закрытый код — гарантия наличия закладок.

> перелезли на версии

Some people never learn. Только эвтаназия.

parent From Ilya profile Sun Nov 17 20:22:28 2024 UTC pencil

Re: Гемшин

Я этот ваш Proton в гробу видал, у меня его не то что скомпилить не получилось, а даже скачать! при вызове git clone --recurse-submodules гит просто отваливался, настолько тяжелые там зависимости, а ведь могли просто обычный архив отдавать. Боюсь даже представить сколько времени оно будет компилится. А готовых бинарных пакетов в репозиториях нет, а те что не в репозиториях, гвоздями прибиты к проприетарному Steam.

Так что мне ваш энтузиазм по поводу Valve непонятен, уж лучше я игры буду запускать на винде на изолированной машине, которая ни для чего кроме игр не используется, чем засорять свой вылизанный линукс всяким хламом который еще и половину игр тупо не запустит. Если и проприетарить, то по полной.

parent From Ilya profile Mon Nov 11 16:35:20 2024 UTC pencil

Re: Re: Re: Яндекс жжёт

Голый можно, если хочется иметь понимание того, что происходит под капотом движков и как вообще графика работает (не помешает при этом знание операций над матрицами), хотя даже OpenGL много чего абстрагирует в сравнении с тем же Vulkan, но на Vulkan вы слишком много времени угрохаете - там что бы треугольник вывести на экран нужно примерно 1200 строк кода, он очень низкоуровневый, эдакий ассемблер мира графики.

А вот если цель написать готовую игру, я бы советовал вообще в сторону движков не смотреть, а взять библиотеку: raylib если игра 3D и SDL/SFML если игра 2D.

From Vlada (unverified) Tue Nov 5 15:17:26 2024 UTC pencil

Программисты и микроконтроллеры

Под постом "Типичного Программиста" о вашем проекте есть комментарий, судя по всему, одного из студентов, который слушал ваши лекции:

Ох... Посидели бы вы хоть на одной его лекции, вы бы прониклись...

"Императивный язык со сборкой мусора - это бред собачий"

"Программист может стать программистом микроконтроллеров, но обратное невозможно"

Можете подробнее объяснить второе утверждение про программистов и микроконтроллеры (если студент, конечно, не переврал ваши мысли)? Если на это есть уже ответ, то буду благодарна, если укажете, где именно.

parent From Andrey V. Stolyarov profile Tue Nov 5 19:47:15 2024 UTC pencil

userpic

Re: Программисты и микроконтроллеры

Переврал, разумеется. Я говорил, что, во-первых, любой программист, если это, конечно, программист, может, если захочет, освоить программирование микроконтроллеров, а если не может — то это не программист (всякие питоняшки, например, ну и вообще все, кто не осилил работу с указателями, в том числе адресную арифметику). Но, с другой стороны, те, кто пишут прошивки для микроконтроллеров, в большинстве своём программистами не являются. Почему я это утверждаю? Ну, потому что весь код, написанный электронщиками, какой я видел в своей жизни — а я его видел довольно изрядно — написан так, что хочется развидеть.

UPD: Ваша простыня "аргументов" в пользу сборки мусора раскрыта не будет, и вынужден напомнить, что я вас сюда не звал. Таким, как вы, руки надо отрубать, и уж точно мне подобная публика на сайте не нужна.

parent From Vlada (unverified) Wed Nov 6 18:01:46 2024 UTC pencil

Re: Re: Программисты и микроконтроллеры

Я ничего, кроме первого коммента, не писала.

parent From Andrey V. Stolyarov profile Thu Nov 7 10:43:03 2024 UTC pencil

userpic

Re: Программисты и микроконтроллеры

Там в очереди на премод оказался довольно длинный коммент с рассказом о том, какая на самом деле классная штука сборка мусора. И ник почему-то ваш (Vlada). Уж не знаю, кому понадобилось так "развлекаться", учитывая, что ники тут вообще-то сугубо декоративные.

parent From hmm (unverified) Thu Nov 7 12:16:04 2024 UTC pencil

Re: Re: Программисты и микроконтроллеры

У вас разве в тексте комментария (на сервере) не фиксируется IP? Я думал клоунов обнаружить легко

parent From Andrey V. Stolyarov profile Thu Nov 7 12:20:14 2024 UTC pencil

userpic

Re: Программисты и микроконтроллеры

Фиксируется, конечно, но его не видно через веб-интерфейс, а лезть на сервер и смотреть мне в голову не пришло. К тому же радикально другой ip-адрес в действительности не значит примерно ничего: один и тот же человек может выйти в сеть через домашнюю линию, через мобильный интернет, через публичный wifi в каком-нибудь кафе, из университета, с работы, мало ли ещё откуда, не говоря уже про Tor и всякие VPNы.

parent From Parthen profile Thu Nov 7 16:59:44 2024 UTC pencil

userpic

Re: Re: Программисты и микроконтроллеры

Это если как раз этот комментарий не написан троллем, чтобы всех запутать :)

From Миша (unverified) Mon Nov 4 18:05:18 2024 UTC pencil

Почему веб-макакам платят деньги?

Доброго дня и крепкого здоровья, Андрей Викторович!

Возник такой вопрос, если макакам платят 200к в среднем в россии, то кто за это платит. Какой реальный профит получают пользователи? КТО вообще сказал, что это нужно?

Почему бизнес не оптимизирует макак за ненадобностью?

Я лично ипользую вообще всего в интернете то YouTube, LeetCode, да хабр с вики. Приходится терпеть иногда веб-разработку и их поделия. Да, бывает что-то на озоне заказываю. Но мне откровенно насрать какой дизайн у сайта, какая там светомузыка и дискотека. Мне нужно, чтобы можно было отсортировать по цене, посмотреть отзывы. Всё. Это вполне можно сделать на сервере.

Сайты стиля 2000ых годов меня вполне устраивают. Ваш сайт вполне симпатичный, он выполняет свою работу. Наверняка, еще и не требует много памяти, быстрый и вообще классный и крутой.

Неужели людям так важен дизайн и веб-"красивость"? Когда это закончится?

parent From Andrey V. Stolyarov profile Mon Nov 4 19:23:14 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Честно говоря, меня вообще феномен вебанутых несколько удивляет. По трудозатратам очередное "уЁб-приложение" сделать в разы геморойнее, чем обычную программу с обычным GUI, потом ещё поддерживать ЭТО, непрерывно заставлять хоть как-то работать весь тот долбанутый психозоопарк, которые вебанутые называют стеком — ну в общем это всё один большой нонсенс.

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

parent From Parthen profile Mon Nov 4 20:12:49 2024 UTC pencil

userpic

Re: Re: Почему веб-макакам платят деньги?

>программу с обычным GUI

Только вы пользователя не заставите ее поставить.

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

И я подозреваю, они не одни такие. Если условный там озон закроет сайт и будет просить пользователей скачать программу на компьютер, он просто потеряет трафик.

И тут хрен знает что хуже - весь сегодняший веб в его "великолепии" или мир, в котором для доступа к каждому сервису надо качать с их сайта проприетарную, набитую зондами программульку, которую еще и под Wine/Proton запускать.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:18:42 2024 UTC pencil

userpic

Re: Re: Re: Почему веб-макакам платят деньги?

> Только вы пользователя не заставите ее поставить.

Именно. И придётся, как это и должно быть, довольствоваться выдачей запрошенной информации, а не захватом власти на компьютере пользователя.

На самом деле есть такая область, где сравнение веб-"приложений" с обычными гуёвыми программами таки следует проводить напрямую без учёта пользовательской паранойи: это решения для бизнеса. В смысле, вот есть какая-то контора, заказывающая софт для работы, и подрядчик этот софт зачем-то делает в вебанутом виде. Тут вопрос "поставит или не поставит" вообще не стоит, компьютеры принадлежат конторе, в конторе есть IT-отдел, непосредственных пользователей никто не спрашивает.

> И тут хрен знает что хуже

Я не знаю, что хуже, но могу точно сказать, что было бы лучше: уголовная ответственность (реальные сроки и в отдельных случаях конфискация имущества) за любое преднамеренное создание ситуации, при которой на компьютере пользователя выполняется любой код, которого пользователь на комп сам лично по своей инициативе и своей волей не ставил.

parent From Parthen profile Mon Nov 4 20:24:21 2024 UTC pencil

userpic

Re: Re: Re: Re: Почему веб-макакам платят деньги?

>Уголовная отвественность

Хорошо бы, но движений к этому не видно

parent From Andrey V. Stolyarov profile Mon Nov 4 20:35:21 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Оно само себя куда надо не двинет.

parent From Anonymous (unverified) Mon Nov 4 20:19:00 2024 UTC pencil

Дизайн

Более того, для пользователей этот дизайн часто оказывается не просто ненужен, а еще и вреден. Хочешь просто интернет себе домой, заходишь на сайт провайдера и видишь "купи! интернет! а еще и тв! а еще и мобильную связь! а еще антивирус! а еще подписку на какое-нибудь говно!". И все это огромными кричащими буквами в красочных тонах, и конечно же все свистит и двигается в лучших традициях жабаскрипта. А чтобы найти нормальную pdf-ку, которая содержит полные условия тарифа и всякие подводные камни, надо в этот сайт целый час закапываться.

И я прям уверен, что орава дизайнеров прям сидит и не просто дизайн рисует, а рисует так, чтобы заставить человека купить не то, что ему нужно.

В общем, к сожалению, пока продажи и впаривание правят миром, как бы от этого ни было грустно :((( и все это отражается в том числе и на дизайне.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:34:24 2024 UTC pencil

userpic

Re: Дизайн

Между прочим, в действительности эти "кричалки" клиентов больше отпугивают, чем привлекают. Что нынче рекламой занимаются люди, ни хрена в рекламе не понимающие — это я ещё в окрестностях 2010 года, когда делал диссер по философии, прочитал в книжке какого-то рекламного корифея, сама книжка вышла за несколько лет до того.

parent From anon (unverified) Mon Nov 4 19:34:00 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

Так, чисто к слову.

Из всех людей на планете, некая их часть (неизвестно количество процента, но он точно выше 0ля), когда видит сайт Столярова, говорит: этот сайт говно.

Я спорю: он сделан полностью самим автором. Он умеет всё, что ему нужно уметь, для целей автора. Он очень быстрый.

Мне в ответ: он быстрый, потому что очень простое говно.

parent From Andrey V. Stolyarov profile Mon Nov 4 19:44:59 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Эти долбанутые, кстати, любой сайт, где фон отличается от белого, говном называют на автомате.

Мнение вебанутых бабуинов очень важно для нас, оставайтесь на линии.

P.S. на досуге погуглите "буквенные наращения" и больше вот этакое вот "0ля" не употребляйте, не надо так позориться.

parent From Parthen profile Mon Nov 4 20:02:40 2024 UTC pencil

userpic

Re: Re: Почему веб-макакам платят деньги?

Этот сайт, безусловно, великолепен с точки зрения функционала, но дизайн реально вырвиглазненький.

Например у LOR'а все и функционально, и красиво.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:06:43 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

По мне так на LORе слишком много цвета. Хотя надо отдать ему должное — фон там почти такой же, как здесь.

parent From Anonymous (unverified) Mon Nov 4 20:29:48 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

А мне этот сайт нравится. Есть 3 цвета: фон серый, текст черный, ссылки синие, эти цвета близки друг к другу, чтение не напрягает глаза.

А вот infoviolence.org менее приятно будет, выглядит как-то слишком контрастно, белый фон, а за ним что-то такое кроваво-красное (не знаю, что это). Не в обиду автору, просто личное мнение.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:37:33 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

"Дизайн" infoviolence был слеплен на коленке за полдня, при том что я не дизайнер ни разу, а на тот момент ещё не знал, как выглядит CSS, т.е. это был мой первый опыт общения с CSS'ом. Переделывать не буду :-P

А фон там вот такой:

infoviolence background

Это, если что, помост (напольное покрытие) из стального листа, покрашенный красной краской. Возможно, палуба какого-нибудь судна или что-то вроде этого.

parent From Anon (unverified) Mon Nov 4 21:53:20 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

Мне этот сайт сразу понравился, а вот infoviolence.org в самом начале вызывал отторжение, но постепенно оно ушло и сейчас он мне тоже нравится.

А вообще раз уж тут речь зашла про дизайн, то хотелось бы понять почему все говорят, что IceWM выглядит по умолчанию ужасно? Я вот поставил его 3 года назад, поменял фон на чёрный (там по умолчанию что-то другое было), поменял способ фокусировки окна, поставил трей наверх, больше ничего не менял и прекрасно с ним живу.

parent From Andrey V. Stolyarov profile Tue Nov 5 08:49:44 2024 UTC pencil

userpic

Re: Re: Re: Почему веб-макакам платят деньги?

> почему все говорят, что IceWM выглядит по умолчанию ужасно?

Ну а почему полвека весь мир был уверен, что длинная худощавая (поджарая) девушка — это идеал женской красоты? Ну там куклы барби и вот это вот всё? И только в эпоху интернета владельцы сайтов "для взрослых" внезапно начали замечать, что вообще-то девочки пониже ростом и покруглее пользуются много большей популярностью у посетителей, а потом до кого-то допёрло, что вот этот вот "идеал" длинной поджарой манекенщицы навязали миру модельеры, где каждый первый — гомик, который если уж не может в платье мальчика нарядить, то подберёт девочку, максимально похожую на мальчика.

Видимо, всё-таки работает эффект стада.

parent From Artem (unverified) Tue Nov 5 09:43:03 2024 UTC pencil

Re: Re: Re: Почему веб-макакам платят деньги?

>> почему все говорят, что IceWM выглядит по умолчанию ужасно?

Наверное, потому, что так и есть)) Только что запустил его посмотреть, точно помню, что не менял там ничего (ставил только чтобы сдать одну практику в универе), и вижу, что часы в трее верхней частью своих зелёных циферек заехали на границу между их чёрным фоном и серой панелью. Значки рядом неинформативны и выглядят странным цветастым пятном. В целом размер элементов не бьётся с обычной частотой их использования. И ШГ по умолчанию, опять же. Дефолтный i3 в разы приятнее выглядит, хотя разнообразие цветов у него куда как меньше, да и иконки он не любит (а может, именно поэтому).

IceWM, конечно, умеет быть очень приятным и ненапрягающим. Это вообще, на мой взгляд, главная примета хорошего дизайна -- ни один элемент не видно, пока он не понадобится, а когда понадобился, глаз и рука находят его рефлекторно и мгновенно. Но уж точно не с умолчальной темой. И да, я уверен, что именно у меня та самая тема по умолчанию, поскольку традиции Arch требуют собирать софт в точности таким, как задумал автор, без каких-либо своих патчей.

parent From Andrey V. Stolyarov profile Tue Nov 5 11:25:50 2024 UTC pencil

userpic

Re: Re: Re: Re: Почему веб-макакам платят деньги?

> Наверное, потому, что так и есть))

Вкусовщинка

> главная примета хорошего дизайна

Хороший дизайн — это отсутствие дизайна. Когда дизайн присутствует — он всегда плохой.

parent From Аноним (unverified) Mon Nov 4 22:43:44 2024 UTC pencil

Re: Re: Re: Почему веб-макакам платят деньги?

Нормальный дизайн, для граф. браузера. Но читать с w3m неудобно.

parent From Andrey V. Stolyarov profile Tue Nov 5 09:12:16 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

На w3m, подозреваю, удобнее был бы "плоский" формат комментариев, как на том же infoviolence.org. Тот, что здесь, опирается на "структурные отступы", а w3m все эти отступы благополучно игнорирует, что и понятно — знакоместа по горизонтали кончаются намного быстрее, чем пиксели.

Вообще интересно, возможно ли сделать сайт так, чтобы он был одинаково удобен и на w3m, и в графике.

parent From Artem (unverified) Tue Nov 5 06:21:16 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

А ещё есть люди, и их немало, которые тему Luna из Windows XP находят приятной, удобной и красивой. Ту самую, дефолтную, синенькую, благословлённую всеми платными офтальмологическими клиниками планеты.

parent From Максим Клочков profile Mon Nov 4 20:04:30 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

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

А где завелась мобильная разработка -- там заводится деление на фронт в телефоне и бэк на сервере, c rest api между ними. Сайт "для браузера" начинает играть вспомогательную роль, и, разумеется, отдельного api для сайта никто не пилит, все просто загружают на пользовательский компьютер тот же универсальный фреймворк, что присутствует в составе мобильного приложения.

Ну и всё -- добро пожаловать в обезьяний питомник.

Вывод: пользователям это всё не нужно. А тем, кто хочет залезть пользователям в карман -- очень нужно.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:10:24 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

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

Но в целом да, про то, кому что в действительности нужно — всё верно.

parent From Artem (unverified) Tue Nov 5 06:00:56 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

Хайп по поводу мобильных аппликашек уже, в основном, схлынул. Мобильные браузеры всё перечисленное вами делать уже научились, а пользователи, вот сюрприз! совершенно не горят желанием что-то там устанавливать на свой телефон. Да и что-то не припомню онлайн-сервисов, кроме инстаграмма и тиктока, у которых вспомогательным был бы сайт. Обычно вспомогательно именно приложение, и так было всегда с того момента, как я появился в интернете, то есть, последние лет десять.

Без проблем и без вопросов люди разве что приложение банка да самый первый мессенджер ставят, а насчёт всех остальных в их глазах читается "а может, не надо?".

parent From Andrey V. Stolyarov profile Tue Nov 5 08:56:57 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

> в их глазах читается "а может, не надо?"

Разумеется, оно и понятно. Мобильные приложения — они же такие все из себя дружественные пользователю и совершенно без проблем работают, так и норовят раком встать (особенно когда обновятся в очередной раз) и заодно весь телефон раком поставить. А уж как весь телефон классно ставится раком при попытке что-то новое на него поставить — по идее это уже должен быть уровень мемов.

parent From Максим Клочков profile Tue Nov 5 12:40:32 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

> Да и что-то не припомню онлайн-сервисов, кроме инстаграмма и тиктока, у которых вспомогательным был бы сайт.

Яндекс-такси, вайлдберриз, вкусвилл - все ориентированы на мобильное приложение. Это я в окно посмотрел и перечислил, что увидел :)

> в их глазах читается "а может, не надо?".

Точно, именно это и читается. Но кто же туда смотрит...

parent From Andrey V. Stolyarov profile Thu Nov 14 21:08:49 2024 UTC pencil

userpic

Re: Re: Почему веб-макакам платят деньги?

> Яндекс-такси, вайлдберриз, вкусвилл

Добавь ещё каршеринг и аренду великов и прочих электросамокатов.

У меня изначально даже мысли не было всем этим пользоваться.

parent From Ilya profile Mon Nov 4 22:36:45 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

Полагаю по той же причине, по которой крупные игровые конторы делают свои игры "инклюзивными" по последнему слову левацкой повесточки. Продукты потом набирают негативные отзывы, продажи падают, но долбанутых манагеров увольнять никто не торопится.

Мне кажется здесь работает эффект толпы, все остальные так делают и мы будем. Пользователям то может и плевать на дизайн, но манагер этого не знает, он думает что если сайт не будет свистеть и пердеть, юзер тут же скривит нос и пойдет к конкуренту, у которого сайт и свистит и пердит и светится. А поступая как все, получаешь ощущение безопасности, ложное, но от того не менее приятное. Но опять же, это лишь мое предположение.

parent From Artem (unverified) Tue Nov 5 09:18:35 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

А вот с играми всё совсем не так просто. Владельцы игровых студий не настолько тупые, как иногда кажется, и вполне умеют считать деньги. Если приглядеться к их источникам дохода, то внезапно выясняется, что у крупных, да и многих совсем не крупных студий огромный доход, быть может, даже больше, чем продажи, приносят вливания от крупных инвесторов, таких, как Black Rock. Незнакомое название? А ведь это настоящее гигачудовище финансового мира, секретный босс, евпочя. И эта контора -- левацкая до кости мозгов. Поэтому провал игры мало что значит, разработка всё равно окупилась за счёт продвижения правильного нарратива, который с удовольствием проспонсируют те, кто играет в игры отнюдь не компьютерные.

parent From Andrey V. Stolyarov profile Wed Nov 6 12:05:24 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Кстати, насколько я понимаю, Black Rock двигает левую повестку, поскольку это удачный инструмент для их целей, но в действительности те, кто там всем заправляют, ни фига не леваки, даже наоборот. Их цель — физическое уничтожение остатков белой расы.

parent From Artem (unverified) Wed Nov 6 13:34:09 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

У меня всё просто: двигаешь левачество => левак. А что там внутри черепной коробки творится, это дело двадцатое. Может, там вообще не мозг, а сплошная кость, но мне-то разницы никакой не будет ни в каком случае.

Если данная цель преследуется в том числе их основателем и нынешним официальным руководством, то они крайне непоследовательны и избирательны, ведь начать уничтожение белых с себя упорно не хотят.

parent From Andrey V. Stolyarov profile Wed Nov 6 13:46:07 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

С себя? Так там белые только для декорации, в смысле для PRа. Насколько я понимаю, заправляет всем отборный черняк на нефтяные деньги Катара.

parent From rkvg-es (unverified) Sun Nov 10 19:24:39 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

> Их цель — физическое уничтожение остатков белой расы.

А ради чего, чтобы что?

parent From Andrey V. Stolyarov profile Sun Nov 10 19:30:06 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Вопрос "зачем" не всегда имеет ответ, зато всегда имеет ответ вопрос "почему". И на этот вопрос ответ довольно очевиден.

parent From Ilya profile Mon Nov 11 16:11:06 2024 UTC pencil

Re: Re: Re: Почему веб-макакам платят деньги?

Какая бы ни была их цель, имхо идея оказалась провальной, повестку пипл уже не хавает (достаточно посмотреть на результаты выборов в США), и никаким количеством трансов в играх это не исправить, вангую что в ближайшее время появится новая идеология с новой реторикой, ибо нынешняя уже всех изрядно подза***ла.

Гораздо интереснее ситуация сейчас происходит в Японии, там недавно Visa & Mastercard (акциями которых владеет Black Rock) объявили ультиматум студиям "или вы конкретно так цензурите свои аниме и манги, или больше никаких платежей через нас".

parent From Anonymous (unverified) Tue Nov 5 05:45:35 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

Есть сайт Сбербанк Онлайн. Думаю им каждый второй житель России вынужден пользоваться, если не больше.

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

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

parent From Andrey V. Stolyarov profile Tue Nov 5 08:53:22 2024 UTC pencil

userpic

Re: Re: Почему веб-макакам платят деньги?

Сбер — это вообще отдельное происшествие, они ведь аж целую школу "программирования" открыли, и, судя по тому, что я видел, берут потом на работу людей, патологически неспособных написать код, поддающийся поддержке. Берут ли там ещё и нормальных людей — не знаю, не видел.

parent From Parthen profile Tue Nov 5 10:22:43 2024 UTC pencil

userpic

Re: Re: Re: Почему веб-макакам платят деньги?

Если вы про 21-ую, то я в нее как раз записался :)

Подкупили тем, что учат Си под *nix (правда, первым языком, гыгыгы). У них, конечно, в основном направления макак, но gamedev тоже есть.

Посмотрим как там нормальному человеку учится.

parent From Andrey V. Stolyarov profile Tue Nov 5 11:27:02 2024 UTC pencil

userpic

Re: Re: Re: Re: Почему веб-макакам платят деньги?

> я в нее как раз записался

Нахера? Те, кто там "учат", ни бельмеса не понимают ни в программировании, ни в обучении таковому.

parent From Parthen profile Tue Nov 5 11:43:37 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Почему веб-макакам платят деньги?

Только там в принципе нет ни учителей, ни уроков.

"Ученикам" просто дают задания, которые ты хоть как должен выполнить. Задают вопросы друг-другу и гуглу, никакого другого способа "обучения" не предусмотрено.

Т.е. это не школа в принципе, а такой себе программисткий клуб.

В моем ненышнем "ВУЗе" программировать умееют человек 5 из 30 (на третьем курсе-то). Хочется, эээ, с программистами связей навести.

parent From Andrey V. Stolyarov profile Tue Nov 5 13:18:29 2024 UTC pencil

userpic

Re: Почему веб-макакам платят деньги?

Мне один такой "член клуба" гордо показывал арифметические выражения на пять строчек с десятью сайд-эффектами и реально вознамерился меня убедить, что это вот так и надо программировать.

А пять из тридцати — это ещё не так плохо.

parent From Alexander (unverified) Tue Nov 5 13:53:55 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Почему веб-макакам платят деньги?

Я же правильно понимаю, что в этой школе единственый метод обучения - "peer-to-peer", как они это называют. То есть недоучки учат недоучек. В этом есть какой-то смысл?

parent From Artem (unverified) Tue Nov 5 13:59:32 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Почему веб-макакам платят деньги?

>> "Ученикам" просто дают задания, которые ты хоть как должен выполнить. Задают вопросы друг-другу и гуглу

Ну то есть это то, что де-факто творится у нас на потоке, только возведённое в норму бытия. Потому что у нас на лекции никто почти не ходит (однажды пришло два человека из полста...), а на практиках преподам только сдают выполненные работы. При этом те люди, которые ходят на лекции, задают вопросы преподам, которые раньше и лучше всех сдают эти самые работы и которые хотя бы приблизительно понимают, что в их коде происходит, это одни и те же люди.

А клубы такого рода, подозреваю, надо искать в несколько менее ярко освещённых местах.

parent From Миша, автор исходного вопроса (unverified) Wed Nov 6 06:22:23 2024 UTC pencil

Re: Re: Почему веб-макакам платят деньги?

Сбер держал в голове когда задавал исходный вопрос. Мне нравлся их интерфейс 5 лет назад, с тех пор он стал гораздо тяжелее и мой старенький ноут с файрфоксом перестал его вообще открывать. У меня один мат от этого.

При этом, готов поспорить, с точки зрения безопасности, это теперь гораздо большая дристня чем даже была

parent From Artem (unverified) Tue Nov 5 06:14:46 2024 UTC pencil

Re: Почему веб-макакам платят деньги?

>> Почему бизнес не оптимизирует макак за ненадобностью?

А это уж смотря что вы имеете в виду под оптимизацией. 200k в среднем это вы хватили, это выше среднего.

Статьи по теме найма на Хабре всё чаще сводятся к одному: время дефицита джунов в айтишке закончилось, теперь их стабильно избыток, и зарплаты их всё ниже и ниже. Особенно впечатляет пока нереализованный, но уже разрекламированный проект галеры от HH и Яндекс.Практикума с зарплатой в 30k, при условии, что оплачен и пройден курс стоимостью больше 100k. И они уверены в успехе, думаю, не без причин. И это всё именно про веб, в других областях про избыток джунов особо не слышно (на самом деле про другие области не слышно вообще почти ничего, я не в курсе, какая там ситуация, если инфа и есть, то её невозможно отыскать среди нескончаемого шума от вебщиков, а сайты с вакансиями источником информации не являются, к сожалению).

Кстати, в последнее время я пересчитываю цены в рублях, как если бы доллар всё ещё был по 30. Некоторые вещи прям очень неожиданно меняются.

From Artem (unverified) Mon Nov 4 10:41:43 2024 UTC pencil

Не ваше?

Гуляет по интернету один скриншот с текстом, прочтение которого рождает во мне чувство дежа вю. Не вашего ли оно авторства, Андрей Викторович? Ниже привожу распознанный нейронкой текст (орфографию не сверял):

Теперь содержательно. Я не знаю, как вам позволили ТАКОЕ дотащить аж до защиты -- но у вас на стороне клиента целый арснал: React, Redux, ещё два пункта. Между тем, задача у вас стоит не просто простая, я бы сказал, что она скорее _примитивна_ на уровне трёх копеек. Здесь вообще не может быть ничем оправдано какое бы то ни было исполнение чего бы то ни было на стороне клиента, потому что задача МОЖЕТ БЫТЬ решена полностью на стороне сервера, присылая в браузер только статический HTML с формами ввода. А если она МОЖЕТ быть так решена, то она ДОЛЖНА БЫТЬ так решена. За такое решение, как у вас, не то что диплом давать -- за это к стенке надо ставить, или как минимум в тюрьму сажать, и я не шучу. Применение исполнения на стороне клиента, раз уж вам так нравятся ссылки на юридические документы, подпадает сразу под обе "компьютерные" статьи Уголовного кодекса -- 273 (распространение вредоносного ПО) и 274 (неправомерный доступ к компьютерной системе), но самое главное -- "разработчики", подобные вам, планомерно превращают Интернет в кучу дерьма. А в целом это как раз то самое явление, которое в последние годы получило известность под названием "веб-макакинг". Корни этого явления очевидны: "современной" (в очень жирных кавычках) веб-разработкой занимаются недоучки, у которых не хватает мозгов на более серьёзные области программирования. До сей поры я надеялся, что у нас на факультете таких недоучек не делают, но, видимо, ошибался. Подобные "работы" позорят факультет. Вопрос, куда смотрели ваши научные руководители, остаётся для меня открытым; если интересно моё мнение, эту работу не следует допускать до защиты, всему должен быть предел.

Если что, там, откуда я это взял, оно приводилось как пример "синдрома вахтёра" у преподавателя.

parent From Andrey V. Stolyarov profile Mon Nov 4 13:35:52 2024 UTC pencil

userpic

Re: Не ваше?

Да, это мой текст, и вы далеко не первый, кто его нашёл и у кого возникло вот это самое "дежавю". А всех, кто считает, что я тут в чём-то неправ, следует уничтожать как тараканов, саранчу и прочих вредителей.

parent From Anonymous (unverified) Mon Nov 4 14:19:53 2024 UTC pencil

Re: Re: Не ваше?

У саранчи есть своя роль в экосистеме, а нашествия бывают довольно редко, обычно они просто мирно прыгают себе в траве. Так что я не согласен, считаю, что насекомых уничтожать не надо.

parent From Andrey V. Stolyarov profile Mon Nov 4 14:38:40 2024 UTC pencil

userpic

Re: Не ваше?

Пожалуй, соглашусь. Насекомых уничтожать не надо. Вебщиков — надо.

parent From Максим Клочков profile Mon Nov 4 19:17:40 2024 UTC pencil

Re: Не ваше?

Этот несчастный студентик виноват лишь в том, что наступил на классическую проблему "золотого молотка" -- он решил задачу так, как его научили. А научили его так потому, что "сейчас везде так пишут".

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

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

parent From Andrey V. Stolyarov profile Mon Nov 4 19:27:32 2024 UTC pencil

userpic

Re: Не ваше?

Ну, на факультете его этому не учили, это я точно могу сказать. Не знаю как сейчас, но тогда веб-"программирование" внутрь проникнуть ещё не успело. Т.е. он этой херни где-то на стороне нахватался и исхитрился как-то убедить своего научного руководителя, что сие типа самые современные технологии и всё такое, а вовсе никакое не говно.

parent From Максим Клочков profile Mon Nov 4 19:38:34 2024 UTC pencil

Re: Не ваше?

Значит, он сам где-то подсмотрел. Справедливый вопрос - куда научные руководители смотрели. Впрочем, готов предположить -- решали свои проблемы, типа более важные.

parent From Andrey V. Stolyarov profile Mon Nov 4 20:11:21 2024 UTC pencil

userpic

Re: Re: Не ваше?

> решали свои проблемы, типа более важные.

Вот это меня тогда и возмутило больше всего.

parent From Anonymous (unverified) Mon Nov 4 17:57:57 2024 UTC pencil

Re: Не ваше?

Интересно было бы почитать начало обсуждения, ответом на которое являлся этот текст.

parent From Andrey V. Stolyarov profile Mon Nov 4 19:25:46 2024 UTC pencil

userpic

Re: Не ваше?

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

From Edward Byte (unverified) Sat Nov 2 21:08:25 2024 UTC pencil

Пара мыслей о важности CLI

Приветствую лично Андрея Викторовича и всех читающих.

Так уж вышло, что я учусь на сетевого инженера и системного администратора, что у нас называют новомодным словом DevOps, которое ничего кроме смеха не вызывает: стране нужны технологи, а вузы выпускают дураков(зачёркнуто) менеджеров, бегающих со своими абстрактными стандартами управления качеством, так же и с нашими баранами, то есть DevOps'ами. Но не суть, суть же в том, что мы работаем с сетевым оборудованием Cisco, которое конфигурируется через подключённый по последовательному порту компьютер с эмулятором терминала. Работая с ним, мне не раз доводилось наблюдать непринятие некоторыми студентами интерфейсов командной строки как способа взаимодействия человека и компьютера.

К сожалению, сейчас такие времена, когда сложно найти специалиста, осознающего все преимущества CLI над GUI. Главным из которых я считаю простоту организации межпроцессного взаимодействия и автоматизации: так в *nix для первого существуют конвейеры, для второго - bash-скрипты. В общем же случае для мейнстримного GUI не существует тривиального решения перечисленных задач, вероятно для их решения потребуется применение компьютерного зрения, что практически ставит крест на целесообразности данной авантюры. Следовательно, использовать программы с графическим интерфейсом в рабочих процессах - значит отказываться от их автоматизации.

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

parent From Andrey V. Stolyarov profile Sat Nov 2 22:00:39 2024 UTC pencil

userpic

Re: Пара мыслей о важности CLI

Да уж, цЫску только через гуй конфигурять, ага. Особенно когда что-нибудь замороченное вроде OSPF или тем паче BGP.

parent From Максим Клочков profile Sun Nov 3 15:45:56 2024 UTC pencil

Re: Пара мыслей о важности CLI

У цыски, кстати, отвратительный интерфейс командной строки. Структура настроек у нее - декларативная иерархическая (можно условно считать, что в некотором роде похожа на дерево объектов), а командная строка - извращенный способ редактирования "в реальном времени" этой самой иерархии.

Остальные вендоры бездумно скопировали этот cli, признав его "индустриальным стандартом де-факто". Но хотя бы основные управляющие комбинации клавиш в стиле emacs/readline не сломали, и то хорошо :)

Не прогнулся под мейнстрим только Juniper, который изнутри похож на bsd с zebra/quagga/bird

parent From Andrey V. Stolyarov profile Sun Nov 3 15:57:24 2024 UTC pencil

userpic

Re: Пара мыслей о важности CLI

Ну, это всё-таки конфигурялка, а не настоящий shell.

Вообще странно, я как раз в своё время от цысковской командной строки пищал от восторга. Ну вот реально мне их подход понравился. Конечно, я в те времена был на четверть века моложе (1997--1999 гг.), но вроде с юниксовыми шеллами тогда уже прекрасно управлялся, и с винды как раз в 1997 (скорее в начале 1998) окончательно слез, т.е. ну не совсем я уже был новичок в компьютерах.

parent From Максим Клочков profile Sun Nov 3 16:49:56 2024 UTC pencil

Re: Пара мыслей о важности CLI

Командная строка на первый взгляд ничего так, удобная. Работают стрелочки, всякие Ctrl-A/E, табуляция, знак вопроса. Есть вложенность режимов (обычный, привилегированный, конфигурационный глобальный, конфигурационный для каждой отдельной сущности, идею явно подсмотрели у DEC RSX/VMS).

На некоторых платформах есть встроенный TCL (правда, лет 10-15 назад начали заменять питончиком).

Но минусы - как у любой закрытой системы, где попытались пойти "своим путём". Нелогичностей и уродств в этом CLI - масса, подключиться сторонним скриптом - нереально без диких извращений, анализировать диагностические сообщения не "глазами", а автоматически - тоже крайне сложно, и т. п.

Если стоит задача конфигурировать не одну цыску, а несколько, причем согласованным образом - все минусы тут же вылезают наружу.

parent From Artem (unverified) Sun Nov 3 08:29:04 2024 UTC pencil

Re: Пара мыслей о важности CLI

> для мейнстримного GUI не существует тривиального решения перечисленных задач

Вот-вот! Только представьте, сколько рабочих мест будет создано, когда четырежды клятый буржуинский CLI наконец-то почиёт в бозе! *здесь был негодный к столу анекдот про двух ковбоев и подъём ВВП на двести долларов*

parent From Максим Клочков profile Sun Nov 3 16:36:43 2024 UTC pencil

Re: Пара мыслей о важности CLI

> В общем же случае для мейнстримного GUI не существует тривиального решения перечисленных задач... использовать программы с графическим интерфейсом в рабочих процессах - значит отказываться от их автоматизации.

Индустрия осознала эту проблему. И даже нашлось решение. Но -- лучше бы это решение не находилось. Поясню.

Графическое приложение 15-летней давности обычно представляло собой программу под винду или же линукс, статически или динамически собранную с графической библиотекой, где был главный цикл, события, вот это всё (см. трехтомник, главу про FLTK, принципы везде примерно одинаковые). Такое приложение работало в меру криво (например, было чувствительно к "зависаниям" в обработчике событий), но подход был прост, понятен и, при использовании нормальных библиотек, не сильно требователен к ресурсам.

Современное графическое приложение как правило состоит из "фронтенда" на джаваскрипте и "бэкенда" на go/python/php, изредка java+spring, еще реже на Си++. А между ними - REST API. Т. е. запросы и ответы, отправляемые по протоколам http/https, но не с целью передачи текстов/изображений, а с целью отправки произвольных сообщений.

Идея на первый взгляд здравая - бэкенд делает работу, а с пользователем взаимодействует отдельная сущность. Которая может быть графическим интерфейсом, командной строкой, скрптом для автоматизации, или же вообще другой системой. Если API при этом открыт и документирован -- всё вообще отлично.

Но для реализации почему-то индустрия приняла наименее эффективный и наиболее кривой способ, предполагающий:

  • многокраную сериализацию-десериализацию данных
  • многократную шифровку-расшифровку и валидацию сертификатов (потому что основной транспорт для rest api - https)
  • наличие целых дивизий программистов, которые занимаются всю свою профессиональную жизнь тем, что пилят разные датаклассы, версии api, подсистемы etl (extract/transform/load) и т. п.

Кстати, из-за третьего пункта выпускники разных курсов вида "войти в айти за полгода" могут не опасаться за своё будущее -- им всегда найдётся вот такая обезьянья работа.

Дальше -- больше. Джаваскриптеры любят одни наборы библиотек, бэкендеры -- другие. Увязать всё это в рамках одной операционки не получается. Добро пожаловать в "увлекательный" мир контейнеров и докера. Но докер одни проблемы решает, другие -- создает. Например, контейнеры должны стартовать в определенной последовательности и так, чтобы между ними была сетевая связность. А также контейнеры любят падать, их надо перезапускать, и уведомлять админов о проблемах. Добро пожаловать в кубер и многочисленные его клоны и расширения (openshift и пр.) Т. е. на пустом месте создана целая поляна для приложения труда многочисленных ит-специалистов, которых надо обучать специфическим навыкам.

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

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

P.S. Сорри за длинный поток сознания -- учусь автоматически отправлять данные счетчиков на сайт Мосэнергосбыта, проклял уже всё. Мало того, что там кривой и плохо спроектированный REST API, оно ещё и сообщения об ошибках выдаёт по-русски, и в разных кодировках в зависимости от ситуации. Читайте труды мэтров, там всё давно написано, и не будьте как Мосэнергосбыт.

parent From Artem (unverified) Sun Nov 3 18:36:47 2024 UTC pencil

Re: Re: Пара мыслей о важности CLI

Поправка, чтобы не плодить неверное понимание - Rest API это просто набор рекомендаций для создания API, в котором нет требования слать что-то по какому-то конкретному протоколу или использовать шифрование в любой форме. Http соответствовал этим рекомендациям с рождения, у них и автор-то один, может, поэтому тянут его как транспорт по умолчанию (или потому, что жабаскриптеры иначе не умеют...)

parent From Anonymous (unverified) Mon Nov 4 18:06:54 2024 UTC pencil

Re: Пара мыслей о важности CLI

Ну еще бы в Мосэнергосбыте работало бы что-то нормально. В ЖКХ наверное программистам тыщ по 20 в месяц платят, кто адекватный на такое согласится.

parent From Andrey V. Stolyarov profile Mon Nov 4 19:17:54 2024 UTC pencil

userpic

Re: Re: Пара мыслей о важности CLI

Там обычно делают хитрее — заключают договор с коммерческим подрядчиком, а тот уже программистам платит сколько положено. За двадцать тыщ ни один человек, способный хотя бы найти максимум в массиве, работать не станет.

parent From Максим Клочков profile Mon Nov 4 20:12:29 2024 UTC pencil

Re: ара мыслей о важности CLI

Вот не надо -- Мосэнергосбыт это не совсем ЖКХ, это порождение реформ Чубайса, которые при всех своих косяках таки сделали энергетику в России коммерчески выгодной.

В тарифах на электричество есть специальная составляющая "на инновации", типа умных счетчиков, автоматической передачи показаний, вот этого всего. И эта составляющая аккуратно пересчитывается каждый год, с целью компенсации или даже опережения инфляции.

Поэтому деньги у энергетиков -- есть. И в генерации, и в транспортировке, и в сбыте. А кривые руки -- в силу исторических причин.

parent From API (unverified) Mon Nov 4 12:26:54 2024 UTC pencil

Re: Пара мыслей о важности CLI

все преимущества CLI над GUI. Главным из которых я считаю простоту организации межпроцессного взаимодействия и автоматизации

Для автоматизации всё же важнее не UI, каким бы он ни был, а API.

parent From Andrey V. Stolyarov profile Mon Nov 4 13:42:03 2024 UTC pencil

userpic

Re: Re: Пара мыслей о важности CLI

Не понимаешь, да? А чего на мой сайт припёрся?

From Миша (unverified) Sat Nov 2 12:57:18 2024 UTC pencil

Жаба:может ли быть сопоставимой по скорости с крестами?

Добрый день, Андрей Викторович!

Читал, что вы думаете об императивных языках со сборкой мусора: они далеки от машины фон неймана, но тогда нет смысла делать их императивными.

Вопрос: если каждое аллоцирование/деаллоцирование это некий системный вызов и переключение контекстов (накладные расходы), могут ли программы на богомерской Жабе быть быстрее крестов?

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

parent From Andrey V. Stolyarov profile Sat Nov 2 17:33:54 2024 UTC pencil

userpic

Re: Жаба:может ли быть сопоставимой по скорости с крестами?

Во-первых, разумеется, каждое аллоцирование никак не может быть системным вызовом, если бы оно им было, программы работали бы со скоростью варёных улиток, вдобавок ударенных пыльным мешком по башке.

А во-вторых, сравнение языков на "скорость" — это просто изначально бред сивой кобылы. Когда за эти ваши "кресты", в смысле C++, хватается очередной ньюфаг, которому рассказали, как надо дёргать методы от STLных контейнеров, но забыли объяснить, чем передача по константной ссылке отличается от передачи по значению (а это нынче явление весьма распространённое), то полученное на выходе изделие не перетормозит не только жаба, но и вообще никто.

Я вам больше скажу, даже если человеку рассказали, что такое указатели и как с ними работать, запинали писать на чистом Си, потом долгими побоями по морде чайником отучили присваивать компаунды и передавать их по значению, то даже и такой деятель запросто проморгает где-нибудь квадратичность алгоритма, работающего при отладке с массивами из нескольких десятков элементов, а в боевой эксплуатации нарвавшегося на пару миллионов. Либо, напротив, будет гордо всем говорить, что квадратичные алгоритмы никуда не годятся, и применять qsort из "стандартной" библиотеки для сортировки массивов из пяти int'ов по возрастанию — и по закону вселенского западла на отладке таких массивчиков будет несколько десятков, а в реальной обстановке внезапно окажется мильончик-другой. И, опять же, "никакой кривой козе нас не перетормозить", чо.

Я это к тому, что тормоза — это никоим образом не свойство языка программирования, это всегда дело рук человеческих.

Но, конечно, любую (сколь угодно эффективно и грамотно написанную) программу на джаве заведомо можно обогнать с помощью нормальных языков. Даже в несколько раз. Т.е. формально сложность останется той же, поскольку все эти "О большое" работают с точностью до линейного коэффициента, но да, коэффициентик-то этот можно раза в два-три-четыре подпилить. Потери там основные не на аллокации памяти, а, во-первых, на интепретации байт-кода: ну вот хоть ты в узел завяжись, а не может программный интерпретатор команд не тормозить в сравнении с железным процессором, исполняющим свой нативный код, ещё и оптимизатором подпиленный; во-вторых, на всяких мелочах вроде "все переменные — ссылки, все методы — виртуальные, без объекта даже кошки не родятся" и вот это вот всё. Вроде и мелочи, но свою долю тормозов вносят. Но чтобы это реально с заметным эффектом обогнать, нужен программист, который понимает, что делает, и чтобы ему не было лень не просто переписать программу заново на Си или в крайнем случае на C++ без STL, а чтобы он ещё и сделал это максимально грамотно.

А теперь барабанная дробь и самое главное: всё это абсолютно похуй. На джаве и прочих говноязыках писать категорически недопустимо вне всякой зависимости от эффективности, хоть по памяти, хоть по времени исполнения. Попросту говоря: чего вы мне рассказываете про эффективность, когда я про неё не спрашивал?!

Подробности см. в третьем томе, сначала главу 9.3 (особенно параграф 9.3.3), а потом часть 12 — желательно вообще-то всю, за исключением главы 12.4, которая не имеет отношения к делу; но можно ограничиться только главой 12.5, и вот эту уже точно стоит осилить всю целиком. Ну а если совсем кратко, то просто осознайте: если вам в ответ на совершенно справедливое утверждение "джава говно" начинают рассказывать какие-то там сказки про эффективность, всех этих сказочников следует немедленно затыкать фразой "я про эффективность вас не спрашивал". Даже если принять без всяких споров тезис "джава быстрая", то из этого не следует, что она не говно: из этого следует только, что она быстрое говно.

parent From Artem (unverified) Sat Nov 2 17:46:36 2024 UTC pencil

Re: Re: Жаба:может ли быть сопоставимой по скорости с крестами?

> интепретации байт-кода

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

parent From Andrey V. Stolyarov profile Sat Nov 2 18:35:36 2024 UTC pencil

userpic

Re: Жаба:может ли быть сопоставимой по скорости с крестами?

Ну, там обычно JIT, но JIT штука довольно своеобразная — во-первых, она довольно жирная (JVM и прочие жабовиртуалки и так от ожирения того гляди преставятся), во-вторых, сама по себе JIT-компиляция отрабатывает ничуть не мгновенно.

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

parent From far profile Thu Nov 7 18:43:09 2024 UTC pencil

parent From Andrey V. Stolyarov profile Thu Nov 7 19:00:45 2024 UTC pencil

userpic

Re: Жаба:может ли быть сопоставимой по скорости с крестами?

Ага, и чо?

A native executable includes only the code required at run time, that is the application classes, standard-library classes, the language runtime, and statically-linked native code from the JDK.

Этак-то и Лисп можно "откомпилировать" (повторяться не буду, см. в третьем томе параграф 11.1.2).

А особенно доставляет на той же странице вот этот вот пункт:

Can be packaged into a lightweight container image for fast and efficient deployment

А-ааааааааа 8-()

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

UPD: Сожалею, но ваша простыня на пять экранов раскрыта не будет. На её подробный разбор ушло бы по меньшей мере полдня, у меня есть лучшие идеи, как потратить полдня. Обычно в таких случаях я просто игнорирую поступление очередной попытки меня в чём-то убедить, но поскольку вы тут далеко не первый день, вам я решил об этом сообщить в явном виде. Ещё раз, и медленно: я не предоставляю трибуну для высказывания точек зрения, противоположных моим, хотите — делайте свой сайт и там пишите что хотите.

From Арсений (unverified) Thu Oct 31 20:48:39 2024 UTC pencil

Netflix и иже с ними

Андрей, здравствуйте.

Заметил, что вы неодобрительно высказываетесь о сервисах типа нетфликса. А что, по-вашему, с ними не так? Это же не совсем "торговля битами и байтами", пользователь фактически на время просмотра арендует серверную мощность в датацентре нетфликса. Есть даже возможность сохранить сериальчик себе на девайс (впрочем, кастрированная, только на телефон/планшет)

parent From Andrey V. Stolyarov profile Thu Oct 31 21:08:34 2024 UTC pencil

userpic

Re: Netflix и иже с ними

Где ж таких конформистов поганых берут-то, а?

По ходу, это реально не понимает (а может, и прикидывается). Если бы это была "аренда серверной мощности", то уж точно не было бы и не могло бы быть никаких ограничений на сохранение локальной копии видео. А ещё не было бы и не могло бы быть никаких "правовых" ограничений на выкладывание этого видео куда-то ещё, и вообще на его распространение.

Между прочим, реализация ограничений на сохранение копии представляет собой заведомо вредоносный софт, "подсаживаемый" пользователям на их устройства и там исполняемый. Собственно, это так с любой "защитой от копирования". Про это недавно ролик вышел.

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

parent From Anonymous (unverified) Fri Nov 1 18:39:07 2024 UTC pencil

Re: Re: Netflix и иже с ними

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

parent From Andrey V. Stolyarov profile Fri Nov 1 19:59:52 2024 UTC pencil

userpic

Re: Netflix и иже с ними

Слушайте, что за бредни, а? Аренда серверных мощностей — это когда вам предоставляют сервер (VPS, VDS, физическую машину в аренду) или хотя бы ну там разделяемый хостинг. Т.е. когда вы на этом сервере размещаете свои сервисы. Т.е. на сервере крутятся не сервисы владельца сервера, а сервисы клиента.

Всё остальное — это онлайн-услуги, очередная-херня-as-a-service и вот это вот всё. И то обстоятельство, что там где-то за кулисами есть какой-то сервер, вообще никак не относится к делу. Я, хоть убейте, не понимаю, как можно платить за подобное. И дело тут не в каких-то там лицензионных отчислениях, в цену книг или дисков обычно тоже входит копирастическая составляющая, но я никогда не утверждал, что нельзя покупать книги (в смысле настоящие, бумажные; электронные-то, конечно, нельзя).

Дело в общем принципе: есть ограниченный список того, что в принципе может стоить хоть каких-то денег. В первом приближении это (а) материальные объекты и (б) человеческое время, потраченное по конкретному заказу конкретного заказчика. Конечно, неизбежно приходится уточнять, что вообще-то временное использование материальных объектов тоже может стоить денег, ну там автомобиль в аренду; или например, электричество — ну, то ли это такая разновидность материального объекта, то ли отдельный пункт в списке, но да, за электричество платить таки можно, хотя бы понятно за что. Потом ещё возникают совсем уж специфические штуки вроде того, что сами по себе деньги тоже стоят денег (проценты про кредитам — штука вполне понятная, иначе зачем вообще кредит давать, ну и плюс премия за риск — собственно, это основа предпринимательской деятельности: рискнуть своими деньгами, чтобы если всё пройдёт как надо, получить профит), а ещё есть такая вещь, как чьи-то обязательства — они тоже могут стоить денег. Но основное — это именно материальные объекты и человеческое время, потраченное по заказу.

А вот услуги, оказываемые компьютерами, как правило, денег стоить не должны. Просто потому что там в подавляющем большинстве случаев основные расходы — на разработку сервиса, а не на обслуживание серверов. Во всех таких ситуациях количество проданной услуги никаким образом не соотносится с вложенными затратами. Про это я, кстати, ещё семь лет назад видео сделал.

parent From Artem (unverified) Fri Nov 1 11:51:40 2024 UTC pencil

Re: Netflix и иже с ними

>> Есть даже возможность сохранить сериальчик себе на девайс

>> Есть даже возможность сохранить сериальчик

>> Есть даже возможность

>> Есть даже

>> даже

Мы, божией милостию император, сим настоящим великодушно позволяем верноподданным стоять на месте, когда им заблагорассудится, если только сие дозволение не вступает в противоречие с актуальным приказом непосредственного начальствующего лица. Стоять необходимо по стойке 'смирно', раз в 15 минут дозволяется почесать нос специальной чесалкой при наличии таковой у случившегося рядом полицейского.

Представляете, даже нос почесать можно! Правда, только если мимо будет проходить полицейский с чесалкой.

parent From Anonymous (unverified) Fri Nov 1 14:15:47 2024 UTC pencil

Re: Netflix и иже с ними

Netflix — это вообще самая поганая форма торговли байтами. Именно благодаря им протолкнули "стандарт" EME, так что DRM стал частью спецификаций Web. Раньше конечно DRM тоже было, но только через флеш и всякие более экзотические плагины, но это было именно что нестандартным расширением, которое далеко не везде было и благодаря этому распространение DRMовых сайтов в сети хотя бы как-то сдерживалось и их было немного.

С DRM не хотят мириться даже многие поборники копирайта, настолько это мерзкая штука.

parent From Ilya profile Fri Nov 1 22:31:28 2024 UTC pencil

Re: Re: Netflix и иже с ними

> С DRM не хотят мириться даже многие поборники копирайта, настолько это мерзкая штука.

Что само по себе абсурдно, и непонимание этой абсурдности говорит лишь об отстуствии интеллекта у этих людей, ведь довольно очевидно, что если есть запрет на копирование, неизбежно появится и техническое средство для осуществления этого запрета. Нельзя быть одновременно за войну и против автоматов.

parent From Andrey V. Stolyarov profile Sat Nov 2 06:30:57 2024 UTC pencil

userpic

Re: Netflix и иже с ними

Ага, конечно. А быть "за войну" (ну, не так чтоб прямо за войну, но по крайней мере быть милитаристом) и при этом быть против ядрёной бомбы? Против химического оружия? Или если кто-то топит за ОЗХО, то он просто обязан быть пацифистом и вообще хиппи с фенечками?

Это не говоря уже о том, что DRM никакого отношения к "техническим средствам" не имеет, всё, что касается "защиты от копирования", может быть обеспечено только картельным сговором вендоров оборудования и/или беспределом государевых законодателей. Потому что если не запрещать тем или иным (сугубо организационным) способом opensource'ные решения, первый же появившийся открытый софт для воспроизведения того или иного "DRM-ного" контента тут же будет соответствующим образом пропатчен. Чисто технически защита от копирования невозможна, всё, что можно воспроизвести, может быть также и скопировано.

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

(на всякий случай, это всё никоим образом не относится лично ко мне, поскольку я как раз категорически против копирайта как такового)

parent From Anonymous (unverified) Sun Nov 3 13:15:56 2024 UTC pencil

Re: Re: Netflix и иже с ними

Есть ещё аппаратная фигня, в процессорах Intel и AMD есть шифрование данных идущих по системной шине, потом ещё в видеокарте к монитору HDCP, плюс TPM который поддерживает Remote Attestation. Не знаю насколько оно сейчас работоспособна, но идея такая что с помощью криптографии комп может доказать какому-нибудь там нетфликсу, что он полностью заDRMлен и пользователь может разве что видеокамерой экран снимать.

Но насколько я понимаю, фильмы с нетфликса всё равно рипают в тот же день когда оно появляется. Вот и зачем было тратить такие грандиозные ресурсы, в том числе вычислительную мощность компьютеров пользователей если оно не работает?

parent From Andrey V. Stolyarov profile Sun Nov 3 14:09:53 2024 UTC pencil

userpic

Re: Netflix и иже с ними

> Есть ещё аппаратная фигня,

См. выше про картельный сговор вендоров.

> комп может доказать какому-нибудь там нетфликсу, что он полностью заDRMлен

Воспроизводит видео отнюдь не процессор, правда? Процессор для этого слишком тупой. Ну то есть в него может быть много чего встроено, но для воспроизведения видео нужен софт. См. выше про открытые исходники.

> если оно не работает

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

parent From Anonymous (unverified) Sun Nov 3 14:43:38 2024 UTC pencil

Re: Re: Netflix и иже с ними

> См. выше про картельный сговор вендоров.

Если там только Intel, AMD и Microsoft, ну ещё Nvidia, то действительно сговориться не так трудно.

> но для воспроизведения видео нужен софт. См. выше про открытые исходники.

Насколько я понимаю, открытый софт который будет проходить эту remote attestation невозможен, ну по идее. Просто потому что нетфликс не будет отдавать видеопоток если нет доказательств что у пользователя проприетарный софт причём конкретной версии и не модифицированный.

> То обстоятельство, что оно не работает, никоим образом не оправдывает ни всех этих технофашистов, ни тем более ту безответственную шушеру, которая считает возможным платить живые деньги за биты и байты.

Даже наоборот. Но вред-то от этой всей хрени всё равно огромный, даже не смотря на то что она не работает. Например в Firefox пропихнули поддержку этого говна и нужно следить, чтобы оно случайно не включилось и не скачало какой-нибудь проприетарный плагин. Плюс те участки чипов, которые заняты DRM могли бы вместо этого делать что-нибудь полезное при той же себестоимости, а ведь платят за это покупатели компов, даже если они вовсе никогда в жизни не зайдут на нетфликсоподобное говно. Плюс из-за того что DRM как раз в Intel ME и AMD PSP, а по закону раскрывать детали работы этой хрени нельзя, выходит что во-первых не получается разработать альтернативную прошивку для этих хреней, во-вторых проблемы с раскрытием уязвимостей в ней.

parent From Andrey V. Stolyarov profile Sun Nov 3 16:03:31 2024 UTC pencil

userpic

Re: Netflix и иже с ними

> открытый софт который будет проходить эту remote attestation невозможен

Вот я как раз об этом. См. выше про картельный сговор вендоров.

А самое интересное, что security through obscurity не работает. Крякнуть закрытую софтину по трудозатратам несколько сложнее, чем открытую, но это же не значит, что её вообще нельзя крякнуть. Вот и рипают этот дебильный нетфликс, и правильно делают. Копирасты должны страдать.

parent From Anonymous (unverified) Sun Nov 17 06:58:20 2024 UTC pencil

Re: Re: Netflix и иже с ними

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

parent From Andrey V. Stolyarov profile Sun Nov 17 08:48:16 2024 UTC pencil

userpic

Re: Netflix и иже с ними

Меня ещё лет двадцать назад начало возмущать, что в кинотеатрах перед собственно фильмом крутят ещё и рекламу.

Но вообще, если подумать, явление-то одно и то же, даже если не привлекать термин "информационное насилие". Есть мрази, которые считают для себя возможным решать в одностороннем порядке, как будет протекать коммуникация, не спрашивая об этом, собственно говоря, людей. А идёт ли при этом речь о копирастии, или цензуре (впрочем, "авторские" права — это частный случай цензуры), или рекламе, или всякой телеметрии и прочем сборе данных — это вопрос второй, хотя и важный.

parent From Anonymous (unverified) Sun Nov 17 11:54:45 2024 UTC pencil

Re: Re: Netflix и иже с ними

> Меня ещё лет двадцать назад начало возмущать, что в кинотеатрах перед собственно фильмом крутят ещё и рекламу.

Я в кинотеатре был два раза, оба раза со школьным классом. Был какой-то черно-белый фильм про детство Горького и ещё что-то такое. Но рекламы вообще не было. Где-то 20 лет назад как раз.

Всё ещё не понимаю, нафига нужен кинотеатр если можно скачать на свой ноутбук файл и сколько угодно ставить на паузу, перематывать, включать/выключать субтитры и так далее. Ну и я стараюсь смотреть всё на английском языке, чтобы была хоть какая-то практика восприятия на слух, а в кинотеатре в России такое вряд ли возможно.

parent From Andrey V. Stolyarov profile Sun Nov 17 15:34:53 2024 UTC pencil

userpic

Re: Netflix и иже с ними

Не, ну от фильма на большом экране впечатление, конечно, несколько другое. Впрочем, поход в кино — это такое развлекательное мероприятие, которое состоит не только из собственно фильма.

Но да, лично для меня последней каплей стала как раз реклама — лет десять я в кино уже не был и не собираюсь.

From Anonymous (unverified) Wed Oct 30 23:06:02 2024 UTC pencil

Продажа битов и байтов через продажу доступа к ним

Допустим, кто-то размещает какие-то материалы в закрытом телеграм-канале, вход в который стоит денег. Владелец канала сообщает, что при входе человек даёт согласие не распространять материалы; если он узнает, что кто-то это сделал — то найдёт и накажет.

Можно ли так продавать биты и байты?

parent From Andrey V. Stolyarov profile Thu Oct 31 07:46:04 2024 UTC pencil

userpic

Re: Продажа битов и байтов через продажу доступа к ним

Ну, начать, наверное, с того, что только конченная безответственная мразь может пользоваться телеграмом. Без этого замечания картина будет неполной.

Продавать так, вообще говоря, можно, поскольку ни на каком этапе нет насилия, всё вроде бы по согласию.

С теми, кто так (а равно и любым другим способом) покупает биты и байты, лично я предпочитаю не здороваться. Именно те моральные уроды, которые считают возможным платить за биты и байты, своей безответственностью продлевают агонию медийного спрута.

Мне вот интересно, что из этого не очевидно и за каким хером подобные вопросы вообще задавать.

parent From Anonymous (unverified) (unverified) Thu Oct 31 10:41:38 2024 UTC pencil

Re: Re: Продажа битов и байтов через продажу доступа к ним

В некоторых случаях платить за биты и байты наверное можно, если там какой-нибудь логин и пароль для предоплаченной VPS или ещё чего-нибудь. Или нет? А если продавать персонажа в онлайн играх (опять же логин и пароль)?

В общем случае, если после такой продажи тот кто продаёт лишается возможности дальше пользоваться тем, что он продаёт и не может продать это второй раз, то наверное это ОК.

parent From Andrey V. Stolyarov profile Thu Oct 31 13:51:03 2024 UTC pencil

userpic

не люблю демагогов

> если там какой-нибудь логин и пароль для предоплаченной VPS или ещё чего-нибудь

В упор не вижу тут платы за биты и байты. За услугу VPS — вижу, и это нормально.

> А если продавать персонажа в онлайн играх

В самом факте продажи криминала не вижу, но тех, кто такое готов покупать, стоило бы, наверное, госпитализировать.

> если после такой продажи тот кто продаёт лишается возможности дальше пользоваться тем, что он продаёт и не может продать это второй раз

... то это заведомо не имеет никакого отношения к плате за биты и байты.

И вон с моего сайта, мне тут дешёвые демагоги ни в какое место не упёрлись.

parent From Artem (unverified) Thu Oct 31 16:28:13 2024 UTC pencil

Re: Re: Re: Продажа битов и байтов через продажу доступа к ним

>> лишается возможности дальше пользоваться тем, что он продаёт и не может продать это второй раз

Хе-хе. Такое с физическими-то предметами не всегда прокатывает, у меня пару раз было, что одну и ту же вещь пытались продать мне второй раз. Мораль -- воздержитесь от коммерческих операций с близкими родственниками.

From Vanya (unverified) Mon Oct 28 10:52:40 2024 UTC pencil

Изучение языков программирования

Доброго времени суток. Видел тут недавно кто-то писал коментарий по поводу конспектов. Так вот, у меня назрел вопрос. А есть ли смысл и потребность писать конспекты при изучении языков программирования? Например, Си. Есть ли смысл конспектировать бызовые определения и т.д.? Или же практика, практика и еще раз практика?

parent From Andrey V. Stolyarov profile Mon Oct 28 12:24:26 2024 UTC pencil

userpic

Re: Изучение языков программирования

Ваш вопрос полностью лишён смысла. Кому-то эффективнее конспектировать, кому-то — запоминать в ходе практики.

From Василий Ильич (unverified) Sat Oct 26 17:53:54 2024 UTC pencil

Слоники и ёжики

Концепция слоникой и ёжикой очень и очень милая, но:

а) Почему они не векторные?

б) Если по какой-то причине векторная графика недопустима, то почему растровое изображение такое шакальное?

parent From Andrey V. Stolyarov profile Sat Oct 26 18:05:30 2024 UTC pencil

userpic

Re: Слоники и ёжики

Честно говоря, какие под руку попались, такие и вкрячил.

parent From Артем (unverified) Mon Oct 28 11:14:22 2024 UTC pencil

Re: Re: Слоники и ёжики

Андрей Викторович, а можно узнать ваше мнение на счёт SVG изображений, раз разговор про эту тему тут вообще зашёл? На сколько правильно их использовать в вебе? Или это что-то из разряда html5, css3 и прочих ужасных вещей, которые лучше не использовать?

Изображение, да ещё и векторное, представленное в виде кода, выглядит как хорошая замена обычным иконкам и другой графики вместо gif и png. Но может есть какие-то подводные камни?

parent From Andrey V. Stolyarov profile Mon Oct 28 12:23:16 2024 UTC pencil

userpic

Re: Слоники и ёжики

Я не имею ничего против SVG, во всяком случае на вебе, где уже хуже сделать тяжело (так-то, конечно, любой XML и вообще SGML-like — зло). Возможно, я там чего-то не знаю, но вроде это XML как XML.

parent From мейнтейнер и сисадмин локалхоста (unverified) Mon Oct 28 15:18:37 2024 UTC pencil

Re: Слоники и ёжики

Не знаю как насчёт самого формата (хотя XML в любом случае зло, согласен), но основную библиотеку для работы с ним (librsvg) переписали несколько лет назад с использованием раста. И вот с тех пор я, как мейнтейнер и сисадмин локалхоста, начал испытывать к ней (вернее, конечно, к дебилам и мерзавцам, которые это учинили) сильную личную неприязнь. Приходится выкидывать её, вместе с поддержкой формата, отовсюду, куда руки дотянутся (например, из FVWM).

parent From Andrey V. Stolyarov profile Mon Oct 28 16:01:32 2024 UTC pencil

userpic

Re: Слоники и ёжики

Ну да, мрази как мрази, хотя чего ещё ожидать от гномеров. В принципе там уже cairo в депендах достаточно, чтобы считать либу неюзабельной.

А что, других реализаций совсем нет?

parent From Eugene (unverified) Mon Oct 28 16:29:43 2024 UTC pencil

Re: Re: Слоники и ёжики

Если вы про включение исполняемого кода, то увы, в svg есть тег <script>, который как раз позволяет внедрять код непосредственно в изображение. Пример здесь приводить не буду, но доступ к объектам DOM точно есть, возможно и к разным API тоже, не изучал подробно. Изображение, выполняющее код — это не изображение, это программа.

parent From Andrey V. Stolyarov profile Mon Oct 28 16:59:37 2024 UTC pencil

userpic

Re: Слоники и ёжики

Ага, ну этого я не знал. Всё, SVG в моих личных списках переходит из категории "странных монстров" в категорию "вредоносных монстров".

parent From непрограммист (unverified) Sat Nov 23 14:47:01 2024 UTC pencil

Re: Re: Слоники и ёжики

Вредоносный монстр, который используется хакерами уже несколько лет. Пруфлинк: https://xakep.ru/2024/11/19/svg-danger/

parent From Artem (unverified) Tue Oct 29 09:57:30 2024 UTC pencil

Re: Re: Re: Слоники и ёжики

Да что там API, туда натурально JavaScript встраивается.

Можно, впрочем, этот тег выстригать на своих машинах, но другие-то этого делать точно не будут. А кто-то точно повяжет на это не только бестолковые анимации, но и существенные детали.

А других-то векторных форматов ни один браузер не поддерживает. Даже вездесущий PostScript они умеют только в форме PDF, и только через костыль в виде встраивания интерфейса своего внутреннего вьювера на страницу.

parent From Andrey V. Stolyarov profile Tue Oct 29 11:35:38 2024 UTC pencil

userpic

Веб - зло.

Веб — зло.

Впрочем, PostScript и PDF оба тьюринг-полные во всю морду. Что-то мир не туда свернул в какой-то момент.

parent From Paganel (unverified) Tue Oct 29 22:48:45 2024 UTC pencil

Re: Re: Re: Слоники и ёжики

Ну всё же можно перед использованием эти файлы проверять и при наличии любые скрипты удалять.

Мне больше интересно влияет ли на их работу отключение JS'а в браузере

parent From Andrey V. Stolyarov profile Wed Oct 30 12:24:35 2024 UTC pencil

userpic

Re: Re: Re: Re: Слоники и ёжики

> эти файлы проверять и при наличии любые скрипты удалять

Вы видели, что там внутри?

parent From Paganel profile Fri Nov 1 23:21:45 2024 UTC pencil

Re: Re: Re: Re: Re: Слоники и ёжики

В каком смысле?

SVG файл это же обычный XML код, который откроется в любои текстовом редакторе, в том же vim'е например

parent From Andrey V. Stolyarov profile Sat Nov 2 06:19:00 2024 UTC pencil

userpic

Re: Слоники и ёжики

В каком смысле? В самом прямом. Что толку, что он "откроется", если в нём ни один человек не разберётся никогда? В целом это общее свойство SGML-подобных форматов, но на генерённых XMLях, исходно не предназначенных к чтению человеком, сие проявляется особенно явно. Между прочим, даже на самых простеньких, вон есть, например, форматы отчётности в налоговую и прочие государеввы органы, там даже когда во всём документе полтора значения, об этот XML глаза сломать можно. Внутренности XMPP — вообще беда, хотя казалось бы, ну вот что такого сложного в обычных коротких сообщениях, кидаемых туда-сюда. Но нет же, уебанам только дай в руки XML, уж они там оттопырятся по полной.

А SVG к числу "простеньких" не относится никак.

parent From Paganel profile Thu Nov 7 09:44:13 2024 UTC pencil

Re: Re: Слоники и ёжики

А, ну если так.

Просто я как-то видел вручную написанные SVG, где всё нормально и удобочитаемо. Один даже сам редактировал, это была какое-то карта на Викискладе.

parent From Andrey V. Stolyarov profile Thu Nov 7 10:53:30 2024 UTC pencil

userpic

Re: Слоники и ёжики

Не могу не признать, что возможность ручного редактирования — это несомненное достоинство SVG. Только, боюсь, единственное.

From Anonymous (unverified) Sun Oct 20 09:07:10 2024 UTC pencil

А на чём-нибудь можно писать ООП программы, кроме C++?

Посмотрел на Object Pascal. Какая глупость! Есть 3 способа создать объекты (record, object, class). record это просто структура, которая ничего не умеет. object умеет наследование и виртуальные функции, но конструктор и деструктор надо вызывать руками. class умеет выделяться только в куче (что само по себе ужас), но умеет class constructor и class destructor, которые в отличие от constructor и destructor умеют вызываться автоматически, но class constructor не может принимать параметры. Обычный constructor принимать параметры может, но не вызывается автоматически. Короче, бред какой-то.

В objective-c, D и Vala есть GC (хоть и опционально), что неприемлемо.

Неужели только C++? Неужели нет НИ ОДНОГО другого более-менее адекватного языка?

parent From Andrey V. Stolyarov profile Sun Oct 20 09:27:32 2024 UTC pencil

userpic

Re: А на чём-нибудь можно писать ООП программы, кроме C++?

Всё намного хуже, чем вы думаете. В мире нет вообще ни одного сколько-нибудь адекватного языка программирования общего назначения, на C++ приходится писать только от полной безысходности. Но да, всё остальное ещё хуже, тут вы правы.

Вот сейчас наверняка дегенераты набегут и будут советовать Java и Go, не удосужившись прочитать исходный коммент, и наверняка ещё кто-нибудь Rust помянет. Я, конечно, их комменты не раскрою, но что они точно будут — это к бабке не ходи.

parent From Anonymous (unverified) Sun Oct 20 10:18:18 2024 UTC pencil

Re: Re: А на чём-нибудь можно писать ООП программы, кроме C++?

Ну справедливости ради не набегут. Go и Rust процедурные языки, но да, Java упомянуть могут.

Если бы C++ был нормальным языком, я бы не пытался найти ему замену :-)

С каждым годом ISO всё больше и больше уродует язык, при этом почему-то кто-то это считает "развитием". Если бы они хотели развивать язык, они бы делали ИНСТРУМЕНТЫ для решения проблем в языке, а не писали: "Вот это вот может такой-то класс в STL" (само собой класс написать невозможно средствами языка, класс должен быть реализован в кишках компилятора).

В C++ есть более фундаментальные проблемы, но даже если работать с тем что есть, ISO творит какой-то бред.

parent From Andrey V. Stolyarov profile Sun Oct 20 11:04:04 2024 UTC pencil

userpic

Re: А на чём-нибудь можно писать ООП программы, кроме C++?

Вы вообще сайтом не ошиблись?

Ну, начать с того, что вот это ваше

> само собой класс написать невозможно средствами языка, класс должен быть реализован в кишках компилятора

не имеет ничего общего с реальностью даже в том уёбище, которое родили международные террористы, по недоразумению именуемые стандартизационным комитетом.

Но я как бы обычно предполагаю, что на мой сайт не ходят люди, полагающие возможным использование того ни на что не годного бастарда, который из C++ сделали стандартизаторы и который, разумеется, ничего общего с "языком C++" не имеет. Говоря, что от полной безысходности приходится писать на C++, потому что всё остальное ещё хуже, я под "C++" подразумеваю тот язык, который существовал до принятия самого первого "стандарта" 1998 года. Вообще всё это давно описано, см. сюда: http://thalassa.croco.net/doc/cpp_subset.html

parent From Anonymous (unverified) Sun Oct 20 11:20:09 2024 UTC pencil

Re: Re: А на чём-нибудь можно писать ООП программы, кроме C++?

> не имеет ничего общего с реальностью даже в том уёбище, которое родили международные террористы, по недоразумению именуемые стандартизационным комитетом.

Я вас расстрою, Андрей Викторович, имеет. Например std::initializer_list.

> Но я как бы обычно предполагаю, что на мой сайт не ходят люди, полагающие возможным использование того ни на что не годного бастарда, который из C++ сделали стандартизаторы и который, разумеется, ничего общего с "языком C++" не имеет. Говоря, что от полной безысходности приходится писать на C++, потому что всё остальное ещё хуже, я под "C++" подразумеваю тот язык, который существовал до принятия самого первого "стандарта" 1998 года. Вообще всё это давно описано, см. сюда: http://thalassa.croco.net/doc/cpp_subset.html

Свои проекты я пишу на классических плюсах. В "новомодном" говне от ISO к сожалению приходится ковыряться по работе. Сам я никогда не буду использовать STL, не говоря о C++11 и прочем в своих проектах.

parent From Andrey V. Stolyarov profile Sun Oct 20 11:42:49 2024 UTC pencil

userpic

Re: Re: Re: А на чём-нибудь можно писать ООП программы, кроме C++?

> Я вас расстрою

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

С другой стороны, когда-то давно я был уверен, что закрепление в стандарте чистого Си такого момента, что sizeof якобы возвращает значение типа size_t, разрушило границу между библиотекой и языком. В действительности это не так, просто компилятор реализует sizeof возвращающей какой-то целочисленный тип, а хидеры "стандартной" библиотеки, зная, какой конкретно целочисленный тип закреплён за sizeof в данном конкретном компиляторе, вводят соответствующий typedef. Ну то есть компилятор не обязан приписывать идентификатору size_t какой-то свой смысл, это за него делают заголовочники.

Насколько я понимаю, с initializer_list (и, например, с функторами, которые получаются из лямбд — если не ошибаюсь, std::function) там ситуация до какой-то степени аналогичная, хотя компилятор, увы, таки "знает" конкретные имена классов. До какой степени там реально библиотека и компилятор в этих местах друг на дружку повязаны — я подробно не разбирался, так что могу ошибаться.

Несомненно, всё это не делает C++11 (как, впрочем, и C++98) чем-то отличным от ни на что не годного бастарда, не подлежащего применению, а комитетчиков — кем-то отличным от особо опасных международных террористов.

parent From Anonymous (unverified) Wed Oct 23 12:39:51 2024 UTC pencil

C++26

наткнулся недавно на C++26 Draft, решил ради любопытства пробежать глазами и увидел вот такой вот такой вот ужас

[:expand(std::meta::enumerators_of(^^E)):] >> [&]<auto e>{
  if (value == [:e:]) {
    result = std::meta::name_of(e);
  }
};
constexpr auto sizes = []<template<class...> class L, class... T>(L<T...>) {
  return std::array<std::size_t, sizeof...(T)>{{ sizeof(T)... }};
}(types{});

Удивительно как этот дурдом на колесах продолжает ехать.

parent From Andrey V. Stolyarov profile Wed Oct 23 17:15:14 2024 UTC pencil

userpic

Re: C++26

Я прекратил удивляться чему бы то ни было, когда появился C++11.

parent From Anon (unverified) Thu Oct 24 05:14:29 2024 UTC pencil

Re: C++26

Куда там 26.. Они в 20 такого пи****ца надобавляли, что даже по сравнению с С++17 это совершенно другой язык. Самое кошмарное, что на хедхантере подавляющее большинство вакансий требуют уже 20 стандарт, даже не 11 или 14. При этом позиции вроде весьма интересные по задачам, ну то есть глупые люди там работать не могут. Неужели так велика роль "стандарта"? Неужели не очевидна не только вредоносность стандартов как таковых, но даже если принять их допустимыми: чуваки, у вас каждые 3 года язык кординально изменяется, вы действительно считаете это нормальным?

parent From Andrey V. Stolyarov profile Thu Oct 24 05:26:49 2024 UTC pencil

userpic

Re: Re: C++26

> ну то есть глупые люди там работать не могут

Абсолютно безосновательное предположение, увы.

parent From Artem (unverified) Thu Oct 24 21:38:32 2024 UTC pencil

Re: Re: C++26

> чуваки, у вас каждые 3 года язык кординально изменяется

Эти чуваки в курсе. У них каждые полгода вся индустрия ПО кардинально меняется, так, что хоть бери и увольняй всех и набирай по-новой. А вы про язык раз в 3 года...

По факту, конечно, кардинальное изменение индустрии это выход нового (точно такого же, как все предыдущие, но другого) фреймворка, к которому никто не успеет даже прочесть документацию до того, чем произойдёт очередной "тектонический сдвиг",

parent From Anonymous (unverified) (unverified) Sat Oct 26 14:44:24 2024 UTC pencil

Re: C++26

Это вы ещё на C++34 не смотрели

From Дмитрий (unverified) Sat Oct 19 13:20:41 2024 UTC pencil

Добавление информации в главу про страничную организацию виртуальной памяти

Андрей Викторович, здравствуйте!

Когда я читал главу 8.3.5 у меня возник вопрос, откуда MMU узнает адрес Page Directory. Старший товарищ мне подсказал, что этот адрес является физическим и хранится в служебном регистре cr3. Подскажите пожалуйста, почему вы решили не уточнить этот момент в книге?

parent From Andrey V. Stolyarov profile Sat Oct 19 13:36:46 2024 UTC pencil

userpic

Re: Добавление информации в главу про страничную организацию виртуальной памяти

Например, потому что часть 8 не имеет никакого отношения к архитектуре x86. Существуют даже такие архитектуры, где процессор вообще не знает ничего ни про расположение страничных таблиц, ни про их организацию, а каждый промах мимо TLB приводит к внутреннему прерыванию, обработчик которого как раз и заносит в TLB нужную информацию.

Справочные сведения следует искать в справочниках, каковым моя книга не является.

From Anonymous (unverified) Wed Oct 16 13:56:28 2024 UTC pencil

Допустимая длина подпрограммы

В книге Оформление программного кода вы пишете, что длина подпрограмм даже со switch не должна превышать 50-60 строк, но как тогда делать switch по всем символам ASCII, или по статус кодам http, или опкодам x86? Их же сотни.

parent From Andrey V. Stolyarov profile Wed Oct 16 14:16:09 2024 UTC pencil

userpic

Re: Допустимая длина подпрограммы

Статус-кодов HTTP, положим, даже близко не сотни, учите матчасть. По символам ASCII (если вот прямо всем) и тем более по опкодам делать switch — это крайне херовая идея, всё равно ведь обработку придётся в отдельные функции выносить — ну так и сделайте массив (или какую-то другую структуру данных, да хоть дерево) указателей на функции.

Вообще если приходят в голову идеи свичей на сотни вариантов, тут стоит задуматься, тем ли вы вообще в жизни занимаетесь.

parent From ex (unverified) Thu Oct 17 12:39:54 2024 UTC pencil

Re: Допустимая длина подпрограммы

Vmain() Типичная студенческая switch-case портянка (обработчик команд visual (open/vi) режима ex)

ex_vmain.c Не на сотни вариантов, но на сотни сырых строк.

:se nu
:/^Vmain
    33  Vmain(ic)
:/^{
    35  {
:/^}
   808  }
:g/^[a-z]*:/p
    47  vnline:
    52  vmark:
    76  vagain:
   126  home:
   132  upline:
   137  vup:
   170  gogo:
   223  vdown:
   363  yok:
   642  putem:
   666  fonfon:
   683  vundoit:
   723  back:
   732  oops:
   756  xtra:
   786  it:
:g/case/p
    83                          case CTRL(z):   /* sync */
    90                          case CTRL(s):
    94                          case ESCAPE:    /* cancel command */
    97                          case '.':       /* repeat change */
   109                          case 'N':
   113                          case 'n':       /* next line matching */
   116                          case 'H':       /* home cursor */
   128                          case '-':       /* back up (to first whi
te) */
   131                          case 'k':       /* up line same column *
/
   152                          case '\'':
   176                          case 'G':
   186                          case 'K':
   197                          case 'L':
   205                          case CTRL(d):   /* scroll half-screen */
   213                          case '+':       /* next line, first non-
white */
   214                          case CR:
   217                          case 'j':       /* down line respecting
position */
   218                          case NL:
   261                          case 'A':
   270                          case 'I':
   279                          case 'C':
   293                          case 'z':       /* context */
   294                          case 'v':
   328                                          case '.':
   329                                          case '-':
   331                                          case '^':
   337                                          case '+':
   344                                          case CR:
   345                                          case NL:
   356                          case 'Y':
   371                          case '\\':      /* delete line */
   419                          case 'J':       /* join lines */
   447                          case '<':
   448                          case '>':
   468                          case 'S':       /* replace lines */
   508                          case 'O':       /* open new lines above
*/
   509                          case 'o':       /* open new lines below
*/
   546                          case 'a':       /* append */
   554                          case 'R':
   555                          case 'i':       /* insert */
   566                          case DELETE:
   570                          case FS:        /* quit gets you out lik
e a q */
   573                          case 'q':       /* quit */
   578                          case 'U':
   588                          case 'P':
   589                          case 'p':
   618                          case 'u':       /* undo */
   621                                  case VMANY:
   665                                  case VNONE:
   669                                  case VCHNG:
   678                          case 'U':
   689                          case '/':
   690                          case '?':
   760                                                  case 0:
   763                                                  case '^':
   764                                                  case '-':
   765                                                  case '+':
   766                                                  case '.':

parent From Andrey V. Stolyarov profile Thu Oct 17 13:03:11 2024 UTC pencil

userpic

Re: Re: Допустимая длина подпрограммы

Тут длина функции — отнюдь не самое страшное, вы посмотрите, сколько там меток, на которые делается goto. Абсолютно нечитаемый и неразбираемый код, snake wedding как он есть.

Но...

> * Bill Joy UCB September 1977

... но этому коду скоро полвека. Конечно, статья Дейкстры появилась раньше (на девять, что ли, лет), но Интернета и всякого гугла тогда не было, компьютеры были большие, программы маленькие, словом "программист" обозначалась профессия скорее экзотическая, так что ожидать от каждого программиста, что он эту статью не то что прочитал, но хотя бы слышал о её существовании, в те времена не приходилось никак.

parent From ex (unverified) Sun Oct 20 13:51:33 2024 UTC pencil

Re: Re: Re: Допустимая длина подпрограммы

* Bill Joy UCB September 1977
... но этому коду скоро полвека.

... Прошло 30 лет. Bill Joy покинул Sun Microsystems. Но никто так и не решился убрать сакральные метки, который наставил будущий магистр: OpenSolaris

/*
 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
/*	  All Rights Reserved  	*/

/* Copyright (c) 1981 Regents of the University of California */
#define	forbid(a)	{ if (a) goto fonfon; }
	/*
		 * U		restore current line to initial state.
		 */
		case 'U':
			vUndo();
			continue;

fonfon:
			(void) beep();
			vmacp = 0;
			inopen = 1;	/* might have been -1 */
			continue;
		}

		/*
		 * Rest of commands are decoded by the operate
		 * routine.
		 */
		operate(c, cnt);

parent From Andrey V. Stolyarov profile Sun Oct 20 14:11:24 2024 UTC pencil

userpic

Re: Допустимая длина подпрограммы

вот прямо так и просится: и чО?

From eax (unverified) Sat Oct 12 01:00:31 2024 UTC pencil

Насколько все плохо

Андрей Викторович, хотел бы поделиться с вами насколько все реально плохо для начинающих программистов. (извиняюсь за лонгрид)
В 2018 году я задумался о смене профессии и решил попробовать себя в программировании, так как был большой интерес к этому. Посмотрел кучу статей и видосов на ютубе (в основном англоязычных) о том какое направление лучше выбрать, какой язык и т.п.. Сейчас с ужасом вспоминаю, что 99% советов - идти в веб-разработку (или мобильную). Там дескать очень много вакансий, можно быстро выучиться, не нужно знать математику, а языки c и c++ умирают и никому не нужны. В общем выбрал я для себя мобильную разработку под IOS (у меня как раз макбук был с работы).

Взял официальную книгу-туториал от Apple. Начал очень активно изучать, но по ощущениям явно что-то не то было (обучение в стиле: делайте так, а почему так - мы не скажем). Понял, что надо с низов изучать, что бы все было понятно. Начал искать книги, курсы и т.п., и очень многие советовали Гарвардский курс: "CS50: Introduction to Computer Science". Я подумал, что это то, что нужно, плюс это же Гарвард, значит материал точно будет качественный)
Вот лекции курса: 1.Scratch 2.C 3.Arrays 4.Algorithms 5.Memory 6.Data Structures 7.Python 8.SQL 9.HTML,CSS,JavaScript 10.Flask
И это считают "strong foundation in computer science"! Серьезно, можете почитать отзывы об этом курсе - все там кипятком ссутся, мол поняли как компьютер работает на самом деле. (а там по факту только про память что-то дельное рассказывают и то только на процентов 5% от того, что есть в вашем трехтомнике).
Возвращаясь к моему опыту, я дисциплинировано лекции смотрел, конспектировал, делал задачи, которые там давали, даже сертификат смогу найти, наверное, если зайти на платформу их. Веб программирование меня не интересовало, поэтому я ушел перед питоном и html,css,javaskript, в иллюзии, что я тоже понял, как оказывается все работает под капотом (а понял я по факту только как память работает) и готов идти дальше.

Спустя месяца 3-4 я нашел первую работу разработчиком ios-приложений, в команде был я и один сеньор. Сказали мне изучать реактивную библиотеку RxSwift (всего лишь одна из библиотек), пока я ее изучал и читал код на проекте складывалось ощущение, что попал я в какой-то отстой. Потом мне сказали, чтобы я часть экранов делал не кодом, а через сториборды (это по почти то же самое, как если бы через photoshop). В общем через неделю я оттуда ушел и понял, что программирование это походу не мое и уж тем более делать формочки и ui я не хочу. Вернулся на старую работу и программированием занимался по фану для себя и даже написал пару программ, которые упрощали мне мою же работу. О работе программистом не задумывался вообще.

И вот спустя почти 3 года решил я почистить директорию с книгами, которые я накачал пока изучал "программирование" и был там ваш трехтомник, который я ни разу не открывал. Подумал, прочитаю введение и удалю. Когда я прочитал предисловие - во мне что-то кликнуло, я понял, что это именно то, что я когда-то искал и не нашел. С диким интересам начал читать и вот уже почти месяца 4 изучаю с огромным удовольствием по 5+ часов в день. В вашей книге реальные знания, которые никогда не утратят актуальности, в отличие от всех тех фейковых знаний, которыми кишит сейчас "обучающий контент" по программированию.
К чему я это все? Да абсолютное большинство никогда не узнает даже про вашу книгу - они будут следовать советам кого-то веб-программиста из гугла и так ничего и не будут знать о реальном программировании (у меня есть знакомый, который работая 5 лет на php, не знает как бабл сорт сделать). По факту, чтобы отыскать ваш трехтомник - это должно пиз**ц как повести, и это еще если ты знаешь русский, так как аналогичной книги нет во всем мире! То есть ситуация значительно хуже, чем если бы вообще не было никаких гайдов и туториалов, потому как тебе, чтобы найти реальные знаний, приходится пробираться через кучи дерьма, которые тебе подсовывают "эксперты" и советчики.
Короче, спасибо вам огромное за ваш монументальный труд!

parent From Andrey V. Stolyarov profile Sat Oct 12 10:06:30 2024 UTC pencil

userpic

Re: Насколько все плохо

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

P.S. ещё раз напишете "что бы" через пробел там, где это очевидно одно слово — не раскрою коммент, что бы в нём ни содержалось (и да, вот тут пробел нужен, а проверить очень просто: если от убирания "бы" фраза не превращается в тарабарщину и не меняет смысл на противоположный, то это частица, а если превращается — то это просто второй слог слова "чтобы").

parent From Parthen profile Sun Oct 13 18:44:20 2024 UTC pencil

userpic

Re: Re: Насколько все плохо

>программистский опыт не передаётся следующему поколению вообще

Через века будет тайный программисткий орден, который будет передавать знания о том, как реально все устроено :)

parent From Andrey V. Stolyarov profile Mon Oct 14 08:02:37 2024 UTC pencil

userpic

Re: Насколько все плохо

Почему через века? Такие ордена уже есть, и вовсе не тайные. Например, сообщества разработчиков ядер. Не знаю как насчёт Linux'а, куда Торвальдс растеров пропустил, но BSDшники вроде как-то ещё держатся.

Впрочем, можно далеко не ходить, аудитория этого сайта тоже представляет собой именно такой вот "орден".

parent From Parthen profile Mon Oct 14 11:41:55 2024 UTC pencil

userpic

Re: Re: Насколько все плохо

>но BSDшники вроде как-то ещё держатся

Такое чувство, что они как неуловимый Джон: не продаются, потому что еще никто не предлагал.

Ну, а если предложат...

parent From Andrey V. Stolyarov profile Mon Oct 14 11:59:26 2024 UTC pencil

userpic

Re: Насколько все плохо

Что-то гложут меня определённые сомнения, учитывая, например, происхождение ядра макоси.

Впрочем, продаются-то все, это нормально. Только всеобщая дебилизация в сфере IT обусловлена отнюдь не тем, что всех внезапно кто-то купил.

parent From Artem (unverified) Mon Oct 14 12:12:01 2024 UTC pencil

Re: Re: Re: Насколько все плохо

Старинный холивар между сторонниками лицензий GPL и BSD сводится каждый раз к одному и тому же: к рассуждениям на тему, является BSD'шное дозволение закрывать производные работы проявлением свободы или же её попранием. Но то, что всё, опубликованное под лицензией BSD, создаётся с целью кому-то продать и сам код, и умение с ним работать, это известный факт, и в большинстве случаев оно таки успешно продаётся. Кроме ядра MacOS, можно вспомнить встроенную ОС игровой приставки Playstation, начиная, вроде бы, со 2 её поколения и до наших дней.

parent From Максим Клочков profile Mon Oct 14 20:08:58 2024 UTC pencil

Re: Насколько все плохо

Вся линейка железок Juniper - это BSD. Впрочем, наврал - Contrail это Linux, но это и не железки, это софтовое решение.

parent From Ilya profile Tue Oct 15 09:48:34 2024 UTC pencil

Re: Re: Насколько все плохо

> но BSDшники вроде как-то ещё держатся

А точно держатся? В FreeBSD уже хотят раст пропихнуть. Радует только одно, главный мэйнтенер Rust-For-Linux ушел из проекта, устав от безуспешных попыток убедить остальных мэйнтенеров ядра учить раст (которые сравнили его с религией), так что надежда все же есть. А мораль то на самом деле проста, пока существуют эти Foundations с их спонсорами ввиде корпораций, ничего кроме долгосрочной деградации в проекте быть не может.

parent From Andrey V. Stolyarov profile Tue Oct 15 10:04:50 2024 UTC pencil

userpic

Re: Насколько все плохо

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

parent From Artem (unverified) Tue Oct 15 13:49:48 2024 UTC pencil

Re: Re: Насколько все плохо

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

С римской империей всё тоже куда сложнее -- западная трещала по всем швам за столетия до гибели, а восточная благополучно простояла всё средневековье. Да и не только и не столько христиане стали причиной средневекового отката прогресса, наложился климатический пессимум в Европе, всем тупо стало не до развития. А спасавшие ранее римлян от аналогичных катаклизмов торговые связи с югом и востоком были в какой-то момент отрезаны мусульманскими завоеваниями. В восточной империи, опять же, никакой откат прогресса вообще не происходил, хоть она и была христианской, до тех самых пор, пока она не загнулась под ударами поочерёдно то славян, то арабов, то крестоносцев, то турок.

parent From Parthen profile Tue Oct 15 19:02:05 2024 UTC pencil

userpic

Re: Re: Re: Насколько все плохо

Ну кстати, вы вроде шарите за историю (я - нет).

http://infoviolence.org/ytid.cgi/ksAqr4lLA_Y у вот этого товарища есть многочасовой разбор почему ж Гитлер и Ко все-таки социалисты.

И в ходе этого разбора, на 13:25 идет объяснение, мол, чем бы христианство не было, оно спровоцировало подъем индивидуализма (мол, раньше ты принадлежал семье, а теперь сам себе собственный).

Оно реально так или какие-то другие причины были?

parent From Artem (unverified) Wed Oct 16 03:24:08 2024 UTC pencil

Re: Re: Re: Re: Насколько все плохо

Коротко: да нихрена оно не так.

Длинно: Христианство чем-то цельным было разве что во времена, когда сам Христос ещё ходил своими ногами по грешной земле. Всё остальное время христианством называли неоднородную массу непохожих друг на друга культов, не согласных друг с другом ни в чём, кроме имени того, чьё слово они извращают. С индивидуализмом, однако, хоть как-то связаны лишь несколько из этих культов, возникших очень даже кучно в одном регионе -- западной Европе, и объединённых названием <<протестантизм>>. Ничего подобного в других регионах распространения христианства не возникло, индивидуализм туда был импортирован, и в большинстве случаев не прижился, либо прижился как порицаемая модель поведения. При этом в самой Европе христианство было принято далеко не в числе первых, это видно хотя бы по гигантской территории, попавшей под управление римского патриарха, при достатчно скромных у всех остальных -- это характерно для позднего и быстрого расширения в одном направлении. Причина возникновения индивидуализма лежит нихрена не в сборнике толкований христианского писания, а попросту в том, что в конкретном месте в конкретное время индивидуалисты лучше выживали и сытнее жрали, а остальные либо сменили мировоззрение вместе с религией, либо просто сдохли, сперва от неспособности конкурировать, а потом, кто покрепче -- в огне религиозных войн. Именно в такой последовательности, не наоборот.

Несомненно, узреть в евангелиях оду индивидуализму можно, если знать, куда смотреть, но знают это только протестанты: они специально искали.

Напоследок замечу, что человеческие учения, вроде конфуцианства или марксизма-ленинизма, обнаруживают куда лучшую способность перекраивать общества, нежели учения о сверхъестественном, вроде христианства. С принятием христианства менялись для населения только имена богов, да форма капища, реально что-то значащие последствия были сугубо политическими (например, православие, вернее, православнутость, стала одной из причин упадка Руси под властью Орды и после неё: Византия отделена землями врагов и вообще подыхает, а Рим, видите ли, символ веры неправильно читает, поэтому с ним даже торговать ни-ни, не говоря уже про учиться у них геометрии).

parent From Anonymous (unverified) Tue Oct 15 11:27:48 2024 UTC pencil

Re: Re: Re: Насколько все плохо

Он ещё и от Microsoft оказывается. Я бы на месте Линуса в проект никого из мелкомягких за сто километров не подпускал после случая со Стивеном Элопом и Нокией. И кстати наверное это ещё и не первый такой случай, просто я про него хорошо знаю потому что сам Nokia N9 хотел прикупить.

parent From Artem (unverified) Mon Oct 14 10:58:58 2024 UTC pencil

Re: Re: Re: Насколько все плохо

> орден

Орден это про войну и проповеди, в отдельных случаях про госуправление. Полузакрытые объединения ремесленников назывались цехами или гильдиями. Но это так, чтобы термины не смешивались. А то любит у нас народ сначала бездумно употреблять термины, а потом, как дойдёт до области оных терминов обращения, путать всё со всем.

Что-то мне подсказывает, что через века будет не орден и не гильдия, а нечто наподобие Культа Механикус из вархаммера.

parent From Andrey V. Stolyarov profile Mon Oct 14 11:37:49 2024 UTC pencil

userpic

Re: Насколько все плохо

Про орден я согласен, только цех и гильдия — это тоже уж точно не про сохранение знания, это скорее про "не пущать".

Тут скорее подошло бы что-то вроде платоновской академии, но слово "академия" нынче затаскали и засалили до невозможности, плюс к тому появлению любой сущности со словом "академия" в названии неизбежно триггерит мысль вроде "опять какая-то очередная гопота решила обозвать друг дружку академиками".

Наверное, появится какое-то ещё слово.

parent From Artem (unverified) Mon Oct 14 12:24:12 2024 UTC pencil

Re: Re: Насколько все плохо

Ну, в первые несколько столетий цеха таки служили именно сохранению знаний (когда почти никто не умеет читать и писать, по другому их не сохранишь и не передашь), и даже стратегия "не пущать" была жёсткой ровно настолько, чтобы вчера взявший в руки инструмент не мог сам себя назвать мастером, а обязан был заслужить признание от уже известных мастеров. Впоследствии, однако, стали именно тем самым.

parent From Anonymous (unverified) Sat Oct 12 13:39:31 2024 UTC pencil

Re: Насколько все плохо

Не знаю как сейчас, а я заинтересовался самым низким уровнем программирования сам, когда книг ещё не существовало. Изучал fasm, структуру MBR и прерывания BIOS и никакие курсы веб-макак не сбили меня с пути. Правда BIOS больше нет, теперь там UEFI программирование под который, я так понимаю, не сильно отличается от программирования под какую-то ОС.

parent From Andrey V. Stolyarov profile Sat Oct 12 15:59:54 2024 UTC pencil

userpic

Re: Re: Насколько все плохо

И что? Да, это возможно. Разумеется, мои книги не являются единственным в мире источником информации. Можете хотя бы самому себе объяснить, как это отменяет хоть один из тезисов исходного коммента?

parent From Anonymous (unverified) Sat Oct 12 18:20:57 2024 UTC pencil

Re: Re: Re: Насколько все плохо

Я хотел сказать, что не всё безнадёжно и кому надо, тот найдёт.

На английском есть fasm manual, ralf brown interrupt list например.

Хакеров, способных работать с железом на самом низком уровне есть. Кто-то же пишет драйвера, портирует линукс на новые платформы и так далее.

Хотя не отрицаю, что прочитать один трёхтомник гораздо удобнее, чем искать информацию по десяткам разных ресурсов.

parent From Andrey V. Stolyarov profile Sat Oct 12 20:23:14 2024 UTC pencil

userpic

Re: Насколько все плохо

> кому надо, тот найдёт

Это довольно очевидно. Когда я учился программировать, не было не только моей книжки (или чего-то на неё похожего), но и интернета, и поисковиков. Ничего, как-то справился. Проблема в том, что справляются не все.

parent From Максим Клочков profile Mon Oct 14 20:41:23 2024 UTC pencil

Re: Насколько все плохо

> Проблема в том, что справляются не все.

Возможно, не там смотрим. По нынешним временам найти людей, которые своим умом дошли до понимания, "как что работает", проще всего среди схемотехников и ещё тех, кто занимается микроконтроллерами. Их сама жизнь заставляет периодически "спускаться с радуги" на уровень двоичной логики, побитовых операций, регистров, ячеек памяти, стека ограниченной глубины, и т. п.

А те, кого нынче учат в институтах/на курсах "на программистов", получают почти сразу в руки высокоуровневый инструмент типа питона, и дальше судьба их - всю профессиональную жизнь перекладывать данные из json в sql и обратно. Работа по интеллектуальности близка к работе на стройке - главное научиться делать аккуратно и не портить материал. И оплачивается примерно так же.

Есть ещё "датасайентисты" (не путать со "специалистами по ИИ") - среди них много умных парней и девчонок, которые иногда даже понимают, что делают. Но их программистами считать неправильно. Это - математики, с навыками написания кода на каком-либо языке. Они обычно не пишут отчуждаемый код, у них другие задачи. Тем не менее, их умение пользоваться собственным мозгом - IMHO повыше, чем у среднестатистического программиста в индустрии.

parent From Andrey V. Stolyarov profile Mon Oct 14 21:29:03 2024 UTC pencil

userpic

Re: Насколько все плохо

Что-то меня и тут сомнения гложуть.

Начать с того, что лично я микроконтроллеры впервые потрогал в 2008 году, т.е. в возрасте 33 лет, будучи уже и состоявшимся программистом, и (бывшим) инет-админом, и к.ф.-м.н.'ом (правда, по философии степени ещё не имел, но это к делу не относится). Ну то есть учился я уж точно не на этом. Да я в них толком и не умею, точнее программировать AVR я вроде научился, но и всё, схемотехнику я так и не осилил.

Продолжить тем, что вот уж чего я никогда не встречал — это чтобы программиста изготовили в ВУЗе. Пнуть в нужном направлении, или там слегка подрулить, чтобы на выходе программист получился чуть более качественным — ну, такое бывает, да, но вот чтобы прямо взять и из не-программиста сделать программиста — я такого не только не видел, но и не могу себе представить. Не стану, впрочем, категорически утверждать, что не бывает. Просто я не видел.

Ещё дальше продолжить тем, что, увы, портить человеческий материал (пардон за цинизм) в ВУЗах умеют в среднем намного лучше и эффективнее, нежели таковой обрабатывать с пользой. Дурное дело нехитрое, увы. К тому же весь "современный" инструментарий — питон, го(вно), уЭб в широком смысле слова, а равно и всякая нечисть вроде раста, словом всё, что "стильно, модно, молодёжно" — такой порче весьма способствует.

Ну и последнее: датасатанисты, разумеется, не программисты, я уж даже и не знаю, кто их таковыми считает. Но вот прежде чем сравнивать их умение пользоваться мозгом с таковым у "среднестатистических" программистов, нужно сначала понять, включаем ли мы в выборку для определения этого "среднестатистического" всевозможных вебщиков, гошников, джавистов, котлинщиков, электронщиков (не тех, которые схемотехникой занимаются, а тех, которые на электроне "программируют"), один-эсников и т.п. Если включаем, то, конечно, у датасатанистов с мозгами получше, но это только потому, что из канавы падать затруднительно (хотя при определённой изобретательности возможно).

parent From Максим Клочков profile Tue Oct 15 16:22:43 2024 UTC pencil

Re: Насколько все плохо

> Продолжить тем, что вот уж чего я никогда не встречал — это чтобы программиста изготовили в ВУЗе.

Бери шире и глубже - я вот, например, не видел, чтобы любого специалиста "изготовили" где бы то ни было. Приобретение профессионализма в любой области - это долгий путь через сомнения, муки и (виртуальное) биение головой об стену от осознания собственного ничтожества. Мой опыт показывает, что пройти этот путь будущий специалист может только сам, задача вуза здесь в основном создать какую-никакую "питательную среду".

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

> Ещё дальше продолжить тем, что, увы, портить человеческий материал (пардон за цинизм) в ВУЗах умеют в среднем намного лучше и эффективнее, нежели таковой обрабатывать с пользой.

Где-то уже читал такое, статье около 20 лет, и она стала ещё актуальнее. Т. к. катастрофа (или катастрофы) явно уже где-то рядом.

Вот статья: Пятое правило арифметики

Процитирую, пожалуй, фрагмент. "...вся система образования должна быть настроена на отбор, выращивание и дрессировку именно хороших исполнителей... Что же касается творческих личностей, то о них особенно беспокоиться не следует: тот, кто действительно талантлив, так или иначе все равно пробьется... Мне лично подобная точка зрения на развитое современное общество крайне несимпатична, но это отнюдь не значит, что она ошибочна. Мне кажется, что в подобной системе никакие таланты никуда не пробьются (просто потому, что их некому будет учить), и тогда люди, точнее, "роботы-исполнители" очень быстро разучатся строить "Великие пирамиды". Но, может, я и ошибаюсь..."

parent From Andrey V. Stolyarov profile Tue Oct 15 17:44:11 2024 UTC pencil

userpic

Re: Re: Насколько все плохо

> я вот, например, не видел, чтобы любого специалиста "изготовили" где бы то ни было

Ну, учёных-то и прочих "академиков" в университетах делают худо-бедно. Конечно, с гигантской отбраковкой (вот у нас на курсе 340 человек было, ну хорошо если десятка полтора потом остались в академической среде), но хотя бы так.

Но "это другое" (tm). Ремесло постигается не в учебном заведении, а исключительно в мастерской, но если науку и преподавание рассматривать как ремесло, то для этого ремесла роль мастерской как раз и исполняет университет.

Кстати, спасибо за ссылку, я эту статью недавно искал и не нашёл.

parent From Artem (unverified) Tue Oct 15 16:51:49 2024 UTC pencil

Re: Re: Насколько все плохо

> среди схемотехников

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

Ну вот на нашем направлении, кстати, в руки питон дают только на 3 курсе, а первые два идут плюсы. Чёт, знаете, хрен редьки не слаще. И схемотехника есть, прямо сейчас половина потока долбится в биполярные транзисторы (другая половина забила) и пытается из них собрать логический элемент в симуляторе. А толку?

parent From Andrey V. Stolyarov profile Tue Oct 15 17:38:58 2024 UTC pencil

userpic

Re: Re: Re: Насколько все плохо

> Из схемотехника программист -- как из сапога чайник

Кстати, факт. Сколько я видел кода, написанного электронщиками — каждый раз хочется развидеть.

parent From nip (unverified) Wed Oct 16 09:20:08 2024 UTC pencil

Re: Re: Re: Re: Насколько все плохо

Если позволите, про "рода" программистов любопытная статья на английском https://josephg.com/blog/3-tribes/

parent From Andrey V. Stolyarov profile Wed Oct 16 09:44:47 2024 UTC pencil

userpic

Re: Насколько все плохо

Не вижу в этой статье ничего любопытного. Я не знаю, вебщик ли её автор, но риторика статьи именно такова.

В целом вредители — они и есть вредители. А мразь и есть мразь.

P.S. Тьфу, блджад, он ещё и Пайка обозвал автором Go. Я это даже не сразу заметил.

parent From Artem (unverified) Sat Oct 12 17:13:52 2024 UTC pencil

Re: Насколько все плохо

> абсолютное большинство никогда не узнает даже про вашу книгу

А те, кто узнает, в большинстве своём не обратят внимания. А те, кто обратят, в большинстве своём дочитают до места, где говорится о необходимости поставить *nix, и отложат её до лучших времён, то есть, навсегда, вернее, на никогда.

Спрос ведь рождает предложение, не наоборот. Огромное предложение "царских" путей, за которыми и остальных не видно, происходит из огромного на них спроса.

From Rand_dude (unverified) Sun Oct 6 16:21:41 2024 UTC pencil

Вопрос по ассемблерной части

Как долго следует останавливаться на ассемблерной части? Я имею в виду именно в контексте практики, когда теория уже прочитана и в какой-то мере усвоена. Видел, что вы писали, что на паскале следует около года сидеть для новичков. А что скажете на счет ассембли? Следует ли писать проекты до тех пор, пока не начнешь думать на этом языке или достаточно понять главные концепты?

parent From Parthen profile Sun Oct 6 16:47:03 2024 UTC pencil

userpic

Re: Вопрос по ассемблерной части

Да и хорошо бы в одном месте (FAQ, например) собрать информацию когда и после чего можно переходить к следующему тому.

Информация где-то на сайте была, но она разрознена и найти ее сложно

parent From Andrey V. Stolyarov profile Sun Oct 6 16:50:22 2024 UTC pencil

userpic

Re: Вопрос по ассемблерной части

Это не так просто, как может показаться. Общаясь с учеником, я всегда могу сказать, можно уже дальше двигаться или нет, но писать инструкцию для самостоятельного принятия такого решения, пожалуй, не возьмусь.

parent From Parthen profile Sun Oct 6 16:58:08 2024 UTC pencil

userpic

Re: Re: Вопрос по ассемблерной части

А по времени (примерно)? Мол, на Паскаль обычно уходит полгода, на Си год и вот в таком духе.

Чайка в интервью говорил вообще про полгода на всю книгу, я так понимаю

parent From Andrey V. Stolyarov profile Sun Oct 6 17:08:08 2024 UTC pencil

userpic

Re: Вопрос по ассемблерной части

Полгода на всю книгу — это, конечно, ахинея. Остальное зависит от начального уровня. Если полностью с нуля — то на постижение основ (т.е. паскалевскую часть) уйдёт примерно год, возможно чуть меньше. Теоретически могу себе представить полгода, но это разве что если мотивация на грани фанатизма и заниматься только этим. На ассемблер нужно два-три месяца (опять же, всё индивидуально), на Си как таковой — три-четыре месяца, на весь второй том — зависит от выбранной глубины погружения, я бы сказал, что от полугода до года, и лучше дольше — например, написать на чистом Си какую-нибудь серьёзную сетевую приблуду.

Сколько нужно на третий том, сказать невозможно в принципе. От полугода до всей жизни.

parent From Anonymous (unverified) Mon Oct 7 12:16:17 2024 UTC pencil

Re: Re: Вопрос по ассемблерной части

А если более типичная ситуации, вроде того что в школе уже проходил паскаль, без особых проблем решал задачки уровня сортировки пузырьком, но потом несколько лет ничем этим не пользовался и всё забыл?

parent From Andrey V. Stolyarov profile Mon Oct 7 14:06:13 2024 UTC pencil

userpic

Re: Вопрос по ассемблерной части

Я ни разу не видел, чтобы в школе, даже продвинутой, всерьёз изучали указатели, работали со списками и деревьями. Более того, я даже в ВУЗах не видел, чтобы при изучении Паскаля, даже если при этом указатели и списки изучаются, фигурировала операция взятия адреса и использовалась адекватная терминология. И уж чего точно не происходит в школах — так это жёсткого акцентирования внимания на различии между процедурами и функциями и вредоносности побочных эффектов.

Так что в большинстве случаев можете забыть, что вам там в школе про Паскаль рассказывали, и считать, что ничего не было.

parent From Василий Ильич (unverified) Sun Oct 6 18:13:24 2024 UTC pencil

Опыт тормоза

> Паскаль обычно уходит полгода

Я лично на Паскале два года примерно провёл (много времени на самом деле ушло на освоение Linux. Сколько времени я угрохал, чтобы заставить Lubuntu сначала в tty запускался, чтобы я мог давать заветное startx при запуске "прям как в книге". Хотя, в итоге, большую часть времени провёл в tty режиме.), пока не написал программку на 2к строк с использованием CSV, в которую было бы интересно хотя бы немного поиграть не мне, а целому ряду лиц. :-)

Далее месяц ассемблера (в основном практика, сначала на бумажке пока ехал в общ. транспорте, потом забивал в компьютер), самая большая программа 130 строк. Кому-то на форуме задачку помогал решить. Там был как и ввод, так и вывод. Про FFU читал, но руками пока не трогал.

Сейчас болтаюсь между Си и ассемблером. На Си просто решаю задачник, чтобы "набить руку". С ассемблером тут всплывала тема, что под ардуино можно писать на AVR. Только недавно смог найти хоть какую-то нормальную информацию на эту тему и делаю первые успешные шаги. Буду совмещать оба языка.

В сторону Си++ даже не смотрю.

В идеале, хочется с OpenGL поработать, но тут, как я понимаю, без рисования окошечек нельзя, поэтому пока только "навожу справки". Тут когда-то проплывала ссылка на сайт, где какой-то человек писал игры принципиально на plain C. Недавно искал, но не смог найти. :'( Если кто скинет, буду очень рад!

parent From Parthen profile Sun Oct 6 18:24:17 2024 UTC pencil

userpic

Re: Опыт тормоза

>Тут когда-то проплывала ссылка на сайт, где какой-то человек писал игры принципиально на plain C

https://jonathanwhiting.com/writing/blog/games_in_c/

ЧСХ, писать на Си ему ума хватает, а билд под Линукс сделать нет. Но он хоть идиотских технологий не использует, Steam умудряется через Proton без проблем запускать.

EDITED: Вообще я сейчас снова посмотрел и для некоторых игр билды есть, но по какому принципу они выложены - непонятно.

parent From Василий Ильич (unverified) Sun Oct 6 19:56:08 2024 UTC pencil

Благодарность

Спасибо, это оно!

parent From Василий Ильич (unverified) Sun Oct 6 20:19:43 2024 UTC pencil

Re: Re: Опыт тормоза

Блин, облом. Я быстро просмотрел и единственная игра с открытым исходным кодом -- коносольная. Всё что с графикой -- проприетарщина. А всё затевалось, чтобы посмотреть как работа с графикой была организована.

> Steam умудряется через Proton без проблем запускать.

По моим наблюдениям, он сейчас все игрушки умеет запускать. При том "Non-Steam" тоже, если их не надо крякать.

> по какому принципу они выложены - непонятно.

Как я понимаю, там 3 категории:

  • Для продажи.
  • Играбельно, выставленно для резюме.
  • Game jam'ы.

parent From Parthen profile Sun Oct 6 20:57:31 2024 UTC pencil

userpic

Re: Re: Re: Опыт тормоза

>Я быстро просмотрел и единственная игра с открытым исходным кодом -- коносольная

Если вы про SunkCoast - то она не консольная, там открывается окошко и в нем уже рисуется а-ля консольный рогалик.

Более того, билд на сайте зависит от старых версий библиотек, которых в Arch Linux у меня нет ваааще, даже в Arch User Repository. Ну я че, скачал с гитхаба исходники, там уже поправили, но там другая проблема - в двух разных файлах глобально объявлена _resolution, из-за чего линкер не может все это собрать.

И фиксится это буквально одним словом const. Автору я отправил pull request, но кто знает когда его примут. Будете собирать - вот здесь (https://github.com/ParthenGithub/SunkCoast) можете пропатченную версию скачать.

Ну или сами поправьте, это не сложно (https://github.com/ParthenGithub/SunkCoast/commit/a29e4b53aa6908072e82ac548538cad06425e609)

parent From Artem (unverified) Sun Oct 6 21:51:12 2024 UTC pencil

Re: Re: Re: Опыт тормоза

> "Non-Steam" тоже, если их не надо крякать

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

Однако запускать != нормальной работе. А в онлайнках злые античиты запросто могут выписать бан за такое надругательство над представлениями разработчиков о прекрасном. Но с кряками это всё не связано, что не работает с кряком, не работает и с лицензией.

parent From anonymous (unverified) Sun Oct 6 18:33:15 2024 UTC pencil

Re: Опыт тормоза

Возможно, это была вот эта статья https://jonathanwhiting.com/writing/blog/games_in_c.

parent From Василий Ильич (unverified) Sun Oct 6 19:56:30 2024 UTC pencil

Благодарность

И вам спасибо!

parent From DrvPtr (unverified) Fri Oct 11 12:30:57 2024 UTC pencil

Re: Опыт тормоза

>человек писал игры принципиально на plain C

Возможно не по теме, но я в тренировочных целях сделал софтверный рендер 3d моделек на С и Xlib (там есть эксперементальный модуль для вывода средствами winapi, но он скорее для проверки портируемости). https://github.com/drvptr/CrimewareRender. Можно простую бродилку сделать. Уже почти игра, получается на чистом С.

parent From Andrey V. Stolyarov profile Fri Oct 11 13:45:44 2024 UTC pencil

userpic

Re: Re: Опыт тормоза

вы тоже не знаете, что такое "пустая строка"?

parent From Andrey V. Stolyarov profile Sun Oct 6 16:47:29 2024 UTC pencil

userpic

Re: Вопрос по ассемблерной части

На асме нужно "что-то сделать". Мало-мальски серьёзных этюдов в задачнике нет, так что придётся выдумать заморочку самостоятельно. Из обязательного — прямое использование системных вызовов (в том числе для чтения и записи в файлы), аргументов командной строки, подпрограмм с полноценными стековыми фреймами. Ну и общий объём этюда — от тысячи строк (это тоже условно, просто чтобы понятно было, на что ориентироваться).

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

parent From nasm (unverified) Mon Oct 7 12:29:41 2024 UTC pencil

Re: Вопрос по ассемблерной части

Можно обойтись без готового ассемблера на этом этапе? (если отступить от книги)

Накодить прямо в отладчике соответствующие инструкции, которые всё это делают:

прямое использование системных вызовов (в том числе для чтения и записи в файлы), аргументов командной строки, подпрограмм с полноценными стековыми фреймами

Или сгенерировать их своей программой, написанной на знакомом языке программирования, и записать в файл (исполняемого) объектного модуля?

parent From Andrey V. Stolyarov profile Mon Oct 7 14:02:16 2024 UTC pencil

userpic

Re: Re: Вопрос по ассемблерной части

Простите, что за бред вы несёте? Как можно обойтись без ассемблера при изучении ассемблера?

parent From ABTOKOD (unverified) Mon Oct 14 11:25:22 2024 UTC pencil

Re: Вопрос по ассемблерной части

что скажете на счет ассембли? Следует ли писать проекты до тех пор, пока не начнешь думать на этом языке

Пока не ощутишь, что готов называть это просто асмом ;)

From Anon (unverified) Sun Oct 6 02:56:53 2024 UTC pencil

Ноутбук для Linux

Господа, подскажите какой ноутбук лучше выбрать чтобы без лишнего мусора (как хард так и софт-верного в виде дров) для того чтобы линукс поставить?

Нужна рабочая лошадка с хорошей батареей. Собираюсь легковесную связку использовать Arch + IceWM без поигрулек, сложной работы с медиа и т.д.

parent From Andrey V. Stolyarov profile Sun Oct 6 09:00:43 2024 UTC pencil

userpic

Re: Ноутбук для Linux

Любой, который вам ваши знакомые отдадут за бутылку пива или пакет сока.

parent From Artem (unverified) Sun Oct 6 11:30:01 2024 UTC pencil

Re: Ноутбук для Linux

> рабочая лошадка с хорошей батареей

Какой-нибудь старый нетбук, или, если надо экран побольше, что-нибудь из серии Thinkpad (тоже старые, лет так 15 минимум) или им подобных. Браузер на таком ворочаться будет, однако, крайне неохотно. И аккум наверняка будет дохлый, но тут лотерея, особенно если прежний владелец додумался его однажды поменять (насколько я знаю, нормальные аккумуляторы отдельно не продают, разве что самому покупать банки, тестировать их, отбраковывать, и подключать к контроллеру, рискуя при этом увалить его в защиту, из которой он уже не выйдет, потому что конь в ванне с огурцами).

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

parent From Parthen profile Sun Oct 6 12:31:38 2024 UTC pencil

userpic

Re: Ноутбук для Linux

Thinkpad.

Дополнительно вот гайд https://github.com/ThinkPadThink/Thinkpadthinkpad#%D0%90-%D0%BA%D0%B0%D0%BA%D1%83%D1%8E-%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C-%D0%BC%D0%BD%D0%B5-%D0%BB%D1%83%D1%87%D1%88%D0%B5-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C

parent From lxV (unverified) Mon Oct 7 05:30:45 2024 UTC pencil

Re: Re: Ноутбук для Linux

Поддерживаю.

Какой-нибудь старенький x200, который ещё без IntelME, без тачпада, чтобы не мешать рукам во время печати, ну и сама клавиатура у него тоже что надо, как говориться :) Пользуюсь уже много лет, даже самому чинить его относительно легко, покупка на века.

parent From Anonymous (unverified) Tue Oct 8 09:12:31 2024 UTC pencil

Re: Re: Re: Ноутбук для Linux

У x200 вообще-то есть IntelME, но в отличии от более новых моделей он работает даже если регион ME в чипе просто вайпнуть, или лучше заменить на libreboot полностью всё.

parent From Artem (unverified) Tue Oct 8 15:47:18 2024 UTC pencil

Re: Re: Re: Re: Ноутбук для Linux

Что хорошо в любых Thinkpad - о них в сети куча инфы. Про обычный массовый лэптоп и четверти нужной информации найти невозможно. На вопросы типа <<есть ли ME>>, <<можно ли стереть регион ME>>, <<настраивается ли то>>, <<работает ли в линуксе сё>> и так далее, ответ почти для всех моделей почти любого производителя один: хрен его знает.

From anon (unverified) Sat Oct 5 01:19:12 2024 UTC pencil

Нормальный браузер нашелся. Наверное...

В общем, довелось мне наткнуться вот на это: https://www.netsurf-browser.org/

Похоже что у них есть потенциал, ребят внесли в списки славы на suckless.org. В доках у себя на сайте пишут что внедрили HTML4 и CSS2, и javascript отключен по умолчанию.

At present, NetSurf has only primitive and incomplete support for JavaScript, which we disable by default. Without JavaScript, NetSurf is able to provide access to most of sites on the World Wide Web. Some sites, however, will not display correctly or be unworkable due to heavy reliance on this standard.
Full JavaScript is support is planned but we are currently a long way off achieving it. Many things need to be done before complete JavaScript support can be considered, such as changing our web page layout engine to handle dynamic changes being made to the page. JavaScript support will require a huge amount of work to complete. If you are keen to help out please visit the developer and contributor area.

Помню тут была где то ветка обсуждения джаваскрипта в конечных автоматах. Возможно стоит им подкинуть идею.

From RoadHog (unverified) Fri Oct 4 18:48:10 2024 UTC pencil

Программы для потных программистов

Андрей Викторович, нахожусь сейчас на середине второго тома, уже написал на С почти все программы, которые приносят пользу лично мне + заменяют функционал сторонних программ, которые я ранее использовал. Но эти программы на самом деле очень маленькие и не слишком сложные. И вот нет у меня ощущения, что познал computer science. Есть ли у вас рекомендации по программам (помимо задачника), которые стоило бы написать, чтобы закрепить фундамент знаний из вашей книги. И я сейчас не про программы для новичков, а вот именно что-то гораздо более серьезное. Написать игровой движок, например, подходит под это описание, по-вашему?

parent From Andrey V. Stolyarov profile Fri Oct 4 18:57:22 2024 UTC pencil

userpic

Re: Программы для потных программистов

Подходит, почему бы и нет. На самом деле как раз задачник-то не особо подходит, это так, от безысходности разве что. А так вам нужно что-то такое, что пишется с целью последующего практического применения (в отличие от задач, которые решаются ради самого процесса решения) и в чём количество строк измеряется тысячами.

parent From Parthen profile Fri Oct 4 19:37:06 2024 UTC pencil

userpic

В тему

Знает кто-нибудь ресурсы с объяснением геймдевной математики от А до Я?

Я пытаюсь вот это (http://infoviolence.org/ytid.cgi/sWtyOhdf3DE) повторить и все мои пробелы в ВУЗовской математики вскочили довольно плотно. Векторы простенькие, они понятные, а вот в матрицах я плаваю.

parent From Ilya profile Fri Oct 4 20:31:54 2024 UTC pencil

Re: В тему

Похоже поганый гугл таки убил Invidious, у меня из всех инстанций, успешно воспроизводит только одна, и то через раз.

parent From Andrey V. Stolyarov profile Fri Oct 4 20:35:09 2024 UTC pencil

userpic

Re: В тему

Там они по очереди отваливаются, и пока хозяева одной инстанции её чинят, можно пользоваться другой. Я специально для таких вещей ytid сделал :-) Конкретно сейчас выбираю инстанс, жму "save the choice", потом уже прыгаю смотреть. Если не работает, жму Back, выбираю другой инстанс. На том, который заработал, остаюсь, пока его опять колбасить не начнёт.

parent From Parthen profile Fri Oct 4 20:46:22 2024 UTC pencil

userpic

Re: Re: В тему

Я хотел свой развернуть, но там какая-то совсем уебищная инструкция с докером. Не осилил, хоть и VPS-ка на убунте, родная среда для всего этого "инструментария"

parent From Andrey V. Stolyarov profile Fri Oct 4 21:01:35 2024 UTC pencil

userpic

Re: В тему

Не, этого я даже не пытался. Там за километр вебмакаками пасёт.

parent From Ilya profile Fri Oct 4 20:57:01 2024 UTC pencil

Re: Re: В тему

Да согласен, удобно. Вообще удивительно как до сих пор хоть что то работает, там же белые айпишники торчат, могли перебанить их уже давно.

parent From Andrey V. Stolyarov profile Fri Oct 4 21:02:54 2024 UTC pencil

userpic

Re: В тему

Насколько я понимаю, там они как раз ip-адреса, видимые для тюбика, меняют то и дело. Плюс некоторые из них вообще с тюбиком общаются через IPv6.

From Oliver (unverified) Mon Sep 30 14:02:49 2024 UTC pencil

Блок-схемы

Добрый день, Андрей Викторович! Я не помню уж, был ли разговор на данную тему, и если был, прошу заранее извинить мой склероз! Меня интересует Ваше мнение по поводу рисования блок-схем на уроках по программированию перед тем, как детей познакомить с самим написанием програм: на сколько от них есть толк по-Вашему?

parent From Andrey V. Stolyarov profile Mon Sep 30 14:06:10 2024 UTC pencil

userpic

Re: Блок-схемы

Ну, толку-то, конечно, никакого нет, но я подозреваю, что это не из-за блок-схем, а из-за самих уроков информатики. Как этому учить незаинтересованную толпу, каковой является любой школьный класс — никто не знает (я, заметим, тоже не знаю), плюс к тому учителя информатики обычно либо не умеют программировать (когда это учитель), либо не умеют учить (когда это несостоявшийся программист, строящий из себя учителя).

parent From Василий (unverified) Tue Oct 1 06:50:51 2024 UTC pencil

Re: Re: Блок-схемы

Непрошеное мнение.

Мне тут недавно удалось заняться репетиторством в одном кружке - преподавать основы программирования детям 7-11 классов.

Удивительно много людей в таком возрасте упираются в каменную стену в виде примерно следующей задачи. Программе на вход даётся два числа А и Б, программа должна вывести прямоугольник из звёздочек размера АхБ.

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

Перед этим объясняется задача вывода в консоль квадратика из звёздочек размером nxn. И бывает, что с задачей про прямоугольник проблема возникает не в понимании вложенного цикла, а в том, что они не догадываются, что надо прочитать из потока ввода два числа, а не одно, как в предыдущей задаче.

Аж глаз дёргается иногда. И нет, я не настолько ужасен, как учитель, есть у меня и способные ребята.

Добавить к этому ребят, которые пришли "понюхать" дисциплину, и за пару месяцев решительно на нашли время хотя бы на чертов виндовс дома компилятор поставить, не то что убунту хотя бы в виртуалку установить. Впрочем, иногда со вздохом им предлагаешь хотя бы в онлайн компилятор залезть и написать дома хоть одну строчку кода - но и этого с этими людьми не случается, но при этом они упорно продолжают ходить на кружок и верить, что можно чему-то научиться, просто просиживая штаны.

В общем, веры в педагогические технологии здесь у меня нет. Я тоже ответа на вопрос, как замотивировать, не знаю - но и знать не хочу. Незаинтересованный в знании его недостоин, и тем паче недостоин того, чтоб на него время вообще тратили.

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

parent From Andrey V. Stolyarov profile Tue Oct 1 07:57:57 2024 UTC pencil

userpic

Это всё не про то

Тут нет ничего нового, обыкновенный алгоритмический кретинизм. У большинства особей homo просто нет той части мозга, которая отвечает за визуализацию исполнения программы с течением времени. И тут, разумеется, дело не в том, что лично вы якобы чего-то не умеете, как раз наоборот — те, кто не умеют, ухитряются в упор не видеть самого факта существования вот этого вот алгоритмического кретинизма, и не просто существования, а его распространённости на подавляющее большинство "сырого материала".

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

А насчёт "научиться, просиживая штаны" — ну, понимаете, учиться тоже надо уметь. В школе этот навык не даётся, даже в ВУЗах не всегда. А дальше люди, пришедшие в кружок, очевидным образом делятся на тех, кто пришёл, потому что нравится предмет, и тех, кто пришёл, потому что нравится идея стать таким крутым чуваком, который владеет предметом. В применении к нашему предмету — на тех, кому нравится программировать и на тех, кто хочет когда-нибудь получать программистскую зарплату. Среди этих последних ещё выделяется слой тех, кому вообще-то даже на это в глубине души плевать, просто мама с папой запинали.

Кому программирование нравится как процесс независимо от будущей зарплаты, тем компилятор только в руки дай. А не дашь — сами возьмут, ещё и с куском руки оттяпают.

parent From Artem (unverified) Tue Oct 1 10:18:37 2024 UTC pencil

Re: Это всё не про то

Наверное, не в тему, но хочу спросить: это нормально, что спустя несколько лет программирования (не на работе, сначала для своих нужд, потом в универе) приходится заставлять себя запустить компилятор хотя бы для того, чтобы сделать простейшую (тупо сделать пару системных вызовов) практику для универа? Ни о каких своих проектах речи даже не идёт, идеи есть, но ни строчки кода нет. Раньше мне программирование нравилось, а теперь стало какой-то, не знаю, рутинной и раздражающей необходимостью, от которой хочется избавиться, как мытьё посуды, и даже учить в этой области что-то новое нет желания, разве что на уровне голой теории, умственных построений и выкладок на клочке бумаги. Это нормально, или мне надо таблетки жрать, или это просто не моя сфера деятельности?

parent From Andrey V. Stolyarov profile Tue Oct 1 10:54:00 2024 UTC pencil

userpic

Re: Это всё не про то

Это может быть просто выгорание. У меня так бывало, хотя, наверное, не до такой степени. Причём не обязательно выгорание именно от программирования, просто общее психологическое переутомление.

Ну то есть я не уверен, что это именно оно, но точно знаю, что так бывает, вот прямо-таки на собственном опыте.

parent From Anonymous (unverified) Wed Oct 2 06:46:53 2024 UTC pencil

Re: Это всё не про то

Кстати, про выгорание. Автору исходного коммента можно посоветовать на более-менее длительное время (если это возможно, конечно - работодатели/преподаватели не всегда готовы это время дать) переключиться на другой вид деятельности. Ну там в отпуск съездить или в какой нибудь поход сходить, где вот точно никаких компьютеров и интернетов нет. Реально ведь бывает, что одно и то же (в случае автора - программирование) видишь кучу лет, и оно просто уже в печенках сидит. А от смены деятельности перезагрузка будет, и жить чуть легче станет.

parent From Andrey V. Stolyarov profile Wed Oct 2 16:04:32 2024 UTC pencil

userpic

Re: Это всё не про то

Я в своё время спасался парашютными прыжками. Потом ногу сломал, но к тому времени у меня программирование за деньги осталось далеко в прошлом.

parent From Eduard (unverified) Wed Oct 2 03:36:55 2024 UTC pencil

Re: Re: Это всё не про то

У меня так же временами бывает. Иногда не получается реализовать задуманное (впринципе всегда сидя за экраном нормальных решений не приходит в голову), но потом, немного отвлекшись, приходит решение задачи. И это решение потом живет у меня в голове пару-тройку недель, я уже знаю что написать, но руки просто не хотят открывать этот исходник - лень. Но в один день, не заставляя себя, а с диким интересом сажусь и выкладываю всё что накопилось, скармливаю это всё gcc, получаю готовый бинарник. Конечно, работать так не прокатит, там желателен ежедневный прогресс, но я пока и не считаю себя программистом.

parent From Parthen profile Thu Oct 3 09:48:43 2024 UTC pencil

userpic

Re: Это всё не про то

В началалке, по новым програмам ФГОСов, нам на уроки математики привезли какие-то рабочие тетради, в которых по заданиям надо было рисовать блок-схемы. По сюжету там был какой-то робот, которому надо было объяснить как сготовить суп, сложить вещи и т.п.

И все вроде было бы хорошо, пока схемы были "прямые". Как только начались ветвления, циклы, условия успешно выполнять задания смогли только 2-3 человека из класса, включая меня. Учительница по итогу это дело быстро забросила.

Программистом, как и волшебником, видимо можно только родиться.

parent From Andrey V. Stolyarov profile Thu Oct 3 13:04:23 2024 UTC pencil

userpic

Re: Это всё не про то

Да ладно, прям сразу программистом.

Я когда учился в школе, не осилил школьные расчётные задачи по химии на выход реакции. Ну вот не понимал я смысла всех этих молярных масс, "количества вещества" и прочих величин, которые там фигурируют. Но это не потому, что химиком можно только родиться. Это исключительно потому, что учительница химии была, пардон, дура. И к тому же самодур (не знаю, можно ли адекватный феминитив придумать). Как показал мой дальнейший жизненный опыт, мне не хватало ровно одной фразы: что "моль" может быть не только вещества, а вообще-то хоть кирпичей, только это будет сильно до фига кирпичей. Если у учителя не нашлось для ученика такой фразы, это не учитель, это недоразумение. И рождаться химиком мне для этого было совершенно не обязательно.

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

parent From Parthen profile Thu Oct 3 19:40:17 2024 UTC pencil

userpic

Re: Re: Это всё не про то

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

Как-то не распарсил как это относится к остальной части комментария

parent From Andrey V. Stolyarov profile Thu Oct 3 20:02:12 2024 UTC pencil

userpic

Re: Это всё не про то

Ну просто мы склонны переоценивать возможности людей, с которыми общаемся. Вы вот видели, что они не могут (типа, неспособны) рисовать простенькие блок-схемы, но вас может несколько удивить, когда вы поймёте, на что ещё они не способны. Например, 23 умножить на 10 без калькулятора — наверняка найдутся несколько человек, которые не могут.

parent From Anonymous (unverified) Sun Nov 17 07:47:38 2024 UTC pencil

Re: Re: Это всё не про то

Мне недавно попался человек, которому я рассказал про эхиннококков и он с уверенным видом заявил "эхиннококков не существует"

parent From Andrey V. Stolyarov profile Sun Nov 17 08:54:50 2024 UTC pencil

userpic

Re: Это всё не про то

Вот уж это вообще не имеет отношения к делу: если человек отказывается верить в то, чего не видит, это само по себе о его интеллектуальных способностях не говорит буквально ничего.

К тому же обсуждалось не так давно.

parent From Anonymous (unverified) Tue Oct 1 11:57:58 2024 UTC pencil

Re: Re: Re: Блок-схемы

Я тут чуток, чтобы размяться попробовал:

#include <stdio.h>

int main() {
	int i, j, n, m;
	scanf("%d %d", &n, &m);
	for (i=0; i<m; i++) {
		for (j=0; j<n; j++) {
			putchar('*');
		}
		putchar('\n');
	}
	return 0;
}

Потратил на написание 8 минут, от открытия пустого файла до работающего кода. Наверное это много, но большую часть времени съела отладка. Если конкретно, то перепутал порядок i++ и i

$ ./m_n_rectangle 
7 5
*******
*******
*******
*******
*******

parent From Andrey V. Stolyarov profile Tue Oct 1 12:36:16 2024 UTC pencil

userpic

Re: Блок-схемы

У меня как-то случай был, я в очередной раз проводил первую контрольную в "сишном" семестре, на этих контрольных я всегда давал задачу на анализ стандартного ввода (типа, читаем текст посимвольно, после завершения каждой строки печатаем длину самого длинного слова в ней), на анализ строк (получаем аргументы командной строки, печатаем те их них, которые кончаются буквой q) и на односвязный список (читаем целые числа из стандартного ввода, после "конца файла" выдаём те из них, которые встретились ровно три раза). Как-то раз один студент на все эти три задачи потратил 24, что-ли, минуты. Ну, я студентам говорю, мол, у вас целиком вся пара на эти три задачи, но вообще вот рекорд 24 минуты.

А мне контрольную проводить помогал один мой аспирант. Ну он это услышал, схватил бумажку с заданием, уселся за комп — и только клавиатура трещит. В общем за 18, если не ошибаюсь, минут он их сделал. Ну я ему и говорю, ага, круто: аспирант третьего года обучения порвал несчастных второкурсников на британский флаг.

Между прочим, программа, в которой не анализируется значение, возвращаемое функцией scanf, годится только в /dev/null. Короче, нашли чем хвастаться.

parent From Василий (unverified) Tue Oct 1 16:18:30 2024 UTC pencil

Re: Re: Re: Re: Блок-схемы

Как-то весело оттого, что кого-то я своей задачей про прямоугольник сподвиг потренироваться :))

Если честно, я не уверен, что время решения этой задачи играет какое-то значение. Тут я хочу сразу сказать, что я не программист, а скромный учитель физики, и в кружке я преподаю основы программирования на FreePascal под Linux. Недавно появилось немного свободного времени, и за это время я почти что освоил Паскаль в объеме второй части 1 тома. Предложили вести кружок, поскольку больше некому было, и я подумал - попытка не пытка, вдруг получится.

В общем, языка Си я не знаю, но, надеюсь, в скором времени по книжкам А.В. я его освою. Не знаю, что в Си такого, что решать эту задачу нужно какое-то там время, а в Паскале для меня она решается в линейной зависимости от моей скорости печатанья. Само утверждение "решил задачу Х за N минут" для меня звучит как то, что на решение этой задачи ушли какие-то мысленные усилия, на которые было потрачено сколько-то из этих минут. Для задачи с прямоугольником, если использовать FreePascal, никаких мысленных усилий не требуется.

Причем не только для взрослого человека в относительном расцвете умственных способностей. Те дети, которые сразу ухватили суть вложенных циклов, тоже решают задачу про вывод прямоугольника почти мгновенно. В среднем минут 15-20 от пустого файла до исполняемого уходит у способного ребенка, но тут я сделаю важное уточнение: я оборудовал компьютерный класс убунтами, и, на одном из кружковых занятий, на котором я рассказываю, как пользоваться компьютером, я показал им оконный менеджер i3. Сам пользуюсь этим уже несколько лет - начал задолго до того, как научился хоть чуть-чуть программировать. Впервые учиться его использовать так же неприятно, как впервые учиться использовать vim, но, если освоить, то, на мой личный вкус, эргономика у него почти непревзойденная.

В общем, я надул щёки и с важным лицом заявил, что пользоваться можно чем угодно, но большие и страшные настоящие программисты используют именно что-то подобное. Дети малые мне обычно верят и пытаются пользоваться i3. На самом деле, конечно, я сказал им неправду, но это такая грязная военная хитрость. Все дело в том, что i3 обладает двумя важными с педагогической точки зрения достоинствами: 1) он из коробки хорошо выглядит (некоторые малые дети не любят, например, IceWM, потому что из коробки он некрасивый и его внешний вид надо донастраивать), и 2) - кроме отрисовки окон он почти ничего больше не делает и заставляет пользователя абсолютно всё делать исключительно из терминала. Никаких графических кнопок и меню.

Так вот, обычно к моменту, когда я требую от способного школьника написать задачку с выводом прямоугольника, обычно у него ещё навыки работы и с терминалом, и с i3 сформированы достаточно плохо. И львиную долю времени из 15 минут он обычно тратит на то, чтобы открыть терминал, затем текстовый редактор, затем обнаружить, что текстовый редактор занял терминал, вспомнить, как перевести программу в фоновый режим, затем ещё какое-то время уходит на создание отдельных каталогов для программы и иногда ее модификаций (способные ребята иногда хотят вывести пустой внутри прямоугольник, например) и лазанье по этим каталогам; потом иногда тратится время на то, чтобы вспомнить, как в i3 перемещать окна, менять всякие режимы их отображения, закрывать ненужные и всё в этом духе, затем программу наконец начинают писать и компилировать.

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

parent From Parthen profile Tue Oct 1 17:39:48 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Блок-схемы

>FreePascal

>Linux

>i3

>vim

Блин, мое уважение. Мне бы такого учителя в школьные годы :)

parent From Anonymous (unverified) Wed Oct 2 07:54:58 2024 UTC pencil

Re: Re: Re: Re: Re: Блок-схемы

> Если честно, я не уверен, что время решения этой задачи играет какое-то значение.

Точное значение в секундах ­— нет, а вообще, разница между затратить весь урок или несколько минут — да.

> для меня звучит как то, что на решение этой задачи ушли какие-то мысленные усилия, на которые было потрачено сколько-то из этих минут.

Ну, смотря что считать мысленным усилием.

> Для задачи с прямоугольником, если использовать FreePascal, никаких мысленных усилий не требуется.

Program m_n_square;
var
	i, j, m, n: integer;
Begin
	readln(m, n);
	for i:=1 to m do begin
		for j:=1 to n do begin
			if (i=1) or (j=1) or (i=m) or (j=n) then
				write('*')
			else
				write(' ')
		end;
		writeln()
	end
End.

Три минуты от пустого файла до работающей программы, ещё пара минут чтобы сделать прямоугольник пустым. Да, пожалуй для написания кода на паскале думать надо несколько меньше.

Из ошибок = вместо := в for, затем отсутствие скобок в условии if. Интересно, почему в паскале не могли назначить операциям сравнения чисел больший приоритет чем логическим?

parent From Robert (unverified) Thu Oct 3 18:33:45 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Блок-схемы

> Интересно, почему в паскале не могли назначить операциям сравнения чисел больший приоритет чем логическим?

Насколько я понимаю, дело не в приоритете. Дело в том, что в Паскале логические операции И/ИЛИ и побитовые операции И/ИЛИ обозначаются одними и теми же ключевыми словами. Поэтому, когда компилятор видит "or" или "and" между, например, целочисленными операндами, он воспринимает это не как логическую, а как побитовую операцию.

parent From Oliver (unverified) Fri Oct 4 15:00:34 2024 UTC pencil

Re: Re: Re: Блок-схемы

> вся эта педагогика и психология - это, конечно, всё круто, наверное, но на человека, который решает что-то подобное полчаса, принципиально не стоит тратить силы и время.

Я верю, что, мягко говоря, не все ученики могут понять вложенные циклы с ходу. Но мое мнение, что списывать ребенка со счетов только потому, что он решает что-то дольше по времени нежели определенный учитель считает, - в корне не верно. Ведь проблема может быть не только в детях, а в том, что вот определенному ребенку определенный учитель не смог обьяснить так, чтобы тот смог задачу решить за 10 минут. Или определенному ребенку на то, чтобы понять конктерную тему надо больше времени нежели определенный учитель считает. Я задал вопрос по блок-схемам потому, что моего в школе начали учить их рисовать, прежде чем учить программировать. И там была совсем конкрентая ситуация: учитель в школе рисование блок-схем обьяснял так, что ЛИЧНО мой малой не все мог понять. Не говорю, что он обьяснял плохо, но конкретный человек не все понимал, а когда об этом заикнулся, получил от учитель порцию негативного коммента в свой адрес (в духе Вашего отзыва о детях в школе). Данный учитель задал малому домашку нарисовать блок-схему, а тот читал условие и ничего не понимал. После того, как он дал листок с заданием мне, я ему за минут 5 (ну может 7) обяснил так, что ребенок все понял и без прлблем сделал. А все дело окозалось в том, что учитель дал на листе с задачей явно лишнюю инфу, которая ребенка спутала. Иными словами не мог кратко и конкретно обьяснить, и просто стал себя агрессивно вести.

parent From Andrey V. Stolyarov profile Fri Oct 4 15:52:06 2024 UTC pencil

userpic

Re: Re: Re: Re: Блок-схемы

> и просто стал себя агрессивно вести

Я когда такие предъявы наблюдаю, у меня автоматически возникает вопрос: а вы там, в классе, присутствовали? Или, может, кто-то это всё на видео заснял, а вы посмотрели?

Я не утверждаю, что там учитель "на самом деле хороший", т.к. плохие учителя, несомненно, встречаются, и их, наверное, даже намного больше, чем хороших. Я утверждаю несколько иное: со слов недовольного ребёнка делать выводы о том, что там в школе происходило — это как минимум странно.

parent From Oliver (unverified) Sat Oct 5 15:31:39 2024 UTC pencil

Re: Re: Re: Re: Re: Блок-схемы

Я знаю своего ребенка. Знаю его отношение к учебе: конкретно он не станет говорить того, чего не было. Не такой человек просто. Да и у нас в семье не принято жаловаться на учителей: мы его приучаем к уважению педагогов, потому если уж он говорит, что было дело, значит точно было.

Я не утверждаю, что вот все учителя информатики поголовно не умеют преподовать. Я увидел, что человек хочет поместить всех детей в какую-то раму, при том, что возможно он не сумел просто некоторым детям обьяснить конкрентные вещи, по каким-то причнинам. Ссылаться на "способных детей" разумеется не совсем корректно (ИМХО), потому что может случиться такое, что при любом учителе какой-то процент учеников что-то да поймут. Не утверждаю, что человек не умеет преподовать, но я не согласен с его выводами о способностях детей. Да, кому-то надо на одну задачу 30 минут, но так это может как раз из-за того, что человек не сумел донести до ребенка вложенные циклы, и опять же есть индивилуальные способности ребенка, и 30 минут на ПЕРВУЮ задачу с вложенными циклами отнюдь не означают, что человек не может быть хорошим программистом. Короче призываю, не списывать всех детей (или большУю их часть) только потому что кто-то пытался научить детям что-то, те непоняли так быстро как он этого хотел бы или предпологает, потому что есть ошибки в преподавании, есть индивидуальные склонности детей, есть иные факторы, которые могут негативно сказаться на восприятии материала, такие как усталость (ибо в школе до фига задают)... :)

parent From Andrey V. Stolyarov profile Sat Oct 5 15:34:48 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Re: Блок-схемы

> Я знаю своего ребенка. Знаю его отношение к учебе: конкретно он не станет говорить того, чего не было. Не такой человек просто.

Знаете, сколько я видел мудаков-родителей, несущих вот именно эту пургу, слово в слово? Я скорее не припомню, чтобы видел каких-то других. Поголовно у всех их собственные дети — непременно ангелы с крылышками.

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

parent From Василий (unverified) Fri Oct 4 23:34:24 2024 UTC pencil

Re: Блок-схемы

>Но мое мнение, что списывать ребенка со счетов только потому, что он решает что-то дольше по времени нежели определенный учитель считает, - в корне не верно

Тут приношу извинения. Я совсем не это имел в виду - просто не высказал свою мысль максимально точно.

Да, как мы тут нестройным хором уже выяснили, не имеет смысл замерять время решения задачи в секундах и как-то учитывать это измерение где-либо. Эти мои "полчаса", о которых я говорю, конечно, очень условны. Не осилил за полчаса - вот тебе время до конца занятия; а у нас кружковое занятие длится 120 минут. И этого не хватило? Реши задачку дома, до следующего занятия два дня. Вот если и этого человеку не хватило, то я начинаю подозревать, что что-то не то.

Ученики из категории "что-то не то" делятся на два типа в соотношении примерно 1/9; один из десяти действительно что-то пытался, но ничего не получилось, а остальные девять ничего дома ни в каком виде не попытались сделать и просто пришли на следующий урок в надежде, что можно этот непонятый материал пропустить - всё крутое-то, мол, впереди. Для этого "одного" этот тест обычно и не требуется: у него проблемы возникают на обычном цикле, ещё до вложенных.

В общем, сегрегация учеников по времени решения задачки мне не требуется. Мне кажется, что это вообще не требовало пояснений; разумеется, я отличаю способных от не способных по их способности/неспособности решить задачу вообще, за любое произвольное время. И, в общем то, "любое произвольное" время не требуется, а зачастую мне всё уже становится понятно за каких-нибудь полчаса-час. Разумеется, я не делаю из этого принципа; бывают люди, которым действительно нужно пару дней на освоение вложенных циклов, а потом они приходят и догоняют остальных. Дело не в часах/минутах, а в заинтересованности человека в понимании материала. Если хотите - я даже считаю, что тут есть какая-то связь; обычно, если есть заинтересованность, есть и способность освоить тему. Нет способности - обычно нет и заинтересованности.

И, наконец:

>списывать ребенка со счетов

А никто и не списывает. Извольте перечитать исходную цитату. Там прямо указано: "...Крест я ни на ком не ставлю, но рекомендую попробовать ещё раз сильно попозже. Через полгода-год.". Я серьезно. Сам видел, как с вершины чуть большего опыта способности "открываются" с вершины чуть большего опыта.

И ещё добавлю субъективное мнение, которое я в целом до конца защищать не готов, но почти что его придерживаюсь. Этим свойством обладают все предложения ниже этого и до конца комментария.

>Я верю, что, мягко говоря, не все ученики могут понять вложенные циклы с ходу

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

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

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

parent From Andrey V. Stolyarov profile Sat Oct 5 08:53:48 2024 UTC pencil

userpic

Re: Re: Блок-схемы

> зачем информатика преподается в школе в классах ниже 10-11

Вот этот тезис мне, пардон, несколько странен. Десятый класс — это возраст 15-16 лет, ну вот лично я программировать (на ДВК-1, на бейсике с нумероваными строками) начал в 13, и точно помню, что вообще-то надо было ещё раньше: попался бы мне компьютер в восемь-девять лет (очень хорошо этот возраст изнутри помню, как ни странно), я бы и тогда начал, и был бы в итоге ещё круче.

С другой стороны, тем, у кого алгоритмический кретинизм, вообще не надо ни в каком возрасте, и этот самый алгокретинизм с возрастом не проходит. Но тут уже проблема общая для школьного возраста: как отделить тех, кому надо, от тех, кому не надо, и при этом не ошибиться.

parent From Parthen profile Sat Oct 5 10:26:28 2024 UTC pencil

userpic

Re: Re: Re: Блок-схемы

> Но тут уже проблема общая для школьного возраста: как отделить тех, кому надо, от тех, кому не надо, и при этом не ошибиться.

Дать школьникам самим выбирать предметы? Я бы с радостью ходил бы в школу если бы у меня в расписании была бы одна информатика с базой (русский/математика)

parent From Andrey V. Stolyarov profile Sat Oct 5 11:58:03 2024 UTC pencil

userpic

Re: Блок-схемы

В целом сейчас так и есть: то, что даётся на школьных уроках, считается базой, для всего остального — всевозможные кружки. По-видимому, эту "базу" следует пересмотреть, но я не уверен, что её радикальное сокращение будет однозначно правильно.

parent From Parthen profile Sat Oct 5 13:50:12 2024 UTC pencil

userpic

Re: Re: Блок-схемы

У меня еще свежи воспоминания как в физмате я тратил по 3 часа в неделю на физкультуру (причем, от которой я освобожден), по часу в неделю на биологию, химию, всеобщую и отечественную историю, обществознание, индивидуальный проект, "урок о важном".

При этом на информатику, которую я вообще-то сдавал как единственный дополнительный ЕГЭ отводилось часа два. Кружков не было.

По итогу класса с 9 меньше 6 уроков (на минуточку, с 8:00 до 13:10) не бывало в принципе. Позже, когда у нас сделали субботу выходной, не бывало уже меньше 7-8.

По итогу эта вот "база" ничему не учила (как будто я буду всерьез учить биологию вместо подготовки к экзамену), так еще и выматывала.

parent From Andrey V. Stolyarov profile Sat Oct 5 14:42:38 2024 UTC pencil

userpic

Re: Блок-схемы

Ну, как я отношусь к гуманитарщине, тут объяснять никому не надо, т.е. предложение выпилить из школьной программы историю (в любом её виде), а равно обществознание и литературу (не знаю, что там ещё от неё осталось) я готов всячески поддержать. Это всё не имеет никакого отношения к обучению, и к развитию тоже, только к массовой индоктринации.

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

Возможно, для вас будет сюрпризом также и то, что я не поддержу выпиливание физкультуры. Больше того, я бы, наоборот, отменил всевозможные "освобождения по состоянию здоровья". Разве что дать возможность желающим заменять школьную физкультуру на занятия в какой-то спортивной секции.

parent From Parthen profile Sat Oct 5 14:54:51 2024 UTC pencil

userpic

Re: Re: Блок-схемы

>Биология и химия на мой взгляд несомненно входят в тот базис, который должен присутствовать

Даже если ученику это явным образом не нравится? И это не вызовет противоположного эффекта?

>Возможно, для вас будет сюрпризом также и то, что я не поддержу выпиливание физкультуры. Больше того, я бы, наоборот, отменил всевозможные "освобождения по состоянию здоровья".

Действительно сюрприз, особенно с отменой освобождений. Можно поподробнее?

parent From Andrey V. Stolyarov profile Sat Oct 5 15:13:15 2024 UTC pencil

userpic

Re: Блок-схемы

Есть довольно много школьников, которым в принципе не нравится вообще всё, чем их грузят в школе. И что теперь? По-моему, буквально ничего.

Про физкультуру я не вижу, каким образом тут следует раскрывать мысль, в том числе с "освобождениями". Физкультура для здоровья не только не вредна, но и, напротив, полезна, поэтому освобождать от физкультуры якобы "по состоянию здоровья" — это просто бред сивой кобылы.

parent From Parthen profile Sat Oct 5 15:42:34 2024 UTC pencil

userpic

Re: Re: Блок-схемы

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

parent From Andrey V. Stolyarov profile Sat Oct 5 15:52:51 2024 UTC pencil

userpic

Re: Re: Re: Блок-схемы

Что, физкультура? Разумеется, имеет самое прямое отношение, ничуть не менее прямое, чем математика с физикой.

parent From Parthen profile Sat Oct 5 15:55:26 2024 UTC pencil

userpic

Re: Re: Re: Re: Блок-схемы

Каким образом?

parent From Andrey V. Stolyarov profile Sat Oct 5 15:59:20 2024 UTC pencil

userpic

Re: Блок-схемы

Что вы за бред несёте? А математика и физика каким образом?

parent From Parthen profile Sat Oct 5 16:15:00 2024 UTC pencil

userpic

Re: Re: Блок-схемы

Я торможу что ли...

Математика, физика, химия - это науки, для их изучения школа и нужна. Физкультура - это не наука (ну, т.е. есть наука о физкультуре, но ее на уроках физры не изучают примерно никак).

parent From Andrey V. Stolyarov profile Sat Oct 5 16:32:46 2024 UTC pencil

userpic

Re: Блок-схемы

> это науки, для их изучения школа и нужна

Это вы хватили. Я неоднократно встречал людей, утверждающих, что даже университет нужен отнюдь не затем, чтобы там изучать науки; ну, я с этими людьми не согласен, конечно, но такие есть, и их много.

А вы про школу. Это могло бы быть смешно, но что-то мне не смешно.

> Физкультура - это не наука

В том виде, в котором математика, физика и химия присутствуют в школе — это тоже не науки. И это я молчу, например, про умение писАть — буквально то, которое в первом классе по прописям, и потом до какого-то там класса на уроках "русского языка" — тупо орфография и пунктуация, притом даже не вся, и не говорите мне, что это всё имеет хоть какое-то отношение к лингвистике (которая тоже не факт что наука).

А ещё — про умение читать. Между прочим, это тоже не стоит принимать как данность, поскольку есть люди, которые могут текст с бумажки прочитать вслух, но патологически не могут из этого текста ничего извлечь, и выглядит это довольно страшно, при том что во всём остальном человек вроде адекватный, беседу поддерживает, на вопросы отвечает, сам вопросы задаёт, даже аудиокниги слушает, но никогда ничего не читает, потому что ему бесполезно. Да, буквы знает, да, читать вслух умеет. Не спрашивайте меня, как это может сочетаться.

Да и информатика пресловутая — возможно, для считанных единиц она может стать первым шагом в программировании, но для подавляющего большинства всё, что можно из информатики извлечь — это базовые навыки работы с компьютерами.

Вообще вся школа — частично про профориентацию, но большей частью — именно про базовые навыки. И вот базовые навыки, как обращаться с бумагой, ручкой и книгами, нам вроде бы нужны, тут особых сомнений не возникает. Базовые навыки работы со всякими инструментами тоже полезны, так что, например, "уроки труда" с моей точки зрения вполне уместны. Я, кстати, не знаю, существуют ли они сейчас, но умение распилить доску, остругать рубанком какой-нибудь черенок для лопаты и заменить электрическую розетку в стене — это такая же база, как и умение читать книжки, писать бумажки и уметь считать хотя бы на таком уровне, чтобы в магазине вовремя заметить, что сдачи недодали. И с компьютерами обращаться тоже желательно уметь, ну хоть до какой-то степени.

И вот после всего этого один простой вопрос: а что, умение обращаться с собственным телом в базу не входит? Это вообще как?!

parent From Parthen profile Sat Oct 5 16:51:49 2024 UTC pencil

userpic

Re: Re: Блок-схемы

>базовые навыки работы со всякими инструментами тоже полезны, так что, например, "уроки труда" с моей точки зрения вполне уместны.

Безусловно. Тут чему-то учат (хотя разделение технологии на мужской и женский класс идиотское)

>Я, кстати, не знаю, существуют ли они сейчас, но умение распилить доску, остругать рубанком какой-нибудь черенок для лопаты и заменить электрическую розетку в стене

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

>а что, умение обращаться с собственным телом в базу не входит? Это вообще как?!

Гэм, у нас видимо разные представления о физкультуре. Я в общем-то за то, чтобы была вот такая физкультура на которой реально учили всякое делать. Ну, через козла там прыгать, плавать, сальто делать и вот это все.

Но у меня этим занимались раз в пару месяцев, в основное время упражнения из годами одинаковой разминки - потом идите в волейбол до конца урока играйте. Т.е. суть физкультуры, как мне объясняли - держать нас в "форме".

Переодически сдавались нормативы, которые вообще странные. Я вот высокий, мне бегать было легко. А были люди метр с кепкой, они хоть надорвутся но бегать как я не смогут. Но оценку хуже меня им поставят.

parent From Andrey V. Stolyarov profile Sat Oct 5 16:59:09 2024 UTC pencil

userpic

Re: Блок-схемы

Пардон, у вас физкультура была дебильная, хотя даже ещё не самая дебильная, бывает намного дебильнее. Ну так и что? В школе вообще все предметы преподаются в основном так, что туши свет и сливай воду. А уж найти отдельно взятую школу, где какой-то наперёд заданный предмет преподаётся так, что лучше б его вообще никак не преподавали — это, я бы сказал, вообще проще простого. Но этак мы так, чего доброго, всю школу выпилить решим, вот просто как явление, чтобы по мелочам не размениваться.

parent From anon (unverified) Sat Oct 5 17:01:33 2024 UTC pencil

Re: Re: Блок-схемы

А почему лингвистика не факт, что наука?

parent From Andrey V. Stolyarov profile Sat Oct 5 17:06:20 2024 UTC pencil

userpic

Re: Блок-схемы

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

Я на самом деле не стану прямо однозначно утверждать, что лингвистика не наука. Просто для меня это не факт.

parent From Artem (unverified) Sun Oct 6 10:06:52 2024 UTC pencil

Re: Re: Блок-схемы

Лингвистика разная бывает. Ещё лет 150 назад было принято считать, что лингвист это такой высокомудрый человек, который точно знает, как должно, а как ни в коем случае нельзя говорить на некоем языке. Ныне преобладает другое мнение, что лингвист это человек, который изучает (не знает, а именно изучает), как говорят разные люди, что при этом имеют в виду, и как их понимают другие. И если второго я могу назвать учёным, то насчёт первого я порой сомневаюсь, считать ли его хотя бы представителем человеческого рода.

parent From Artem (unverified) Sun Oct 6 11:52:35 2024 UTC pencil

Re: Re: Re: Блок-схемы

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

parent From Andrey V. Stolyarov profile Thu Oct 10 11:55:12 2024 UTC pencil

userpic

Re: Блок-схемы

Вообще, кстати, интересно это. Дело в том, что лично меня все взрослые, какие окружали меня в детстве, уже годам к четырём совершенно категорически не могли обмануть, я всё враньё пропаливал лучше любого полиграфа, а ещё всё помнил (типа, я не злопамятный, просто злой и память хорошая) — когда, кто и какую пургу мне пытался прогнать, и любые неуклюжие попытки опять мне чего-то навешать меня совершенно дико выбешивали, причём почему-то в особенности ситуация "а ты же раньше говорил/а совсем другое", когда я отчётливо всё помнил, а тот взрослый, которого я спалил на самопротиворечии, естественно, уже успел забыть, какой ахинеи он там раньше мне успел наговорить по рассматриваемому предмету. А адекватно выражать недовольство словами я в том возрасте, понятное дело, не умел, но при этом совершенно не считал нужным сдерживать эмоции, сейчас даже слегка забавно это вспоминать — уж не знаю, что соседи думали по этому поводу, но было всегда очень громко. Надо сказать, дед у меня был поумнее остальных "причастных к воспитанию", вот он первый перестал пытаться врать по каким бы то ни было поводам — видимо, всё понял.

Став чуть постарше, ну там типа 7-8-10, видел, как уже другие взрослые пытаются дурить их собственную мелочь, и иногда пытался им объяснить, что их всё равно пропалят. Был почему-то уверен, что все дети поголовно любое враньё палят так же, как и я.

Наверное, всё-таки ошибался.

parent From Artem (unverified) Fri Oct 11 12:57:05 2024 UTC pencil

Re: Re: Блок-схемы

В моём случае было куда проще: информацию о том, что я всё выдумал, а на самом деле этого не было, потому что не было и не могло быть никогда, мне сообщали по самому быстрому и надёжному для такого рода сообщений каналу связи -- кулаком в голову. Но это _я_ так говорю, на самом деле, разумеется, никто меня и пальцем не трогал ;-)

Обычно дети больше верят своим родителям, чем себе.

parent From Artem (unverified) Sun Oct 6 10:40:18 2024 UTC pencil

Re: Re: Re: Блок-схемы

Не нравится, да. Самое веселье начинается, когда осознаёшь, что на направление, у которого прямо в названии первым же словом стоит "информатика", поступила прорва народу, которые в школе забили на эту вашу информатику здоровенный болт, а поступали через ЕГЭ по, мать её, физике. А что, какая разница, в школе всё равно ничему толком не учат, поэтому давайте отложим всё обучение до вуза.

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

Кстати, некоторые особенности восприятия действительности другими людьми, в особенности моими однокурсниками, стали понятнее после того, как я осознал, что слово "эволюция" в их понимании означает только лишь усложнение внутреннего устройства с течением времени. Хотя вообще-то это необязательно так, и дегенерация (вырождение) это такой же вид эволюции, как и ароморфоз (повышение уровня организации), а самый частый путь эволюции предполагает лишь незначительные изменения, не усложняющие и не упрощающие организм в целом. Да и время само по себе значения не имеет. Вот и получается, что, раз эволюция объективна и неизбежна, и софт ей тоже подвержен, то со временем этот самый софт может лишь усложняться и повышать системные требования, но никак не снижать их, и уж точно не топтаться на месте с минорными изменениями.

parent From Artem (unverified) Sun Oct 6 11:44:08 2024 UTC pencil

Re: Re: Re: Блок-схемы

У нас в универе освобожденных от физкультуры не существует ;-) А справка о том, что ты -- самый тяжело больной в мире человек, просто обязывает ходить не на направление по выбору (типа плавания, или баскетбола), а на специальное направление для вот таких вот. Две пары в неделю, как все.

parent From Andrey V. Stolyarov profile Sun Oct 6 12:27:52 2024 UTC pencil

userpic

Re: Блок-схемы

Насколько я понимаю, это дебильное понятие "освобождения по состоянию здоровья" бывает только в школе. У нас, когда я был студентом, тоже не было никаких освобождений. Ну, по правде говоря, у нас на курсе не было вроде бы ни одного инвалида (настоящего инвалида, чтобы как минимум на коляске), вот что происходит, когда инвалиды появляются, я не интересовался. Впрочем, паралимпийские игры же существуют, почему не должно быть физкультуры для инвалидов?

parent From Artem (unverified) Sun Oct 6 13:19:28 2024 UTC pencil

Re: Re: Блок-схемы

С инвалидами на колясках всё сложно. На айтишных направлениях нашего вуза их, похоже, в принципе не будет, поскольку в пятиэтажном корпусе, где у нас большинство занятий, нет ни лифтов, ни пандусов, и на большинство занятий они попасть тупо не смогут, разве что их кто-то на руках нести будет (на пятый этаж...). Но в некоторых других корпусах лифты есть, поэтому в принципе там может найтись пара-тройка колясочников. И исходя из бумаг, что я читал, исключения для них делать никто не будет, направление "адаптивная физическая культура" именно для того и придумано, чтобы адаптировать всякого рода инвалидов, независимо от того, астма у них, диабет или отсутствие нижних конечностей.

parent From Василий (unverified) Sat Oct 5 16:13:36 2024 UTC pencil

Re: Re: Re: Блок-схемы

Это просто я снова "непрофессионально" участвую в разговоре. Лень точно пояснять свои довольно непростые взгляды по этому вопросу, поэтому я просто пометил последнюю часть своего предыдущего комментария как "мнение, которое не готов защищать", решив, что и так сойдет.

Конечно, возраст тут роли не играет; чем раньше талантливые дети займутся нужным им делом, тем лучше, и что, мол, стоит преподавать предмет Х только с возраста N - и не думаю утверждать.

Тезис, который Вы отметили странным, полностью заключается в следующем. Вообще-то я думаю, что информатики в школе вообще быть не должно в том виде, в котором ее там сейчас преподают. Иначе говоря, "ничего" сейчас лучше того, что есть. Здесь утверждение буквально и не значит чего-либо ещё: т.е., я не подразумеваю, что информатика не нужна как школьный предмет или что-нибудь в этом духе.

А 10-11 классы я упомянул только в связи со следующим; если информатику 7-9 я считаю нужным и возможным выкинуть в ее текущем виде из школьной программы до исправления ситуации, то в 10-11 она как формальный предмет всё-таки нужна и в текущем печальном состоянии школьного образования, чтоб школьник получил некий набор знаний для поступления в ВУЗ соответствующей направленности (и вообще для того, чтоб решить, надо ему в этот ВУЗ или нет).

У меня вообще довольно много специфических взглядов на современную ситуацию в образовании; даже если бы я имел силы и ресурсы и задался целью сделать школьную информатику эффективной, я бы начал далеко не с изменений в существующих на практике подходах к преподаванию информатики. Так что дело, наверное, и вовсе не в том, что можно что-то там из программы выкинуть/в программу вставить. Но с этим меня сюда никто не звал.

parent From Anonymous (unverified) Tue Oct 1 12:09:22 2024 UTC pencil

Re: Блок-схемы

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

parent From Andrey V. Stolyarov profile Tue Oct 1 12:28:35 2024 UTC pencil

userpic

Re: Блок-схемы

У меня в целом точно так же, за всех программистов мира, конечно, не поручусь. Проблема в том, что учить-то надо всех (весь класс, всю группу, весь курс), а вот так вот воспринимать код с листа могут только потенциальные программисты — т.е. сильно не все.

parent From Василий Ильич (unverified) Tue Oct 1 13:46:37 2024 UTC pencil

Re: Re: Блок-схемы

> мне блок схемы всегда казались бесполезной ерундой

Я на практике видел активное использование блок-схем для решения т.н. "бизнес задач" (при том в крупнейшем банке РФ) и при составлении ТЗ.

Конкретно в программировании, наверное, оно лишнее, т.к. сам ЯП уже сам по себе достаточно описывает алгоритм.

parent From Artem (unverified) Tue Oct 1 15:55:56 2024 UTC pencil

Re: Re: Re: Блок-схемы

Известно использование блок-схем для представления медицинских алгоритмов в учебниках. Если быть точным, то используется язык ДРАКОН, это тоже блок-схемы, но с более строгими правилами и упором на понятность человеку. Может, его имело бы смысл применять и для других целей, но сколько-нибудь заметны только упорные/упоротые попытки приспособить его для программирования компьютеров общего назначения, главным образом путём скрещивания с языками вроде C или Python.

From CrystalCastles (unverified) Mon Sep 30 13:59:09 2024 UTC pencil

Составные литералы

В главе 4.5.1, второго тома, вы пишете что значния структурам можно присваивать только при инициализации. Напрмиер struct vector u = {5, 6, 1};. Но я увидел, как в интернете структурам присваивают литералы и после инициализации, только для этого нужно уточнить тип структуры: v = (struct vector){4, 10, 3};. Это какая-то особенность современных компиляторов С, или так было можно делать всегда?

parent From Andrey V. Stolyarov profile Mon Sep 30 14:02:36 2024 UTC pencil

userpic

Re: Составные литералы

Прежде всего, "присваивать при инициализации" — это оксюморон. Присваивание и инициализация — это принципиально разные вещи, в книге этот момент подробно разобран.

Что касается литералов типа структура, то да, это, если не ошибаюсь, из "стандарта" C99. Психически здоровые люди такого не делают. Я вам больше скажу, нормальные люди в программах на чистом Си никогда не присваивают структуры, не передают их в функции по значению и не возвращают из функций, несмотря на то, что это всё в Си стало "можно" задолго до первого стандарта.

Сразу же оговорюсь на всякий случай, что в C++ ситуация совершенно иная, но это и язык другой.

UPD: мне совершенно не интересно в сотый раз повторять, почему "стандарты" недопустимы и всё, что из них пришло, использованию не подлежит. На этот сайт вы зашли по ошибке, интернет большой, пойдите куда-нибудь ещё.

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

From Andrew (unverified) Sat Sep 28 15:00:26 2024 UTC pencil

Написание конспектов при изучении программирования и компьютерных наук

Здравствуйте. Хотел бы поинтересоваться Вашим мнением по поводу того, стоит ли делать конспеты, изучая программирование и компьютерые науки?

parent From Andrey V. Stolyarov profile Sat Sep 28 16:41:22 2024 UTC pencil

userpic

Re: Написание конспектов при изучении программирования и компьютерных наук

Это индивидуально, но, если вас это интересует, лично я довольно часто конспекты делаю.

From Ilya profile Wed Sep 25 12:52:25 2024 UTC pencil

Детали реализации идеального языка

У меня есть несколько вопросов касательно деталей реализации идеального языка, буду очень признателен если ответите хотя бы на часть из них.

1) Как по вашему должна выглядеть система модулей? Может взять за основу какую либо из существующих языков? Очевидно, что можно сделать лучше чем сишные инклюды.

2) Как должна выглядеть реификация стека? Из FAQ не понял. Из того что описано в статье 3.5.2, правильно ли я понял, что достаточно лишь 2 ключевых слова, которые действуют аналогично функциям setjmp и longjmp?

3) Непонятно для чего нужно давать программисту возможность определять конвенцию вызова подпрограмм, какие у этого use cases? Первое что в голову приходит, что бы использовать библиотеки других языков, помимо Си, но вы возможно имели ввиду что то еще. И как будет выглядеть реализация?

4) Как передать макропроцессору данные о типах выражений, если сами выражения могут состоять из макро-вызовов? При стратегии top-down expansion, я решения тут не вижу (А bottom-up использовать нельзя, ведь тогда не получится написать макрос, который выдает вызов другого макроса).

parent From Andrey V. Stolyarov profile Wed Sep 25 13:12:59 2024 UTC pencil

userpic

Re: Детали реализации идеального языка

> 1) Как по вашему должна выглядеть система модулей?

Подозреваю, что на уровне самого языка модульности быть не должно вообще (собственно, в Си её и нет, а инклуды — это хак, эмулирующий модули).

Наворотить "систему модульности" вроде паскалевской или какой-то ещё можно на уровне макробиблиотек.

> 2) Как должна выглядеть реификация стека?

Вместе с подпрограммой должен появляться некий структурный (если угодно, компаундный) тип, соответствующий структуре её фрейма, имена полей при этом соответствуют именам параметров и локальных переменных, и у всех этих типов должна быть общая часть, содержащая адрес возврата. Вот дальше уже надо думать более подробно: скажем, надёжная навигация в этих фреймах при отсутствии фрейм-пойнтеров невозможна, но стоит ли делать их обязательными (т.е. делать невозможным тот вариант оптимизации, который в gcc включается по -fomit-frame-pointers) для меня вопрос открытый.

> Непонятно для чего нужно давать программисту возможность определять конвенцию вызова подпрограмм

Чтобы не навязывать её. Язык вообще должен навязывать как можно меньше.

> какие у этого use cases?

Неважно. Если мы не знаем, зачем что-то может понадобиться, из этого никак не следует, что оно не понадобится. Жёсткая фиксация одной конвенции вызовов безосновательно сужает спектр доступных инструментов.

> И как будет выглядеть реализация?

Над этим я думал, ничего путного не придумал. Возможно, стоит просто зафиксировать какое-то количество предопределённых конвенций на уровне компилятора и макросам дать доступ к проверке наличия/отсутствия поддержки конкретной конвенции (нет такой — используем другую).

Вопроса номер четыре не понял.

parent From Ilya profile Wed Sep 25 15:48:01 2024 UTC pencil

Re: Re: Детали реализации идеального языка

> Наворотить "систему модульности" вроде паскалевской или какой-то ещё можно на уровне макробиблиотек

Я тоже так вначале думал, но у меня есть опасение, что если дать макросам возможность делать произвольный IO, нехороший автор библиотеки сможет исполнить вредоносный код аж во время компиляции, чего разработчик обычно ожидает меньше всего, или еще хуже, какая нибудь обезьяна начнет качать зависимости с интернета, делать fopen() по абсолютному пути ожидая там библиотеку и тд. Да, это все конечно можно и в make файле сделать, но он обычно простой и читаемый, его легко подредачить если надо.

> Вопроса номер четыре не понял.

Допустим мы хотим реализовать шаблоны, у нас есть шаблонная функция foo(T a) {...} и ее вызов foo((x + y)). Для раскрытия макроса отвечающего за шаблоны, нам необходимо получить тип выражения (x + y), но откуда макрос получит доступ к таблице переменных и их типов, если что бы ее построить, нам сначала необходимо все макросы раскрыть? При том что в нашем выражении, как оператор "+" может быть макросом (перегрузка), так и декларация переменных "x" и "y" может быть закопана глубоко под макросами. Надеюсь у меня получилось объяснить, я компиляторы пишу впервые, могу чего то не знать.

parent From Andrey V. Stolyarov profile Wed Sep 25 16:00:17 2024 UTC pencil

userpic

Re: Re: Re: Детали реализации идеального языка

> если дать макросам возможность делать произвольный IO

Об этом речи и не идёт, собственно. Произвольный IO для этого не нужен, достаточно, во-первых, уметь из тела макроса исполнить то, что в Си делает #include (т.е. заданный файл распарсить и то ли сожрать как если бы он тут был весь написан, то ли скормить макросу на вход в качестве цепочки лексем), и во-вторых, иметь возможность сохранить (возможно, с заданием имени файла, возможно, и нет) некий набор глобальных идентификаторов со всеми их (ныне известными компилятору) атрибутами.

> необходимо получить тип выражения

Всё проще. Во-первых, сами макросы должны быть сильно разных видов (в английском обычно используется слово flavor в этой роли), в том числе должен быть такой вид макросов, который, с точки зрения компилятора, тупо жрёт лексемы, которые стоят в тексте после его вызова, пока не заявит, что ему хватит. Во-вторых, аргументы макросов должны быть разного типа (NB: это не тот тип, который "тип выражения"! это другая предметная область!), и среди них должен быть тип "произвольное грамматически законченное арифметическое выражение". Такой аргумент должно быть возможно отдать компилятору на экспертизу, в том числе на предмет выяснения его типа.

parent From АнОнИмУс (unverified) Thu Sep 26 08:28:38 2024 UTC pencil

Re: Re: Re: Re: Детали реализации идеального языка

Здравствуйте, Андрей Викторович! А можете посоветовать литературку по компиляторам? Я писать компилятор не собираюсь, для общего развития, понимания. Заранее спасибо!

parent From Ilya profile Sun Oct 6 14:16:39 2024 UTC pencil

Re: Детали реализации идеального языка

Еще спрошу вдогонку

1) Во первых насчет системы типов, ну то есть понятно что bool и char надо сделать самостоятельными типами, а не числовыми, но стоит ли вообще вводить механизм неявных пререобразований? Как по мне, от них больше вреда чем пользы.

2) Если говорить про x86 бэкэнд, хватит ли для написания компилятора знаний ассемблера, описаных в вашем трехтомнике и пособии по NASM?

3) Думал сделать так что бы в функциях был defined argument evaluation order, слева направо например, с одной стороны, это даст больше гарантий и контроля в некоторых ситуациях с побочными эффектами, но с другой стороны, некоторые оптимизации станут недоступны, как думаете хорошая ли идея?

4) И последнее, будет ли возможность в таком языке реализовать ленивые вычисления?

Кстати, я тут подумал, а ведь если такой язык с изменяемым синтаксисом обретет популярность, наконец-то уйдут на свалку истории такие дебильные вещи как подстветка синтаксиса, auto formatters, LSP а вместе с ними и IDE как концепция.

parent From Andrey V. Stolyarov profile Sun Oct 6 14:38:07 2024 UTC pencil

userpic

Re: Re: Детали реализации идеального языка

> ну то есть понятно что bool и char надо сделать самостоятельными типами

Совершенно не факт. Кому надо, сделает соответствующую библиотеку. Хотя противоположное тоже не факт.

> хватит ли для написания компилятора знаний ассемблера

Вряд ли. В роли единственного бекенда i386 сейчас вряд ли будет смотреться убедительно, а x86_64 я в книге не рассматриваю.

Но на самом деле там, конечно, проблема будет уж точно не во владении конкретной системой команд.

> что бы

Блядь, заебали. Тут "бы" можно убрать без потери смысла? Нет? Тогда какой нахер пробел между ними?! Реально заебали, элементарное же правило, но нет, через одного эту херню выделывают.

> в функциях был defined argument evaluation order

Можно и сделать, почему нет. Но, судя по этому "в функциях", язык у вас в голове уже совсем не похож на то, что предполагал я. Ничего плохого в этом нет, просто не надо потом рассказывать, что это имеет какое-то отношение к моим задумкам.

> некоторые оптимизации станут недоступны,

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

> будет ли возможность в таком языке реализовать ленивые вычисления?

Ну, в том, что предполагал я, реализовать можно вообще что угодно по определению.

> а ведь если такой язык с изменяемым синтаксисом обретет популярность, наконец-то уйдут на свалку истории такие дебильные вещи как подстветка синтаксиса, auto formatters, LSP а вместе с ними и IDE как концепция.

Вот уж вряд ли. Говно не тонет.

parent From Ilya profile Mon Oct 7 02:42:47 2024 UTC pencil

Re: Детали реализации идеального языка

> Но, судя по этому "в функциях", язык у вас в голове уже совсем не похож на то, что предполагал я

Я имел ввиду подпрограммы, у меня иногда почему-то в голове идет отождествление этих понятий. Но дело даже не в этом, ранее вы писали "возможно (но не факт) в числе первичных понятий должна быть "подпрограмма", но вот тут уже надо смотреть, что получится". Мне в упор не понятно каким тогда образом создавать подпрограмму, если ее понятие не определено языком, если ввести их через макросы, аля inline, то не получится сделать рекурсию.

> элементарное же правило

Вы уж поймите, я уже 10 лет в России не живу, и в повседневной жизни у меня один английский, я и так комменты перед отправкой судорожно проверяю не попутал чего с грамматикой :)

parent From Andrey V. Stolyarov profile Mon Oct 7 07:17:36 2024 UTC pencil

userpic

Re: Re: Детали реализации идеального языка

> Я имел ввиду подпрограммы,

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

parent From Artem (unverified) Sun Oct 6 14:49:50 2024 UTC pencil

Re: Re: Детали реализации идеального языка

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

А IDE как концепции не грозит ничего, поскольку сам UNIX с его потоками текста, ежели приложить немного усилий и воображения, эту концепцию реализует на 120%, лучше, удобнее и гибче любой коммерческой или некоммерческой специализированной софтины. И абсолютно пофигу ему, что там у вас за язык, Си, Хаскель, несуществующий макроязык или вообще турецкий, извольте только найти редактор, транслятор, отладчик, и придумать удобную компоновку окон.

parent From Andrey V. Stolyarov profile Sun Oct 6 15:08:19 2024 UTC pencil

userpic

Re: Re: Re: Детали реализации идеального языка

> у меня без неё в глазах рябит и голова болит уже через максимум час (с ней могу иной раз и сутки в редакторе просидеть, забыв про сон и обед),

Довольно интересный эффект, у меня всё происходит точно так же, но в присутствии подсветки.

parent From Parthen profile Mon Oct 7 15:43:02 2024 UTC pencil

userpic

Re: Re: Re: Re: Детали реализации идеального языка

Поддержу ТСа, без подсветки работать отвратительно, в глазах начинает рябить. Как на оптическую иллюзию долго смотреть.

Причем зрение-то у меня было и есть идеальное. Видимо, от человека зависит.

parent From Ilya profile Mon Oct 7 02:33:21 2024 UTC pencil

Re: Детали реализации идеального языка

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

parent From Parthen profile Mon Oct 7 15:44:45 2024 UTC pencil

userpic

Re: Re: Детали реализации идеального языка

Попробуйте сесть дальше от монитора, при этом сделать больше масштаб текста.

From Alex (unverified) Sat Sep 21 17:49:58 2024 UTC pencil

Насчёт книги

Не думали ли вы о написании книги на, так сказать, философскую тему?

parent From Andrey V. Stolyarov profile Sat Sep 21 17:59:36 2024 UTC pencil

userpic

Re: Насчёт книги

Рано или поздно напишу, естественно. Проблема в том, что в сутках только 24 часа.

From Jack (unverified) Sat Sep 21 09:26:02 2024 UTC pencil

Олимпиады по программированию

Такие олимпиады имеют какой-то смысл или они только калечут мозг?

parent From Andrey V. Stolyarov profile Sat Sep 21 10:23:32 2024 UTC pencil

userpic

Re: Олимпиады по программированию

Только калечат мозг.

parent From Anonymous (unverified) Thu Sep 26 07:24:25 2024 UTC pencil

Re: Re: Олимпиады по программированию

А если не задрачивать задания, а заниматься олимпиадным программированием только на самой олимпиаде? Мне кажется, даже так у умного студента есть шанс получить приз.

parent From Andrey V. Stolyarov profile Thu Sep 26 07:59:41 2024 UTC pencil

userpic

Re: Re: Re: Олимпиады по программированию

Дело не в "задрачивании", дело в самом по себе программировании на скорость, когда вдобавок известно, что к написанному коду никто никогда не станет возвращаться.

parent From GuestbookSearch (unverified) Sat Sep 21 13:13:34 2024 UTC pencil

Re: Олимпиады по программированию

Данная тема уже много раз поднималась в гостевой:

http://stolyarov.info/guestbook/archive/2/#comment-1672

http://stolyarov.info/guestbook/archive/6/#comment-5348

From u-micro (unverified) Thu Sep 19 11:44:01 2024 UTC pencil

Crocco Licenses

Что думаете про лицензирование ПО под CC-BY-NC-SC-4.0?https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.txt

А также про https://sourcefirst.com/ ?

Я справшиваю, чтобы узнать чем ваше видение "свободной" лицензии отличается от других людей, организаций etc?

parent From Andrey V. Stolyarov profile Thu Sep 19 11:58:24 2024 UTC pencil

userpic

Re: Crocco Licenses

> CC-BY-NC-SC-4.0

Отказать. NC означает "non-commercial", это вообще в принципе не то, что меня сколько-нибудь интересует. CreativeCommons вообще, по-моему, для софта не годится (в смысле, ничего из их лицензий), а уж всякие вот эти вот "для некоммерческого использования" — это уже просто проприетарщина. Это, знаете ли, и мелкомягкие постоянно всяким университетам свой софт "дарят". Убил бы.

> https://sourcefirst.com/

Текст по ссылке любопытный, но сам текст лицензии (или что там у них, какой-то "template") они разместили, как я понимаю, на гитлабе, который — surprize! — в моём основном браузере не открывается, даже если JS включить. Я не настолько заинтересован в их творчестве, чтобы прям щас запукать вторые иксы из-под изолированного аккаунта, где худо-бедно живёт долбаный chromium. Поступить с хромиумом так, как я раньше привык делать — ssh -X на локальную машину — уже не получается, у него для этого гуй слишком тяжёлый, трафик (локальный, блядь) машину просаживает.

> чем ваше видение "свободной" лицензии отличается

А что, это не очевидно? Individuals only. Точка. Если пытаетесь сбиться в кучку, каковая кучка начинает некое самостоятельное существование — то хер вам, а не свободу. Причём достаточно от кучки обратно отбиться, и можно пользоваться всеми благами.

Между прочим, цитата из текста этих sourcefirst:

Unlike other organizations, we have trademarked the term “source first”. This makes it an enforceable term with teeth to it that we can stand behind.

Ну то есть как раз и имеем очередную химеру. И да, таким я тоже никаких возможностей предоставлять не хочу. Как максимум — free as in free beer, в смысле вот исходники, можете их откомпилить и результат гонять на своих компах, но ни модифицировать, ни распространять не можете, это привилегии индивидов, действующих от своего имени.

Собственно, это и есть моя лицензия, если совсем кратко.

parent From u-micro (unverified) Thu Sep 19 13:08:13 2024 UTC pencil

Re: Re: Crocco Licenses

# Grayjay Core License 1.0

## Acceptance By using the software, you agree to all of the terms and conditions below.

## Copyright License FUTO Holdings, Inc. (the “Licensor”) grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject to the limitations below.

## Limitations You may use or modify the software only for non-commercial purposes such as personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, all without any anticipated commercial application.

You may distribute the software or provide it to others only if you do so free of charge for non-commercial purposes.

Notwithstanding the above, you may not remove or obscure any functionality in the software related to payment to the Licensor in any copy you distribute to others.

You may not alter, remove, or obscure any licensing, copyright, or other notices of the Licensor in the software. Any use of the Licensor’s trademarks is subject to applicable law.

## Patents If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.

## Notices You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms. If you modify the software, you must include in any modified copies of the software a prominent notice stating that you have modified the software, such as but not limited to, a statement in a readme file or an in-application about section.

## Fair Use You may have "fair use" rights for the software under the law. These terms do not limit them.

## No Other Rights These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the Licensor from granting licenses to anyone else. These terms do not imply any other licenses.

## Termination If you use the software in violation of these terms, such use is not licensed, and your license will automatically terminate. If the licensor provides you with a notice of your violation, and you cease all violation of this license no later than 30 days after you receive that notice, your license will be reinstated retroactively. However, if you violate these terms after such reinstatement, any additional violation of these terms will cause your license to terminate automatically and permanently.

## No Liability As far as the law allows, the software comes as is, without any warranty or condition, and the Licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.

## Definitions - The “Licensor” is the entity offering these terms, FUTO Holdings, Inc. - The “software” is the software the licensor makes available under these terms, including any portion of it. - “You” refers to the individual or entity agreeing to these terms. - “Your company” is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. Control means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect. - “Your license” is the license granted to you for the software under these terms. - “Use” means anything you do with the software requiring your license. - “Trademark” means trademarks, service marks, and similar rights.

parent From Andrey V. Stolyarov profile Thu Sep 19 13:21:39 2024 UTC pencil

userpic

Re: Re: Re: Crocco Licenses

А, ну тут всё даже хуже, чем я ожидал. Во-первых, я не вижу, что общего этот текст имеет с целями, заявленными на их основном сайте (по-моему, вообще ничего). Во-вторых

> only for non-commercial purposes such as personal use

Это, собственно говоря, называется "первая доза бесплатно". Подобную мразь нужно отстреливать и топить в бочках с дерьмом.

Впрочем, чего ещё ожидать от юридической хари, которая к тому же начала с регистрации тривиального словосочетания в качестве торговой марки.

parent From Ilya profile Fri Sep 20 13:58:15 2024 UTC pencil

Re: Re: Crocco Licenses

Не думали открыть пожертвования на юриста, который отсмотрел бы вашу лицензию на юридические неточности?

parent From Andrey V. Stolyarov profile Fri Sep 20 15:16:58 2024 UTC pencil

userpic

Re: Crocco Licenses

Я не знаю, где взять англоязычного юриста. вдобавок ещё и адекватного.

parent From Ага (unverified) Sat Sep 21 05:02:10 2024 UTC pencil

Re: Re: Re: Crocco Licenses

Вдобавок разбирающегося в особенностях различных юрисдикций

parent From Anonymous (unverified) Tue Oct 15 10:56:48 2024 UTC pencil

Re: Re: Crocco Licenses

Возможно не в тему, но разве трэйдмарк это не отличное оружие против стандартизаторов? Поясню, допустим кто то написал код компилятора для языка программирования и тут пришел комитет стандартизации и решил высрать стандарт этого языка против воли его создателя, как это предотвратить? Я поначалу думал, что ваша лицензия на коде компилятора спасет, но ведь комитет сам код не пишет. А вот если зарегестрировать имя языка как торговую марку, то комитет стандарт может и напишет, но назвать его стандартом языка X без одобрения создателя уже не сможет, а значит не сможет и подменять понятия, выдавая свое поделье за изначальный язык. Да, трэйдмарк это насилие, на разве на войне против стандартизаторов не все средства хороши?

parent From Andrey V. Stolyarov profile Tue Oct 15 17:54:33 2024 UTC pencil

userpic

Re: Crocco Licenses

Ага, конечно. Ну пойди попробуй зарегистрируй торговую марку (точнее, в российском законодательстве это называется "товарный знак"). NB: копирайт зарегистрировать довольно просто, для физлица процесс вполне преодолимый (сам когда-то регал, было и такое); патент уже без патентного поверенного получить нереально, но если не жалко кучу денег на этого паразита — то в принципе вроде бы реально; но вот товарный знак — это что-то такое высокое, минимум на год, и там косты (включая госпошлину) такие, что даже долларового миллионера жаба придушит насмерть.

А против комитетов есть ровно одно средство, зато действенное: публичный бойкот. Если бы те же Ритчи, Керниган и Томпсон не сопли жевали, а чётко заявили, что никакой стандарт Си не признАют, каков бы он ни был, то этот долбаный комитет мог бы хоть круглосуточно с бубнами плясать — никто бы никогда на их поделье внимания не обратил.

From Столяридзе (unverified) Tue Sep 17 15:05:59 2024 UTC pencil

Ошибка: 2 издание, книга 1, стр. 42

Повтор слова "ещё" на стр. 42 книги 1 второго электронного издания: "К сожалению, есть ещё ещё одна не очень приятная вещь,"

parent From Andrey V. Stolyarov profile Tue Sep 17 16:53:54 2024 UTC pencil

userpic

Re: Ошибка: 2 издание, книга 1, стр. 42

Чувак, ты не столяридзе, ты баянидзе. Фффтыкать сюда.

From cmustdie (unverified) Mon Sep 16 15:41:02 2024 UTC pencil

The Definitive C++ Book Guide and List

На stack overflow один из самых популярных постов это "The Definitive C++ Book Guide and List [URL removed]
В этом посте представлены книги, одобренные "Association of C and C++ Users (ACCU)". Подскажите, знакомы ли вы с какой-либо книгой из этого списка и можете ли что-то рекомендовать?

parent From Andrey V. Stolyarov profile Mon Sep 16 17:32:06 2024 UTC pencil

userpic

Re: The Definitive C++ Book Guide and List

Ни одна из этих книг не посвящена языку C++, только той ни на что не годной мерзости, которую сотворил комитет по стандартизации и его прихвостни.

Судя по всему, вы ошиблись сайтом, вам не сюда. Я категорически не понимаю, какого дьявола на мой сайт постоянно тянет подобную вам публику.

parent From cmustdie (unverified) Mon Sep 16 18:24:27 2024 UTC pencil

Re: Re: The Definitive C++ Book Guide and List

Я категорически не понимаю, какого дьявола на мой сайт постоянно тянет подобную вам публику.

Лично меня на ваш сайт тянет желание набраться мудрости и, конечно, желание стать в итоге хотя бы хорошим программистом.

parent From Andrey V. Stolyarov profile Mon Sep 16 18:32:54 2024 UTC pencil

userpic

Re: The Definitive C++ Book Guide and List

Притащенная вами сюда ссылка на список ньюфажных книжек заставляет усомниться, что вы здесь найдёте для себя какую-то мудрость.

parent From Anonymous (unverified) Tue Sep 17 05:30:02 2024 UTC pencil

Re: The Definitive C++ Book Guide and List

Автор данного сайта считает, что все стандарты языков программирования C и C++, да и вообще комитетские стандарты в целом хуже чем оригинальные версии языков (C89 и C++ до первого стандарта) и у него есть на то основания. Даже из этих версий автор предлагает использовать не всё подряд, а только нужное.

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

Например в главе о паскале нет ничего про динамические массивы и это сделано специально. Вообще паскаль рассматривается как некий трамплин на пути обучения программированию, позволяющий освоить базовые концепции, которые в более продвинутых языках вроде C и C++ размазаны или вообще не входят в язык, в частности отличие процедур от функций и побочные эффекты, но которые необходимо понимать. чтобы быть программистом, понимающим что он делает, а не кодером-макакой.

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

Если я что-то переврал, прошу прощения, я просто кратко пересказал своё понимание идеи обучения программированию Столярова.

parent From Andrey V. Stolyarov profile Tue Sep 17 08:09:17 2024 UTC pencil

userpic

Re: The Definitive C++ Book Guide and List

Ну, допустим, я это раскрыл, поскольку в целом изложено верно, хотя, конечно, причины не рассматривать динамические массивы в Паскале и причины не применять ничего из поделий комитетов, склепавших "стандарты" Си и Си++ (и отнюдь не при обучении, а вообще никогда, и не только этих комитетов, а по возможности вообще никаких), очевидно, не имеют между собой ничего общего.

Тут вопрос скорее в том, зачем вы время потратили на этот коммент.

parent From Доброжелатель (unverified) Tue Sep 17 10:48:53 2024 UTC pencil

Комитетские стандарты Си

комитетские стандарты в целом хуже чем оригинальные версии языков (C89 и C++ до первого стандарта)

C89 — американский комитетский стандарт

parent From Andrey V. Stolyarov profile Tue Sep 17 11:09:41 2024 UTC pencil

userpic

Re: Комитетские стандарты Си

Насколько я вижу, в C89 ничего нового не нагвоздили, просто описали практику, которая уже существовала в основных на тот момент поддерживаемых компиляторах (основных изменений в сравнении с классическим K&R — типы параметров в заголовках функций, модификатор const и enum'ы; компиляторов, не поддерживающих что-то из этого, на тот момент уже никто не делал). Это даёт возможность применять C89/C90/ANSI C в роли приемлемой спецификации — в частности, указывать компиляторам в качестве избранного диалекта. Впрочем, это было бы не нужно, если бы не появились более поздние "стандарты", начиная с C99, слишком одиозного, чтобы его можно было всерьёз обсуждать.

parent From Anonymous (unverified) Tue Sep 17 11:15:16 2024 UTC pencil

Re: Re: Комитетские стандарты Си

Строчные комменты через // из C++ пожалуй всё-таки хорошая штука.

parent From Andrey V. Stolyarov profile Tue Sep 17 11:30:50 2024 UTC pencil

userpic

Re: Комитетские стандарты Си

Вопрос так не стоит. Бойкот комитетских поделий ценен сам по себе, и "разбавлять" его подобным черри-пикингом неприемлемо.

parent From Доброжелатель (unverified) Tue Sep 17 13:02:49 2024 UTC pencil

Re: Re: Комитетские стандарты Си

Были и необъяснимые бессмысленные сужения по сравнению с практикой:

o The ANSI draft has changed the syntax of labels. A label now must always be followed by a statement.

This means that code like this is no longer accepted:

{
jump_label:     
}     

If you have code like this, change it to look like this:

{
jump_label:                                                                                             
;       /* need a statement here! */                                                                  
}                          

parent From Andrey V. Stolyarov profile Tue Sep 17 16:51:30 2024 UTC pencil

userpic

Re: Комитетские стандарты Си

Кстати интересно, я на это не обращал внимания. Возможно, я слишком лояльно отнёсся к C89. Подумаю, что с этим сделать.

parent From C (unverified) Fri Sep 20 09:25:52 2024 UTC pencil

Re: Re: Re: Комитетские стандарты Си

Где бытовала такая практика? В каких-нибудь самодельных реализациях, вроде Lattice C?

В UNIXовом pcc, например, ничего подобного не видно: cgram.y

stmt_list:	   stmt_list statement

statement:	   e   SM
		|  ASM SM
		|  compoundstmt
		|  ifprefix statement
		|  ifelprefix statement
		|  whprefix statement
		|  doprefix statement WHILE  LP  e  RP   SM
		|  forprefix .e RP statement
		| switchpart statement
		|  BREAK  SM
		|  CONTINUE  SM
		|  RETURN  SM
		|  RETURN e  SM
		|  GOTO NAME SM
		|   SM
		|  error  SM
		|  error RC
		|  label statement
		;
label:		   NAME COLON
		|  CASE e COLON
		|  DEFAULT COLON

Метка синтаксически часть помеченного ею statement, а не отдельная равноправлная конструкция.

From cmustdie (unverified) Mon Sep 16 09:24:02 2024 UTC pencil

Путь начинающего программиста

Добрый день! Закончил читать 3ех томник. Спасибо огромное за ваш труд. Сейчас в свое удольствие пишу проекты на С, но также задумываюсь о будущем. Куда бы вы посоветовали посмотреть (кроме веба конечно) в качестве карьеры программиста? Гейм дев? Системное программирование?

parent From Andrey V. Stolyarov profile Mon Sep 16 10:22:24 2024 UTC pencil

userpic

Re: Путь начинающего программиста

Для начала поищите в сети как-нибудь на досуге "буквенные наращения" и больше никогда не употребляйте конструкции, подобные этому вашему кошмарному "3ех томник".

А так — вы ответ знаете сами: кроме веба. Собственно, практически всё, кроме веба. Ну, ещё поостерегитесь работать в банках, это тоже отупляет.

parent From ? (unverified) Mon Sep 16 12:46:57 2024 UTC pencil

Re: Путь начинающего программиста

> Собственно, практически всё, кроме веба.

А вся огромная смартфонная индустрия разве не туда же?

parent From Andrey V. Stolyarov profile Mon Sep 16 13:22:01 2024 UTC pencil

userpic

Re: Путь начинающего программиста

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

parent From Мартышка (unverified) Mon Sep 16 13:44:18 2024 UTC pencil

Re: Re: Путь начинающего программиста

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

parent From Andrey V. Stolyarov profile Mon Sep 16 14:14:44 2024 UTC pencil

userpic

Re: Путь начинающего программиста

Я тоже никогда не работал в банках, я только наблюдал результаты.

Моё личное предположение состоит в том, что в банках уровень зарплат выше, чем в среднем по рынку, но вместо конкуренции за эти рабочие места возникает практика "пристройства" всевозможных родственников и прочих "своих" (у меня нет иного объяснения удивительно низкому уровню подготовки программистов, работающих в банках). Когда попадаешь в среду, состоящую из тупых, сам становишься тупым, это не новость совершенно.

На самом деле вполне возможно, что я вижу не всю картину и не до конца понимаю происходящее, но факт тот, что банковских программистов (как бывших, так и действующих) я видел довольно много, но людей серьёзного уровня среди них не видел вообще ни одного. Хотя при том уровне зарплат банки могли бы позволить себе нанимать специалистов получше.

parent From Anonymous (unverified) Mon Sep 16 21:22:48 2024 UTC pencil

Re: Путь начинающего программиста

Я сам работал в банках программистом, и мне не понравилось.

Основная проблема в том, что банки - это не IT компании, как бы они ни утверждали обратное (а прихвастнуть собой они любят). Банкам по большей части интересно только зарабатывание денег, и они очень любят направлять направлять программистов на те задачки, которые им эти деньги принесут. В частности, в небольших банках бывает популярен подход "раз-раз-и-в-продакшен" (на самом деле там не "раз-раз", но не хочу здесь неприличные словечки употреблять): выкатим в прод что-то такое сырое, полурабочее, но позволяющее отжать лишнюю копейку, назовем это словом Minimum Valuable Product, потом на каком-нибудь квартальном отчете перед большими начальниками гордо отрапортуем, какие мы молодцы, как круто мы все достигли, какая мы классная команда. А то, что в законченном продукте (пусть он и Minimal) баги на проде не имеют право на существование (и никто меня никогда не убедит в обратном), никого не волнует - как же так, копеечку профукаем. И сидит программист, смотрит на эту кучу говнокода и плачет кровавыми слезами за то, что на такой работе нифига квалификации не набрался.

Ну зато денюжков неплохо платят, да.

From Resp (unverified) Wed Sep 11 23:22:24 2024 UTC pencil

Одноплатники

Рассматриваю идею приобретения одноплатника для использования в качестве роутера, сервера для почты и Талассы.

Правильно ли я понимаю, что единственный разумный вариант - поиск первого Raspberry, поскольку на всех остальных прорва ненужных мощностей и соответствующее энергопотребление?

Вы, вроде, как раз первый Raspberry используете в роли роутера, но также упоминали, что работали с Nano Pi, Orange Pi и другими. Поскольку вы в этом явно разбираетесь лучше, то не могли бы вы подсказать появились ли какие-то альтернативы первой Raspberry или же стоит попробовать отыскать именно её?

parent From Andrey V. Stolyarov profile Thu Sep 12 09:45:31 2024 UTC pencil

userpic

Re: Одноплатники

Первую Raspberry в качестве роутера я использовать давно перестал. Дело в том, что у неё всего один сетевой интерфейс, приходится на нём поднимать vlan'ы, но для этого нужен свич, умеющий эти самые vlan'ы, а это далеко не всякий свич умеет. Сейчас у меня в роли роутеров Orange Pi R1. А ещё я не знаю, как сейчас с поддержкой первой Raspberry Pi в соответствующих дистрах линукса, и не удивлюсь, если плохо: в наше безумное время такое вполне возможно.

У Orange Pi R1 другая проблема: мало оперативной памяти. Честно говоря, я не пробовал на ней поднимать Apache, но не исключаю, что его "современным" версиям там окажется тесновато.

parent From Анон (unverified) Thu Sep 12 14:29:44 2024 UTC pencil

Re: Одноплатники

https://forum.armbian.com/topic/28792-after-update-etcnetworkinterfaces-ignored/

Пожалуйста, будьте осторожны и внимательны при выборе armbian в качестве основной операционной системы для одноплатника. Существует риск столкнуться с проблемами, из которых выбраться может занять много времени. Я сам столкнулся с аналогичной ситуацией, как у автора поста на форуме, только я не обновлял систему, а установил с нуля, и, к сожалению, не смог найти решение, потратив при этом значительное количество времени. Вероятно, сеть можно было бы настроить как навязывают разработчики через netplan/systemd-network или что-то подобное, однако у меня не было желания углубляться в изучение и переписывать свои конфигурации с нуля. Еще хочу добавить, что переход на sysvinit лично мне не помог, возможно из-за моих кривых рук. Однако важно одно: раньше с сетью проблем не было.

parent From Andrey V. Stolyarov profile Thu Sep 12 15:14:23 2024 UTC pencil

userpic

Re: Re: Одноплатники

> netplan/systemd-network

Не имеют права на существование. Вообще. Я даже сомневаюсь, что команда ip имеет право существовать.

По поводу сетки есть стопроцентно работающее решение: перейти на SysVinit (у меня с армбианом это получалось пока что всегда), добиться, чтобы работал /etc/rc.local, выпилить все дебиановские пляски с ifup/ifdown и делать всю настройку сети явными командыми /sbin/ifconfig и /sbin/route прямо из rc.local.

parent From Владислав (unverified) Thu Sep 12 15:22:49 2024 UTC pencil

Если решите попробовать что-нибудь из *BSD

Использовал OrangePi R1 512MB в течении года в качестве роутера. Ставил на него OpenBSD 7.4. Иногда случались Kernel Panic. Так и не понял по какой причине.

Недавно поменял его на NanoPi R2S 1GB. Планировал поставить FreeBSD 13.3, но как оказалось, у них драйвер для контроллера Realtek RTL8153B находится в подвешенном состоянии: система после загрузки просто не "видит" второй порт. Его можно заставить работать, дав одну команду, но насколько надёжно он будет работать дальше -- неясно. На форуме по приложенной ссылке сообщили, что в OpenBSD поддержка этого контроллера есть, поэтому снова поставил OpenBSD, только версии 7.5. Пока полёт нормальный. NetBSD не пробовал.

Также скорее всего вам понадобится U-boot. Сам компилировал его только один раз для OrangePi R1. Как я понял, компиляция U-boot дело НАСТОЛЬКО сумбурное, что притрагиваться к нему больше желания нет. Для NanoPi R2S брал из pkg-пакета FreeBSD c сайта pkgs (dot) org. Оснорожно (!), сайт с JS. Правда есть ещё один известный мне вариант достать скомпилированный U-boot. В одном треде на форуме FreeBSD предлогали использовать U-boot, скомпилированный проектом Armbian.

parent From Resp (unverified) Mon Sep 16 21:24:02 2024 UTC pencil

Re: Если решите попробовать что-нибудь из *BSD

Имеет ли смысл смотреть в сторону NanoPi R3S 2GB? Там где-то пишут, что нагревается он послабее NanoPi R2S, зато оперативки побольше, хотя в принципе для моих целей столько, наверное, не нужно.

P.S. Что вы, кстати, можете сказать про нагрев NanoPi R2S?

Касательно своего исходного комментария - в целом у меня есть коробочный роутер с openwrt (даже он туда с трудом влезает), поэтому в принципе использование одноплатника в роли роутера не принципиально, но желательно.

P.S. Пока выбираю между Orange Pi R1 и NanoPi R2S/R3S, причем, к моему удивлению, первый раздобыть, кажется, проще.

parent From Владислав (unverified) Thu Sep 19 07:54:21 2024 UTC pencil

Re: Re: Если решите попробовать что-нибудь из *BSD

> Имеет ли смысл смотреть в сторону NanoPi R3S 2GB?

Про данную модель ничего сказать не могу.

> P.S. Что вы, кстати, можете сказать про нагрев NanoPi R2S?

И NanoPi R2S и OrangePi R1 греются. Конкретные цифры сказать не могу. Но скажу, что точно стоит задуматься о покупке радиатора на процессор или корпуса. Не видел, чтобы для OrangePi R1 продавали корпус. Поэтому сам купил для него радиатор. Для его модификафии -- OrangePi R1 Plus -- корпуса продаются. NanoPi R2S тоже продаётся вместе с корпусом.

Также хотел бы отдельно сказать, что у меня так и не получилось на NanoPi R2S (стоит OpenBSD 7.5) заставить нормально работать второй Ethernet порт, на котором контроллер Realtek RTL8153B. Через час работы перестаёт работать и начинает сыпать ошибки. Поэтому продолжу использовать R2S только с одним портом.

Начинаю потихоньку заглядываться на упоминавшиеся где-то в гостевой книге мини-ПК на Intel N100. В одной приглянувшейся мне модели используются одинаковые Ethernet контроллеры от Intel, а с ними вроде легче, чем с Realtek.

parent From Oliver (unverified) Tue Sep 17 06:12:02 2024 UTC pencil

Re: Если решите попробовать что-нибудь из *BSD

Разнообразие ОС - это есть хорошо, только у меня есть просьба к почетателям тех же систем BSD раскрывать нюансы работы этих систем более детально. Иначе получится, как вышло у меня, когда я начитался лестных отзывов о OpenBSD, установил ее себе, а оказалось, что работать в ней достаточно некомфортно бывает. Я уже описывал свой опыт, но повторюсь: лично у меня система работала заметно медленее чем Линукс, и это было даже заметно при выполнении команд в терминале. Файловой системы EXT4 на тот момент она не видела, то есть если бы у меня был бы раздел с данными в формате EXT4, доступа к ним не было. Возможно, что сегодня этих проблем нет, но вот тогда они были, и при том о тормозах системы я читал от других ее пользовалей. Не спорю, что у конкретной ОС есть свои плюсы, но хотелось бы чтобы помимо плюсов упоминались и явные минусы, чтоб люди за зря не теряли времени. С уважением

parent From Andrey V. Stolyarov profile Tue Sep 17 08:15:35 2024 UTC pencil

userpic

Re: Если решите попробовать что-нибудь из *BSD

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

parent From . (unverified) Tue Sep 17 18:26:37 2024 UTC pencil

Re: Re: Если решите попробовать что-нибудь из *BSD

Странные у вас претензии. Я бы понял, если бы это была претензия к кому-то конкретному, кто вас обманул, обещал рассказать всё, ничего не утаивая, но выпятил плюсы и скрыл минусы. Ну или, если бы весь интернет был завален дифирамбами в адрес BSD-подобных систем, тогда ещё можно было бы расценить ваш текст как крик души обращённый ко всем, в стиле "люди, доколе?" А так, какой-то детский сад получается, с детскими обидами, честное слово...

Ну а вообще, задать конкретный вопрос чтобы получить нужную вам информацию является вашей ответственностью. Глупо ожидать от короткого сообщения в гостевой книге, что в нём будет сразу представлена абсолютно полная информацию по заинтересовавшей вас теме. А уж требовать этого и вовсе некорректно.

PS: "Почитатели", "почитать" пишется через букву "и".

parent From Oliver (unverified) Wed Sep 18 13:52:00 2024 UTC pencil

Re: Re: Re: Если решите попробовать что-нибудь из *BSD

> Странные у вас претензии.

Совсем не странные. Если есть желание попиарить BSD системы, тогда следует раскрывать и минусы, которые имеются в сравнении с тем же Линуксом. Что получит человек, если он вместо Линукса установит ту же OpenBSD, с какими проблемами он может столкнуться и прочее. По поводу получение нужной мне информации, я к счастью привык ее самостоятельно искать на просторах Интернета, и да, там же я и нашел людей, у которых с OpenBSD были похожие проблемы.

P.S. Подозреваю, что NetBSD еще меньше приспособлена для комфортной работы.

parent From Andrey V. Stolyarov profile Wed Sep 18 14:19:53 2024 UTC pencil

userpic

Re: Если решите попробовать что-нибудь из *BSD

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

parent From Oliver (unverified) Fri Sep 20 15:50:14 2024 UTC pencil

Re: Re: Если решите попробовать что-нибудь из *BSD

:) Я себя тоже на этой мысли подловил.

В связи с пользователями окошек, кстати, может возникнуть ситуация примерно следуюущего рода. Человек нашел Вашу книгу и решил установить себе Юникс. Информацию о том, что бы себе установить, с большой долей вероятности, он будет искать в том числе и на этой гостевной страничке. Это - весьма логично. Не зря, время от времени тут появляются вопросы касательно выбора дистра, и там же иногда - советы попробовать BSD. Нет претенизий против советов такого рода, только попутно следовало бы отобразить некоторые особенности работы BSD систем в сравнении с Линуксом, ибо может получиться нехорошая ситуация: человек, который живет на окошках, попыхтит, но установит себе тот же OpenBSD. После того, как система будет настроена, он констатирует, что помимо отсутствия привычного ему софта, система еще и тормозит довольно ощутимо. Такой условный "я" скорее всего через какое-то время намается с тормозами и просто снесет эту систему, но окошек пользователь вывод сделает примерно следующий: Юникс мало того, что не имеет мне привычных программ, так еще и заметно тормозит, а потому - да ну его, пойду скачаю себе с торрентов студию, и буду учиться на C# писать. И так мы потеряем потенциального программиста

From Parthen (unverified) Wed Sep 11 02:12:31 2024 UTC pencil

Геймдев

Пилю я в общем игрушечку, что-то по типу Dwarf Fortress, только сильно проще (есть n персонажей, которые бегают по полю и исполняют общий список наших приказов, мы же двигаем виртуальную камеру).

Хочется у них реализовать field of view, чтобы игрок видил актуальную карту только в поле зрения его персонажей (а вне поля зрения - информация, актуальная на тот момент, когда персонаж там проходил). Само поле - двумерный массив из struct cell.

Спрашивается, как это реализовать? Мне не приходит ничего в голову кроме как держать две копии этого поля: с полной и неполной информацией. Но этот вариант мне кажется слишком дубовым (в будущем предполагается мультиплеер, так что карта может быть огромной, дублировать ее так себе).

Пока я решил вообще это убрать, чтобы игрок всю карту видел. Но вдруг здесь кто предложит что-нибудь поэлегантнее.

parent From Andrey V. Stolyarov profile Wed Sep 11 08:55:35 2024 UTC pencil

userpic

Re: Геймдев

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

Если же их сильно больше, то тут уже возможны варианты, вплоть до того, что, наоборот, вместе с информацией каждой клетки хранить битовую строку, показывающую, кому из игроков эта клетка доступна для просмотра.

parent From Parthen (unverified) Wed Sep 11 13:20:20 2024 UTC pencil

Re: Re: Геймдев

Это бы сработало, если вне поле зрения игрок бы видел ничего/туман войны. Но требуется-то показывать неактуальную информацию, которую хранить надо как-то.

Просто-то поле зрения можно одной процедурой сделать, пробежавшись по радиусу вокруг игрока.

parent From Andrey V. Stolyarov profile Wed Sep 11 13:38:29 2024 UTC pencil

userpic

Re: Геймдев

Тогда смотря как быстро/часто состояние карты меняется. Если не очень быстро и не слишком часто, то можно для каждой клетки хранить её актуальное состояние плюс список её состояний, видимых для каждого из игроков, причём в список включать только игроков, для которых видимое отличается от актуального, а когда он по правилам узнаёт, чтО там на самом деле, его запись из списка выбрасывать. Либо можно для каждого игрока хранить список того, чем его виденье карты отличается от актуального. Либо... ну, ещё что-нибудь :-)

Вообще я, разумеется, не знаю, что вы там за игру придумали, что собой представляет карта и т.д. Я, например, не знаю, есть ли у вас такой вариант "игрок вообще не знает ничего про такую-то клетку" (если да, то, возможно, кроме списка "собственных" значений клетки для отдельных игроков, имеет смысл ещё хранить битовую строку "кто из игроков вообще хоть раз видел эту клетку"). Так что и структуры данных за вас не придумаю, и никто не придумает, не зная всей предметной области. Фантазию проявите :-)

Конечно, полная копия карты — это идея слишком лобовая, хотя в некоторых случаях сойдёт и такое.

parent From Parthen (unverified) Wed Sep 11 14:00:34 2024 UTC pencil

Будем думать

Идеи взял на заметку, попробую как-нибудь сотворить.

А карта простенькая, двумерный массив из struct cell:

enum terrain { GROUND = '.', /* NONE */ BEDROCK = '%', DIRT = '#', WATER = '~', HOLE_UP = '^', HOLE_DOWN = '_', };

enum entity { NONE, DEBRIS = '*', FOOD = '$', PLAYER = 'P', ANT = 'p', BUG = '@',

};

struct cell { enum terrain terrain; enum entity entity; };

parent From Andrey V. Stolyarov profile Wed Sep 11 15:49:10 2024 UTC pencil

userpic

Re: Будем думать

1. из приведённого фрагмента совершенно никак не понятно, что вы со всем этим собираетесь делать;

2. ну и какая сука вас научила enum'овые идентификаторы набирать на верхнем регистре? Специально же в книжке целый параграф на тему, откуда эта хрень взялась и почему так делать не надо;

3. между прочим, вы правда хотите, чтобы этот ваш struct cell занимал восемь байт вместо очевидных двух? Если нет, поменяйте тип обоих полей на char и не делайте вид, что пишете на чём-то строго типизированном :-D

parent From Parthen (unverified) Wed Sep 11 16:46:24 2024 UTC pencil

Re: Re: Будем думать

>из приведённого фрагмента совершенно никак не понятно, что вы со всем этим собираетесь делать

В структуре ячейки одновременно хранится тип поверхности и тип сущности, которые на ней находится. При рендере на месте ячейки печатается сущность, если ее нет - поверхность (функцию приводить не буду, долго расписывать как камера работает).

Благодаря enum можно не задумываться какой там символ у нас что обозначает а использовать имена ( if(level[y][x].terrain == ground), например ). Ну и менять эти символы-обозначения проще.

>ну и какая сука вас научила enum'овые идентификаторы набирать на верхнем регистре

Я с радости полез читать код программ, которыми я пользуюсь, вот где-то в них и подцепил, наверное. Ну и интуитивно как-то чувствуется, что enum должен отличаться от переменных.

> Специально же в книжке целый параграф

с. 167, если кому надо. Буду знать

>между прочим, вы правда хотите, чтобы этот ваш struct cell занимал восемь байт вместо очевидных двух? Если нет, поменяйте тип обоих полей на char и не делайте вид, что пишете на чём-то строго типизированном :-D

Типо char terrain и char entity? Какой-то трюк, за такое по рукам не бьют?

parent From Andrey V. Stolyarov profile Wed Sep 11 17:15:31 2024 UTC pencil

userpic

Re: Re: Re: Будем думать

> интуитивно как-то чувствуется, что enum должен отличаться от переменных

Ага, а от функций? А от типов? За что именно константам такое ЩЩЩастье?

И вот уж enum'овые константы от макросов точно должны отличаться.

> а такое по рукам не бьют?

Нет, не бьют. Я вообще не помню, видел ли когда-нибудь переменные типа enum.

parent From Parthen (unverified) Wed Sep 11 17:51:38 2024 UTC pencil

Re: Re: Re: Re: Будем думать

>Ага, а от функций? А от типов? За что именно константам такое ЩЩЩастье?

Честно? Я и их хотел по-другому называть. Вовремя прочитал, что всякие CamelCase не приняты.

>И вот уж enum'овые константы от макросов точно должны отличаться.

Справедливо

parent From мимокрокодил (unverified) Thu Sep 12 11:17:38 2024 UTC pencil

Re: Re: Будем думать

не делайте вид, что пишете на чём-то строго типизированном

А если, например, всё же сделать такой вид, но компилировать с ключиком --short-enums? Просто как-то такой вариант представляется более, эм... "помехоустойчивым", что ли (когда накрывает ОКР, но Rust по-прежнему фу-фу-фу :)) По крайней мере, точно лучше всяких __attribute__((packed)) и прочей уродующей исходник хрени. Или лишнее паникёрство?

parent From Andrey V. Stolyarov profile Thu Sep 12 13:19:24 2024 UTC pencil

userpic

Re: Будем думать

Все целые, включая enum'ы, в Си совместимы по присваиванию. По факту это делает переменные типа enum бессмысленными. Ну, почти. Единственное реальное проявление этой вашей "помехоустойчивости" можно наблюдать, если соответствующее поле использовать в заголовке switch, а потом в case'ах забыть рассмотреть какой-то из вариантов; тогда компилятор радостно выдаст предупреждение. Но что-то мне сдаётся, что до такого в рассматриваемой программе дело не дойдёт.

А вот ключики вроде этого --short-enums — это уже просто откровенное asking for trouble. Прикиньте, как это всё будет выглядеть, если чуток что-то напутать в Makefile и один модуль, использующий этот тип, откомпилировать с таким ключиком, а другой (включающий, заметим, тот же заголовочник!) — без ключика. И всё это вместе слинковать. Тот случай, когда ни хрена не работает, смотришь в дебаггер и ничего, кроме "мистика какая-то" в голову не приходит.

Про __attribute__ я вообще молчу, по рукам кувалдой за такое.

From 1234567890 (unverified) Tue Sep 10 09:23:24 2024 UTC pencil

Почему конечный автомат не может управлять наступлением событий?

В главе про событийно-ориентированное программирование, что конечный автомат не может управлять наступлением событий. Но ведь может. Например, мостовой кран: "каретка движется вперёд по мосту" - это состояние. В конце балки крана можно поставить путевой выключатель. И тогда, когда каретка упрётся в путевой выключатель, будет подано напряжение для реверсирования контактора, и двигатель будет вращаться в обратном направлении, "мостовой кран" перейдёт в состояние "движение назад". Вот, получается, сам мостовой кран сам спровоцировал событие на реверс.

parent From Andrey V. Stolyarov profile Tue Sep 10 09:33:04 2024 UTC pencil

userpic

Re: Почему конечный автомат не может управлять наступлением событий?

Ваш вопрос полностью лишён смысла, поскольку этот ваш кран никакого отношения к конечным автоматам не имеет. А в целом я консультирую только в рамках менторинга, но не думаю, что лично для вас это может иметь хоть какой-то смысл.

parent From 1234567890 (unverified) Tue Sep 10 09:55:15 2024 UTC pencil

Re: Re: Почему конечный автомат не может управлять наступлением событий?

Но в курсе "системы управления электроприводов" был приведён пример как раз такого мостового крана, и рассматривался он как конечный автомат. Можно даже составить диаграмму конечного автомата, который сам себя выключает: Q0 ^ r1 -> Q1 Q1 ^ !r1 -> Q0 Где Q0 - выключен, Q1 - в процессе самовыключения (то есть выполняет действия, в резульате которых произойдёт событие !r1)

parent From Andrey V. Stolyarov profile Tue Sep 10 10:11:17 2024 UTC pencil

userpic

Re: Re: Re: Почему конечный автомат не может управлять наступлением событий?

Сделайте одолжение, найдите себе другой сайт и там обсуждайте с кем-нибудь бредни подобного рода. Если вас интересует содержание чьего-то курса, по нему задавайте вопросы авторам курса, а не мне.

parent From 0987654321 (unverified) Wed Sep 11 05:34:07 2024 UTC pencil

Re: Почему конечный автомат не может управлять наступлением событий?

сам мостовой кран сам спровоцировал событие на реверс

Есть хорошее выражение на эту тему — post hoc ergo propter hoc (после этого — значит по причине этого).

Если уж закапываться в ТАУ и иже с ней, кран здесь — исполнительное устройство, которое, действительно, пнул конечный автомат (сформировал управляющий сигнал, например, переключив обмотки двигателя), получив от условного концевика т.н. оповестительный сигнал. Автомат переключается между условными "нулем" и "единицей", сигнал же к переключению подаёт ему кто-то извне, автомату остаётся только ждать, надеяться и верить. Вместо крана могла бы быть раскручивающаяся на верёвке хреновина, способная дать кому-нибудь по макушке; опять же, о наступлении этого события конечный автомат оповещает некий датчик, сама эта хреновина состояние не хранит и не контролирует наступление события, прям кидаясь кому-нибудь отвесить. Мизинец на ноге тоже как бы не сам "решает", что надо звездануться о ножку дивана.

parent From Andrey V. Stolyarov profile Wed Sep 11 08:48:04 2024 UTC pencil

userpic

Re: Почему конечный автомат не может управлять наступлением событий?

В учебниках по курсам вроде упомянутого ТСом может встречаться что угодно, поскольку их авторы далеко не всегда сами понимают предмет, который описывают. В действительности управляющее устройство может содержать в себе конечный автомат (не быть им, а именно содержать его в себе, ведь конечный автомат — это абстракция), но это будет означать, что и моторы, и концевики рассматриваются как нечто внешнее: в частности, автомат понятия не имеет о том, как конкретно выдача управляющего воздействия приводит (во внешнем по отношению к автомату мире) к возникновению события "сработал концевик". Если бы управляющее устройство учитывало больше сведений об окружающем мире, например, "знало" бы (примерно) скорость движения каретки, а концевик применяло бы только для конфирмации, логику работы управляющего устройства не получилось бы описать конечным автоматом, пришлось бы привлекать абстракции более сложные. И уж совсем очевидно, что конечным автоматом описывается именно логика работы одной простенькой схемки, а не весь кран целиком.

Но это всё неважно. Судя по всему, аноним под ником 1234567890 безнадёжен: у меня чёткое ощущение, что он перепрыгнул первый том, поскольку те, кто его не перепрыгивают, таких вопросов обычно не задают.

From 1234567890 (unverified) Tue Sep 10 09:08:34 2024 UTC pencil

Где найти применение параллельным процессам (на практике)

Не могу найти случай, когда было бы уместно распараллелить программу.А попрактиковаться хочется. Я правильно понимаю, что для того, чтобы оформить часть программы в отдельный "процесс", нужно для начала, сделать такую программу, которая равномерно теряет в скорости из-за количества функций?

parent From Andrey V. Stolyarov profile Tue Sep 10 09:35:19 2024 UTC pencil

userpic

Re: Где найти применение параллельным процессам (на практике)

Этот ваш вопрос также лишён смысла. Вообще параллельное программирование — это то, чего следует избегать, пока есть такая возможность, а не искать намеренно приключений себе на задницу, как это пытаетесь сделать вы.

From Dsaabaveyex (unverified) Sun Sep 1 19:14:54 2024 UTC pencil

Континуации в идеальном языке программирования

Я пока не до конца понял континуации, но правильно ли я понимаю, что их можно будет реализовать в упоминаемом вами идеальном языке, посколько в нем будет реифицировать стек?

Имеют ли континуации какой-то смысл в императивном программировании?

parent From Andrey V. Stolyarov profile Sun Sep 1 20:36:36 2024 UTC pencil

userpic

Re: Континуации в идеальном языке программирования

В нём можно будет реализовать одну из тех вычислительных моделей, где континуации есть — например, Scheme. Как? Примерно так: http://www.intelib.org/intro.html.

Реификация стека тут совершенно ни при чём, поскольку ваш второй вопрос

Имеют ли континуации какой-то смысл в императивном программировании?

вполне законный, и ответ на него вполне однозначный: конечно же, нет.

parent From Dsaabaveyex (unverified) Sun Sep 1 21:39:29 2024 UTC pencil

Re: Re: Континуации в идеальном языке программирования

конечно же, нет

Примерно так и думал, спасибо, что развеяли сомнения.

P.s. про InteLib знаю и вашу статью про реализацию континуаций в InteLib Scheme бегло просматривал. А также жду дальнейших обновлений (как минимум сайта).

From jjg (unverified) Fri Aug 30 18:19:27 2024 UTC pencil

Событийно-ориентированное программирование

В главе про событийно-ориентированное программирование приведены реализаця структуры Session. А зачем, если можно хранить сообщения в дополнительном поле у списка дексрипторов. Там где cur->fd, добавить поле cur->buffer, и тогда у каждого сообщения свой буфер сделать. А ввод сделать неблокирующим, тогда никто не остановит сервер в момент записи.

parent From Andrey V. Stolyarov profile Fri Aug 30 19:25:17 2024 UTC pencil

userpic

Re: Событийно-ориентированное программирование

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

Что касается предложения делать ввод неблокирующим — видимо, вы вообще не поняли, о чём идёт речь.

parent From jjg (unverified) Fri Aug 30 21:05:20 2024 UTC pencil

Re: Re: Событийно-ориентированное программирование

А, понял. А на счёт неблокирующего ввода-вывода, имеется ввиду, что он всегда неблокирующий в таких программах? Но в случае если заранее нужно получить известное количество данных (может цифру, означающую что-нибудь), то ведь тогда можно чтобы программа и заблокировалась, получая данные. Известно же, что она точно не останется так в блокировке надолго.

parent From Andrey V. Stolyarov profile Fri Aug 30 21:14:41 2024 UTC pencil

userpic

Re: Re: Re: Событийно-ориентированное программирование

Ответы на ваши вопросы в тексте книги даны в явном виде, читайте внимательнее.

From Андрей (unverified) Fri Aug 30 12:17:42 2024 UTC pencil

Книга Страуструпа

Здравствуйте Нахожусь в процессе чтения (и перечитывания) вашего трёхтомника. Заметил, что и на страницах, посвящённых C++, и на сайте, вы упоминаете второе издание книги Страуструпа. Захотел найти и прочитать и сравнить (у самого на руках есть какое-то "специальное издание", которое наобум покупалось перед поступлением в вуз, попытки прочитать провалились). Вопрос - где достать английскую версию? Я не смог найти. Зато русская версия нашлась (не сканы, до конца не уверен, что это правильная книга) как залитая кем-то из аж из балтийского "военмеха".

parent From Andrey V. Stolyarov profile Fri Aug 30 12:41:28 2024 UTC pencil

userpic

Re: Книга Страуструпа

> "специальное издание"

Насколько я помню, оно вышло вскоре после третьего, и по-моему оно было посвящено "знаменательному", чтоб его, событию — формальному принятию первого стандарта C++.

Собственно говоря, надо было не книги издавать, а похороны устраивать. И поминки.

> попытки прочитать провалились

Ещё бы, гыгыгы.

По вашему основному вопросу: в мире корпорастов и копирастов добыть нужную книгу нетривиально. У меня её в электронном варианте нет, где-то валяется бумажная, но я сейчас сильно не там, где она валяется.

parent From Андрей (unverified) Fri Aug 30 15:02:04 2024 UTC pencil

Re: Re: Книга Страуструпа

Понял, спасибо Как будет ещё время попробую поискать где-нибудь ещё, пока поиски по открытым библиотекам забугорным результата не дали. Есть всё что угодно, но только не первые два издания. Характерно, что на официальном сайте Страуструпа есть отдельная страничка, посвящённая второму изданию, но под аннотацией красуется: "This book was published in 1991 and is not up-to-date. I have written more recent books on C++. You can find information about C++ from my homepage." Зато можно скачать предисловие и 4 странички вступительной главы про парадигмы.

Ну и просто "для протокола": 370 страниц русского перевода против 1130. 250 страниц посвящено стандартной библиотеке, а прежде них ещё 30 в самом начале книги "обзор стандартной библиотеки" сразу после главы о парадигмах программирования. В ней сразу про контейнеры и алгоритмы. А указатели и структуры только в пятой главе. А ещё в ней код напечатан жирным курсивом TimesNewRoman!

parent From Eugene_Palkowski (unverified) Fri Aug 30 16:08:30 2024 UTC pencil

Re: Книга Страуструпа

За книгами на английском - на libgen.is, сам качал оттуда 2 и 3 издание. Ещё они есть на rutracker.org.

parent From Андрей (unverified) Fri Aug 30 19:49:17 2024 UTC pencil

Re: Re: Книга Страуструпа

Большое спасибо, нашёл на libgen! На рутрекере проверил, не нашёл, но может плохо искал.

parent From Artem (unverified) Sat Aug 31 02:53:53 2024 UTC pencil

Re: Re: Re: Книга Страуструпа

На рутрекере, похоже, нет английской версии 2-го издания, зато есть русский перевод, которого нет на libgen (или есть, но в вордовском формате):

https://rutracker.org/forum/viewtopic.php?t=2226992

В раздаче весьма доставляют два момента: во-первых, описание раздачи не соответствует содержимому; во-вторых, невзирая на "во-первых", её всё ещё кто-то раздаёт уже 15 лет.

From Newb (unverified) Fri Aug 30 11:16:08 2024 UTC pencil

Взаимодействие неродственных процессов

Добрый день. В книге про ОС вы пишете, что named pipes можно использовать для взаимодействия процессов, у которых не общий родитель. Еще вы отмечаете, что вот этот named pipe работает через файл.

Я не так много работал с межпроцессным взаимодействием, но каждый раз, как приходит идея общаться через файл, хочется сразу забыть этот способ и быстро придумать что-то другое. Есть ощущение (которое вот прям строго доказать я не могу), что это не надежно и не безопасно.

Подскажите, пожалуйста, верны ли мои опасения относительно взаимодействия через файл? Если да, то применимо ли это все к named pipes? Или с ними все интереснее устроено, и можно пользоваться, не переживая?

А если так действительно лучше не общаться, то что остается? Есть сокеты, конечно. Но не перебор ли это раскатывать сокеты для переброса данных между 2 процессами?

parent From Andrey V. Stolyarov profile Fri Aug 30 11:38:15 2024 UTC pencil

userpic

Re: Взаимодействие неродственных процессов

Какой ещё нахрен "через файл"?! Именованный канал использует файлы специального типа (FIFO), которые нужны только для выполнения open. После этого получается точно такой же канал, на диске ничего не хранится. Собственно, файлы типа FIFO (так же точно, как и файлы устройств, и файлы сокетов) в принципе не предусматривают хранения информации на диске, они состоят из одного inode'а.

И нет, сокеты — никоим образом не перебор, так может казаться только когда сокеты ещё не освоены.

В принципе если рассматривать взаимодействие действительно через файл, т.е. когда информация передаётся между "действующими лицами" через честный файл на диске, то там да, получаются весьма нелепые пляски, в книге об этом рассказывается в следующей части, в главе 7.4. Но ни к FIFO, ни к сокетам это никакого отношения не имеет.

parent From Newb (unverified) Fri Aug 30 12:55:55 2024 UTC pencil

Re: Re: Взаимодействие неродственных процессов

Хм...значит, упустил я что-то...спасибо

Тогда, при той же задаче, в выборе между сокетом и именованным каналом следует руководствоваться вопросом: требуется двустороннее и одностороннее общение?

parent From Andrey V. Stolyarov profile Fri Aug 30 14:52:12 2024 UTC pencil

userpic

Re: Взаимодействие неродственных процессов

Вообще говоря, не совсем. FIFO хороши тем, что их можно создавать командами в командной строке и перенаправлять ввод-вывод в них и из них, то есть они тривиальны в обращении. Скажем, для скрипта на Bourne Shell'е FIFO'шки прекрасно подходят, а вот чтобы скрипт работал через сокет — ну это можно себе представить, но как-то тяжело.

Я бы сказал, что скорее сокеты есть смысл использовать, когда имеется внятная клиент-серверность и все участники взаимодействия — программы, написанные на языках общего назначения. В этом случае с сокетами может получиться сильно проще, чем с FIFO, особенно когда сервер один, а клиентов много.

From guest (unverified) Tue Aug 27 08:58:42 2024 UTC pencil

Про упомянутую вами обделённость в коммуникации с диаспорой в Черногории

Что хочу по поводу обделённости в коммуникации, в силу использования оными приложений типа «мессенджеры» сказать. Обычно содержательность сие коммуникации начинается с перекидывания малоинформативного текста, этим обычно и заканчивается. В редчайших случаях люди способны что-то развёрнуто обсудить. Дело в том, что мессенджер, по сути своей гуёвое приложение с апишкой, трэкерами и прочим, вопрос лишь в том, при каких обстоятельствах ими обычно пользуются. А именно, при ходьбе, езде в общественном транспорте, спросонья и так далее, потому что в руках постоянно вертится что? Правильно, смартфон. Если бы люди предпочитали, даже если не пк или неттоп (небольшому по габаритам корпуса), то хотя бы ноутбук, заместо смартфона, мне кажется им бы не лень было и на развёрнутом у кого-нибудь джаббере коммуницировать. А так, полезность общения в мессенджерах низводится практически до обсуждения, где продаётся свежий хлеб.

parent From Andrey V. Stolyarov profile Tue Aug 27 09:07:11 2024 UTC pencil

userpic

Re: Про упомянутую вами обделённость в коммуникации с диаспорой в Черногории

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

Вообще сдаётся мне, что вы путаете причины и следствия. Телеграм именно что навязывает смартфон в роли "терминального устройства", так что тут первично вот это вот "а пошли все в телегу", а что для этого приходится использовать смартфоны — это следствие.

parent From Artem (unverified) Tue Aug 27 23:11:33 2024 UTC pencil

Re: Про упомянутую вами обделённость в коммуникации с диаспорой в Черногории

> мне кажется им бы не лень было и на развёрнутом у кого-нибудь джаббере коммуницировать

Когда кажется, креститься надо. Дискордом, к примеру, никто из моих знакомых с телефона не пользуется (кроме крайних случаев), а только с, как минимум, ноутбука. Что, однако, не мешает им создавать голосовые и видеоконференции исключительно в дискорде, без каких-либо альтернатив, невзирая даже на то, что он раздражает своим поведением абсолютно всех участников конференции, и все они считают его редкостным дерьмом.

From guest (unverified) Tue Aug 27 08:40:49 2024 UTC pencil

Выбор дистра

Подходит ли слакварь для того чтоб ей пользоваться, настраивать под себя, не меняя систему хотя бы раз в пятилетку? С учётом тех тенденций, что туда уже вяленого (wayland) пихают

parent From Andrey V. Stolyarov profile Tue Aug 27 08:45:24 2024 UTC pencil

userpic

Re: Выбор дистра

Ну, уж если слакварь не подходит, то вряд ли подойдёт хоть что-то. Опять же, насколько я понимаю, вяленого там сделали доступным, но по умолчанию там вообще текстовая консоль, и выпиливать иксы вроде никто пока не собирается.

parent From fqrq (unverified) Tue Aug 27 11:43:21 2024 UTC pencil

parent From Andrey V. Stolyarov profile Tue Aug 27 11:48:13 2024 UTC pencil

userpic

Re: Выбор дистра

Думаете, там нет своих приколов?

parent From Anonymous (unverified) Tue Aug 27 18:55:33 2024 UTC pencil

Re: Re: Выбор дистра

Тогда уж NetBSD. Раньше бы предложил Open, но они сомнительной фигни надобавляли.

parent From Andrey V. Stolyarov profile Tue Aug 27 19:43:43 2024 UTC pencil

userpic

NetBSD

вот этот тред видели? :-)

parent From Anonymous (unverified) Wed Aug 28 06:51:49 2024 UTC pencil

Re: NetBSD

Я его как раз и начал. И ещё там предложил NetBSD, раз уж опёнок скатился.

parent From Andrey V. Stolyarov profile Wed Aug 28 08:26:16 2024 UTC pencil

userpic

Re: Re: NetBSD

Да-с, прошу прощения, что-то у меня с мозгами. Вечно у меня в голове путаются Net и Open.

parent From aonynomus (unverified) Wed Aug 28 23:14:29 2024 UTC pencil

Re: Выбор дистра

А почему Net или Open лучше чем Free?

parent From Анон (unverified) Thu Aug 29 23:52:28 2024 UTC pencil

Re: Re: Выбор дистра

Очевидно. Openbsd не годится для изучения трехтомника на данный момент, там fpc сломан https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/fpc/Makefile

>lang/fpc: mark BROKEN on amd64, does not build with LLVM 16

Живого юзера netbsd в интернете я еще не видел. Остается фряха.

я не автор того поста, если что

parent From Andrey V. Stolyarov profile Fri Aug 30 07:58:44 2024 UTC pencil

userpic

Re: Выбор дистра

Вроде тут в гостевухе пользователи NetBSD были, не?

parent From Анон (unverified) Sat Aug 31 15:12:02 2024 UTC pencil

Re: Re: Выбор дистра

Если честно, я здесь только пользователей openbsd видел.

parent From aonynomus (unverified) Fri Aug 30 13:16:14 2024 UTC pencil

Re: Выбор дистра

Мне, вообще-то, интересно именно обоснование мнения, почему OpenBSD или NetBSD может быть лучше, чем FreeBSD.

Причём не в контексте изучения трёхтомника (который в треде, насколько я понимаю, не подразумевался), а в целом.

Ну а то, что у NetBSD мало пользователей, к вопросу вообще отношения не имеет. Они есть и этого достаточно.

Если вы знаток фряхи, то лучше уж ответьте топикстартеру в контексте вопроса, которым он озабочен: не "пихают ли вяленого" в FreeBSD?

parent From Анон (unverified) Sat Aug 31 15:34:52 2024 UTC pencil

Re: Re: Выбор дистра

>Ну а то, что у NetBSD мало пользователей, к вопросу вообще отношения не имеет. Они есть и этого достаточно.

Имеет, если пользоваться системой. Я не могу поверить, что у нетки нет никаких проблем. Когда приходит время искать информацию о них, часто сталкиваешься с её отсутствием. Как вы думаете, сколько упоминаний о сломанном пакете fpc в openbsd можно найти в интернете? Я нашел всего два - на форуме и в репозитории. Между прочим, OpenBSD - это далеко не безызвестная система, как, например, kolibrios.

>Если вы знаток фряхи, то лучше уж ответьте топикстартеру в контексте вопроса, которым он озабочен: не "пихают ли вяленого" в FreeBSD?

Откуда у вас возникло мнение, что я знаток фряхи? Если я не ошибаюсь, установщик freebsd поставляется без графического окружения, в отличие от openbsd, где xenocara (форк X11) является частью системы и может быть выбрана для установки на этапе настройки. Поэтому, полагаю, wayland не включается в установщик. Когда я в последний раз устанавливал фряху, мне показалось, что pipeware пришёл в качестве зависимости для firefox, установленного из репозитория. Не могу утверждать с полной уверенностью, что это не было лишь сном, ведь прошло уже три года, и, возможно, ситуация изменилась. Однако я не могу гарантировать, что wayland не станет зависимостью одного из пакетов, если не собирать пакеты самостоятельно из портов.

From u-micro (unverified) Mon Aug 26 20:35:00 2024 UTC pencil

Экскоммуницированость

Сталкивались ли с тем, что люди не воспринимают потребность в приватности всерьёз? Когда начинаешь рассказывать об этом, люди начинают на тебя смотреть, как на пришельца. Как переубедить публику о том что это важно? Такое ощущение, что мозги у всех промыты фразами а-ля "Хорошим нечего скрывать".

parent From Andrey V. Stolyarov profile Mon Aug 26 20:59:39 2024 UTC pencil

userpic

Re: Экскоммуницированость

> Сталкивались ли с тем

Постоянно.

> Как переубедить публику

Ну, мой основной аргумент — вот лично ты, может, и не нужен никому (на самом деле, конечно, нужен, и ещё как, но это твои проблемы), но вот ты уверен, что никому не нужен никто из тех, с кем ты общаешься? А почему ты так уверен? А ты у них спросил?

> "Хорошим нечего скрывать"

В таких случаях я обычно напоминаю, что самый главный, самый вооружённый и самый опасный преступник в мире — государство; люди, которые про это забывают, опасны для окружающих.

Действует не всегда, но если не действует — то можно прекращать общение по принципу "я сделал всё, что мог".

parent From Parthen (unverified) Tue Aug 27 22:46:43 2024 UTC pencil

Re: Экскоммуницированость

>Такое ощущение, что мозги у всех промыты фразами а-ля "Хорошим нечего скрывать".

Попросите у человека фото банковской карты с обеих сторон :)

Обычно люди отказываются, и уже можно отсюда диалог продолжать. Есть и такие, которые без задней мысли дают - вот с ними надо в принципе общение прекращать, они опасны.

From Vimофицированный (unverified) Mon Aug 26 10:59:33 2024 UTC pencil

Русский язык и Vim

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

А то я что-то взял из интернетов, а работает кривовато, не все команды поддерживает. Может, посоветуете что, а то переключать раскладку каждый раз не хочется

parent From Andrey V. Stolyarov profile Mon Aug 26 11:05:47 2024 UTC pencil

userpic

Re: Русский язык и Vim

У меня переключение регистров повешено на правый Alt, так что никаких проблем нет давать команды латиницей. Я, больше того, некоторые знаки препинания набираю на латинском регистре, даже когда пишу русский текст — просто не помню, где они в русской раскладке.

parent From asb (unverified) Fri Sep 13 20:22:19 2024 UTC pencil

set keymap

А чём keymap вимовский не устраивает? У меня в .vimrc такая строчка:

set keymap russian-dvorak

"в моём случае дворак

При печати на русском, все команды прекрасно работают.

P.S. у меня ещё есть рядом строчка set iminsert=0, что она делает я не помню ^_^

From user-12 (unverified) Mon Aug 26 08:45:07 2024 UTC pencil

Евросовок

Посмотрел ваше последнее видео касательно ареста Павла Дурова и тут же увидел новость (warning! сайт с js):

Ссылка

Похоже евросовок окончательно перестал скрывать свою истинную сущность, и нас ждет еще больше ограничений со стороны государства. И выхода, похоже, из этого нет. Поезд ушел

parent From Andrey V. Stolyarov profile Mon Aug 26 09:49:41 2024 UTC pencil

userpic

Re: Евросовок

Никто никуда не ушёл. Даже наоборот, возможно, до публики допрёт, наконец, реальный смысл всех разглагольствований о "педофилии", "детской порнографии" и прочем, где якобы бедные деточки страдают (хотя как может хоть одна деточка пострадать, когда взрослые дядьки какими-то там картинками перебрасываются).

А что в евросоюзе нормальным людям не место — это я уже давно понял.

parent From Parthen (unverified) Mon Aug 26 10:28:21 2024 UTC pencil

Re: Re: Евросовок

>хотя как может хоть одна деточка пострадать, когда взрослые дядьки какими-то там картинками перебрасываются

Я так понимаю предполагается, что само преступление это съемка, а распостранением эту съемку "поддерживают".

Но вообще, если кому интересно - почитайте о небезысвестной Маше Бабко.

https://neolurk.org/wiki/%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%91%D0%B0%D0%B1%D0%BA%D0%BE

>Порностудия «Siberian Mouses» была основана дядей Серёжей в 1996-м году, и, соответственно, почила в бозе в конце 2011-го. За 15 лет её существования в качестве моделей оной студии снялось более 500 девушек и девочек.

То есть понимаете, 15 лет ни один родитель тех 500 актрисс вообще ничего не заметил. И никаких псих. травм, ни-че-го не было.

parent From Andrey V. Stolyarov profile Mon Aug 26 10:33:25 2024 UTC pencil

userpic

Re: Re: Re: Евросовок

> Я так понимаю предполагается, что само преступление это съемка, а распостранением эту съемку "поддерживают".

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

From Eduard (unverified) Mon Aug 26 07:53:32 2024 UTC pencil

Дотелеграмились

Здравствуйте, Андрей Викторович. Может быть сочтете за оффтопик, но новость про Пашку Дурова для меня показалась странной. Арестовали его в стране, которая вроде бы "свободная". Смотрите, пользователи телеги, как ваша безопасность сходит на нет.

parent From Andrey V. Stolyarov profile Mon Aug 26 07:58:10 2024 UTC pencil

userpic

Re: Дотелеграмились

Евросоюз практически весь целиком — левацкая богадельня, какая ещё "свободная страна"? Социализм и свобода слова — явления несовместимые.

P.S.: http://infoviolence.org/ru/vblog/video080.html

parent From quwe (unverified) Mon Aug 26 08:37:18 2024 UTC pencil

Re: Дотелеграмились

С каких пор Франция "свободная"? Это какие-то мифы эпохи сельских либералов типо Новодворской (на самом деле это и не либералы вовсе, и по взглядам ничем не отличаются от Шарикова из "собачье сердце"). Франция - колыбель всего несвободного. После великой французкой революции от туда и повылазили те же идеи, что в будущем станут следствием голодомора. Германия - почти то же самое. Каким образом осколок от ГДР, потомок третьего рейха, может вдруг быть "свободным"?. Если принимать решения на основании красивых картинок из гугла, то в какой-то момент тебе и Северная Корея может показаться "свободной". По-настоящему свободная страна, это пожалуй только США, и то с поправкой, что всё таки перегибы в истории США были. И такие инициативы как реформа Obamacare и Байденовские запреты на оружие - совсем не радужная перспектива.

parent From Andrey V. Stolyarov profile Mon Aug 26 09:52:21 2024 UTC pencil

userpic

Re: Re: Дотелеграмились

Поправочка: свободных стран не существует. США свободной страной не являются вообще ни в каком виде, пардон, Дуров вон пытался там сначала запуститься, пришлось в Дубай бежать, пока хвост не оттяпали.

parent From quwe (unverified) Mon Aug 26 10:20:23 2024 UTC pencil

Re: Re: Re: Дотелеграмились

>США свободной страной не являются вообще ни в каком виде

Но почему? В США, например, нельзя сесть за слова. Есть хоть один прецедент, когда человека бы посадил или хотя бы оштрафовали за оскорбление? Едва ли найдётся. В США разрешена частная дискриминация. Например, будучи владельцем магазина, можно не впускать туда негров, нарушением закона это не будет (правда, такие инициативы не редко подвергаются общественному давлению). В США полностью разрешено ношение оружие, и даже без лицензии. Пожалуй, это единственная страна, где есть не только право на свободное ношение оружия, но и не нужна для этого лицензия. В США до 2010 года, медицинская страховка не была обязательной. То есть, можно было себя и не страховать, если это не требуется. В США законы отдельных поселений в штате, могут сильно отличаться от законов штата. Грубо говоря, в шате в котором запрещены наркотики, можно спокойно найти деревню, где местное самоуправление легализовало наркотики полностью. В США разешено устраивать несанкционированный митинг на любой не-частной земле. Поэтому, к слову, в университетах митинги постоянно и собираются, так как по-закону оттуда нельзя митингующих выгнать. Случаются, конечно и перекосы. Например, ту же секту "Ветвь Давида" уничтожили незаконно (буквально, не было ни одного законного основания начинать штурм). Но даже это нашло отражение в обществе, и по этому поводу была масса судов, и масса протестов. Так, что пожалуй более свободной страны и нет. Практически в любой стране европы (и уж тем более в России) есть законы, запрещающие даже говорить. В Великобритании, вполне себе могут приехать полицейские за пост в интернете. Так, что ни в какое сравнение.

parent From Andrey V. Stolyarov profile Mon Aug 26 10:37:51 2024 UTC pencil

userpic

Re: Re: Re: Re: Дотелеграмились

> более свободной страны и нет

Более свободной, возможно, и нет. Но это не делает США свободной страной.

parent From Ilya profile Mon Aug 26 11:13:16 2024 UTC pencil

Re: Re: Re: Re: Дотелеграмились

Для меня миф о свободе слова во Франции закончился, когда я узнал о штрафе в 50 килобаксов за публичное отрицание холокоста (это если повезет, а могут и год тюрьмы впаять). Что касается США и ваших аргументов, то нет ни одного штата, где были бы одновременно легализованны и наркотики и оружие, получается такой вот взаимоисключающий XOR - либо то, либо другое. Далее, в США можно сделать патент на программное обеспечение. Ну и напоследок, обязанность платить налоги там где ты даже не живешь это маразм высшей степени.

parent From quwe (unverified) Mon Aug 26 11:49:53 2024 UTC pencil

Re: Re: Re: Re: Re: Дотелеграмились

На счёт оружия и наркотиков, не правда. В штате Орегон разрешено оружие, и с 2021 года там разрешены тяжёлые наркотики, причём, конкретно в поселении кламат фолс разрешены все, включая самые тяжёлые. Ну, а на счёт "платить налоги" и "патент на программное обеспечение", могу добавить, что в США ещё и купить "обрез" нелегально. Но в чём суть таких рассуждений? Я понимаю, что полезно стремиться к наибольшей свободе, но фыркать на налоги, когда в большинстве стран даже свободы слова не имеется - это разговор в пользу бедных. Это как самому сидеть даже без хлеба, но зато критиковать соседа, за то, что он недожарил стейк. Сидеть во Франции или Дубае - такая себе идея, когда есть возможность жить в США.

parent From Andrey V. Stolyarov profile Mon Aug 26 11:53:07 2024 UTC pencil

userpic

Re: Дотелеграмились

Ещё раз, и медленно: сравнивать не надо.

В Дубае, впрочем, жарко, но о других недостатках я пока не слышал.

parent From Student (unverified) Mon Aug 26 23:05:47 2024 UTC pencil

Re: Re: Дотелеграмились

В арабских странах, в частности в ОАЭ, активно блокируют видеоконференции (over IP). Хотя сообщения через мессенджеры ходят, позвонить через них не получится. Иронично, но через Телеграм тоже.

Плюс если говорить о Дубае, то там какая-то жёсткая монополия на телеком. Чуть ли не 70% сотовой связи у одной около-правительственной компании, и остальные 30% у другой. И на свой рынок они никого не пускают путём обязательного лицензирования такой деятельности у государства.

А, ещё в ОАЭ активно блокируют VPN. Покруче, чем всякие там ркны.

parent From Andrey V. Stolyarov profile Tue Aug 27 07:34:22 2024 UTC pencil

userpic

Re: Re: Re: Дотелеграмились

> В арабских странах

Не, ну в Иране, скажем, я никому жить не предлагаю.

> активно блокируют видеоконференции (over IP)

Насколько я вижу, мои знакомые, торчащие нынче в Дубае, всякими дискордами и зумами прекрасно пользуются. Возможно, нашли, как это обходить.

> телеком. Чуть ли не 70% сотовой связи

Телеком и сотовая связь не одно и то же (в частности, два сотовых оператора — это б/м нормально, как и их лицензирование, поскольку радиочастоты не резиновые), но вообще да, с интернетом (в том числе проводным) там как-то странно всё.

К тому же жарко.

Но налога на доходы там нет, и это само по себе заслуживает внимания. Я, впрочем, не утверждаю, что это идеальный вариант, сам-то я туда не поеду.

parent From Artem (unverified) Wed Aug 28 15:23:10 2024 UTC pencil

Re: Re: Re: Re: Дотелеграмились

> два сотовых оператора — это б/м нормально, как и их лицензирование, поскольку радиочастоты не резиновые

По-моему, два сотовых оператора, предоставляющих услуги конечным пользователям, это какая-то хрень. Частоты, конечно, не резиновые, но почему тогда не сделать одного на всю страну оператора с вышками и частотами, на котором будут работать уже коммерческие компании как виртуальные операторы?

parent From Andrey V. Stolyarov profile Wed Aug 28 16:07:13 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Дотелеграмились

> По-моему, два сотовых оператора, предоставляющих услуги конечным пользователям, это какая-то хрень

В Москве в своё время довольно долго их как раз два и было — мотористы и пчёлы. До них ещё были сети доисторических протоколов (не GSM), про них ничего не помню — в их эпоху у меня ещё не было сотового телефона.

Когда Мегафон продавил себе путь на московский рынок, публика хлопала в ладошки и кричала, что теперь опсосы будут нам доплачивать за потребление их услуг. Четвёртый сотовик — Теле2 — появился намного позже.

Замечу, больше четырёх сотовых сетей в одной географической точке я не видел нигде и никогда.

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

> почему тогда не сделать одного на всю страну оператора с вышками и частотами, на котором будут работать уже коммерческие компании как виртуальные операторы?

Кое-где так и есть.

parent From Anonymous (unverified) Thu Nov 28 11:41:58 2024 UTC pencil

Re: Re: Дотелеграмились

> о других недостатках я пока не слышал

https://www.uae-consulting.com/novosti/oae-vvodyat-otvetstvennost-za-negativnyie-otzyivyi.html

Уголовная ответственность за негативные отзывы о компании в интернете, лично мне теперь все ясно про тамошнее государство, ни ногой туда. Это не говоря уже о том, что там сажают за просмотр (обычной) порнографии.

parent From Andrey V. Stolyarov profile Thu Nov 28 11:52:15 2024 UTC pencil

userpic

Re: Дотелеграмились

Да, пожалуй, вы правы. Всё-таки дикари остаются дикарями, как бы они ни старались выглядеть цивильно.

parent From Ilya profile Mon Aug 26 12:08:38 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Дотелеграмились

Суть в том, что если с ограничением свободы слова я еще могу смириться (анонимность в интернете полностью пока еще не убили, а в реальной жизни я с кем попало на пикантные темы разговоры не веду), то с обнаглевшим грабежом моего кошелка двух государств одновременно я мирится не готов, не настолько богатый. Вообще, как нас уже выше поправили, сравнивать толку нет, везде сейчас жить не сладко, предлагаю на этой ноте диалог и закончить.

parent From quwe (unverified) Mon Aug 26 12:43:25 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Re: Дотелеграмились

>Суть в том, что если с ограничением свободы слова я еще могу смириться, то с обнаглевшим грабежом моего кошелка двух государств одновременно я мирится не готов

Как это обычно и бывает, в таком случае ты получаешь и отсутствие свободы слова, и грабёж твоего кошелька. А всё потому что нельзя мирится с "ограничением свободы слова". Такими темпами, свободы не будет вообще никакой и ни в каком виде.

parent From Andrey V. Stolyarov profile Mon Aug 26 14:38:36 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Re: Re: Re: Дотелеграмились

Мириться с грабежом кошелька тоже нельзя. И то насилие, и это насилие, принципиальной разницы тут нет.

Вообще завязывайте, я не вижу никакого смысла в этой дискуссии. Если вас почему-то устраивают Штаты (что крайне странно), то это не значит, что они должны устраивать всех. Для меня, например, это вообще не вариант.

From u (unverified) Sun Aug 25 17:21:31 2024 UTC pencil

Анонимная сеть

Каким уровнем знаний нужно обладать, чтобы реализовать анонимную сеть из "Обращения к публике"? Может ли данную сеть разработать, но не контролировать НКО?

parent From Andrey V. Stolyarov profile Sun Aug 25 17:32:05 2024 UTC pencil

userpic

Re: Анонимная сеть

> Каким уровнем знаний нужно обладать

У меня нет ответа на этот вопрос.

> Может ли данную сеть разработать, но не контролировать НКО?

Насколько я могу судить, любые корпорации, вне зависимости от их "коммерческого" статуса, устроены одинаково. Так что если интересно моё мнение — нет, не может.

From hmm (unverified) Sun Aug 25 15:00:50 2024 UTC pencil

Туманные перспективы открытого железа

Андрей Викторович, здравствуйте. Я пока только учусь, поэтому могу невольно упускать какие-то моменты, к тому же я относительно недавно начал идти по пути системщика, поэтому также могу невзначай не учесть историческую справку развития (и деградации) компьютерного железа, прошу не судить строго.

Возьму один контраргумент со стороны проприетарщиков и их выгораживальщиков, вольных внедрять в чипсет микроконтроллеры, являющие собой ничто иное, как чёрный ящик (речь об IME-регионах и прочих), который я слышал с их стороны, зачем вообще производителю это надобно — затем, мол, что делать комплексный цикл производства железа кратно сложнее, чем писать программки, поэтому производителю и позволительно решать за всех, собственно это и является на текущий день неким флагманским оправданием его закрытости. Ежели просто рассматривать закрытые прошивки и спецификации в контексте текущих реалий, то для успешной продажи этого самого железа производителю необходимо его производство с учётом максимального кол-ва интересов для увеличения прибыли и с последующим его сбытом, максимально запудривая мозги, гламурные и не только. Поэтому, видите-ли, производителю якобы должно быть позволительно на сегодняшний день бесконтрольно закрывать что-то там у себя в прошивках, типа чтобы конкурентов не плодить (или вставьте, как говорится, любую другую надуманную причину), хотя, думаю, нетрудно понять, чьи интересы здесь могут учитываться ещё больше, чем интересы самого производителя; а контрпример с открытым софтом и беспроблемности его распространения якобы не работает, потому что это не более, чем программа (хотя казалось бы, почему-то ловко упускается то, что прошивка по сути своей тоже программа).

С одной стороны, всё типа понятно: рыночек решает, все дела — вали, мол, если не нравится, пилить своё. Прямо вот возьму и побегу осуществлять заказ на полупроводниковый завод, хотя куда пуще будет открыть свой, что уж там.

То, что могу наблюдать с происходящим в архитектуре Risc-V, да банально даже глядя на их головной сайт и тех корпоратов, которых на нём они упоминают, а также из кого эта шайка-лейка состоит (те же пресловутые стандартизаторы), вызывает тихий ужас. Как-то на горизонте не виднеется даже малейшего намёка на изменение ситуации.

Предлагаю полуироничный вариант, как делать в этом случае: создать правовой прецедент, в котором, ровно как и у любого, пардон за такое сравнение, пирожного, продающегося в розницу, будет известен состав его производных частей.

А что бы вы предложили в разрешении этого вопроса на возможное повсеместное лишение прав на внедрение незадокументированного публично чужеродного (не являющегося обязательным для функционирования) оборудования внутри железа?

parent From Andrey V. Stolyarov profile Sun Aug 25 16:15:29 2024 UTC pencil

userpic

Re: Туманные перспективы открытого железа

Я бы, честно говоря, предложил устроить геноцид вебщикам, после чего откатиться на железо производства до 2010 года включительно. Ни для чего, кроме браузера, более новое железо не требуется.

parent From Parthen (unverified) Sun Aug 25 16:24:07 2024 UTC pencil

Re: Re: Туманные перспективы открытого железа

>Ни для чего, кроме браузера, более новое железо не требуется.

Игры. Но там все решается геноцидом пользователей игровых движков и последующей их заменой на программистов (пусть даже пользующихся теми же игровыми движками).

P.S. Тяжелый рендеринг и стриминг сюда не входят, так как требуют не ПК, а рабочую станцию.

parent From quwe (unverified) Sun Aug 25 17:06:34 2024 UTC pencil

Re: Re: Re: Туманные перспективы открытого железа

Ну и какие игры за последнее время вышли, в период с 2018 по 2024? Может 1-2 штуки назвать можно, cyberpunk и rdr да и всё. При том, что графика с 2013 года не сильно улучшилась, а требования к железу возросли. Так, что я уверен, что люди купившие хорошие компьютеры для игр, просто пытаются оправдать покупку, играя и нахваливая всё подряд, лишь бы не посчитать свою покупку глупой.

parent From Parthen (unverified) Sun Aug 25 18:07:38 2024 UTC pencil

Re: Re: Re: Re: Туманные перспективы открытого железа

>Может 1-2 штуки назвать можно

Я уверен, что вот конкретно это проблема не в программистах, в геймдизайнерах. Ну, вот например в 2018 вышла моя горячо любимая RimWorld от инди-студии

http://infoviolence.org/ytid.cgi?v=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D3tDrxOASUog

А у корпораций тонны шлака выходят с повесточкой - и, почему-то, никто в это не играет.

>При том, что графика с 2013 года не сильно улучшилась, а требования к железу возросли

В принципе согласен. Просто мы уже уперлись в потолок улучшения графики путем увеличения текстур/полигонов. Реалистичность создается не этим, Unrecord это прекрасно демонстрирует

http://infoviolence.org/ytid.cgi?v=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIK76q13Aqt0

Так причем, когда надо портировать игру на плохое железо - в случае приставок, например - корпорации все резвенько делают. Detroit Become Human прекрасно играется на PS4 (2013 год выпуска). А это фотореалистичное игровое кино, мать вашу.

Ну или личный пример. У меня в школе еще был семейный компьютер, на нем тормозил чертов ютуб и даже сама винда (семерка еще, хех).

При это Portal 2 от Габена, хвала ему навеки, работала, пусть и на низких настройках без единого провисания. С симуляцией физики и графики порталов. В том числе бесконечно показывающих самих себя, бесконечно пропускающих через себя тестовые кубы, и в том числе когда я летал через всю карту.

parent From Andrey V. Stolyarov profile Sun Aug 25 18:12:33 2024 UTC pencil

userpic

Re: Туманные перспективы открытого железа

Э-мммм... там когда в ytid.cgi ссылку отсабмиттили, внизу появляется УРЛ более короткий, в котором только сам скрипт и ID видоса.

parent From Parthen (unverified) Sun Aug 25 20:03:40 2024 UTC pencil

Re: Re: Туманные перспективы открытого железа

Не заметил :)

А зачем тогда "длинная" ссылка нужна?

parent From Andrey V. Stolyarov profile Sun Aug 25 20:21:39 2024 UTC pencil

userpic

Re: Re: Re: Туманные перспективы открытого железа

"Длинная ссылка" сама собой получается в адресной строке браузера, когда веб-форма сабмитится методом GET. Ну вот так работает сабмит формы через GET (в отличие от POST).

parent From Parthen (unverified) Sun Aug 25 21:08:23 2024 UTC pencil

Re: Re: Re: Re: Туманные перспективы открытого железа

Перечитал, понял идиотизм своего вопроса.

Извините, я спать, хватит с меня

parent From Andrey V. Stolyarov profile Sun Aug 25 22:01:40 2024 UTC pencil

userpic

Re: Туманные перспективы открытого железа

Да пофиг, спокойной ночи :-)

parent From Artem (unverified) Sun Aug 25 20:08:04 2024 UTC pencil

Re: Re: Re: Re: Re: Туманные перспективы открытого железа

> фотореалистичное игровое кино

Поправка: интерактивный мультик без капли фотореализма. Тот же Cyberpunk 2077 выглядит натуральнее, особенно если смотреть не только на текстуры, но и на физику: свет, тени, огонь, дым, воду, вспышки, растительность. Я говорю, конечно, про его нынешнее состояние, а не про то, что было на момент выхода. И при этом всё равно люди там не особо похожи на людей: кожа, волосы, одежда, движения - мозг человека даже самую мелкую ненатуральность в этом палит очень быстро. Поэтому фотореализма в играх, скорее всего, не будет и с более мощным железом, все вот эти мелочи сжирают прорву памяти и процессорного времени. Особенно если это игра с модным нынче открытым бесшовным миром.

Игровой мир в первую очередь не должен противоречить сам себе, именно поэтому в играх почти не встречается фотореализм: люди чувствуют фальшь, когда одни части выглядят натуральнее других, и такая "реалистичная" графика воспринимается как менее качественная, чем мультяшная, но мультяшная на одном и том же уровне во всех аспектах. То есть, у RimWorld графика лучше, чем у Unrecord, как бы странно это ни звучало.

Я уверен, что уровень этого самого Cyberpunk можно получить на более слабом железе, чем требуется ему сейчас. Но я очень сомневаюсь, что достаточное для этого железо имелось в широкой продаже 10 лет назад. Как минимум потому, что 10 лет назад в видеокартах ещё не было трассировки лучей в реальном времени.

parent From Artem (unverified) Sun Aug 25 20:20:15 2024 UTC pencil

Re: Re: Re: Re: Туманные перспективы открытого железа

Да дофига вышло, честно говоря. Непонятно только, почему вы решили помянуть именно Cyberpunk и RDR и их гигантскими открытыми мирами, которые загрузили бы работой даже новое игровое железо даже с графикой 15-летней давности.

Фактически, игровые компьютеры это не совсем то же самое, что ПК. Разница примерно как между ПК и рабочей станцией. Так что, я полагаю, Андрей Викторович прав, говоря, что новое железо требуется лишь для браузера, ведь он, очевидно, имел в виду ПК, а не специализированные устройства для игр.

parent From hmm (unverified) Sun Aug 25 17:15:21 2024 UTC pencil

Re: Re: Туманные перспективы открытого железа

Если так подумать, то всё куда более запущенно. Замену вэбанутости децентрализованными сетями, видение которых вы описывали в гостевой, сегодня представить трудно — людей, в частности молодое поколение (оно и немудрено, доверять родителю воспитание его же ребёнка интернету также просто, как этому же интернету поганить мозги), что сам наблюдаю воочию, подсадили на такую соску контента, что её от них не оторвать и привязыванием прицепа к самосвалу и вдавливанием тапки в пол.

Из того, что интернет даёт, что можно и нужно брать, это какие-то структурированные (что важно, не разношёрстные с, хрен поймёшь какой, сортировкой) сборники, их бы всё равно хотел видеть в замене инету. Назвал бы эту возможность централизованным каналом read only, но чтобы реализация была, если это не совсем уж глупо прозвучит, через подключение этих локальных сетей к этой уже ридонли сетке. Распространение таких централизованных каналов-сборников через сарафан, на всякий уточню. Ясен пень, вопрос модерации никак не решить, если будет свобода, собственник же каналом руководит, но если будут постить какой-то трешак, то эта локальная сетка просто обрубает с той концы и прекращает иметь к ней доступ. А чтобы не терять ту годноту, которая потенциально была в том канале, просто делать бэкапы на свой сервер (потому что если брать во внимание, что сети будут статичными, можно будет как минимум быстренько пробежаться по важным для себя материалам и скопировать их содержимое; ну а в лучшем случае, будь владелец того канала небезразличным к посетителям, сделает простую выгрузку с ресурса, в каком-нибудь приемлемом формате, с опциями выбора интересующих разделов).

parent From Andrey V. Stolyarov profile Sun Aug 25 17:22:58 2024 UTC pencil

userpic

Re: Re: Re: Туманные перспективы открытого железа

Весь этот поток сознания не имеет никакого отношения к делу. Любой информационный сервис может быть содержательно реализован целиком на стороне сервера, без исполнения в браузере, а без свистоперделок можно обойтись. Всё, точка, все свободны, смерть вебщикам. Ранее описывавшийся проект наложенной сети вообще совершенно про другое.

parent From hmm (unverified) Sun Aug 25 17:32:41 2024 UTC pencil

Re: Re: Re: Re: Туманные перспективы открытого железа

Похоже, забыл упомянуть самое главное: разумеется, это всё без участия браузера. Да и он здесь нафиг не нужен, лишнее звено

parent From Andrey V. Stolyarov profile Sun Aug 25 17:53:12 2024 UTC pencil

userpic

Re: Туманные перспективы открытого железа

Если под браузером понимается программа для просмотра гипертекста в формате HTML с картинками в формате jpg, svg, png и gif (и больше ничего), то у меня он особых возражений не вызывает.

parent From hmm (unverified) Sun Aug 25 18:06:18 2024 UTC pencil

Re: Re: Туманные перспективы открытого железа

Естественно, но ныне существующие варианты т. н. браузеров и их движков нагромождено до кучи, достаточно реализации какого-то безгуйного окошка для просмотра содержимого

parent From Andrey V. Stolyarov profile Sun Aug 25 18:10:38 2024 UTC pencil

parent From quwe (unverified) Mon Aug 26 05:57:10 2024 UTC pencil

Re: Re: Re: Туманные перспективы открытого железа

а Links2 на SVGAlib? В нём есть возможность картинок + подгрузка текста.

From anonymous (unverified) Sun Aug 25 13:13:44 2024 UTC pencil

Праздный вопрос о программе менторинга

Будет ли когда-нибудь раскрыта какая-нибудь информация о ходе менторинга?

Например, напишете ли Вы когда-нибудь новость на сайте примерного содержания: "С запуска менторинга прошло 5 лет. За это время к программе присоединились 30 человек, из них 10 дошли до конца и стали настоящими программистами" - вроде такого? Или любая подробная информация останется тайной между Вами и участниками программы?

parent From Andrey V. Stolyarov profile Sun Aug 25 13:23:57 2024 UTC pencil

userpic

Re: Праздный вопрос о программе менторинга

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

Но вообще — какова ценность подобных заявлений? Довольно очевидно, что публикация персональных данных участников исключена полностью, так что проверить достоверность того, что я тут про себя наговорю, будет заведомо невозможно. И чего тогда, спрашивается, воздух сотрясать?

Разве что кто-то из участников сам решит опубликовать свои впечатления, но над этим я не властен и просить никого о чём-то таком не буду.

parent From anonymous (unverified) Sun Aug 25 15:05:40 2024 UTC pencil

Re: Re: Праздный вопрос о программе менторинга

>Какова ценность подобных заявлений

Если говорить просто о сухой статистике по менторингу, то ценность ее сходна с ценностью статистики использования отдельными индивидами Вашей книжки вообще.

Вторая статистика собрана быть не может, пока трёхтомник ещё молод и не набрал достаточно известности; до выхода английской версии вполне возможно, что и вовсе не наберёт значительно больше, чем сейчас. Таков уж наш неприятный мир, ему курсы по питону более интересны - но и там бывает интересно увидеть, что из двухсот тысяч человек до конца доходят не более 10%.

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

Несколько раньше, чем через 5 лет, Вы можете поделиться личными любого рода впечатлениями от менторинга без любой привязки к конкретным личностям или их группам - что угодно, наподобие: как скоро в среднем участникам впервые удаётся написать стоящую программу в пару тысяч строк, бывали ли у вас товарищи, которые покинули менторинг вследствие невозможности понять вложенные циклы, сколько народу выбрало в качестве первой системы *bsd, было ли написано кем-то из участников за все время программы что-нибудь дико интересное, какой опыт программирования у участников в среднем бывает до вступления в программу менторинга - и все такое.

Хотя я не уверен, что эти впечатления будут так же интересны, как статистика. Мне вот интересно - если что, простите за праздный интерес. Но, так или иначе, в этом случае -

>проверить достоверность будет заведомо невозможно

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

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

parent From Andrey V. Stolyarov profile Sun Aug 25 16:13:00 2024 UTC pencil

userpic

Re: Праздный вопрос о программе менторинга

Ну Ok, подумаю на эту тему. Сейчас-то в любом случае всё в пределах статпогрешности.

UPD: вообще вам может быть интересно узнать, что ДМК Пресс продавали трёхтомник отдельными томами, вот третьих томов было продано, если я всё правильно понял, раза в три меньше, чем первых, и здесь ещё стоит учесть, что много кто брал сразу все три "для комплекта".

parent From anonymous (unverified) Sun Aug 25 18:20:29 2024 UTC pencil

Re: Праздный вопрос о программе менторинга

Ну, по версии дмк-пресс мне уже известна статистика :)

Найти второй том от ДМК Пресс все ещё можно и сейчас у всяких перекупов, хоть и втри-вчетыредорога. (Недавно можно было и третий, очень странно, что третий закончился у них сильно раньше.)

И это при тираже в 100 (!) экземпляров. И при том, что некоторое количество книг, продаваемых этими перекупными онлайн-магазинами, было изрядно попорчено - мне 2 и 3 том аж два раза перезаказывать приходилось. (Я год назад покупал - по 1700 за том.)

P.S.1: Кстати, вообще не понимаю, нафиг по одному тому покупать, если уж решился осваивать книжку. Сэкономить на случай, если второй том в читающего не полезет? Скромность, однако, хорошее качество.

P.S.2: Кстати, та странная лавочка, издающая Ваши книги нелегально, все ещё живёт и торгует ими - вот только что вылезло в поисковике, когда я полез проверять возможность покупки томов.

P.S.3: Хм, кстати, если немного подумать, некое подобие статистики я и сам у себя в голове могу представить. Мне на первые две части весь год с момента покупки и понадобился - с прошлого сентября до этого сентября. Только начал читать часть 3; да и то не сказать, что часть 2 по настоящему освоена - до объема в 2-3 тысяч строк полезной программы я не добрался, пока мелкие игрушки от 500 до 1000 строк тяжеловато даются.

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

parent From Andrey V. Stolyarov profile Sun Aug 25 18:28:32 2024 UTC pencil

userpic

Re: Re: Праздный вопрос о программе менторинга

> И это при тираже в 100 (!) экземпляров.

На эту ерунду можете внимания не обращать. По 100 штук печаталось в один заход каждый раз, а всего было напечатано первых томов, как я понял, около полутора тысяч. То, что они при этом не меняли ни номер заказа, ни все остальные реквизиты, которые вообще-то положено менять — ну, это не ко мне, почему они так делали.

From Irina (unverified) Fri Aug 23 19:07:53 2024 UTC pencil

Программирование и AI

Здравствуйте, Андрей Викторович! Я, начинающая девушка-программист. Начала обучение по Вашим книгам. Очень приятно было узнать, что Ваша супруга программист - меня это очень мотивирует. Мне нужен Ваш совет - мои коллеги настаивают на том, чтобы я активно училась использовать AI Copilot и прочие инструменты, хотя бы для написания базовых функций или процедур, чтобы идти в ногу со временем и повышать свою эффективность. Я сопротивляюсь и хочу писать код без помощи этого инструмента, чтобы сначала во всем разобраться. Хотелось бы узнать Ваше мнение по этому поводу, так как многие компании пишут, что хотят перестать нанимать без этого навыка. Пользуетесь ли чем-то подобным Вы сами?

parent From Andrey V. Stolyarov profile Fri Aug 23 19:19:07 2024 UTC pencil

userpic

Re: Программирование и AI

> Я сопротивляюсь и хочу писать код без помощи этого инструмента, чтобы сначала во всем разобраться.

Правильно делаете.

> хотят перестать нанимать без этого навыка

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

> Пользуетесь ли чем-то подобным Вы сами?

Я принципиально не занимаюсь ни веб-разработкой, ни созданием мобильных приложений, а за пределами этих двух областей (от которых настоятельно рекомендую держаться подальше, если не хотите сгноить собственные мозги) все эти нейросетевые примочки не работают.

parent From Irina (unverified) Fri Aug 23 19:37:44 2024 UTC pencil

Re: Re: Программирование и AI

Большое спасибо за ответ!

> Если же такого уровня вам достичь не удастся, то смысла оставаться в этой сфере деятельности нет никакого.

Андрей Викторович, поясните, пожалуйста, как оцениваются навыки программиста на том уровне, что Вы описали?

> все эти нейросетевые примочки не работают.

Дело в сложности написания таких программ?

parent From Andrey V. Stolyarov profile Fri Aug 23 19:47:50 2024 UTC pencil

userpic

Re: Re: Re: Программирование и AI

> как оцениваются навыки программиста на том уровне

Никак не оцениваются. Ваш вопрос не имеет смысла.

> Дело в сложности написания таких программ?

Скорее дело в том, что при написании серьёзных программ требуется контролировать происходящее, так что не всякому живому программисту можно доверить написание кода, а доверять его нейросетке, которая вообще непойми что делает, непойми как работает и непойми что генерит, при этом, разумеется, не то чтобы "не отвечает" за содеянное, а, больше того, к ней вообще невозможно применить термин "ответственность" (поскольку она не субъект) — в общем это нонсенс.

parent From random-guy (unverified) Sat Aug 24 21:46:20 2024 UTC pencil

Re: Re: Re: Re: Программирование и AI

Добавлю еще, что все эти нейросетки обучены по большей части на говнокоде из гитхаба, которые генерят веб макаки. Отсюда можно сделать вывод о качестве ответов всех этих исскуственных идиотов

parent From Anonymous (unverified) Sun Aug 25 14:31:42 2024 UTC pencil

Re: Re: Re: Re: Re: Программирование и AI

Добавлю, что в ряде случаев нейросеть просто копирует куски кода из других проектов, что поднимает вопрос соблюдения условий лицензии на этот код.

parent From Andrey V. Stolyarov profile Sun Aug 25 14:52:48 2024 UTC pencil

userpic

Re: Программирование и AI

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

parent From Artem (unverified) Sat Aug 24 00:32:51 2024 UTC pencil

Re: Программирование и AI

В прошедшем учебном семестре довелось изрядно понаблюдать за тем, как несколько человек писали относительно немаленькие десктопные программы на C++ с помощью всевозможных Artificial Idiots (именно так надлежит расшифровывать AI). Впечатление тягостное. Объёмы кода вываливаются поистине гигантские, а сама программа по структуре напоминает не просто лапшу, каковую они выдавали и без AI, а разваренную слипшуюся лапшу. Разумеется, поддерживать это абсолютно невозможно, но вроде бы никто и не собирался.

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

parent From Andrey V. Stolyarov profile Sat Aug 24 08:18:08 2024 UTC pencil

userpic

Re: Программирование и AI

Я бы сказал, что использование AI здесь не уникально и не специфично, вот это вот "снижение вместо повышения" наблюдается каждый раз, когда кто-то изобретает очередной способ "избежать" написания когда, который должен быть написан. Бездумное применение библиотек для всего подряд — и внезапно оказывается, что на изучение самих библиотек тратится чуть ли не больше времени, чем ушло бы на код без их применения, плюс потом приключения, когда создатели библиотеки решают её "усовершенствовать", плюс совершенно гигантские затраты времени тех, кому приходится собирать проект, зависящий от нескольких десятков ожиревших либ, каждая из которых тоже собирается со своими приключениями. Использование языков супервысокого уровня — и постоянные приколы с абстракциями, которые почему-то ведут себя не так, как от них ожидалось, и вдобавок по-разному на разных системах.

Теперь вот AI.

Ей-богу, уже давно не смешно.

From Ян (unverified) Wed Aug 21 17:55:43 2024 UTC pencil

Создание UI на C

Андрей Викторович, в Ваших книгах есть примеры использования FLTK для создания графических пользовательских интерфейсов.

Я хотел бы создать оный на C. Какие библиотеки и инструменты Вы бы для этого порекомендовали?

Цель проекта - это максимальная портативность.

На данный момент рассматриваю GTK.

parent From Andrey V. Stolyarov profile Thu Aug 22 10:25:24 2024 UTC pencil

userpic

Re: Создание UI на C

GTK и переносимость? Ну-ну.

Лично мне вариантов известно два: либо писать на FLTK (но это C++), либо спускаться на уровень ниже и писать непосредственно на Xlib. Впрочем, на винду это тогда переноситься не будет, там придётся использовать WinAPI. В итоге у вас получится свой собственный слой абстракций, который займёт место готовых библиотек виджетов.

Если вопрос ставить так, что библиотека виджетов нужна внешняя (т.е. вы сами виджеты писать не готовы, что вполне понятно), чтобы она была на чистом Си и её реально можно было использовать — то я ни одной такой не видел и ни об одной такой не слышал.

parent From Anonymous (unverified) Thu Aug 22 11:22:04 2024 UTC pencil

Re: Re: Создание UI на C

https://github.com/Immediate-Mode-UI/Nuklear

Вот вроде хорошая, если конечно забыть что она на гитхабе

parent From Andrey V. Stolyarov profile Thu Aug 22 13:53:08 2024 UTC pencil

userpic

Re: Создание UI на C

Что-то гложут меня сомнения. Если авторам на результат своего труда настолько наплевать, что они для него не сделали хоть какой-нибудь сайтик, то вряд ли этот результат вообще достоин траты времени.

parent From Василий (unverified) Thu Aug 22 18:25:47 2024 UTC pencil

Re: Re: Создание UI на C

> что они для него не сделали хоть какой-нибудь сайтик

В последнее время наблюдаю, что разработчики, у которых были сайтики своих программ, их потихоньку сносят и уходят на gitHub+Sphinx. :^(

parent From Andrey V. Stolyarov profile Thu Aug 22 18:36:37 2024 UTC pencil

userpic

Re: Создание UI на C

Я это тоже наблюдаю. Полагаю, это следует рассматривать как проверку на вшивость.

parent From Parthen (unverified) Thu Aug 22 18:32:15 2024 UTC pencil

Re: Re: Создание UI на C

Там сайтик есть, просто он на Github Pages

https://immediate-mode-ui.github.io/Nuklear/doc/index.html

parent From Andrey V. Stolyarov profile Thu Aug 22 18:35:46 2024 UTC pencil

userpic

Re: Создание UI на C

Не сказал бы, что это хоть что-то меняет.

parent From Artem (unverified) Thu Aug 22 14:27:51 2024 UTC pencil

Re: Re: Re: Создание UI на C

Едва ли это то, что хочет вопрошающий. Эта библиотека воплощает парадигму построения интерфейса, известную как Immediate mode. Если коротко, то раз в N времени дёргается функция перерисовки интерфейса, и именно в процессе этой перерисовки происходит реакция на действия пользователя, и одновременно с этим пересоздаются нужные элементы GUI.

Кроме того, Nuklear нуждается в рендерере, с которым всё уже не так просто. Это хорошо подходит для программ, интенсивно использующих графику, которые итак вынуждены постоянно перерисовывать содержимое окна, и в любом случае вынуждены использовать специальный рендерер, например, для игр. А вот для обычных десктопных приложений это ну ваще не то.

parent From Andrey V. Stolyarov profile Thu Aug 22 14:53:13 2024 UTC pencil

userpic

Re: Re: Re: Re: Создание UI на C

> раз в N времени дёргается функция перерисовки интерфейса

Мда.

parent From Ян (unverified) Thu Aug 22 13:34:31 2024 UTC pencil

Re: Re: Создание UI на C

Значит настало время изучить плюсы.

parent From Andrey V. Stolyarov profile Thu Aug 22 13:48:56 2024 UTC pencil

userpic

Re: Создание UI на C

Плюсы сами по себе не так страшны, как может показаться. Вот "современные" плюсы, т.е. то, что под термином "Си++" понимают нынешние ньюфаги — это да, страшно.

parent From Anonymous (unverified) Thu Aug 22 14:59:40 2024 UTC pencil

Re: Re: Создание UI на C

> писать непосредственно на Xlib

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

Xlib делает ввод-вывод сама, и, более того, может заблокировать процесс.

parent From Andrey V. Stolyarov profile Thu Aug 22 17:12:47 2024 UTC pencil

userpic

Re: Re: Re: Создание UI на C

> Xlib делает ввод-вывод сама, и, более того, может заблокировать процесс.

Я не разбирался с этим на уровне Xlib, но даже с FLTK, которая, естественно, основана на Xlib, и, больше того, совершенно не рассчитана на то, что главный цикл будет не в ней — вот даже с ней вполне нормально получается вытащить дескриптор и работать с ним, организовав свой главный цикл. Из этого следует, что с Xlib тоже так можно. Как конкретно это делать — сейчас ковыряться не полезу.

UPD: не удержался (осторожно, тонны жабаскрипта от стековерфлоу)

parent From Anonymous (unverified) Thu Aug 22 20:25:11 2024 UTC pencil

Re: Re: Re: Re: Создание UI на C

Ну, это понятно, что библиотека должна уметь выдавать дескриптор: если бы такой возможности не было, то Xlib была бы совсем непригодной для использования. Но это не отменяет тот факт, что вызывать read/write она будет сама, если дёргать её функции. И, если какой-то запрос требует ответа от X-сервера, то Xlib не вернёт управление, пока не придёт ответ и она его не обработает.

parent From Andrey V. Stolyarov profile Thu Aug 22 21:39:10 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Создание UI на C

> И, если какой-то запрос требует ответа от X-сервера, то Xlib не вернёт управление, пока не придёт ответ и она его не обработает.

Это противоречит той информации, которая есть у меня, но я не уверен в достоверности её источников. В общем тот случай, когда нужна проверка.

Но вообще блокировка в ожидании ответа от X-сервера не так страшна, главное, чтобы это не была блокировка в ожидании действий пользователя.

parent From Anon (unverified) Sat Aug 24 16:40:48 2024 UTC pencil

parent From Andrey V. Stolyarov profile Sat Aug 24 16:50:21 2024 UTC pencil

userpic

Re: Re: Создание UI на C

По-моему вообще не имеет никакого отношения к исходному вопросу.

parent From Artem (unverified) Sat Aug 24 20:35:26 2024 UTC pencil

Re: Re: Re: Создание UI на C

Частично имеет, в этом проекте есть отдельная библиотека raygui. Но она тоже Immediate mode (было бы странно ждать от библиотеки для игр обычных статических окошек).

parent From Artem (unverified) Sat Aug 24 20:35:16 2024 UTC pencil

Re: Создание UI на C

Удалось нарыть две библиотеки, вроде бы удовлетворяющие требованиям: 1. smgui - почти новорожденная, и как будто состоящая из реакции на уже поминавшийся Nuklear; 2. IUP - неожиданный динозавр, она даже древнее FLTK, но жива и развивается по сию пору.

parent From Kestrel (unverified) Sun Aug 25 18:50:03 2024 UTC pencil

Re: Создание UI на C

IUP - Portable User Interface.

Ссылку не даю, так как её легко можно нейти через веб-поисковик.

На сайте там указано:

IUP is a multi-platform toolkit for building graphical user interfaces. It offers a simple API in three basic languages: C, Lua and LED. IUP's purpose is to allow a program source code to be compiled in different systems without any modification.

From owl (unverified) Wed Aug 21 15:17:32 2024 UTC pencil

Установка Owl на флешку

Здравствуйте, Андрей Викторович! Помогите пожалуйста с установкой, не могу понять что я упускаю.

Нашел эту инструкцию, но она мне не помогает

https://openwall.info/wiki/Owl/USB_drive?s[]=usb

Попробовал сделать

mkfs.vfat /dev/sdf
dd if=owl.iso of=/dev/sdf bs=4M 

(с другими образами прокатывало)

Но здесь так не работает. Образ я перенес, а вот загрузить его не получается (то есть grub сразу выбирает то, что поставлено на жесткий диск при попытке загрузиться с флешки).

В инструкции указано, что

Just run

cp -a /rom/world /owl/usr/src

Но мне не понятно, что это. При попытке это сделать в примонтированном образе мне говорят, что read-only.

parent From Andrey V. Stolyarov profile Thu Aug 22 10:18:50 2024 UTC pencil

userpic

Re: Установка Owl на флешку

Понятия не имею, в чём здесь проблема. Попробуйте написать на owl-users@, может его ещё кто-то читает.

Вообще, если совсем честно, Owl, похоже, всё-таки умер.

parent From owl (unverified) Fri Aug 23 13:24:48 2024 UTC pencil

Re: Re: Установка Owl на флешку

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

parent From Andrey V. Stolyarov profile Fri Aug 23 14:25:52 2024 UTC pencil

userpic

Re: Установка Owl на флешку

С флешки, естественно. Но последний раз я это делал в 2016 году и подробностей не помню.

parent From Anonymous (unverified) Sun Aug 25 17:06:38 2024 UTC pencil

Re: Re: Установка Owl на флешку

Скорее всего просто флешка сдохла у товарища, вот и не грузится. На неё вроде пишешь через dd, а содержимое старое остаётся.

parent From Евгений (unverified) Fri Aug 23 14:01:53 2024 UTC pencil

Re: Установка Owl на флешку

> Попробовал сделать

mkfs.vfat /dev/sdf
dd if=owl.iso of=/dev/sdf bs=4M 

Да. Тут что-то не так. Первая строчка (создание файловой системы) бессмысленна, поскольку вторая строчка затирает этот диск образом.

Надеюсь, /dev/sdf это флешка?

У меня вторая команда отработает только от рута.

По идее она верная. После этого надо сделать перезагрузку, выйте в меню загрузки и выбрать загрузку с флешки.

Проверить целостность образа можно с помощью QEMU: qemu -boot d -cdrom owl.iso -m 4096

также можно проверить загрузку с флешки: qemu -hda /dev/sdc -boot c -usb -usbdevice disk:/dev/sdf

parent From owl (unverified) Sat Aug 24 18:31:42 2024 UTC pencil

Re: Re: Установка Owl на флешку

Спасибо за полезные команды по проверке целостности и загрузке образа с флешки прямиком в qemu, я о них не знал. Что касается Owl-а (все версии x86-64) - вообще какая-то фантастика. Сделал gzip -d owl.iso.gz, получил образ. Образ записал, но он никуда не грузится (то есть как будто флешка не загрузочная и на ней нечему загружаться). Через boot menu специально прожал флешку - ноль эмоций. Что интересно - такая же история с openBSD. Так и не вкурил всех тонкостей наверное. Если операцию по записи через dd проводить на каком нибудь void linux (glibc/musl - не важно) - все запускается прям сразу. Евгений, скажите пожалуйста, вы ставили Owl? Внутри, то есть в самом образе, нужны какие-то приготовления перед записью? И может ли такое быть, что при успешной записи на флешку невозможность с нее загрузить образ - это просто несовместимость по железу?

parent From Andrey V. Stolyarov profile Sat Aug 24 20:00:33 2024 UTC pencil

userpic

Re: Re: Re: Установка Owl на флешку

> Внутри, то есть в самом образе, нужны какие-то приготовления перед записью?

Это я точно могу сказать — нет, не нужны.

parent From Oliver (unverified) Sun Aug 25 07:24:47 2024 UTC pencil

Re: Re: Re: Установка Owl на флешку

> Образ записал, но он никуда не грузится

У меня нечто похожее случалось. Сколько помню, я проблему решил тем, что в команде dd уменьшил значение параметра bs.

parent From doctor_whom (unverified) Sun Aug 25 10:09:10 2024 UTC pencil

Re: Установка Owl на флешку

> Что интересно - такая же история с openBSD.

Если вы пытались записать на флешку образ ISO с OpenBSD (install??.iso), то он для этого не предназначен. На флешку нужно записывать install??.img. Это всё подробно описано в OpenBSD FAQ - Installation Guide

Ну и, вообще говоря, сам формат ISO изначально не предусматривает запись его на флешку. Чтобы создать загрузочный образ для флешки, iso-образ нужно обработать, например, командой isohybrid. Как можно догадаться из названия, она создаёт гибридный образ, который уже будет грузиться и с CD/DVD, и с флешки. Большинство дистрибутивов линукса обычно предлагают скачать уже подготовленный гибридный образ. Привыкшие к этому линуксоиды часто попадаются на попытках записать обычный, не гибридный, образ ISO на флешку и недоумевают, почему с флешки ничего не грузится. Проверьте, возможно с Owl та же история.

parent From owl (unverified) Sun Aug 25 17:29:25 2024 UTC pencil

Re: Re: Установка Owl на флешку

Уменьшил bs до двух, сделал гибридный образ - такая же история. Но есть и хорошие результаты по части записи. Теперь после отработанного dd мне больше не сыпят в терминал ошибками про чтение, запись и секторы. Все равно спасибо большое, не знал об isohybrid

parent From Oliver (unverified) Mon Aug 26 07:38:08 2024 UTC pencil

Re: Re: Re: Установка Owl на флешку

> Уменьшил bs до двух

Я ставил bs=1M. Кстати, то же самое рекомендуется в мануале от опен бсд.

Вообще, я не делал особых попыток понять все причины, по которым создание загрузочной флешки командой dd может не дать желаемого результата, но вот подумал, что может ваша флешка автомом примонтируется куда-то сразу после ее вставки в порт юсб, и это тоже может играть роль? Что показывает команда lsblk -f сразу после подключение флешки?

parent From owl (unverified) Mon Aug 26 16:26:47 2024 UTC pencil

Re: Re: Re: Re: Установка Owl на флешку

Что интересно - тестировал на двух машинах. На одной окошечная дрянь под названием elementary OS. Вот там да, автоматически примонтируется. Но я делал в первую очередь запись на своей основной тачке - под Devuan-ом. Там без моего ведома такие вещи не происходят и флешка никуда сама не примонтируется. lsblk -f выдает пустоту в столбце точек монтирования под девуаном

parent From Евгений (unverified) Wed Aug 28 18:26:09 2024 UTC pencil

Re: Re: Re: Установка Owl на флешку

> Образ записал, но он никуда не грузится.

Образ через qemu проверяли? Должен грузиться. Затем нужно через qemu проверить записанную флешку, чтобы не перегружаться по десять раз. Если образ грузится, а флешка нет, то у меня вывод: надо образ записывать на cdrom. Или преобразовывать в гибрид, но я таким не занимался. Все системы, которые я ставил, умели грузиться с флешки.

parent From Andrey V. Stolyarov profile Wed Aug 28 18:28:59 2024 UTC pencil

userpic

Re: Re: Re: Re: Установка Owl на флешку

У меня созрел процедурный вопрос: вы понимаете, что такое пустая строка? Не перевод строки, а именно пустая строка? Мне уже надоело за вас эти строки вставлять в ваши комменты.

parent From owl (unverified) Thu Aug 29 21:09:55 2024 UTC pencil

Re: Re: Re: Re: Установка Owl на флешку

Просто qemu запустить не получается, а вот qemu-system-x86_64 выдает следующую информацию:

WARNING: Image format was not specified for '/dev/sda' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
qemu-system-x86_64: -usbdevice disk:/dev/sda: usbdevice parameters are not supported anymore
qemu-system-x86_64: -usbdevice disk:/dev/sda: could not add USB device 'disk:/dev/sda'

parent From owl (unverified) Sun Sep 8 11:58:38 2024 UTC pencil

Re: Re: Re: Re: Re: Установка Owl на флешку

Смог все таки записаться, хех. Рассказываю: брал две флешки примерно одинаковой стоимости и разных производителей. На обе попытки записи провалились и при попытках загрузиться ноут сразу кидало в grub на жестком диске. Взял флешку от третьего производителя и, я не знаю каким чудом, но именно на нее сразу встал гибридный образ и после перезагрузки я увидел долгожданный Openwall. Способ записи я не менял, все такой же dd с bs=4M, но образ прогнал через isohybrid на всякий случай :) Всем большое спасибо за массу полезной информации по qemu и проверке флешки. Никогда бы не подумал, что могут быть "кривые" носители, которые годятся только для хранения на них файлов и все.

From anon (unverified) Tue Aug 20 10:03:11 2024 UTC pencil

Преподавание

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

С высоты вашего опыта, как считаете, можно попробовать или лучше попозже?

parent From Andrey V. Stolyarov profile Tue Aug 20 11:37:41 2024 UTC pencil

userpic

Re: Преподавание

Лучше пораньше. Кроме шуток. Если вам студент задаёт вопрос, а вы не знаете ответа — нужно просто честно ответить "не знаю". У меня за 20+ лет преподавания с этим вот "не знаю" ни разу проблем не было. Зато я видел, как некоторые мои (к счастью, бывшие) коллеги готовы ужом извернуться, лишь бы не признать отсутствие всезнания. Студенты таких довольно быстро начинают искренне и незамутнённо презирать.

parent From WhiteRex (unverified) Tue Aug 20 15:48:37 2024 UTC pencil

Re: Преподавание

А можно преподавать если сам вчера закончил специалитет?

parent From Andrey V. Stolyarov profile Thu Aug 22 10:20:08 2024 UTC pencil

userpic

Re: Re: Преподавание

Лекции читать нельзя (учёная степень требуется), но семинары вести можно. Ну, это если формально. А если неформально — то каждый решает сам.

parent From anon (unverified) Thu Aug 22 10:51:21 2024 UTC pencil

Re: Re: Преподавание

А кто же тогда преподавать должен? Если вы предлагаете закончивших аспу, то где набрать столько людей?

У нас есть фильтрация со стороны лектора, кто попало, закончивший магистратуру/бакалавр, к преподаванию не допускается.

parent From Andrey V. Stolyarov profile Thu Aug 22 11:12:49 2024 UTC pencil

userpic

Re: Преподавание

В целом много где считается, что для преподавания нужно быть хотя бы аспирантом. Но формально это пофигу, кого кафедра назначила на конкретные семинары, тот их и ведёт. Формальное требование — только наличие высшего образования (кстати, не знаю, каков в этом плане статус бакалавров; спецы и магистры точно могут).

From Anonymous (unverified) Mon Aug 19 08:32:11 2024 UTC pencil

Насколько важна безопасность программ на C

Меня несколько беспокоит количество подводных камней при написании кода на C (хотя в других языках тоже есть, но чуть меньше). Если конкретно, то это например такие штуки:

1) var=malloc(n*sizeof(int));

Мне бы и в голову не пришло проверять на целочисленное переполнение перед вызовом malloc и лишняя обёртка из if понятности и читаемости коду не прибавляет.

2) Ошибки ±1 при выделении памяти и проходе циклов.

3) Undefined behavior

Пока что все мои программы на C работают у меня же на компе и данные я же им и скармливаю, поэтому самое худшее что может случиться — это если программа выдаст неверный результат, который я тут же и поправлю. А скорее вообще ничего не будет, я же тестирую при написании на своём же компе и миллиард элементов давать обычно не пробую.

Но что, если я начну писать серверный софт, те же CGI, а привычка не заморачиваться над теми же переполнениями целых останется?

parent From Andrey V. Stolyarov profile Mon Aug 19 09:15:59 2024 UTC pencil

userpic

Re: Насколько важна безопасность программ на C

> Мне бы и в голову не пришло проверять на целочисленное переполнение перед вызовом malloc

Никто и не проверяет. Нужно изначально писать так, чтобы в n никогда не возникло "неожиданно большое" число (и дело не в переполнении целых, речь ведь идёт о выделении памяти, тут можно denial of service огрести без всякого переполнения — на числах, на многие порядки мЕньших, чем нужно для переполнения); если даже это обеспечивается некими проверками, то это должно происходить задолго до malloc.

> 2) Ошибки ±1 при выделении памяти и проходе циклов.

А вот тут придётся быть внимательным, других вариантов нет.

> 3) Undefined behavior

Понятие UB введено "стандартами". Это всё, что о нём следует знать.

> те же CGI

CGI не так критичны (хотя, конечно, критичны, поскольку обрабатывают данные, пришедшие извне; но первым бастионом на пути атакующего оказывается HTTP-сервер). А вот, например, программы, слушающие открытые порты — это да.

> привычка не заморачиваться

"Привычки не заморачиваться" при работе на Си быть не должно. Иной вопрос, что применять нужно здравый смысл и понимание, что на самом деле может произойти, а не всякую ерунду, написанную людьми, которые сами ни черта не понимают.

parent From Anonymous (unverified) Mon Aug 19 16:56:51 2024 UTC pencil

Re: Re: Насколько важна безопасность программ на C

> можно denial of service огрести без всякого переполнения

Ну DoS такого плана как правило не критичен. Если данных так много то их вообще не получится обработать в любом случае, разве что свопить. Проблема в записи в память другой переменной и возможное переполнение стека.

> "Привычки не заморачиваться" при работе на Си быть не должно. Иной вопрос, что применять нужно здравый смысл и понимание, что на самом деле может произойти, а не всякую ерунду, написанную людьми, которые сами ни черта не понимают.

Так в этом и проблема. Просто написать программу на C я могу, а вот сделать её ещё и безопасной — вот с этим сложности. Так что, вообще не пытаться писать сетевые программы?

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

parent From Andrey V. Stolyarov profile Mon Aug 19 17:44:10 2024 UTC pencil

userpic

Re: Re: Re: Насколько важна безопасность программ на C

> Ну DoS такого плана как правило не критичен.

А что критично, простите? Ну, наверное, remote root на вашей домашней машине критичен, но вы же не собираетесь на ней гонять серверный процесс, видимый из интернета и имеющий root'овые полномочия?

> Проблема в записи в память другой переменной и возможное переполнение стека

От вашей фразы ощущение такое, что вы её повторяете за кем-то, не имея понимания, о чём в действительности идёт речь, и не факт, что такое понимание было у того, за кем вы повторяете. Да, промахиваться мимо собственных массивов не надо. И что? При чём тут целочисленное переполнение при вычислении аргумента для malloc?

> Мне кажется почти нереальным предусмотреть всё

Для начала вам, по-видимому, стоит отбросить тот источник, которым вы сейчас пользуетесь. Реальность такова, что если там не нашли ничего лучшего, нежели настаивать на проверке целочисленного переполнения при вычислении аргумента malloc, значит на самом деле авторы текста в безопасности понимают примерно столько же, сколько я в женской парфюмерии (т.е. почти ничего).

> вообще не пытаться писать сетевые программы?

Не пытаясь, вы ничему не научитесь. Так что пишите, и как можно больше.

Вообще чего вы, собственно, боитесь? Программа, пусть даже слушающая порт, но при этом работающая под изолированным пользователем, мало чем вам грозит, даже если её сломают. Да даже если вы возьмёте себе VPS и её кто-то проломит, ну нажмёте в веб-интерфейсе вашего хостера кнопочку reinstall. А свой собственный рабочий компьютер (на котором вполне может даже и есть чем поживиться взломщику) вы вряд ли станете выставлять в интернет открытыми портами, не?

К тому времени, когда доберётесь до написания критически важных программ, опыт у вас будет уже качественно иного уровня.

parent From Anonymous (unverified) Mon Aug 19 20:37:33 2024 UTC pencil

Re: Re: Re: Re: Насколько важна безопасность программ на C

Речь о том, что в куче (то есть выделенной ОС динамической памяти, управляемой libc) за участком памяти, куда должны записываться данные со входа может оказаться какой-нибудь участок памяти, содержащий что-нибудь, позволяющее влиять на поведение программы.

Суть не конкретно в переполнении в malloc, а вообще в выделении меньшего количества памяти чем нужно из-за неучтенных факторов. Просто слишком много таких моментов и у меня ощущение, что код вырастет раза в два и станет малочитаемым если добавить все нужные проверки.

parent From Andrey V. Stolyarov profile Mon Aug 19 21:24:55 2024 UTC pencil

userpic

Re: Насколько важна безопасность программ на C

> а вообще в выделении меньшего количества памяти чем нужно из-за неучтенных факторов

Размер выделения памяти тут ни при чём. "При чём" тут ровно одно: надо помнить, какого размера кусок памяти был выделен, и проверять, что за этот размер пока не вышли. Вот это делать совершенно необходимо, и от этого вы никуда не денетесь. Вообще. Этот паровоз ездит только так.

Подчёркиваю жирно и тремя чертами: размер массива, задаваемый изначально, никакого отношения к этой проблеме не имеет. Если у вас нет стопроцентного априорного знания, какого размера будет массив, то вы в любом случае никуда не денетесь от того, чтобы написать в каком-то месте программы изменение его размера (выделить новый, скопировать данные из старого, грохнуть старый, присвоить указателю адрес нового). Настоятельно рекомендую realloc не использовать (даже если знаете о его сущестовании), пока не научитесь писать без него и не почувствуете полную уверенность в происходящем (до такой степени, чтобы нужный код стекал с пальцев без напряжения головного мозга). И осознайте один тривиальный момент: наличие в программе этого куска кода неизбежно. Ну вот неизбежно. Начальный размер не может быть выбран так, чтобы этого куска кода вообще не было, а если он всё равно есть — то пофигу, какой там начальный размер.

> Просто слишком много таких моментов

"Таких моментов" ровно столько, сколько у вас динамически выделяемых массивов. Не больше и не меньше. Их не слишком много и не слишком мало, их ровно столько.

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

Ах, да, чуть не забыл: никакого отношения к безопасности это всё не имеет вообще.

parent From Anonymous (unverified) Mon Aug 19 22:08:16 2024 UTC pencil

Re: Re: Насколько важна безопасность программ на C

> выделить новый, скопировать данные из старого, грохнуть старый, присвоить указателю адрес нового

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

> "Таких моментов" ровно столько, сколько у вас динамически выделяемых массивов.

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

parent From Andrey V. Stolyarov profile Tue Aug 20 07:32:56 2024 UTC pencil

userpic

Re: Re: Re: Насколько важна безопасность программ на C

> если именно в таком порядке и код многопоточный

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

> Я имел ввиду вообще тонкости

Исходя из того, что у вас уже вылезла многопоточность, при том что программировать вы вроде бы не умеете, я уже практически уверен, что вы зачем-то взяли текст одного из тех моральных уродов, которые считают своим долгом показать всему миру собственную (недостижимую для остальных) крутость, и зачем-то в этот текст поверили.

В принципе дело ваше, только какого чёрта вы здесь тогда делаете? Вы что, начали с Си? Я утверждаю, что этого делать нельзя, вы вправе не соглашаться, но, опять-таки, какого чёрта вы тогда здесь? Идите дальше жрите всякое говно, которого в достатке успели наплодить всевозможные ньюфаги.

parent From Anonymous (unverified) Tue Aug 20 07:59:16 2024 UTC pencil

Re: Re: Re: Re: Насколько важна безопасность программ на C

Нет, с C я не начинал и что такое побочные эффекты я понимаю, более или менее.

parent From Andrey V. Stolyarov profile Tue Aug 20 08:04:06 2024 UTC pencil

userpic

Re: Насколько важна безопасность программ на C

Ну, я за вас рад. Но прибавить к уже сказанному мне нечего.

parent From Паранойя (unverified) Mon Aug 19 12:53:41 2024 UTC pencil

Re: Насколько важна безопасность программ на C

скорее вообще ничего не будет

С такой мыслью к тестированию лучше не приступать. ;)

я же тестирую при написании на своём же компе и миллиард элементов давать обычно не пробую.

А может n оказаться отрицательным или получиться из отрицательного числа, если n само unsigned?

parent From WhiteRex (unverified) Tue Aug 20 15:00:38 2024 UTC pencil

Re: Насколько важна безопасность программ на C

Смотря что это за "n". Обычно можно прикинуть в уме, какие значения может принимать та или инная переменная. Если эту "n" вводит пользователь, то там само собой разумеется поставить какое-то ограничение (типо, если n больше 100, то принять её равной 100, и написать в поток для ошибок, что значение слишком большое, поэтому принято за 100). А если эта "n" внутри программы, то переполнения скорее всего может быть только при операциях вычиталния из unsigned int. Это легко отследить, по принципу "вычитается из unsigned - значит есть вероятность переполнения". На счёт стека, на форумах пишут что ошибка "переполнения стека" есть практически в любом языке высокого уровня, даже на Java Script. Так что это не какая-то особенность СИ, наверное.

parent From Andrey V. Stolyarov profile Thu Aug 22 10:28:47 2024 UTC pencil

userpic

Re: Re: Насколько важна безопасность программ на C

Переполнение стека само по себе ничем не страшно, программа просто падает. Обычно новичков всякие самозваные гуру пугают переполнением стековых буферов, это совершенно иное — если его допустить, можно создать эксплойтабельную дыру (за счёт затирания адреса возврата из подпрограммы). Вот только (а) безалаберность в программировании недопустима на любом языке, отнюдь не только на Си, и (б) всякие эти "пугатели", как правило, сами не вполне понимают, о чём говорят.

From Proger profile Sun Aug 18 14:13:42 2024 UTC pencil

Web похоронить, web похоронить...

Слушайте, а если говорить не о принципиально новой модели сети, а о клиент-серверной, то зачем изобретать gemini, spartan и т.п.?

Можно же просто использовать telnet BBS. Софт написан миллион лет назад, проверен, работает. Из клиентского софта нужен лишь простой как барабан telnet-клиент. Визуально оформлено может быть как угодно (в контексте терминала, даже с ANSI графикой). Client side скриптов нет и быть не может, серверная программа может быть любой сложности.

parent From Andrey V. Stolyarov profile Sun Aug 18 15:27:33 2024 UTC pencil

userpic

Re: Web похоронить, web похоронить...

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

Но вообще интересно. Закопать веб — задача важная, но не единственная. Я правильно понимаю, что серверные реализации там сочетают в себе, кроме самой этой BBS'ки (т.е. фактически системы текстовых менюшек, отдаваемой через telnet) ещё и ftp/gopher/smtp/pop3/imap?

Вообще век живи, век RTFM. Пошёл дальше ковыряться.

parent From Proger profile Sun Aug 18 16:25:03 2024 UTC pencil

Re: Re: Web похоронить, web похоронить...

> Фишка веба в ссылках и возможности прыгать с сервера на сервер без вот этой вот всей процедуры входа, регистрации, ответов на вопросы и прочего.

Резонно, но если договориться о формате ссылок на другие BBS, то проблема решаемая.

> Я правильно понимаю, что серверные реализации там сочетают в себе, кроме самой этой BBS'ки (т.е. фактически системы текстовых менюшек, отдаваемой через telnet) ещё и ftp/gopher/smtp/pop3/imap?

На тех, куда я заходил, этого не было. Регистрация прям там, забыл пароль -- твои проблемы. Но я не вижу проблем в теории дернуть sendmail и отправить почту, равно как и не вижу проблему поддерживать FTP.

Можно ещё подумать в сторону ssh. Через него и файлы передавать можно, и безопасность есть -- хоть банк обслуживай, и все проблемы с шифрованием вынесены в отдельный комплект программ, от которого нужен конкретный интерфейс, а реализация может быть любой (совместимой).

parent From Andrey V. Stolyarov profile Sun Aug 18 17:03:12 2024 UTC pencil

userpic

Re: Web похоронить, web похоронить...

Видимо, это мне так повезло, я на какую-то BBSку зашёл наугад, вот там был весь букет. Но это, наверное, местный сисоп расстарался.

Тут дело не в том, что "можно сделать", а в том, что мне почудилось готовое решение проблемы, на которую я зубы точу уже лет десять. В гипотетически решённом виде проблема выглядит так: берём VPS, накатываем на неё некую софтину (ровно одну, и без внешних зависимостей, т.е. очевидно написанную на C, в крайнем случае C++, и со всеми библиотеками уже в архиве, возможность статической сборки обязательна, интерпретируемые языки не предлагать), прописываем несколько наиболее важных параметров (в идеале — доменное имя, и всё), после чего зовём всех друзей пользоваться новым узлом. К учётной записи на узле прилагаются по меньшей мере почта и файлопомойка, в идеале ещё и XMPP, и что-нибудь вроде блога.

Ключевое слово тут — одна софтина и минимум конфигурения. Я прекрасно знаю, что всего этого можно добиться существующим софтом, даже знаю как, но много-много кусочков, каждый с толпой зависимостей и для каждого простыни конфигов — это не то решение, которое мне интересно. Сисадмином я последний раз работал четверть века назад, но что такое "трудозатраты на администрирование", прекрасно знаю, а ещё знаю, сколько усилий я готов потратить бесплатно, а сколько не готов.

Что касается "формата ссылок", то это вообще не о том. Веб бы тоже не существовал в нынешнем виде, если бы на каждый сайт нужно было логиниться и отвечать на вопросы, прежде чем добраться до содержимого. Конечно, если задаться целью, видимо, возможно чего-то похожего на нашу цель добиться с использованием протокола telnet, но ни существующие клиенты, ни, насколько я вижу, существующий софт для telnet BBS для этого не подходят, софт придётся писать новый, и я не вижу, почему для этого нужно использовать именно telnet.

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

parent From Anonymous (unverified) Mon Aug 19 21:18:10 2024 UTC pencil

Re: Re: Web похоронить, web похоронить...

Что-то похожее есть в fossil, правда не для общения, но там один бинарник который даёт сразу и систему контроля версий и веб-сайт для программы, включая вики и тд.

parent From Andrey V. Stolyarov profile Mon Aug 19 21:30:51 2024 UTC pencil

userpic

Re: Web похоронить, web похоронить...

Какой попало комбайн мне не нужен, мне нужен вполне конкретный.

parent From Дилетант (unverified) Mon Aug 19 00:42:43 2024 UTC pencil

Re: Re: Web похоронить, web похоронить...

серверные реализации там сочетают в себе, кроме самой этой BBS'ки (т.е. фактически системы текстовых менюшек, отдаваемой через telnet) ещё и ftp/gopher/smtp/pop3/imap?

Для виндовых реализаций это типично.

parent From Andrey V. Stolyarov profile Mon Aug 19 08:04:06 2024 UTC pencil

userpic

Re: Web похоронить, web похоронить...

Виндовые мне не интересны за неимением винды, а даже если бы она у меня и была, я бы уж точно не стал её выставлять голым задом открытыми портами в интернет. Но там вроде бы есть реализации переносимые, вот они это своё свойство утрачивают при переносе на *nix или как?

From Vadim (unverified) Sun Aug 18 10:30:03 2024 UTC pencil

Ступор

Здравствуйте, Андрей Викторович. Возможно, что Вы этот бред не пропустите, но я всё таки попытаюсь описать проблему с которой я столкнулся.

Я прочитал весь ваш трехтомник. Я понимаю C (хотя я и не знаю своего уровня этого понимания, если честно), могу даже прочесть и понять код чужой, если он не слишком сложен. Но есть одна проблема - я не могу написать свой код. У меня есть идея, есть цель, есть даже какая-то логика в голове и на бумаге, и в голове всё укладывается словно пазл. Но когда я сажусь за само программирование - у меня ступор, я просто сижу и пялюсь в экран, как баран на новые ворота. Любые мои попытки написать код сопровождается очень сильной самокритикой, что я просто всё удаляю и ухожу в свои размышления снова. У меня получалось что-то выцедить иногда, оно даже работало, но это было не то, что я хотел.

Неужели мне просто не стоит вообще заниматься этим? Но мне и правда очень хочется этим заниматься, просто в голове, судя по всему, бардак. И как мне с этим вообще справиться? Пишу потому что хочу найти совет. Мне хочется услышать мнение со стороны, ибо рядом людей, которые в этом разбираются, нет, да и к вашему совету будет доверия больше, чем от других, если честно.

parent From Andrey V. Stolyarov profile Sun Aug 18 10:38:41 2024 UTC pencil

userpic

Re: Ступор

У меня встречный вопрос: с Паскалем и ассемблером было то же самое? Если да, то о каком вообще Си может идти речь?

Ну то есть если вы

(а) "читали" мой трёхтомник (хотя его надо не "читать", а учиться программировать с его помощью; просто читать бессмысленно);

(б) сами явным образом признаёте, что у вас не получается писать программы; и

(в) при этом пытаетесь писать на Си,

то какого совета вы от меня ждёте? И почему именно от меня? В книгах вполне ясно написано, как работает моя методика обучения, и она полностью исключает такую ситуацию, которая сложилась у вас. Проблемы подобного рода могут (при обучении по моей методике) возникать только при попытках программировать на Паскале, и там же — с помощью Паскаля — они должны быть ликвидированы, т.е. научиться программировать нужно именно на примере Паскаля, потом нужно набрать определённый опыт работы на языке ассемблера, и только после этого, и не раньше, допустимо хвататься за Си.

Если же вас моя методика не устраивает, то чего вы от меня ожидаете? Нет, начинать программировать с языка Си нельзя, никак, никому, никогда, исключения не допускаются. Вы имеете полное право не соглашаться, но тогда стоит, наверное, найти более подходящие учебники и уж точно более подходящего "советчика".

parent From Vadim (unverified) Sun Aug 18 10:53:22 2024 UTC pencil

Re: Re: Ступор

Возможно я и правда страдаю ерундой. Видимо, придется полностью пересмотреть весь свой опыт. К методике вашей у меня нет никаких претензий, меня всё устраивает. Спасибо за ответ.

parent From Andrey V. Stolyarov profile Sun Aug 18 11:00:21 2024 UTC pencil

userpic

Re: Ступор

А "опыт" вообще есть? В смысле, есть что пересматривать?

По-моему, тут всё намного проще: нужно вернуться к части о Паскале, придумать себе задачу и на Паскале её сделать. Если ничего не придумывается, в крайнем случае задачник есть.

parent From Anonymous (unverified) Sun Aug 18 12:13:19 2024 UTC pencil

Re: Re: Ступор

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

parent From Andrey V. Stolyarov profile Sun Aug 18 15:38:12 2024 UTC pencil

userpic

Re: Re: Re: Ступор

> если указатели в своё время особой проблемы не вызвали

Указатели — не единственная проблема, решаемая начальным обучением именно на Паскале. Кроме них, есть ещё проблема восприятия побочных эффектов, и я бы даже сказал, что она важнее. Через указатели человек так или иначе проломится, если мотивации хватит, а вот сишность головного мозга (состоящая как раз преимущественно в том, что человек не видит ничего плохого в побочных эффектах к месту и не к месту) — ну, она не лечится.

Возвращаться к Паскалю или нет — зависит от опыта, который вы там успели набрать. Если вы на Паскале написали программу, у которой сейчас есть сторонние пользователи, причём они её используют, потому что она им полезна, а не потому что вы их слёзно умоляли — то цель заведомо достигнута. Вот только мой опыт показывает, что так бывает крайне редко.

Можно более-менее согласиться, что паскалевского опыта скорее всего уже достаточно, если общий объём написанных программ перевалил за 5000 строк, причём хотя бы одна из них была не меньше чем на 2000 строк (одна). Вообще, конечно, это всё условно.

> на ассемблере писал не для x86, а для i8080?

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

Единственный момент — есть такая штука "системный вызов", вот опыт исполнения таковых вручную, без сишных обёрток, весьма способствует потом пониманию сущности операционной системы. Но в принципе без этого можно и обойтись.

parent From Ilya profile Mon Aug 19 20:37:35 2024 UTC pencil

Re: Ступор

Ничего, с практикой и временем все придет, главное желание. Эх, мне бы ваши проблемы, я вот уже который месяц Хаскель грокнуть не могу, при том что на изучение других языков, включая (C++, лисп, ассемблер), уходило не больше месяца на каждый, без всяких преподавателей. В частности, мне так никто не смог объяснить, что такое монады и зачем они нужны. Из того что я о них прочитал в интернете, они мне скорее напоминают бред человека, который наелся мухоморов и ему вруг пришло божественное откровение, которое он пытается объяснить (сам мухоморы ел, словами этот опыт и правда передать нельзя).

И самое противное, я даже незнаю какие программы мне писать для практики на Хаскелле. Я прекрасно понимаю, где в отдельных частях императивной программы удобно задействовать функциональную парадигму, но вот какие могут быть use cases где вся программа написана на чисто функциональном языке, кроме разве что парсера? Все задачи из реального мира (т.е. без всяких "докажи теорему" и прочее) которые мне приходят в голову, отлично решаются в императивной + ООП парадигме. Я конечно видел примеры, как кто то мессенджер на Хаскелле делал, но такое я писать не хочу из принципа, оно противоречит философии языка, для таких вещей есть Си.

parent From Andrey V. Stolyarov profile Mon Aug 19 21:14:05 2024 UTC pencil

userpic

Хаскель

Возможно, вас утешит такой момент, что для меня Хаскель стал первым и пока что единственным языком, который я не осилил. Были такие, которые я не смог изучить, поскольку не смог преодолеть отвращение; первым таким когда-то давно стал Перл, потом было много чего ещё. Но Хаскель вроде отвращения не вызвал. Значит, я его именно что не осилил, а не что-то другое.

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

Что касается вопроса, что такое монада, то, насколько я могу судить, всех начинающих хаскелистов (поголовно) беспокоит ровно тот же вопрос. А тех, кто уже не начинающий, беспокоит вопрос, как же, блин, ёжкин кот, массаракш, объяснять это начинающим. И это положение существует с тех времён, когда Хаскель только придумали.

Подозреваю, что способа объяснения монад не существует.

parent From merino (unverified) Tue Aug 20 07:05:19 2024 UTC pencil

Re: Re: Ступор

Задачи из реального мира также вполне неплохо решаются на Хаскеле. Да, в реальных проектах будет не 100% чистых функций, а 50, 30 или даже меньше, но в любом количестве они, как мне кажется, существенно облегчают понимание программ - я смотрю на чистую функцию и понимаю, что подвоха точно нет - результат зависит только от входных аргументов. Однако даже для всего остального кода, написанного в монадах и больше похожего на императивный за счет синтаксического сахара, именуемого do-нотацией, есть приемы, позволяющие в типе функции указать, какие побочные эффекты возможны, а какие нет. Условно, одна функция может только читать файлы, причем не все, только какие-то определенные, другая может только делать сетевые вызовы на определенный хост, третья использует первые две, поэтому в ее типе должно быть указано и то и другое. К тому же, приемы, характерные для чисто функционального стиля (map, filter, foldr и т.д.) отлично переносятся и на монадный код.

По поводу

> use cases где вся программа написана на чисто функциональном языке

первое, что приходит в голову - различные компиляторы/кодогенераторы.

From Ilya profile Sun Aug 18 07:41:54 2024 UTC pencil

Протокол Spartan

Наткнулся тут на протокол Spartan, это буквально Gemini, только проще (хотя казалось бы, куда уж проще). В частности, из спецификации убрано требование иметь TLS и UTF-8 и добавлена возможность file upload со стороны клиента, а еще кол-во статус кодов сократили до 4 штук. Подробнее можно ознакомится здесь. Осталось написать простенький сервер с поддержкой подобия CGI, портировать под него Талассу и веб можно закапывать :)

parent From Andrey V. Stolyarov profile Sun Aug 18 08:12:22 2024 UTC pencil

userpic

Re: Протокол Spartan

Reference implementation ожидаемо на питоне, про другие реализации сведений не приводится.

А почему "подобие CGI"? Вполне можно сделать CGI как CGI, чтобы ничего не надо было никуда портировать. Генерить gemtext дело нехитрое, Талассу на это можно заточить правкой конфигов, ей в целом пофигу, что генерить, лишь бы текст.

parent From Ilya profile Sun Aug 18 08:35:11 2024 UTC pencil

Re: Re: Протокол Spartan

Других реализаций полно, даже небольшой список сайтов есть.

> Талассу на это можно заточить правкой конфигов

Плохо знаю что там под капотом, но мне казалось thalcgi выплевывает в stdout голый html при генерации комментов, как и все другие цмски, а какие там тогда конфиги надо править?

parent From Andrey V. Stolyarov profile Sun Aug 18 09:17:50 2024 UTC pencil

userpic

Re: Протокол Spartan

thalcgi.cgi выплёвывает исключительно то, что ему сказано в thalcgi.ini :-) Ну, на самом деле там есть хитрость с заголовком, согласно протоколу CGI на stdout должен быть выплюнут заголовок (как минимум "Content-type:"), и это не отстригается, поскольку это часть протокола CGI. Имеющаяся версия thalcgi.cgi туда всегда выдаёт text/html, это можно либо проигнорировать, либо таки пропатчить thalcgi.cgi, чтобы значение этого поля сделать настраиваемым. А вот то, что выдаётся после заголовка и пустой строки — собственно сгенерированный ответ — полностью определяется содержимым конфига, thalcgi.cgi от себя ни одного символа не вставляет. Как, собственно, и сама Таласса, в смысле бинарь thalassa, которая генерирует все страницы, в URI которых нет "thalcgi.cgi" (в том числе и страницы с комментами).

Тут не стоит путать, страницы с комментами генерируются статически точно так же, как и любые другие, и это делает генератор, а не CGI. CGI только формочки выдаёт и обрабатывает. В этом плане Таласса резко отличается от "всех других цмсок".

parent From Ilya profile Sun Aug 18 09:37:40 2024 UTC pencil

Re: Re: Протокол Spartan

Теперь понял, до меня только сейчас доперло зачем все эти макросы нужны, из доков как то не уловил, правда посмотрев на thalcgi.ini из темплэйта, осознал что на мою затею времени уйдет много. Скажите, а можно еще что бы оно наоборот из, например, Markdown в html генерило? Или придется юзать внешние конвертеры? На голом html блог писать не хочется.

parent From Andrey V. Stolyarov profile Sun Aug 18 09:42:08 2024 UTC pencil

userpic

Re: Протокол Spartan

Ну, Markdown точно не будет, я думал на тему чего-нибудь попроще вроде bbcode.

Сейчас для блога наиболее адекватный формат — texbreaks, собственно тот, что тут вот в комментах применяется; оно при этом пустые строки рассматривает как разделитель абзацев. Если фильтр тегов не включать, то HTML-теги будут работать любые (естественно, это только если такой текст может закинуть только владелец сайта; для сторонних пользователей разрешать произвольный HTML нельзя).

From Ян (unverified) Sat Aug 17 08:33:26 2024 UTC pencil

RUST как замена C

Здравствуйте, Андрей Викторович! Спасибо за прекрасные книги. С удовольствием их иногда перечитываю.

Есть такой вопрос. В мире уже много шума наделал язык RUST, я немного на нём пробовал писать, но сравнить это можно как жизнь с женой у тёщи, где много правил и ограничений. В принципе, это и есть смысл РАСТ - оберегать от ошибок путём проверки на этапе компиляции не нарушены ли, к примеру, правила владения и заимствования. Что Вы думаете о RUST?

parent From Andrey V. Stolyarov profile Sat Aug 17 13:35:30 2024 UTC pencil

userpic

Re: RUST как замена C

> как жизнь с женой у тёщи

Я бы предложил более сильное сравнение: Rust — это как тоталитарная секта. Впрочем, без всяких "как": Rust — это тоталитарная секта, деструктивная, опасная для окружающих, и, как и в любую секту, туда крайне редко попадают нормальные люди. А когда попадают — перестают быть нормальными.

parent From far profile Sun Aug 18 17:18:11 2024 UTC pencil

Re: RUST как замена C

На всякий случай скажу, что с rust'ом взаимодействовал год назад, но я сомневаюсь, что что-то кардинально изменилось.

Ранее на сайте обсуждалось, как программисту следует обращаться с зависимостями его программ. Программы на rust почти всегда собираются при помощи собственного пакетного менеджера cargo, который, помимо этого, также выступает и системой сборки. Программист задаёт прямые зависимости программы в файле сборки и cargo выкачивает их из интернета вместе с уже их собственными (то есть косвенными для программы) зависимостями. После этого все зависимости вместе с самой программой компилируются.

У этого подхода есть одно мнимое преимущество: программисту не нужно думать о том, откуда брать/как компилировать зависимости. Эта проблема решается за него полностью. На этом преимущества заканчиваются и начинаются недостатки.

Во-первых, для компиляции программы нужен интернет. Это уже недостаток фатальный, но не потому, что соединения с сетью невозможно избежать, а потому, что создатели посчитали это нормальным; фатальный настолько, что он не оставляет крабу никаких шансов. Почти наверняка дерево зависимостей программы можно предварительно выкачать, но так обычно не делают. На этом некоторые бы закончили, но мы двигаемся дальше.

Во-вторых, информацию о библиотеках нужно откуда-то брать, и берут её из crates.io [1] - глобального реестра зависимостей. То есть компиляция программ становится в некоторой степени централизованным процессом с единой точкой доверия и отказа. В довесок к этому, чтобы опубликовать библиотеку или программу в crates.io нужна учётная запись на сайте github [2], которым владеет Microsoft.

Да, реестр crates.io - лишь реестр по умолчанию, и cargo не "приклеен" к нему. Но умолчания важны: Mozilla за умолчание получает 400 миллионов долларов в год. Чести ради, ещё есть lib.rs реестр, но я некоторое время назад писал Rust код за деньги и узнал о нём только сейчас. Таким образом номинально выбор есть, но на практике подавляющее большинство использует crates.io.

Наконец, третий недостаток является фундаментальным следствием самого автоматичесткого подхода: когда проблема решается сама, программист перестаёт стремиться её избежать. А зачем стремиться к простоте системы, если это требует дополнительных усилий, а проблему и так решат за нас? В итоге деревья зависимостей разрастаются до размеров за гранью всякого приличия. Я видел программы с более чем 1000 зависимостями, но если говорить о норме, то firefox требует ~500, librsvg (по-моему самая популярная svg библиотека) - ~227, alacritty (эмулятор терминала) - ~202. Благодаря наличию пакетных менеджеров с отслеживанием зависимостей, их чрезмерное количество присуще и некоторым программам на Си [3], но здесь, из-за интеграции решения ближе к компилятору, проблема приобрела совсем другой масштаб.

Помимо этого rust зависит от llvm. Я придерживаюсь мнения, что любой разработчик программ по-хорошему должен полагать, что на компьютере конечного пользователя есть лишь строго определённый, ограниченный набор программ, которые его программа может использовать для собственной компиляции. На существование остальных программ в системе она полагаться не должна. Каким должен быть этот набор? С моей точки зрения он должен быть минимальным. Какие конкретно программы должны входить в набор, мне известно, но перечислять я их здесь не буду. Читающим предлагается подумать над этим самим [4].

Очевидно, что llvm не входит в базовый набор, и, если какой-то программе он нужен, то она должна собирать его сама. Понятно, что даже без llvm сборка программ станет заметно дольше, но я готов подождать любое разумное время. Проблема в том, что llvm за разумное время не собирается. На моём компьютере его сборка длится 2 часа - это слишком много.

Должны ли другие программисты придерживаться того же мнения? - Нет, не должны. Насколько текущее положение дел соответствует тому, что я написал? - Оно вообще не соответствует. Факт в том, что программы на Cи и Cи++ я могу пропатчить так, чтобы они соответствовали тезису выше, а вот программы на rust'е - нет. llvm и слишком большое количество зависимостей не оставляют лично мне ничего иного, кроме как игнорировать rust и все программы, которые на нём написаны.

[1] "crates.io (Official Rust package registry)". Смотрите "https://doc.rust-lang.org/rust-by-example/cargo.html".

[2] https://doc.rust-lang.org/cargo/reference/publishing.html

[3] В "https://wiki.alopex.li/LetsBeRealAboutDependencies" утверждается, что данная проблема есть и в Си программах почти в том же объёме. Не буду подробно расписывать то, в чём я не согласен с автором. Скажу лишь, что я собираю программы руками, и наибольшее дерево зависимостей, которое я встречал, имело размер ~50. Графические программы требуют X server, который сам имеет ~40-50 зависимостей, но я не считаю его зависимостью графических программ. Точнее, это зависимость немного другого рода.

[4] При этом не следует доходить до крайностей. Можно считать, что gcc и binutils входят. Если этого не делать, то бишь предполагать, что в системе нет компилятора Си, то задача, на мой взгляд, переходит с практической плоскости на теоретическую. Детали можно найти например на "https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/".

parent From Andrey V. Stolyarov profile Sun Aug 18 18:18:50 2024 UTC pencil

userpic

Спасибо

Там всё даже хуже, чем я думал. Увидишь издали растера — перейди на другую сторону улицы.

parent From Artem (unverified) Mon Aug 19 04:42:08 2024 UTC pencil

Re: Re: RUST как замена C

То есть, проблемы у него с инфраструктурой, экосистемой и самими кодерами? А что насчёт самого языка, в отрыве от перечисленного, годится он на что-то? Если, допустим, кто-то решит откреститься от предлагаемых "удобств", и при этом готов использовать llvm либо дождаться компилятора от GNU.

parent From Andrey V. Stolyarov profile Mon Aug 19 07:49:25 2024 UTC pencil

userpic

Re: RUST как замена C

Сам по себе язык тоже никуда не годится. Ну то есть даже одно то, что там (несмотря на то, что язык императивный) все операторы вплоть до циклов превратили в выражения — лично мне одного этого достаточно для утверждения, что ни о каком использовании такого языка не может быть никакой речи: в этом языке сишность головного мозга может (и будет) проявляться сильнее, чем в самом Си. При этом сей недостаток, разумеется, не то что не главный, а даже вообще скорее теряется на фоне всего остального.

Ну а главное, пожалуй, в том, что нет и не может быть такой вещи как "безопасный (в смысле safe) язык". Safety может быть только у программиста в голове, больше нигде. Попытки построить язык, который якобы прощает программисту все проявления его безалаберности (вот это вот "можно не бояться, компилятор всё поймает"), ведут лишь к выводу этой безалаберности на невиданные доселе высоты.

Как совершенно правильно заметил когда-то давно один из моих студентов, этот язык сделан для лиц с обсессивно-компульсивным расстройством. Но тут ведь всё на самом деле просто: если боишься (!) работать с указателями — или тренируйся и набирай опыт, чтобы больше не бояться, или не программируй вообще.

А превращение любителей столь специфического языка в откровенную секту — это просто следствие, и следствие неизбежное. В этом монастыре невозможно и никогда не будет возможно жить по другому уставу, так не бывает, и компилятор от GNU ничем не поможет.

Не думаю, кстати, что появится альтернативная реализация, а если она и появится, вряд ли её станут использовать. В одной секте не может быть двух центров.

parent From Ян (unverified) Wed Aug 21 18:51:02 2024 UTC pencil

Re: Re: RUST как замена C

Значит моё первое впечатление подтвердилось. В топку его. Улыбаемся и пишем на Си.

From Макака (unverified) Fri Aug 16 19:06:57 2024 UTC pencil

JS в качестве (!) скриптового языка

Вновь приветствую горячо любимого автора данного интернет-ресурса и его неслучайных посетителей.

После ознакомления с разделом учебника о скриптовых языках хотелось бы поинтересоваться у автора, как он относится к языку JavaScript в отрыве от попыток последнего в языки общего назначения, в контексте использования оного сугубо как языка для вспомогательного, так сказать, скриптинга и облегчения жизни мартышки глубого заинтересованного в качестве своего труда разработчика.

Лично я никогда не использовал Tcl, из скриптовых языков для опробования чего-либо или небольшого исследования использовал bash либо, если задача казалась чуть сложнее, JS (конечно же без ООП набалдажников и без последующего знакомства этих творений с конечными пользователями). К питону чувствуется отвращение, Perl кажется перемудренным, Lua - неуместным.

Возможно, у вас есть своё мнение насчёт скриптовых языков, которое вы сформировали в ходе профессиональной деятельности, и свой любимый скриптовый язык либо представления о нем, которым(и) вы бы хотели поделиться с миром.

Надеюсь, вы не станете выгонять меня с сайта ссаными тряпками за тему этого разговора. Просто интересен опыт человека, на тридцать голов выше моего.

Желаю успехов на чужбине.

parent From Andrey V. Stolyarov profile Fri Aug 16 20:55:10 2024 UTC pencil

userpic

Re: JS в качестве (!) скриптового языка

коммент 2016 года на эту тему

Впрочем, с тех пор много чего произошло и много воды утекло, и сейчас я могу сказать и проще: слушайте, ну какого хера в скриптовом языке делают все эти потуги в сторону ООП? Оно, конечно, до реального ООП не дотягивает, но потуги-то есть. Между тем, скрипты должны быть маааааааленькими, если программа вымахала больше чем на 200 строк — это уже не скрипт, а программист, продолжающий её писать на скриптовом языке, делает что-то не то. Ну а вся прелесть ООП, и даже не то чтобы прелесть, а просто осмысленность, начинает проявляться где-то после 2000 строк. Т.е. "невязка" у нас тут примерно на порядок.

В общем хрень этот ваш js.

parent From Trollkarl (unverified) Mon Aug 26 21:20:52 2024 UTC pencil

Re: Re: JS в качестве (!) скриптового языка

В общем хрень этот ваш js

Коммьюнити для него ещё и либы весёлые клепает.

parent From Andrey V. Stolyarov profile Mon Aug 26 21:22:38 2024 UTC pencil

userpic

Re: JS в качестве (!) скриптового языка

Ну, это, подозреваю, всё-таки стёб.

Но вообще для скриптового языка вообще не должно быть никаких библиотек, и тем более библиотечной экосистемы. Если для написания программы потребовалась библиотека, эта программа никакой не скрипт.

From бормотрон коробкин (unverified) Fri Aug 16 18:42:56 2024 UTC pencil

нейросети

Считаю, что то, что нельзя остановить, необходимо возглавить. есть огромный класс задач, которые только нейросетями и решаются. это например задачи связанные с человеческим мышлением и психологией. и рано или поздно нейросети будут применены для этого. и не только для этого, для кучи задач, что лежат за пределами возможностей отдельного человека. если мы хотим, чтобы эти технологии работали на благо каждого человека, а не лишь отдельных представителей и подгрупп, то должны перехватить инициативу, предвидеть технические проблемы масштабирования этих технологий и возглавить их решение под нашим контролем, сознательно смещая выбор решений в пользу соответствующих нашим целям.

parent From Andrey V. Stolyarov profile Fri Aug 16 20:59:26 2024 UTC pencil

userpic

Re: нейросети

Чувак, ты не на комсомольском собрании.

Внезапный ренессанс нейросетей обусловлен исключительно тем, что в распоряжении отдельных акторов появилось, как бы это сказать, вот в английском есть такое слово enormous — так вот в распоряжении отдельных акторов появилось enormous количество вычислительной мощности. Обучение нейросетей не представляет собой ничего интеллектоёмкого, это просто грубая сила.

И этой силы нет и никогда не будет в распоряжении индивидов. Все свободны.

parent From бормотрон коробкин (unverified) Fri Aug 16 22:01:21 2024 UTC pencil

Re: Re: нейросети

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

parent From Andrey V. Stolyarov profile Sat Aug 17 00:11:25 2024 UTC pencil

userpic

Re: нейросети

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

Несомненно, трата электричества на майнинг совершенно бессмысленна, но следует из этого ровно одно: криптовалюты полная туфта. Применить майнинг для чего-то полезного невозможно, и если понимать, зачем майнинг нужен на самом деле, это окажется совершенно очевидно.

Это если говорить о технике. Но есть и организационная сторона вопроса: заставить миллион индивидов подарить вам их вычислительные мощности, наверное, как-то возможно, но созданная для этого организационная структура сама станет корпорацией. Даже не то чтобы "станет", она просто таковой с самого начала будет, и будет увеличиваться в размерах одновременно с ростом числа вовлечённых.

parent From Michael (unverified) Sat Aug 17 18:17:53 2024 UTC pencil

Re: Re: нейросети

> Обучение нейросетей не представляет собой ничего интеллектоёмкого, это просто грубая сила.

Позволю себе сказать, что далеко не всегда только грубая сила. Придумываются разные изощренные архитектуры нейросетей и алгоритмы для их вычислений: функции потерь, метрики и др. В этой области сейчас занято немало математиков.

parent From Andrey V. Stolyarov profile Sat Aug 17 18:54:10 2024 UTC pencil

userpic

Re: нейросети

Ага, и занимаются тем, что пишут на питоне.

From Anonymous (unverified) Fri Aug 16 14:41:42 2024 UTC pencil

Комменты с кодом

У вас есть какая-то позиция по поводу комментов, содержащих код? Может в каких-то ситуациях вы их принципиально не раскрываете и писать их бесполезно? А то что-то мой комментарий с кодом на C, который сортирует что-то там пузырьком так и не раскрыт, хотя вроде времени уже много прошло.

parent From Andrey V. Stolyarov profile Fri Aug 16 15:16:04 2024 UTC pencil

userpic

Re: Комменты с кодом

Индивидуальными консультациями (в том числе разбором написанного кода) я занимаюсь только в рамках менторинга, о чём явно сказано и в тексте о премодерации (который в любом случае стоило, по-видимому, прочитать до попытки отправить комментарий), и на странице формы контактов.

А какой-либо ценности для публики, посещающей мой сайт, я в вашем коде не усмотрел.

From Artem (unverified) Thu Aug 15 13:54:05 2024 UTC pencil

Снова о математике

Возник такой вопрос: а как понять, понимаю ли я сам эту вашу математику? То есть, не просто могу ворочать синусами-тангенсами да считать производные, как счётная машина, а вот прям понимаю, или же не понимаю? Иногда в комментариях вы приводили примеры задач, которые непонимающий человек не сможет решить, но все эти задачи в моём случае бесполезны, ведь я уже встречал либо такие же, либо очень похожие, и там они приводились сразу с решением.

parent From Andrey V. Stolyarov profile Thu Aug 15 15:48:06 2024 UTC pencil

userpic

Re: Снова о математике

Ну, э... вообще говоря, тут сложно что-то формальное придумать; в частности, я не могу себе представить письменную работу, которая бы проверяла понимание (в отличие от технического умения пользоваться), и продолжаю считать, что отмена устных вступительных экзаменов по математике и физике, которую минобровская мафия в середине нулевых продавила якобы из-за их "необъективности", ознаменовала начало конца математики в россии.

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

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

Но вот дальше начинаются неформальные дебри. Если человек не понимает, как выводятся и вообще откуда берутся все те формулы, которые он лихо применяет в задачах, то с ним всё понятно: перед нами обычный "техник", который не только ничего не понимает, но и не пытается ничего понять. Но вот противоположный случай — например, когда человек без малейших проблем готов показать, как какая формула выводится, только спроси — увы, не так прост. Дело даже не в том, что доказательства можно зазубрить без понимания, тут как раз довольно просто где-нибудь по ходу задать парочку вопросов и всё выяснить. Проблема в том, что можно понимать каждый шаг доказательства и помнить его общую схему, но при этом всё равно не иметь общего понимания, как это работает.

Больше того, я и сам далеко не всякое доказательство могу "пропустить через себя", даже если у меня нет никаких проблем с его воспроизведением. Вот, для примера, у меня в трёхтомнике в первом томе есть параграф про комбинаторику (1.3.1), а в нём ближе к концу приведено тождество, на котором основан треугольник Паскаля: C_(n+1)^k = C_n^(k-1) + C_n^k, и там же два объяснения: через формулы и словесное, основанное на мешках с шариками. Так вот, до того, как приняться за написание книжки, я никогда нигде не видел ни первого, ни второго, и — признаюсь — не понимал, как этот пресловутый треугольник Паскаля ухитряется работать, то есть он мне казался "фокусом". Когда параграф 1.3.1 был уже почти весь написан, мне внезапно стало интересно (скажу по секрету, я вообще изначально не планировал рассказывать треугольник Паскаля, но что-то меня дёрнуло поскрипеть мозгами в его направлении). Так вот, формульное доказательство я воспроизвёл (естественно, сначала на бумажке) без подглядывания куда бы то ни было, просто зная, из чего и куда мне нужно прийти — ну, типа, попробовал, а оно возьми да и получись. Понимания мне это не прибавило. Вообще ни кусочка. Просто к фокусу с циферками добавился ещё фокус с формулами, и не помогло даже то обстоятельство, что я его сам, можно сказать, "изобрёл" (не в том, конечно, смысле, что раньше никто этого не делал, а исключительно в том, что я этого фокуса не видел и пришлось придумать самому).

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

У меня бывали и другие случаи, вот есть, например, такое правило Лопиталя — оно мне казалось фокусом до тех пор, пока не допёрло (уже, замечу, не просто после диплома, а через несколько лет после получения учёной степени), что отношение производных можно записать по определению производной через df/dx и dg/dx, но dx-то тут один и тот же, а поскольку раскрывается "ноль на ноль", df и dg равны самим f и g. Вот и получается, что f'/g' = f/g. Хоть бы кто нашёлся, кто бы мне это на первом курсе сказал, а? нет, никого не нашлось. С "элементарными преобразованиями матриц", которые сохраняют значение определителя, та же фигня: фокус оставался фокусом, пока откуда-то не было взято, наконец, тайное знание, что этот несчастный определитель представляет собой N-объём N-мерного параллелепипеда, натянутого на векторы-строки. И тоже мне ни одна зараза на первом курсе этого не сказала. А, скажем, ТФКП в меня прекрасно зашло после того, как кто-то мне объяснил, что не нужно пытаться представить себе четырёхмерный график комплексной функции, вместо этого вот есть конформные отображения — вот они и есть эти аналитические функции, этот примус работает так. К счастью, это произошло сильно раньше диплома (так что когда я готовился к госэкзамену, ТФКП реально грокнул, причём хорошо помню, что никаких трудностей не было с пониманием), но, к сожалению, таки позже экзамена по ТФКП, на котором мне вкатили тройку из жалости.

В общем, рецепта, как отличить умение от понимания, я предоставить не могу, но, возможно, приведённые примеры помогут вам сформировать собственное ощущение, в чём такое отличие состоит.

parent From Ilia (unverified) Fri Aug 16 11:17:20 2024 UTC pencil

С программированием - аналогично

По-моему, именно такие же пути надо проходить по другим областям, но не всем.

Когда в меня пытались в школе вдолбить С, я вообще не понимал, зачем нужны указатели, почему всё так устроено, итд. Но когда прошелся сначала по Паскалю, ассемблеру, язык Си вошел в меня меньше, чем за месяц. С всякими странностями, но вошел.

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

parent From Artem (unverified) Fri Aug 16 15:28:41 2024 UTC pencil

Re: С программированием - аналогично

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

parent From Andrey V. Stolyarov profile Fri Aug 16 15:32:32 2024 UTC pencil

userpic

Э-ммм

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

parent From ывфвы (unverified) Fri Aug 16 09:16:24 2024 UTC pencil

Re: Снова о математике

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

parent From Andrey V. Stolyarov profile Fri Aug 16 09:58:02 2024 UTC pencil

userpic

Re: Снова о математике

Примерно такой позиции придерживалась "творческая группа", действовавшая под псевдонимом Никола Бурбаки. За вермя своей активной деятельности они благополучно прикончили (уничтожили, домножили на ноль, истребили, закопали, недостающее вписать) высшую математику во Франции. Но у бурбакистов было хотя бы не то чтобы оправдание, но, скажем, некое объяснение их деятельности: сами-то они математику понимали, но их собственный уровень постижения был достаточен для непосредственной трансляции поступающих извне формальных описаний во внутреннее понимание. Просто они, как водится у персонажей, давно и прочно въехавших в некий предмет, переоценили аудиторию, тем более что эпоха Бурбаки — это примерно как раз то время, когда государства ввиду своих интересов попытались высшее образование из штучного явления превратить в массовое.

Сейчас, имея определённый опыт на эту тему, продолжать настаивать на формальном подходе к постижению математики — это, скажем так, вредительство.

parent From Artem (unverified) Fri Aug 16 13:12:07 2024 UTC pencil

Re: Re: Снова о математике

> интуитивные вещи могут быть и ложны

Логичные тоже. Всякое логическое рассуждение предполагает наличие аксиом, принимаемых просто потому что. Эти аксиомы могут оказаться ложными, но приводить к верным выводам сколь угодно долго, ведь законы логики отвергают лишь возможность получить ложное суждение из истинного, но допускают получение истинного суждения из ложной предпосылки.

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

parent From Andrey V. Stolyarov profile Fri Aug 16 15:17:43 2024 UTC pencil

userpic

Re: Снова о математике

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

parent From Anonymous (unverified) Sat Aug 17 10:52:17 2024 UTC pencil

Re: Re: Снова о математике

Аксиомы могут быть ложными в контексте их неверного применения. Например в арифметике действительных чисел аксиомы истинны (потому что так так решили, да). Но если речь идёт о счёте объектов реального мира, то в каких-то ситуациях они могут ломаться. Например 1 литр спирта + 1 литр воды — это меньше 2 литров смеси. А вот 1 яблоко + 1 яблоко — это всё-таки ровно 2 яблока.

parent From Andrey V. Stolyarov profile Sat Aug 17 13:42:11 2024 UTC pencil

userpic

Re: Снова о математике

По ходу, вы вообще не понимаете, ни что такое математика, ни что такое аксиомы. Ни, кстати, что такое "счёт объектов", поскольку после смешивания литра воды с литром спирта у нас нет больше ни литра воды, ни литра спирта, они оба были потрачены (израсходованы, пущены в дело, как хотите назовите), в общем их больше нет. Что получилось в итоге и _сколько_ этого получилось — принципиально не имеет никакого отношения к арифметике.

parent From бормотрон коробкин (unverified) Fri Aug 16 22:47:35 2024 UTC pencil

Re: Re: Снова о математике

Математика и логика как раз созданы чтобы не быть интуитивными. Ведь интуитивные вещи могут быть и ложны

перефразирую вас.

интуитивные вещи могут быть ложны, следовательно, логика не должна быть интуитивной?

чай с молоком бывает сладким. значит несладкий чай должен быть без молока?

From Anonymous (unverified) Wed Aug 14 08:24:25 2024 UTC pencil

проблемы даркнета

Здравствуйте Андрей Викторович, в своем обращении, вы упоминали о желании сделать даркнет, в котором генерация публичного ключа будет использовать доказательство работы и ограничение числа поинтов, тем самым, не позволяя существовать крупным публичным нодам, но разве это не слишком просто обойти?

Допустим у нас есть корпорация, захотевшая сделать большую социальную "сеть", что ей мешает на своей ноде поднять http вебсайт (поверх нашего даркнета) с публичной регистрацией, у которого на бакэнде уже не будет ограничений в 1024 пользователей? Не особо понятна роль поинтов в сети. Лично я сторонник мнения, что централизация сети - проблема социальная, и не все социальные проблемы можно решить техническим путем.

parent From Andrey V. Stolyarov profile Wed Aug 14 09:26:51 2024 UTC pencil

userpic

Re: проблемы даркнета

> что ей мешает на своей ноде поднять http вебсайт

Во-первых, и в-главных: при чём тут вообще http? Через такой сайт можно будет разве что сделать доступной какую-то информацию, циркулирующую внутри наложенной сети и публично доступную, но такой там как раз быть не должно. Для распространения информации в парадигме "один вещает, все желающие получают" уже и так средств до фига. Да и для схемы "скачать что надо у кого поближе" есть bittorrent и всякое вроде него. А здесь (ну, согласно моему замыслу, во всяком случае) будет коммуникация firend-to-friend, в том числе один-один (частная переписка), один-много (список рассылки анонсов), много-много (дискуссионный список рассылки), но "много" всегда будет означать некий конечный список участников.

В частности, чтобы получить какую-нибудь книгу, музыкальный трек или фильм, нужно будет спросить своих друзей, у кого в коллекции файлов есть то, что требуется. Возможно, кто-то из них окажет нам любезность и также спросит своих друзей; возможно, не спросит. Но если и спросит, то мы не узнаем, откуда _он_ взял нужный нам файл, для нас он будет скачанным из коллекции нашего непосредственного френда.

А для участия в любой коммуникации нужен будет идентификатор, это и есть, собственно, поинт. И поинтов на каждую ноду будет, видимо, всё-таки 253 (один байт, за вычетом трёх зарезервированных значений 0x00, 0xfe и 0xff), так что каждую сгенерированную ноду возможно будет использовать её владельцу и ещё 252 людям, это будет технически возможный максимум.

Что до централизации — это проблема не социальная, а экономическая. Её можно было бы частично решить запретом рекламы и полностью снять отменой юридических лиц, но это всё существенно менее реально, нежели сделать наложенную сеть, ориентированную на НЕпубличные и при этом полностью скрытые от внешнего мира и никому не подконтрольные коммуникации.

parent From Anonymous (unverified) Wed Aug 14 09:42:11 2024 UTC pencil

Re: Re: проблемы даркнета

Благодарю за развернутый ответ! Концепция мне стала более ясна, но одна вещь все же непонятна, чем это лучше приватного группового чатика в каком нибудь джаббере? Там тоже только свои и все друг друга знают.

parent From Andrey V. Stolyarov profile Wed Aug 14 10:35:41 2024 UTC pencil

userpic

Re: проблемы даркнета

Для джаббера нужен сервер на фиксированном и известном всему миру ip-адресе, и этот сервер становится точкой уязвимости (см. сюда, например).

Вообще у меня складывается такое ощущение, что вы в принципе не понимаете, о чём идёт речь.

Впрочем, есть ещё один момент: протокол XMPP, судя по всему, подыхает под собственной тяжестью. Во всяком случае, в мире нет ни одного поддерживаемого XMPP-сервера, который я бы счёл приемлемым для установки на свои машины, и такое положение существует уже больше десяти лет (точно не помню, когда там jabberd2 перестали поддерживать). А мораль-то проста: каждый, кому в голову приходит применить XML или что-то на него похожее, причём независимо от задачи, должен немедленно и по доброй воле прыгнуть в биореактор.

parent From Anonymous (unverified) Wed Aug 14 11:27:05 2024 UTC pencil

Re: Re: проблемы даркнета

Вот тут полностью согласен, уже сам успел обплеватся и обматерится пока пытался Prosody поставить. В сторону ерланговского Ejabberd даже смотреть не стал, там полагаю, еще хуже. Но ладно бы серверы, клиенты нормальные вымирают! Статистически 2 клиента из 3 категорически отказываются работать без TLS сертификата, причем заверенного CA, самописные не принимают. А самое страшное, что единственная альтернатива в категории Instant Messaging сейчас только Matrix, которая угадайте на чем? на json! А еще TLS там mandatory. И почти все юзеры сидят на центральном matrix.org сервере через веб интерфейс. Нет, есть конечно еще Tox, но он peer-to-peer и годится разве что только для звонков. Вот и остается одна лишь электронной почта.

Извините, меня прорвало, не смог сдержатся.

parent From Andrey V. Stolyarov profile Wed Aug 14 12:09:59 2024 UTC pencil

userpic

Re: проблемы даркнета

> Вот и остается одна лишь электронной почта.

Как в том анекдоте про Илью Муромца: вот её, родимую, и будем кушать^W юзать.

parent From hm (unverified) Wed Aug 14 15:32:10 2024 UTC pencil

Сроки и прогресс

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

parent From Andrey V. Stolyarov profile Wed Aug 14 17:21:30 2024 UTC pencil

userpic

Re: Сроки и прогресс

"Проектирование" — это маркетоидский миф.

Я, к сожалению, не вполне уверенно чувствую себя с криптографией. Пока рабочий вариант — взять NaCL, попрактиковаться с ней, чтобы обрести некое ощущение уверенности, и начать писать.

Но предсказывать сроки — дело неблагодарное в любом случае. Мало ли что там по ходу пьесы вылезет.

parent From Proger profile Wed Aug 14 18:55:48 2024 UTC pencil

Шифрование

А чем шифр Вернама не угодил?

По открытому каналу связи передали открытый ключ RSA, через RSA передали ключ для шифра Вернама, про RSA забыли.

Для того, чтобы передать большой ключ Вернама через маленькое сообщение, его нужно сжать, вернее, создать в сжатом виде. Например, сгенерировать несколько кб случайных чисел (первая часть). А потом еще несколько кб случайных чисел (вторая часть), которые следует интерпретировать как беззнаковые целые вида "номер байта начала куска ключа из первой части" + "номер байта конца куска из первой части" (если первое больше второго, итерироваться в обратном направлении). Едва ли интерпретация такого ключа (распаковка на лету) будет отличаться от абсолютно случайных чисел.

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

Итого: XOR и длинная арифметика (для RSA). Небольшая программа на Си без библиотек.

P.S. Я не специалист в области криптографии, но это первое, что приходит в голову и кажется должно работать достаточно надежно.

parent From Andrey V. Stolyarov profile Wed Aug 14 19:06:25 2024 UTC pencil

userpic

Re: Шифрование

Я тоже не так чтобы большой специалист в области криптографии, но это, насколько я могу судить, не годится. NB: за объяснениями следует обратиться к тем, кто в криптографии разбирается лучше меня.

parent From Proger profile Wed Aug 14 19:22:29 2024 UTC pencil

Re: Re: Шифрование

> NB: за объяснениями следует обратиться к тем, кто в криптографии разбирается лучше меня.

Андрей Викторович, спросите у знающих коллег?

parent From Andrey V. Stolyarov profile Wed Aug 14 19:26:55 2024 UTC pencil

userpic

Re: Шифрование

Где я их возьму?!

parent From Anonymous (unverified) Wed Aug 14 19:18:00 2024 UTC pencil

Re: Шифрование

Шифр Вернама абсолютно надёжен только если ключ никогда не повторяется. А здесь через какое-то время такой ключ должен повториться — после этого достаточно заксорить две повторяющиеся части и получить ксор двух кусков открытого текста. По известным фрагментам текста (например открывающие теги, заголовки, сигнатуры) можно расковырять второй кусок открытого текста.

parent From Proger profile Wed Aug 14 19:39:25 2024 UTC pencil

Re: Re: Шифрование

Но ведь никто не узнает, какие куски повторяются и в какой последовательности (и в каком направлении).

Например, если ключ (первая часть) имеет вид (для ясности алфавит -- в реальности, конечно, случайные числа)

ABCDEFGHIJKLMNOPQRSTUVWXYZ

То обладая табличкой созданной из случайных чисел (вторая часть):

0-5
4-7
9-14
10-3

Получаем полный ключ:

ABCDEFEFGHJKLOPOMNLKJIHGFED

И как это можно предсказать?

parent From Andrey V. Stolyarov profile Wed Aug 14 19:41:00 2024 UTC pencil

userpic

Re: Шифрование

Так, вот что, вы сюда зачем пришли, чужое время терять? Найдите себе другое место для этой цели. В криптографии вы не понимаете ничего от слова совсем, это даже мне, хоть я и не специалист, видно невооружённым глазом; но устраивать ликбез по основам криптографической безопасности вам тут никто не будет, для этого существуют книги и прочие источники, и вообще более подходящие места.

parent From Anonymous (unverified) Wed Aug 14 19:48:45 2024 UTC pencil

Re: Шифрование

Кажется, здесь есть несколько вопросов:

- Для абсолютной криптографической стойкости ключ Шифра Вернама должен должен иметь длину такую же, как и само сообщение, и состоять из случайных данных. А генерация случайных данных (именно случайных, а не псевдослучайных) - это медленный процесс, попробуйте хотя бы создать файл сколь-нибудь ощутимой длины из /dev/random.

- Сжатие не будет иметь никакого эффекта. Не существует алгоритма сжатия без потерь такого, который может сжимать абсолютно любые данные, для любого алгоритма сжатия обязательно найдется входная последовательность, которая переводится в последовательность такой же или даже большей длины. Математически доказывается просто: если бы существовал алгоритм сжатия без потерь, который сжимает любые данные, то это означало бы, что существует взаимно однозначное отображение между множеством всех последовательностей длины N и множеством всех последовательностей длины M < N, что невозможно. Учитывая то, что ключ шифра Вернама будет состоять из истинно случайных данных, скорее всего он просто не сожмется.

parent From Andrey V. Stolyarov profile Wed Aug 14 19:50:28 2024 UTC pencil

userpic

Re: Re: Шифрование

Давайте завязывать с этой темой, чуваку просто потрындеть охота. Если бы он реально хотел разобраться, он бы нашёл для этого более подходящий форум.

parent From Anonymous (unverified) Thu Aug 15 09:40:17 2024 UTC pencil

Re: Re: Сроки и прогресс

https://monocypher.org/ можете глянуть

он более минималистичен и проще будет для "вкатывания" чем NaCL

parent From Andrey V. Stolyarov profile Thu Aug 15 10:40:53 2024 UTC pencil

userpic

Re: Сроки и прогресс

Спасибо, выглядит на первый взгляд привлекательно, хоть и декларируется C99 (но это, возможно, получится отстричь; с ходу там от C99 виден только uint8_t, но я пока не пробовал компилировать с -ansi).

parent From - (unverified) Thu Aug 15 09:52:11 2024 UTC pencil

Re: Re: проблемы даркнета

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

parent From Andrey V. Stolyarov profile Thu Aug 15 10:03:57 2024 UTC pencil

userpic

Re: проблемы даркнета

Я тоже когда-то давно так подумал. И даже попробовал эту штуку раскурить.

Клиента мне в первые 15 минут не удалось запустить. Следовательно, он мне не нужен, его автор — настоящая боевая безмозглая жопорукая мразь. Но это ладно. Хуже другое: эта штука ориентирована не на "обычные почтовики", как вы изволите выражаться, а на вполне конкретный крупняк со всеми его функциями. Т.е. чтобы мне заставить свой собственный почтовый сервер обслуживать delta.chat, нужны весьма ненулевые усилия; на тот момент, когда я в эту сторону смотрел, у меня вообще не оказалось способа раскурить свой почтовый сервер, совместимый с единственной (на тот момент; я не знаю, как с этим сейчас) реализацией delta.chat, поскольку "голый" postfix такого не умеет, а, скажем, собрать dovecot под Openwall/*/Linux не вполне реально, и к тому же этого может не хватить. Я уже точно не помню, чего они там хотят, но в общем я видел инструкции, как это настроить для конкретных жирных "бесплатных" почтовиков, но не видел даже намёка на инструкцию, как поднять свой почтовик.

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

UPD: сходил глянул. За прошедшие годы там, конечно, многое поменялось, о десктопном клиенте больше речи не идёт, оно стало браузерным, инсталлировать предлагается через всякие snap'ы и прочее в таком духе, а информацию, на чём оно написано и как его запустить, грубо говоря, контролируемо, с ходу не видно (возможно, где-то там она и есть). В морг.

parent From Владислав (unverified) Fri Aug 16 15:18:43 2024 UTC pencil

Почтовый оффтопик

Андрей Викторович, а какой POP3-сервер Вы используете? Это случайно не popa3d? Выше Вы упомянули dovecot. О нём говорят чуть ли не в каждой статье и мне не известно, есть ли ему какая-нибудь более минималистичная альтернатива. Ну разве что popa3d.

parent From Andrey V. Stolyarov profile Fri Aug 16 15:23:35 2024 UTC pencil

userpic

Re: Почтовый оффтопик

Я не использую ни pop3, ни imap. Нетбук, на котором у меня живёт почта, является полноценным smtp-спикером, т.е. почту забирает с сервера по smtp через проброшенный ssh'ем порт, и тем же способом отправляет. Хитрость тут только в том, чтобы почту для доменного имени, выделенного нетбуку, на сервере держать без попыток доставки, пока такая доставка не будет затребована явным образом; но postfix так умеет.

parent From Proger profile Wed Aug 14 19:28:57 2024 UTC pencil

Re: Re: проблемы даркнета

Как-то очень похоже на "современный" Фидо, где мэйлер "звонит по IP" у большинства узлов. Или я не правильно представляю функционал? Нужно что-то большее, чем нетмэйл + эхи + фэхи + пересылка attach?

parent From Andrey V. Stolyarov profile Wed Aug 14 19:33:19 2024 UTC pencil

userpic

Re: проблемы даркнета

С фидонетом я тут общего вижу только двухуровневую организацию пользователей. Не вижу никакого резона давать более подробные объяснения.

From Parthen (unverified) Tue Aug 13 23:51:32 2024 UTC pencil

Пишем CMS

Года три назад я тут как раз думал о том, что сайты не на чем писать.

Теперь я изучаю Си, и думаю, смогу написать простенькую CGI вот прям на ANSI C. Потому что хочу, потому что могу.

Я мало понимаю в веб-серверах, сайты я писал всегда ручками и кидал в /var/www/html, на этом настройка кончалась.

Как к этому правильно подступится? PHP и SQL мне снятся в кошмарах, как не вляпаться в что-то подобное?

parent From Andrey V. Stolyarov profile Wed Aug 14 00:17:54 2024 UTC pencil

userpic

Re: Пишем CMS

> и думаю, смогу написать простенькую CGI вот прям на ANSI C

Не вижу препятствий.

> Как к этому правильно подступится?

Ну, как правильно настраивать Apache, чтоб он CGI выполнял — это вот тут.

А сам CGI — ну, это довольно просто: основной источник информации у нас переменные окружения, для POST-запросов ещё стандартный ввод, а на вывод мы должны вывалить заголовок с некоторыми полями для HTTP response header и собственно содержимое отдаваемой страницы (или изображения, или что мы там хотим отдать).

> PHP и SQL мне снятся в кошмарах, как не вляпаться в что-то подобное?

Меня вот всегда интересовало, как это так "случайные связи", то есть это вот что, идёшь по улице, никого не трогаешь, и вдруг внезапно, стало быть... э...

я это к тому, что если вы сами себя в ЭТО не вляпаете, то никто другой вас и подавно туда не вляпает. Решили писать на чистом Си — вот на нём и пишите, ничего невозможного тут нет.

From kv (unverified) Tue Aug 13 20:25:43 2024 UTC pencil

винда

А как вы запускаете винду из-под линукса, чтобы эта винда не гадила и не лезла куда не следует ?

parent From Andrey V. Stolyarov profile Tue Aug 13 20:32:16 2024 UTC pencil

userpic

Re: винда

Я не запускаю винду ни из-под линукса, ни откуда-либо ещё, и другим не советую.

parent From kv (unverified) Tue Aug 13 21:15:13 2024 UTC pencil

Re: Re: винда

В интервью на канале АйТиБорода на 1:28:50 говорится следующее: "На самом деле винда у меня есть". О чём была речь вообще?

parent From Andrey V. Stolyarov profile Tue Aug 13 22:23:58 2024 UTC pencil

userpic

Re: Re: Re: винда

У меня на тот момент был отдельный ноутбук с WinXP, чтобы на нём запускать бухгалтерские программы — отчётность сдавать в налоговую и (опять же, на тот момент) пенсионный фонд. Включался этот ноут раз в два месяца, больше на нём ничего не делалось, всё остальное время он был завален бумажками и прочими предметами до состояния невидимости.

"Это было в россии, значит было давно"

From Anonymous (unverified) Tue Aug 13 20:01:48 2024 UTC pencil

Такие вот вопросы)

Андрей, здравствуйте! Я студент второго курса специальности "Инженерия програмного обеспечения".
Возможно, удасться получить от Вас несколько ответов на очень интересующие меня вопросы (назревших в свете почерпнутой из ваших книг информации, а также обсуждений на данном сайте)

На нашем факультете, с первого по четвёртый курс изучается ООП (C# под Windoze на mvs).
Сам преподаватель ООП, по его словам, параллельно работает програмистом-питонщиком.

После этого по учебному плану - всё тот же .net, Java, и web-разработка (2-4 курс). И тут у меня возникает несколько вопросов:

1) Я не могу взять в толк, чем руководствуются люди, пишущие на Java и C#?

Если с жабаскриптерами всё понятно, то вот здесь мне невдомёк.
Может у этих языков есть какие-то бенефиты, которых у С, и в частности С++ просто нет? (кроме GC)
Или это дело рук навязанных идей про "устарелость", "всё новое и блестящее - впихиваем в себя", и некомпетентности в профессии?
А может быть, некоторым они просто больше по душе, и зря я их так?

Может, это языки, которые имеет смысл изучать уже после полного прохождения пути Паскаль -> Ассемблер -> C -> C++?
Даже долой майкрософтовский C#, но вот Java, например?
Приходилось ли Вам в профессиональной практике программировать на данных языках?

2) Какова роль диплома для будущего трудоустройства?

Слышал много реплик знакомых из IT о том, что без диплома - на завод, и обратное, мол, да зачем он вообще нужен.
Бросать ВУЗ я не собираюсь, и, вопреки ВУЗовской программе, всё таки собираюсь учиться.

Но вот ведь разница: взять ту же медицину - без необходимого глубоко очного обучения в университете и последующей/параллельной практики, рассчитывать не на что.
И, соответственно, роль диплома здесь существенна, это показатель твоей общей квалификации, пройденного сложного пути.

Но вот схожая ли ситуация с программистами?
Какую вообще информацию о человеке может дать диплом , при таком то обучении?

Спасибо!

parent From Andrey V. Stolyarov profile Tue Aug 13 21:31:51 2024 UTC pencil

userpic

Re: Такие вот вопросы)

На нашем факультете, с первого по четвёртый курс изучается ООП (C# под Windoze на mvs). Сам преподаватель ООП, по его словам, параллельно работает програмистом-питонщиком.

Киллера бы ему нанять. Мало того что сам дебил, так ещё и студентов одебиливает. Впрочем, в учебных заведениях такого рода в большинстве случаев студенту хуже уже не сделать. Поинтересуйтесь на досуге (в частных разговорах; возможно, под пиво; и аккуратно, чтобы не спугнуть), кто из ваших однокурсников способен отсортировать массив пузырьком. В смысле вот прямо сесть и написать программу, которая это делает — естественно, без использования всяких встроенных и библиотечных средств сортировки. Ну, например, читает числа с клавиатуры, пока там конец файла не стрясётся, а потом выдаёт их отсортированными по возрастанию, и всё это без библиотечной сортировки.

Результат вас, возможно, несколько удивит.

Может у этих языков есть какие-то бенефиты

Как и у всех обезьяньих поделий, у этих языков ровно один "бенефит": на них можно писать, будучи обезьяной. Но есть и вторая сторона этого момента: нормальные люди на таких языках не пишут, а если пишут, то сами превращаются в обезьян.

(кроме GC)

Если бы вы не игнорировали FAQ, то уже знали бы, что GC — это не "бенефит", это недостаток, и притом (для императивных языков) фатальный.

Может, это языки, которые имеет смысл изучать

Есть ровно одна ситуация, когда об ЯП этой категории стоит марать руки и мозги: это когда вам прямо сейчас за работу именно на этих языках готовы платить, ну, скажем, в полтора (а лучше в два) раза больше, чем за нормальное программирование. Ну то есть это не то чтобы "есть вакансии", а вот прямо есть конкретное предложение от конкретного работодателя: освоишь джаву — будет вот такая зарплата, и вот официальный оффер.

Умея программировать, вы начнёте уверенно писать на той же джаве после недели, ну максимум двух недель интенсивного раскуривания всяких источников. Если двух недель не хватило — значит, вы ещё не умели программировать.

Только надолго там не задерживайтесь, параллельно нужно искать нормальное место работы за нормальные деньги, и как только таковое появится — валить туда. Иначе мозгам кабзда. Ну, не сразу, но два-три года на той же джаве — и выйти обратно в хорошую интеллектуальную форму будет уже крайне тяжело.

Какую вообще информацию о человеке может дать диплом , при таком то обучении?

В целом все "технические" специальности более-менее одинаковы: всё, что они могут дать полезного — это математика, по принципу "с паршивой овцы хоть шерсти клок". Сам термин "высшее техническое образование" содержит неразрешимое противоречие: образование может быть или техническим, или высшим, но никак не одновременно. А вот какая у вас там математика — это второй вопрос. Скажем, если у вас там есть такой предмет "высшая математика" (ну, вот прямо так называется), то вы в этом ВУЗе попусту теряете лучшие годы жизни. Впрочем, даже если учебный план построен более-менее осмысленно и содержит такие предметы, как "математический анализ", "линейная алгебра", "общая алгебра", "теория вероятностей", "дифференциальные уравнения" и т.п., это само по себе ничего не гарантирует, нужны ещё преподаватели, которые предмет (а) хорошо знают и (б) умеют преподавать.

Что касается медиков, то там, насколько я могу судить, как раз получается всё правильно: хороший врач обязан быть "немножко учёным", делать выводы из интересных случаев, документировать их, наиболее серьёзные результаты публиковать. В каком-нибудь Склифе врачи через одного со степенями. Поэтому врач — не знахарь, а реальный врач — это не ремесло, это именно что ближе к науке. Не так чтобы прямо вообще все врачи были учёными, но лучшие из них — ну, просто факт, учёными являются. И там образование из рук действующих учёных (попросту говоря, лучших из врачей), во-первых, не роскошь, а необходимость, и, во-вторых, оно оказывается реализуемо.

В применении к инженерам — неважно, программистам или ещё каким инженерам — ничего подобного существовать не может. Есть наука, есть техника, это разные вещи.

P.S. Вот тут ещё было про врачей.

parent From Anonymous (unverified) Tue Aug 13 21:51:17 2024 UTC pencil

Re: Re: Такие вот вопросы)

Спасибо большое, для меня было важно услышать Ваше мнение :-)

parent From anonymous (не автор) (unverified) Tue Aug 13 21:53:54 2024 UTC pencil

Re: Re: Такие вот вопросы)

>результат вас удивит

То есть как? Типа, некоторое довольно значительное количество студентов это сделать не способны?

Мы ж про этот пузырек говорим? https://en.m.wikipedia.org/wiki/Bubble_sort

Или есть какой-то ещё? Если про этот, то как они до какого-то там курса дожили? Тут же буквально нечего понимать, мысленные усилия по пониманию пузырька ничтожны. Легче... эээ, геометрии за первый семестр 7 класса. Как они вообще пишут хоть какие-то программы, если они пузырьком сортировать не могут?

parent From Andrey V. Stolyarov profile Tue Aug 13 22:11:41 2024 UTC pencil

userpic

Re: Такие вот вопросы)

Прекращайте верить в человечество, что я вам ещё могу сказать.

Если что: они не пишут программ. Как максимум — переписывают их из методички. Что до количества, судите сами. Когда я зарабатывал доцента в ВУЗе "третьего эшелона", за пять лет я, соответственно, повидал пять курсов, в основном имел дело с третьекурсниками. Поголовье каждого курса составляло от 25 до 33 (если склероз не изменяет) особей. Специальность (якобы) программистская. Так вот, за все пять лет количество попавшихся мне студентов, в принципе способных отсортировать массив, составило (барабанная дробь) ТРИ человека.

UPD: соврал, забыл про одного. Четыре.

parent From anonymous (не автор) (unverified) Tue Aug 13 22:36:26 2024 UTC pencil

Re: Re: Такие вот вопросы)

Простите, Вам мои вопросы, наверное, странными и дебильными покажутся. Но я не в силах заставить себя их не задать - разве что я буду забанен.

>только 4 из ~150 студентов могли отсортировать массив

Это же мы все ещё про пузырёк говорим? Не про какие-нибудь заумные сортировки из глубин книжек Д.Кнута? Всего четверо могли сортировать пузырьком? Простите ещё раз за идиотизм формулировки вопроса, но: Вы буквально имеете в виду то, что говорите? Без скрытых подвохов и дополнительных обстоятельств?

>они не пишут программ

Что же тогда собой вообще представляла их учебная деятельность с практической стороны? Они ж не могут просто картинки в книжках смотреть, если они будущие программисты? Практикум на ЭВМ - не?

И как Вы для себя решали проблему оценки их знаний на зачётных мероприятиях, если не секрет? За что Вы им ставили оценки, в результате которых они с третьего курса на четвёртый перешли?

parent From Andrey V. Stolyarov profile Tue Aug 13 23:03:58 2024 UTC pencil

userpic

Re: Такие вот вопросы)

> Это же мы все ещё про пузырёк говорим?

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

Слушайте, для вас это что, сюрприз? Вы когда-нибудь пробовали объяснить, как работают два вложенных цикла человеку, который этого не понимает? А вы вообще осознаёте, что 99% людей вокруг принципиально неспособны понять, что такое вложенные циклы, то есть просто не имеют такого потенциала, соберись хоть батальон лучших преподавателей программирования всех времён и народов?

Если не верится, не беспокойтесь, я когда-то тоже даже представить себе не мог, насколько в мире всё плохо. Пока не начал заниматься частными уроками.

Что до этого ВУЗа, как вы думаете, какой там был контингент, если никакого минимального проходного балла там установлено не было (ибо недобор) и, как следствие, на первый курс зачисляли всех, кто принёс положительно сданный ЕГЭ? "Положительно" — это означает "не на двойку". Т.е., собственно говоря, для поступления туда достаточно было предъявить школьный аттестат.

Что же тогда собой вообще представляла их учебная деятельность с практической стороны?

Собственно говоря, вся деятельность всех ВУЗов третьего эшелона представляет собой одно и то же: преподаватели делают вид, что учат, студенты делают вид, что учатся. Я это понял не сразу — и был очень удивлён, когда на первой "лабораторке" с предложенным заданием (вроде бы очень простым) не справился ни один из студентов. Не просто не справился, большинство из них даже не начали ничего писать, поскольку не понимали, чего от них хотят. Это был, ещё раз подчёркиваю, третий курс.

Именно тогда я научился придумывать такие задачи, проще которых, скажем так, сделать невозможно. Ну, вот возьмите задачник, гляньте задачу 2.19. Вот это вот и ещё подобного сорта задачки я тогда придумывал десятками, чтобы каждый раз дать новые, ну то есть похожие, но хоть чем-то отличающиеся. И так — пять, десять, сколько угодно заходов, пока хоть одна программа (да, блджад, от силы на двадцать строчек) не будет написана и запущена. Примерно половина не могла и этого.

Ну а дальше каждая сессия превращалась в битву с начальством за то, чтобы хоть кого-нибудь из этих дебилов отчислить. Ну то есть там отчислять, разумеется, надо было поголовно всех (четверо за пять лет хоть что-то понимающих — это в пределах статпогрешности), но устроить такое было, я бы сказал, технически невозможно: даже если бы на уровне кафедры какое-то подобное решение удалось протолкнуть, то в итоге разогнали бы кафедру и набрали других преподавателей, а студентов бы оставили — за них же финансирование поступает, вычо.

parent From Parthen (unverified) Tue Aug 13 23:19:18 2024 UTC pencil

Эээ, чего?!

>Что до этого ВУЗа, как вы думаете, какой там был контингент, если никакого минимального проходного балла там установлено не было (ибо недобор)

Я правильно понимаю что речь про МГУ? Тот самый, в который рвутся пол-страны? И недобор?

Я, честно говоря, когда выбирал ВУЗ для поступления на МГУ/МФТИ даже не смотрел, ибо не верил, что пройду

parent From Andrey V. Stolyarov profile Wed Aug 14 00:19:01 2024 UTC pencil

userpic

Re: Эээ, чего?!

Нет, неправильно понимаете. Читайте внимательнее тред.

Речь, если интересно, про МГТУГА.

parent From Anonymous (unverified) Wed Aug 14 13:10:27 2024 UTC pencil

Re: Re: Эээ, чего?!

А каким образом сортировка пузырьком и вообще программирование относится к авиации? Они что, предположительно будут писать программы для автопилотов каких-нибудь? Что-то я уже по-немногу начинаю понимать авиафобию...

parent From Andrey V. Stolyarov profile Wed Aug 14 13:26:38 2024 UTC pencil

userpic

Re: Эээ, чего?!

Ну, во-первых, автопилоты и всякое прочее, что летает — это в МАИ, а в МГТУГА (якобы) в основном про управление воздушным движением и прочее наземное обслуживание.

Во-вторых, поскольку специальность программистская, ваш вопрос звучит довольно-таки бредово: вы что, можете себе представить программиста (безотносительно предметной области), который пишет программы за деньги, но при этом неспособен отсортировать массив пузырьком? Чушь собачья, не? Но вообще, если что, пузырёк в данном случае лишь иллюстрация, а фактура тут буквально в том, что там практически у всего контингента (ну, по крайней мере той специальности, с которой я имел дело, т.е. программистской) совершенно непоправимый алгоритмический кретинизм.

Ну и в-третьих: нет, я не могу себе представить, чтобы эта публика работала по "полученной" (в жирных кавычках) "специальности" (ещё жирнее). Иначе я бы за российскую гражданскую авиацию ещё тогда (а это 2008–2013) яйца бы ломаного и гроша выеденного не дал.

Да и вообще, такие специальности в ВУЗе "дать" невозможно. Ремесло передаётся только в мастерской, от мастера к ученику. Абсолютно любое ремесло. Ни в каком ВУЗе не пишут прошивки для автопилотов, и, как следствие, научить этому не могут; этому можно научиться только там, где это реально физически делается. Вот, скажем, в университетах всегда занимались наукой, поэтому там могли научить науке, т.е. (хоть и с 95%-отбраковкой) всё-таки худо-бедно делать новых учёных. Всё, что выходит из университетов и учёным не становится — это побочный продукт, хотя и полезный.

Ну а всякие советские институты, дружно в девяностые переименовашиеся в "университеты", вообще бессмысленны. Были бессмысленны, бессмысленны сейчас и будут бессмысленны, пока их не позакрывают наконец.

parent From anonymous (не автор) (unverified) Tue Aug 13 23:30:33 2024 UTC pencil

Re: Re: Такие вот вопросы)

>если не верится

Не верится. То есть, мне не придет в голову предположить, что Вы фантазируете или преувеличиваете - с Вашим-то опытом. Но мой ум в настоящее время просто неспособен полноценно вообразить то, что Вы говорите.

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

Спасибо за Ваши ответы, простите ещё раз за все эти заданные вопросы.

parent From Andrey V. Stolyarov profile Wed Aug 14 00:34:05 2024 UTC pencil

parent From Anonymous (unverified) Wed Aug 14 13:12:39 2024 UTC pencil

Re: Re: Re: Такие вот вопросы)

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

parent From Andrey V. Stolyarov profile Wed Aug 14 13:45:24 2024 UTC pencil

userpic

Re: Такие вот вопросы)

Три из группы — это до фига. Скажем, в МГУ по моим наблюдениям, если к стенке не припереть, самостоятельно программы писали только те, кто не хотел терять самоуважения; ну это примерно процентов 20, т.е. если, скажем, в группе 15 человек, то вот как раз ваши "три" и получатся. Иной вопрос, что если попадался препод-фошшЫст вроде меня, которому распознать "автор — не автор" как два байта переслать и который никакого иного варианта, нежели полностью самостоятельное написание, не принимает в принципе, то есть вообще, то есть никак, то вся группа, крякнув, начинает программировать самостоятельно — за исключением тех, кто патологически этого делать не способен, но таких (в МГУ) было уже не очень много, в некоторых группах вообще не было, но чаще было как раз два-три аутсайдера на каждую группу (примерно столько вылетало каждый год на зимней сессии из-за несданного мне практикума).

Но если речь не про МГУ, то три из группы, пишущие самостоятельно при наличии "других вариантов" — это прям хорошо и много. Скорее всего, вы своих однокурсников несколько переоцениваете.

parent From Anonymous (unverified) Wed Aug 14 13:21:50 2024 UTC pencil

Re: Re: Re: Такие вот вопросы) FizzBuzz

А вы разве не застали эпидемию FizzBuzz? На каком-то сайте опубликовали статью про то, что 90% кандидатов пытающихся устроиться на работу программистом не могут написать программу, которая выводит числа от 1 до 100, но пишет Fizz вместо числа если оно делится на 3, Buzz если делится на 5 и FizzBuzz если делится на 15. Может путаю что-то ибо пишу по памяти, но можете сами поискать эту статью.

И после этого все бросились писать эти FizzBuzz-ы на всяких языках через всякие подковырки и тд. А суть была вовсе не в том, что это какой-то челлендж, а просто чтобы быстро отсеять кандидатов на место программиста, кто вообще не может программировать. Сортировка пузырьком даже сложнее этого FizzBuzz, а речь идёт о студентах, а не о тех кто уже закончил ВУЗ и пошел устраиваться на работу, так что вас удивляет?

parent From Andrey V. Stolyarov profile Wed Aug 14 13:50:21 2024 UTC pencil

userpic

Re: Такие вот вопросы) FizzBuzz

Всех (точнее, всех тех, кто умеет программировать) обычно удивляет одно и то же: как можно этого не понимать. Между прочим, многие преподаватели тоже не особо заморачиваются тем, что там реально творится у студента в мозгу. Я реальную картину представляю по двум причинам: во-первых, я занимался частными уроками, там некому создавать тот маскирующий фидбек, под которым благополучно прячутся все, кто ни хрена не понял; во-вторых, когда мне студент сдаёт программу, понять, что программа вообще-то не его, мне всегда было проще пареной репы, но это далеко не у всех преподавателей так.

From Parthen (unverified) Mon Aug 12 19:39:07 2024 UTC pencil

Реклама книги v2.0

http://infoviolence.org/ytid.cgi/ml1aGQn32z4

Забавно, что в комментариях книгу защищают больше, чем ругают. В кои-то веки аудитория Ютуба адекватнее аудитории LOR'а

parent From Andrey V. Stolyarov profile Mon Aug 12 19:57:13 2024 UTC pencil

userpic

Re: Реклама книги v2.0

Прямую ссылку на тюбик я, сорри, таки заменил :-)

Чего там не вижу, так это чтоб в комментах было больше адеквата, чем неадеквата. И даже чтобы был выше процент адеквата, нежели на лоре. Впрочем, и фиг бы с ним, хотите хвалите, хотите ругайте, только URL не перепутайте.

parent From Parthen (unverified) Mon Aug 12 20:15:47 2024 UTC pencil

Re: Re: Реклама книги v2.0

>Прямую ссылку на тюбик я, сорри, таки заменил :-)

Да без проблем. Я бы и сам так сделал, только почему-то думал, что Shorts не работают через Invidious.

parent From Andrey V. Stolyarov profile Mon Aug 12 20:38:00 2024 UTC pencil

userpic

Re: Реклама книги v2.0

А я даже не заметил в итоге, что это short. Вбил в ytid исходный URL, посмотрел, ни тебе тормозов, ни этого дебильного лэйаута, который на тюбике для просмотра short'ов.

Гм, а что, у short'ов бывают комментарии? Век живи, век учись.

parent From Anonymous (unverified) Tue Aug 13 01:24:47 2024 UTC pencil

Re: Re: Реклама книги v2.0

У меня видео вообще не проигрывается, спасибо Роскомпозору. Но я думаю и не важно. Комменты зато почитал.

Ребёнок такой "Я хочу стать бухгалтером когда вырасту! Надо хорошо учиться, освоить счёт, таблицу умножения...", а ему "Да не, ты что, нафиг оно тебе нужно?! Это только если ты ядерным физиком будешь! Лучше вот возьми налоговый кодекс почитай, а в цифрах, буквах, знаки действий и тд по ходу действий разберёшься"

parent From Anonymous (unverified) Tue Aug 13 13:51:12 2024 UTC pencil

Re: Re: Re: Реклама книги v2.0

> видео вообще не проигрывается

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

parent From Andrey V. Stolyarov profile Tue Aug 13 13:54:44 2024 UTC pencil

userpic

Re: Реклама книги v2.0

Смысла точно нет — я такой коммент не раскрою. Если человеку лень самостоятельно поискать, то мы ему вряд ли чем-то поможем.

parent From anonymous (unverified) Tue Aug 13 05:04:34 2024 UTC pencil

Re: Re: Реклама книги v2.0

У всего этого жанра вертикальных видео комменты есть по умолчанию, если не отключены автором.

>Век живи, век учись

По-моему, счастлив тот, кто в этом не разбирается.

parent From anonymous (unverified) Mon Aug 12 23:07:35 2024 UTC pencil

Re: Реклама книги v2.0

Хы, мне этот ролик попался намного раньше, когда там комментов было меньше, но лучше там от этого не стало.

Совершенно безотносительно моего отношения к книжкам и их автору - тут принципиально неважно, какое оно - могу утверждать, что такую кунсткамеру я редко где вижу. Между теми, кто срётся на лоре и теми, кто был в в комментах к этому видео, есть, как мне кажется, принципиальная разница: на ЛОРе в большинстве своём участники специальной олимпиады хотя бы издали выглядят теми, кто разбирается в том, о чём говорит. То есть, как будто бы у ЛОРовцев обычно можно понять причину того или иного высказанного мнения.

В комментах по ссылке совсем иначе. Даже не знаю, что меня больше повеселило в этих комментах: через полминуты возникшее ощущение, что я, листая, увижу там коммент наподобие "да он нам и на**й не нужОн, ентернет ваш", или то, что подобный коммент, как ни странно, будет адекватнее тех, что я уже прочитал. Удивительны даже не попытки высказываться на темы, в которых у высказывающегося глубоко очевидны нулевые представления о теме, а святейшая, сияющая, твердокаменная, круче вареного яйца уверенность, что высранное мнение является совершенной истиной и абсолютно авторитетным фактом.

Круто, что это в гостевуху этого сайта притащили. Уважаемый посетитель гостевухи, если ты желаешь легкую пилюлю уверенности в правиле 95% или в необратимой смерти цивилизации, если тебя развлекают такие вещи - я с удовольствием рекомендую перейти по ссылке в стартовом комменте.

parent From montana (unverified) Tue Aug 13 13:01:59 2024 UTC pencil

Re: Реклама книги v2.0

мой видос :)

parent From Andrey V. Stolyarov profile Tue Aug 13 13:56:08 2024 UTC pencil

userpic

Re: Реклама книги v2.0

Даже не знаю, что тут сказать. Пожалуй, промолчу.

From анон (unverified) Mon Aug 12 04:52:59 2024 UTC pencil

Теория без плотной связи с практикой

Здравствуйте, Андрей Викторович.

Я в настоящее время балуюсь реверсом win32 приложения и его модификацией, текущих знаний мне для этого хватает, работы тут еще уйма, а иногда хочется разбавить это каким-то теоретическим контентом(не книгой про RE).

Чем конкретно я хочу заниматься за деньги, я еще не решил, вот и задумал подтянуть базу для полноты картины и более гладкого вката в будущую специализацию, в связи с этим вопрос: Как Вы считаете, как правильнее дальше учиться программисту после вашего трехтомника? Какие книги можете посоветовать? в какой последовательности?

Я пока придумал такой порядок:

1) Современные ОС. Таненбаум

2) Компьютерные сети ... Олифер и Олифер

3) C++ for real programmers. Джефф Элджер

Или всё это ерунда и без немедленной практики толку будет как от чтения состава освежителя воздуха?

parent From Andrey V. Stolyarov profile Mon Aug 12 10:03:13 2024 UTC pencil

userpic

Re: Теория без плотной связи с практикой

Или всё это ерунда и без немедленной практики толку будет как от чтения состава освежителя воздуха?

This.

Кстати, это и моего трёхтомника касается тоже.

parent From Иван С. (unverified) Mon Aug 19 08:29:10 2024 UTC pencil

Re: Теория без плотной связи с практикой

Если уж собираетесь изучать сети как программист, то лучше всего взять учебник Букатова и Гуда "Компьютерные сети. Расширенный начальный курс". В нём есть специальная глава, посвящённая программированию сетевых приложений, с практическими заданиями, например, "Реализуйте сервис передачи файлов между подключенными клиентами, находящимися за NAT…". Будет чем размять голову. К сожалению, ссылку на файлообменник предоставить не смогу, так как у меня бумажная версия. Да даже если бы была цифровая, я не знаю, куда её загружать, чтобы А.В. не пришлось за мной подтирать.

parent From Andrey V. Stolyarov profile Mon Aug 19 09:08:11 2024 UTC pencil

userpic

Re: Теория без плотной связи с практикой

Если человек реверсингом балуется, а сам ничего не пишет — то для начала ему стоит научиться программировать вообще, а уже потом смотреть на специальные области.

parent From Anon (unverified) Sat Sep 7 22:39:44 2024 UTC pencil

Re: Re: Теория без плотной связи с практикой

Программирую бота для того приложения, что реверс инжинерю (бот это мой тред внутри приложения), ну и консольные тулзы под свои нужды в форточках, Ваш трехтомник был пройден в свое время до конца плюсов по всем правилам, а раньше макакингом занимался за деньги.

Здесь вопрос задавал больше за рекомендациями по литературе, проектик по сетям уже придумал себе

From Alexander (unverified) Wed Aug 7 13:49:04 2024 UTC pencil

Снова про математику

Благодаря Вам понял ценность изучения математики, поэтому очень хочу повторить школьную математику и в последующем уже изучать разделы вышмата. Может быть тут кто-то может посоветовать учебники по школьной математике. В разных источниках рекомендуют учебники Киселева и Туманова. Стоят ли они внимания?

parent From Andrey V. Stolyarov profile Wed Aug 7 14:23:30 2024 UTC pencil

userpic

Re: Снова про математику

Вот тут недавно обсуждалось, например.

parent From Timofey (unverified) Wed Aug 7 16:25:23 2024 UTC pencil

Re: Снова про математику

Пересмотрев большое количество материалов на тему изучения математики, пришел к выводам, что нужно брать фундаментальные учебники по элементарной алгебре/геометрии, где материал изложен последовательно со всеми нужными теоремами и доказательствами.

По алгебре рекомендую как раз таки по учебник Туманова, так как там идет полное изложение элементарной алгебры. Начинается курс с введения абстракции отрицательных чисел, причем не просто говорится что есть отрицательные числа, а показываются причины, по которым эта абстракция возникла как таковая. Заканчивается же курс понятием производной и введением в интегралы. Причем в курсе рассматриваются темы, которые обычно совсем не входят в стандартный курс школьной алгебры: теорема Гаусса, бином Ньютона, формула Эйлера и много чего еще.

Если же говорить о геометрии, то рекомендую те учебники, по которым изучал сам:

- Планиметрия. В.Ф. Бутузов;

- Стереометрия. А.Ю. Калинин, Д.А. Терешин;

Опять же, это полноценные учебники по геометрии, где все рассказывается крайне подробно. Много тем, которые в "классических" школьных учебниках по геометрии (например, Атанасяна) не рассматриваются в принципе, хотя они являются наиболее интересными и красивыми из всего курса школьной геометрии.

parent From Alexander (unverified) Wed Aug 7 17:22:05 2024 UTC pencil

Re: Re: Снова про математику

Спасибо за рекомендацию. А "Элементарная геометрия" Киселева Вам не попадалась?

parent From Timofey (unverified) Thu Aug 8 07:04:07 2024 UTC pencil

Re: Re: Re: Снова про математику

Я знаком с этой книжкой, но только по ее содержанию, так что говорить о том насколько она качественная не могу.

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

parent From Anonymous (unverified) Wed Aug 7 18:26:09 2024 UTC pencil

Re: Re: Снова про математику

Ох, мне кажется, тут есть одна проблема. Учебники по математике зачастую написаны формальным сухим языком. Это нисколько не плохо, наоборот это приучает к точному стилю мышления, нетерпимости к несущественным с точки зрения обывателя ошибкам в терминологии и прочим подобным вещам.

Но... чтобы этот сухой язык переварить и наконец-то разобрать, что там написано, нужно очень много терпения. Я в школе математику любил, она казалась мне несложной, но когда я поступил в университет, то меня начали ложками кормить математическим анализом, и в учебниках по нему был упомянутый мной сухой язык. Сейчас, конечно, эти учебники кажутся гораздо более простыми, но тогда хотелось прямо на стенку залезть. И единственным (!) мотиватором к изучению для меня была боязнь завалить сессию и вылететь. Подозреваю, что при самостоятельном изучении мотивация бы у меня отпала напрочь.

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

parent From Andrey V. Stolyarov profile Thu Aug 8 09:07:19 2024 UTC pencil

userpic

Re: Re: Re: Снова про математику

> написаны формальным сухим языком

Ну, книжки разные бывают. Есть, например, серия "Лекции по математике" от автора В.Босс (это псевдоним, настоящая фамиля Опойцев). С этими книжками, впрочем, проблема противоположная: там рассказывается, как предмет грокнуть, но без учебника ничего не получится, поскольку самого предмета в книжках, как ни странно, нет.

> как этот период пережить без внешнего давления

Между прочим, это очень серьёзная проблема. Если бы не это, я бы вообще сказал, что высшее образование не нужно. Но увы: если бы не сессии, я бы и сам математику не знал, да её вообще мало кто бы знал, потому что осознание, нафиг она нужна, приходит обычно слишком поздно, когда мозги уже ни на что не годятся.

parent From Ilia (unverified) Sun Aug 11 12:06:45 2024 UTC pencil

Внешнее давление

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

Я как-то слышал от некоторых биологов, что у тех, кто получает дофамин от доказательств или выводов теорем, 1-2% от всего земного шара. Как и в любой области. А остальные 98-99% дофамин не получают и им вообще не понятно, как можно получать удовольствие от этого. И поэтому тут поможет только одно из двух: либо кнут, либо пряник - то есть внешнее давление.

parent From Andrey V. Stolyarov profile Sun Aug 11 12:44:48 2024 UTC pencil

userpic

Re: Внешнее давление

> 1-2%

Замечу, примерно столько же тех, кто по итогам обучения в школе понимает, чему его учили на уроках математики.

В действительности речь, по-видимому, следует вести о том, как сделать, чтобы хотя бы эти 1-2% в итоге знали математику. Остальным никакое давление не поможет. И вообще ничего не поможет.

parent From Artem (unverified) Mon Aug 12 09:25:59 2024 UTC pencil

Re: Внешнее давление

> которого штырит от математики

Хах. Меня вот "штырит", когда я, к примеру, доказываю теорему, особенно если удалось сделать это полностью в уме. Но при этом ни малейшего желания заниматься математикой не испытываю, и если бы не университетский курс (слишком короткий, увы), я бы до сих пор не знал, что значит слово "ряд".

parent From Andrey V. Stolyarov profile Mon Aug 12 10:07:15 2024 UTC pencil

userpic

Re: Внешнее давление

И это проблема, товарищи. Изначальная суть высшего образования предполагала, что лекции читают действующие учёные, способные увлечь аудиторию и показать красоту предмета. Есть только одна маленькая проблема: их не хватает на всех. Высшее образование как массовое явление — нонсенс, хороших профессоров никогда не будет много.

parent From Igoris Butvilas (unverified) Fri Aug 9 15:25:18 2024 UTC pencil

Re: Снова про математику

Мне по математике для гуманитариев посоветовали такие книги (советовали практикующие репетиторы по математике с хорошей репутацией):

Арифметика -- "Арифметика" Сергея Никольского, Михаила Потапова, Николая Решетникова и Александра Шевкина;

Элементарная алгебра -- "Элементарная алгебра. Пособие для самообразования" Савелия Туманова; "Алгебра для самообразования" Дмитрия Фадеева и Ильи Соминского;

Геометрия -- "Геометрия: учебник для 7—11 классов общеобразовательных учреждений" Алексей Погорелов.

parent From Andrey V. Stolyarov profile Fri Aug 9 15:38:51 2024 UTC pencil

userpic

Re: Re: Снова про математику

Ох не надо геометрию по Погорелову, ох ни к чему это

parent From Alexander (unverified) Sun Aug 11 02:42:07 2024 UTC pencil

Re: Re: Re: Снова про математику

А что в этом учебнике не так, на Ваш взгляд?

parent From Andrey V. Stolyarov profile Sun Aug 11 08:11:50 2024 UTC pencil

userpic

Re: Снова про математику

Это ровно тот учебник, по которому учили школьников, когда таковым был я. О школе в целом у меня сложилось впечатление как о потерянной впустую прорве ценнейшего времени, и уроки геометрии тут не исключение.

From Michael (unverified) Mon Aug 5 09:47:02 2024 UTC pencil

Data Science

Как вот быть с тем, что в некоторых отраслях Python безальтернативен? К примеру, в датасайнс, нейросетях и тп., похоже вообще у современных математиков. Он там как в старину латинский в науке - без него просто нечего делать, нейросетки, кучи библиотек, целая экосистема - все питон. Важнейшие современные библиотеки для построения нейросеток -питон (PyTorch например). Теоретически конечно можно самому вручную все программировать на чем угодно, есть некоторые модели на других языках (до примерно середины нулевых еще активно матлаб использовался), но на практике все это вторично. Столкнулся с тем, что нейросети и обработка данных - это просто царство питона хуже Web-а.

parent From Andrey V. Stolyarov profile Mon Aug 5 10:49:31 2024 UTC pencil

userpic

Re: Data Science

Ну так не работайте в этих областях, кто заставляет-то? А если очень хочется — сначала поищите реализацию соответствующих алгоритмов на чистом Си, в крайнем случае на C++ (кстати, к бабке не ходи, все эти "библиотеки для питона" на Си написаны, иначе бы они работали со скоростью варёной черепахи), если чего-то не найдётся — напишите сами.

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

parent From Artem (unverified) Mon Aug 5 12:51:08 2024 UTC pencil

Re: Re: Data Science

> все эти "библиотеки для питона" на Си написаны

Вернее, на C, C++, Fortran и CUDA. Но только критичные к производительности части, которых не так много, остальное питончик.

Кстати, до PyTorch был Torch7, почти то же самое, но для Lua. Потом большие дяди из Facebook решили переписать его для питона, попутно сам Torch7 благополучно сдох (в смысле, не развивается и не поддерживается).

parent From Andrey V. Stolyarov profile Mon Aug 5 13:49:43 2024 UTC pencil

userpic

Re: Data Science

Интересно, кстати — не отследил такой момент: этот Lua успел отрастить собственную экосистему или вовремя на обочину съехал?

parent From Artem (unverified) Mon Aug 5 14:52:37 2024 UTC pencil

Re: Re: Data Science

Смотря что считать экосистемой. Библиотек для него много, если речь об этом.

И смотря что считать съезжанием на обочину, как встроенный язык он широко используется, особенно в геймдеве.

parent From Andrey V. Stolyarov profile Mon Aug 5 15:07:39 2024 UTC pencil

userpic

Re: Data Science

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

А что Lua вполне себе живой — это я знаю, под съездом на обочину я понимаю, ну, скажем, выход из гонки за позицию во главе мейнстрима.

parent From Artem (unverified) Mon Aug 5 15:33:45 2024 UTC pencil

Re: Re: Data Science

В таком случае экосистема у него есть. Хотя в этом смысле она, кажется, вообще у всего есть, включая чистый C. А вот как у него с вовлечённостью публики в эту экосистему (на экосистему C плевать практически всем, а JS без экосистемы трудно представить), понятия не имею. У тех библиотек, что у них в топе закачек, зависимостей либо нет, либо одна (редко), так что должно быть не сложно сделать вид, что никакой экосистемы нет.

parent From Andrey V. Stolyarov profile Mon Aug 5 17:36:46 2024 UTC pencil

userpic

Re: Data Science

Для случая чистого Си я не вижу даже намёков на экосистему. Пакетные менеджеры дистрибутивов Linux ориентированы явно не на чистый Си, плюс к тому я не видел, чтобы создатели библиотек сами их опакечивали под разные дистры; ничего другого для автоматического вытаскивания из интернета всех зависимостей любой отдельно взятой программы я пока что не видел. Не наблюдается также и попыток приписать имеющимся библиотеками какие-то глобальные идентификаторы.

parent From Trollkarl (unverified) Mon Aug 5 18:53:20 2024 UTC pencil

Re: Re: Data Science

Lua успел отрастить собственную экосистему

Есть LuaRocks — пакетный менеджер для Lua-шных библиотек. Но, насколько я понимаю, он не прибит гвоздями к Lua, поскольку поддерживает как Lua, так и LuaJIT. Видимо, просто гадит в переменную LUA_PATH.

parent From Иван С. (unverified) Mon Aug 5 12:25:33 2024 UTC pencil

Re: Data Science

Дезертиры перед мейнстримом вообще ничем не брезгуют. Сначала Python и JavaScript, затем работа на Google или государство, участие в закручивании цифровых гаек, создании автопилотов, где ни вздохнуть, ни пёрнуть без проприетарного ПО от производителя, и так далее. И на всё один ответ: «Ну ачо такова?».

parent From Andrey V. Stolyarov profile Mon Aug 5 13:50:52 2024 UTC pencil

userpic

Re: Data Science

И чо это было?

Не, ладно, вроде мысли как мысли, только "дезертиры" тут при чём? Ну, там, конформисты, к примеру — это я бы понял

parent From Иван С. (unverified) Mon Aug 5 14:21:07 2024 UTC pencil

Re: Re: Data Science

Да, вы правы, термин не в ту степь.

parent From Artem (unverified) Mon Aug 5 13:21:05 2024 UTC pencil

Re: Data Science

Он не безальтернативен, просто его любят впаривать непрограммистам как язык, с которым они получат вожделенные результаты вычислений уже через полчаса после первого в их жизни осознания необходимости долгих расчётов на компьютере. Библиотек много, и среди них хватает и тех, которым питон не нужен для работы, просто у всех из них имеется интерфейс для питона, а для чего-то другого он есть не у всех библиотек (для некоторых можно написать самому) поэтому причин пользоваться чем-то, кроме питона, люди не видят, что и закрепляет этот язык в роли лигва франка.

parent From Иван С. (unverified) Mon Aug 5 14:34:07 2024 UTC pencil

Re: Re: Data Science

Да даже программистам (ну тем, кто, вроде как, намеревается ими стать). Лично мой препод в шараге говорил, что Питон позволяет новичкам не запариваться над синтаксическими конструкциями и сосредоточиться на решении задач, "изучении алгоритмов", т.е. на самом важном (по его мнению) для современного(!) разработчика.

parent From Andrey V. Stolyarov profile Mon Aug 5 14:36:44 2024 UTC pencil

userpic

Re: Data Science

Это вот питон скорее таким преподам позволяет ничего не делать и при этом считать (и всем кругом громко заявлять), что ОНО кого-то чему-то учит. Особенно в случаях, когда оно само ничего не умеет.

parent From Alexey (unverified) Tue Aug 6 12:49:30 2024 UTC pencil

Re: Re: Data Science

А если речь про студентов-непрограммистов, которым надо рассказывать про анализ данных статистическими методами, МНК и прочее? Тогда у языков типа Python, MATLAB/Octave или Julia есть две альтернативы:

1) Готовые программы вроде Excel, LibreOffice Calc, PSPP с окошечками. Оно нередко удобно, но у всех немного разное, и функционал ограничен. И они создают эффект "чёрного ящика".

2) C, C++ и/или Fortran. Строить практические занятия по анализу данных на их основе для непрограммистов я бы не рискнул.

Сразу придётся объяснять непрограммистам ряд вещей:

1) Подготовка рабочего места: тогда туда нужно ставить не только GCC и GNU Make, но и что-нибудь вроде GNU Scientific Library и gnuplot. Отказ же от внешних библиотек превратит курс в практикум по численным методам линейной алгебры и спецфункциям.

2) Компиляция, линковка и запуск программы. При условии того, что во вводном курсе программирования вполне могут работать в IDE, решать простейшие задачи, и студенты не всегда понимают, что такое текущий каталог, переменная среды, не знают командной строки и т.п.

3) То, что надо сделать в самой программе для работы с GNU Scientific Library, levmar или Ceres Solver - ощутимо выходит за рамки вводного курса по программированию для естественников.

И это - вместо нескольких команд в интерпретаторе или скрипта на 20 строк. Хотя для сильно мотивированных энтузиастов C++ большой проблемы не представляет. Но их - меньшинство.

P.S. Lua мне тоже нравится, но в SciLua нет ряда важных вещей.

parent From Andrey V. Stolyarov profile Tue Aug 6 13:52:15 2024 UTC pencil

userpic

Re: Data Science

> если речь про студентов-непрограммистов

Если речь про студентов-непрограммистов, то не надо делать вид, что они могут программировать. Да, даже самые простейшие скриптики.

> Готовые программы [...] создают эффект "чёрного ящика"

По-вашему вся та конструкция с питоном посерёдке, которую вы тут предлагаете как альтернативу, НЕ создаёт эффект чёрного ящика? Для студентов-непрограммистов? Вы, пардон, что курите?

Я вам больше скажу, вместе с ощущением чёрного ящика у людей, не понимающих программирование, вот эти вот скриптики создают ещё ощущение непонятных заклинаний. Типа, вот надо произнести "абра-швабра-кадабра", и не просто так, а медленно и нараспев, и обязательно на третьем и шестом слоге кинуть через левое плечо щепотку порошка из сушёной жабы.

Хуже того, заклинания воспринимаются как нечто такое, что не просто непонятно, а не может быть понятно (ну, типа, ваще), и — чтоб уж до конца — и не должно быть понятно. Ну, типа, этот примус так работает.

А самое, конечно, поганое тут то, что если среди этих студентов, ктулху упаси, таки попадётся один или два с потенциалом понимания происходящего, то ваш замечательный практикум (или что там у вас) резко повысит для них вероятность пополнить ряды питономакак, которых и без них намного больше, чем мир может выдержать.

Ну и ещё один момент:

> во вводном курсе программирования вполне могут работать в IDE

Ценность любого учебного курса и иного учебного мероприятия, в котором используются IDE, отрицательна.

Засим не будете ли вы столь любезны избавить мой сайт от своего присутствия? Очевидно, что мне вас ни в чём не убедить, а свернуть вам шею, во-первых, технически затруднительно ввиду вашей анонимности, да и, во-вторых, уголовный кодекс не велит. Но деятельность подобных вам персонажей вредоносна настолько, что что-то однозначно с этим надо делать. И уж как минимум я не намерен вас терпеть на своей территории.

parent From Anonymous (не ТС) (unverified) Wed Aug 7 19:44:46 2024 UTC pencil

Re: Re: Data Science

Меня самого учили на IDE, в школе TurboPascal, в универе PascalABC и MS VC 6.0 / Borland C++ Builder на выбор. Какое-то время у меня было такое ощущение, что для работы с каким-то языком программирования обязательно нужно ставить среду именно под него. Но как-то вот с переходом на GNU/Linux, где ни MSVC ни BC++ нету, перешел на просто запуск GCC из консоли и текстовый редактор, и вроде никак меня это особенно не испортило.

Это я не к тому, что прямо опровергаю ваши слова, но обучение программированию на IDE как минимум не смертельно. Хотя припоминаю, что я например не понимал, что такое компиляция, думал что это просто проверка программы на синтаксические ошибки, без её запуска.

parent From Andrey V. Stolyarov profile Thu Aug 8 07:51:01 2024 UTC pencil

userpic

Re: Re: Re: Data Science

Конечно, не смертельно, я вон вообще начинал с бейсика с нумерованными строками, и ничего, живой. Проблема в том, что вот это вот

я например не понимал, что такое компиляция, думал что это просто проверка программы на синтаксические ошибки, без её запуска

— эффект весьма типичный, я много раз такое видел. И в целом IDE скрывает именно то, что нужно понимать в первую очередь. А насколько это всё "смертельно" или, напротив, легко преодолимо — зависит от способностей конкретного обучаемого, кому-то пофигу, всё равно прорвётся, а у кого-то картина мира так и останется кривой.

Если, скажем, некая смертельная болезнь убивает не всех — она от этого не перестаёт быть ни смертельной, ни тем более болезнью.

parent From Anonymous (не ТС) (unverified) Thu Aug 8 10:18:00 2024 UTC pencil

Re: Re: Re: Re: Data Science

Ну в принципе логично — нафига студента/ученику вначале рассказывать нудным голосом что-то вроде "компиляция — это процесс перевода человекочитаемого кода на машинный язык" чтобы он ничего не понял (это и звучит как какое-то заклинание, которое надо запомнить, чтобы двойку не поставили) и на практике увидел, что это "просто проверка на синтаксические ошибки", если можно сразу показать ему отдельно все три процесса — создание текстового файла на ЯП, конвертацию файла на ЯП в исполняемый и запуск этого исполняемого файла, и чтобы он сам это всё сделал ручками? Гораздо понятнее, чем какие-то нудные лекции.

В той же школе нортон-командер был и ему учили по нудной лекции на целый сдвоенный урок и только потом допустили к компу чтобы вживую это потыкать. Я всё равно в этой лекции ничего не понял и разобрался только когда мне это всё вживую покзали. Так зачем было два урока тратить на рассказ о том, что в этом нортоне две панели и так далее? Кстати в этот раз у меня была тройка, потому что я не смог выделить файлы по маске, а для меня в тот момент "маска" была такой штукой которая надевается на лицо, ещё про неё годный фильм был снят. А вот когда мне показали я это понял суть за полминуты. То есть полминуты живого общения с программой дают больший результат чем полчаса или даже два часа устного рассказа с рисунком этой программы на доске.

Но насчёт TurboPascal, у меня есть некоторое подозрение, что там это было действительно так в некотором смысле. Насколько я знаю у Borland было два варианта, Turbo Pascal и Borland Pascal, первое для школьников и студентов, бесплатное но вроде бы (поправьте кто тыкал эту штуку не 20 лет назад как я) _не умело_ создавать exe-файлов и не включала в общем-то ненужную фигню для написания приложений под Windows 3.x. А Borland Pascal уже была полноценной со всем перечисленным и умела создавать exe-файлы.

Но если это было так, то что делал там пункт Compile? Компилировал, но исполнимый код записывал в отдельный сегмент памяти и при запуске передавал управление? Или компилировал в файл и сразу этот файл стирал? Или я помню неверно, и после этой процедуры exe-файл там оставался?

Кстати там вроде ещё пункт Build был, не только Compile и Run. Но про него я помню ещё меньше.

parent From Andrey V. Stolyarov profile Thu Aug 8 11:05:35 2024 UTC pencil

userpic

Re: Re: Re: Re: Re: Data Science

> Насколько я знаю у Borland было два варианта, Turbo Pascal и Borland Pascal

Насколько я помню, они некоторое время различались комплектом поставки. К тому времени, когда была выпущена коробка Borland Pascal 7.0, которая у меня в шкафу до сих пор стоит, разницы уже не было. Так или иначе,

> _не умело_ создавать exe-файлов

сие есть чушь, не знаю откуда взявшаяся. Скажем, я в программирование "вкатывался", когда мейнстримом был Turbo Pascal 5.0, там, естественно, компиляция была и exe-файлы создавались. Сущности "Borland Pascal" тогда ещё не было. Потом был Turbo Pascal 5.5, отличавшийся появлением поддержки для ООП, а понятие Borland Pascal возникло, насколько я помню, только с появлением версии 6.0, и чем одно от другого отличалось, лично я так и не понял — судя по всему, отличалось физическим содержимым коробки. Такого варианта реализации Паскаля от фирмы Borland, которая бы не умела создавать exe-файлы, я никогда не видел.

> там вроде ещё пункт Build был

Он принудительно перекомпилировал все модули, что-то вроде make -B

parent From Anonymous (не ТС) (unverified) Thu Aug 8 11:57:30 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Data Science

Наверное я путаю с QBasic / QuickBasic который тоже был синим окошком под DOS, вот который был в комплекте MS-DOS не умел exe-файлы создавать, а который был отдельный "продукт" умел.

parent From Andrey V. Stolyarov profile Thu Aug 8 12:02:15 2024 UTC pencil

userpic

Re: Data Science

Тут ничего сказать не могу, на IBM-совместимых машинах я на бейсике не писал.

parent From Eugene (unverified) Wed Aug 14 18:36:04 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Re: Data Science

Это два разных продукта были. QBasic начиная с MS DOS 5 входил в состав системы, заменив gw-basic. Собственно, появилась IDE, но остался интерпретатор.

А вот QuickBasic — это коммерческий компилятор бейсика от Майкрософт. Продавался отдельно. Создавал .exe.

Вообще, кажется, это была принципиальная позиция, компиляторов в составе ДОС не было. Видимо, чтобы продавать их отдельно. Системный линкер, кстати, при этом был. Только почему-то все (ну, по крайней мере, все известные мне) компиляторы либо таскали редактор связей с собой, либо компилятор и линкер были в одном файле (как тот же TurboPascal).

parent From M (unverified) Sat Aug 17 08:24:24 2024 UTC pencil

Re: Data Science LINK.EXE

[blockquote]компиляторов в составе ДОС не было. Видимо, чтобы продавать их отдельно. Системный линкер, кстати, при этом был. Только почему-то все (ну, по крайней мере, все известные мне) компиляторы либо таскали редактор связей с собой[/blockquote] Это была политика IBM PC DOS, частично вынужденная техническими причинами. Основным дистрибутивным носителем для IBM PC (но не для других машин с 86-DOS/MS-DOS и их вариантами) были первоначально 5-дюймовые дискеты, отформатированные на 160 KB. Пара ассемблеров (один без макросов, чтобы влез в IBM PC c минимальным для IBM PC DOS объёмом RAM) с утилитами и небольшими примерами это уже около 150 КB.

Досовый ассемблер поставлялся OEM, начиная с 86-DOS. Он был нужен, чтобы OEM мог изготовить BIOS для своей машины и, возможно, загрузочную запись/BOOT ROM, по прилагаемому и описанному в документации образцу.

Кроме использования в системах программирования на ЯВУ конечными пользователями MS-DOS, LINK.EXE использовался для компоновки объектных модулей, поставляемых Microsoft, с платформозависимыми модулями, разработанными OEM. [blockquote] 1. DOS distribution diskette. This diskette contains files which should be distriibuted to all users. This allows the DOS distri- bution diskette to meet the requirements of users of high level language compilers as well as users running only applications. Many compilers marketed independently through the retail channel (including those of Microsoft) assume LINK comes with the DOS, as in the case of IBM. How you choose to distrubute BASIC (contracted for separately) is up to you.

2. Assembly Language Development System diskette. This diskette contains files of interest to assembly language programmers. High level language programmers do not need these programs unless they are writing assembly language subroutines. IBM chose to unbundle this package from the DOS distribution diskette (except for DEBUG), but you do not have to do so.

3. PRINT and FORMAT diskette. This diskette contains .ASM source files which are necessary to assemble the print spooler, which you may wish to customize for greater performance. .OBJ files are also included for the FORMAT utility.

4. Skeltal BIOS and documentation diskette. This diskette contains the skeltal BIOS source code and the SYSINIT and SYSIMES object modules which must be linked with your BIOS module. The proper sequence for linking is BIOS - SYSINIT - SYSIMES. [/blockquote] https://github.com/microsoft/MS-DOS/raw/main/v2.0/source/README.txt

Из MS-DOS начиная с 5.0, которую пользователи могли купить сами в магазине, LINK.EXE исключили.

parent From Andrey V. Stolyarov profile Sat Aug 17 13:46:04 2024 UTC pencil

userpic

Re: Re: Data Science LINK.EXE

> отформатированные на 160 KB

Точно не на 180? Я, по правде, ничего меньше 360 не застал, но было такое ощущение, что 180 — это ровно половина (то ли там сторона была одна, то ли дорожки вдвое реже шли, не знаю).

parent From M (unverified) Sat Aug 17 18:03:06 2024 UTC pencil

360

IBM PC DOS научилась записывать 180KB на односторонние 40-дорожечные дискеты после обновления.

На одну дорожку диска, делающего 300 оборотов в минуту при скорости записи 250000 бит/c поместилось бы не более 50000 бит. С учётом заголовков записей и промежутков между ними на дорожке легко помещается 5 1024-байтных записей или 9 512-байтных (10 со скрипом). На 40x2 - дорожек поместится 400KB или 360KB, на 40 дорожек односторонней дискеты 200KB или 180KB. Но мужики-то не знали! Пока айбиэмовцам это не подсказал Тим Патерсон, дорабатывая свою 86-DOS/MS-DOS до IBM PC DOS.

Tim Paterson. All Those Floppy Disk Formats…

Когда в IBM PC стали устанавливать двусторонние дисководы, в FORMAT.COM добавили ключик /1, чтобы использовать только одну сторону дискеты на 160KB. А когда PC DOS научилась записывывать 9 512-байтных секторов на дорожку, добавили ключик /8, чтобы для совместимости со старыми IBM PC записывать на дорожку 8 секторов вместо 9 (160KB и почти бесполезные 320KB). Каждый из 4-х вариантов получил свой FAT ID.

160KBFE
180KBFF
320KBFC
360KBFD

Я,конечно, не помню их наизусть, какой бит различал односторонний формат, какой 40/80 дорожек, какой 8 секторов...

parent From Eugene (unverified) Wed Aug 14 17:17:58 2024 UTC pencil

Re: Re: Re: Re: Re: Re: Data Science

> Насколько я помню, они некоторое время различались комплектом поставки. К тому времени, когда была выпущена коробка Borland Pascal 7.0, которая у меня в шкафу до сих пор стоит, разницы уже не было.

Как облабатель такой же коробки, уточню :) Borland Pascal был только 7 версии, до этого — Turbo. Отличались в основном наличием компилятора для Win16, всяких утилит, воде редактора ресурсов и библиотекой ObjectWindows. В обычном TurboPascal этого не было. А для Windows был отдельный TurboPascal for Windows. Кажется, до версии 1.5, что-ли, дожил.

>> _не умело_ создавать exe-файлов

>сие есть чушь, не знаю откуда взявшаяся. Скажем, я в программирование "вкатывался", когда мейнстримом был Turbo Pascal 5.0, там, естественно, компиляция была и exe-файлы создавались.

А вот и нет, TurboPascal 3.0 не умел создавать .exe, только .com. А взялось сиё заблуждение из-за наличия прекрасного режима компиляции в ОЗУ, без записи исполнимого файла на диск. Эта штука очень помогала, особенно если жёсткого диска на машине не было (у меня в школе как раз такие были, PS/2 с флоповодом, но без винта).

parent From Turbo (unverified) Tue Aug 13 03:16:50 2024 UTC pencil

Turbo Pascal

бесплатное но вроде бы (поправьте кто тыкал эту штуку не 20 лет назад как я) _не умело_ создавать exe-файлов и не включала в общем-то ненужную фигню для написания приложений под Windows 3.x.

Лицензии Turbo Pascal стоили в диапазоне $40-70 . Версия для CP/M, естественно, не только не включала фигню для Windows 3.0, но и не умела создавать exe, потому что в CP/M их не было. Можно было или сгенирить программу в свободную от "IDE", библиотеки и компилятора RAM и выполнить её, не обращаясь к дискете. Либо сохранить код в исполняемый COM-файл вместе с несколькими килобайтами рантайма, который копировался тоже из RAM, из выполняющегося Турбо-Паскаля. Был ещё вариант сохранения куска кода без библиотеки. Его программа на ТурбоПаскале могла подгрузить и выполнить библиотечной процедурой. Первые версии для MS-DOS работали примерно так же, и неиспользовали EXE-файлы и другие возможности, которых в ранних изданиях IBM PC DOS/MS-DOS, имитирующих API CP/M, ещё не было.

Для Windows через несколько лет выпустили Turbo Pascal for windows.

parent From Andrey V. Stolyarov profile Tue Aug 13 10:27:15 2024 UTC pencil

userpic

Re: Turbo Pascal

Версию для CP/M я, смутно припоминаю, видел на адских машинах системы "роботрон" в компьютерном классе на первом курсе (осень 1992 года; по-моему мы были последним курсом, который с этими гробами работал, потом их заменили на что-то более приличное). Вроде бы это был Turbo Pascal 3.0. Особо разбираться я с этим всем не стал — предложил нашему преподавателю притащить триста килобайт исходников на Паскале, чтобы продемонстрировать, что эту тему для себя уже раскрыл (я к тому времени (а) вёл кружок для школьников и (б) мне уже успели заплатить денег за написание программы), ну в общем препод хмыкнул и предложил мне прийти прямо на зачёт. Так что совсем близкого знакомства с этими роботронами я счастливо избежал.

Первой лично для меня версией Турбо Паскаля стала (на два года раньше) версия 5.0, более старых я не видел и не трогал. Но 5.0 точно всё прекрасно компилировала — я помню свои ощущения, когда написал пробную программу на десяток строчек, заставил эту скотину мою программу откомпилировать, вышел из среды и увидел, что exe-шник получился на 140 с лишним KB (при ёмкости дискеты 720; был, как сейчас помню, на этих ЕС1840 такой хитрый вроде бы драйвер, который назывался 800.com — после его запуска можно было дискеты 5" DSDD форматировать под всякие странные форматы — два по 360, один на 720 и вроде бы максимум возможного — 800 KB). В общем, когда в таких нечеловеческих условиях несчастный exe-шник из программы на полэкрана получается 140+, это, мягко говоря, разочаровывает. Потом, правда, выяснилось, что программу можно написать и на 1000 строк, и на 5000, а exe-шник при этом даже до 200 KB не дорастёт, но это было потом.

parent From Eugene (unverified) Wed Aug 14 17:40:35 2024 UTC pencil

Re: Re: Turbo Pascal

очень странно, такую RTL пятая версия точно за собой не таскала. Не поленился, в досбоксе установил 5.5 (из ссылки выше) и написал "hello, world". 1904 байта. Если crt подключить (ClrScr сделать), то 3488 байт.

Отдельные умельцы на нём даже вирусы писали, а вирус в те времена должен был быть маленьким :) Видел пару экземпляров.

Похожие размеры были, если подключить TurboVision (и, кстати, да, там было именно так, как вы пишите: большая программа не сильно увеличивала размер экзешника по сравнению с минимальным), а библиотека эта появилась только в шестой версии.

parent From Andrey V. Stolyarov profile Wed Aug 14 17:53:01 2024 UTC pencil

userpic

Re: Turbo Pascal

Да, странно. Воспоминания у меня довольно яркие и вполне ясные, несмотря на 30+ прошедших лет. Но доверять своей памяти, как мы знаем, без объективной аудио-видео-фиксации вообще-то нельзя.

Вообще немножко поскрипел мозгами и подумал, а не мог ли это быть gw-бейсик? :-)

parent From Eugene (unverified) Wed Aug 14 18:07:41 2024 UTC pencil

Re: Re: Turbo Pascal

> Вообще немножко поскрипел мозгами и подумал, а не мог ли это быть gw-бейсик? :-)

неа, он не компилятор, вернее, если правильно помню, он таки преобразовывал программу в какой-то байт-код, но исполнимых файлов не выдавал.

Если уж о бейсиках, то, кажется TurboBasic (ага, был такой, к счастью быстро помер), делал именно так.

parent From VM (unverified) Tue Aug 13 12:10:23 2024 UTC pencil

Re: Turbo Pascal

Лицензии Turbo Pascal стоили в диапазоне $40-70.

$49.95

Сейчас без регистрации и SMS с официального сайта Embarcadero можно скачать 3 официальных музейных дистрибутива TP для энтузиастов, опубликованные ещё в рамках Borland Antique Software Museum. Если не ошибаюсь, это та самая 5.5, 1.0 и какая-то 3.x

tp55.zip
tp302.zip
turbo

Турбо Си и c++ впридачу Turbo C Turbo C++

Ссылки с регистрацией (не знаю, работают ли ещё или уже нет) https://cc.embarcadero.com/prodcat.aspx?prodid=7&catid=14

parent From Kakapo (unverified) Tue Aug 6 13:57:10 2024 UTC pencil

Gnu Octave

А с каких это пор Gnu Octave, предназначенное сугубо для расчётов/мат моделирования, стали ставить на одну полку с пытончегом? Да, что там есть свои приколы, но это именно Domain Specific Language, который никто никогда за универсальный язык выдавать и не пытался.

parent From Andrey V. Stolyarov profile Tue Aug 6 14:32:59 2024 UTC pencil

userpic

Re: Gnu Octave

DSL — это хорошо и правильно, в том смысле что у меня против специфичного языка могут возникнуть возражения только в случае, если он отрастит себе библиотечную инфраструктуру, и никак не раньше.

Но в контексте коммента, на который вы отвечаете, это, как ни странно, не так важно. Важно ровно одно: непрограммисты программировать не могут. Ни на чём и никогда. Это известно со времён Кобола и раз за разом подтверждается всякими автокадами, 1С-ками и прочим ожиревшим софтом, содержащим в себе DSL. Чтобы программировать, нужен программист, и если программировать предлагается под 1С, бухгалтер этого делать всё равно не будет, просто появится отдельная сущность "1С-программист".

Попытки устроить какое-то там "программирование для непрограммистов" — это в лучшем случае самообман, когда никто ничего не понимает, но препод этого предпочитает не замечать и всем всё в итоге ставит; а в худшем случае — это получается вредительство, порча, пардон за цинизм, человеческого материала.

parent From Artem (unverified) Tue Aug 6 14:30:03 2024 UTC pencil

Re: Re: Re: Data Science

> решать простейшие задачи, и студенты не всегда понимают, что такое текущий каталог, переменная среды, не знают командной строки и т.п.

Звучит примерно как учить управлению самолётом в воздухе, но не учить взлетать и садиться, а так же пользоваться парашютом. Да и само управление самолётом свести к автопилоту.

parent From Andrey V. Stolyarov profile Tue Aug 6 14:42:02 2024 UTC pencil

userpic

Re: Data Science

Знаете, что тут самое страшное? Что "современные" (блядь) самолёты от компании Airbus реально можно поднять в воздух, протащить по маршруту и заставить благополучно сесть, не умея пилотировать самолёт, не касаясь ни сайдстика, ни РУДов, ни (упаси ктулху) педалей, педали там вообще трогать не рекомендуется, хотя они и есть. Естественно, если хоть что-то где-то пойдёт не так, финал будет немного предсказуем, но в стерильных погодных условиях и при полностью работающем оборудовании это возможно.

Нет, пилотов, конечно, учат летать. Больше того, многие пилоты айрбасов в свободное от работы время крутят всякий пилотаж на лёгкой мелочёвке, чтобы не забыть, кто они по профессии и в чём эта профессия заключается. Некоторые стараются взлетать и садиться вручную, чтоб не потерять квалификацию — это если правила авиакомпании не запрещают (а во многих компаниях так или иначе подобные запреты просачиваются).

Не знаю кто как, а я стараюсь на айрбасах не летать.

parent From Parthen (unverified) Tue Aug 6 15:49:33 2024 UTC pencil

Re: Re: Data Science

Уже представляю курсы от AirBusFactory.

  • стань пилотом за 2 месяца!
  • управляй своей первой авиеткой уже через 3 дня!
  • никакого изучения нудных талмудов и устаревших интерфейсов! Мы учим новичков сразу общению с автопилотом.

Ну и автопилот естественно голосовой, написан на питоне, работает под Windows XP.

>реально можно поднять в воздух, протащить по маршруту и заставить благополучно сесть, не умея пилотировать самолёт

А так не на всех? Были же случаи, когда стюардессы под командованием диспетчера самолет успешно сажали. (Да и просто подняться в воздух и лететь по прямой не то чтобы сложная задача)

parent From Andrey V. Stolyarov profile Tue Aug 6 16:45:44 2024 UTC pencil

userpic

Re: Data Science

> автопилот естественно голосовой, написан на питоне, работает под Windows XP

Ни к селу ни к городу вспомнилось, что "интерфейс управления" кораблём Dragon Crew от Илона свет Маска мало того, что состоит из двух больших тачскринов — оно ещё и написано на электроне.

Управление космическим кораблём. На электроне. Прости, Юра, мы (в данном случае чел-овечество целиком) всё просрали.

> А так не на всех?

Боинг вроде взлетать сам не умеет. И вообще там штурвал, а не сайдстик, т.е. боинги предполагают управление человеком, тогда как в айрбасах парадигма другая — там управляет робот, а человек ему может немножко помешать.

parent From merino (unverified) Tue Aug 6 16:28:40 2024 UTC pencil

Re: Re: Data Science

Ввиду последних событий, на боингах тоже летать боязно. Кажется пора пересаживаться на поезда :)

parent From Andrey V. Stolyarov profile Tue Aug 6 16:39:21 2024 UTC pencil

userpic

Re: Data Science

Боинг хотя бы управляется людьми.

parent From Artem (unverified) Mon Aug 5 15:42:03 2024 UTC pencil

Re: Re: Re: Data Science

Помнится, я этим песням про идеальность питона для новичков в программировании даже поверил. Так вот, брехня это, что он позволяет думать о задаче, а не о синтаксисе. Сосредоточиться на задаче позволяют библиотеки, а не язык. А запариваться над синтаксическими конструкциями перестаёшь тогда, когда овладеваешь ими, и тут питон ничем не лучше C.

parent From Andrey V. Stolyarov profile Mon Aug 5 17:39:45 2024 UTC pencil

userpic

причина vs. повод

Как-то в конце девяностых мы (уже не помню точно, с кем) обсуждали, не кинуть ли оптический кабель с одной крыши на другую. На что один из участников обсуждения сказал, что на него обязательно ворона сядет. Остальные, разумеется, возразили, что какая нафиг ворона, никакая ворона оптический кабель не порвёт, особенно если его кидать, как положено, с несущим стальным тросиком. На что чел ухмыльнулся и напомнил, что бывает причина, а бывает повод, так что — ну, это просто будет очень большая и тяжёлая ворона.

Sapienti sat.

parent From Parthen (unverified) Mon Aug 5 18:56:26 2024 UTC pencil

Сократ мне друг, но истина дороже

Но Питон же и славится кучей библиотек на каждый чих? И в особенности, "простой" установкой библиотек на комп (на виндовый, на юниксах установить библиотеку на си и на питоне - одинаковой сложности задача)

Причем у питонистов есть глобальный репозиторий всех этих пакетов (PyPI), и вот в нем 560 084 проекта. Полмиллиона.

Проблема у Питона явно не в отсутствии библиотек

parent From Andrey V. Stolyarov profile Mon Aug 5 19:14:32 2024 UTC pencil

userpic

Re: Сократ мне друг, но истина дороже

Вот уж точно не в отсутствии. Проблема питона скорее в их наличии.

parent From Artem (unverified) Tue Aug 6 10:52:11 2024 UTC pencil

Re: Сократ мне друг, но истина дороже

> на юниксах установить библиотеку на си и на питоне - одинаковой сложности задача

Вас обманули, pip работает одинаково и на винде, и на маке, и на линухе, и входит в стандартную поставку питона во всех популярных дистрах. Насчёт BSD не знаю, ставить ради такой чепухи лень, а юзеров её вживую не встречал.

parent From Andrey V. Stolyarov profile Tue Aug 6 11:18:17 2024 UTC pencil

userpic

Re: Сократ мне друг, но истина дороже

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