All streams
Search
Write a publication
Pull to refresh
6
0.3
Send message

Парсинг сайтов с Selenium на Python

Selenium –это большой проект и для его использования нужны большие основания. У меня задача была попроще – скачать несколько онлайн-словарей для самообразования. Для одного из них хватило простого Питона (без сложных библиотек), а для остальных старой версии Хром (версия 109), для того, чтобы сохранить возможность работы со второй версией манифеста. Поскольку, в последних выпусках Хрома доступен только третий манифест (насколько я знаю), а он уже имеет ограничения в работе, которых не было во втором манифесте. Это касается и блокировщика рекламы сайтов и работы с файлами. А Хром нужен для (ручного) обхода капчи – «дешево и сердито».

Другим словами, нужно было «ехать», а не «шашечки». И если эту задачу решает «велосипед», то зачем тогда нужен «мерседес?

Теперь, тоже самое, но чуть подробнее.

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

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

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

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

Скриптом расширения, хотя там всего пара десятков строчек, делиться не буду, чтобы не палиться. Раньше я использовал скрипты Питона для аналогичных целей, пока не столкнулся с капчей. С ней возникли проблемы, пока не нашел в Интернете подходящий прототип расширения на базе второй версии манифеста (как я уже говорил, современный Хром поддерживает только третью, значительно урезанную в своих возможностях). Слегка доделал его «напильником» и вуаля…

В итоге, загрузил два разных сайта, порядка ста тысяч страниц. На каждый ушло по месяцу, примерно. Сайты крутили время доступа, между капчами, от 5 до 30 минут, потом обратно. Это несколько напрягало, но, параллельно, занимался другой работой, да и спешить мне было особо некуда.

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

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

Таким образом, на универсальность не претендую, но свои личные проблемы решил. Более того, все данные корректны, я их полностью обработал и проверил. А вот, когда работал с подобными скриптами на Питоне, без капч, то, да, за ними нужен был глаз да глаз. Данные отгружали всегда, но после небольшого объема корректных данных начинали поступать некорректные. Да и задержку между запросами там нужно было выставлять секунд пятнадцать, не меньше, ибо очень подозрительные сервера были. Зато особо не придирались к ай-пи, можно было работать без вэпээна. Короче говоря, везде использовал специфику частных случаев…

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

Мораль это не «моно», а «стерео». Как и всё в этом Мире. Другими словами, мораль – полярна. А что является «полюсами»?

Начнем с «буржуев». Они реально говорят о существовании «параллельных» человечеств. Водораздел там прост – отношение к Миру, в буквальном смысле.

Одна половина человечества – воинственна и заточена на экспансию и экстенсивное развитие, в т.ч., войны, грабежи, насилие, эксплуатацию и угнетение. У них мораль отсутствует напрочь. А главной мотивацией являются власть и материальные блага, для себя любимых, причем, любой ценой. ЛЮБОЙ!

Вторая половина человечества – миролюбива и ориентирована на интенсивное развитие, с учетом моральных ограничений. Главная мотивация для них – любовь, духовные ценности и только потом – материальное благополучие, но не за чужой счет, а за свой собственный. Хотя, именно они считают, что: «Хочешь мира – готовься к войне!».

Мораль, по сути, это желание учитывать чужие интересы. У воинствующих – такого желания нет, в принципе. А, у миролюбивых – есть. Более того, если миролюбивый случайно, ненамеренно либо походя, ущемил интересы окружающих (не обязательно людей, но и «братьев наших меньших»), которые ему ничего плохого не сделали, то он начинает испытывать угрызения совести, причем, иногда очень сильные. История знает случаи, когда воин, положивший немало врагов, вдруг понимает, что «перестарался», особенно, если это касается «мирняка» и, просто, втыкает свой меч в землю, отдавая свою жизнь на волю судьбы. Что нередко служило причиной его гибели. В лучшем случае, ранее злоупотреблявший своей силой, идет в монастырь, чтобы бесконечно отмаливать свои грехи. Кстати, нечто подобное наблюдается и у «современных» «древних укров», которые нередко накладывают на себя руки, не выдерживая собственных зверств против безоружных и слабых.

