Архив гостевой книги с 25.09.2012 по 02.06.2019

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

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

[Все старые комментарии перемещены в архив >>>]

CSS3 и отказ от JS

Андрей Викторович, хочу поинтересоваться вашим мнением относительно возможностей аминирования и визуализации с помощью Cascading Style Sheets третьего поколения (CSS3).
Как вы относитесь к применению гибкой компоновки страницы сайта с использованием плавных анимаций сжатия/растягивания?
И стоит ли пытаться задействовать всю мощь CSS3, при отказе от JavaScript, или это уже за гранью излишества?

С моей точки

С моей точки зрения все возможности CSS, находящиеся за пределами спецификации CSS1, являются недопустимыми. Что касается CSS3, то эта мерзость алгоритмически полна, то есть её использование недопустимо по тем же причинам, по которым недопустимо использование JS и любого другого исполнения на стороне клиента. А ещё, как мне кажется, вы ошиблись сайтом: здесь вам делать явно нечего.

Спасибо вам за

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

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

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

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

Я бы сказал, что осилить надо не первый том, а первые два по меньшей мере: изучение C++ без знания и уверенного владения чистым Си — это путь в никуда, ну а освоению чистого Си должны предшествовать как минимум освоение программирования как такового (на примере Паскаля, ибо больше ничего для этого толком нет) и работы на уровне машинных команд (т.е. на ассемблере). Третий том уже не обязателен, там немного про другое.

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

InfoViolence

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

Можно ли

Можно ли считать информационным насилием выступления певцов-музыкантов и продавцов мелочью в вагонах электричек?

Несомненно.

Есть ли разница между ними и теми, что выступают в переходах метро?

Разница если и есть, то чисто количественная:

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

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

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

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

А как Вы

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

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

Что-с? Как я отношусь к гуманистическим бредням? :-)

А как Вы относитесь к такой точке зрения,

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

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

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

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

Теперь вот «хорошее образование». Даже в МГУ, где я работаю, едва ли не трети студентов всё это ваше хорошее образование даром не нужно, а "учатся" они просто потому, что их мама с папой пинками в университет загнали и сказали, чтоб без диплома не возвращался. Мой опыт работы в ВУЗе третьего эшелона показал, что там таких студентов — процентов девяносто, если не больше. Иначе говоря, в настоящее время реальный спрос на образование (внезапно) намного ниже предложения. Да я вам больше скажу: вы можете мне указать хоть один университетский учебник, который невозможно было бы достать? Я вот ни одного такого не знаю, большинство вообще прекрасно из интернета скачивается, оставшиеся можно без особых проблем добыть в букинистических. Так что, если говорить о доступности именно образования как такового, а не мест в ВУЗах, то оно вообще доступно абсолютно всем желающим. Просто оно им не надо. В таких условиях стенания о том, что, мол, доступа к хорошему образованию мало, выглядят просто нелепо.

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

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

Логику так «продолжить» нельзя, если это именно логика, а не бессмысленный гуманитарный словесный понос. Я здесь на сайте сделал возможность оставлять комментарии, хотя мог бы её выключить; более того, я здесь выделил страницу под гостевую книгу и сделал на неё ссылку в навигации со всех страниц сайта. Больше того, я сам написал (см. вверху страницы) вот это вот Здесь вы можете ... написать всё, что думаете по этому поводу. Т.е. я явным образом обозначил своё согласие на получение комментариев. Единственное ограничение здесь — моя же фраза «просьба придерживаться темы и соблюдать приличия», но ваш комментарий формально этого не нарушает. В прицнипе я мог бы, наверное, обозначить своё нежелание тратить время на бессмысленное перемалывание сто лет в обед известных «аргументов» моих идеологических противников, но посчитал, что премодерации для этого более чем достаточно, тем более что иногда попадаются вот такие вот перлы вроде вашего комментария, ответ на которые мне даже становится интересно написать.

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

свобода и либертарианство

Андрей, с интересом прочёл ваш содержательный ответ некоему gmoshkin. Спасибо!

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

Как, кстати, вы относитесь к художественным популяризациям Розова на эту тему?

Либертарианство - штука сложная

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

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

В принципе у меня в диссертации (http://www.croco.net/croco/papers/stolyarov_philosophy_thesis_infofreedo..., стр. 17--35) есть некий обзор, можете там посмотреть ссылки на источники, но на полноту охвата темы я претендовать не могу, меня всё-таки в основном интересовало информационное насилие — тема совершенно не исследованная.

Про Розова — к сожалению, не знаю, о чём идёт речь.

В принципе у

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

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

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

Вот он в википедии.

А вот первая книга цикла, самая, наверное, известная.

Посмотрите, вполне возможно, что вам понравится.

Андрей

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

Я никогда не

Я никогда не пытаюсь никого учить тому, чего не умею сам.

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

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

Может ли

Может ли программа, работающая под управлением современной ос, рассматривать компьютер как фоннеймановский?

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

Что такое прерывание и почему вокруг этого термина нагородили много ахинеи?

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

Задачники

Андрей Викторович, изучаю программирование по Вашим книгам. Пока только на середине первого тома. Потом планирую перейти на второй том (НАСМ и Си) и после него на Вашу книги по С++.

Буду признателен, если подскажите подходящие задачники по Си и С++.

Спасибо!

Да возьмите

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

Крестики-нолики

Крестики-нолики разве что на бесконечном поле, классическое поле 3x3 -- скучная штука, давно полностью исследованная. Но в целом да, идея здравая: берётся любая настолка и превращается в программу.

Увы, я не видел

Увы, я не видел вообще ни одного задачника по Си и тем более по Си++, которые мог бы рекомендовать. Да и вообще я настороженно отношусь к задачникам по программированию. Если вам нравится программировать, то заморочку вы себе найдёте сами, а если не нравится — то какой смысл мучиться?

Лично мне

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

P.S. Заморочку для себя пока ищу :) Пока же предварительный план - подготовится к студенческой олимпиаде по программированию, которая пройдет в следующем году.

У меня для вас плохие новости

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

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

Если я вас

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

Разве изучение алгоритмов не важно само по себе?

Но ведь, в списке литературы в 1 тому вы указали книги Вирта, Кормена и Кнута, которые подностью посвящены алгоритмам.

Если я вас

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

Да. Как и всё программирование в целом.

Разве изучение алгоритмов не важно само по себе?

Я даже больше скажу: "само по себе" оно бессмысленно. Пустая трата времени и дебильное зазубривание.

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

Ага, пофлеймить решили? Ну что же. Берём первый том. Находим контекст, в котором появились эти ссылки (все скопом). И имеем вот что:

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

На случай возникновения у читателя непреодолимого желания освоить алгоритмы балансировки деревьев возьмём на себя смелость обратить его внимание на несколько книг, в которых соответствующие вопросы подробно разобраны. Начать стоит с учебника Н. Вирта <<Алгоритмы и структуры данных>>; изложение в этой книге отличается лаконичностью и понятностью, поскольку рассчитано на начинающих. Если этого не хватило, попробуйте воспользоваться огромной по объёму книгой Кормена, Лейзерсона и Ривеста; наконец, для сильных духом существует ещё и четырёхтомник Дональда Кнута, третий том которого содержит подробный анализ всевозможных структур данных, ориентированных на сортировку и поиск.

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

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

"программирование, введение в профессию: том 1"

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

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

Не стоит путать с оправданными заимствованиями - "панталоны, фрак, жилет, всех этих слов на русском нет", как писал классик. :)

И в любом случае спасибо за ваш во многом бескорыстный труд на благо человечества. С уважением.

Гм

Пардон, а что ж вы, будучи сыном учителя и всё такое прочее, "сходу" вместе пишете? :-) Я, впрочем, тоже так же писал, пока меня мой корректор от этой плохой привычки не отучила.

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

В общем, что-то делать надо, но что именно -- я пока не понял.

"Меценат" лучше

"Меценат" лучше тем, что это _оправданное_ заимствование. Равно как и "спонсор". В таковых словах ничего плохого нет, они наоборот язык только обогащают.

"Оправданность" у конкретного заимствования определять несложно: отсутствие точных синонимов или их неблагозвучность. Надо ли напоминать, что русского мата раньше не было? ;)

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

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

А "сходу" - это да, привычка дурная. Та же проблема у меня с "иметь в виду / ввиду". Что взять с технаря. :)

С точными синонимами есть проблема

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

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

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

В общем, сложен этот вопрос, увы.

gopher

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

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

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

Честно говоря, очень давно собираюсь поставить gopher-сервер. Никак не находится время для этого, но, я надеюсь, рано или поздно найдётся.

Добрый день,

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

Отрицательно

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

Менять в этом плане я ничего не буду. Если не нравится — в Интернете есть много других сайтов.

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

Позвольте

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

ничего не даёт

Спам я не рассылаю, никакого другого разумного использования для этих адресов мне в голову не приходило. О результатах премодерации я никого не уведомляю и не собираюсь.

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

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

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

М-да, тяжело.

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

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

Оставшиеся 0,01% — это так называемый "коробочный" софт, т.е. такой, который пишется не под конкретного заказчика/пользователя, а в инициативном порядке по принципу "ща наваяем, а потом кому-нибудь продадим". С таким же успехом можно выйти на улицу, выкопать яму 1x1x1 метр и требовать за это вознаграждения. И да, программистов, которые соглашаются в таких проектах участвовать, я, мягко говоря, не понимаю — они своими руками разрушают собственный мир.

Весь ваш бред про юристов, преподавателй и т.п., разумеется, никакого отношения к делу не имеет вообще ни с какой точки зрения: эти люди тратят своё время по заказу конкретного заказчика. Собственно говоря, в мире есть всего две категории сущностей, которые могут стоить денег: это (1) материальные предметы и (2) время, потраченное человеком по прямой просьбе/заказу/etc другого человека.

Собственно

Собственно говоря, в мире есть всего две категории сущностей, которые могут стоить денег: это (1) материальные предметы и (2) время, потраченное человеком по прямой просьбе/заказу/etc другого человека.
Будет ли платой за воздух посещение музыкальных концертов? Вроде бы люди тратят свое время, но не по прямому заказу/просьбе, да и цена билета не зависит от количества посетителей. Кинотеатры, как я понимаю, по этой логике однозначно торгуют воздухом?

Будет ли платой

Будет ли платой за воздух посещение музыкальных концертов?

Нет, почему. Вы платите за аренду места в зале. Место в зале — это вполне материальный объект, особенно если вспомнить, что оно вообще-то является частью здания (что здание само по себе материальный объект — сомнений, надеюсь, нет?)

Заказчиком работы исполнителей на концерте выступают не зрители, а устроитель концерта; потраченного исполнителями времени это не отменяет, как и того, что время потрачено по заказу.

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

Кинотеатры, как я понимаю, по этой логике однозначно торгуют воздухом?

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

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

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

Спасибо,

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

Выходит,

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

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

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

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

Здесь вопрос договорённостей, и он, как водится, не имеет никакого отношения к исходному вопросу.

И вообще, что значит "имеет право"? Юридически? Конечно имеет, это же его флешка. Но юридически программист "имеет право" много на что, копирайтное законодательство пока что не отменено. Или вы какое-то непонятное "моральное право" имеете в виду? Так всё равно имеет, разумеется. Он же силой деньги ни у кого не отнимает. Больше того, программист, в приницпе, может поставить условием передачи программы пользователю подписание некоего договора (NDA), по которому пользователь обязуется больше никому эту программу не отдавать. Заметим, для GPL это уже будет грубым нарушением условий лицензии, но я не считаю GPL догмой.

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

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

Технический момент

торговец воздухом ничего не сможет сделать, поскольку у него не будет возможности установить, кто из двоих нарушил NDA.

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

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

Ну хорошо, с

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

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

Добрый день.

