snikolenko: (Default)
[personal profile] snikolenko
Произвёл над собой забавное наблюдение. Сегодня случайно выставил на кофемашине слишком много воды и нажал кнопку. Когда она уже молола кофе, в отчаянии повернул ручку обратно, на правильное деление. Разумеется, кофемашина налила столько воды, сколько было надо, а не столько, сколько я выставил сначала.

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

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

Date: 2011-03-23 11:06 am (UTC)
From: [identity profile] vombatenok.livejournal.com
интересно, не задумывалась над этим с такой стороны.

Но, кстати, замечала другие отличия подходов между поколениями: например, для меня намного очевиднее вариант решения проблем "все выключить и запустить заново с 0", чем для моего деда или родителей. Или то, что варианты действий в "дебаггинге" любой проблемы должны быть атомными, изолированными, и пробовать все решения одно за другим - не годится, нужно их отделить каким-то "ресетом".
Т.е. мышление компьютерного века ИНОГДА дает более четкие подходы и к механическим устройствам, и к жизненным ситуациям.

Date: 2011-03-23 11:10 am (UTC)
From: [identity profile] smartnik.livejournal.com
намного очевиднее вариант решения проблем "все выключить и запустить заново с 0"

Это не вариант решения проблемы, это вариант локализации проблемы. Что тоже неплохо, конечно. :) Но если reset работает именно как решение, это значит, что настоящая проблема осталась непонятой и неустранённой, и может возникнуть опять.

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

Date: 2011-03-23 11:22 am (UTC)
From: [identity profile] vombatenok.livejournal.com
Ты знаешь, локализация проблемы - это зачастую большая часть решения.

Ну и в принципе то, о чем мы оба говорим, просто разными словами, по-моему: компьютерный подход предполагает, что у тебя есть некая сложная среда, в которой нет отдельных действий, все взаимосвязано, и поэтому нельзя смотреть только на само действие, изначальные условия очень важны.
Конечно, это вообще-то научный подход, но именно век общей компьютерной грамотности ввел это в обиход нормального среднего человека: теперь уже любой ребенок понимает, что начинать нужно с "ресета"; а человеку другого поколения не так очевидно, чем МОЖЕТ отличаться переключение опций до и после запуска.

Date: 2011-03-23 11:32 am (UTC)
From: [identity profile] smartnik.livejournal.com
Это тоже компьютерный миф на самом деле. :) Подавляющее большинство поломок подавляющего большинства механических устройств либо непосредственно очевидны, либо очевидны после того, как разберёшь и глазами посмотришь. Если у тебя на велосипеде шина спустила, тебе сразу очевидно, что случилось. А вот заклеить её и накачать обратно в полевых условиях – трудно.

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

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

Грубо говоря, это всё равно что, когда у тебя спустила шина, попробовать на всякий случай помыть велосипед и подтянуть гайку на раме – вдруг сработает.

Date: 2011-03-23 12:14 pm (UTC)
From: [identity profile] nekudza.livejournal.com
тоже согласен

Date: 2011-03-23 02:23 pm (UTC)
From: [identity profile] vombatenok.livejournal.com
моя профессия как раз состоит в том, чтобы "поведенчески" исследовать очень сложные системы, не глядя в сам код. И это - крайне правильный подход, пользователь и не должен знать, как работает техника, и подход к ее "починке" должен быть у пользователя поведенческий.

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

Date: 2011-03-23 02:47 pm (UTC)
From: [identity profile] smartnik.livejournal.com
Глядеть в код – это тоже перебор, но с другой стороны. Грубо говоря, не обязательно понимать химию процесса вулканизации, чтобы накачать шину. И, конечно, it's turtles all the way down: как хорошо ты ни понимай, в какой-то момент наступит уровень чёрных ящиков, к которым у тебя потребительски-функциональное отношение. Но всё-таки чтобы работать со сложной системой, крайне полезно иметь представление хотя бы о первой паре уровней её сложности – иначе это получается именно что магия.

Date: 2011-03-23 02:51 pm (UTC)
From: [identity profile] smartnik.livejournal.com
Пример: мне кажется, что автомобилисту очень полезно знать, из каких частей состоит его автомобиль и какие функции выполняет каждая часть. Собственно, этому учат в любой автошколе, и мне кажется, что это правильно. А вот уметь чинить сломавшийся карбюратор автомобилисту совершенно не надо, да и не получится это у него, если он этим специально не занимался очень долго.

Date: 2011-03-23 02:52 pm (UTC)
From: [identity profile] expie.livejournal.com
Собственно, этому учат в любой автошколе
Уже не учат.

Date: 2011-03-23 02:53 pm (UTC)

Date: 2011-03-23 03:06 pm (UTC)
From: [identity profile] vombatenok.livejournal.com
с этим согласна, конечно. Просто, кроме автомобиля, вокруг нас много устройств, много ситуаций, в который методический подход очень помогает.