Однако, у воинствующих совести нет. Скажем, у англов под совестью понимается «conscience», но в переводе, это:

  1. Мысль, чувство: «Его мучило сознание, что он ошибся».

  2. Способность мыслить, рассуждать и определять своё отношение к действительности как свойство высшей нервной деятельности человека: «Бытие определяет сознание».

  3. Состояние человека в здравом уме и твёрдой памяти, способность отдавать себе отчёт в своих поступках, чувствах.

Т.е., что угодно, но, только не «совесть», в нашем понимании. («Совести у вас нет!», сказали Гимлеру. «Совесть у меня есть, просто я ей редко пользуюсь», возразил он.)

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

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

Таким образом, можно говорить о двух моральных полюсах: моральном и аморальном. Остальные – морально нейтральные, которые еще не нашили себя в этом Мире. Им можно пожелать – не ошибиться!

Так что, если вы выбрали моральный полюс, то:

  1. У вас есть желание и потребность учитывать интересы окружающих, по крайней мере, тех, кто «вам ничего плохого не сделал».

  2. Если вы, ненароком, ущемите чужие интересы, то, начинаете испытывать угрызения совести и желаете «искупить свой грех».

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

Но, если вы выбрали аморальный полюс, то будьте готовы:

  1. Получить всё, в обмен на отдать всё, по любому приказу. Террористы-смертники, это, ведь, отсюда.

  2. Вы не будете принадлежать самому себе. В подобном случае, вам обязательно напомнят, что «спокойная жизнь – очень дорого стоит!».

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

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

Материально ли сознание?

Не материально, а тонко-материально. Точнее, всё в этом Мире имеет свой уровень материальности или материальной плотности. Формально, от нуля до бесконечности, непрерывно или квантовыми скачками – не суть.

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

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

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

Надсознание – живет во сне и им также управляет наше подсознание – автопилот. Поэтому, сон это не потеря времени, там полноценно живет и развивается наше третье «Я». Общается оно тоже с окружающими нас надсознаниями, в том числе, скажем, животных. Вполне можно, допустим, слышать мысли собаки, которая рассуждает о своей хозяйке. Она может мыслить верно и преданно, но, несколько примитивно, по нашим меркам. Тем не менее, как правило, роль надсознания почти незаметна, на фоне обычной жизни.

Полагаю, что в «другой» Мир, после жизни, уходит наше надсознание. Материальность этого Мира – очень низка, примерно, как поле для частиц. Но реальная «плотность» этих полей еще ниже, хотя и не нулевая.

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

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

железо это и есть софт

Сомневаюсь! Есть ведь ДНК, там весь наш код, который самовоспроизводит сам себя, поддерживает и развивает свою первоначальную материальную оболочку, которая создана извне (в утробе матери). Так что, и «железо» в наличии (первоначально – новорожденный) и «софт» тоже (ДНК в клетках).

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

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

Как-то так.

Сон — это не роскошь, а системный сервис.

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

Так что сон это не «сервис», а наша суть, точнее его третья часть.

Как новенький сервис превращается в легаси помойку

Как всегда – веб и, как всегда – «вообще». Психологические проблемы понимать туже нужно, но, интересней, технические.

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

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

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

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

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

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

Ну, да! «Поздно пить боржоми…». В этом случае, хорошо помогает любовь близких. Но, нужно, чтобы у них не было своих проблем.

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

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

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

Уже сейчас все труднее и труднее различать творчество человека и машины. А прогресс в этой области – просто взрывной.

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

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

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

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

что стоит за мыслью «Я — плохой разработчик» и как поверить в то, что ты лучше, чем думаешь

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

