Архив гостевой книги с 06.11.2020 г. по 07.04.2021 г.

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

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

[Ещё более старые комментарии можно найти на предшествующей странице архива >>>]

Вирт Алгоритмы и структуры данных

Здравствуйте, Андрей Викторович
В книге вы упомянули книгу Вирта "Алгоритмы и структуры данных" Невский диалект. Я нигде в интернете и магазинах эту книгу не нашел, нашел только вроде бы старое издание этой книги Вирта года 1989. Вместо книги Вирта подходит ли книга авторов Ахо, Хопркрофт, Уллман "Алгоритмы и структуры данных" 2003 года?

admin аватар

Нет, не

Нет, не подходит. Точнее, для специалистов она подходит, но уж точно не для начинающих.

Зато вот это вот якобы "старое" издание 1989 года — прекрасно подойдёт.

А книги Д. Кнута

А книги Д. Кнута подходят для начинающих?

admin аватар

Кнут? Для

Кнут? Для начинающих? По-поему, лучше тогда уж сразу кирпичом по башке, гуманнее как-то, что ли...

Пользуясь

Пользуясь случаем, спрошу: в библиотеке взял издание 2010 года (в котором оберон), это издание не сильно хуже первого издания?

admin аватар

Не знаю, не

Не знаю, не видел этого издания.

Вообще, конечно, Оберон — это чудовищно, и по мне так с момента создания Оберона уже не следует Вирта воспринимать всерьёз, ибо он явно сбрендил.

Измерение кол-ва информации

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

Можете подсказать, что имелось в виду на с. 202 в конце второго абзаца 1'го тома 2'го издания под количество информации совсем не то же самое, что количество ячеек в памяти компьютера?

И к примеру я пошел в магазин за флеш-брелком объемом, например, 8 Гб. Вопрос таков: продавец под гигабайтом понимает 2 в 30'й степени байт или 10 в 9'й степени байт? То есть указывает ли продавец и производитель действительный объем накопителя?

Продавцы

Хитропопые продавцы накопителей в подавляющем большинстве под гигабайтом понимают именно 10^9 степени байт. Что выражается в том, что компьютер всегда видит меньший размер накопителя (компьютер считает размеры кратно 2^10), чем написано у накопителя на этикетке.

admin аватар

Самое

Самое интересное, что почему-то размеры флешек — количество этих самых гигабайт — всегда степень двойки, вот ни разу не видел я в продаже, скажем, флешки на 10 GB или там на 45. А сами "гигабайты" при этом оказываются десятичными.

Не, ну вот не козлы?

admin аватар

> что имелось в

> что имелось в виду на с. 202

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

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

> продавец под гигабайтом понимает

Зависит от того, насколько он козёл. Что я тут ещё могу сказать?

Вопрос о рекурсии.

Андрей Викторович, здравствуйте!
Прежде всего, позвольте поблагодарить Вас за Ваш бесценный труд, я недавно начал изучать программирование по Вашему учебнику и нахожусь в восторге от того, насколько подробно он сделан.
Недавно я перечитывал главу с рекурсией в Паскале (§2.3.7) и меня мучает довольно глупый вопрос, связанный с задачей вывода на печать 7583 (страница 303 нового издания).
Почему печатает в обратном порядке - абсолютно понятно, но почему, когда меняется местами печать и подпрограмма, печать производится в прямом порядке - не совсем понятно. Есть предположение, что в случае печати в прямом порядке, writeln (n mod 10), выполняется только после того как n = 0, а числа, заносятся в некоторое подобие стека, так ли это? Или же происходит некоторое "отложенное исполнение". Может быть сможете прояснить этот момент? Был бы Вам очень признателен.

admin аватар

Какое ещё

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

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

Ну вот вызвали мы, как в примере из книжки, PrintDigitsOfNumber(7583). То есть в ней n=7583. Это больше нуля, так что тело if выполняется, а из него происходит вызов PrintDigitsOfNumber(758). Обратите внимание, что до write дело пока не дошло, сначала этот вызов (который PrintDigitsOfNumber(758)) должен завершиться. В нём внутри n=758, это тоже больше нуля, так что вызывается теперь ещё и PrintDigitsOfNumber(75), из неё — PrintDigitsOfNumber(7), а из неё — PrintDigitsOfNumber(0); в этой последней ипостаси n=0, так что тело if не выполняется, управление возвращается вызывающему. В роли вызывающего у нас тот экземпляр PrintDigitsOfNumber, в котором n=7, рекурсивный вызов только что вернул управление, так что остался оператор печати, и он печатает 7. После этого управление возвращается вызвавшему, то есть в этот раз тому экземпляру, в котором n=75, и печатается 5. После этого управление опять возвращается, и в этот раз тому вызову, где n=758, там печатается 8. Ну и после этого управление вновь получает "верхний" экземпляр, в нём n=7583, печатается 3.

Понять бы ещё, что конкретно вы здесь не поняли.

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

Большое

Большое спасибо!
Кажется,  я так и понял, но поскольку программирование для меня вещь совсем новая, то артикулировать это внятно для себя я не смог, да и не знал, как проверить догадку. Решил не мудрствовать лукаво и обратиться к напрямую к мэтру.
Еще раз спасибо, хорошего воскресенья!

Наткнулся

Наткнулся только что в интернетах на прекрасное. Хочу поделиться с присутствующими, если нет возражений.


Код сортировки пузырьковой
Он опознать не смог с листа.
Ему давали в детстве мало
Кнута

Добрый день,

Добрый день, Андрей Викторович!
Как вы считаете, девушка может стать хорошим программистом? Часто говорят, что это профессия не для женщин, у женщин не развито аналитическое мышление от природы и гуманитарные профессии подходят им больше.

admin аватар

А ещё говорят,

А ещё говорят, например, что кур доЯт.

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

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

Parthen аватар

Как выбрать ВУЗ

Дано: парень, который хочет поступить на программиста, прочитавший 1 том (ну или все, я вот пока что на первом) вашей книги. Живет он не в Москве/Питере, а в небольшом городке. С математикой дружит.
Требуется выбрать ВУЗ. Вопрос как?
Я помню, вы упомянули, что в ВУЗ нужно идти такой, где будет сильное преподавание математики.
А какие должны быть еще критерии? На что вообще смотреть при выборе ВУЗа, кроме учебного плана и аккредитации?

admin аватар

Давайте я

Давайте я отвечу на этот вопрос честно: понятия не имею.

Parthen аватар

Это баг или фича?

Запускаем программу char2num.pas:

parthen@devuan:~/FirstProg/progintro_e2_examples$ ./char2num 
Please type the first number: 



/
Unexpected ``/'' in pos: 5
Please type the first number: 

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

admin аватар

Так написана

Так написана процедура ReadLongint. Если вы посмотрите на её код, то убедитесь, что она не делает различий между пробелом и символом перевода строки (который #10) — обрабатывает их во всех случаях абсолютно одинаково. Очевидно, вы тут ввели четыре перевода строки и потом этот свой "/", так что всё вроде правильно.

Схемы, графики и диаграммы

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

Вобще, когда появилась необходимость сделать схему для презентации, я использовал пакет tikz для LaTeX. Прикольно, что всю рутину по идеальному размещению объектов графика выполняет LaTeX, а не пользователь.

Graphviz

admin аватар

Кстати да, есть

Кстати да, есть такое. Возможно, подойдёт.

admin аватар

Тут я, пожалуй,

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

buq аватар

Действительо

Действительно. Странно, что несмотря на корректные "USE FLAGS",
с portage никак не получается установить минимальный Gtk.
Надо было сразу отдельные исходники скачать и собрать с них.
Но все равно, как-то чересчур жирно получается.
Про w3m знал, а вот Emacs с Athena нет. Установил, браузеры в Emacs ну так себе браузеры,
хотя по мне лучше чем многие другие, например тот самый w3m.
Похоже я все-таки вернусь к Dillo.
Все равно, спасибо за информацию.

buq аватар

Веб-браузер

Всем доброго времени суток.
Можете порекомендовать какой-нибудь функциональный веб-браузер который не использовал бы Qt или вообще абсурдную Gtk+?(минимальная установка Gtk+ БЕЗ БРАУЗЕРА = Vala, Rust, harfbuzz, dbus + 27 других странных пакетов).
Долгое время пользовался Dillo, недавно собрал Links с поддержкой Xorg для пробы. У обоих браузеров есть проблемы с отображением картинок(точнее, браузеры-то отличные, это так называемые "веб-разработчики" плохие).
Заранее спасибо.

П.С. жабаскрипт не надо.

Я вот в какой-то

Я вот в какой-то момент набрёл на netsurf-browser. Он самобытен, т.е. не очередная надстройка над известным движком. Он пишется похоже программистами, а не маркетологами/продажниками/дизайнерами и проч., и корректно отрабатывает HTML + некоторый CSS. Минималистичен и быстр, но разработка идёт очень медленно. И хотя он вполне сносно открывает чисто HTML'ые сайты без излишков CSS2+, один фиг допилить его - был бы прям отличный инструмент.

Я свои чисто HTML сайты пишу, но использую всякие flex'ы из CSS, они шибко мощно и просто дают возможность организовать элементы на странице. И в libcss этого NetSurf'а уже есть поддержка этих свойств, но в самом браузере в layout подсистему ещё не добавили поддержку. Говорят нужен энтузиаст, который возьмётся за это. А пока типа текущие разработчики заняты другим.

Так вот там скорость 2-3 коммита в неделю. Человеко-часов бы им, и чтоб не шли на компромисы в плане архитектуры.

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

А во-вторых, к Андрею Викторовичу, ну и другим тоже хочу такой вопрос задать: Как вы относитесь к сайту (подразумеваем что его содержимое вам хоть чуть-чуть интересно),
- В котором нет JS.
- Всё на HTML строго следуя стандартам. Т.е. валидатор на w3c не выдаст ни одной ошибки
- Есть CSS'ы до CSS3. Т.е. всякие flex'ы, media-query и пр.
- Нет рекламы
- Нет трекеров

Идеологически насколько допустим для любого из отвечающих подобный web ресурс?

CSS3

- Есть CSS'ы до CSS3. Т.е. всякие flex'ы, media-query и пр.

CSS2 и выше предлагает совершенно ненужные "возможности". CSS1 вполне достаточно. Ну, если речь, конечно, о нормальном сайте, а не о поделии альтернативно-одарённого веб-"дизайнера".
CSS3 - это вообще не про стили, а про костыли, призванные как-то унифицировать процесс вёрстки под экраны с разными соотношениями сторон. Это явно неправильный подход к вёрстке - создание разных её вариантов для экранов с разным соотношением сторон (при этом CSS3 предлагает "решить" данную проблему (искусственно созданную) путём "подстройки вёрстки находу", т.е. получив информацию о разрешении экрана пользователя и соотношения сторон экрана). Оптимизацией отображения должен заниматься браузер, должна быть гибкая система настроек отображения страницы (при этом все настройки отображения (в соответствии с характеристиками экрана) выполняются пользователем с помощью настроек, причём так, как нужно ему, а не так, как решил за него верстальщик сайта). Вместо этого, изо всех нынешних попсовых браузеров практически все настройки отображения выдраны с корнем. Используется тупейший подход, при котором пользователю прилетают CSSы, которые по своей сути уже никакие не CSSы, а ЯП. Т.е. пользователю можно спокойно заслать тьюринг-полный алгоритм. ИБ? Не, не слышали.

admin аватар

Во-первых, если

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

HTML5 недопустим категорически, тут меня никто ни в чём не убедит. Как, впрочем, недопустимы любые стандарты, принятые комитетами.

И нет, я не сочту CSS3 допустимым по тем же самым причинам, по которым не считаю допустимым JS. Это уже не appearance, это behavior.

Так вот же у них

Так вот же у них на сайте, например, спецификация HMTL 4.01: https://www.w3.org/TR/html401/, а вот спецификация CSS1: https://www.w3.org/TR/REC-CSS1/.

Или я вас не понял?

admin аватар

Ага, а теперь

Ага, а теперь покажите, как до этих спецификаций добраться с главной страницы.

Но вообще спасибо, я url'ов от них не помнил — так показалось, что их там уже вообще нет.

Попбробуйте w3m.

Попбробуйте w3m. Его можно собрать с поддержкой графики, он тогда картинки показывает прямо в эмуляторе терминала.

Но, вообще говоря, дело гиблое. Dillo, насколько я знаю, единственный графический веб-браузер, собранный не на GTK и/или Qt.

А, вот ещё. Можно собрать графический (т.е. не консольный) Emacs на Athena-widgets или на чистых иксах (соответственно, без GTK в обоих случаях). В нём есть браузеры (eww, например) и картинки они показывают.

Теперь насчёт GTK. У него (даже у третьего) нет в зависимостях ни Vala, ни Rust. Причём ни в рантайм зависимостях, ни в сборочных. Vala, Rust и прочая фигня потребуется только если вы будете собирать из исходников не только сам GTK, но и всю цепочку его зависимостей.

Что касается dbus, то GTK (третий, второй и так без неё работает) легко патчится для избавления от этой зависимости. Если хотите, могу поделиться патчем.

У меня зависимости для сборки и работы gtk+3 получаются такие:

$ cd /usr/ports/x11/gtk+3 && make {lib,build,run,test}-depends-list
This port requires "devel/atk devel/pango graphics/gdk-pixbuf2" for lib.
This port requires "STEM->=0.41.1p0:textproc/intltool archivers/xz devel/dwz devel/gmake devel/gobject-introspection textproc/docbook-xsl" for build.
This port requires "devel/desktop-file-utils x11/gnome/adwaita-icon-theme x11/gtk+3,-guic x11/hicolor-icon-theme" for run.

Можете,

Можете, пожалуйства, поделиться патчем?

Вот,

Вот, держите:
http://0x0.st/-c2V.patch

Патч очень простой. Последние несколько лет все очередные выходящие версии gtk-3 патчу им -- пока всё работает.

dillo

Обычно я использую firefox-esr, но тут решил испытать dillo. При листании web-browser как будто притормаживает(не плавно как в firefox)... это так должно быть?

листание в dillo

это так должно быть?

Как там оно должно я не знаю. Могу только проверить, как у меня.

Открыл в dillo эту страницу и проверил варианты, которые пришли в голову (поскольку что именно подразумевается под листанием вы не уточнили):

  • PgUp/PgDown -- никакого подтормаживания
  • стрелка вверх/вниз -- никакого подтормаживания
  • колёсико мыши -- никакого подтормаживания
  • ухватить мышью ползунок на скроллбаре и тащить -- да, есть довольно заметное на глаз подтормаживание

не плавно как в firefox

А в фоксе я, кстати, дурацкий дёрганый "smooth scrolling" всегда отключаю, если что. Раздражает.

Parthen аватар

Я форками

Я форками огнелиса пользуюсь, мне к сожалению надо сайты с кривой версткой и JS смотреть.
А вам могу посоветовать статью - https://digdeeper.neocities.org/ghost/browsers_rus.html#webbrowser
Этот сайт в гостевой уже обсуждали, но вдруг вы не видели :)

Добрый день!

Добрый день! Подскажите, как много осталось комплектов книг и есть ли прогноз как быстро все раскупят? Спасибо, Андрей Викторович

admin аватар

Осталось чуть

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

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

Дополнительный

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

Верх маразма

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

Здесь немного о другом.
Еще одна причина, причислять Debian к категории "маргинальных" дистрибутивов.

В Debian инициировано голосование.
https://www.debian.org/vote/2021/vote_002

Обратите внимание на формулировку:
"General Resolution: Statement regarding Richard Stallman's readmission to the FSF board"

"Общее голосование по поддержке петиции против Столлмана"

То есть, постфактум отсутствуют пункты "против" и "воздержался"
Проголосовал = согласен.

P.S.
Если внедрение s-d можно как-то списать, скажем, на стойкое заблуждение "если все используют, значит эффективно" то инициирование подобных процедур, на заблуждение списать уже в принципе невозможно.

В Debian Целиком и полностью дискредитированное (читать "протухшее") административное руководство

Parthen аватар

Тем временем к

Тем временем к бойкоту Столмана присоединились в том числе:
Mozilla, Tor, FreeDOS, GNOME Foundation, X.org Foundation, HardenedBSD Foundation, MidnightBSD, Open Life Science, Open Source Diversity, Document Foundation

admin аватар

Я бы сказал,

Я бы сказал, полезны здесь разве что Tor и X.org. Но вообще да, напоминает нашествие мозговых слизней.

Parthen аватар

Компания Red hat

Компания Red hat прекращает финансирование фонда свободного ПО, до тех пор пока Столмана не отстранят.
Голосование сверху придумал Стив Лангашек - представитель Canonical в Debian. Так что это не сами дебиановцы сделали.
К Red hat кстати присоединились Creative Commons, GNU Radio, OBS project и SUSE.

Не соглашусь

Да, Вы правы: голосование было инициировано не самим проектом Debian.
Но ведь, инициативу Стива Лангашека, представителя Canonical, в проекте Debian поддержали.
Так что утверждение "Debian'овцы не сами придумали" никак не ослабляет вышесказанный тезис.

Если среднестатистическому психически адекватному человеку (колленктиву) инициатива (в данном случае - откровенно бредовая) не понраву - эту инициативу, будь-то человек или коллектив - не поддерживает.

Debian маразм поддержал.
Debian - "всё"

admin аватар

На самом деле

На самом деле тут не так всё просто. Сейчас выступить открыто против творящегося идеологического маразма — почти наверняка означает составить компанию тем же Столлману и Джоан Роулинг в роли жертвы массовой травли.

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

А зачем Вы туда

А зачем Вы туда вступали в конце 1980-х?!

admin аватар

Куда, в

Куда, в комсомол? Я не вступал. И лично в комсомольских собраниях не участвовал. Но эпоху — застал, и как всё это выглядело — помню.

А просто не

А просто не подписывать никаких писем — не вариант?

admin аватар

Разумеется, не

Разумеется, не вариант. Активисты очередной идеологии — мрази крайне агрессивные, они не станут писать объявление вроде "я тут собираю подписи" и ждать, пока кто-то откликнется. Вместо этого они, естественно, к каждому потенциальному подписанту пристанут лично. Отказаться — значит выступить против. Далее см. выше.

То есть,

То есть, организации Debian, SUSE, Creative Commons и иже с ними, проводят политику «пассивной поддержки» травли с целью просто не попасть «под раздачу» и возможно, сохранить финансирование, Я правильно понимаю?
Организации и проекты, все как один гласящие об «открытости технологий», по итогу, единым фронтом выступают против одного человека (пусть странноватого и одиозного, но имеющего право на точку зрения) и пытаются заткнуть рот не только ему, но и всем, кто с «травлей» не согласен.

Это же самая натуральная «моральная проституция», разве нет?
И если в сообществе открытого и свободного программного обеспечения, проявляются ростки «потери цивилизованности», почему нельзя быть жёстким?

P.S.
Прошу прощения за трату личного времени.
Благодарю за обсуждение важного для Меня вопроса.

admin аватар

Нет, вы всё-таки

Нет, вы всё-таки не понимаете. Не застали, видать, тех времён, когда в каждой организации был комитет КПСС, а в нём — практически штатная единица "зампред по идеологии".

Какое там к чёрту сохранение финансирования, какое там "не попасть под раздачу", да там сейчас слово против сказать попросту опасно. Убить, может, и не убьют, и морду, скорее всего, не набьют (хотя тут уже возможны варианты), но вот сделать так, чтобы человек никогда не смог устроиться ни на какую работу сложнее кассира в макдональдсе или заправщика на АЗС — это уже происходит.

Спасибо за содержательный диалог

Хм...
Вполне классический сценарий Молчать и работать или высказать свою мысль и потерять работу. (и средства к дальнейшему существованию)

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

Я вполне понимаю мотив подобного поведения.
Спасибо еще раз.
Было очень интересно поговорить

По поводу того,

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

admin аватар

Я не утверждаю,

Я не утверждаю, что это хорошо. Я утверждаю совершенно иное: невозможно требовать героизма поголовно от всех. В конце концов, в СССР на чуть ли не 200 миллионов народу было хорошо если несколько сотен диссидентов, остальных что, всем скопом запишем в моральные уроды? Не, ну хорошо, были и такие, кто верил в коммунизм, этих вообще следует рассматривать как жертв информационного террора и претензий им предъявлять не за что; может даже большинство было таких. Но уж точно не все.

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

Я ведь говорил

Я ведь говорил совсем не об этом. )))
"Героизма поголовно от всех" - Я не требовал. Это раз.
"Идти на самопожертвование" - Я никого не заставлял. Это два.
И в "Моральные уроды" - Я никого не записывал. Это три.

Ни в одном из своих писем, Я не употреблял подобные формулировки.