Date: 2011-03-23 03:07 pm (UTC)
From: [identity profile] smartnik.livejournal.com
Ну так мне методический подход видится таким: если видишь сложную систему, декомпозируй её, пойми, как работают отдельные её части и в какой из этих частей заключена проблема. А не "применяй к системе случайные воздействия и смотри, что получится".

Date: 2011-03-23 03:12 pm (UTC)
From: [identity profile] vombatenok.livejournal.com
хм, если "компьютерный подход" по-твоему - это "случайные воздействия", то у нас разный компьютерный подход :))) я как раз подразумеваю под ним весьма упорядоченные действия. Так что мы, видимо, снова об одном и том же разными терминами :)

Date: 2011-03-23 03:13 pm (UTC)
From: [identity profile] smartnik.livejournal.com
наверняка :)

Date: 2011-03-23 03:09 pm (UTC)
From: [identity profile] smartnik.livejournal.com
Соответственно, выяснив, какая из частей не работает, можно уже принять решение: или заменить часть целиком, или применить этот алгоритм итеративно ещё раз, разобравшись, какая именно из частей этой части сломалась.

Date: 2011-06-15 08:20 am (UTC)
From: [identity profile] d-zh.livejournal.com
Да вот кстати для современной машины и жизни в городе спорное утверждение. Ну если только на уровне "двигатель", "колеса", "руль", "педаль-поехали" и "педаль-остановились", "лампочка-поехали-на-заправку". Отсутствие более глубинных познаний компенсируется самодиагностикой машины и телефонами сервиса и эвакуатора.

Date: 2011-03-23 11:13 am (UTC)
From: [identity profile] nekudza.livejournal.com
если учесть, что кофеварка может и ёбнуть, то, мож, и не надо?

Date: 2011-03-23 11:18 am (UTC)
From: [identity profile] smartnik.livejournal.com
во-во, это тоже в тему компьютерно-магического сознания: "работает – не трогай", "если тронешь – может ёбнуть"...

Date: 2011-03-23 11:26 am (UTC)
From: [identity profile] nekudza.livejournal.com
ну как тебе сказать...
во-первых, "работает - не трогай" - это более чем универсальное правило. во-вторых, лично мне приписывать "компьютерно-магическое сознание" в отношении кофеварки уж совсем ни к чему, т.к. в кофеварках я разбираюсь значительно лучше, чем в компьютерах.
Если уж на то, твои метания поясняются тем, что ты не понимаешь, как в действительности работает кофеварка; поэтому ты и удивляешься, что, оказалось, она работает не так, как компьютер.

хотя, может, это я чего-то не понял

Date: 2011-03-23 11:28 am (UTC)
From: [identity profile] smartnik.livejournal.com
я просто шутил, не хотел тебя обидеть, извини :)

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

Date: 2011-03-23 11:34 am (UTC)
From: [identity profile] nekudza.livejournal.com
да я вроде и не должен обижаться.
я просто к тому, что принцип "не дергай ручки на ходу" по крайней мере может предупредить тебя от риска поламать машину/травмироваться самому.
Применительно к кофеварке (я понимаю, что у тебя более сложная машина, с отдельным резервуаром для воды): наливаешь воду в нагреватель, запускаешь, понимаешь, что на самом деле ты хотел не эспрессо, а американо, открываешь клапан... в этот момент, если давление успело подняться, происходит бадабум.
я не говорю, что думаю, что ты стал бы так делать, просто для примера.

Date: 2011-03-23 11:37 am (UTC)
From: [identity profile] smartnik.livejournal.com
да, согласен

Date: 2011-03-23 11:29 am (UTC)
From: [identity profile] the-waterfall.livejournal.com
Механическую парадигму можно симитировать в про разработке ПО (если так необходимо). Диалектика :)

Date: 2011-03-23 11:51 am (UTC)
From: [identity profile] w-gopher.livejournal.com
Да, и даже в The Incredible Machine после нажатия запуска перемещать ничего нельзя :(

Немного не в тему: Когда-то, в суровые времена кривого дайл-апа (ещё до расцвета Westcall'а, прикинь!) был такой провайдер, QNC. У них были чеки, которые надо было активировать на их же сайте, введя 100500-значый код. Пытливый ум [livejournal.com profile] darlamа придумал штуку: открыть несколько окон браузера, в каждом ввести один и тот же код, а потом быстро-быстро во всех этих окнах кликнуть сабмит. Так с одного чека получалось пополнить счёт дважды, а то и трижды (в зависимости от ловкости рук и фазы луны), потом сайт начинал говорить, что такой чек уже зареган. Вскоре лавочку прикрыли.

Date: 2011-03-23 11:53 am (UTC)
From: [identity profile] smartnik.livejournal.com
Ну это прямо очень удивительная история. :) Казалось бы, карточка идёт в базу, если в базе уже такая есть, база вернёт ошибку, а попасть в ту миллисекунду, когда insert в базе происходит, нереально. Видимо, я недопонимаю процесс. :)

Date: 2011-03-23 12:02 pm (UTC)
From: [identity profile] w-gopher.livejournal.com
А хрен его знает.

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

Надо написать новый The Incredible Machine, с блэкджеком.

