artyom_ferrier (artyom_ferrier) wrote,
artyom_ferrier
artyom_ferrier

Categories:

Вдогонку про ИИ

Увлёкся кодингом, просидел всю ночь.

Реально, мне начинает нравиться JavaScript в связке с HTML и CSS. Просто прикольно развлекаться.

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

Лёшка говорит, что в Питоне всё удобнее — но его, вроде, нужно как-то компилировать для исполнения? Поэтому пока — не буду перегружать мозг, пока побалуюсь с JS, который стартует сразу в браузере, as is.

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

Но вот некоторые вещи — я всё-таки не понимаю.

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

Недоумеваю: «В смысле, «undefined”? Да ты гонишь! Прекрасно всё defined – сам дефайнил. Вот этими руками, with these extremely digital digits of mine. Вот же оно, чётко и ясно всё прописано».

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

Вся эта петрушка — внутри цикла For, который довольно развёрнутый получился, а в самом его условии написал i,array.length вместо i<array.length.

Ну, shift неудачно нажал – и не получилось <

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

Какого хрена он пытался выполнить цикл после For, где предел счётчика задан так криво?

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

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

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

И тут речь ведь не о каком-то компиляторе языка той или иной степени крутизны. JS – не использует компиляторов, он сразу в браузере исполняется. Поэтому речь — о заведомо крутейших браузерах. Что Хром, что Лисичка.

Один — творение уже помянутого Гугла, лидера по ИИ, вторая — ну тоже вся из себя продуманная, чуть ли не раз в неделю обновляется.

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

А вы говорите: искусственный интеллект, нейронные сети, самообучаемость...

Я не хочу сказать, что всё это чушь и развод на бабки фраеров ушастых (что правительственных, что частных).

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

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

А компу и мульоны перетирать — раз плюнуть, чик и готово.

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

А он — глумится. «Не могу достать молоко с третьей полки холодильника».

Почему так? На полке нет молока? У холодильника нет третьей полки? Сломался сам холодильник?

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

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

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

Создаю, как учили, функцию с именем animate (имя — может быть любое, но для удобства).

Создаю переменную для включения отрисовки экрана каждые 30 миллисекунд, записываю:

var animateInterval = setInterval(animate(), 30);

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

Один раз проходит цепочка функций — и всё.

Я всё проверил, был близок к умопомешательству. Даже вискаря себе плеснул, хотя в завязке — но тут без поллитры не разберёшь.

Как «сам себе редактор» - перефразирую строку:

var animateInterval = setInterval(()=>animate(), 30);

И — о чудо, всё работает!

А почему в «обычном» виде не работало, без такой вот хитровывернутой стрелочной адресации?

А, Семён Семёныч!

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

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

Ан поди ты — не всегда нужен тот аргумент, хушь бы пустой, в тех скобках.

Иногда, значит, без них надо функцию вызывать.

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

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

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

Если они такие умные — то почему бы не?

Выходит — не такие они умные. Только притворяются.

Да, я, вероятно, должен извиниться за этот поток скриптодрочерства перед теми из моих читателей, кому это нахрен неинтересно — но я не привык извиняться за то, что интересно мне, здесь и сейчас :-)

Да, интересно ли мне, зачем Володька сбрил усы заговорил о новом сроке для себя?

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

Однако ж, пошёл дальше в Джаваскрипт играться.

Tags: игрушки, наука-много-гитик
Subscribe

  • Стишок про крокодильчика из "Алисы". Перевод.

    Разучили с Киркой для садика стишок про крокодила из «Алисы» (нет, всю «Алису» целиком она пока не читает, дождёмся уж пяти…

  • Error no object

    Просматривал как-то свою заметку о «неделикатных» вопросах в инглише — и обратил внимание на What do you do for living ? Обратил…

  • Полфунта романтики к Празднику

    Наступает любимый день товарища Сухова под лозунгом «Женщина — она тоже человек!» И с этим трудно не согласиться: в умелых руках…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 4 comments