Мой пост был о маразме и лицемерии и возмущение на эту тему.
Если люди и организации боятся потерять работу/жизнь, то пусть говорят об этом честно и ппрямолинейно.

Или "прямолинейность" как черта характера - тоже теперь относится к категории героизма?

admin аватар

Вот тяжело

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

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

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

Мозги свои поищите, вы их явно где-то потеряли, а без мозга жить тяжело.

Боже упаси,

Боже упаси, Андрей Викторович: я не склонен кого-либо записывать в "моральные уроды"... Разумеется каждый случай следует рассматривать отдельно.

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

admin аватар

С Red Hat лично мне

С Red Hat лично мне уже лет десять как всё ясно. Теперь всё ясно также и с SUSE. Ну и что Creative Commons как-то слишком токсично выглядит — это я тоже давно подозревал.

Parthen аватар

Меня тут OBS Project

Меня тут OBS Project удивил. Я их программу советовал парочке знакомых стримеров, которые задумывались о переходе на Линукс.
Теперь вот не буду.

Теперь вот не

Теперь вот не буду.

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

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

Parthen аватар

Вот если бы они

Вот если бы они поддерживали/бойкотировали кого-то там в политике, слова бы не сказал.
Но они творят какую-то фигню, связанную с Линуксом. Я как-то сомневаюсь, что они не сотворят в будущем какую мерзость.

Вся эта история

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

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

admin аватар

Столлман,

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

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

Архитектура компьютера

Здравствуйте! Начал читать главу об устройстве компьютера, вот хочется более подробно изучить эту тему; подойдет для начинающего книга "Архитектура компьютера" - Э. Таненбаум?

Влезу

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

Parthen аватар

О, любил эту

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

admin аватар

"То же самое"

"То же самое" может быть только если взять и скопировать. Нет, конечно, не только не "то же самое", но даже и не похоже.

admin аватар

Честно говоря,

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

Монтирование устройств

Добрый вечер, Андрей Викторович. Можно ли примонтировать устройство, не повышая свои полномочия до root-пользователя?

Дело в том что мне нужно было примонтировать файловую систему ридера (его система распознает как usb-flash) и переименовать в нем некоторые файлы и скинуть на него файлы с ноутбука. Я воспользовался примером по монтированию usb-flash из книги Уильяма Шоттса (http://linuxcommand.org/tlcl.php). Но там во всех примерах как раз для монтирования устройства права повышаются, а в первом томе вашей книги на с. 80 представлен скрипт, в котором команды sudo нет.

Получается так, что я примонтировав устройство командой sudo, могу только читать и исполнять файлы в нем, т.к. права на изменение у меня нет. Как я понял, владельцем примонтированного устройства становится root.

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

admin аватар

Для начала: всё,

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

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

Ну и третье. Есть такой файл /etc/fstab. Там можно прописать, какие устройства монтируются на какие директории (mount points) и с какими опциями. Одна из опций -- user -- как раз позволяет монтировать данную файловую систему любому пользователю, у которого достаточно полномочий, чтобы просто запустить команду mount (обычно это все пользователи системы, но можно, например, создать для этого отдельную группу).

У меня, например, в fstab есть вот такое:

/dev/sdc        /mnt/sdc      auto    rw,user,noauto  0       0
/dev/sdc1       /mnt/sdc1     auto    rw,user,noauto  0       0
/dev/sdd        /mnt/sdd      auto    rw,user,noauto  0       0
/dev/sdd1       /mnt/sdd1     auto    rw,user,noauto  0       0
/dev/sde        /mnt/sde      auto    rw,user,noauto  0       0
/dev/sde1       /mnt/sde1     auto    rw,user,noauto  0       0
/dev/sdf        /mnt/sdf      auto    rw,user,noauto  0       0
/dev/sdf1       /mnt/sdf1     auto    rw,user,noauto  0       0

Не получилось или UUID

Я попробовал воспользоваться вашим примером, но после команды /mnt/sda1 получаю ответ об отсутствии такой записи с точкой монтирования, хотя она в fstab есть. Как думаете, Андрей Викторович, это может быть связано с тем, что в fstab вместо обычного имени устройства в каталоге /dev используется UUID. И что вы о нем думаете: полезно или мусор?

p.s. Вы, например, как я заметил, используете обычное имя устройства.

admin аватар

Вы директорию

Вы директорию /mnt/sda1 создать не забыли?

Ну а UUID'ы — это даже не мусор, это диверсия. У вас с ними, впрочем, всё равно ничего не выйдет, UUID назначается файловой системе при её создании, т.е. при форматировании флешки у неё UUID меняется, и у каждой флешки он вдобавок свой (при этом живёт до первого форматирования, дальше меняется).

Вроде недавно эту дрянь обсуждали:

http://www.stolyarov.info/guestbook/archive/3#comment-2579

Получилось

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

Пользуясь

Пользуясь случаем, хотелось бы узнать, как гуёвые программы могут монтировать мои устройства, вроде бы как, без прав на это. А чтобы мне это сделать самому (ручками), требуется редактировать fstab (через рут), или просто примонтировать (тоже через рут). Что это за магия? Извиняюсь за, возможно, глупый вопрос и оффтоп, я новичок

admin аватар

Я думаю, там

Я думаю, там где-то лежит suid'ный бинарник специально для этого. Дайте в корневой директории команду

find -perm -4000

— много интересного узнаете о своей системе.

Parthen аватар

А что эта

А что эта команда делает? Я ее запустил, мне ничего не выдалось.

admin аватар

Команда ищет

Команда ищет suid'ные бинари. Запускать надо в правами root'а и в корне.

Может тогда

Может тогда сразу такой вариант:

find / -xdev -perm -4000

admin аватар

Можно и так, но

Можно и так, но в любом случае надо с правами root'а.

Андрей

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

Если очень

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

multiply :: proc(x: int, y: int) -> int {
    return x * y;
}

Соответственно, можно сделать вывод о крайне низкой компетентности авторов (аргумент, что они авторы ЯП, не принимается как оправдательный - с появлением LLVM написать компилятор своего языка стало можно, прыгая попой по клавиатуре).
А синтаксис тут совершенно не при чем, это просто выразительное средство. Мне вот, например, Си кажется как раз "проще", он не такой многословный, как Паскаль, где громоздкие begin и end постоянно отвлекают от полезного содержимого при чтении исходника, но это дело привычки, только и всего.

Нчадеюсь я правильно понял

Таааак, я как новичок правильно понял про побочный эффект? По идее функция, например, должна возвращать значение. А в Cи получается, что можно использовать функцию для того, чтобы не вернуть значение, а использовать тело функции для того, чтобы получить изменения подобные тем, которые предоставляет процедура в Паскале, например запись в глобальную переменную. То есть получается Сишнойсть головы это как поставленное на поток использование возможностей не по назначению. Как например хорошими зубами открывать бутылки. Вроде эффективно, но изначально не для этого были они предназначены. Я просто вклинившийся прохожий, если что.

admin аватар

Не совсем. Это в

Не совсем.

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

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

То есть тут речь не о том, что "можно использовать возможности не по назначению". Речь именно о побочных эффектах в строго терминологическом смысле. Когда мы пишем на Паскале, можно просто сказать, что побочный эффект — штука нехорошая, программу запутывает, ошибки провоцирует. В терминах Си так не скажешь, там просто нет ничего другого, одни побочные эффекты.

Почему тогда не

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

admin аватар

Это в C++-то

Это в C++-то можно без побочных эффектов? Смешно, да.

Кстати, похоже, вы сайтом ошиблись. Вам не сюда.

Тогда

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

Благодарю за ответ. Хорошо, что тема появилась тут. Когда читал предисловие намного хуже понял чем сейчас эту тему.

admin аватар

Ещё раз, и

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

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

Parthen аватар

Кстати об этом

Может кто-нибудь обяснить вот прям для 6-леток, что такое "побочный эффект"? Я вроде и перечитал у Столярова это несколько раз, и в Википедии посмотрел, а один фиг не могу понять.
Или понимание только с практикой приходит?

admin аватар

Вы всерьёз

Вы всерьёз полагаете, что можно что-то прибавить к тому, что вы уже прочитали?

Ну вот вычисляет ваша программа арифметическое выражение, какое-нибудь там (a+b)*c, в переменной a у нас 10, в переменной b, скажем, 15, в переменной c, чтоб долго не считать, пусть будет 4. Получается вполне законное 100. Так вот, если кроме того, что "получилось 100", в ходе вычисления выражения произошло что-то ещё, и это "что-то ещё" может быть объективно обнаружено — то это побочный эффект. Скажем, была какая-то переменная z, в ней было 13, а стало -1. Или, скажем, программа что-то напечатала. Или в файл записала. Или ещё что-то. Хотя вроде бы не делала ничего, кроме вычисления выражения.

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

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

Сишность

До этого, когда не знал о ваших книгах, изучал с++. Вроде дошел до функций, но забыл как там обстоят дела; получается все, не пойму, что значит сишность?

admin аватар

Что значит

Что значит "дошёл до функций", вы на этом писали? Много? Или просто книжку прочитали и "вроде бы поняли"? Если второе, то можете особенно не напрягаться, изучать c++ вы ещё не начинали.

Parthen аватар

Вот это мне и

Вот это мне и надо было. Объяснили просто и популярно, спасибо!
>Извините, я вынужден это сказать прямо
А за что извините? Вроде ничего обидного :)

admin аватар

Да ну не поймёт

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

Про begin и end — у меня был в жизни интересный период, когда в работе было два проекта, причём один на Паскале (Borland Pascal 7.0, что характерно), а второй на C++ (и, что характерно, Borland C++ 4.5 под форточки — да, когда-то я писал под форточки). После первой недели в таком режиме у меня переключение мозга с языка на язык стало происходить без сколь бы то ни было заметных усилий, просто вижу текст на Паскале — пишу на Паскале, вижу текст на плюсиках — пишу на плюсиках, проблем вообще не было.

Ну да, мозг --

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

Думаю, ни один

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

Советчиков, которые с уверенностью утверждают о том, что можно запросто начать изучение программирования с Си (а также с С++, с Питона...), - очень не мало, только вот того опыта преподавания программированию и (самое главное) подхода к этому делу, как у Андрея Викторовича, у них нет. Сегодня они преподают начала на Паскале, потом решили, что надо на Си, а потом решат, что С# же в тренде, и надо учить ему. Только там глубокого анализа причин, по которым надо начать изучение программированию, скажем на том же С#, нет. Ведь один из аргументов для них заключается в том, что мол нечего терять время на "мертвый" язык Паскаль, а надо сразу начать с языка, который типо используется в жизни. Ничего, что человек многое не поймет... С таким же успехом можно сказать, что нечего, в процессе обучения пилотов, тепять время на симуляторах, а сразу надо их сажать за штурвал Боинга... Ну а почему нет, если да?! Это ведь реальный самолет?

Parthen аватар

А вы не в тренде :)

>а потом решат, что С# же в тренде, и надо учить ему
Уже давно решили :)
С# считается крутым проффесиональным языком и лучшим выбором для новичка. Java его коллегой только от другой компании, Python для тех, кто не хочет полностью все знать, но хочет программировать.
Ну а те, кто пишут на С++ (или не дай бог на Си или ассемблере!) считаются фриками, прожигающими свое время.
Тут на самом деле и наша вина - сферический пользователь в вакууме, набрав в гугле: "как стать программистом" найдет только уроки на ютубе. И хоть бы один человек в ru сегменте ютуба говорил толковые вещи. А получается что те, кто делает все правильно, не любит обычно ютуб и там ничего не выставляет. И у инфоцыган абсолютная монополия.

admin аватар

Есть такое

Есть такое понятие "функциональная неграмотность". Это когда человек, формально говоря, может прочитать текст. Может его даже вслух прочитать. То есть вот взять бумагу с текстом и прочитать этот текст. Только при этом он ни черта в тексте не поймёт, хоть не читай. В ЛЮБОМ тексте. То есть формально человек вроде бы читает, но в действительности он читать не умеет, и баста.

Так вот, видеолекции и всякие эти вот видеоуроки — они для тех, кто не умеет читать.

Parthen аватар

И вот между

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

Parthen аватар

>Так вот,

>Так вот, видеолекции и всякие эти вот видеоуроки — они для тех, кто не умеет читать.
Таки да, никто этого не скрывает. Люди же сами пишут, что книгу по программированию им читать сложно, давайте нам видосики.
Для меня видео это прежде всего развлекательный формат. Включил себе ненапряжное видео и слушаешь пока уборку делаешь. Иногда в голове что-то и остается.
Ну и проблемы с текстом не всегда функциональная неграмотность -- иногда это просто отсутствие навыка чтения. Как человек, который долго не ходил, сразу не побежит.
А с чтением у людей проблемы.

admin аватар

У меня

У меня настойчивое ощущение, что людей, не умеющих читать, лучше не пускать в программирование.

Parthen аватар

Моде

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

admin аватар

К сожалению,

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

Parthen аватар

>а также с С++, с

>а также с С++, с Питона...
Вообще я вот "начинал" с С++ по совету добрых дяденек с ютуба. Ну вот представьте 7 классника, который переписывает и механически учит cin и cout. Это вот я :)
Потом меня другой дяденька на питон усадил. Ну вот знаете, это все конечно плохо, да. Но если выбирать между С++ и питон по принципу меньшее из двух зол, то питон однозначно.
Именно на нем (ну и "Песни о Паскале", но это потом) мне объяснили хотя бы что-то в программировании. Но у меня с самого начала установка была - я должен понимать абсолютно все что я делаю. Вплоть до сигнала между транзисторами процессора. Поэтому с питона я благополучно спрыгнул, каких-то побочек вроде нет. (Но вот часть о Паскале все равно читаю. Каждые 5 минут озарение: так вот оно как на самом деле работало!)

В наш век обьем

В наш век обьем информации в Интернете (и в не Интернете) по любой теме - ну очень большой. Для начинающего в программировании это может породить путаницу, что к сожалению очень часто и происходит. Но то, что может сделать начинающий, так это подвергнуть максимальной критике любую информацию. Особенно в Ютюбе. Надо смотреть на источник информации, на то, как человек обосновывает то, что он подает другим, какова глубина его обоснований. По крайней мере, я так делаю.

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

Кстати, вот те, кто трубит о том, что надо начинать с "модных","молодых" или "актуальных на рынке труда" языках типо С++ или С# и разумеется, непременно в Виндовс и обязательно в Visual Studio (ведь это - самая продвинутая среда разработки), делают еще одно не хорошее дело: они крадут у ИТ потенциальных профессионалов! Ведь не каждый может себе позволить купить новый комп, мощностей которого будет достаточно, чтоб поднять Виндовс 10 и Visual Studio. Человек посмотрит, решит, что не может себе это позволить, и забросит дело, даже не попробовав: а у него может к этому есть способности, талант...

Parthen аватар

>Вот там у меня

>Вот там у меня сразу было ощущение: НАШЕЛ!
Вот да. Точно также было. Прочитал предисловие и понял - наконец-то!
Если бы не it-борода, то может быть вообще бы не нашел.
Ну или нашел бы пару недель назад на ЛОРе.

А мне вот до сих

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

admin аватар

Тут скорее не

Тут скорее не симулятор, а какая-нибудь одномоторная Сессна — типа, ну а нахрена на таком летать, за это же денег не платят.

admin аватар

Подробный

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

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

И нет, синтаксис и это ваше "труднее понять" — тут ни при чём совершенно, вот то есть совсем.

Не понимаю необходимости в open(), read(), write()

Здравствуйте!

А не можете подсказать, зачем в книге Вы описываете функции open(), read(), write()? Их действительно лучше не заменять fopen(), fread()?

admin аватар

Если вы так и не

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

Черный юмор. Часть втроая. Петиция

https://www.opennet.ru/opennews/art.shtml?num=54816
https://rms-open-letter.github.io/

Истерический смех вызывает формулировка:
"Отставка всего состава совета директоров фонда СПО, так как члены совета усиливали влияние Столлмана в течение многих лет"

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

А это ещё один

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

admin аватар

Деятельность

Деятельность любых комитетов вредоносна. Я покамест не видел исключений из этого правила.

БЛМ головного

БЛМ головного мозга торжествует.

admin аватар

Это крайне

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

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

Parthen аватар

А это еще не всё

Линус Торвальдс не против добавления Rust в ядро. Перевод цитаты с LOR'а -
"Мне интересен проект внедрения rust в ядро. Но я считаю, что авторы этого проекта предвзяты по отношению к rust, и хотелось бы сначала посмотреть, как это обернется на практике."
Источник

admin аватар

Я очень

Я очень надеюсь, что в данном случае Линус решил не мешать идиотам самостоятельно показывать, какие они идиоты. Старый добрый принцип айкидо: не мешай противнику бить самому себе морду.

айкидо

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

admin аватар

Если только я

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

Не подскажете?

Не уверен в тактичности этого вопроса, поэтому если что, то просто не публикуйте это сообщение, я не обижусь =) Очень хочется попрактиковать английский за чтением хотя бы приблизительной по полезности и охвату книжки как Ваша. Не можете посоветовать?
ЗЫ. СПАСИБО за Ваш труд =)

The C Programming Language

Да, на английском действительно нет (либо хорошо прячется) ничего подобного по охвату и содержанию. Но, могу посоветовать книгу Brian Kernighan and Dennis Ritchie: "The C Programming Language". Сей труд, по моему скромному мнению, достоин почтения и хорошо дополнит раздел книги ув. Андрея Викторовича об языке Си.
П. С. Пытался читать перевод данной книги на русский. Такое ощущение, что делали его люди, совершенно не имеющие отношения ни к языку Си, ни к программированию вообще.

admin аватар

Только есть

Только есть один крайне важный момент. Читать K&R можно, только уже будучи программистом — для начинающих эта книга не подходит.

Про качество переводов — согласен.

admin аватар

Увы.

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

А вы случайно

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

И вообще, есть

И вообще, есть ли большая необходимость в нём для программиста?

Вообще, есть. Но я бы поставил вопрос шире. Есть ли большая необходимость в знании английского для образованного человека в современном мире? Да, безусловно есть.

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

> Погружайтесь

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

Читайте на английском все, что интересно лично вам.
Попробуйте книги с участием Б. Кернигана. Или же "Unix power
tools" by Jerry Peek et al., или даже "Practical Vim" by
Drew Neil. Желательно, чтобы книга была достаточно
толстая, потому, что у каждого автора свой словарный запас
и любимые слова. К концу прочтения книги
словарный запас автора станет вашим, почти :).

Словари использовать моноязычные, как "настоящие", так и
предназначенные для обучающихся. В сети можно найти
словари, к которым подходит фронтенд sdcv. Можно найти
словари, укомплектованные аудиофайлами. Немного магии, sed,
awk и вы моментально читаете словарную статью, слушаете
произношение, а просмотренная словарная статья отправляется
в файлик новых слов. Этот файлик на следующий день поможет освежить вчерашние слова.

Parthen аватар

Меня не спрашивали, а я отвечу

Я конечно не преподователь, но вот сестру свою английскому учил. Может у взрослых как-то по другому, но могу дать вам один совет: нужно быть в среде. Банально, да.
Но первостепенным в изучении английского должно быть погружение в среду. Если вы вызубрите всю грамматику, лексику вы может даже сможете как-то говорить. Но понимать других вы не сможете.
Поймите, грамматика/лексика это помощник в изучении, а не основная цель. Если вы не будете постоянно находиться в среде, то никакого прогресса не будет. Сколько раз такое видел, да и сам был таким.
Вот как Андрей Викторович говорил - перенесите все свои задачи на Линукс. Только вам нужно все перенести на английский.
Интерфейс везде на английском, понятно дело. Все фильмы/книги по возможности на английском. Занимаетесь гимнастикой - включите подкасты/радио на английском.Заходите в чатики/форумы на английском.
Да, вам будет плохо, вы не будете ничего понимать, будете бегать к переводчику каждую минуту, но это временно. Главное чтобы вы это не воспринимали как наказание - это вам должно приносить удовольствие.

admin аватар

Необходимость

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

Добрый день,

Добрый день, Андрей Викторович!
Планируете ли вы ещё писать что-нибудь после задачника?

admin аватар

Честно говоря,

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

Цикл while и return

Доброго времени суток, Андрей Викторович! Возникли вопросы по второму тому, стр. 94, функция первая:
int string_length (const char *str)
{
const char *p;
p = str;
while (*p)
p++;
return p - str;
}

1) Как можно понять условие цикла while (*p)? Лично я понимаю так: «пока есть указатель *p на адрес, описывающий область памяти (т.е есть область памяти, в которой хранятся значения переменной p = str), "надо увеличить значение переменной p на 1" ». На сколько далеко это понимание от истины?