Date: 2011-03-23 10:11 pm (UTC)
From: [identity profile] ondrean.livejournal.com
>часто включаю приготовление кофе, а уже потом подставляю чашку

не ты один )

Версия

Date: 2011-03-23 01:45 pm (UTC)
From: [identity profile] back-in-usa.livejournal.com
Это была не одна операция, а три: верификация карточки, начисление суммы на счёт и пометка карточки как зарегистрированной. Если второй запрос верифицируется в то время, когда первый переводит деньги, то он успеет проскочить первый шаг до того, как карточка станет зарегистрированной.

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

Re: Версия

Date: 2011-03-23 02:49 pm (UTC)
From: [identity profile] smartnik.livejournal.com
Да, наверное, так оно и было.

Re: Версия

Date: 2011-03-23 10:20 pm (UTC)
From: [identity profile] back-in-usa.livejournal.com
Не совсем точно написал. Собственно в транзакцию нужно включить только второй и третий шаги. Возможно, так и было реализовано изначально. Но при этом все три шага должны находиться внутри одной блокировки.

Date: 2011-03-23 05:15 pm (UTC)
From: [identity profile] viva-la-vita-.livejournal.com
Прошу прощения, сколькизначный код??????

Date: 2011-03-23 06:15 pm (UTC)
From: [identity profile] w-gopher.livejournal.com
Очень дофига.
http://lurkmore.ru/100500

Там было цифр 30, наверное. Или даже больше.

Date: 2011-03-23 06:34 pm (UTC)
From: [identity profile] viva-la-vita-.livejournal.com
Ужас-ужас-ужас.

Я подумал, что надо было вводить сто тысяч пятьсот знаков :)

Date: 2011-03-23 07:24 pm (UTC)
From: [identity profile] w-gopher.livejournal.com
Тру дайл-апщики были суровы, но всему ж есть предел =)

Date: 2011-03-26 02:30 pm (UTC)
From: [identity profile] anton-yakovlev.livejournal.com
Я помню этого провайдера QNC; ездил за чеками QNC к бабке на Пушкинскую. Бабка была неприветливая и продавала чеки "неохотно".

Осталась масса впечатлений как там что отлично работало :)

Я даже помню, что QNC = quality network communications.

Date: 2011-03-28 06:36 am (UTC)
From: [identity profile] w-gopher.livejournal.com
Да! Да! Бабка!
Только я к ней от Техноложки ходил.

Date: 2011-03-23 12:04 pm (UTC)
From: [identity profile] edwardahirsch.livejournal.com
Я Вам подскажу ещё более циничное использование этой ручки у незнакомой кофе-машины, когда непонятно, какое значение правильное: выкрутить на максимум, запустить, и когда нальётся достаточно, выкрутить на 0 :)

Date: 2011-03-23 02:30 pm (UTC)
From: [identity profile] bada-here.livejournal.com
эта парадигма давно существует в ПО
например IMGUI
или GUI в 3д движке Unity

Date: 2011-03-26 02:40 pm (UTC)
From: [identity profile] anton-yakovlev.livejournal.com
Уверен, даже крайне убежден, что тот программист, которому в порыве озарения явилась идея GUI для Unity, должен гореть в аду и всю вечность программировать с адскими чертями на своём же инструментарии интерфейс выхода из ада.

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

Date: 2011-03-26 06:38 pm (UTC)
From: [identity profile] bada-here.livejournal.com
ну вопрос был именно в парадигме а не в ее уместности в частном решении.

Date: 2011-03-23 08:45 pm (UTC)
From: [identity profile] tou-tikki.livejournal.com
Несколько надуманное разделение. Фактически это просто примеры процессов состоящих соответственно из одного и из нескольких этапов. Вот компьютерный антипример: Пусть есть программа, последовательно читающая данные из пяти разных файлов. Если ты изменишь 4-й файл в тот момент, когда программа читает первый, то получишь полный аналог ситуации с кофеваркой.

Date: 2011-03-23 08:46 pm (UTC)
From: [identity profile] aldorishe.livejournal.com
Это я писал :)

Date: 2011-03-24 05:52 am (UTC)
From: [identity profile] tou-tikki.livejournal.com
Двуличный шпиён, прикрывающийся моим честным именем! И даже шляпу надел, чтобы на меня быть похожим!

Date: 2011-03-24 06:29 am (UTC)
From: [identity profile] smartnik.livejournal.com
Ну, конечно, надуманное. Но всё-таки если программе нужно прочесть что-то из пяти конфигов, то, скорее всего, она их прочтёт в первую же секунду, и потом будет поздно.

Date: 2011-05-26 07:38 pm (UTC)
From: [identity profile] unregistered.livejournal.com
"я и сам понял, что компьютерный подход к кофемашине неприменим"

Классическая курсовая по автоматному программированию. Машина состояний.

Profile

snikolenko: (Default)
snikolenko

December 2011

S M T W T F S
    123
4567 8910
11121314151617
181920 21222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 22nd, 2017 02:51 am
Powered by Dreamwidth Studios