Для подтверждения своих слов, привожу мой видео ролик: «Англо-русские субтитры - «Shakira Speech»» – https://my.mail.ru/mail/emmerald/video/_myvideo/8.html .

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

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

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

Удачи!

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

Я, в свое время, разбирался. Смотрите мои статьи по полной перекомпиляции exe-модулей: https://erfaren.narod.ru .

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

Меня, в двух ВУЗах, учили, что критерием истины является практика. Слово «общественная» это уже какой-то новояз. Можете глянуть мою недавнюю статью: «Нужна ли философия и этика для жизни и творчества?» : https://habr.com/ru/articles/939970/ .

в соответствии с диаматом - двигаться от неподного и неточного знания ко всё более полному и точному.

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

Кстати, вы считаете, что современная версия диамата преподается в российских ВУЗах лучше, чем в советских? А, какие аргументы?

Но в СССР (и, тем более - после) всему этому учили плохо, так что не ваша вина, что вы это не знаете.

Не рассказывайте сказки! В СССР учили хорошо, и в школе и в ВУЗах. Вы, например, в обычной школе, учили стереометрию?

А, кроме диамата, что вы ещё учили из общественных наук? Неужели, истмат и политэкономию? В советских ВУЗах были еще «Научный Коммунизм» и «История КПСС». Вы их «проходили»? Ладно, история правящей, в то время, партии, вам может показаться заидеологизированной, но, фактов там, интересных, давали немало. Тоже самое вы можете сказать и про НК. У меня к нему двойственное отношение, но предмет, я считаю, полезным. Более того, я читал раннего Маркса и меня его тексты очень впечатлили, просто, живой гений.

Наш академик Рыбников, который преподавал, в мое время, комбинаторный анализ, опубликовал «Математические рукописи Маркса», на базе архивов Маркса, в Лондоне. Я читал эту книгу. Но, честно скажу, меня она впечатлила меньше, чем диамат (хотя в «Капитале» его арифметическая модель – «конфетка»). Ну, не математик Маркс. Например, он на десятке страниц описывал процесс взятия производной от икс в квадрате. Радовался как ребенок, от новой игрушки, мол, ура, в математике тоже, оказывается, реализована концепция движения – главный принцип диамата! Наверное, все-таки, не стоило публиковать этот труд. Это были всего лишь, по сути, конспекты записей, при изучении математики, в Лондонской библиотеке.

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

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

А вы точно уверены, что этот процесс сходится? Точно-точно?

«А вы точно уверены», что этот термин здесь уместен? «Точно-точно?»

И именно к желаемому вами результату?

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

Я вот не уверен, что точно сходится, ибо гарантий тут никаких. А вот для разбухания кода, и превращения его в "Большой комок грязи" такой процесс подходит IMHO идеально.

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

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

Вы бы лучше подробней рассказали бы о своем «кровавом энтерпрайзе». Чувствуется, что у вас был болезненный опыт с ним. У меня другой опыт, потому мы и говорим на разных языках, и, диамат тут ни причем.

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

Здесь вы правы! Но, это естественно. В МГУ, когда я учился, были только мейнфреймы с терминалами. Использовать можно было только фортран, для научного программирования. Персоналки (286-ые) появились только на моём пятом курсе, когда я проходил преддипломную практику в «Керосинке» (Институте АН СССР). Там я, на них, моделировал «оптимальное извлечение нефти из безнапорных скважин». Работа моя понравилась, и я выступал по ней на семинаре Академии Наук. После чего мне предложили поступать туда в аспирантуру. Однако, это был уже последний год СССР, дыхание его смерти уже витало в воздухе, обязательное распределение уже отменили, госэкзамены по научному коммунизму – тоже. Нужно было ехать домой.

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