2) return и возвращенное им значение нужно для того, чтобы при входе в функцию возвратить вычисленное значение и передать управление обратно в программу, причем если return 0 - это хорошее выполнение, то остальные значения "нехорошее выполнение". Если return и его значение необходим по сути только для компилятора, то зачем нам указывать какие-то другие значения, кроме простых 0, 1, 2 или как в примере (p - str)?

Длина строки

Попробую объяснить. В языке С строки - это по сути массивы байтов.

Как можно понять условие цикла while (*p)?

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

пока есть указатель *p на адрес

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

зачем нам указывать какие-то другие значения, кроме простых 0, 1, 2 или как в примере (p - str)?

Как зачем? Нужно же вернуть длину строки. Для этого и городили эту функцию.

admin аватар

Пардон, ну вот

Пардон, ну вот зачем, а? Человек не готов, и я это ему в явном виде указал. Всё, больше для него нет и не должно быть никаких объяснений на тему Си.

Сорри

Сорри ) Я ваш ответ проглядел походу.

admin аватар

Так-с. Ну, раз

Так-с. Ну, раз спросили, я, пожалуй, формально всё-таки отвечу.

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

2) Про return вы написали полный, абсолютный и невообразимый бред. Что он в действительности делает, написано сначала кратко на стр.19, затем более развёрнуто на стр.63, но проблема, похоже, в том, что вы вообще не понимаете, что такое "функция" безотносительно Си и зачем она нужна.

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

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

Я тот самый

Я тот самый питонист, которому вы посоветовали Tcl изучать.
Прочитал вот этот коммент, и задумался.
По сути я писал скрипты, небольшие, там до 200 строчек. Пользовались ими только мои знакомые, которые увидев у меня на компе интересную фичу просили им сделать также.
Так вот вопрос: а на Паскале можно все сделать?
В частности меня интересует парсинг данных с сайтов и работа с API сайтов (т.е. посылка JSON запросов).
А то когда тебе твердят, что Паскаль мертв, начинаешь сомневаться.

admin аватар

Вот жеж

Так-с. Ну я вам всё-таки Tcl советовал (чтобы от Питона избавиться), а не Си, правда?

Отвечая на вопрос: Паскаль однозначно не для скриптинга. Вообще компилируемые языки не для скриптинга. А скриптинг -- не программирование.

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

И вот что: "мёртвый" Паскаль или "живой" -- в данном случае не имеет никакого отношения к делу. Вообще никакого.

А, да, ещё один момент -- про JSON. На Паскале, пожалуй, это даже проще, чем на Си. Конечно, для Си библиотеки есть, но для Паскаля, вообще говоря, тоже: например, такая вот есть штука https://www.getlazarus.org/json/ . Проблема в том, что она использует такие возможности Free Pascal, которые я в книжке даже близко не трогаю, и которые точно не для начинающих. Если цель — научиться, а не денег заработать, то правильнее было бы, наверное, самостоятельно состряпать парсер JSON на том подмножестве Free Pascal, которое рассмотрено в книге.

Скриптингисты - не программисты

>А скриптинг - не программирование

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

admin аватар

> То есть

> То есть питонисты, рубисты - не программисты?

Дело вот в чём. Эти товарищи используют откровенно скриптовые языки для создания программ, явно превосходящих по своим размерам и сложности всё, что можно называть скриптом. То есть используют скриптовые языки НЕ для скриптинга.

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

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

>Короче, хотите

>Короче, хотите программировать -- идите изучайте Паскаль и пишите на нём, пока не достигнете уровня, обозначенного в моём предыдущем комменте
Так я это и пытаюсь делать :). Я просто не понимаю, что с ним еще можно сделать. То есть вот что и главное КАК сделать на питоне у меня идей куча. Думаю попробывать просто перенести свои прошлые питоновские программы на Паскаль. Ну или попробовать в чужих программах поразобраться
>https://www.getlazarus.org/json/
Ну вот как так интриговать можно, сайт без JS не открывается.
Более того, он еще строго требует доступа к ajax.googleapis.com.
>Проблема в том, что она использует такие возможности Free Pascal, которые я в книжке даже близко не трогаю
Это вы про Lazarus? Добро пожаловать в российское образование, у нас он в 11 классе будет.

admin аватар

Разбираться в

Разбираться в чужих программах — в плане обучения занятие бессмысленное.

Про сайт, который без JS — ну да, косяк с моей стороны, пардон.

И нет, я не про Lazarus, ведь Lazarus — это интегрированная среда, а не какие-то дополнительные возможности для самого Паскаля. Я про объектно-ориентированную подсистему, которая во FreePascal имеется во всю морду, но которая в плане обучения бесполезна — когда человек только-только учится, ООП ему не-пришей-кобыле-хвост, а когда человек уже готов к ООП, то можно и Си++, там ООП не так чтоб хорошо сделано, но уж всяко лучше, чем в диалектах Паскаля.

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

*В дополнение к

*В дополнение к предыдущему комментарию.*
Я тут перечитал ветку и понял. что вы наверное не за того меня приняли :) Я не автор вопроса про Си, я другой человек и в Си пока не лезу.

admin аватар

Ну вот ага, все

Ну вот ага, все под анонимами постят, да ещё зачем-то в чужие ветки, и вот как вас тут различать?

Уговорили :)

Пойду регистрироваться. А то у меня в избранных сайтах по посещаемости stolyarov.info на 2 месте из 8. Заодно с Open ID разберусь.

>практически

>практически всё, что делается на Си, можно и на Паскале без особых проблем.
Это я и хотел услышать. Спасибо!

Как читать книгу?

Вопрос к автору и всем здесь находящимся: как вы читаете книгу?
Делаете ли вы конспекты, перепечатываете ли каждую приведенную программу?

Ну, я, например,

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

admin аватар

Накой чёрт их

Накой чёрт их перепечатывать, есть же архив примеров.

Тут, видимо,

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

Точно так.

Точно так. Вообще, я думал что текстовый слой для этого и сломан.

admin аватар

Вот уж точно не

Вот уж точно не для этого.

Приветствую

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

учебник алгебры Маракуева.Н.Н

Могу посоветовать учебник алгебры Маракуева в 2-х томах
1 том http://ep3.nuwm.edu.ua/3899/
2 том http://ep3.nuwm.edu.ua/3900/
Почитай вот это, что люди пишут:
https://ask.profi.ru/q/kakoi-samyi-silnyi-i-interesnyi-shkolnyi-38422/
Думаю найдешь там ответы.

Спасибо)

Спасибо)

admin аватар

Так-с, прежде

Так-с, прежде всего: геометрия — это часть математики, так что перечислять "математику и геометрию" как однородные члены категорически неверно.

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

Что до учебников математики, совсем недавно это обсуждали, причём прямо тут: comment-3303.

Спасибо за

Спасибо за замечания, на счёт пробелов после и перед запятой, что то никогда внимания на это не обращал, впредь буду аккуратнее)

Чёрный юмор

Я давно хожу

Я давно хожу вокруг да около OpenBSD, да что-то все руки не доходят и пугают разные неудобства которые неизбежно возникнут при переезде на другую ОС. Но если описанное мракобесие все же будет одобрено Торвальдсом (Что будет крайне странно. Си++ он вполне оправданно не допускает в ядро, а это допускает), то других вариантов не останется.

OpenBSD

Вы знаете, я где-то в 2006-м или в 2007-м раздумывал о переходе на OpenBSD, но так и не перешёл и на какое-то время забыл об этой системе, целиком погрузившись в Linux. А года три назад всё-таки перешёл. И вот, оглядываясь на всё это, я немного жалею, что не сделал перехода тогда, почти 15 лет назад.

А неудобства безусловно возникнут, причём как временные, обусловленные самим фактом переезда, так и постоянные, обусловленные тем, что в каких-то моментах OpenBSD отличается от Linux в худшую сторону.

Но лично для меня достоинства в данном случае перевешивают недостатки.

Я тут тоже

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

как часто

как часто исправляются в ней баги

А как именно вы предлагаете измерять эту частоту? Ответ "три раза в неделю", например, вам что-нибудь даст?

кто

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

и как часто вообще эти баги там ловит?

Опять же, как измерить "частоту"?

Знаете что, вот вам пара ссылок:

https://marc.info/?l=openbsd-tech -- это архив списка рассылки для разработчиков, там они обсуждают текущие проблемы и способы их решения.

https://cvsweb.openbsd.org/src/ -- а это web-доступ к основному репозиторию разработки. Там можно почитать комментарии к коммитам и посмотреть на их частоту.

Можете сами посмотреть на процесс разработки и сделать свои выводы.

В целом же (вы и так, наверное, в курсе, но на всякий случай отмечу) OpenBSD общепризнана наиболее нацеленной на безопасность из современных юникс-подобных систем. Настолько нацеленной, что это в своей неповторимой манере отметил даже Линус Торвальдс: "I think the OpenBSD crowd is a bunch of masturbating monkeys, in that they make such a big deal about concentrating on security to the point where they pretty much admit that nothing else matters to them."

Я единственное

Я единственное что не понял – почему у него даже оптимизированный на размер исполняемый файл с хелло-воролдом весит 3Mb. Я уже молчу про более-менее большие проекты.

А можно для

А можно для чайников как это вообще повлияет на Линукс?

admin аватар

Ядро станет

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

А как долго

А как долго получится старое ядро использовать?

admin аватар

Это сильно

Это сильно зависит от множества факторов. Что такое "использовать"? Взять какой-нибудь дистр, на комп поставить, сам комп не обновлять (и без того они уже безумно "мощные"), когда версия дистра уйдёт в неподдерживаемые — отказаться от репов и все новые программы ставить из исходников; в таком режиме можно лет двадцать прожить, если комп не помрёт.

D-bus

Чем плох D-bus? На сайте Devuan рекомендуют удалить d-bus.

Какие молодцы,

Какие молодцы, одобряю. А где именно на сайте, можно ссылку?

Я сам Devuan не использую, поэтому вопрос к тем, кто использует. А насколько Devuan это удаление dbus поддерживает? Все пакеты, которые можно собрать без зависимости от dbus, собраны таким образом?

А то даже в OpenBSD базовая система, конечно, чистейшая, но в портах эта дичь встречается. Полтора десятка из них мне приходится пересобирать по-своему, чтобы отвязать от dbus-зависимости. А к gtk+3 даже пришлось патчик делать, хоть и тривиальный.

Хотя да, сейчас подумал, что есть два вида зависимости от dbus: от библиотеки и от запущенного демона. Я у себя вычищаю всё, то есть у меня от libdbus ничего не зависит и сама она не установлена.

All releases ....

https://www.devuan.org/os/documentation/dev1fanboy/
Вот как определить зависим пакет от dbus или нет?

admin аватар

А чем, простите,

А чем, простите, такое может быть хорошо? Совершенно бестолковое усложнение софта на ровном месте.

Увидеть общую шину

Здравствуйте, Андрей Викторович. Хочу задать вам вопрос, ответ на который я не получил от преподавателя в колледже, когда была работа под названием "Состав ПК".

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

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

admin аватар

Обычно её очень

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

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

Window Maker

Здравствйте, Андрей Викторович. Меня заинтерисовал Window Maker (у него есть так называемые "доки", которые ликвидируют проблему выискивания программ, которые помещают в трей иконки. Например, "док", показывающий уровень заряда батареи), но в репозиториях его нет и скорее всего придется собирать его самостоятельно.

Что можете посоветовать, если я понятия не имею, как работать с программой make? Просто следовать инструкциям на сайте оконника?

admin аватар

То есть как это

То есть как это Window Maker'а нет в репозиториях, что это за дистр? В Девуане вот есть, правда называется пакет почему-то wmaker — наверное, чтоб никто не догадался.

Про make, если очень хочется, есть приложение во втором томе, но вообще да, если уж решите упереться рогом и собрать его из исходников, то можно просто следовать инструкциям. Только не под root'ом :-)

А вот в таких

А вот в таких случаях, когда что-то нужно собрать из исходников, разумнее будет создать директорию (по типу bin) в своём домашнем каталоге, добавить путь (в нашем случае ~/bin) в переменную PATH и хранить там исполняемые файлы, которые были собраны, например, с помощью утилиты make (ну или хранить там символические ссылки на исполняемый файл), вместо того, чтобы запускать make под root'ом, который исполняемый файл мувнит куда-нибудь в /usr/locale/bin?

P.S. Если ошибся в какой-то из формулировок - извиняйте. И кстати, я почему-то стал ваши капчи щелкать, как семечки.

admin аватар

В принципе

В принципе "своя" директория bin — решение вполне нормальное, даже традиционное. Иной вопрос, что собирать под root'ом в любом случае не надо. Как правило, собственно сборка не включает инсталляцию, инсталляция делается отдельной командой вроде make install, вот её можно сделать под root'ом, предварительно сказав make -n install и посмотрев, что там ОНО собирается делать.

А почему тогда

А почему тогда вы писали что "собрать и make install" вам религия не позволяет?(https://www.linux.org.ru/forum/web-development/13199140?cid=13204558)

admin аватар

Вы что, разницы

Вы что, разницы не видите между этими ситуациями? Тут пользователь хочет пользоваться оконником "под собой", в своих сеансах работы, причём на рабочей станции, а там речь идёт о серверных программах, инсталлируемых в систему (нет, их нельзя ставить под отдельного пользователя в его домашнюю директорию, если такого понаставить, потом этот сервак администрить будет невозможно), и на серверной машине. Домашнюю директорию пользователя "замусоривать" нехорошо, но не смертельно, обычно она от рук не отбивается, а если и отобьётся, её можно запаковать в архив на всякий случай, после чего начать жизнь с чистого листа. Файловую систему сервера заполнять непойми откуда взявшимися файлами — идея крайне неудачная, и "начать сначала" тут не получится. Там ещё Openwall, у него такое свойство, что его можно вообще-то десяток лет не обновлять, чем я беззастенчиво пользуюсь — но так можно, только если не допускать бардака. А "не допускать бардака" — это означает, что всё, что за пределами домашних директорий пользователя и всяких помоек вроде /var и /tmp, должно принадлежать пакетам.

Честно говоря, я в шоке, что это всё приходится объяснять.

Manjaro

Стоит у меня Manjaro. А пакет я искал при помощи пакетного менеджера pacman. Вроде как в Manjaro есть одна гуй-программа, в которой можно нажать напротив пакета собрать и она сама все соберет. Но стоит ли идти на такие уступки?

Window Maker в

Window Maker в репозитории AUR, погуглите, как оно там подключается (гуёвый путь точно есть, если вас это волнует). А вообще, Manjaro, по факту, та же Ubuntu, но выросшая из Arch - красиво и "юзерфрендли", но оставаться на ней долго точно не стоит - мозги атрофируются.

admin аватар

Про Manjaro ничего

Про Manjaro ничего не знаю.

А я вам расскажу

Если бы манжара была бы персонажем в ММО, то у нее явно влили все очки опыта в дизайн и ничего не дали безопасности.
Мы просрочили SSL сертификат? Попросим пользователей откатить время, чё нам. (https://web.archive.org/web/20150409040851/https://manjaro.github.io/exp...)
Пакетный менеджер могет только в обновление ВСЕЙ системы. Один пакет обновить не получится.
Не могу найти информации, но помню как у них дважды хакеры меняли ссылки на скачивание iso-шника. (Могу врать)
В общем, остальные грехи манжары - https://rentry.co/manjaro-controversies.
Не надо слушать арчеводов, арч не для новичков. Используйте Debian, не осилили - Mint.

Вот на счет

Вот на счет отсутствия возможности обновить только одну программу я плюсую. Это меганеудобно и к тому же странно.

admin аватар

Debian и Mint

Debian и Mint использовать не надо, в обоих systemd.

Devuan предлагает

Devuan предлагает SysVinit/openrc. Которую из систем инициализации выбрать, если хочется избавиться от systemd, но я не знаю функции системы инициализации?

admin аватар

Я бы сказал, что

Я бы сказал, что SysVinit понятнее, заодно и скриптов на Bourne Shell бояться перестанете.

Новичку по

Новичку по барабану - а диструбитивов для новичка без системд мало. Хотя есть Trisquel

admin аватар

Ну как это по

Ну как это по барабану, ни фига. Прям как в том мультике — «привыкнешь — и жизнь твоя не будет стоить ломаного цента».

как в том

как в том мультике
Фильме, на секундочку :-P

admin аватар

Вроде я точно

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

"Приходили

"Приходили убивать" таки да, в мультике "Остров сокровищ", а вот про ломаный цент - это из "Человека с бульвара Капуцинов".

admin аватар

Ого. Странные

Ого. Странные фортели наша память выкидывает, я был уверен, что это фраза старого пирата, адресованная Джиму.

Собственно,

Собственно, Manjaro, как и его прародителя ArchLinux, использовать тоже не надо и ровно по той же причине.

Я в поисках

Я пока-что в поиках дистрибутива без systemd. Андрей Викторович, можете Devuan для новичка рекомендовать? Там же на этапе установки можно без установки DE обойтись, чтобы сразу только оконник поставить?

admin аватар

Будет

Будет правильнее поставить какой-то из DE, предлагаемых по умолчанию, а потом тупо apt-get install нужного оконника. Просто иначе придётся X Window настраивать позже, это может оказаться несколько сложнее, чем во время инсталляции.

Так в целом меня Devuan вполне устраивает.

Между прочим

У Черного Треугольника (смотреть пару топиков ниже) было видео по установке i3wm на голую систему. Т.е. он просто ставил netinstall, отключал установку DE и потом ставил i3wm.
Не без греха конечно, он не рассказал про темы GTK и QT (мне это критично, мне по здоровью светлые тема нельзя). А так вполне годно

По i3WM новичка

По i3WM новичка подойдут видео ролики от Code Cast: первый из них называется "i3wm: Jump Start". Правда, там надо понимать по-английски, но мне эти ролики кажутся для новичка гуд!

Parthen аватар

>там надо

>там надо понимать по-английски
Если человек хочет найти что-то на английском, то проблем с недостатком контента у него не возникнет :)
Так что, когда спрашивают, я стараюсь давать на русском.

Посоветуйте сайты

Здравствуйте, Андрей Викторович!
Вы в своем блоге говорили о том, что поисковики могут быть заменены каталогами. Честно говоря, у меня сейчас проблема: мне нечего смотреть в интернете. Без JS работает ну треть всех моих знакомых сайтов. А с более-менее вменяемым комьюнити я могу назвать всего 2: ваш сайт и LOR. И то, насчет LORa после темы о ваших книгах у меня возникают сомнения.
Так вот, можете посоветовать сайты/каталоги? Русскоязычные, работающие без js и без людей, которые будут меня убеждать, что программы можно продавать.

Вспомнил еще один

https://digdeeper.neocities.org/
Еще полностью не изучил, но там у фриков тусовка и блог одновременно.
Кстати да, Андрей Викторович, вы какой браузер используете?
У Palemoon какой-то неадекват в управлении сидит - https://digdeeper.neocities.org/ghost/browsers_rus.html#palemoon

admin аватар

Palemoon и

Palemoon и использую, пока что больше нечего. Воланд, сожги Гугл.

Для

Для поклонников цифрового минимализма могу порекомендовать dillo. Кроме того, что он вообще не поддерживает JavaScript, он также не поддерживает, насколько я могу судить, всю эту современную дичь, которая творится с HTML/CSS. И, вишенкой на торте, написан поверх FLTK.

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

Parthen аватар

Между прочим

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

admin аватар

Эй, минутку, я

Эй, минутку, я уже два года на palemoon сижу (таки да, полностью), но у меня капча показывается нормально. И, э... что я делаю не так?

В Palemoon капча

В Palemoon капча данного сайта не видна если заблокированы куки.

Parthen аватар

Так вот оно что было...

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

admin аватар

Я подозреваю,

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

Так и есть, по

Так и есть, по крайней мере, в Opera и Firefox последний версий (дальше не проверял).

Воланд, сожги

Воланд, сожги Гугл.

Подписываюсь под этой петицией.

Советую сайты

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

https://rawtext.club/~tolstoevsky/ -- блог Толстоевского
https://curlie.org/ru -- каталог сайтов, там просто собраны и каталогизированы сайты, увы, без разделения на наличие/отсутствие рекламы и JS

А вот за

А вот за Толстоевского спасибо, прям большое и необъятное. У него есть почти все, что я хотел. :)

Это ЛОР-то

Это ЛОР-то вменяемый? Да он по токсичности уже переплюнул многие анонимные имиджборды. Попробуйте опубликовать на ЛОРе какую-нибудь новость, например о полезной программе или интересной технологии. Больше половины комментариев под ней будут абсолютно бессмысленные вариации на тему "не нужно". А уж регистрантов, которые более-менее регулярно пишут комментарии достойные внимания, можно вообще по пальцам пересчитать.

мне нечего смотреть в интернете

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

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