Добрый день. Начаал изучение первого тома вашей книги. Это лучшее, что я видел по программированию, огромная благодарность вам за ваш труд. Но возникли вопросы.
Вы мельком упоминаете в главе про работу на Юникс-машинах, что опытные пользователи не допускают наличия команды sudo в системе. Каким тогда образом выполнять команды, требующие привилегий суперпользователя так, чтобы это было правильно?
И еще. Вы почему-то делаете упор на Паскаль, а Бейсик совершенно обходите вниманием. Почему? Простой же язык совсем.

Про команды под

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

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

Так или иначе, я Паскаль рассматриваю уж точно не потому, что он "простой"; конкретные причины выбора языков программирования подробно расписаны во втором ("методическом") предисловии к первому тому. Что же касается бейсика, то его рассмотрение мозгам начинающего программиста может только повредить. Есть языки ещё проще, чем бейсик, и с ними часто бывает примерно такая же ситуация, хотя и не всегда.

В последнем

В последнем разделе статьи о достижениях развития FreeBSD описывается следующее:

«Продолжена разработка системного менеджера nosh предоставляющего инструменты инициализации, загрузки, ведения логов, управления фоновыми процессами и терминалами.»
http://www.opennet.ru/opennews/art.shtml?num=50385

Воспринимать ли это как аналог SystemD в системах BSD?

Прошу прощения за отнятое время, если вопрос не очень разумен.
Я весьма посредственен в использовании UN*X-Like систем и долгое время не видел разницы между классическим SysVinit и SystemD, до тех пор, пока с s-d не возникли проблемы. Сейчас использую систему с классическим SysVinit

Если системный менеджер nosh будет являться аналогом s-d, то уйти от подобных «оптимизаций», поменяв ядро Linux на ядро BSD, будет весьма проблематично.

Благодарю за ответ.

BSD много и они разные

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

Воспринимать ли это как аналог SystemD в системах BSD?
Если системный менеджер nosh будет являться аналогом s-d, то уйти от подобных «оптимизаций», поменяв ядро Linux на ядро BSD, будет весьма проблематично.

Во-первых, нет никакого единого "ядра BSD". Каждая из основных современных BSD-систем (OpenBSD, FreeBSD, NetBSD, DragonFlyBSD) имеет своё ядро, разрабатываемое отдельно.

Во-вторых, нельзя просто "поменять ядро Linux" на ядро, например, OpenBSD. Все BSD-системы, в отличие от Linux, это цельные системы, требующие для корректной работы не только своего ядра, но и своей базовой системы, также разрабатываемой отдельно. Теоретически подменить базовую систему какой-либо BSD на базовую систему из Linux возможно, но практически это сделать достаточно непросто. Не знаю, кстати, насколько жив сейчас проект Debian/FreeBSD.

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

Лично я ушёл с Linux на OpenBSD пару лет назад, чем очень доволен. Жалею только, что не сделал этого раньше (лет 10 назад возникала у меня такая мысль, но тогда я её не осуществил).

А чёрт его

А чёрт его знает, как это воспринимать. Сон разума рождает чудовищ.

четвертый том

добрый вечер! как продвигаются дела с вашей рукописью? :)

Увы, отвратительно

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

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

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

Собеседование

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

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

Ну хотя и сбежав сразу, в принципе, не особенно много потеряете :)

MacOS

Как вы относитесь к продукции фирмы Apple? Возможно ли изучать программирование в MacOS, в среде с стандартом POSIX и являющейся потомком UNIX?

Я сильно

Как вы относитесь к продукции фирмы Apple?

Очень плохо отношусь.

Возможно ли изучать программирование в MacOS

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

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

А вот железки

А вот железки от Apple — это, я бы сказал, за гранью приличия
"Отказ от техники Apple сродни вегетарианству. В какой-то момент ты понимаешь, что есть вещи, которые лучше не трогать, потому что ты не хочешь быть никоим образом причастным к способу производства этих вещей, и доходу их производителей". (c) https://bash.im/quote/456138

Я не

Я не вегетарианец, но мысль в целом интересная :-)

Уязвимости hardware

Здравствуйте, хотел узнать ваше мнение по поводу нашумевших уязвимостей в процессорах под названием meltdown & spectre и по поводу не менее опасной технологии intel me. Что вы можете об этом сказать?

Есть сомнения?

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

продолжение

Возможно ответ очевиден. Но только для тех у кого есть большой опыт в низкоуровневом программировании. Но вот мне из этого понятно только, то что в интернете сказано, что это уязвимости и возможно очень опасные. Почему я про это спрашиваю, потому что хочу сам управлять своей системой и компьютером и не хочу чтобы кто-то другой имел возможность извне влиять на нее, тем более иметь полный доступ к ней. Я видел есть решения которые устраняют это. Например прошивка libreboot, coreboot. Хотел узнать действительно ли они это делают или это просто маркетинговый ход и прочая лож. Просто получается так, что устанавливай ты хоть linux либо freebsd это будет бесполезно т.к твой пк будет все равно уязвим несмотря на то что эти ОС сами по себе не содержат слежки и являются открытыми и этичными в отличии от того же самого микрософта или андройд.

про Android

Раз уж упомянули "андрюшу", вставлю свои 5 копеек. Андроид, все же, сам по себе открытый - пожалуйста, качайте исходники, читайте и наслаждайтесь. Есть и порты типа почившего CyanogenOS и сменившего его LineageOS. Драйвера периферии таки да, проприетарные в большинстве своем, но это вопросы к производителям тех или иных устройств. Реальных проблем у этой оси две:

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

Если и дружиться с Android, то только убедившись заранее в возможности установки на свой гаджет девственно чистого LineageOS, чтобы собрать его ручками и развернуть свое собственное окружение. Обе выше перечисленные проблемы так лечатся. Правда, всё, что новее Android 4.1 (2012 г.), лично у меня вызывает, мягко говоря, недоумение, особенно м#дацкий MTP (Media Transfer Protocol), заменивший простое и логичное подключения устройства к компу в режиме накопителя. Захотел скинуть на планшет/смартфон музыку, чтобы послушать в дороге? "Хм, парень, - говорит тебе MTP, - я тут пользовался слухом, что это у тебя не плеер. Ты уверен, что файлы mp3 тебе вот прям так необходимы? Они же могут тут не воспроизвестись... Ой, а это что? Фильм?! ТЫ ЧО??? Это же у тебя не проигрыватель фильмов какой-нибудь. Может, хрен на него? Нет? Ок, как скажешь. Погоди, ты хочешь вот этот файл переместить из одного каталога в другой? Просто переместить? Я хз, как это сделать, я его просто побайтово скопирую, а потом удалю из исходного каталога, годится? Да можешь и не отвечать." Вот так, в общем. А старенький китайский планшет на Android 4.1, купленный в далеком 2013 за 1900 рубликов для чтения книжек, имел на борту из левака только файловый менеджер и простенький 2D бильярд и позволял выворачивать себя "мехом внутрь": на нем был Busybox, после установки терминальной программы абсолютно штатно удалось chroot-нуться в Fedora ARM (с другими дистрибутивами не пробовал), опять же без плясок и шаманств устанавливать/использовать/удалять пакеты из репозитория, стучаться в /dev к подключенным по USB устройствам (даже микроконтроллеры прошивал программатором) и юзать иксовые программы через XSDL. Попробуйте сейчас провернуть это с анального огороженной 9-кой...

MTP -- "user-friendly"

MTP -- "user-friendly" поделие мелкомягких, а это объясняет все его, ммм, "причуды". К вышеназванным я бы, кстати, добавил общую дичайшую медлительность и - вишенка на торте - молчаливый отказ записывать на носитель файлы с "немедийным" расширением (прогресс-бар честно пробежит-пролетит-проползет за секунды-минуты-часы, а файла нет). Нужно отправить какой-нибудь foo.zip на девайс? Будь добр, сперва переименуй его в, скажем, foo.zip.mp3, и только тогда будет тебе "щщастье"...

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

Честно говоря, для меня понятие "user-friendly" стараниями мелкомягких и прочих корпораций настолько дискредитировано, что иначе чем "придумано маркетологами для идиотов" я его воспринимать уже не могу.

Поправка

CyanogenOS -> CyanogenMod (исправленному верить, как говорится)

Увы

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

Тогда

Можно ли считать ARM и MIPS процессоры безопасной и достойной альтернативой процам Интеллов и Амудэ? Игры не интересуют, главное чтобы запускались *NIX системы и выполнялся стандартный круг задач (Интернет, верстка текстов, работа с медиафайлами, программирование, научные вычисления и пр.)

Чёрт их знает

Возможно. Хотя если в ARMах тоже что-нибудь найдут, лично я не удивлюсь.

Puri.sm

Есть такая фирма Puri.sm, они выпускают ноутбуки с отключенным IME, свободным BIOS и с форком Debian в качестве ОС и прочими ништяками в плане безопасности и приватности, при этом ноутбуки имеют современный дизайн и широкие конфигурации железа. Самое интересное, что это тоже краудфандинговый проект и осуществляют доставку в любую точку планеты (таможенные пошлины оплачиваете сами). В скором времени обещают выпустить полностью свободный смартфон. Недостаток один - эти ноутбуки стоят как макбук, а то и дороже, но как говорится "Freedom isn't free".

И снова о JavaScript...

Андрей Викторович, тема JS и вообще исполняемого кода в браузерах здесь обсуждалась неоднократно и, в целом, себя изжила, да и ответ на вопрос о правомочности использования разномастных "скриптиков" на web-страничках для любого мало-мальски активного пользователя Интернета с машиной "не первой свежести", имхо, очевиден. Но можно ли узнать ваше мнение касательно JavaScript как явления вообще (безотносительно его изначальной web-ориентированности)? В последнее время достаточно активно развиваются JS-движки и системы на их основе, превратившие JavaScript в "оффлайновый" скриптовый язык. И если с Node.JS все понятно - он давно разросся в JS-аналог монструозного питоновского npm с обилием пакетов разной степени паршивости на любой чих, то весьма интересно, имхо, выглядит изначально ориентированный на встраиваемое использование движок Duktape, состоящий из одного сишного файла и двух заголовочников и не требующий вообще никаких внешних зависимостей. JavaScript без многочисленных web-специфичных надстроек крайне лаконичен - это, в принципе, чуть-чуть "присахаренный" Lua, принципиальных отличий между ними практически никаких. Имеет ли он право на жизнь в таком виде, как по-вашему?
P.S. На всякий случай: я не адепт JavaScript и не web-разработчик вообще, просто хочу услышать мнение авторитетного человека и расширить кругозор.

Вдогонку

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

Проблема

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

let sortedArray = unsortedArray.sort((a, b) => a-b);

Казалось бы, в чём подвох? А вот "крутые разрабы" теперь, похоже, вообще забыли про ключевое слово function и лепят из "стрелочек и скобочек" такую лапшу, что небезызвестный Brainfuck обзавидуется (полюбуйтесь хоть на оф. документацию к Node.js, которую, по идее, не последние раздолбаи писали).
Но JS, всё же, не самый плохой язык, а с приходом ES2015 ещё и ставший довольно выразительным, если подходить к его использованию с умом и невысоким коэффициентом кривизны рук.
P.S. Из вашего комментария можно сделать вывод, что есть тут некоторое лукавство: в предмете вы все же разбираетесь, т.к. вопрос, по всему видно, не праздный и продиктован некой насущной потребностью. Зачем вам в таком разрезе спрашивать чьего бы то ни было разрешения на использование того или иного инструмента, не совсем понятно. Новичку вряд ли бы понадобился встраиваемый язык в сишном проекте. Ну а раз душа лежит к JS, берите этот самый Duktape и пользуйтесь, а уж пользователи вашей программы дадут ей оценку.

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

Вот буквально вот только что попался на глаза любопытный пример из одной статьи - функция на JS, перемножающая две матрицы 2x2:

const mul = (
  [
    [a1, a2], 
    [a3, a4]
  ],   
  [
    [b1, b2], 
    [b3, b4]
  ]) => 
  [
    [a1 * b1 + a2 * b3, a1 * b2 + a2 * b4],
    [a3 * b1 + a4 * b3, a3 * b2 + a4 * b4]
  ];

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

JS-макаки

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

Веб-макака с

Веб-макака с радостью помигает светодиодом программой на жиэсе
Вот это-то и страшно: до недавнего времени программирование микроконтроллеров оставалось одной из немногих областей в IT-сфере, для входа в которую в обязательном порядке требовались мозги. Становится не по себе, когда на том же Тюбике взрослые дядьки с детским восторгом расписывают прелести Espruino или MicroPython и даже дают "типа уроки", ни хрена не понимая, что творится у железки под капотом. Вот выпустили китайцы в свое время ESP8266 - весьма интересная платформа с массой плюшек за копейки. Но найти в Интернете хоть какую-нибудь информацию по нативной разработке под этот камушек практически нереально. А ведь есть и тулчейн, и документация; но народу гораздо проще накатить туда Espruino, NodeMCU или MicroPython (а чо, 80-160 Мгц и 4 МБ флеша и не такое стерпят), а потом строчить посты / снимать видосики "как я делал автополив с сервером на питончике". IoT, хуле.

ESP8266

Из википедии:
Производитель не предоставляет документации на внутреннюю периферию микроконтроллера.
Тут как бы уже понятно позициониронаие данного изделия - всяческие наколенные поделки для т.н. IoT.
Далее:
Вместо этого он дает набор библиотек, через API которых программист получает доступ к периферии.
Ну "спасибо". Прям WinAPI в сфере эмбеддинга какой-то...
Поскольку эти библиотеки интенсивно используют ОЗУ контроллера, то производитель в документах не указывает точное количество ОЗУ на кристалле, а только приблизительную оценку того количества ОЗУ , что останется пользователю после линковки библиотек — порядка 50 кБ.
Дичь полная. Всерьёз рассматривать этот камень для нормальных проектов нельзя.
есть и тулчейн
Так себе тулчейн, мягко говоря, если для работы с периферией требуются библиотеки.
Прошивки с встроенными интерпретаторами разнообразных языков высокого уровня. Эти прошивки позволяют подгружать через UART и исполнять скрипты разработчика устройства.
Ну тут уже макаки оторвались на полную: MicroPython, Lua, жабаскрипт, Basic. Лучше языков для написания прошивок не найти, ага.

Производитель

Производитель не предоставляет документации на внутреннюю периферию микроконтроллера
набор библиотек
Это вы совершенно правильно отметили, но всё же API - меньшее зло в сравнении с чисто интерпретируемым исполнением. Дело даже не в том, кто кому чего предоставляет - прошивка Espruino на JS появилась сначала для STM32, все пороха которых как раз подробнейшим образом описаны в тысячестраничных даташитах. Та же HAL для STM32 или, прости Господи, Arduino - вполне себе открытые библиотеки, но есть персонажи, мигающие светодиодом через digitalWrite() и блокирующую задержку, основанную на декременте переменной в цикле, знать не знающие ни о каких регистрах или таймерах, в глаза не видевшие ни документации производителя, ни кода своих излюбленных библиотечек, но при этом мнящие себя матёрыми электронщиками. Но если у ардуинщика ещё есть шанс эволюционировать, то с питонистами-жабаскриптерами, каким-то образом оказавшимися "при железе", всё гораздо печальнее. А уж с каким воодушевлением они рассказывают про "упрощение разработки"! Отправить бы их на денек-другой лет на 30 назад и заставить перепечатывать шестнадцатеричный дамп операционки для ЮТ-88 с пожелтевшей странички - может, дури бы поубавилось...
Так что спорить о плюсах и минусах того или иного камня большого смысла нет - от любителей скриптиков, пишущих код торчащими из пятой точки пальцами, наличие документации производителя, увы, не спасёт. ESP8266 после выхода, вроде, начинали реверсить, хотя возможно, что сейчас всё это заглохло, не знаю.

Документация

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

И откуда у них

И откуда у них такая нездоровая тяга к нецелевому использованию браузера
Из благих намерений, как обычно: представляете, бедному-несчастному пользователю не придется качать и устанавливать компиляторы-программаторы-вот-это-вот-всё, достаточно ткнуть мышкой в браузере и радостно пустить слюну. Кто же виноват, что кому-то в свое время показалось удобным забивать гвозди дохлой кошкой вместо микроскопа, который вместо молотка...
Статейку про WebFPGA я видел. Особо нет желания разбираться, что там к чему, но, поскольку заявлена поддержка только Lattice iCE40, есть подозрение, что ребята просто взяли исходники Yosys, прогнали через какой-нибудь asm.js и прикрутили к этому делу GUI, чтобы мышкоблудить удобно было, вот и весь стартап. Короче, как говорил М. Н. Задорнов, "вот эту бы энергию, да на пользу Родине". Если бы они зареверсили файлы прошивок хотя бы парочки наиболее распространенных альтеровских-интеловских ПЛИСин да написали свободный легковесный маппер или хотя бы библиотеку для того же Yosys, чтобы отказаться при разработке под ПЛИС от многогиговой проприетарщины, цены бы им не было. Но это же не модно...

FPGA

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

Надо сказать,

Надо сказать, что мы с вами изрядно отошли от темы - начали с JS, закончили обсуждением разномастных железяк. Интересно, Андрей Викторович еще долго нас терпеть будет? :-)
А стоит ли заморачиваться с реверс-инжинирингом этих самых ПЛИС ?
Ну, все полезнее, чем сайтики клепать на JS.
неужели есть какие-то реальные области применения программируемых микросхем
О широком применении их в разработках не может идти и речи
А широкое применение и не нужно - это устройства для специфических задач, например, для хитрой цифровой обработки сигналов, высокоскоростных интерфейсов и т. д. То, что
В последние несколько лет из каждого утюга про них вещают,
не говорит ни о чем: для широкой публики стал доступным некий новый/необычный/непривычный (подчеркните нужное) инструмент, вот и вещают. Кому-то кажется, что нашлась серебряная пуля для всего на свете, кому-то просто в диковинку, а заядлым хоббийщикам часто и вовсе наплевать на финансовую сторону вопроса или оправданность использования того или иного камня, только дай новую железку пощупать. И каждый считает своим долгом поделиться "передовым опытом", пусть даже это светодиодная мигалка.
Короче, пусть вещают, время покажет. В конце концов, в массе гуляющих по Интернету "проектов" и микроконтроллер можно двумя транзисторами заменить, но это уже давно ни у кого ни раздражения, ни недоумения не вызывает - может, лет через несколько и с FPGA такая же песня будет.

FPGA

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

Язычёк программирования для веб-макак

http://www.opennet.ru/opennews/art.shtml?num=50231
В более сложных ситуациях в контексте сайта запускается JavaScript-код, исправляющий проблемы с совместимостью.

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

Я тут недавно

Я тут недавно набрёл на термин «дихотомия Оустерхаута» (Оустерхаут — это, если что, автор Tcl). Вот тут описано, что это такое: Ousterhout's_dichotomy

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

Мораль: в роли языка общего назначения (вот эти всякие Node.JS и прочее) интерпретируемые языки не годятся вообще никакие и никогда. В роли языка для скриптинга... э... ну, может быть, но зачем, когда есть Tcl?

спасибо

Виноват, рука дрогнула: "питоновский pip", конечно же, npm как раз с Node используется, но это, повторюсь, то же, только в профиль.
За ответ спасибо, но я, правда, не совсем уловил, что не так с Оустерхаутом: встраиваемые языки разве не укладываются в "additional layers of functionality on top of existing programs"? Хотя сейчас в IT, как в доме Облонских, "всё смешалось". В любом случае, вашу мысль я уловил.

Встраиваемые --

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

Андрей

Андрей Викторович, а как же здоровый плюрализм? Почему "тиклем единым"? Чем объективно Tcl лучше всяких питончиков-руби-жабаскриптов? Проблема в их "мейнстримовости"? Или они просто режутся бритвой Оккама, поскольку Tcl занял эту нишу раньше? Ну так и shell-скриптами можно обойтись... Если что, никого ни на что не провоцирую - возможно, в 4-м томе "Введения в профессию" вы аргументируете такой выбор.

Если говорить о

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

Про JS вообще и говорить не хочется. Я не видел его за пределами веба (хотя точно знаю, что иногда бывает и так, но вот лично сам не видел), а веб с его помощью превратили в кучу дерьма.

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

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

жабоскрипт

Я не видел его за пределами веба (хотя точно знаю, что иногда бывает и так, но вот лично сам не видел)
Я вот, лично, видел. Как-то раз пришлось конфигурировать PolicyKit и, опа, там в конфигах ОН.

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

polkit с той машины снёс при первой возможности.

Спасибо за

Спасибо за ответ. Т.е. проблема здесь, все же, как говорил классик, "не в клозетах, а в головах" - в той публике, с которой, как правило, ассоциируются эти языки? Никто ведь не заставляет использовать все возможности скриптового языка, включая ООП (так-то Tcl его тоже поддерживает с версии 8.6), равно как и вкорячивать интерпретаторы везде, начиная с веба и заканчивая драйверами устройств и прошивками микроконтроллеров (привет MicroPython). Но именно такими действиями адепты этих языков дискредитируют свои, возможно даже, исходно неплохие инструменты.
P.S. Андрей Викторович, а Lua так же плох? Когда-то сталкивался с ним, и мне он казался довольно неплохим примером эдакого "программистского пуританства".
P.P.S. Позвольте еще терминологический вопрос: где проходит грань, после который скриптовый язык в "умелых" руках начинает превращаться в язык общего назначения? Та же связка Tcl/Tk позволяет создавать весьма сложные программы с развитым графическим интерфейсом. В какой момент начнется использование инструмента не по назначению?

Т.е. проблема

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

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

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

с версии 8.6

Что делать с этими "новыми версиями", я пока не понял. Видимо, его форкать придётся. Последней разумной версией Tcl была версия 8.4.

Кстати, какие-то форки вроде уже есть.

Lua так же плох?

Не так же, конечно, но Tcl всё-таки логичнее.

В какой момент начнется использование инструмента не по назначению?

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

форки и реализации Tcl

Кстати, какие-то форки вроде уже есть.

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

Не только, есть

Не только, есть ещё и вот такое: http://tinytcl.sourceforge.net

На Tcl можно

На Tcl можно реализовать интерактивные и при том безопасные веб-странички?

Опасно, опасно,

Опасно, опасно, вы бы хоть первое сообщение в цепочке прочитали :)

Ваш вопрос

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

Server-side scripting можно сделать на любом языке программирования, хотя лично мне совершенно непонятно, зачем это делать на Tcl, когда есть C или C++. Client-side scripting, т.е. что-то такое, что исполняется в браузере (а не на сервере) — это преступление, притом вне всякой зависимости от того, на каком языке это делается. Сейчас client-side делается на JS, поскольку браузеры ничего другого не держат, но здесь проблема не в языке, а в самой идее прислать пользователю не appearance, а behavior. За это надо если не казнить, то по меньшей мере сажать в тюрьму и пожизненно лишать права профессиональной деятельности в области компьютеров.

Проблема ещё в

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

behavior behavior'у

behavior behavior'у рознь

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

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

всякое "да мы же

всякое "да мы же только чуть-чуть" здесь не канает
С этим и спорить не собираюсь; комментарий, по большей части, был о том, что "отягчающих обстоятельств" в вебе с каждым днём становится всё больше и больше, причём для большинства используемых ныне технологий характерно срастание appearance и behavior, которого не было в подходе с "чуть-чуть" - отключение javascript там приводило всего лишь к частичной потере сайтом функционала. Квинтэссенция - сайт, демонстрирующий вам просто белый экран при отключенном javascript (а таковы продукты, порождаемые всякими модными Angular и React, в которых даже примитивные формочки лепятся на JSX - помеси JS и XML).

