Тёма осваивает цифровое колдовство

топ 100 блогов artyom_ferrier07.03.2020

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

Пока же — развлекаюсь, типа, программированием.

Тоже полезная штука для приведения мозга в порядок. Хотя бы до такой степени, чтоб обрести понимание: законы робототехники Азимова — это всё же литература, а по жизни — замучаешься ты объяснять какому-нибудь Скайнету, что такое «причинить вред человеку». Пальцы сотрёшь об расстановку условий — и всё равно нихрена ничего яснее не станет для электронного надмозга. Ибо, при любых самых наиквантейших нейросетях, какие есть или могут быть, уровень абстрактного мышления у него всё равно как у анекдотической блондинки. И всякий, кто хоть когда-то мостырил какой-то «думатель» в своих программах — прекрасно это понимает и не будет нести ахинею про «скоро они нас превзойдут во всём».

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

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

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

Но, конечно, у него возможности есть.

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

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

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

Потом, когда снова увлекался, — делал простенькие всякие игрушечки на Вижуал-Бейсике в девяностые, позже — в Мультимедиа Флеше, на Экшн Скрипте.

А сейчас — решил JavaScript'ом овладеть. Ну так, на полшишечки.

И вот если в Бейсике можно было вышивать при помощи Goto по всему телу программы, а в AC — по фреймам, размещая код там и тут, то в JS этого нет.

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

Но к некоторым особенностям, конечно, нужно привыкнуть.

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

Потом разобрался, что если значение присваивается в теле другой функции — не нужно писать Let (как привык с Бейсика), не нужно обозначать Var – а просто «a=x”, и вот тогда новое значение уйдёт в другие функции по цепочке.

Наверное, на каких-то «системных» курсах по JS проходят такие вещи — но я просто посматривал видосики, как люди кодят простенькие программки/игрушки. Так интереснее учиться. «Детективнее».

Но в принципе более-менее разобрался. Многое — конечно, очень похоже на Action Script из Флеша (который тоже кое-как припомнил).

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

Дал глянуть Лёшке — он оценил. «Кое-что можно и оптимизировать, но признаков явных и тяжких дефектов мозга — не выявлено».

От него — это комплимент.

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

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

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

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

Может, я созрею до того, чтобы забацать собственный сайт и разместить там кое-какие творения.

Попутно, как англотичер (в числе прочего), отметил, что эти программеры, когда не нативы, а русские-французы-немцы — очень старательно выговаривают слово width («ширина», часто употребляемый параметр). «УиДth”.

На самом деле, настолько акцентированно — никто из нативов его не произносит. Если «д» и звучит — то «мимолётно», как будто над строчкой этаким «верхним индексом». А в принципе — вполне нормальным будет и «ленивое» произношение, где width неотличимо от with.

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

Но это уж — про человеческие языки, а не машинные.

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

Речь — о цикле с while.

И вот ещё в советские времена доводилось встречать недоумение: «Нахрена он нужен, когда есть For?”

Попробую объяснить, как понимаю, где именно while будет полезен.

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

Как это реализовать?

Ну, можно, конечно, использовать пляски с бубнами вокруг условий с If. И повторный вызов функции из самой себя, пока не «клюнет» килограммовый карась (ну или возврат через Goto в Бейсике).

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

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

Var randomFish = 1;

while (randomFish<1000) {

randomFish = Math.random() * 1001);

}

Ну и в тело цикла — воткнуть переход к функции, которая описывает рыбалку.

Раз за разом будет генериться случайное число от 0 до 1 и умножаться на 1001. Какова вероятность, что это произведение окажется больше 1000? Ну, вот где-то одна тысячная. То есть, не известно, на сколько именно предстоит застрять внутри этого цикла — но, скорее всего, довольно долго он будет играть. Что и требуется.

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

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

Поэтому, пока выдалось время — буду дальше осваивать и баловаться плюшками-игрушками.

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

Архив записей в блогах:
Папа раз в год!Интересное и шокирующее рядом!Почему мужчины забывают о свои родных детях, создают новую семью и с обожанием смотрят на  не родных им детей?Моей племяннице 7 лет,по воли судьбы ее родители развелись, когда малышке было всего 4.5 ...
Чем бизнесмены из молодых принципиально отличаются от своих предшественников из девяностых? Первое, что все всегда бросается в глаза - отсутствие той легкости, что была у "героев девяностых". У этого много оттенков. Я всегда с интересом наблюдаю вот за каким. Бизнесмен из молодых ...
МОСКВА, 30 сен - РИА Новости.  Форвард "Салавата Юлаева" Александр Радулов после утренней тренировки в день матча с новосибирской "Сибирью" покинул расположение команды, сообщил агентству "Р-Спорт" источник в уфимском хоккейном клубе. Тема ...
И ещё немного из Зимбардо, который, как вы понимаете, порядком меня поддостал. Мужчина старается, хочет серьёзных отношений, но обратной связи не получает. У женщины нет запроса на такой тип людей, и круг её возможностей сужается. Хотя ей следовало бы вознаградить вниманием искренние ...
Это я так, себе в коллекцию :)) Блин, надо начинать это читать уже, в конце концов... ==================================================== Оригинал взят у qangel в Няяяя!!! :))) ...