Тем не менее, одно время, моим научным руководителем был доцент кафедры системного программирования, кстати, он был научруком и для Ильфака Гильфанова (который, правда, учился на другом курсе), автора «широко известного в узких кругах», «народного дизассемблера» IdaPro. Я даже посвятил ему несколько своих статей, на своем сайте ( https://erfaren.narod.ru/ ).

Это не удивительно: в советских политехах вообще мало чему учили, тем более - такому новому делу как software engineering, а Мехмат МГУ - это вообще не про инженерное образование.

Да, как программист, я по сути, самоучка, что помогло мне выжить в «лихие 90-ьые» и кормиться всю оставшуюся жизнь.

Догадываюсь, что вы в своих рассуждениях имеете в виду командное программирование, тогда как я, всё время, программировал один. Но, кто будет проговаривать вслух такие «очевидные» вещи?

А без знания этой дисциплины по настоящему большие и сложные программы действительно не сделать.

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

Я купил тогда (на деньги фирмы) все учетные программы, которые, в то время, были. Но, ни одна из них не взлетела. Но, кого это волновало? «Взялся за гуж, не говори, что не дюж!». Поэтому, пришлось срочно ваять собственный вариант учета. Благо, какие-то наработки у меня уже были с прошлой работы. Плюс, несколько месяцев пахал по двенадцать часов в день, без перерыва. Программу, через полгода, я запустил, потом еще пару лет мощно шлифовал, потом еще несколько лет вылизывал, но у же в облегченном режиме. За время ее работы она пережила смену трех государств: Украины, ЛНР и, теперь, России. Потом пришел новый собственник из «старой» России, под него тоже много чего пришлось переделывать. Затем фирму искусственно обанкротили, как и мою предыдущую, по политическим мотивам. Поэтому, сейчас я на вольных хлебах.

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

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

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

«Бла-бла-бла», как говорила Грета Тубмерг, не заменят ни учебу, ни практику. Какую бы вы ей цену не назначали.

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

Возражаю чисто в контексте статьи - она-то про "вообще".

Тогда это вообще ни о чём. Прочитал и забыл! Общие слова плохо воспринимают не только люди, но и ИИ. У вас в голове складывается одна ментальная модель, у меня другая. Как мы можем понять друг друга?

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

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

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

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

Но в кровавом энтерпрайзе так, наверное, лучше не делать.

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

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

О чём вы вообще говорите? Это называется «съезжать с темы». Если вы хотите похвастаться, что знаете математику, то я тоже могу похвастаться. У меня два полных дневных высших образования: Политехнический институт и мехмат МГУ (математика). Между ними – работа по распределению, во Всесоюзном НИИ. Если бы не развал СССР, то карьера бы светила суперсногсшибательная. Но, и так неплохо.

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

Немного странное возражение. Я ведь на конкретных примерах рассуждаю (см. ссылку на скриншот), а не «вообще». Там достаточно сложный код консольного видеопроигрывателя, который удалось адаптировать под GUI-проект на C++ / WTL. Уже одно это (компиляция чужого пода под другую платформу) ценно само по себе, тем более, что хороших примеров в Интернете не найти.

Более того, «затычек» там вставлено более, чем. «Сломать» – страха не было, поскольку легко откатится к исподникам или к предыдущей итерации. Кстати, это мой основной метод программирования: итерационно-модульный. Сделал одну итерацию проекта – перешел к следующей. Напартачил – откатил назад. Дешево и сердито! Не раз выручало! Так, что – рекомендую!

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

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

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

Я, когда работаю с чужим, опенсорсным, кодом, поступаю проще. Первое – это добиться его компилируемости. Далее, уже смотришь, куда влепить свою затычку.

Особенно трудно, когда код, скажем на Си, для Линкса, а его надо адаптировать под «Форточки». Допустим, это код видео проигрывателя FFPlay.c. Чтобы адаптировать его в свой проект на C++ / WTL (см. скриншот моей неопубликованной программы «МедиаТекст» : http://scholium.webservis.ru/Pics/MediaText.png), мне пришлось переделать FFPlay.c в FFPlay.cpp и организовать там соответствующую систему классов. Это была муторная работа, но не безнадежная. Кстати, я так и не встретил на Гитхабе безпроблемного демо-проекта запускающего FFPlay.c в оконной программе. Что-то, конечно, было, но, сложное, громоздкое и некрасивое. Поэтому, как говорил «дедушка» Ленин: «Мы пойдем другим путём!».

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

Короче говоря: «Дорогу осилит идущий!».

P.S. А, вот, написать код, подобный FFPlay.c, я не смог бы в принципе, так что тезис «писать проще, чем читать» – достаточно спорный.

Самое главное, что я уловил из вашего описания, это активный подход при изучении языка. Думаю, что лично вам это поможет. Вопрос только, а как насчет других? Т.е., вы как бы предлагаете методику изучения языка, значит, не только для себя любимого, но и, потенциально, для всех желающих. Но что, конкретно, можно взять из вашей методы для использования? Только общие установки, вроде: «Чтобы учиться, надо учиться!». Понятно, что кто-то идет штудировать учебник грамматики либо самоучитель с аудио дисками, кто-то смотрит видео с двуязычными субтитрами, а кто-то общается с ИИ-ями на эту тему. Любой из этих методов, в принципе, работает. Но, это исключительно индивидуальный подход ибо нет никакой переносимости на уровне, допустим, программ или данных.

Я же говорю, конкретно, об обучающей системе: программе + данные. От вас, как пользователя требуются только рутинные действия: выбор, в программе, изучаемого языка и определенного урока для него. Там может быть, например, сто или тысяча фраз с некоторой фиксированной грамматической структурой. Скажем, порции данных на разные видовременные формы языка, шаблоны вопросов, отрицаний или, допустим, устойчивые фразеологизмы. От вас требуется последовательно набирать эти фразы руками в программе, а также, слушать и повторять их озвучку. Если лень, то используйте видео режим с настройками пауз и повторами. Есть также режим «Экзамен» и возможность смены направления оригинал – перевод на перевод – оригинал.

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

Чем этот метод хорош? Например, решается проблема многозначности слов. Здесь дается буквальный контекстный перевод (см. пример в https://habr.com/ru/articles/669178/comments/#comment_24460452 ), поэтому, слова учатся в контексте, что очень удобно. Кроме того, половина разговорных фраз – это типичные шаблоны. Вы только меняете там ключевые слова (даже не глаголы, а существительные, прилагательные и т.п.). С глаголами, во французском языке чуть сложнее, поэтому, на первом этапе их лучше использовать в готовом виде. Также, при наборе фраз руками, вы запоминаете их письменное написание, что сразу делает вас грамотным, не будете допускать явные ляпы на письме. Да и набирать текст менее скучно, чем просто зубрить его.

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

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

Интересная у вас логика! Разве все сводится к созданию сайта? Я, лично, вообще не хочу ничего изучать в онлайне, только оффлайн, только хардкор!

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

Хорошо, пусть будут сайты, похоже, сейчас, кроме веб-программирования другого не существует. С++? Не, не, не слышали!

Итак, с чего начнем?

  1. Концепция изучения языка. Сколько их? Миллион? Сомневаюсь. Можно свести к одной, той, которую предложит ИИ (искусственный Идиот). Вы думаете, это серьезный разговор? «Дуалинг» – взлетел, но там, во-первых, не программист одиночка с чат-гопотой (ChatGPT), а целая команда с мощным финансированием. А, во-вторых, он принципиально не подходит для любителей оффлайна, т.е., «старой, доброй» компьютерной программы, на персональном компьютере, с автономными данными (компьютерными уроками).

  2. Данные для обучения. Где их брать? Создавать самому? На вашем «телеграмм канале» много данных? Я написал собственную обучающую программу на базе концепции: «Запоминание руками + интерактивный звук» и сделал некоторый объем демо-данных, на разных языках ( https://habr.com/ru/articles/930868/ ). Сам я учу по ним французский язык. Однако, приходится постоянно исправлять ошибки, на французском языке, который наделал французский ИИ. Иначе говоря, пытаюсь перейти от демо-данных к профессиональным. А это, я вам скажу, работа профессионалов. Сомневаюсь, что в вашем ТГ подобный уровень. Тем более, что я, к примеру, им не пользуюсь, в принципе, У меня нет технической возможности, точнее, желания устанавливать «телегу» на ПК, чтобы посмотреть ваш канал, хотя бы, ради его критики.

Поэтому, начинайте с объяснения своей концепции изучения языка. Если она заинтригует, то можно будет смотреть дальше. У меня в программе вы просто набираете руками по сто грамматически однородных фраз в день, с их озвучкой, слогоделением и транскрипцией. При этом, желательно, громко, вслух, проговаривать их. И одно это, даже без желания запоминать текст, дает эффект. Сужу по себе. А, в моем возрасте, языки уже никто, обычно, не учит. Слова, при этом, запоминаются в контексте. Кстати, грамматику приходится учить, чтобы формировать «порции грамматически однородных фраз». Но, это, больше, нужно мне, как автору данных. Пользователю будет достаточно просто работать с программой, в различных режимах (их там шесть).

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

Ну, так предложите Интегральную формулу Коши для чисел (алгебры) Кэли.

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

Согласен! Как я заметил, когда ответ требует много данных, ИИ (бесплатный) «жадничает» их давать. Если, допустим, просишь список всех неправильных глаголов, то тебе дадут сотню, на, мол, и отвали. А вот разговор, скажем, об алгоритмах и концепции программирования получается более содержательным. Буквально только что, я пообщался с Мистралем на тему, почему, иногда, странно ведут себя некоторые элементы управления из WinAPI? Получил вполне внятный ответ, который помог мне продвинуться в моем пет-проекте. И подобный случай, для данного моего проекта, уже не первый. Несколько раз «Французик» выручал, как я его ласково называю: «Искусственный идиот».

Так что, не обращайте внимания на мои придирки :) .

Ему можно задать любой вопрос и получить развернутый ответ.

Другими словами, не «любой вопрос» и не всегда «развернутый ответ», по крайней мере, по существу.

Но ведь теперь есть ChatGPT (и его аналоги) — искуственный интеллект (ИИ), очень много знающий. Ему можно задать любой вопрос и получить развернутый ответ.

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

Во всяком случае, бесплатный французский ИИ («искусственный идиот») «Мистраль» внятного ответа не дает, а слогоделение для примеров, которые просишь его сделать, он часто делает неверно. Хотя, принципов слогоделения, в любом учебнике грамматики, от силы три-четыре. Однако, реально, их должно быть десятки, поскольку исключений масса.

сформулировал пять простых принципов

  1. Первый и самый главный — … необходимость

  2. Второй принцип — практика.

  3. Следующее — постепенность.

  4. Четвертое — постоянство.

  5. Повторение.

Это не технология изучения языка. Это, как любит говорить незабвенная Грета Тумберг: «бла-бла-бла».

Ваши пять принципов сводятся, по сути, к одному: «Чтобы выучить язык – его надо учить!».

Желание игнорировать грамматику, при начальном изучении языка, может быть вполне разумным, для относительно простых языков, вроде английского, Но, скажем, для французского языка грамматика уже чуть сложнее. Например, самые неправильные английские глаголы «to have» и «to be», имеют на пару 12 оригинальных форм, а их французские аналоги – 96, и не могут похвастаться особой сложностью перед прочими глаголами. При этом глаголов во французском языке порядка семи тысяч и каждый из них имеет до ста различных видовременных форм. Спрашивается, как же это всё хозяйство обозревать?

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

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

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

Information

Rating
2,343-rd
Registered
Activity