Андрей

Андрей Викторович, вопрос касательно интерактивных страничек - похоже, сколько людей, столько и подходов к трактовке этого понятия. Для большинства client-side "свистелок" достаточно CSS, но, предположим, есть такая абстрактная задача: на веб-страничке требуется отображать показания с нескольких датчиков (температура/давление/влажность), возможно - строить графики, причем желательно, чтобы показания изменялись динамически, без перезагрузки страницы. Как я понимаю, такие вещи "обычно" делаются по пинку таймера, крутящегося где-то в JS-коде. Можно ли как-то обновлять часть страницы, содержащую эти данные, по инициативе сервера, не прибегая к JS? Или для решения такой задачи следует писать приложение для клиентской стороны? Простите за, возможно, глупый вопрос - с вебом дела не имел.

CSS1 "достаточно"

CSS1 "достаточно" разве что для изменения внешнего вида элементов странички под мышиным курсором. CSS2 и 3 недопустимы, поскольку тьюринг-полны.

Для обновления странички по инициативе сервера есть какие-то очередные "модные" технологии, но они ничем не лучше JS: обновление страницы — это тоже поведение.

Когда-то давно для этих целей (например, для веб-чатов эпохи второй половины девяностых) использовалось штатное периодическое обновление документа, предусмотренное протоколом HTTP, это и сейчас, естественно, возможно сделать — например, все обновляемые часть загнать в тэги iframe в виде отдельных совсем мелких html-документов ("совсем мелких" в данном случае означает -- меньше одного килобайта, чтобы в один IP-пакет укладывались вместе с заголовком запроса) и в заголовке HTTP-ответа присылать указание на обновление (через пять секунд, или через две секунды, или сколько там надо в зависимости от задачи). Это точно лучше, чем JS и всякие webPush'и, хотя бы тем, что алгоритмической полноты тут в помине нет. Вот только это извращение. Да, для таких целей должно быть специальное приложение, а не браузер несчастный.

Андрей

Андрей Викторович, а что вы думаете о Wine? Считаете ли вы, например, для себя возможным использовать подобные средства, или предпочитаете отказаться от запуска Windows-only программ в среде Linux, даже если альтернатив нет или они проигрывают по тем или иным показателям? Вопрос не провокации ради, но, к сожалению, не всякому софту (да хоть и играм, чёрт их дери) возможно найти близкую по функционалу замену.

Я не использую

Я не использую Wine -- пока ещё ни разу не возникло в этом потребности.

По поводу "если альтернатив нет" — ну, так практически не бывает, это разве что всякие маргинальные случаи: например, из моей практики — вот для налоговой или ПФР нужно некие бумажки подготовить в определённом формате и для этого есть какая-то "бесплатная" программа, естественно, под Win. Для этой мерзости у меня есть ноутбук с WinXP :-) Включается в среднем раз в два месяца, остальное время выключен и завален бумажками.

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

К сожалению, Linux

К сожалению, Linux не особо интересен для разработчиков игр, хотя в последнее время ситуация улучшается. В принципе, разнообразные инди-проекты с небольшим бюджетом (меня вот зацепили "программистские" головоломки от Zachtronics) все чаще имеют поддержку Linux на релизе, а вот с проектами AAA-класса все гораздо печальнее. В таких случаях только пляска с бубном и Wine остается (ну, есть Steam для Linux, но там, похоже, что-то Wine-образное крутится, только и всего).
P.S. (специально для Андрея Викторовича) Да, я знаю про NetHack ;)

"программистски

"программистские" головоломки от Zachtronics
"Знаем об его работах" (c) Но если вас увлекает программирование на игрушечных языках и поиск ошибок в написанном на них коде, обратите внимание на милую сердцу любого линуксоида игру - gdb. В головоломках от Zachtronics имеет место еще и соревновательная часть - там доступны данные по скорости работы и объему кода в решениях других игроков. Так вот, тут рецепт тоже прост до безобразия: берете любую не особо сложную софтину, собираете с ключом -pg, запускаете под игрой gprof, изучаете ее выхлоп (колонки time и calls, в первую очередь), а затем запускаете редактор кода. Серьезно, не оторветесь!

Кстати, да

Поддержу предыдущего оратора :-)

> с проектами

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

Я совершенно не против игр и прочих развлечений как таковых, но игры, книги, музыка, кино и прочее должно быть максимально авторским. А не всего лишь очередным сравнительно честным способом отъёма денег у населения, поставленным на индустриальный поток. И с IT, кстати, та же фигня.

К счастью, мне

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

Вы говорите,

Вы говорите, что вам не интересны(и вы против) вообще любые игры(даже самые простые) или только те, на которые можно потратить деньги?

Я не против игр

Я не против игр как таковых (если не выходить за пределы разумного). Я против (а) проприетарщины и (б) уплаты денег за воздух.

К счастью, мне

К счастью, мне совершенно не интересны ни сами разработчики игр, ни та идиотская проприетарная хрень, которую они разрабатывают.
Ну, на вкус и цвет, как говорится, все фломастеры разные - хрени там хватает, но, имхо, попадаются и крайне годные экземпляры. Хотя, конечно, если вопрос проприетарщины принципиальный, их и рассматривать смысла нет, здесь согласен на все 100%.
Хотелось бы отметить вот что: неинтересен Linux, скорее, не разработчикам (им-то, в сущности, какая разница?), а кровопивцам-издателям, ибо крутятся в этом деле бешеные бабки, до разрабов порой и не доходящие. Особенно прикольно наблюдать "эксклюзивы для консолей": дескать, на PC пиратят все, кому не лень, вот у нас $GAME_NAME only for PlayStation 4 - только купите (и то, и другое, ясен пень)! Про то, что PS4 - это, в сущности, брендированный x86-комп с весьма посредственными характеристиками, а за красивым словом Orbis скрывается FreeBSD, почему-то предпочитают умолчать. Так что правит бал тут, как правило, красивая обёртка.

если вопрос

если вопрос проприетарщины принципиальный, их и рассматривать смысла нет

Именно так

не разработчикам (им-то, в сущности, какая разница?), а кровопивцам-издателям

аминь

Tiny Core?

Добрый день. Андрей Викторович, можно узнать ваше мнение о Tiny Core Linux? На фоне современных монстров, имхо, весьма интересный дистрибутив. Да и в сторону systemd эти ребята, похоже, даже смотреть не собираются.

А оно вообще живое?

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

Да

Живет и здравствует, регулярно обновляется.

Вполне и очень даже

Для x86/x86_64 версия 10.0 вышла 7.11.2018 - пруф. А вот список пакетов - extensions по их терминологии.
P.S. Хронологию можно восстановить по упомянутой в новости версии ядра - 4.19.10. Но на счет сайта согласен - информативностью не отличается. Зато без JS :)

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

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

Могу только дать пару ссылок

Вот раз:

http://infoviolence.org/ru/vblog/ (если предпочитаете youtube, то вот: https://www.youtube.com/c/infoviolence)

Вот два: http://www.croco.net/croco/papers/stolyarov_philosophy_thesis_infofreedo...

А "что должно произойти" — ну это довольно очевидно: людей происходящее должно задолбать в достаточной для социальных потрясений степени.

Задолбать

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

Поживём-увидим

Года три назад в Москве интересная история была. Мужик взял охотничье ружьё и из окна своей квартиры "снял" девицу-рекламщицу с матюгальником.

Сел, естественно. Аж, если мне память не изменяет, на 12 лет.

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

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

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

Вспомнился

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

Каттнер

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

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

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

Здравствуйте! Можете пожалуйста подробно рассказать об учебных предметах, которые преподаются в ВМК?

8-()

Нет, не могу. Эта тема реально необъятна.

the majority is always wrong

Андрей, вы много говорите о, мягко говоря, недостатках мейнстрима в IT и ориентированной на него индустрии. Может быть вам будет интересна эта ссылка: the majority is always wrong.

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

Спасибо :)

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

А вообще прикольный текст, спасибо :)

Eliezer Yudkowsky

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

Спасибо ещё раз

Да, не соотнёс. Книжку я читал, был доволен как три слона. Похоже, Юдковский — человек весьма нетривиальный.

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

Здравствуйте!
Когда вновь появится возможность приобрести ваши книги с доставкой их в регионы? С лета 2018 много времени прошло, способ так и не был найден? Очень уж хочется иметь печатные версии ваших книг, но не ехать же в Москву за ними.

Увы

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

Андрей

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

Не знаю как

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

Предвосхищая вопрос "за что", вот: https://openwall.info/wiki/people/croco/crocos_lamp <-- искать по слову "cmake".

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

Нельзя ли поподробнее?

Очень неожиданное утверждение.

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