С бредом Двача

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

admin аватар

Увы, не знаю

Увы, не знаю таких. Кстати, наверняка они есть — если найдёте, поделитесь со мной и местной публикой :-)

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

Простите, но это очень странно

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

admin аватар

некропост от копираста, гм...

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

чем утаивание исходных кодов отличается от утаивания исходного текста ваших книг в pdf формате

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

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

Второй момент — вы вроде бы упомянули безопасность, но упомянули её так, будто это что-то несущественное. Между тем, почти пять лет назад я записал вот этот вот ролик: http://www.infoviolence.org/ru/vblog/video028.html — в котором подробно рассмотрена разница между видами контента. Обычные данные (включая книги, но не только — то же самое можно сказать и про изображения, и про звукозаписи, и про видео, и вообще про всё, кроме программ) — это только appearance, внешний вид (в широком смысле, включая звуковое сопровождение, например), тогда как программы задают поведение компьютеру пользователя. Если бы, скажем, программы всегда выполнялись на компьютерах, принадлежащих их авторам, проблемы бы с этим не было, но это не так. Фактически авторы программ заявляют своим пользователям, что, мол, давайте-ка мы сейчас поуправляем (!) вашими (!) устройствами, и устройства сделают то, что вы хотите. Мне представляется совершенно очевидным, что пользователь при этом просто-таки обязательно должен быть наделён правом и возможностью проверить, что там в действительности делают с его (!) устройством, а если не может сделать этого сам — должен иметь возможность заказать соответствующий аудит тем, кто умеет. Те, кто ультимативно требуют доверия, ни малейшего доверия не заслуживают.

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

И как вы представляете себе заработок на продаже программ

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

Ну а если заказ есть, то всё оплачивает заказчик. По предварительно достигнутой договорённости. Здесь всё честно.

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

Теперь вот это вот ещё:

Но, к примеру, вы как преподаватель, стали бы работать бесплатно

Вы хотя бы примерно представляете, сколько получают в России преподаватели и сколько в той же России (и не только в России) зарабатывают программисты? Разумеется, лично для меня преподавание (во всяком случае, работа со студентами в МГУ) никогда не было источником дохода, всегда приходилось полагаться на всевозможные "подработки", в разы (если не в десятки раз) превышавшие мою университетскую зарплату. Платить осязаемые деньги (тоже копейки, конечно, но хотя бы как-то соразмеримые с затратами времени — надо признать, тоже не слишком большими) в МГУ внезапно начали года четыре назад, до той поры (т.е. в течение чуть менее чем двадцати лет) преподавал я даже не бесплатно, а себе в убыток — за то время, которое я тратил на проведение занятий в МГУ, я мог бы заработать многократно больше.

Но это, на самом деле, к делу-то не относится (от слова совсем). Аудиторная работа со студентами — это вполне себе работа по конкретному заказу конкретного заказчика, заказчиком выступает собственно университет (а косвенно — государство за бюджетных студентов, платные студенты сами за себя). Уж точно это не инициативная разработка.

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

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

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

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

Кстати,

Кстати, программы можно продавать :-)

А в чём тут принципиальное отличие от продажи электронных книг? Та же торговля воздухом.

admin аватар

Речь шла о

Речь шла о продаже свободных программ, например, GPLных. Вот вы, скажем, написали программу и всей публике говорите, мол, кто хочет — купите её у меня за поллимона баксов, а дальше делайте с ней что хотите. Если бы с электронной книгой, которую мне пытаются продать, тоже _официально_ можно было бы потом делать что угодно, в том числе выложить на своём сайте бесплатно — как ни странно, я бы против такой "торговли" не возражал.

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

Вы ведь

Вы ведь понимаете, что никто не будет покупать программу, которую можно получить бесплатно легче чем торрент? :)
Мы еще не в настолько идеальном обществе. В частности, я про игры, (в геймдеве кручусь) а там вообще с этим все плохо.
Единственный реалистичный вариант - это сбор пожертвований, краундфаундинг.
Ну а про сайты... могу посоветовать англоязычные - https://www.unixsheikh.com/
Блог парня, рассказывает о JS, Microsoft и т.п.
---------
Далее только для автора сайта
---------
Возможно вы не захотите опубликовывать эту часть, я пойму. Но если не будете, ответьте пожалуйста на почту.
Есть такой парень - Черный Треугольник.
*JS* https://www.youtube.com/c/ЧёрныйТреугольник
*No JS* https://invidiou.site/channel/UCZ26MoNJKaGXFQWKuGVzmAg
(Кстати да, можно через invidous ютубчик без js смотреть)
Он и вы - это люди, без которых я в принципе не узнал бы о программировании и линуксе. Он рассказывает о Линуксе, себя позиционирует как "пропагандиста свободного ПО".
В принципе, он один из немногих, кто смог заинтересовать массу (~100 000 подписчиков) идеей свободного ПО.
И судя по количеству людей в гостевой с i3wm, они явно смотрют его.
Я помню про правило пустого любопытства, но хочется узнать ваше мнение о нем.
(Даже если не захотите, отпишите на почту об отказе. Это правада важно ждя меня)

И судя по

И судя по количеству людей в гостевой с i3wm, они явно смотрют его.

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

Возможно

Но тут небольшое совпадение - начали писать на сайте про i3wm после того, как Треугольник выпустил ролик. Эффект Монте-Карло :)

Не более чем совпадение

Как человек который на этот сайт первый написал о тайлинговых оконниках:
1. Но тут небольшое совпадение - начали писать на сайте про i3wm после того, как Треугольник выпустил ролик.
Действительно совпадение. Узнал о видео этого Треугольника из сообщений на этом сайте.
2. И судя по количеству людей в гостевой с i3wm, они явно смотрют его.
Второе из первого не следует.

Вот да, я

Вот да, я использовал i3wm (сейчас не использую, перешёл на менее известные тайлинговые WM) задолго до того, как узнал о существовании Андрея Столярова и его сайта. И, как я сейчас глянул на канале, задолго до появления на ютубе первого видео этого Треугольника. Не хочу принижать заслуг этого Треугольника, о котором я ничего не знаю, но сильно подозреваю, что в популярности он заметно проигрывает i3wm'у. :)

admin аватар

Довольно

Довольно любопытно, надо будет выборочно посмотреть ролики оттуда.

Twm

Здравствуйте! Не подскажите как настроить или начать работать в ОМ twm. В интернете мало что пишуть об этом ОМ.

admin аватар

Чтобы "начать

Чтобы "начать работать", достаточно его поставить и запустить. Как сделать так, чтобы он запускался при старте сеанса — см. первый том "Введения в профессию", стр.129-130.

Далее https://en.wikipedia.org/wiki/Twm — и оттуда по ссылкам. Сам я этот twm последний раз запускал лет десять назад и, естественно, ничего не помню.

Склонности к программированию

А как понять, имеет ли склонность к программированию человек, студент? Помимо терпимости и ума.

admin аватар

Не знаю, что вы

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

Здравствуйте,

Здравствуйте, Андрей Викторович.
У меня небольшая проблема: до ваших книг я был просто линуксоидом, писал программки на питоне (бейте его, издевайтесь над ним).
До питона изучал "Песни о Паскале", поэтому ваш первый том сейчас заходит легко.
Но вот дилема: я решил питон пока все книги не прочитаю, не использовать (мол, раз уж решил учить все с нуля, то учи). Но тяга создавать программы и проблемы которые надо решать, остались. Резюмируя, можно ли на Паскале + bash делать программы-скрипты? Или стоит все же повременить до изучения всех томов?

admin аватар

Заниматься

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

Хотя на Bourne Shell тоже можно, только лучше bash'измы не использовать.

Ну и самое главное: разумеется, если в скрипте на bash'е (или на чём угодно ещё) вам потребовалась какая-то внешняя программа, которую кажется правильным написать на Паскале — пишите, конечно! Даже не сомневайтесь.

Немного не по теме

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

admin аватар

Этот вопрос

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

UTF-8 и KOI8-R в переписке и именах файлов

Андрей Викторович,

заметил, что в почтовой переписке вы используете KOI8-R. На 49% уверен, что и имена файлов на домашнем компьютере [на родных для Unux файловых системах] в той же кодировке. Учитывая мировую тенденцию использовать "UTF-8 everywhere", возникает пара вопросов:

Допускаете ли вы для себя на домашнем компьютере именование файлов за пределами ASCII?

Удобно ли пользователю Mutt, пишущему в KOI8-R, получать ответы в UTF-8 на русском языке?

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

admin аватар

koi8 у меня

koi8 у меня отнюдь не только в письмах — книжки тоже в koi8 набраны, например.

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

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

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

Т.о.,

в правильном файле строки завершаются символом LF (0x0A).

Тогда есть ли у вас предположения, почему в одном из ключевых конфигурационных файлов FreeBSD --- не помню каком точно (может даже rc.conf) --- требовалось (все-еще требуется?!) вставлять пустую строку в конец файла, иначе последняя (не пустая) строка не учитывалась?

admin аватар

Я с этим не

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

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

JS без доступа к интернету

Здравствуйте, Андрей Викторович
Подыскиваю я себе софт для локальной вики, один из вариантов - https://en.m.wikipedia.org/wiki/TiddlyWiki.
Вкратце: приложение генерирует странички (в том числе JS), но доступа в интернет не требует. Open source, BSD лицензия.
Стоит ли рассматривать такой вариант? Или JS нельзя пользоваться даже в офлайне?

admin аватар

У вас что, для

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

Я вам даже больше скажу

Конкретно с вики у меня для неё приготовлена зашифрованная виртуалка без доступа к интернету. Слишком секретно её содержимое :)
И стойте, зачем разные браузеры и пользователи? Noscript разрешает включить жс только на определённой вкладке и определённом домене. А поскольку сайт мой и он локальный, без доступа к интернету, то безопасность в норме.
Где я ошибся?
P.S. Есть ещё одна, написанная на питончике.

admin аватар

Где вы

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

Дальше, про NoScript. Это вот вы знаете, что нужно обязательно и своевременно нажимать на кнопочку, и я это знаю, а пользователи — не знают. Если есть хотя бы один сайт, на который надо заходить с включённым JS, большинство enduser'ов его вообще не будет выключать, и вы с этим ничего не сделаете, люди не склонны исполнять инструкции, смысла которых не понимают.

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

Задачник

Добрый день! Посоветуйте где можно найти задачи для практики для каждого тома Ваших книг?

Простите, что

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

admin аватар

Если вы сделали

Если вы сделали командную строку ОС Unix основным инструментом своей работы с компьютером, то задачи у вас должны возникнуть сами. А если не сделали — никакой задачник не поможет.

ЯП в школе

Здравствуйте, Андрей Викторович
Какой язык программирования выбрать для уроков информатики?
Учитель сильно путает, когда требует учить наизусть примеры программ на Паскале, но разрешает сдавать программы на любом языке программирования.
Те немногие, кто умеют программировать пишут на питончике, я же заглядываюсь на Си: дальше массивов у нас не заходит и мышление себе я не травмирую.
Что посоветуете?

Учите Паскаль, в чем проблема?

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

admin аватар

Я бы даже

Я бы даже сказал, не "профессионалами для профессионалов", а "профессионалами для себя на коленке в жуткой спешке и без мыслей о полувековом будущем".

Так вершится

Так вершится история. С начала человеки создавали язык Си для себя, в спешке, не думая о чем-то далеком. Потом Линус Торвальдс начал писать программу для себя, которая во многом определила развитие ИТ

"Программирование" на пайтон

Те немногие, кто умеют программировать пишут на питончике

Это не так. Тот, кто умеет программировать, пайтон никогда использовать не будет. Написание скриптов только лишь формально является программированием. Пайтон не для программистов, а для "программирующих пользователей", пусть и опытных. А то так и админов можно в программисты записать. Они ведь тоже пишут скрипты на Bash, Perl и т.д.
Программист может использовать только ЯП, транслирующийся в машинные коды. Написание "программ" на скриптовых языках типа пайтона - это профанация.

admin аватар

А вот влезу

А вот влезу :-)

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

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

Сложный вопрос

Я вполне готов назвать сумму, за которую даже я соглашусь на питончике кодить

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

admin аватар

За очень

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

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

Под "умеющими

Под "умеющими программировать" я подразумеваю тех, кто может хотя бы объяснить разницу for и while.
Таких в классе 2 человека.
Ну вот кстати вопрос был немного не в том ключе понят.
Перефразирую: "Что хуже: плохое обучение Паскалю и последующее нормальное или отсутствие обучения Паскалю как таковому и вменяемое обучение остальным языкам?"
И да, ответ я уже понял

admin аватар

Мне вот что

Мне вот что интересно — а что, вам не очевидно, какой я дам ответ? Разумеется, пока не овладеете Паскалем, пока не напишете на нём что-то такое, что будет использовать кто-то кроме вас, пока не будете не задумываясь, на чистом автопилоте работать с указателями и списками, ни о каком Си даже мыслей возникать не должно.

Ну а к питончику лучше вообще никогда не прикасайтесь, а то там и останетесь.

А если из моих

А если из моих знакомых никто не использует Unix-подобные ОС, то кому мне продвигать свою программу, чтобы кроме меня её использовали ещё другие люди?

Правильно