Нельзя ли поподробнее о проблемах, возникающих при сборке проектов, использующих cmake? Лично я, собирая различные проекты, наблюдал прямо противоположную картину: проекты на cmake или automake собирались без проблем и всегда одинаково, в то время как в проектах с рукописным make-файлом, этот Makefile, как правило, приходилось сильно допиливать в случае, если система хоть немного отличается от той, что была у разработчика. Правда я не пытался собирать пакеты с этими программами, просто устанавливал у себя в системе. По указанной вами ссылке указано про проблемы с DESTDIR, но если верить документации (https://cmake.org/cmake/help/latest/envvar/DESTDIR.html), то вроде бы он и в make-файлах, порождённых cmake, работает. Кстати, в проекте с рукописным Makefile это почти наверняка не будет работать, если только автор программы лично этим не озаботился, вероятность чего на практике стремится к нулю.

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

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

Пожалуй, даже отвечу

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

Итак, начнём с DESTDIR. То, что по вашей ссылке — это совершенно не то, что было нужно мне. В традиционных (основанных на posix make или gnu make) сценариях сборки это обычно называется PREFIX — то место, куда программа будет инсталлирована на целевой системе, и, в частности, в её конфигурационных файлах и опциях времени сборки этот PREFIX тоже прописывается. Мне же нужно было, чтобы программа на ЦЕЛЕВОЙ системе (то есть там, где будет установлен пакет) ставилась в /usr/{bin,share,etc}, но на МОЕЙ системе — той, где всё это собиралось — чтобы команда make install добавила к этому спереди ещё ту временную директорию, которая будет закатана в пакет. Например, если на целевой системе будет файл /usr/bin/foobar, то чтобы на МОЕЙ системе make install этот файл записал в /home/avst/.rpm/(что-то-там-не-помню)/usr/bin/foobar, а потом это вот "что-то-там-не-помню" целиком закатывается в пакет (в моём случае это был, как можно догадаться, RPM).

Конечно, если автор программы конченный м$дак, он может этим "не озаботиться", но при применении обычного make я влезу в Makefile и за три минуты эту фишку добавлю, поскольку она примитивна, и сами Makefile тоже примитивны, как их хачить — очевидно. А вот cmake — это вещь в себе, с которой я не смог, как видим, разобраться в течение нескольких дней. То есть тривиальные функции — вот взять эту кучу исходников, эту груду библиотек, всё собрать и чтоб работало — там делаются без проблем, оно на то и рассчитано; но как только нужно что-то менее тривиальное — нужно копать намного глубже. Я не мог себе позволить потратить ещё больше времени (судя по всему, там счёт уже должен был идти на недели) ради одного пакета, учитывая, что эти "знания" мне не пригодились бы в дальнейшем и оказались бы просто забыты через полгода. Жизнь для этого слишком коротка.

Это, кстати, заодно и ответ на вопрос, как же "мейнтейнеры справляются". Разумеется, и RedHat, и другие конторы, содержащие мейнстримные дистры, могут себе позволить содержать целый штат людей, создающих пакеты под эти дистры. Если человек собирается упаковкой пакетов заниматься постоянно и за деньги, то потратить пару недель на освоение премудростей cmake он, в общем и целом, может себе позволить. Решает ли это возникшую проблему? Разумеется, нет. Те моральные уроды, которые используют в своих проектах cmake, получают в своё распоряжение "доброго гномика", который делает за них часть их работы (можно не писать низкоуровневые makefile'ы), но при этом, как видим, резко повышает требования к квалификации мейнтейнеров. Для мейнстрима это не проблема, а для всего, что не совсем мейнстрим — проблема, и ещё какая.

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

Могут ли эти проблемы быть решены? Несомненно! Но если проблема поддаётся решению, то само по себе это совершенно не означает, что её следует создавать. Напротив, ответственный подход к разработке состоит в том, чтобы ни у мейнтейнеров, ни у пользователей никогда не возникло ни одной такой проблемы, которую разработчик мог бы своими действиями (например, выбором другого языка программирования или другой системы сборки) решить или просто изначально не создавать. Разработчик-то один, а пользователей много.

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

NB: в дальнейшей дискуссии я не заинтересован.

Но даже в

Но даже в пределах мейнстрима, как ни странно, бывают крайне "интересные" ситуации, связанные с конфликтом версий интерпретаторов или всякого другого
Не надо далеко за примером ходить - достаточно вспомнить "питонью болячку" c python 2 и python 3, которую, наверное, никогда уже не вылечат. Есть такая софтинка GPAW для расчетов по квантовой химии с интерфейсами к библиотечным функциям, написанными на этом дивном языке. Всем хороша эта свободная софтинка: и расчетных методов реализовано дикое количество, которое и не снилось иным проприетарным пакетам, и возможностей масса; можно, помимо прочего, собрать локальную версию документации в виде набора html-файлов с красивыми графиками и табличками, чтобы не тыкаться носом в их сайт постоянно. Красота, одним словом. Но вот решили разрабы перевести последнюю версию в режим "Python 3 only", а система сборки документации как работала с Python 2, так и работает. Получается интересная история: чтобы собрать документацию, нужен Python 2, но данные, которыми она наполняется, обсчитываются в ходе сборки самим GPAW, который теперь дружит только с Python 3. Без некромантии и шаманских плясок теперь никак...

Красочный пример безответственности

Вот так вот взяли и сломали обратную совместимость. Красота. И я не про GPAW, я про создателей самого Питона. Примерно так: «Ну что, ребята, изучили наш Питончик? Ну молодцы, а теперь ооооооппп-ля — с сегодняшнего дня он совсем другой, начинайте изучать заново!»

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

Проблема с GPAW

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

Да уж, а в

Да уж, а в некоторых особо запущенных случаях сгенеренный Makefile сам запускает configure по поводу и без. Т.е. после ./configure все чинно-благородно, запускаешь make, часа полтора вся кухня крутится, после чего рушится со словами: "Ой, а где же -lyet_another_fucked_super_puper_library?" Ставило её, запускаешь make для продолжения сборки... и обнаруживаешь, что объектных файлов-то твоих уже нет, а скрипт снова-здорова услужливо проверяет, что есть у тебя gcc, что такие-то фичи он поддерживает, и всё вот это вот заново.

Спасибо за

Спасибо за ответ, собственно, вопрос возник как раз после того, как "I wasted several days" (да-да) и "read tons of various docs", правда, не с MySQL, так что очень хорошо Вас понимаю.
В общем, нужны все эти штуки ровно для одного - навязать вынутый кем-то из самого темного места у белого мустанга "стандарт". Ну и отучить писать по-человечьи Makefile, куда ж без этого.

Андрей

Андрей Викторович, скажите пожалуйста, что вы думаете о поисковой системе YaCy.

Идея была хорошая

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

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

Зашёл на сайт, и началось. С отключённым JS там тупо блоки друг на друга налезают, за такую вёрстку надо убивать просто сразу — это даже не техническая безграмотность, это какое-то дебильное и бессмысленное вредительство. Сама она написана на Java, ну спасибо, матерь ихнюю так. О возможности разделения на серверную и клиентскую часть — ни слова, во всяком случае с ходу; вот у меня есть сервер в датацентре, я бы ту часть, которая по вебу ползает и с пирами общается, там запустил, а с домашних машин уже бы к этому всему хозяйству обращался. Впрочем, даже если бы такая возможность была предусмотрена, я на своих серверах Java в любом случае поднимать не стану, это долго и не факт, что вообще получится. Под Openwall её придётся собирать из исходников, и в своё время с Erlang'ом у меня это не вышло, вот просто тупо не собралось с невнятной диагностикой, а Java пожирнее будет и уж наверняка покапризнее.

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

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

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

пессимизм?

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

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

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

Реализм, увы

Вот есть распределённые системы IM, но основная масса народу продолжает торчать в телеграмчике и вотсапчике; есть всякие диаспоры и GNU Social, но миллионы юзверей как сидели в фейсбучике и вконтактике, так там и сидят, и никакие катаклизмы вроде массовых утечек из FB и отжатия VK кровавой гебнёй у Дурова не могут повлиять на ситуацию.

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

P.S. Ах да, про Википедию. Она централизованная. От некоторых проклятий спасает то, что она при этом некоммерческая, это формальный non-profit; но, увы, сильно не от всех.

По поводу IM и

По поводу IM и телеграммчиков/вотсапов. Лично для меня (и по-моему мнению для многих) платформа для использования мессенджеров --- это прежде всего телефон, а дальше уже ПК. Поискав мобильный клиент для IM, который бы из коробки поддерживал синхронизацию диалога на двух устройствах я не нашел. Может вы можете подсказать?
Мне кажется, когда некоторые важные функции не поддерживаются из коробки, то вероятность начала повсеместного пользования, увы, мала :(

Я пользуюсь

Я пользуюсь джаббером, на сервере ejabberd, на смартфонах conversation, на компах gajim. Синхронизация всего со всем работает, общая история через сервер (всё равно он личный), группы есть, картинки передаются, даже вроде можно звонки сделать, но мне без надобности. Можно ставить транспорты в другие мессенджеры, но мне религия не позволяет. Работает отлично много лет, всё опенсорс, правда в Gentoo ставлю из оверлеев, в главном портадже очень старые версии.

Увы

Я не пользуюсь смартфонами, так что этот вопрос не исследовал.

ziglang

Здравствуйте! А что вы можете сказать о Zig? Язык с претензией на нишу C/C++, управление памятью осуществляется вручную, на оф. сайте примеры проектов, в том числе, для запуска на голом железе. Пока, правда, кажется сыроватым, но это вопрос времени.

Выглядит

Выглядит неплохо.

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

В общем и целом, посмотрим, что из этого всего вырастет.

Добрый день,

Добрый день, Андрей Викторович! Скажите, пожалуйста, что, на ваш взгляд, есть большее зло при программировании на чистом Си: использование многострочных параметризованных макросов или ключевого слова inline из C99? В обработчике прерывания микроконтроллера, например, где "честный" вызов функции по тем или иным причинам нежелателен.

Слишком толсто

1) Слово inline пришло не из стандарта, а из C++, где оно присутствовало изначально (то есть до того, как за C++ всерьёз принялись стандартизаторы). C99 лишь "согласился" с реальностью, в которой на тот момент жили едва ли не все компиляторы. Ответом на ваш вопрос, видимо, является то, что лично я слово inline использую, в том числе и в программах на чистом Си.

2) Не думаю, что для вас приходить на этот сайт было хорошей идеей.

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

Простите, если мой вопрос показался вам оскорбительным, это ни разу не была попытка "потроллить" или как-то зацепить, с большим уважением отношусь к вам и вашей работе. Я знаю, что inline появился с C++, знаю о __inline и __inline__, с незапамятных времён существующих в gcc и иже с ним. Просто, зная ваше отношение к пресловутым "стандартам" и попыткам кровосмешения, породившим т.н. C/C++ (спасибо Неназываемой компании), как раз и хотелось узнать, что предпочли бы в таком случае именно вы - небезопасные, но существовавшие испокон веку макросы, или встраиваемые функции, которых не было в изначальной концепции языка Си (вы как-то писали здесь, что не используете namespace в C++ именно по этой причине), только и всего.
P.S. Если бы я видел, что вы используете inline в чистом Си, вопрос бы отпал сам собой. Ещё раз прошу извинить.

принято

namespaces как раз пришли из стандарта, то есть пока их стандартизаторы не придумали, их не было. Так что причина не "эта", а другая. Const тоже из C++ пришёл, и его даже нет в книжке Кернигана и Ритчи, то есть авторы языка так и не одобрили const, но и его я использую, и не считаю, что он пришёл из стандарта. Больше того, я в некоторых (впрочем, редких) случаях использую stdint.h — но я вообще не считаю библиотеку частью языка ни в каком виде, и если есть библиотечная возможность, которая мне нравится и кажется осмысленной, то мне пофигу, что она есть в стандарте.

Ну а "кровосмешение" бывает осмысленное и бессмысленное. Const и inline -- это осмысленно. Комментарии двумя слэшами или какой-нибудь stdbool.h -- бессмысленно.

Linux для новичка

Какой дистрибутив Linux, кроме Ubuntu, вы бы посоветовали новичку?

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

У убунты есть несомненное достоинство — она ставится легко. На этом её достоинства заканчиваются.

Если не боитесть сложностей — берите вообще любой дистрибутив, лишь бы он не был чисто серверным или супер-замороченным вроде Gentoo. Ну, возможно, лучше выбрать какой-то без systemd.

Lubuntu == Ubuntu?

У Lubuntu есть достоинства, или это тоже самое что Ubuntu?

Что вы думаете

Что вы думаете о дистрибутиве fedora!Будет это лучшим выбором чем ubunta и lubuntu.

Для

Для повседневных задач, да и для обучения программированию, уверяю вас, разницы между дистрибутивами практически никакой - среднестатистический пользователь работает не с системой, а с софтом. Администрировать - да, везде есть свои заморочки. Но у Fedora есть большой плюс для начинающих пользователей - громадное количество пакетов в репозиториях, начиная от распространенных программ и заканчивая спецсофтом для научных вычислений. В то же самое время можете столкнуться с проблемой: Fedora была, есть и будет своеобразным полигоном для тестирования фич, планируемых в RHEL, поэтому радость от регулярного появления обновлений пакетов может быть омрачена, когда вам подсунут альфу/бету.
P.S. Можно дать вам совет? Лучше не пытайтесь затевать спор о преимуществах того или иного дистрибутива с человеком, который его не использует. Примерно в 80% случаев этот спор будет подобен спору с раввином о пользе свинины :)

Нет, лучшим не

Нет, лучшим не будет. Худшим, впрочем, тоже не будет. Дерьмо — оно и есть дерьмо.

Там другой

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

О JavaScript

Какие возможны альтернативы JavaScript в плане снижения нагрузки на сервер со стороны клиентов и экономии трафика? Вопрос особенно актуален для крупных сайтов с большой базой данных.

расстрелять, немедленно расстрелять (с)

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

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

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

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

Справедливости

Справедливости ради надо отметить, что одно полезное дело хозяева таких сайтов всё-таки делают, пусть и неосознанно - повышают компьютерную грамотность части своей аудитории. Из десяти человек четверо смиренно продолжат сидеть "на проводе", сетуя, что не везде ловит Wi-Fi/3G, трое уйдут на другой ресурс, парочка заплатит, подпишется на какую нибудь рассылку или репостнет чего-нибудь во вконтактике, а один нажмет Ctrl+U, пороется в исходнике страницы (пусть предварительно огребет трулялей на каком-нибудь форуме, выясняя, как это сделать), пошаманит с GET/POST-запросами (опять же, после того, как его окрестят м@даком на том же Lor'е за нубские вопросы), получит вожделенное "быстро бесплатно в хорошем качестве без смс и регистрации" и... через пару лет запилит аналогичный сайтик с преферансом и куртизанками, ибо профит (шутка, конечно, хотя, как известно, в ней обычно доля шутки).
Впрочем, отношения к таким "хозяевам" это не меняет ни на йоту.

LOL что?

Из десяти человек?! Один? Вы в каком воображаемом мире поселились, простите? Перечисленное вами сделает хорошо если один из десяти тысяч.

Ну промахнулся

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

Попробуйте

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

Мне пока группы

Мне пока группы первокурсников хватает )))

Неееее, это не то

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

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

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

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

Что вы думаете по поводу Google-free инициативе? А в частности по поводу предлагаемых тут https://nomoregoogle.com/ альтерантив?

Заранее спасибо за ответ

Гм

С одной стороны, давно пора.

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

Поясните,

Поясните, пожалуйста, что значит не «любезно предоставленная добрым дядей», а «своя»? Нужно разворачивать свой поисковик, DNS, сервис карт или приложение для перевода?

Посмеялся

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

Далее, DNS. Разумеется, в любой локальной (стационарной) сети он должен быть свой, у меня квартирную сеть обслуживает DNS-сервер, поднятый на той Raspberry Pi, которая у меня по совместительству работает маршрутизатором и NAT'ом. Времени на его развёртывание у меня ушло минут семь от силы.

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

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

Между прочим, достаточно запретить все виды рекламы (что рано или поздно сделать придётся), и поисковики сдохнут сами собой, что, с моей точки зрения, было бы просто замечательно; но Интернет к этому явно не готов (ибо замены нет, directory services в загоне), а стоило бы.

Да, кстати, если вы сюда пришли поспорить, то пойдите поспорьте с кем-нибудь ещё.

Не могли бы вы

Не могли бы вы описать случаи, при которых используется ключевое слово volatile и const volatile? В книгах об этом пишется как-то вскользь, а в Кернигане-Ритчи даже не встречается.

Конечно, не встречается

У Кернигана с Ритчи и const вообще-то не встречается.

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

Вариант const volatile изрядно напоминает взаимоисключающие параграфы, но на самом деле встречаются ситуации, когда это может быть осмысленно. Такая область памяти запрещена к изменению _вашей_ _программой_, но при этом вы сообщаете компилятору, что эту же самую область памяти может внезапно поменять _кто-то_ _другой_. Элементарный пример: у вас есть кусочек разделяемой памяти, который вашей программе доступен только на чтение, но вы точно знаете, что есть какие-то другие программы, которые к той же разделяемой памяти обращаются на запись.

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

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

Очевидно же

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

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

Volatile и многопоточность

Прошу прощения, что вмешиваюсь в диалог. Не так давно начал знакомство с pthreads.Уважаемый Андрей Викторович, хотелось бы узнать ваше мнение по поводу целесообразности использования ключевого слова volatile в многопоточных программах. Например, имеет ли смысл объявление общих для нескольких потоков переменных с ключевым словом volatile, если используются такие примитивы синхронизации, как мьютексы? Поиск по этому вопросу привел меня к диаметрально противоположным результатам: кто-то утверждает, что volatile полезен в многопоточных программах, кто-то - что отключение оптимизации не несет в себе положительных эффектов, а может даже "замедлить" выполнение кода. Надеюсь, вы сможете пролить свет на этот вопрос. Спасибо!

Вас на поисковиках забанили?

Вот тут https://stackoverflow.com/questions/4557979/when-to-use-volatile-with-mu... обсуждение, к которому мне технически добавить нечего — здесь даже рассмотрены экзотические случаи, когда разделяемую переменную можно (!) не обвешивать мьютексом без потери корректности программы, и тогда (ага) нужен volatile.

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

Что лучше

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

++

Вне контекста вопрос лишён смысла, но я попробую восстановить несколько разных контекстов. Итак, если вы пишете на чистом Си, то в роли i у вас или целочисленная переменная (не обязательно int, это может быть целое любого размера), или указатель. Поскольку речь идёт об итерации (по-видимому, цикла for), операция ++ используется ради побочного эффекта, то есть вас не волнует значение, ею порождаемое (то, чем как раз и отличаются ++x и x++). Так вот, в этой ситуации, можете быть уверены, в машинном коде окажется команда inc, причём переменную цикла ваш компилятор будет стараться разместить в регистре, так что это будет что-то вроде inc ecx. И это никак не зависит от формы, в которую вы облечёте вашу операцию, будь то ++i или i++. Или даже i+=1. Да напиши вы хоть i=i+1, машинный код получится тот же самый. Компилятор не дураки писали. При этом традиционно более популярен именно вариант i++; почему? а чёрт его поймёт.

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

А вот если вы таки используете STL, в котором все так называемые итераторы за каким-то лядом реализуют обе формы ++, причём в сигнатуре, "соответствующей исходной семантике" (кто только эту хрень выдумал), то всё резко меняется. В форме ++i значением, возвращаемым из operator++, будет новое значение итератора, так что, как правило, этот operator++ имеет форму примерно такую:


class A::B::C::whatever_damn_iterator {

    const whatever_damn_iterator& operator++()
        { /* "двигаем" итератор */ return *this; }

};

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

Совсем другое дело -- i++. Тут нужно вернуть то значение, которое _было_, поэтому ссылка на себя не работает. Получаем вот такого монстрика:

class A::B::C::whatever_damn_iterator {

    whatever_damn_iterator operator++(int)
    {
        whatever_damn_iterator save(*this);
        /* двигаем итератор */
        return save;
    }

};

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

В итоге STL-фаги и прочие маньяки "рекомендуют" в Си++ писать всегда ++i. Вообще. Просто вот привыкнуть так писать и никогда не писать наоборот. Чтобы случайне не вызвать "не тот" метод итератора.

Что по этому поводу можно сказать -- обычно на мой сайт STL-фаги не ходят :-)

Спасибо за

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

Поиск по тексту книги

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

P.S.: Замучился капчу подбирать...

Нет

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

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

djvu

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

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

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

Очень интересно узнать ваше мнение по поводу ключевого слова auto, которое появилось в c++11. Я знаю ваше отношение к новым стандартам языка C++ и его «стандартной» библиотеке, поэтому мой вопрос касается только конкретно этой новой возможности. Я понимаю, что даже добавление одной глупости в стандарт может сделать его употребление невозможным в принципе (по идеологическим убеждениям), но может с auto все нормально? Не могли бы вы рассказать, какие вы видите беды при его использовании (если вы их видите)?

Заранее спасибо за ответ.

Из всех

Из всех новшеств, появившихся в C++ "благодаря" стандартизаторам, относительно осмысленными и полезными можно назвать разве что enum classes, не вываливающие имена констант в объемлющее пространство имен. Причем пользы от них, имхо, было бы больше в чистом Си, ибо в C++ и без них можно было писать так

struct RainbowColors {
  enum { red };
};

struct RGBColors {
  enum { red };
};

и использовать RainbowColors::red и RGBColors::red без конфликта имен. Возможно, существуют где-то в природе ситуации, в которых оказываются полезными variadic templates, хотя мне доводилось наблюдать разве что "игры в функциональщину" на их основе.
Все остальное - как раз та самая одна сплошная глупость, делающая употребление стандарта невозможным не только, как вы изволили выразиться, по идеологическим убеждениям, но и по соображениям здравого смысла.

Вот хоть убей,

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

При

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

Вот уж вряд ли

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

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

А что вы

А что вы думаете про лямбды?

Что-что, чушь собачья

Это ведь даже не функции, а функторы -- объект типа структура, для которого вводится операция вызова функции. И даже для такой дебильной реализации пришлось язык, которому уже и так "хорошо", искривить ещё больше.

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

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

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

Значения слов

У вас встречаються незнакомые слова в книге стоит ли их заучивать? н/р феномен этюд и т.д

Не знаю ответа

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

Сколько весит паскаль компилятор? 20 мб?

Когда скачиваешь используя терминал.А то скачал fp-compiler и потом fpc и какая то ошибка. Использовал проприетарный nvidia наверное изза него

Именно это вам

Именно это вам и нужно -- поставили пакет fp-compiler, используйте теперь fpc. Nvidia и прочее железо тут вообще ни при чём, компилятор на железо вообще никак не завязан (и не может быть завязан по своей сути).

Infoviolance

Здравствуйте, Андрей Викторович, есть ли ещё смысл обновлять страницу вашего канала на ютубе?

Есть

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

про функциональные языки программирования

Если есть препятствия чтобы поставить линукс на комп. Я могу изучать программирования с функциональных языков. Н/Р на хаскеле или clojure?

Я думаю, вам

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

А xubuntu

А xubuntu подходит для искушенного пользователя?

Для

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

А если опасаюсь

А если опасаюсь что в процессе установке ubuntu Windows будет уничтожена, и не установиться Ubuntu. И тогда получается и без винды и без ubuntu

Опасайтесь

Опасайтесь дальше, что я могу сказать.

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

стоит ставить 32

стоит ставить 32 битную ? 64 не стоет?

Почему?

У меня у самого 64-битные Linux'ы на тех машинах, где процессор 64-битный.

Вот этот комментарий я пишу с машины, процессор которой 32-битный, и на ней, естественно, система 32-битная.

Фундаментальное образование для разработчика в 2018

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

Для

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

Если говорить о программистах (а не о веб-разработчиках, которые такие же программисты, как маляры — художники), то мозги для них обязательны, вопрос лишь в их уровне. Можно ли быть программистом, не имея высшего образования? Можно, я многих таких знаю. Можно ли быть программистом, не зная математики? Можно. Можно ли быть ХОРОШИМ программистом, не зная математики? Лично для меня этот вопрос открыт, я ни одного такого не видел пока.

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

А что вы

А что вы называете веб-разработкой?
Формочки делать на Javascript, или распределённый отказоустойчивый бэкенд, чтобы эти формочки работали? Или всё вместе?

Конечно, всё вместе!

Разумеется, всё вместе, и странно, что тут возникли сомнения. Но у меня есть встречный вопрос: вы всерьёз полагаете, что применение разных модных слов вроде вот этого вот «распределённый отказоустойчивый бэкенд» способно предохранить от деградации мозга? (если что, тема распределённых и отказоустойчивых раскрыта полностью с появлением DNS три с лишним десятка лет назад).

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

Исторические причины

А Вы не в курсе исторических причин вообще того подхода, когда код исполняется в браузере? Что это было? Целенаправленное вредительство? Или концепция задумывалась как безусловное благо? Или может просто недостаточно продумали?

По-моему, тут всё достаточно очевидно

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

Так или иначе, на нынешнем этапе всё гораздо хуже. Все новомодные "технологии" в применении к вебу активней всех форсит Google, он же завязывается в узел, чтобы только заставить всех пользователей в мире регулярно менять версию браузера (замечу, браузеры при этом деградируют, а не улучшаются — mozilla вот уже настолько потяжелела своим гуём, что её стало невозможно (!) гонять через ssh даже на локальной машине, лично мне пришлось перейти на palemoon). Тот же Google с превеликим удовольствием всем желающим предоставляет всевозможные повязанные на JS "сервисы" вроде google-analytics и т.п. Ну что же, Google понять можно: им очень хочется присутствовать в каждом компьютере мира, и самое забавное, что им это уже фактически удалось, всякие одиночки вроде меня не в счёт — погоды не делают.

В ответ на возможный (и достаточно часто задаваемый) вопрос "ну и чО" предлагаю вот эту ссылочку: https://mediamera.ru/post/1029 — и категорически отказываюсь продолжать обсуждение, пока текст по ссылке не будет прочтён целиком. Впрочем, всё на самом деле гораздо хуже: Google — это первая со времён Александра Македонского серьёзная заявка на власть над всем миром.

Андрей

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

Смешно, да

Может быть, вам ещё написать пособие «Как жить на свете» в пятидесяти томах? (в меньшее количество томов тут точно не уложиться)

Спасибо за ваше