Правильно написанную программу несложно перенести на другую ОС, в том числе и не являющуюся Unix-подобной (ага, и на эту самую тоже). Для M$ есть MinGW, например, включающий в себя и gcc, и make, и fpc, и много чего еще - консольные программы собираются, в принципе, без изменений. Если нужен гуй (в смысле, в виде библиотеки виджетов) - FLTK, например, там тоже вполне комфортно существует без костылей. Так что пишите спокойно на Linux/*BSD, распространяйте уже по ситуации.

admin аватар

Ну... тут есть

Ну... тут есть сложности. Консольную программу виндузятники использовать не станут, она им покажется "ненастоящей". А гуй — ну какой ещё гуй на самом начальном этапе, когда человек Паскаль осваивает?

Я, кстати, не уверен, что FPC есть для MinGW. Нативный под винду — ну да, есть, и вообще там, судя по всему, в команде виндузятники одни (причём не лучшие, мягко говоря).

Я, кстати, не

Я, кстати, не уверен, что FPC есть для MinGW
Ага, вот тут косяк мой, погорячился. В любом случае, нативный есть - значит, можно просто подкинуть путь к нему в $PATH и не связываться даже под M$ с IDE типа Lazarus и т.д. А насчет "ненастоящих" безгуёвых программ - так это их проблема :) В любом случае, заинтересовать маздайщика консольной игрой проще, чем переманить на Темную Unix'овую сторону, шанс есть.

admin аватар

Проблема, товарищи

Видимо, придётся кого-нибудь обратить в свою веру :-)

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

Плата за игрушки

Андрей Викторович, по вашему мнению можно ли платить за игрушки? Или это та же, что и с электронными книгами, плата за воздух? И должна ли она быть с открытым исходным текстом?

admin аватар

Я много раз

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

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

А какие тогда есть способы заработать?

А какие тогда у команды есть способы заработать себе на хлеб, кроме пожертвований и индивидуального коммерческого заказа, если плата за продукт абсолютно и совсем исключена? Или это единственные способы?

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

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

admin аватар

> какие тогда у

> какие тогда у команды есть способы заработать

Если команда занимается инициативными разработками, то она это делает в своё удовольствие. А то так можно выйти на улицу, вырыть яму 1x1x1 метр (которую рыть никто не просил) и ещё требовать, чтобы заплатили.

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

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

> использование гитхаба, гитлаба и подобных исключено

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

Собираю вещи, ухожу в опенсорс

Знаете, Андрей Викторович, пораздумав над вашими аргументами и еще немного покапавшись в этой теме (посмотрел выступление Олега Бартунова, одного из разработчиков Postgre Pro) подозреваю, что в будущем, в своей профессиональной деятельности, я предпочту опенсорс коммерческой разработке. Меня зацепил именно тот факт, что если твоя опенсорсная разработка действительно прорывная, ее могут использовать и модифицировать, например, ученые в своей профессиональной деятельности и работать за счет использования новой технологии эффективнее. Мир получит новое открытие быстрее. То есть меня впечатляет мысль приносить пользу миру таким способом.

admin аватар

Не путайте

Не путайте "коммерческое" и проприетарное. Open Source вполне себе бывает коммерческим, и Free As In Freedom — тоже бывает коммерческим. Тот же PosgreSQL, насколько я понимаю, вполне коммерческий, что не мешает ему быть свободным.

Просто бизнес-модели бывают разные и им не обязательно основываться на информационном насилии.

Добрый вечер,

Добрый вечер, Андрей Викторович!
Читаю второе издание, и назрел вопрос. Если вы изначально для создания GUI хотели использовать Qt, то почему же в последствие от него отказались?

admin аватар

Когда я "хотел",

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

В чем делать таблички?

Здравствуйте, Андрей Викторович!
Как я понял по вашим словам, вместо Word-подобных редакторов стоит использовать консольные - vim/Joe/nano.
А что стоит использовать для создания таблиц и презентаций? Привычные графические редакторы?

Совет по изучению класса beamer

Для создания презентаций можешь использовать класс beamer. Есть еще класс slides (я с ним не работал). Но beamer, по сравнению с slides, будет побогаче на возможности.

Если тебе нужна дополнительная информация и документация по beamer'у, могу посоветовать обратиться к CTAN. CTAN - это архив с информацией о всевозможных пакетах TeX'а и LaTeX'а. Просто вбиваешь в поисковую строку своего браузера "ctan beamer". Тебе нужен будет сайт ctan.org. Примерно трехсотстраничная документация оправдывает то самое "побогаче".

admin аватар

Подозреваю,

Подозреваю, человеку сначала бы сам LaTeX освоить. Beamer — уже потом.

Так и есть :)

Latex я ещё не знаю. Но вот между прочим, я сейчас намучался с установкой тёмной темы на Libre Office. У меня светобоязнь, мне крайне больно смотреть на белый цвет, а темную тему установить не получается.
Выходит, что легче вместо i3 поставить Xfce - там хоть через GTK можно.

Сижу под i3, для

Сижу под i3, для смены темы использую lxappearance, проблем пока не было.

admin аватар

Не надо

Не надо нормальный оконник на DE менять, козлёночком станете (tm). Вроде в libreoffice есть свои настройки цветов, которые вообще от "системной" темы не зависят (точнее, оверрайдят её).

Про LaTeX — три дня и он ваш.

Цвета конечно

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

admin аватар

Презенташки я

Презенташки я всю жизнь в LaTeX'е делаю, класс beamer. Ну то есть да, исходник этого дела набирается в том же vim'е.

А «таблицы» понятие растяжимое. Если цель — что-то такое показать или напечатать, то тот же LaTeX, и все свободны; средства вёрстки таблиц там очень даже приятные. А если нужно для себя какую-то информацию организовать в табличном виде, то я изредка всё-таки использую libreoffice calc — например, у меня есть файл в формате .odf, посвящённый краудандинговому проекту, там содержится информация о донэйторах, о рабочем времени, о расходах и т.п.

GoLang

хотелось бы услышать ваше мнение про язык Го.

admin аватар

Кратко говоря - дерьмо.

Вообще я обычно такие вопросы не раскрываю, ибо не люблю праздного любопытства, но в данном конкретном случае внезапно обнаружил, что действительно на моём сайте Go почти не упоминается, а все обсуждения, которые мне с ходу припомнились, видимо, происходили на L.O.R.'е.

Ну так вот: Java, C#, Go, а также и любой другой язык, сочетающий императивное программирование со сборкой мусора — это абсолютное, конченное, безнадёжное дерьмо, не пригодное ни для чего и никогда. Даже в ситуации, когда вообще писать не на чем (а сейчас, увы, ситуация именно такова — все существующие языки программирования более или менее представляют собой полное дерьмо), сочетание фоннеймановского программирования и сборки мусора по степени, если можно так выразиться, дерьмовости таки на общем фоне изрядно выделяется.

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

Про Раст

Сори за офтоп, а как Вам Раст? в особенности статическая модель управления памятью и наличие некоторых гарантий у скомпилированных програм. Возможно ли на Ваш взгляд значительное потеснение си и плюсов?
ЗЫ: с такой капчей странно что тут вообще кто-то пишет)

admin аватар

Раст, гыгы

У нас на спецсеминаре не далее как в прошлом семестре делался доклад про Раст. Один из слушателей сделал, на мой взгляд, очень правильный вывод: этот язык спроектирован для лиц с обсессивно-компульсивным расстройством.

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

Сборка мусора

Java, C#

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

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

Этот Go - это какой-то стёб над здравым смыслом. Несчастным Go-мартышкам приходится героически преодолевать трудности, обусловленные наличием в этом, как они выражаются, "заменителе языка C", сборки мусора. Сборки. Мусора. Мусора, Карл!!! В языке, якобы предназначенном для системного программирования. Этот Go та ещё поделка. Мышки (то есть мартышки) плакали, кололись, но продолжали воевать со сборщиком мусора вместо выбора более подходящего ЯП.

К Java

К Java прилагаются тн "среды программирования". Играет роль ошейника.

Студент: почему

Студент: почему в C нет сборщика мусора?
- потому, что он его не производит (ответ Д.Ритчи, если не ошибаюсь)

admin аватар

Формально

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

Про буферизацию ввода-выводы

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

При чтении Вашей функции на 290-й странице второго тома книги, я так понял, что функция fgets читает всю строку из указанного потока ввода (то есть независимо от длины), помещает ее в буфер (который связан с конкретным потоком ввода), но программе отдается строка длиной size-1, а остаток прочитанной строки остается в буфере. И именно этим обусловлено то, что в Вашей функции (при условии того, что длина строки в потоке ввода превысила 50 символов) происходит очистка потока от остатка прочитанной строки с помощью следующего фрагмента кода

while((c = fgetc(f1)) != EOF && c != '\n')

что по сути является очисткой буфера, который связан с конретным потоком. И по сути эта самая очистка есть ничто иное, как посимвольное чтение остатка строки в буфер функции fgetc (кроме самого первого прочитанного символа, который оказывается в переменной c).

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

Спасибо заранее! Надеюсь, Вы поймете мою мысль :)))

admin аватар

Вообще-то всё совсем не так

функция fgets читает всю строку из указанного потока ввода (то есть независимо от длины), помещает ее в буфер (который связан с конкретным потоком ввода), но программе отдается строка длиной size-1, а остаток прочитанной строки остается в буфере

Вовсе даже и нет. На самом деле любая операция чтения, неважно чем — fgetc, fgets, fscanf — сначала опустошает буфер, если там что-то было, а когда буфер пуст — делает read, и всё, что прочитается, кладёт в буфер. Размер порции, которым read читает, зависит от реализации, но вообще чаще всего это 4 KB; впрочем, если поток связан с терминалом или с чем-то ещё "последовательным" — ну там с каналом, сокетом, символьным устройством — то прочитано будет всё, что для этого потока было в памяти ядра (если, конечно, там не больше 4 KB).

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

по сути является очисткой буфера

Нет, не является — ни по сути, ни по форме, ни каким-либо ещё способом. Вообще. Совсем. Это не имеет к буферизации никакого отношения. НИКАКОГО! Просто после обращения к fgets, которое извлекло из потока неполную строку, в потоке остаётся непрочитанный хвост этой строки, его этот цикл и убирает. Если бы, скажем, fgets была реализована вообще без буферизации, чтением по одному байту (вот прямо один байт — один read... руки отрывать за такие реализации, но работать будет, хотя и очень медленно) — так вот, это ничего бы в логике не изменило, пришлось бы точно так же дочитывать остаток строки, не поместившейся в память, предоставленную fgets'у. Но возможны и более "хитрые" ситуации, в которых просто-таки категорически вредно пребывать в вашей версии заблуждения. К примеру, во входном потоке может оказаться строчка длиннее, чем размер буфера. Ну вот, скажем, 20000 пробелов там будет, а потом перевод строки. В этом случае цикл, который вы припомнили, опустошит буфер, снова инициирует чтение, снова опустошит буфер, и так ещё минимум трижды.

Большое

Большое спасибо за ответ!

Сколько времени нужно на изучение книг

Здравствуйте, Андрей Викторович!
Хотелось бы узнать, на какое количество часов обучения рассчитаны ваши книги.
Заранее спасибо!

admin аватар

Честно говоря,

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

Но кое-какие оценки дать всё же можно. У нас на ВМК, где я работаю, есть семестровые курсы "Алгоритмы и алгоритмические языки", "Архитектура ЭВМ и язык ассемблера", "Операционные системы", "Системы программирования", "Компьютерные сети", а до недавнего времени я сам читал курс "Парадигмы программирования". Книги покрывают содержание курса "Алгоритмы и алгоритмические языки" процентов на 60, содержание курса "Системы программирования" — процентов на 70, "Компьютерные сети" — процентов на 20, остальные три из перечисленных покрыты целиком и даже с запасом, особенно "Парадигмы" — на эту тему в книге материала раза в два больше, чем было в курсе. Итого получается пять—шесть семестров, а то и больше.

Можно ли быстрее? Можно, наверное, но, я бы сказал, не нужно.

самостоятельное изучение

>>Книги покрывают содержание курса "Компьютерные сети" — процентов на 20

1) На 20% - это по содержанию (глубине раскрытия вопроса) или по структуре (количеству затронутых тем)? Есть ли какие-либо важные темы, которые входят в оставшиеся 80%?

2) Какие источники (книги, статьи) вы порекомендуете для самостоятельного изучения материала излагаемого на курсе "Компьютерные сети" (оставшиеся 80%) ?

Если есть ну

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

admin аватар

Странные вопросы

1) Если в такой формулировке, то скорее по структуре. Те темы, которые я взялся рассматривать, вряд ли рассмотрены поверхностно.

2) Ну уж это точно не ко мне вопрос, не я же этот курс читаю.

Псевдослучайные числа в Си

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

В главе 4.14.3 вы пишете что распредеение младших бит псевдослучайных чисел может быть неравномерно, что это значит?

admin аватар

Вот буквально

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

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

Помогите выбрать дистрибутив

Здравствуйте, Андрей Викторович!
Помогите выбрать дистрибутив. Сидел долгое время под Минтом, потом перешел на дебиан, после решил избавиться от systemd, перешел на Arch.
На Арче от systemd избавиться не удалось, так у этой заразы еще некоторые программы без sudo не работают.
Требования простые: отсутствие сверхсложности (Gentoo я при всем желании установить не смогу), systemd. А также возможность удаления sudo, и нормальная пакетная база в репозиториях (желательно дебиановская).
Помогите пожалуйста, я с ног сбился.

Сейчас

Сейчас приличный дистрибутив линукс найти достаточно сложно. Но если нужен просто "дистрибутив без системд", то существуют готовые списки. Ссылки есть прямо на заглавной странице этого сайта. Или можно сделать расширенный поиск на distrowatch.com. Там, в списке опций "Система инициализации", есть прекрасный пункт: "Какая угодно, лишь бы не системд".

решил избавиться от systemd, перешел на Arch

Странный выбор. Если нравится именно арч, но не нравится системд, то куда проще взять дистрибутив основанный на арче, в котором от заразы хотя бы в какой-то степени уже избавились, вроде того же Obarun или Artix.

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

Что касается несколько раз упомянутого тут Void, я сам его использую в некоторых случаях, если нужен именно линукс. Но, к сожалению, была про него нелестная информация в архивах этой гостевой книги:
http://stolyarov.info/guestbook/archive/3#comment-2434

мелкое дополнение

Позвольте дополнить нелестную информацию.
Команда разработчиков Void Linux, внедрила пакет под названием "removed-packages"
Он устанавливается в систему и отслеживает есть ли в установленной системе пакеты, отмеченнные в репозиториях как заброшенные.
https://github.com/void-linux/void-packages/blob/master/srcpkgs/removed-...

Если вам, например, необходим, например, GNU Icecat, он будет принудительно удален при обновлении системы.
Жалоба пользофателя на форуме:
https://www.reddit.com/r/voidlinux/comments/lr9w2u/why_and_who_is_removi...

Пакет "removed-packages" является жесткой зависимостью от пакета base-system.

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

P.S.
Прошу прощения за потраченное время.

Спасибо, очень

Спасибо, очень полезное дополнение!

На том компе, где я поддерживаю Void (не для себя, сам я линуксом стараюсь не пользоваться), я этот мета-пакет, base-system, давно уже удалил и ставлю только нужные базовые пакеты. Так что мне повезло узнать об этой гнусности (я имею в виду пакет removed-packages) из вашего комментария (ещё раз спасибо), а не из собственного печального опыта.

Да, от таких новостей Void'ом хочется пользоваться всё меньше и меньше. К сожалению, как я уже говорил, приличных дистрибутивов линукса почти не осталось. Сейчас вот думаю попробовать antiX или Obarun.

Не за что

Рад, что мой комментарий по волнующему лично меня вопросу, помог другому человеку "не наступить на грабли"

К Void'у уровень доверия действительно падает.
Например, в официальной новости, объявлен полный отказ от LibreSSL в пользу OpenSSL, начиная с 5-го марта.

https://voidlinux.org/news/2021/02/OpenSSL.html

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

Причины отказа:
1. Новый стандарт TLS 1.3
2. Другие дистрибутивы тоже отказались от LibreSSL
(в качестве примера приведен Gentoo и Alpine)
3. Увеличение скорости разработки

P.S.
Данное решение, косвенно говорит о том, что нет никаких гарантий о последующей "чистоте от s-d" в обозримом будущем.

admin аватар

У-уууу... всё,

У-уууу... всё, R.I.P. Void.

А вот от Alpine я такого не ждал совсем. Видимо, тоже R.I.P. Ей-богу, они в исходники OpenSSL хоть раз заглядывали?

А что, в Devuan и

А что, в Devuan и Openwall LibresSSL вместо OpenSSL используется? Я, честно говоря на эту тему не задумывался, только вот сейчас попробовал поискать информацию. Создалось впечатление, что LibreSSL- вещь крайне малопопулярная.

admin аватар

Нет, в них в

Нет, в них в обоих OpenSSL. Проблема тут в том, что они, собственно говоря, никогда Libre и не использовали, а OpenSSL начали использовать ещё тогда, когда альтернативы ему не было. Обсуждаемые дистры уже использовали LibreSSL, то есть усилия, требуемые на переход к его использованию, там уже были сделаны.

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

Для чего Я писал новости

Этого следовало ожидать, ведь заголовок новости гласит:
"Возвращение к OpenSSL"
Следовательно, в код они заглядывали и их все устраивает, а использование LibreSSL от проекта OpenBSD было временным явлением.

P.S.
Я лишь писал новости, которые считал важными к написанию по одной простой причине: При попытке узнать что-либо о принципах функционирования Void, все что попадается на ресурсах это похвальба.

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

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

admin аватар

Мораль:

Мораль: зависимости — зло. Просто как идея.

Позволю себе

Позволю себе порекомендовать Void Linux. Пользуюсь уже год и нарадоваться не могу. Отдельный плюс - есть установочные сборки на musl.

Сегодня сам

Сегодня сам прочитал новость про возвращение к OpenSSL. С removed-packages не сталкивался и узнал из комментариев. Все это заставляет меня пересмотреть мои рекомендации. Void для меня по-прежнему очень удобен как для работы так и для домашнего использования, но, видимо, можно найти что-то и получше.

Void Linux -

Void Linux - отличная штука, поддержу. Простой, как первый советский трактор. Отдельный плюс за наличие "безголовой" сборки, избавляющей от необходимости выстригать DE (юзаю i3). Единственная проблема, с которой столкнулся - некоторые пакеты собраны с поддержкой расширений процессора, которых в мою старенькую машину не завезли. Например, GNU Octave, установленный из репозитория, падает с Illegal instruction. Отладчиком выцепил AVX-овскую инструкцию vmovsd в библиотеке OpenBLAS, пришлось собирать ее из исходников. А так очень простой и понятный дистрибутив с вменяемой документацией.

Сегодня

Сегодня дистрибутивов Линукс без systemd и с .deb пакетами найти не сложно. Кроме Devuan, о котором писал Андрей Викторович, есть еще MX Linux (на нем сижу), AntiX. Не удивлюсь, если надется еще парочка.

На MX я не смог

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

Ну много не

Ну много не понял: что именно Вы не могли вырезать и что с чем конфликтует?

Я хотел

Я хотел вырезать Xfce и поставить i3. Скорее всего из-за моей неквалифицированности я этого сделат не смог.

apt install i3 i3status

apt install i3 i3status dmenu

На MX Linux все работает.

Parthen аватар

Однако вовремя :)

Поставить i3 я могу, а как полностью вырезать Xfce? От него ж ошметки и заплатки все равно остаются

admin аватар

А зачем? Я вот

А зачем? Я вот от него, например, скриншотер использую, вполне себе программа.

для порядку

А зачем?

Не знаю как Parthen, но вот лично я воспринимаю валяющиеся в моей системе абсолютно ненужные мне файлы примерно как валяющиеся у меня в углу комнаты ненужные мне носки.

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

Parthen аватар

Примерно так и есть

Только вот носки в комнате и у меня валяются :)
Просто этот ваш XFCE это предустановленные программы и пакеты. А что за программы, что они делают я не знаю и разбираться особо не хочу. Понадобится что-то -- я просто это скачаю.
Так что предустановку я разрешаю только базовой системы (ну не LFS же мне собирать).

Если на Арче

Если на Арче избавиться не удалось, то есть Artix (artixlinux.org). Как Арч, только без systemd. Я после установки легко удалил sudo и обхожусь без него. Примерно пол года пользуюсь.

Вот кстати

Вот кстати присматриваюсь на него. Спасибо что напомнили :)

admin аватар

Если хочется

Если хочется дебиановскую пакетную базу, то чем тогда не устраивает Devuan? https://www.devuan.org/ Я как раз сижу на нём, совершенно не уверен, что это "правильно", но уж при наличии вот этого пожелания про дебиановскую пакетную базу совсем странно было бы не использовать Devuan :-)

Разобрался, да не совсем

Здравствуйте, Андрей Викторович!
Поставил Devuan, со всеми проблемами разобрался (похоже систему надо на свежую голову все-таки устанавливать).
Одно я не могу найти: как включить режим гибернации?
Я выбрал систему инициализации по умолчанию (sysvinit вроде), и никак не могу найти как на ней комп послать в гибернацию: все туториалы в инете на systemd.
Подскажите пожалуйста.

admin аватар

Вы не поверите

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

То ли я тупой, то ли сани не едут

Да, devuan я пробовал. Но при первом же пакете со сломанными зависимостями я не смог решить проблему: у Devuan я не нашел сайта с пакетной базой, чтобы скачать и поставить пакет.
Может я как-то неправильно решаю проблему, подскажите тогда пожалуйста.

admin аватар

УМВР :-)

Вроде вот тут: https://www.devuan.org/os/packages всё написано, откуда пакеты качать. В смысле, что прописать в /etc/apt/sources.list

Похоже все же я туплю

Спасибо! Попробую сейчас установить, а там уже по ходу возникновения проблем буду разбираться

Пакеты качать не надо

Что-то подсказывает мне, что установка скаченных откуда попало пакетов и приводит к "сломанным зависимостям" в любом дистрибутиве. При использовании системного пакетного менеджера (apt, yum, dnf, emerge, итд) таких проблем возникать не должно.

not sudo

Андрей Викторович, здравствуйте. В первом томе указано, что крайне желательно не использовать sudo. Подскажите пожалуйста куда копать, чтобы от обычного пользователя можно было выполнять простую перезагрузку и другие действия без входа в root. У меня стандартно в debian fdisk и mount требуют права доступа суперпользователя. В интернете в основном все рецепты с sudo. Пока им и
пользуюсь. Но понять как настроить без него есть желание.

admin аватар

Как жить без sudo,

Как жить без sudo, написано там же: переключаетесь на текстовую консоль по Ctrl-Alt-F[1,2,3...], там входите в систему под root'ом и делаете, что нужно.

mount в повседневной жизни не требует полномочий root'а, просто соответствующие файловые системы (всякие флешки и cdrom'ы) должны быть внесены в /etc/fstab с флагом user. fdisk в повседневной жизни вообще не нужен, ради него можно и на текстовую консоль переключиться. Перезагрузка — если нужна именно перезагрузка — выполняется переключением на ту же консоль и там (то есть уже не в XWin) нажатием старого доброго Ctrl-Alt-Del. Если бы вы использовали Devuan или другую систему с классическим System V init (а не с systemd), я бы вам мог рассказать, как на Ctrl-Alt-Del вместо перезагрузки повесить останов системы a.k.a. выключение машины, но как это сделать с systemd — понятия не имею (и не хочу иметь, systemd не стоит времени, которое тратится на то, чтобы с ним разобраться).

Ну а чтобы выключить машину можно было, не входя под root'ом, можно на /sbin/halt навесить SetUid bit. Только тогда стоит, наверное, предпринять дополнительные меры — скажем, создать группу для этого или хотя бы воспользоваться уже существующей (например, wheel обычно уже есть). Один раз под root'ом сделать вот так:

   chown root:wheel /sbin/halt
   chmod 4750 /sbin/halt

потом ещё себя, любимого, добавить в группу wheel (я бы это сделал просто редактированием /etc/group, но можно и командой usermod, тут дело вкуса) — и всё, команду halt можно будет давать с правами вашего обычного пользователя.

Добрый день,

Добрый день, уважаемый Андрей Викторович! Подскажите, пожалуйста, уже известна цена за каждый том второго издания?
Хотелось бы заранее подготовиться к покупке, а то боюсь, что раскупят Ваши книги с невероятной скоростью!

admin аватар

Отдельно тома

Отдельно тома продаваться не будут, только комплектом; если всё пройдёт как задумано, они даже упакованы будут по комплектам прямо в типографии. Цена пока окончательно не определена, да и как в российских экономических условиях это вообще можно делать? Зато можно прямо сейчас сделать пожертвование на дальнейшее развитие проекта; при определённых условиях комплект книжек можно получить в качестве поощрительного приза, известного также под названием «плюшка».

Опечатки

В ветке по 1-му тому комментарии отключены, поэтому напишу сюда.
Возможно, некоторые из этих опечаток еще не были обнаружены:

Том 1

стр.188 сноска 58 в самом конце не хватает частицы не - "выполнять не могли."

стр.193 в колонтитуле номер параграфа 2.0, хотя еще не закончился 1.6.

стр.233 5-я строка сверху не хватает буквы ю - "записываются между этими словами"

стр.239 в колонтитуле номер параграфа 2.4, хотя еще не закончился 2.3.

стр.307 4-я строка сверху не хватает буквы я - "Неявным преобразованиям"

стр.321 15-я строка сверху - "более-менее покрываются библиотеками"

стр.338 3-я строка сверху - "данные в таком файле"

стр.377 последняя строка - "вставка нового элемента может быть сделана"

стр.389 параграф 2.14.1 абзац 2-й строка 3-я - "В отличие от [подпрограмма!описание]описания подпрограммы"

стр.414 сноска 47 - не уверен, но всё же "Да не пересечёшь ты 80 столбцов в файле твоём"

admin аватар

Спасибо!

> стр.233

good catch

> стр.321

ещё интереснее

> стр.377

ух!!!

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

Том 2Страница

Том 2

Страница 288

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

Компилятор выдает предупреждение

warning: value computed is not used [-Wunused-value]
*count++;

в результате работы программы сумма чисел - правильная, а вот count так и остается равен 0.

Внутри функции *count++ исправил на *count += 1, и работает правильно.

admin аватар

Это уже

Это уже известная ошибка, исправляется, например, на (*count)++; — но вообще так, как вы исправили, тоже нормально :-) (из-за приоритетов).

Андрей

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

admin аватар

Знаете, я

Знаете, я человек ленивый :-) Терпеть не могу каждый день ходить на работу, а ещё мне не нравится, когда приходится судорожно считать дни отпуска и выбирать между катанием на горных лыжах, поездкой на море и прохождением очередного водного похода (все три мероприятия в обычный отпуск не укладываются вообще никак). У преподавателей отпуск длинный, а на работу надо ходить 2-3 дня в неделю (бывало и 4, но это уже прям вот перегрузка-перегрузка). Есть, конечно, и другие причины, и их достаточно много; например, мне хотелось свои мозги развивать, а не сушить. Да и вообще я крупные компании не люблю, если на то пошло; ну а "продукт" бывает только вторичный, привет Войновичу (на всякий случай: в антиутопии "Москва-2042" "вторичным продуктом" называли, извините, обыкновенное дерьмо; сейчас уже эти старые мемы не все знают).

Хотя есть тут один нетривиальный момент. В последние лет этак пять я перестал рассказывать студентам и аспирантам, что преподавание — это такой прям вот классный вид деятельности. С возрастом приоритеты меняются, акценты смещаются, всё такое. Одно время я даже подозревал, что уйти в преподавание стало моей самой большой ошибкой в жизни :-) потом дошло, что если такие вещи вскрываются спустя 18 или что-то около лет, то не такая уж это была и ошибка.

Я чего-то не знаю?

То есть получается, чтобы преподавать, надо закончить аспирантуру? Никаких 5 лет в педагогическом не нужно?
*А что, так можно было что-ли?*
В таком случае это почти идеальный вариант для меня.

admin аватар

Насколько я

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

В ВУЗах вести семинары тоже могут лица с в/о, а вот лекции читать — только с кандидатской степенью (это как-то обходится при необходимости, но, как водится, "в исключительных случаях").

К аспирантуре вроде бы ничего из этого напрямую не привязано, окончание аспирантуры не гарантирует успешной защиты диссертации.

окончание

окончание аспирантуры не гарантирует успешной защиты диссертации
Так теперь и не предполагает — по итогам аспирантуры защищается научно-квалификационная работа, дающая вам право гордо именоваться "преподавателем-исследователем". Хотите степень — дальше мойте полы, ведите занятия за "спасибо" N-ое количество лет, пока начальству не надоест, потом защищайтесь. Болонская система на наших местных рельсах, так ее растак.

admin аватар

Там есть

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

Непонятна работа NOT в FreePascal

Андрей Викторович здравствуйте! Читаю Ваш первый том и не могу понять как работает логический оператор NOT в примере {skip_indented.pas}.
Когда мы проверяем условие:
if not know then
begin
print := (c <> ' ') and (c <> #9);
know := true;
end;

Переменной "know" мы присвоили значение "false" и если я правильно понимаю, то с оператором отрицания "not" условие должно проверятся при значении "true". Но нет... значение "false" остается до тех пор пока мы не выполним условие этого оператора. (пошаговая отладка программы в окне "watches" это наглядно показывает).
Чтобы разобраться в этом я написал свою программку в которой убирал "not" и ставил обратно и смотрел на возвращаемые значения.
program TestBool;
var
know: boolean;
begin
know := false;
if not know then
begin
writeln('With "not": ', know);
end
else
writeln('Without "not": ', know);
end.

В итоге программа возвращает то значение "know", которое мы установим, но с "not" условие выполняется будто оно становится "true", хотя оно "false" (или наоборот), а без - нет. Как это работает?

admin аватар

Мне, откровенно

Мне, откровенно говоря, непонятен ваш поток сознания, то есть я не понимаю, где вы видите проблему. Но важно тут вот что: NOT — никакой не "оператор", это арифметическая операция, причём такая, которая никакого побочного эффекта не имеет. То есть она не меняет значение переменной (в данном случае know), точно так же, как, например, вычисление выражения a+b не меняет ни значение a, ни значение b, а только порождает новое значение, равное сумме a и b.

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

И ещё: я не стану больше отвечать на ваши вопросы, если вы не бросите (НЕМЕДЛЕННО) использовать любого рода интегрированные среды (это к вопросу об "окошке watches"). В них вы никогда ничему не научитесь, во всяком случае, я так считаю; если вы считаете иначе — на здоровье, но ищите себе тогда других учителей.

Спасибо что

Спасибо что ответили. В программе проблем нет и в ней я их не вижу. Проблема в том что мне не понятно как у нас получается проверить условие "if not know then...", когда know := false, а значение true мы ему присваиваем только проверив условие, на момент проверки которого имеем значение false. Т.е. если-бы вместо not know было написано "if know = false then" мне бы было понятно... Как это работает?...(

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

Проверка на истинность

мне не понятно как у нас получается проверить условие "if not know then...", когда know := false, а значение true мы ему присваиваем только проверив условие, на момент проверки которого имеем значение false

Предположу, что вы акцентируете внимание не на том. В if'е можно использовать и know и not know и любую другую логическую конструкцию. Значение имеет только результат вычисления логического выражения, используемого в if'е.
not know вычисляется как "истина", следовательно содержимое if'а выполняется.

admin аватар

Я вынужден, увы,

Я вынужден, увы, повторить, что я не вижу смысла в вашем потоке сознания и продолжаю не понимать, в чём заключается ваша проблема (что в программе проблем нет — это я, извините, и сам знаю). Итак, вот мы в переменную know занесли значение false, там оно и лежит. То есть если написать в качестве выражения вот это вот know, то оно, конечно, будет false. Но в качестве условия в if написано вовсе не оно, там написано not know. Если know равно false, то чему равно not know? По-моему, очевидно, что true, хоть по определению, хоть по здравому смыслу, хоть как. Хотя, конечно, само know по-прежнему false, поскольку никто его не менял. Оператор if пойдёт по первой ветке (которая тут единственная) в том и только в том случае, если условное выражение, записанное между if и then, равно true. Ему оно и равно, поскольку там не know, а именно что not know. Вообще операция not примерно для этого и нужна.

Что касается отладчика, то см. параграф 2.16.4. Это стр. 441. Хотя вообще-то лучше посмотреть всю главу 2.16, если уж на то пошло.

Мне кажется,

Мне кажется, человек не понимает, что под if в качестве условия можно класть не обязательно выражение-сравнение (a = b), но
и любую логическую переменную (и результат логических выражений, примененных к этой переменной). То есть,
смысл текста "if know = false then ..." ему понятен, а смысл текста "if not know then ..." - нет,
в то время как смысл этих обоих текстов одинаков.

admin аватар

Предполагать

Предполагать мы можем что угодно, но что там в действительности происходит — тайна, покрытая мраком. Ясно, что какая-то хрень с формированием парадигмы логического выражения, но какая конкретно — ...

Прошу прощения за беспокойство, но может умный человек подскажет

Ковыряюсь в настройках gnome для Ubuntu 20.4 lts, решил попробовать разобраться, как работают файлы типа appname.desktop.

В них присутствует MimeType=x-scheme-handler/git (например), если я хочу определить действие для uri типа git:// в адресной строке браузера (и, наверное, в консоли? Пока не пробовал).

Собственно, два совершенно глупых вопроса
1) Где можно найти все возможные виды MimeType? Всё, что гуглится, содержит все эти типы для браузеров, но не для операционной системы. В какой книге про это можно прочитать?
Ну, например, может быть есть какой-нибудь x-domain-handler? Или какая-то спецификация, как указывать значение, т.е может быть я уже могу x-scheme-handler/git://customDomain.com задать, но просто нужно соблюсти какие-то правила присвоения параметра, которые где-то описаны (где? Как это найти?)
2) Моя цель попытаться разобраться, как вообще это всё устроено. Хочу начиться передавать некотрое значение в зависимости от доменного имени после протокола, например: https://someDomain.com -> я хочу поймать это значение и передать его в кастомный хендлер .sh (их я уже делать научился), и что-нибудь с ним сделать.

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

Стыдно задавать вопрос, но вот всё-таки его задаю.

(гнум как десктоп используется, если вдруг это важно).

admin аватар

Гм...

В таких случаях префикс X- или x- означает "extension", то есть это кем-то добавленный вариант, не включённый в основную спецификацию. Так что гуглить это, скорее всего, бессмысленно — если нет в официальной документации на gnome (или на ту программу, которая там конкретно за вот это вот отвечает), то больше точно нигде нет.

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

Просто хотел

Просто хотел сказать спасибо за ваш ответ. Мне это немного помогло сориентирваться куда смотреть.

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

Не могли бы вы,

Не могли бы вы, пожалуйста, привести пример наиболее частого использования и при этом оправданного (а значит не контейнер) шаблона класса в языке С++? Просто в книге приведен пример SparseArray, который по сути же и есть контейнер. Посмотрел в книге Страуструпа по С++ (2-е издание) и там предлагается, например, делать обобщенный стек при помощи шаблонов.

admin аватар

С шаблонами

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

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

Поиск в PDF

Андрей Викторович, подскажите, пожалуйста, почему не работает поиск в PDF-книгах. Пробовал искать в программах Adobe Reader и "Просмотр" (Mac). В частности имею в виду книги "Введение в профессию". Может я что-то не то делаю и этом можно исправить?

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

Не первый раз вижу

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

Ну, как бы... Ладно, я не буду вслух озвучивать. Воспользуйтесь алфавитным указателем, если у вас проблемы с поиском.

Поисковый синдром

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

Бич современности

Согласен. Отсутствие умения погрузиться в материал и отсутствие навыков контекстного поиска с сопоставлением - это прямо проблема нынешнего поколения.

Мне совершенно жутко думать, что в наше время мы всё ближе и ближе приближаемся к анти-утопии. Как было у Дугласа Адамса: "42".
Только вот у нас ещё будет придаток-продолжение:
- Что 42?
- Мне так поисковик сказал
- И что это значит?
- 42
- Так тебя же спрашивали готов ты взяться за работу или нет...
- Мой ответ 42.

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

admin аватар

Да, это так и

Да, это так и задумано. Если быть точным, текстовый слой в PDF-файлах сломан намеренно, чтобы нельзя было (без серьёзных плясок с бубном, которые, конечно, возможны, но требуют ну хоть какой-то квалификации) из этих PDF'ов делать copy-paste фрагментов текста. То, что поиск не работает — побочный эффект. И нет, с этим ничего сделать нельзя. Точнее, технически-то, конечно, можно, но я с этим ничего делать не намерен. Я, больше того, всерьёз рассматриваю перспективу выкладывать PDF, сгенерённый через изображения страниц (в формате PNG) в роли промежуточного представления, тогда там вообще текста не будет ни в каком виде.

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

Использование

Использование PNG в качестве страниц неизбежно приведет к увеличению размера pdf файла, и к сожалению это ничем не поможет - все равно это довольно просто (хотя и не всегда красиво и качественно) можно обойти програмами-распознавателями текста.

admin аватар

Размер при этом

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

Тайлинговые оконники

Здравствуйте, Андрей Викторович!
Читаю "Программирование: введение в профессию. Том 1: азы программирования", а точнее главу 1.4.

Вы упоминаете разные DE и WM, говорите на какие лучше ориентироваться, а какие лучше избегать, но вы никак не упоминаете о тайлинговых оконниках. Сам использую тайлинговый wm, поэтому мне стало интересно узнать ваше мнение, почему вы их не упоминаете?

Возможная неточность (ст. 71):
> С самого начала лучше ориентироваться на "облегчённые" оконные менеджеры, такие как IceWM, Xfce, LXDE и другие.
Xfce и LXDE -- DE, а не оконные менеджеры.

Большое спасибо за книги!

admin аватар

С тайлинговыми

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

Xfce не сразу стал DE, как ни странно — я ещё помню его без иконок, хотя к тому времени, когда в 2016 году вышел первый том, Xfce уже опопсел. С LXDE, конечно, виноват, погорячился :)

Проблему я уже устранил, в новом издании в качестве "простых" оконников перечислены IceWM, Fluxbox, Window Maker, BlackBox, twm, mwm, fvwm и AfterStep.

Почему бы не i3

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

admin аватар

Тьюториалы в

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

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

Помогите

Помогите разобраться с примером на странице 382 первого тома.
Непонятна постановка вопроса про отсутствие текущего звена в списке. Это значит, что список пуст? И почему вставка слева от несуществующего - это вставка в конец?

admin аватар

Нет, если

Нет, если текущего нет — это значит, что в списке могут существовать звенья, но ни одно из них сейчас не считается текущим.

Что касается вставки "слева от несуществующего", то это просто предположение, которое само по себе ни из чего не следует. Зато это предположение позволяет вставить новый элемент в любое место списка, используя операцию "вставки слева от текущего": перед любым элементом X мы вставляем новый, объявив X текущим (в том числе X может быть первым элементом, тогда это будет вставка в начало списка), а вот в конец списка таким способом вставить не получается — но если ввести вот это вот предположение, то тогда всё получится.

Интересно, что

Интересно, что если ничего не присваивать current, то, вроде бы, получается вставка справа от "текущего"

admin аватар

Если

Если переменной ничего не присвоить, то её значение не определено. Судя по тому, что у вас ничего не упало, видимо, там оказался nil. Ну, повезло.

Доброго

Доброго времени суток,Андрей Викторович
Такой вопрос, рассматриваю заключительную часть вашей книги, как инструмент для входа в изучение c/c++, используя Unix системы, но проблема в том что использовать эти языки, планирую использовать для разработки в игровой индустрии, но она в бо́льшей части заточена на разработку на Винде, что делать в таком случае?

Как это делаю я

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

А что

А что собственно заточено под форточки? По-моему сейчас все движки есть под Линукс. К тому же, уважающий себя разработчик вряд-ли станет использовать подобное.

Да как бы да, но нет

Движки-то может и есть, но вот они в большинстве "user-friendly". И заточены специально под странности винды.

admin аватар

Что делать?

Что делать? Искать другие книги, разумеется. От моих книг бесполезно брать только "заключительную часть", толку не будет заведомо.

Немного

Немного запутался в 3.2.14 второго тома (стр.79).
1) Несколько раз встречается следующее: "память по адресу [edi]". Насколько я понял, запись [edi] обозначает саму область памяти, с адресом который хранится в регистре edi, поэтому, кажется более логичным либо просто память [edi], либо память по адресу из регистра edi (хотя и громоздко получается).
2) В описании команд scas сказано, что они сравнивают аккумулятор с [edi], но в последующем примере используется регистр esi при применении команды scasb.

admin аватар

"Саму область

"Саму область памяти" на языке ассемблера не обозначает ничего и никогда. Конкретно в NASM квадратные скобки обозначают исполнительный адрес (операнд типа память), но это не "сама память", это такой операнд, который вычисляется и результатом вычисления становится адрес. Например, в команде lea такой операнд, несмотря на квадратные скобки, ни к какой памяти не обращается.

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

По второму вопросу — да, там опечатка. Уже известна и даже исправлена, в смысле во втором издании её не будет.

VIM

Установил на Linux Mint, VIM, так как не было, был только нано но хотел как в книге.

открыл конадой vim hello.pas, написал програмку с книги, возможности сохранить нет, могу только закрыть терминал но при этом ничего не сохраняется.

мне не понятен в книге набор клавиш для закрытия VIM, Esc-двоеточие-wq-Enter, это что? как это нажимать? по очереди или все вместе?

как вообще файл сохранить в VIM?

admin аватар

ВМЕСТЕ?! вы,

ВМЕСТЕ?! вы, пардон, видели когда-нибудь, чтобы клавиши, не являющиеся "модификаторами" (то есть Shift, Ctrl и Alt), вместе нажимали? Разумеется, по очереди, одну за другой. Файл "вообще" сохранить очень просто: в командном режиме :w (если был режим ввода, то сначала Esc). Между прочим, в книге это всё написано.

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

Первый том

Free Pascal Compiler version 3.0.4+dfsg-18ubuntu2 [2018/08/29] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling hello.pas
Fatal: Can't find unit system used by hello
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

В чем тут проблема. не могу запустить компилятор на линукс.

Убунту на WSL?

Убунту на WSL?

что такое

что такое WSL.

установлен Linux Mint. 19.3

также был установлен Free Pascal компилятор.

admin аватар

WSL

WSL — это подсистема Windows-10, делающая вид, что она линукс. Видимо, это всё-таки не ваш случай.

А теперь расскажите нам, откуда у вас на mint'е появился бинарник компилятора Free Pascal ubuntu'овской сборки. Ну или хотя бы просто расскажите, что конкретно вы делали, чтобы поставить в системе этот компилятор.

Спасибо за

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

сначала установил с этой страницы

https://www.freepascal.org/download.html

Выбрал: AMD64/Intel 64/x86_64, Система у меня 64 битная.
не помогло, начал смотреть дальше что можно сделать на юбюбе.

потом задал команду: sudo apt-get install fpc

командa fp в терминале запускается, открываю файл
program hello;
begin
writeln('Hello, World')
end.

запускаю Run, выдает ошибку: compile failed, fatal: Compilation aborted, cant find unit System used by hello

admin аватар

А не надо так

А не надо так делать. В чём там проблема — сказать не могу, мне запускать среду "lazarus" (а по команде fp именно она запускается) даже и в голову не приходило никогда.

Нужный вам пакет называется fp-compiler, соответствующая команда в командной строке — fpc.

admin аватар

На чём основано

На чём основано подозрение?

Знаю, что

Знаю, что многие начинают изучать Линукс именно с WSL. Сколько по форумам читал разного рода информацию про WSL, на нем у людей странные проблемы разного рода вылетают, которых нет, если установить Линукс полноценной системой. Сам когда-то пользовался Убунту, и не было проблем с FPC никаких вообще. По крайней мере в то время. Потому задал сей вопрос!

admin аватар

Кажется, там

Кажется, там всё хуже :-)

admin аватар

Проблема тут в

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

Первый Том

читаю ваш первый Том.

Спасибо за книги.

почему не показано как устанавливать компилятор fpc в вашей книге.

запятые в ('Hello, World') тоже вводят в заблужение. это ведь не запятые а черточка просто.

Сиди потом и думай как начинающий изучать программирование что и как...

и проверка бота сложночитаема, нельзы было буквы побольше сделать?

admin аватар

> почему не

> почему не показано как устанавливать компилятор fpc в вашей книге.

Потому что это зависит от дистрибутива Linux, а их много разных.

> запятые в ('Hello, World')

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

> и проверка бота сложночитаема,

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

Сейчас во всём

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

admin аватар

Ну почему, на

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

И снова во всём виновата реклама?

>Но спрос, конечно, удовлетворить не удастся никогда

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

admin аватар

Да нет,

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

Получается

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

Получается, что для мастера(программиста, врача) самый адекватный путь - изучение наук(связанные с отраслью) и овладевание навыками в самой конторе, мастерской, операционной, итд?

admin аватар

Именно так всё

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

Ну а для программистов это всё получается само собой без всяких сертификатов.

Ну, если я вас

Ну, если я вас правильно понял, получается, что проблема в педагогах университетов или вы под макако-конвейером имели ввиду компании-мелочёвки?
У меня вон, знакомый (20 лет, 3 курс, некий университет в Севастополе) учится на 09.03.02 и им там на вебе: первая парам xml разметка, вторая пара js, а третья пара и до конца семестра - JQuery... Учить библиотеку в университете - ну такое... Университет должен фундаментальные знания давать, а не синтаксисы библиотек надиктовывать. Я уж не говорю о том, что сами библиотеки - это в большинстве случаев кромешный ужас для солидной разработки.

admin аватар

В

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

У меня, лично, в

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

В моём понимании университеты (вообще все, в особенности лидеры, такие как МГУ\СПбГУ) - продали гордость за деньги, потому что знаменитая "Кафедра Яндекса" - вызывает у меня судороги полушарий своим названием. И вот такие структурные единицы внутри образовательных учреждений (морально утративших статус университета после подписания контракта на путанство) разрушают всё то, чем университеты могли бы гордиться.

К примеру, в западной программе CS50 (Harvard\Stanford) - нет ни одного изучения библиотеки (насколько мне известно), правда и образование там, - дорогое. Но по тому и нет их, наверное, что каждый заплатил за себя, и университету деньги не нужны.

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

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

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

p.s Просвятился благодаря вам, узнал разницу между преподавателем и педагогом, спасибо. Не задумывался раньше, вроде бревно перед глазами, а не видно. Спасибо.

Ограниченный кругозор

самое отвратительное (на мой взгляд), что люди сами начинают хотеть работать в этих гигантах

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

Я тут недавно и

Я тут недавно и не в первый раз вижу, что корпорации это зло. Я конечно примерно понимаю почему, но всё-таки полной картины нету. Где можно подробно об этом почитать? И почему работать в них это плохо?

Вот интересная

Вот интересная аналогия, к размышлению.

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

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

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

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

корпорации это зло. Я конечно примерно понимаю почему

почему работать в них это плохо?

Вы понимаете, пусть даже и "примерно", что корпорации -- зло, но не понимаете, почему работать в них плохо? То есть, вас что, интересует глубоко философский вопрос, "почему участвовать в увеличении количества зла -- плохо?"

русскоязычная математическая литература

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

  • Качественная подборка книг есть на сайте https://math.ru/
  • Очень ценю издательство при Московском Центре Непрерывного Математического Образования (МЦНМО). Мне кажется, совсем уж проходных книг они не издают. Сайт МЦНМО: https://mccme.ru/ Там ссылки на издательство и на другие ценные ресурсы.
  • Отдельно хочу упомянуть книжечку хитрого академика Арнольда "Задачи для детей от 5 до 15 лет" (на math.ru есть). Мне за сорок, и я до сих пор радуюсь как ребёнок от 5 до 15 лет, если мне удаётся решить оттуда очередную задачу. Хотя первые полтора-два десятка, конечно, решились легко. Очень рекомендую. Можно устроить тут обсуждение задач, если Андрей не против.

Доброго

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

P.S. Большое спасибо за вашу книгу. Читаю оглавление четвертого тома и мечтаю добраться до него, проработав оставшуюся до него часть.

Мне сходу

Мне сходу вспоминается такое классическое введение в математику, как книжка Куранта и Роббинса "Что такое математика?"

admin аватар

Прелесть какая

Спасибо! Жалко, что там некоторые рисунки битые почему-то.

Мда,

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

Ну вот тогда, в ассортименте :)

http://gen.lib.rus.ec/search.php?req=%D0%BA%D1%83%D1%80%D0%B0%D0%BD%D1%8...

admin аватар

К сожалению, я

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

Добрый день,

Добрый день, Андрей Викторович! Возможно вопрос покажется глупым, но всё же. Можно ли программирование и математику изучать одновременно? Или всё же стоит сначала изучить математику, а потом перейти к вашим книгам по программированию?

admin аватар

Да, вопрос,

Да, вопрос, прямо скажем, крайне странный. А как вы собираетесь "изучить математику"? Что, вот прямо всю? Но в мире нет ни одного человека, который знал бы всю существующую математику, вот в чём проблема. И математика стоит того, чтобы изучать её всю жизнь — пока мозги окончательно не скиснут. Но, сами понимаете, тогда ни мои книжки, ни какие-либо ещё уже не понадобятся, поздно будет.

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

Книга по математике

Добрый день, Андрей Викторович! Что Вы скажете по книге "Дискретная математика для программистов", которую написал Ф.А.Новиков?

П.С. Оставлю Вам ссылку на книгу.

https://stugum.files.wordpress.com/2014/03/novikov.pdf

admin аватар

А ничего не

А ничего не скажу. У меня она на полке стоит в бумаге, но я до неё так и не добрался, увы, как и до многих других книг.

Обучение через реверс-инжиниринг

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

Вы молоток пробовали реверс-инжинирить?

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

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

В общем, изучая реверс-инжиниринг вы освоите реверс-инжиниринг, а не программирование.

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

admin аватар

К

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

Мною движет

В этом случае мною движет не желание ковыряться в чужих программах, а понять как программное обеспечение работает на двух уровнях - уровне архитектуры набора команд и на уровне абстракций языка. В наглядном и простом виде. Чтобы в голове сложилось хорошее представление об основах функционирования программы в памяти и логике формирования средств языка. Так как она выглядит с точки зрения работы ЦП и памяти. До определенного уровня, буквально базовых конструкций и простых программ. Вопрос вот в чем -послужит ли такой способ именно этой цели? Но раз Си не подходит, то избежать "лишнего" машинного кода в исполняемом будет сложно. Хотя я подозреваю, что этим можно заняться позже. Сначала изучив Паскаль.

Уровень архитектуры

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

Можете попробовать почитать эту книгу "Ч.Петцольд - Код. Тайный язык информатики".
Неплохое введение в "низкий уровень" для начинающих.

admin аватар

Реверс-инжиниринг

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

Вообще в IT существуют и такие виды деятельности, в которых умение расковырять машинный код весьма востребовано, только это, во-первых, не программирование, и, во-вторых, хотя бы немного уметь программировать для всего этого, по-моему, совершенно необходимо.

У меня вопрос

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

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

admin аватар

Слушайте,

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

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

В чем конкретно

В чем конкретно по вашему заключается изъян моего мышления?
Чем он наводит ужас? Я просто пробую изучать вопрос. Как получается... К данным, как я понимаю, все равно доступ идет через смещение. Ай в любом случае. Раз вы так категоричны в своих суждениях. Буду и дальше плодить свои потоки сознания. Тихо себе в тряпочку.

admin аватар

Если вы хотели

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

Все таки вы сверх обобщили

После такого категоричного ответа моя, и без этого нулевая, самооценка упала еще ниже. Если я так ужасен, то как я пойму ваши книги? Я решил отложить книгу и попробовать что-то написать самому. Я реализовал простую змейку. Там конечно еще есть что делать с ней. Но основная логика работает. Использовал модули ptcGraph и ptcCrt. В интернете посмотрел только пару вещей про нажатие клавиш, про процедуры модулей, random. И Андре Ламота почитал про главный цикл игры. Это конечно может не бог весть что, но это опровергает ваше сверх обобщение и ужастификацию моих скудных потоков сознания. Все таки чтобы это сделать надо немного что-то понимать. Значит все не так плохо. Буду продолжать читать ваши книги за неимением лучшей альтернативы. Но доверять себе буду теперь больше.

admin аватар

Змейка -- это,

Змейка — это, несомненно, правильное направление, и если она получилась — значит, с перспективами всё хорошо.

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

И снова про ВУЗЫ

Здравствуйте, Андрей Викторович!
Стою перед сейчас выбором, собственно, направления в ВУЗ: лингвистика и программирования.
Интереснее более программирование, но качество обучения, насколько я могу судить по отзывам в России не очень.
По лингвистике результаты более лояльные.
В чем вопрос: стоит ли вообще идти в ВУЗ именно на "программисткие" специальности, или можно (и нужно, как я думаю) освоить все самостоятельно?
Заранее спасибо за ответ!

Для начала определитесь с вашей будущей профессией

Главное, от чего стоит плясать - задайте самому себе вопрос: чем я буду зарабатывать на жизнь после окончания ВУЗа? И честно ответьте себе на него. Только реалистично, и без крайностей, типа, хочу быть олигархом. После этого выбирайте специальность, дающую наиболее подходящий набор знаний, необходимых в вашей будущей профессии.
Хотите работать дипломатом - вам нужна одна специальность.
Хотите быть директором сети Пятерочка или Макдональдс - другая.
Хотите писать софт для микроконтроллеров и ПЛИС - третья.
И не путайте вашу будущую профессию и настоящее хобби. Пусть хобби им и остается. А образование надо выбирать именно исходя из будущей профессии, а не хобби.
В редких случаях они могут совпасть, но это, скорее, редкое исключение, а не общее правило.

admin аватар

Какой яркий перл, а?

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

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

Теперь во-вторых. Есть, конечно, редчайшие случаи таких юных чуваков, которые точно знают, кем будут, и ими в итоге и становятся. Я вот, например, программистом хотел стать ещё лет в тринадцать. Ну так тут их поджидает ещё одна проблема: будущие фанаты той или иной профессиональной деятельности могут категорически не понимать, что для этой профессии надо, а чего не надо. Я вот, например, даже в девятнадцать ещё толком не понимал, нахрен надо столько всякой математики. Среди моих друзей, таких же фанатов программирования, как и я, многие шли в непонятные ВУЗы по принципу «там математики поменьше» — ей-богу, были такие. В эту топку подбрасывают топлива ещё и те якобы-программисты (в основном, конечно, вебщики и прочие 1С-ники), которые, уже работая по избранной специальности, продолжают повторять как мантру это своё «программисту математика не нужна», не замечая, насколько низок их собственный профессиональный потолок, и не понимая (что вполне естественно), что низкая высота потолка как раз и обусловлена отсутствием фундаментальной (в том числе математической) подготовки.

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

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

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

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

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

Лично для меня

Лично для меня как раз проблема в том, что меня будут учить тому, что мне нравится.
Или переформулирую, мое увлечение будут контролировать. А насколько я себя помню, в программировании я продвинулся хоть немного только из-за того, что меня никто в этом не контролировал и я был волен заниматься как и когда захочу.
Поэтому я и мечусь между около-программистких специальностей (та же лингвистика хоть сколько-то мне интересна).
Я боюсь, что ВУЗ отобьет у меня все желание заниматься программированием, как это уже было с литературой (очень любил читать, а сейчас почти ни читаю).

Я боюсь, что ВУЗ

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

-----------------------------------------------------------

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

admin аватар

Ну это

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

Так или иначе, для программирования нужен хорошо прокачанный мозг; прокачка мозга достигается изучением высшей математики (пофиг, что она как таковая почти вся потом не потребуется, дело не в ней самой, дело в её влиянии на мозг). Если хотите изучать что-то лингвистическое, но при этом оставить себе возможность быть программистом (не вебщиком или 1С-ником, и даже не питонистом, а нормальным программистом, который понимает, что делает) — выбирайте такие направления лингвистики, где есть математика. Здесь я не совсем в курсе того, что где есть; точно знаю, что в МГУ на отделении структурной и прикладной лингвистики математика изучается, насколько глубоко и насколько адекватно — не знаю.

Закономерный вопрос

Возникает закономерный вопрос: а где и как ее учить?
Вот сижу и ботаю учебник своего класса по началам мат. анализа. В свободное время смотрю всякое интересное в интернете, читаю любимого с детства Перельмана.
Но нужна хоть какая-то систематизация. Иначе в голове -- каша. Какой-то учебник что-ли, который все правильно по полочкам разложит в голове.
P.S. Насчет лингвистики. У меня почему-то давно в голове висит идея, что надо просто создать язык, похожий на естественный, но упорядоченный для компьютера. Как Эсперанто, чтобы все было в строгом порядке: словобразование, грамматика и пунктуация. В общем легкие правила без исключений.
Я думаю, что язык созданный специально для компьютера, им будет распознаваться в разы проще, что позволит:
1) не прибегать к услугам суперкомпьютеров корпораций
2) следовательно, систему сможет сделать каждый, а это уже open source появится
3) Прочие следующие из этого плюшки: оффлайн, настройка под себя и т.д.
И настолько эта идея меня долбит каждый день, что хочется самому такой язык создать.

искусственные языки

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

Я так понимаю, вы не про так называемые "языки программирования", а именно про язык заменяющий/дополняющий естественные языки? То есть, язык на котором люди смогут общаться как между собой, так и с компьютером?

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

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

Хотя насчёт попыток "общаться" с компьютером на человеческом языке, пусть даже и искусственном, я, надо сказать, настроен скептически. Компьютер -- тупая железка, с ним не нужно "общаться", ему нужно давать чёткие инструкции для выполнения. А для этого уже есть "языки" программирования, как системные, так и командно-скриптовые, этого более чем достаточно.

admin аватар

Да нет, тут,

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

Но вообще да, убедить всё человечество отказаться от естественных языков в пользу искусственного вряд ли получится, на Эсперанто ведь никто не перешёл.

Да нет, тут,

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

Гм, да я, вроде бы, именно так и написал:

То есть, язык на котором люди смогут общаться как между собой, так и с компьютером?

Даже интересно, это я так непонятно выражаюсь или вы просто невнимательно прочли?

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

Но вообще да, убедить всё человечество отказаться от естественных языков в пользу искусственного вряд ли получится, на Эсперанто ведь никто не перешёл.

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

admin аватар

Всё проще

Всё проще — это я Логлан перепутал с чем-то другим (и понять бы ещё, с чем).

Анон все-таки прав

Я как-то упустил дискуссию, отпишусь :)
Моя цель - создать язык, хоть сколько-то напоминающий ествественный (иначе можно на bash с компьютером разговаривать), который будет понятен компьютеру. Разговаривать на нем в посведневной жизни люди не будут.
Эсперанто изначально провальный проект, я его привел как пример естественного языка в принципе. Право на существование я думаю, имеют только общеязыковые. Как к примеру межславянский - я его понимаю, просто потому что носитель одного из славянских языков, мне не надо его учить. Вот только такое и будет жить.
Возвращаясь к теме, я думаю построить чуть ли не суб-культуру (ну Наполеновские прям планы). Можно просто упростить и смешать несколько языков, зафиксировать четкий порядок слов, окончания привязать к части речи (да-да, как в Эсперанто).
Итого получится что-то по типу такого:
- Shi! Holu systemo is brokene?
- Si, systemo havo 3 troublo. Holu vi fixe?
Грубо говоря, приписываем терминалу личность. У всех не-Unix пользователей функций естественно будет меньше - запрошу я права на чтение информации системы меня трояном посчитают.
В общем, упрощаем все проблемы NLP. Убираем падежи, части речи можем распарсить простой регуляркой. Можно было бы вообще сам эсперанто приспособить, но Земенгоф в книгах обязал всех эсперантистов не отклоняться от изначальной идеи. Так что слегка модифицурию и упрощу, будет в самый раз.
Так вот главное в программе - все под открытой лицензией и работает в офлайне. Такого нынешние "голосовые помощники" предложить не способны.
И опять резюмируя: голосовой терминал с характером/личностью и шуточками :) Естественно для работы будет строгий режим, где остается только рабочая ифнормация.

admin аватар

Это уже не ко мне вопросы

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

По поводу языка вопрос уж точно не ко мне. Мне почему-то кажется, что оно не взлетит, как не взлетело Эсперанто и как не взлетели другие подобные проекты, которых было несколько; но я, опять же, не лингвист. Впрочем, если речь идёт о какой-то связи лингвистики с компьютерами — то без математики в этой области делать нечего, то есть «какая попало» лингвистика не подойдёт, нужна именно та, которая с математикой.

Как вы относитесь к курсам?

А как вы относитесь к курсам по программированию? Все подряд твердят что курсы лучше ВУЗов, в последнее время стало каким-то шаблоном. И как относитесь к платформам по типу GeekBreins

Вероятно, фразу

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

admin аватар

К сожалению,

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

admin аватар

"Платформы

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

Сам стоял перед

Сам стоял перед таким выбором, в итоге прогадал - выбрал лингвистику, а классическая лингвистика сейчас мало где востребована.
Если хотите расширить варианты своей занятости в будущем - выбирайте прикладную (компьютерную) лингвистику. Там у вас будет математика, лингвистика, программирование. Сейчас на подъеме автоматическая обработка естественного языка (NLP, Natural Language Processing). В этой области, как правило в настоящее время, применяются методы ML, статистики, математики.
Только обязательно посмотрите программу специальности, темы курсовых, обратите внимание на специалистов, которые преподают. Желательно, чтобы они участвовали в промышленных или научных проектах по NLP.
В дополнение к МГУ, есть программа «Фундаментальная и компьютерная лингвистика» в ВШЭ, можете ознакомиться с ее содержанием по ссылке https://www.hse.ru/ba/ling/

admin аватар

Сложно

Вот это вот "освоить всё самостоятельно" — оставляет простор для толкования. Что "всё"? Инструменты? Ну, там, языки программирования и всё что вокруг? Безусловно. Вот то есть вне всякого сомнения.

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

Лингвистика эта ваша — это тоже понятие растяжимое. В МГУ на фиолологическом факультете есть отделение структурной и прикладной лингвистики, там математика есть. В остальной части того же факультета, насколько я понимаю, математики нет. Без математики вы за несколько лет обучения в ВУЗе свои мозги похороните.

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

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

А почему?

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

admin аватар

Все ваши

Все ваши догадки не имеют ничего общего с моей причиной. А причина очень проста: само словосочетание «техническое образование» представляет собой оксюморон. Техника — это не наука, это именно техника, то есть ремесло. Ремесло не может быть передано в учебном заведении, оно передаётся только в мастерской — непосредственно в ходе работы, от мастера к ученику. В технических ВУЗах люди, никогда не бывшие инженерами, пытаются других людей учить, как надо быть инженерами; потом выпускник ВУЗа приходит туда, где надо работать инженером, показывает свой диплом в отделе кадров, и никого, кроме кадровиков, диплом не беспокоит: обычно первое, что слышит новый инженер от своих более старших коллег — предложение забыть всю ту чушь и дичь, которую ему наплели в ВУЗе.

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

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

А после

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

admin аватар

Да конечно,

Да конечно, стоит. Проблема в том, что мотивации обычно не хватает.

Получается

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

admin аватар

Сложный

Сложный вопрос.

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

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

И как я забыл

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

admin аватар

Да ну нет, конечно

Работа на старших курсах не имеет никакого отношения к образованию. Несомненно, она полезна, просто человек начинает получать специальность (ремесло) несколько раньше по времени, и если на это есть ресурс — прекрасно. Но обучение в ВУЗе тут ни при чём, работа не может ни с какого боку рассматриваться как его часть.

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

А можно ли

Добрый день, Андрей Викторович. Возник такой вопрос, а можно ли выучить самому высшую математику? Живу в Кыргызстане, учусь на программиста, и у нашей системы образования явно пробито дно. Учим математику наверное за класс 9, никакой высшей математики. А про те инструменты "программирования" которые мы учим, вам лучше не знать. Единственным вариантом остаётся самообучение, математика наверное у меня на уровне 6-7 класса, но есть очень большое желание стать программистом. Возможно ли мне от самых "низов" математики выучить высшую математику самому? Может вы могли бы посоветовать какие-то книги?

admin аватар

Конечно, можно

Что можно — в этом я не сомневаюсь. Просто, в отличие от программирования, изучить математику нужно очень хотеть.

По книгам, наверное, вопрос всё-таки не ко мне.

Навыки сисадмина

Скажите, а ХОРОШИЙ программист должен владеть навыками сисадмина?

admin аватар

Сисадмин

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

GUI на pure C

Доброго здравия, А. В. Приходилось ли вам писать гуёвый софт на Си (с использованием библиотек виджетов, не [n]curses)? Если да, могли бы порекомендовать что-нибудь для сотворения оного безобразия? Для C++ изобилие библиотек виджетов, а вот Си, имхо, как-то вниманием обделен. Понятно, что есть GTK+, но он уж очень монструозен и мейнстримен. Заинтересовал IUP от создателей Lua (именно простотой и легковесностью), но вот со сборкой у него все довольно неоднозначно - требуется какой-то "фирменный" Lua-шный наворот над православным make, в частности.

"фирменный"

"фирменный" Lua-шный наворот
Ничего подобного - обычный make, с Lua там никакой связи нет. Вызывать функции из кода на Lua можно, есть привязки, но сама по себе библиотека вполне сишная. Она, правда, требует для своей работы GTK или Motif, в зависимости от конфигурации, поэтому тянет довольно много зависимостей, но сама по себе весьма незамысловата.

admin аватар

Нет, такого я

Нет, такого я никогда не пробовал. Как-то так предпочитаю для написания GUI использовать ООП, оно там очень к месту. Можно ещё, наверное, на Motif посмотреть. Ну и Tk — в принципе это библиотека на plain C, насколько она на Tcl завязана -- не знаю.

как пользоваться youtube

Кстати, навеяло темой про интервью.

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

Есть неплохой, хотя и малоизвестный, инструмент для просмотра ютуба без помощи браузера. И нет, это не youtube-dl. youtube-dl хорош, но только для просмотра/скачивания видео по уже имеющейся ссылке.

Называется youtube-viewer, может знаете? Позволяет делать поиск по видео, по каналам, читать комменты, может ещё что-то, с чем я не разбирался. Есть консольный вариант, и варианты под GTK+2 и GTK+3. Написан на перле (да, понимаю, скриптовый язык, фе, но это меньшее из зол по сравнению с JS в браузере).

Пользуюсь уже несколько лет, все мои потребности в ютубе он полностью покрывает.

кстати, о рекламе

Ещё один важный момент, о котором я не упомянул. Когда я смотрю видео с ютуба при помощи youtube-dl или youtube-viewer (а я только так его и смотрю), то никаких стандартных ютубовских рекламных вставок я не вижу. Я к этому уже настолько привык, что просто забыл, как оно через браузер.

Рекламные вставки

Когда я смотрю видео с ютуба при помощи youtube-dl или youtube-viewer (а я только так его и смотрю), то никаких стандартных ютубовских рекламных вставок я не вижу.

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

SponsorBlock

А ещё есть SponsorBlock - проматывает все рекламные интеграции в самом видео.
https://sponsor.ajay.app/
Я смотрю через mpv (https://mpv.io/), поэтому использую этот скрипт: https://github.com/po5/mpv_sponsorblock

Приглашаю вас на интервью :)

Доброго времени суток, Андрей Викторович!
Меня зовут Алексей, я программист (.NET C#), и кроме программирования я веду канал на ютубе. Называется он "АйТиБорода". На нем я беру интервью у коллег на тему технологий и персоналий.
Хочу предложить вам сделать совместный контент про вас и про язык С. Тем более, что мои подписчики вас хорошо знают и ждут в гостях на канале :)

admin аватар

Вот это, как говорят, заход...

Вы меня, честно говоря, озадачили.

Пожалуй, это можно устроить при определённых условиях, а именно: ролик с моим участием, помимо ютюбика, должен быть выложен куда-то ещё в виде файла для скачивания (то есть именно не "встроенное видео", а файл в видеоформате, который можно скачать по обычной прямой ссылке, НЕ с файлопомоек, НЕ с торрентов и прочих пиринговых сетей, а вот прямо прямая ссылка на видеофайл, отдаваемый по http/https, без каких-либо защит от hotlink'ов и прочих трудностей), причём в двух версиях: одна совпадающая с той, что на тюбике, вторая такая же, но с вырезанными рекламными вставками. И в описании видео на тюбике должна быть ссылка на страницу, где это всё лежит, или прямо на сами файлы. А сама страница, где лежат файлы, не должна содержать никакой рекламы. И лежать там эти файлы должны по меньшей мере до тех пор, пока основной ролик доступен на ютюбе. Если вдруг есть проблемы с хостингом, могу на своём сайте выложить.

Ну а нет -- значит нет.

Ну ради такого

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

admin аватар

Ну, это дело

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

Впрочем, мы вроде бы обо всём договорились, мои условия Алексея, как я понял, не напрягли. Единственный момент — совершенно непонятно, когда это будет. Ему из Минска в Москву выбраться не так просто.

Единственный

Единственный момент — совершенно непонятно, когда это будет.
АВ, прояснилось ли что-нибудь? Хотя бы известно, будет ли это до Нового года?

admin аватар

До нового года

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

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

Любопытно, а

Любопытно, а никто из посетителей сего сайта не интересовался, грешным делом, у Бороды - он в курсе вообще? Анонимусы ведь такие анонимусы... По крайней мере, на момент интервью с Чайкой он о Столярове слыхом не слыхивал.

Ответочка неверующим

Это был я, Борода Лёша. В знак доказательства смотрите стену Ютуба - чиркану там пост, что это я тут поднял бучу :)
За webasm могу сказать, что люблю новые вещи, и так как я пишу на дотнетах, было грех не воспользоваться blazer'oм.
В целом, к своему сайту я отношусь как к эксперименту, а не как к "лицу".
И да, на все условия я согласен, и даже больше (А.В. ответил вам на почту)

admin аватар

люблю новые

люблю новые вещи

Ну всё, сейчас тут такое начнётся :-D

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

admin аватар

Интервью с

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

А где

А где можно посмотреть это интервью?

admin аватар

Вроде ссылку

Вроде ссылку сюда уже приносили: http://www.stolyarov.info/guestbook/archive/3#comment-2782

Уж не мне вам

Уж не мне вам советовать, но я бы очень хотел увидеть интервью, да и сообществу это было бы полезно.
Понимаете, как бы то не было, но проблема JS не в том, что люди не могут жить без него. Проблема в том, что люди вообще не подозревают о его существовании.
Говорю за себя, пол-года назад я был таким. Уже как 2 года метался между языками программирования, гребанными курсами и т.д.
Хоть у меня Линукс и стоял (мне очень нравилась идея свободного ПО), но про JS я не знал.
И только благодаря IT-бороде, Чайке я узнал о вас и ваших книгах.
Это было прям озарение, я наконец-то понял как правильно учиться программированию.
И не сочтите за любопытство - но хотелось бы узнать побольше о всем нормальном программистском движении.
Просто представьте сферического студента в вакууме, который решил заняться программированием. По первому же запросу в поисковике ему вылезут либо веберы, либо онлайн-школы за 17к. Найти ваши книги шанс минимальный.
Сколько людей с таким мышлением можно исправить благодаря интервью...
Хоть и согласен, нужна ссылка на прямое скачивание видео.

admin аватар

Ну вот

Ну вот смотрите. Youtube — зло, Гугл — зло, реклама (любая) — зло, копирастия — зло, любые попытки как-то сделать так, чтобы юзер мог контент просмотреть, но не мог создать локальную копию (ровно то, чем youtube занимается), да и вообще любые «защиты от копирования» — это даже не просто зло, это нечто такое, за что нужно четвертовать, колесовать и жечь живьём, поскольку всё это достигается только принудительным подсаживанием пользователю на его компьютер или иное устройство заведомо вредоносного софта.

Все, кто обо мне знает, прекрасно знают и то, что я всё перечисленное считаю злом.

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

Короче говоря, высказанные мной выше условия — это абсолютный минимум, без гарантии которого ни о каком интервью и речи быть не может.

А вот другой

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

Сайты

Где можно научиться нормально делать сайты?

Сейчас уже, к сожалению, нигде. Только самостоятельно. Все "курсы" создания сайтов толкают лютую дичь - пропагандируют использование всяческих вордпрессов, поделок на питонах, жабаскрипте в серверном его варианте и прочих недоразумений.
Можно поступить так:
1) Освоить основы HTML и CSS в минимальном варианте.
2) Освоить основы работы с любым вер-сервером (по сути его настройку).
3) Сделать простой сайт из набора html-страниц.
4) Сделать сайт из пункта 3 динамическим, реализовав логику на каком-либо ЯПе.
Категорически не стоит учиться "созданию сайтов на фреймворках" - они скрывают всю суть взаимодействия браузер-сервер, а многие ещё и навязывают использование жабаскрипта.

admin аватар

off-topic

Nelson, не хотите зарегаться? Делается на странице гостевухи. Я с удовольствием навешу вам флажок "comment without approval", чтобы ваши комментарии появлялись сразу.

Регистрация

Спасибо за приглашение. Зарегистрировался.

admin аватар

навесил флажок

навесил флажок :) должно теперь принимать без премода

admin аватар

А нигде

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

Следующим вопросом, скорее всего, будет сакраментальное "так делать-то что". Ну что, чёрт его поймёт, что. Лично я для себя решил, что нужно взять xhtml 1.0, css lev.1, категорически и полностью отсечь любые возможности css более высоких уровней, а равно и html5, и, естественно, любое исполнение тьюринг-полного кода в браузере, как бы оно ни называлось. Из того, что останется, судя по всему, можно использовать более-менее всё.

a что насчёт JavaScript?

Должна ли страница со ссылкой на видеофайл корректно открываться без необходимости запуска скриптов в браузере?

(Это я на сайт Бороды зашёл, а он без JS вообще ничего не показывает.)

admin аватар

Чёрт, про это я

Чёрт, про это я как-то даже и забыл. Да фиг с ним с JS, если Борода вдруг остальные условия примет, я страничку со ссылками на эти два файла у себя на сайте сделаю :-)

Кстати, по поводу сайта Бороды -- я вон на него зашёл с включённым JS, так мне это не помогло, всё равно ничего не показывает.

Кстати, по

Кстати, по поводу сайта Бороды -- я вон на него зашёл с включённым JS, так мне это не помогло, всё равно ничего не показывает.

Кстати да, аналогично. Может это как-то модно "оптимизированный под гуглохром" сайт?

Я проверил на файрфоксе и на вебкитовском браузере -- и там, и там пишет "Загрузка бороды..." и на этом всё.

Webassembly

Там webassembly - https://ru.wikipedia.org/wiki/WebAssembly. Ну, то есть, совсем всё печально. Очередная "современная" "технология" - у него сайт по сути написан на каком-то высокоуровневом ЯПе и скомпилирован в т.н. wasm.
Очередной "виток развития" веб-"технологий": теперь в браузер прилетают не только жиэс-скрипты, но и всякая скомпилированная хрень, исполняющаяся на стековой виртуальной машине.

admin аватар

Руки оторвать :-\

Руки оторвать :-\

про сайт

Андрей Викторович, а чем закончилась дискуссия на ЛОРе по поводу CMS (в смысле, что Вы в итоге прикрутили)? И хотелось бы узнать, какие средства были использованы для написания и ведения данного сайта, и почему? Спасибо.

admin аватар

Дискуссия

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

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

Common Lisp & Scheme

А почему в книге рассматривается CL, а не Scheme, если вторая получше и попроще?

admin аватар

Вы хотя бы

Вы хотя бы оглавление смотреть не пробовали?

про видео и софт для монтажа

Не могу найти комментарий про отсутствие подходящего софта для монтажа видео, напишу здесь: публикация аудиофайлов здесь на сайте не будет ли альтернативой, или их тоже сложно монтировать?

admin аватар

Честно говоря,

Честно говоря, этого я делать вообще никогда не пробовал и даже на эту тему не задумывался.

не знаю как

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

admin аватар

Нет, это вряд

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

Комитеты и их поделки

В архиве были примеры ASCII с множеством бесполезных и отсутствием нужных символов, Unicode с эмодзи, C++ с его стандартами и даже POSIX.

А есть ли какие-то позитивные результаты работы комитетов?

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

admin аватар

флеймА не будет, флеймер спился

> и даже POSIX.

Почему "даже"? Такое же комитетское поделье, как и все остальные. Ну, самый первый был ещё ничего, всё последующее скатилось, куда оно всегда скатывается.

> А есть ли какие-то позитивные результаты работы комитетов?

Разумеется, нет, и быть не может. Комитеты принципиально не могут приносить пользы и порождать конструктив. Просто в силу их сущности.

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

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

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

Что касается спецификаций, то, например, Интернет фактически живёт по спецификациям, созданным единолично Йоном Постелом. Без всяких комитетов. Комитеты там позже образовались, когда сам Постел был уже серьёзно болен и не мог эффективно противодействовать всей этой мразоте. Собственно, тогда кроме понятия RFC появилось ещё и понятие STD (типа того, что "некоторые RFC равнее других"), и всё прочее в обычном комитетском духе. После его смерти в 1998 году Интернет стал неотвратимо скатываться в дерьмо, спасает только то, что в Интернете слишком много народу, чтобы этим народом можно было командовать.

> И в комитетах ли дело?

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

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

Ада, кстати,

Ада, кстати, вполне трепыхается, где-то на просторах Тырнета попадалась даже секта группа адептов "адской" писанины под микроконтроллеры, под stm32, в частности. С green threads в рантайме, ага, удобно жеж...

Игорь аватар

Дедушка со спектрумом :)

Андрей Викторович, здравствуйте!

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

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

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

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

Так вот со спектрумом, в итоге подарил ему его личный так сказать компьютер. И он программки простенькие там свои детские пишет. Цикл типа от и до, и вывод чисел и т.п. Пишет это сам, а не то что я ему говорю - пиши.

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

Так вот вопросы:
- По математике, каким фронтом рассказывать её ребёнку? Стоит ли это делать прямо с азов - типа понятий множеств, и уже объяснять операции над множествами и прочее. Т.е. например он знает что есть натуральные числа, рациональные и иррациональные. Но знает это на "бытовом" уровне. Что натуральные - это целые, рациональные - те которые можно натуральной дробью выразить. Иррациональные немного неверно - но типа что те которые нельзя выразить дробью. Тут вопрос в том, что если есть смысл попробовать подавать с азов, то книжка нужна мне, чтобы я это хорошо вспомнил и смог уже объяснять дальше. А не то, что мы её читаем и учим. Тут детская и бытовая специфика :)

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

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

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

И как водится в таких длинных письмах постскриптум:
Компьютер видит только с *NIX'ом, игровые - обучающие программки типа gcompris, geogebra запускает исключительно из консоли :)

Снимаю шляпу

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

Игорь аватар

А ну и про ядра

А ну и про ядра :)

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

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

admin аватар

Если он сам до

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

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

Игорь аватар

Так оно, но

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

admin аватар

Да не, ну я тоже

Да не, ну я тоже удивлюсь, я сам ядро в последний раз компилировал лет пятнадцать назад. Но одно дело — удивляться, совсем другое — пугаться. Пугаться тут нечего.

Ох, какую

Ох, какую бурную реакцию эти самые ядра вызвали, и зачем я их только приплел... ;-) Просто вспомнилась старая-престарая история-полуанекдот то ли с башорга, то ли откуда еще про программиста, который маленькой дочке написал игрушку-паззл в виде глобуса Земли со всем "нутром". Папин друг пришел и спрашивает: "Что это ты делаешь?" А она такая, с серьезным видом: "Ядро собираю".
А так да, увлечения бывают разные - кто-то марки собирает, кто-то кроликов разводит, почему бы и ядра не пособирать в охотку.

Игорь аватар

Ну вот по

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

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

А про софт из консоли - ну это очень громко сказано, он знает 2 нужных ему программы gcompris и geogebra, ну и leafpad иногда, знает как сменить рабочий стол (без моих окон) по CTRL+Fn, знает как запустить консольное меню по ALT+F2 ну и там уже автодополнением набирает нужную программулину.

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

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

Я до 1 класса

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

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

Все то, что Вы ему даете в 5 лет, можно начать давать, например, в 9,10 или 11 лет. В Вашем случае главное - голова у него работает, и это значит, что в более позднем возврасте у него не должно быть проблем с учебой и программированием. Так что быть может, что не стоит и нет смысла бежать впереди поезда, ведь он это все потом по-любому будет проходить в школе, а вот навредить мозгу ребенка перегрузкой в таком возврасте очень даже можно.

У меня тоже есть дети, если что. Так вот, старший в 5 лет тоже был смышленный, но мы ему давали только комплекты Лего различной сложности, с самых простых до достаточно сложных. Пускай скаладывает, и таким способом развивает мышление. Думаю, не зря есть вот все эти комплекты детям для каждого возвраста. В школе математику понимает, с учебой проблем нет. Сейчас ему - 11, и я начинаю его обучать Линуксу, планируя скоро его начать обучать основам программирования на Паскале. Как-то так... Опять же, не претендую на истину в последней инстанции, но вот такое у меня мнение по проводу всего этого!

С уважением!

Игорь аватар

Да, тут и Андрей

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

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

А лего, ну лего конечно есть, но вот с лего он уже не играет год наверное, и весь этот год у него судоку в жоском почёте :)

admin аватар

Чёрт-те что

Коммент я этот раскрыл, но вообще то, что тут написано, резко контрастирует с моим личным мнением на эту тему. "Давать", "не давать"... что за хрень? Знания -- не спички и не лекарства, какого дьявола их "хранить в месте, недоступном для детей". Что ему не понравится -- то он сам "не возьмёт", сопротивляться начнёт, с рук сбежит в паравозики играть и всё такое. А пока берёт, да ещё с удовольствием -- давать надо всё, что берёт. И радоваться, что так много взял.

Очень возможно,

Очень возможно, что Вы - правы!

Очень интересная тема

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

Игорь аватар

Добрый день

Добрый день Алексей.

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

А так то да... Современный мир в смартфонах - это просто какой-то масштабный проект по дибилизации масс.

Не только смартфоны

Современный мир в смартфонах - это просто какой-то масштабный проект по дибилизации масс.

Если бы только в смартфонах. Теперь, "благодаря" веб-макакам, как недавно оказалось, нельзя даже оставить полноценный комментарий на сайте.
Зарисовка: мне потребовалось оставить комментарий на сайте, который использует жиэснутый сервис комментирования (что уже само по себе вызывает многократный фэйспалм по умолчанию).
Казалось бы, ну вот что может пойти не так при банальном добавлении комментария на сайт? Оказалось, что всё. Чмо, разработавшее т.н. систему комментирования жиэснутый кусок дерьма, решило, что оставлять можно только короткие комментарии (что согласуется с реальностью, принимая во внимание умственный уровень создателей веб-поделок). В итоге пришлось оставить ссылку на простой текстовый файл.
Т.е. своим поделием веб-макаки навязывают деградационный формат комментариев.

admin аватар

Про компьютер и телефон

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

admin аватар

Про математику

Про математику не знаю — ну вот никогда я не задавался вопросом, по каким книжкам математику рассказывать, да ещё детям дошкольного возраста.

А про программирование я так и не понял — он у вас на чём сейчас пишет-то? Бейсик у вас упоминается только в составе фразы про "бейсик головного мозга" — так это правда бейсик или вы так, для фигуры речи его приплели?

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

ZX Spectrum

> так это правда бейсик или вы так, для фигуры речи его приплели?

Если что, на ZX Spectrum и его клонах, бейсик прошит в его 16-килобайтном ROM-е. Загружать туда какой-нибудь интерпретатор паскаля с кассеты (или цифрового аудиоплеера) непрактично и неудобно при том, что там всего 48k оперативки. А в модификациях, где оперативки больше, это реализовано через переключение банков памяти.

В любом случае, любая программа там загружается из консоли BASIC. даже если она сама не на нём.

Игорь аватар

Про

Про программирование - да, сейчас вот на бейсике и пишет.

admin аватар

А что, на

А что, на Паскаль перекатиться никак? Скажите ему, например, ненавязчиво, что когда он подрастёт, вы ему Паскаль расскажете — и тогда, подозреваю, придётся прямо сразу рассказывать :-)

Игорь аватар

Вот сейчас в

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

Сейчас приводящие его в восторг программы - это например написанные вычисление степеней двойки, и факториалов. Ну т.е. понятно что вычисление со всеми цифрами результата и не ограниченными архитектурными ограничениями до 10^38.

На бейсике я это сварганил по-быстренькому, но там понятно и компьютер какой и ещё интерпретируемый язык... Короче за ночь считает до 1200-ой степени двойки и значит на тамошнем ассемблере эту же программу написал, она конечно несравненно быстрей всё это делает. Так вот под этим соусом, что на Паскале дескать сможешь написать её в какой-то момент сам, и работать она будет очень быстро. Думаю зайдёт :)

ООП замешательство

Вчера на видео трансляции М[name removed] я задал вопрос -"действительно ли ООП нужно учить, только после того как напишешь программу на пару тысяч строк в императивной парадигме, ибо необходимость ООП становится очевидным только в больших приложениях". Он сходу отмахнулся и сказал это чушь и ООП надо учить сразу. Человек опытный 20 лет стажа. Работа в крупных компаниях. Я как человек не опытный, но интересующийся не знаю теперь какой точке зрения доверять. Так как, очевидно, у меня нет багажа знаний который бы помог определить бОльшую правоту той или иной точки зрения(((. Но если прав он то я совершу промах откладывая изучение ООП.

Крайне сомнительная авторитетность

Вчера на видео трансляции М[name removed] я задал вопрос -"действительно ли ООП нужно учить, только после того как напишешь программу на пару тысяч строк в императивной парадигме

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

Видеоуроки

Вот не согласен.

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

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

Вот такие видео-лекции действительно легче воспринимаются, чем чтение текста.

admin аватар

Они не "легче

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

Полезность видеоматериалов

Не согласен. Как правило, если надо что-то изучить, то это действие состоит из двух частей:
а) Понимание сути происходящего
б) Правила/факты/даты/новые термины/слова которые требуется запомнить.

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

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

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

То есть, на мой взгляд оба формата дополняют, а не заменяют друг друга.

Но с важным дополнением — это относится только к хорошим видеоматериалам.

Ещё могу привести в пример NileRed. Он проводит на практике различные химические эксперименты, объясняет свои действия, и включает в видео формулы реакций.

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

---

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

Но, может, мне просто хорошие видеоматериалы по программированию никогда попадались.

admin аватар

Ну, меня вы тут

Ну, меня вы тут всё равно не убедите, но и я вас, судя по всему, тоже. Ну так и ладно :-)

Мне кажется,

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

оффтоп (вопрос автору сайта): случается, что отправленный комментарий (касающийся багов) отсутствует на сайте? как узнать причину и стоит ли повторно писать комментарий?

admin аватар

Повторно

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

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

Я полагаю, что

Я полагаю, что Вы смело можете положиться на точку зрения Андрея Викторовича. Одно дело - быть 20 лет программистом, совсем иное - быть программистом и в то же время преподавать предмет в ВУЗе с тем отношением, с которым это делает уважаемый хозяин сайта. Читая его эссе, читая его размышления на сайте, и его книги, очень хорошо видно, что он к вопросу преподавания программирования подходит очень основательно, и старается дать своим ученикам качественные основы ремесла, в отличии от многих преподавателей ВУЗов, которые следуют им только известно каким принципам при обучении студентов.

admin аватар

Цитата с его

Цитата с его сайта:

Все равно, с какого языка начинать изучение программирования

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

Начинать изучать программирование

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

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

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

admin аватар

Мой опыт

Мой опыт показывает, что от сишности головного мозга есть только одно спасение — не начинать с Си. Среди моих знакомых есть очень умные люди. Начавшие с Си. Со всеми вытекающими последствиями. Исключений не видел.

Андрей

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

admin аватар

Чёрт!

Спасибо, сократил цитату

Очевидность

Получается я столкнулся с проблемой не возможности проверить достоверность информации из за собственной слабой компетенции. Я не могу объективно оценить степени вашей или его правоты. Получается, чтобы сделать вывод самостоятельно, мне придется учится дальше. Со временем, возможно, сделать выводы. Существуют ли возможности сделать очевидными для новичка критичные моменты обучения? Или они видны только с позиции опытного человека. Например, в данном вопросе про ООП.
(первый раз мыло указал не верное, пропустил цифру 8)

admin аватар

Тут всё хуже

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

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

Разборчивость

На счет разборчивости - пока интуитивно я прилип именно к вашей книге. Взял её за точку отсчета. Просто я попробовал узнать альтернативное мнение. Того человека попросил дать аргументы по поводу вопроса первого языка и ООП. Ссылку я вроде не вставлял никакую. Если, что то залетело прошу извинить. А если вы про имя которое гуглиться то целей никаких не преследовал, кроме сравнения мнений.

admin аватар

В принципе даже

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

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

Если не С++

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

Чистого ООП,

Чистого ООП, как и чистого спирта, днем с огнем не сыщешь. Абсолютное большинство современных ЯП - императивные с ООП (ну и щепоткой функциональщины) "на сдачу" (даже во FreePascal есть ООП). Часто как ООП-язык преподносят Java, но от того, что там надо написать волшебное слово "class" даже для "хелловорлда", он таковым не становится. В принципе, к "чистым" можно отнести Smalltalk, но это вещь в себе, скажем так. Видимо, C++ в сильно усеченном виде для знакомства с ООП - наименьшее из всех зол.

admin аватар

Чёрт его знает.

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

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".