Спасибо за ваше мнение!
Тогда можно еще один вопрос, в какую область можно пойти начинающему разработчику (закончил матмех СПБГУ).
Стоит ли обратить внимание на компьютерное зрение и машинное обучение?

Возможностей масса

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

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

>то либо он

>то либо он оттуда сбежит, либо мозгов у него не станет
То же самое касается Java Enterprise?

не факт

Лично у меня Java вызывает здоровое отвращение, но я не могу с уверенностью сказать, что работа на этом языке неминуемо ведёт к деградации. Не всегда. Временами — безусловно, но не всегда.

Почему?

Почему Джава вызывает омерзение? Потому, что проприетарный? Так ведь есть опенсорсные реализации. Вот Столлман например считает Джаву неплохим развитием С. Чем она вам не нравится, объектно-ориентируемостью или еще чем?

Столлман тут ни при чём

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

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

Ну а дальше всякая фигня по мелочи. Полуинтерпретируемое исполнение (здравствуй, JVM на машине конечного пользователя), отсутствие различия между объектом и ссылкой на него, все методы виртуальные (не волнуйтесь, я знаю про final, но это надо чётко понимать, что делаешь), общий предок для всех объектов, рефлексия, да мало ли там ещё закидонов, которые заведомо превращают этот язычок в чучелко для custom business apps, полностью исключая какое бы то ни было его серьёзное использование. NB: мне бы хватило каждого из этих пунктов по отдельности, чтобы об использовании такого языка даже не помышлять.

Императивность и сборка мусора

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

Вы тут сами с собой поговорить решили?

пояснение вот здесь: http://www.stolyarov.info/pvt/anti_c#comment-129

если вдруг оно окажется непонятно (что вполне ожидаемо, когда пытаешься разговаривать с джавистом, питонистом и т.п.), объясняю ещё раз: единственное, что оправдывает существование императивного программирования — это то, что программы в итоге выполняются на реальном компьютере, который построен как машина фон Неймана. Ни на Лиспе, ни на Хаскеле, ни даже на Форте мы никогда не выжмем из машины всё, на что она способна. Любая более-менее толстая прослойка между программой и машиной лишает нас всякой возможности выжимать машину как лимон. Ну а если нас устраивает использовать возможности машины на 15%, противоестественное фоннеймановское (a.k.a. императивное) программирование лишено смысла. Как следствие, тот же Clojure (есличо, он на JVM как раз сделан) имеет право жить, поскольку он не императивен ни анфас, ни в профиль; но Java — нет.

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

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

А что должен знать начинающий системный администратор?

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

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

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

Если речь идёт о базе, "без которой никуда" — ну, поставить незнакомый дистр линукса можете? А FreeBSD? А дальше с ними работать через сеть удалённо в терминальном режиме? А поднять на них веб-сервер? А почтовую систему поднять? А воткнуть в машину вторую сетёвку и превратить её в маршрутизатор? А сетку из десятка машин собрать? А NAT настроить? А порт статический пробросить (через NAT снаружи внутрь)? А бекапы автоматические заточить?

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

Парадигмы программирования

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

Увы

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

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

Обязательно ли учить С++ ?

Добрый день, Андрей Викторович! Я изучаю программирование по Вашим книгам. И у меня вопрос. Обязательно ли учить С++ после С? Или в схеме Pascal - Assembler - C после С можно вставить другой высокоуровневый язык с ООП (тот же Java, к примеру).

Нет, это уж точно не обязательно

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

Олимпиадное программирование

Добрый день, Андрей Викторович. Я являюсь начинающим программистом, занимаюсь по Вашим книгам. И вот у меня возник вопрос касательно олимпиадного программирования. Недавно я наткнулся на мнение, что к олимпиадному программированию не стоит готовиться совсем, т.к. "олимпиадное программирование применяет совершенно другие приёмы, чем программирование длительных проектов, которые только и встречаются в обычной жизни". Когда я впервые увидел те задачи, которые решаются на таких соревнованиях, то понял, что мне они не под силу и что стоит сделать упор на них для практики своих способностей. Собственно сам вопрос. Насколько эффективно решать задачи из ОП для начинающего? Разве это не является полезной практикой для мозгов? Заранее спасибо!

Всё ещё хуже

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

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

Вы против

Вы против именно олимпиад по программированию или против олимпиад и в других сферах?

Я ничего не

Я ничего не имею против олимпиад по математике и физике. Про все остальные сферы сказать ничего не могу — не в курсе.

Поискав в

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

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

Реальные олимпиадные задачи предлагать на собеседованиях может себе позволить разве что Google, остальным программистов и так не хватает, чтобы от них ещё и такого ждать. Ну а в Google лично я бы работать не хотел.

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

А дальнейшее

А дальнейшее трудоустройство?
Никогда не слышал про всеросников по информатике, которые не могут себе найти работу по специальности.

И что?

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

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

Блокировка рекламы

Добрый день, Андрей Викторович! Недавно наткнулся на приложение для блокировки рекламы Pi-hole, созданное командой энтузиастов. По их словам, они разрабатывают так называемую «чёрную дыру для рекламщиков". Мне это показалось очень интересным, поэтому решил поделиться с Вами. Их официальный сайт: url removed. Их идеи мне напомнили то,что Вы писали о рекламе и говорили в роликах по infoviolence. И меня, как ненавистника навязчивой рекламу и таргетинга, их проект очень заинтересовал. Надеюсь, что и Вас это тоже заинтересует.

Не вижу ничего

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

Вопрос про информационно свободное общество

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

как в

как в информационно свободном обществе начать личный диалог к примеру с Вами?

Вы сами дали ответ на свой вопрос:

Одно дело когда вы на сайте публично размещаете свой email для связи(тем самым давая согласие на получение по этому адресу писем связанных с тем, что Вы тут публикуете)

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

другое дело, когда(теоретически) Вас встречаешь на улице и хочется задать вопрос лично(на что Вы получается согласия не давали)?

Совершенно верно, я согласия не давал ко мне на улице приставать с вопросами. Если кому-то "хочется", то это его проблема, не моя.

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

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

Блокировки

Андрей Викторович, не могли бы вы рассказать ваше мнение по поводу ситуации с Телеграмом и действий Роскомнадзора? Очень интересно услышать ваше мнение.

У этой палки два конца

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

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

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

Infoviolence

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

Надеюсь, что не всё так плохо :-)

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

Что касается "почитать" — насколько мне известно, кроме меня никто информационное насилие не рассматривал в таком значении термина. Так что кроме своего диссера, пожалуй, мне нечего предложить на эту тему. Диссер, если что, тут: http://www.croco.net/croco/papers/stolyarov_philosophy_thesis_infofreedo...

microsoft и opensource

Добрый день, Андрей Викторович!

Что вы думаете о подвижках Microsoft к опенсорс сообществу? В частности факту открывания исходников clr, jit-компилятора, сборщика мусора и прочего для новой итерации .net которая core, а также слогану "microsoft loves linux" и вообще новой "политике партии" microsoft.

Смягчает это ваше к ним отношение или нет?

PS капча очень сложная

Как мы знаем, в

Как мы знаем, в 1861 году в Российской Империи было отменено крепостное право; часто можно видеть, как этот (безусловно правильный) шаг вменяют в заслугу тогдашнему царю Александру II. К чему это я? А к тому, что не отменить крепостничество в России было объективно невозможно: промышленности требовались рабочие, ну и прочее в таком духе. Если там где-то и есть "заслуга" царей, включая Александра, то она разве что в том, что отживший и изживший себя феодализм продержался в России лет на сто дольше, чем ему объективно стоило.

Вот примерно такова же ситуация и с M$. Поддерживать своё проприетарное ядро ОС силами одной конторы в современных условиях невозможно, Apple эту фишку просекли на рубеже веков, так что MacOS X внезапно оказалась представителем семейства юниксовых. Вот теперь допёрло и до мелкомягких.

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

Что думаете о современном софте

Здравствуйте, Андрей Викторович. Есть мнение, что совремменый софт - это отстой (вот даже книга есть, сам правда не читал https://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756). Что думаете об этом вы? Стоит ли пробовать идти против системы (писать что-нибудь своё, проводить время в поисках лучшего и т.п.) или это не стоит потерянного времени. Также хотелось бы узнать ваше мнение о данном ресурсе, где люди делятся вроде как хорошим софтом https://suckless.org/ и ещё одним, где есть некоторые рекомендации http://harmful.cat-v.org/software/.

Всё в одну кучу -- как-то странно получилось :-)

Начать с книги Платта. Конечно, весь современный софт именно что sucks, только не факт, что именно по тем причинам, про которые говорит Платт. Если на то пошло, мне больше нравится книга Алана Купера "Психбольница в руках пациентов" (переведена на русский, в инете представлена в изобилии) — вроде она про то же (usability), но как-то более конструктивно, что-ли.

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

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


Harmful things that are so superfluous and useless that require no alternative:

Unicode BoM in UTF-8.
IDN.
Dynamic linking, in particular in Unix systems.
PoSix locales.
Adobe Flash.
GNOME and KDE.
Boost.
UML.

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

3 вопроса

Доброго времени суток, Андрей Викторович!
Как вы думаете, актуальны ли книги Криса Касперски по сей день(если нет, то какие есть альтернативы)?

Каким дистрибутивом Unix вы пользуетесь и что порекомендуете после Ubuntu?

И ещё вопрос. Пожалуйста, объясните очередному неофиту, почему вы считаете сборку мусора мракобесием?

какие вопросы, такие ответы

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

По поводу "дистрибутива Unix" (гм...), ну в общем если интересно, то на серверах у меня Openwall, а на домашнюю машину последнее, что я взгромождал — Devuan. Я при этом совершенно не уверен, что Devuan сейчас прямо-таки правильный выбор, но на то, чтобы поставить десяток разных дистров без systemd, попробовать с каждым из них поработать и выбрать лучший, нужна реально прорва времени, а результаты таких "исследований" за пару лет устаревают (вот кто бы мог подумать, что CentOS скурвится — а поди ж ты, переползли тоже на systemd). Короче говоря, нету у меня такого количества лишнего времени.

Что касается сборки мусора, то мракобесием я считаю не её саму как таковую, а её сочетание с императивным программированием. См.тут: http://www.stolyarov.info/pvt/anti_c#comment-129 и тут http://www.stolyarov.info/books/programming_intro/vol2#comment-1171

Андрей

Андрей Викторович, а вариант использования FreeBSD как рабочей лошадки не рассматриваете? Разработчики там вроде шибко консервативные и намёков на системд нет.

Конечно, рассматриваю

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

Математико-юмористическая статейка

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

[URL removed]

Как я понял из своих наблюдений - технарям смешно, а не технарям не смешно :)

Прикольно

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

https://sly2m.livejournal.com/620353.html?nojs=1

Hint: перед тем, как кликнуть по ссылке, выключите в браузере JS. Тогда вы не увидите там рекламы.

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

Racket

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

Меня интересует Ваше отношение к языку Racket и его инфраструктуре. Расскажите, пожалуйста.

Насколько я

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

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

О, а можно чуть

О, а можно чуть поподробнее, чем дебилен R6RS?

Ну, то есть, мне интересно, дебильнее ли R6RS, чем R5RS (или R7RS), и если да, то чем именно.

Спасибо.

"Чуть"

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

А если нет времени читать, то хотя бы сравните их объём.

Ага, спасибо.То

Ага, спасибо.
То есть, я так понимаю, R7RS можно, вообще говоря, считать "возвратом к адекватности" после дебильного R6RS.

Насколько я

Насколько я понимаю, нельзя. Последней адекватной спецификацией Scheme был R5RS.

Гм, а можно

Гм, а можно пару-тройку ключевых слов по поводу неадекватности R7RS? А дальше я уже сам поищу-подумаю.

Насколько я понимаю, создатели R7RS как раз таки пытались уйти от неадекватности R6RS. Выходит, попытка не совсем удалась?

R7RS

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

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

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

Ясно,

Ясно, спасибо.

Кстати, на фоне всего этого, что думаете про Common Lisp и его стандарты?

А что тут думать?

Собственно, Common Lisp — это и есть стандарт, называется он так; в CLTL многократно упоминаются результаты голосования соответствующего комитета. Судя по тому, что происходит с его реализациями, этого бегемота уже более-менее настигла заслуженная судьба :-) Проблема в том, что при этом нестандартных лиспов я давно уже не видел, так что, похоже, вместе с этим стандартом мы можем лишиться Лиспа как явления, и это печально. Со стороны выглядит так, что нежизнеспособный монстр сначала всех убедил, что тут только он ТруЪ, а остальные типа фигня, ибо не соответствуют, видите ли, стандарту; ну а потом сдох, ибо монстр.

1% для JS

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

Ноль

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

Функциональное программирование

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

Известное дело

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

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

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

Чем так плох systemd?

Здравствуйте! Очень интересно, чем так сильно systemd проигрывает тому же openrc, в чем его недостатки или "вредоностность", кроме неюниксвейности? Сам перешел недавно с archlinux (systemd) на gentoo (OpenRC), особой разницы пока не понял, кроме того, что openrc не такая "изкоробочная", как systemd. И чем обусловлена массовая миграция на этот самый systemd?

Лично для меня

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

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

В принципе этим не только systemd славится, я вот тут потратил примерно час, чтобы понять, как в нынешнем X.org таки вернуть возможность убивать сервер по Ctrl-Alt-Backspace, и чтобы при этом не сломалось переключение регистров клавиатуры. Проблема, как выяснилось, была в том, что теперь, оказывается, xkb options берутся не из собственной конфигурации X.org, а от долбаного udev, у него свой отдельный конфигурационный файл для клавиатуры (/etc/default/keyboard, его я нашёл grep'ом, но не сразу понял, что это именно udev его использует), и потом ещё udev надо перезапустить, причём обязательно с помощью udevadm, поскольку обычный перезапуск на него не действует. Кто мне вернёт этот час?! Какого чёрта кто-то там решил, что "так будет круче", а я за это вынужден расплачиваться собственным временем?

Таки да, я противник не только systemd, мне и udev, и hal, и прочие подобные примочки тоже не нравятся. Они мне низачем не нужны, в том смысле, что они мне не дают никакого профита, а вот на борьбу с их изысками мне приходится тратить время и силы. Если говорить об init'е, то меня вполне устраивает (то есть более чем) классический system V init со всеми его скриптами, так что мне не нужны ни upstart, ни openrc, ни какие-либо иные потуги заменить якобы "старую" технологию, которая полностью справляется с моими потребностями.

Время

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

Чушь

Во-первых, это не о том. Вопрос был не в том, допустить или не допустить использование systemd, а в том, почему systemd — это плохо.

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

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

Уважаемый

Уважаемый Андрей Викторович!

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

С уважением.

Сделано.

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

Версия UNIX

Здравствуйте! Какую версию UNIX Вы рекомендуете установить?
Заинтересовала Ваша первая книга Азы программирования. У меня есть возможность установить только на один жёсткий диск с Windows7. Ubuntu подойдёт?
Спасибо!

Да что угодно подойдёт

... и Ubuntu в том числе. Dual boot, опять же, умеют и все известные мне дистрибутивы Linux, и FreeBSD.

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

Youtube-канал

Здравствуйте. АВ, укажите в описании под каждым видео на канале ссылки на ваши сайты. Это может быть полезно.

Что, вот прямо

Что, вот прямо под каждым? И прямо на все сайты? По-моему, это слегка перебор.

Youtube-канал

Можно только на этот сайт, а можно и на infoviolence (но на этот важнее, я думаю, если выбирать).

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

P.S. Был перерыв с выходов видео и я уже начал волноваться. )

Эти ссылки есть

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

papers 403

Доброго времени суток!

Публикации со странички http://www.croco.net/croco/papers.html недоступны (403 Forbidden).

Вроде работает

У меня страничка открывается без проблем и я для этого ничего не делал. Э?

Я, вероятно,

Я, вероятно, недостаточно точно выразился. Страничка и у меня открывается без проблем. А вот при попытке с этой странички скачать какой-нибудь pdf/ps/etc в ответ я получаю ответ типа "Forbidden. You don't have permission to access /croco/papers/bolshakova_stolyarov_2000.ps.gz on this server."

Да, факт

Спасибо!

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

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

Здравствуйте, Андрей Викторович! Хотел бы спросить о четвертом томе. Есть ли примерный список глав будущей книги?

Четвёртый том

К сожалению, пока есть только список частей, вот здесь вот.

Первая из этих частей уже готова, она лишь слегка отличается от содержания "Введения в язык Си++"; остальные части, напротив, я ещё не начинал не только писать, но и прикидывать, так что плана глав для них нет.

Программа дополнительного образования ВМК МГУ

Андрей Викторович, имеет ли смысл учебы по программе профессиональной переподготовки «Разработчик профессионально-ориентированных компьютерных технологий» ВМК МГУ?

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

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

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

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

Объём-с, знаете ли

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

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

Вопрос по файловым менеджерам

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

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

попробуйте ranger

попробуйте ranger (выделение всех файлов там точно есть)

Мне не вполне

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

Так что вопрос я не изучал и ответа на него дать не могу. Ну то есть понятно, что существует, к примеру, Midnight Commander, о его существовании я знаю примерно с тех времён, когда вообще начал работать с *nix (то есть с 1994 года, вроде как раз тогда он и появился), но никогда его сам не использовал, ибо по-моему неудобно.

На вкус и цвет, как говорится...

Я mc использую уже около 15-20 лет. :-) Да, многое неудобно, не комбайн, но какой-либо альтернативы ему я не вижу (при этом я периодически пробую разные файловые менеджеры, но в итоге опять возвращаюсь на mc).:-) При этом я бы не назвал себя фанатом консоли, - просто исторически так сложилось. :-) А файловые менеджеры удобней для работы с файлами. Как не крути, - горячими клавишами, стрелочками и ВК, гораздо быстрее, чем одним автодополнением по TAB (в случае с шеллами, которые это поддерживают). :-)

Вот именно, что

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

информационное насилие

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

У меня есть татуировка с Tux'ом. Я планировал добавить изображение Gnu чтобы не расстраивать Ричарда Столлмана. Но теперь подумал, ведь подобное тату — как есть пропаганда и информационное насилие!

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

О боже!.. Информационно изнасилованному

Я крутейший линуксоид -
Тукс-пингвин на попе виден,
И одно лишь беспокоит -
Столлман не был бы в обиде!

Дядя Столлман - тот суровый,
Ой, беды я с ним хлебну!
Зад оглядываю снова -
Где бы втиснуть ещё GNU?

Это будет мне не в минус,
Пусть дивятся моей силе,
Ведь меня не только Линус,
Но и Ричи изнасилил!

насилие

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

М-да

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

Что до меня, то я вообще не люблю татуировки как идею, хотя это уже не относится к обсуждаемому вопросу.

Не верная ссылка (проблемы копипаста)

На этом сайте На странице купить ссылка на третий том ведёт на второй.

Спасибо,

Спасибо, исправлено.

Может мы про разные возрасты говорим?

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

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

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

Всё же считаете что это бесполезно и контрпродуктивно?

Да нет, просто странно

Вот чем вас этот ваш "старый-старый ноутбук" не устраивает, чем спектрум лучше? По мне так пусть лучше ребёнок вам этот ненужный ноут раздолбает, чем живой (пока) спектрум :-)

Игрушек простеньких, в том числе развивалок, для Linux имеется реально прорва.

Компьютерщик дед - горе в семье.

"К вопросу откуда спектрум, так очевидно что из личной юности...
Всё же считаете что это бесполезно и контрпродуктивно?"

Из первой фразы (когда появились спектрумы и писюки, извините, знаем!) очевидно вытекает, что иначе, как дедушкой двухлетнему ребёнку, вы приходиться никем не можете! Что, дедушка, ограничили общение со внуком(внучкой) родители? :) Да я бы вообще таких "бесполезных и контрпродуктивных" дедушек грязной метлой гнал! Сами-то понимаете, о чём говорите? Два года! А вы о каких-то компьютерах, извините! Офигеть... "Умнее" ребёнка сделать удумали? Так с вашими подходцами, получить что-либо кроме очкастого и болезненного существа, не вылезающего из чатов и бьющегося сутками в Танки, решительно невозможно! Если хотите чтобы ребёнок рос и развивался нормально, оставьте его родителям. Если же такое (по любым причинам!) невозможно, учитесь сами. Всему! Кончил учиться - кончил жить. Здесь цель простая - на любой вопрос, заданный ребёнком, у вас должен быть ответ "на пальцах", понятный на его уровне развития. В принципе, теорию вероятностей можно объяснить ребёнку "на пальцах". Общую, конечно, специальную не каждому выпускнику профильного вуза объяснить возможно! ;) Вот какой программой "обучения ребёнка" вы должны бы быть обеспокоены. В этом случае, возможно, вы поможете ему и его родителям в его развитии. Но для начала (я вас умоляю!) выкиньте из головы бредовые затеи относительно как спектрумов, так и РС. Всему свое время. Сказки ему читайте, чёрт подери...

Мимо кассы

Сорри уважаемый, вы мимо кассы :) По крайней мере со своими выводами про дедушек и внуков.

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

Книжки уж поверь сыну читаю с самого детства, и он сам с ними ко мне прибегает, чтобы я ему тех самых "Дядю Стёпу" или "Крокодила Гену" почитал.

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

Так что, вы прошли чуть мимо. Ну и идите дальше туда же, ни в коем случае не сворачивайте :)

От студентов к детишкам? Что ж...

А вот как с детьми работать — мне неведомо.

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

Да и "дедушке-папе" двухлетних детей, очевидно, видеть не приходилось. Иначе вряд ли бы пришло ему в голову говорить чего-то о "двумерной системе координат". "Дедушка-папа", на будущее - если захочется еще пофантазировать на тему двухлетних детей, хоть в интернетах поинтересуйтесь, что они из себя представляют. Ну, да пожалею ваше время и ваши потуги (сложно ведь в Гуглах, не правда ли?) Вот, к примеру ссылочка (таких море в сети), дающая представление о двухлетних детях:
Дети в два года
Обратите внимание на имеющиеся навыки, словарный запас, да сопоставьте с вашими мыслями относительно синклеров всяких. Идея сама по себе бредовая, впрочем! И это должно быть очень хорошо понятно человеку у которого на древней машине установлена аж гента, требующая довольно неплохого знания системы и, разумеется, прикладных программ, в частности, обучающих, коих под Линуксом, действительно немерено. И думать вместо этого о каких-то синклерах довольно нелепо! Кстати, обучающие-то программы опять же никак не для двухлетних детей! Так что, количеству фантазий в одном посте на одно вменяемое слово позавидовали бы лучшие писатели-фантасты.

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

Что касается эмоционального довольно поста относительно обучения детей, ничего предосудительного там найти нельзя. Скорее всего, человеку просто пришлось столкнуться со старшими родственниками, пытавшихся взять на себя обучение ребенка, которому безусловно в будущем предстоит стать не менее, чем академиком. Ни к чему хорошему такие вещи привести не могут. Все должно идти своим чередом. Ну, и очевидная описка имеется - теория не "вероятностей", а "относительности" явно имеется в виду. А то, что ее можно объяснить на пальцах - так это не можно, а НУЖНО делать. Ибо возможно. И предложение учиться всегда - абсолютно правильно, хотя и довольно банально.

Впрочем, по любому повеселили, спасибо!

ЗЫ А вот про дядю Степу, крокодила Гену "дедушка-папа" очень правильно читает - развивающее чтение! ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <ins> <del> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Проверка на бота
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.