Как стать автором
Обновить
13
0
Александр Гаврилюк @Absent

Программист

Отправить сообщение
Не подходит.
В «части второй» мы пишем приложение, использующее этот компонент.
А первая часть целиком и полностью описывает процесс создания компонента.
Этот компонент нужен для анимации спрайтов, без него это намного сложнее.
Я перебрал в уме несколько вариантов, которые не обманывали бы человека, смутно понимающего смысл предлога «для».
Наверное, вам понятнее было бы так:
— Пишем компонент, удобный для создания анимации в приложении
Но это звучит громоздко и как-то не по-русски.
И я бы еще прислушался к мнению человека, пишущего по-русски без ошибок, но к комментариям людей, допускающих грамматические ошибки, на тему построения предложений я останусь глух.
Знаете, это моя вторая статья на хабре, причем первая была написана в 2011 году. Так что опыта по ведению диалогов в комментариях у меня маловато, но вы научили меня одной хорошей идее. Если автор комментария производит сомнительное впечатление, то его комментарии лучше просто игнорировать. А если отвечать на такие безграмотные вбросы, то только статью запачкаешь да минусов нахватаешь — от него и ему подобных.

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

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

2. Компонент и на самом деле «недалеко ушел от TImage». Но я это пытаюсь преподнести как достоинство. Компонент не решает задачу анимации — иначе он назывался бы TAnimatedSprite. Все, что мне было нужно от этого компонента — возможность показать фрагмент изображения, что и отражено в его названии. Анимация делается в приложении, но инструментом выступает TImageFragment.

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

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

Лейтмотив статьи — не написание эффективных алгоритмов рендеринга и анимации, а методика вовлечения подростков в процесс программирования.
Я, как физик (и учитель физики) по образованию, могу подтвердить, что знать и понимать — совсем не одно и то же. Даже те дети, которые эту формулу знают визуально, часто не могут объяснить, что такое «g», и как эта формула связана со вторым законом Ньютона.

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

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

Кроме того, в случает этой статьи заголовок точно отражает содержание, каждым словом. Мы, действительно, пишем компонент, и пишем мы его для создания анимации. Для чего компонент? Для анимации. Так что всё вполне соответствует.

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

Почитайте про SOLID. Один класс — одна задача.

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

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

Lazarus — это Free Pascal, а Pascal — это обучение основам алгоритмирования.

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

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

Но дети и родители тоже могут выбирать — школу. Моя дочь вначале училась в 62-й школе (на Армейской), затем захотела перейти в 4-ю (на Адмиральском), затем она захотела в АСТР (на 5-й станции БФ), а сейчас вот ходит в 38-ю (там же) — и очень довольна!
Благодарю за интересную идею!

Как только мы до этого доберемся, я буду готов написать об этом статью.
ZurgInq

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

Если бы я только завел об этом разговор, дети сразу бы заскучали и ушли смотреть мультики.

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

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

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

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

Сейчас моя дочь учится в 8-м классе, им преподают информатику на Lazarus, она спросила меня, как написать программу для вычисления силы тяжести, и показала мне, что такое Lazarus.

Я когда-то давно, в 2000-м году, писал на Delphi профессионально (работал в Кворум в Москве), так что Lazarus оказался для меня очень знакомым инструментом.

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

Язык Pascal был разработан специально для обучения программированию, и он на самом деле неплохо для этого подходит. Я пробовал учить детей и Basic, и C/C++, и HTML/JavaScript — везде есть какой-то барьер, который надо вначале преодолеть. В Lazarus/Delphi этот барьер минимален.

Детям я не объясняю про «все эти published properties», я просто показал им готовый компонент, и они с легкостью его используют.

А для точного написания статьи мне надо было воспроизвести все шаги по созданию компонента, и я установил Lazarus на работе на Ubuntu и проделал все сначала, по ходу записывая текст для статьи и делая скриншоты.
Эта статья — то ли притягивание фактов «за уши», то ли открытая фальсификация фактов.

Первые же взятые наугад несколько ссылок в гугле опровергают основной постулат данной статьи: www.google.com/search?q=вес+и+грузоподъемность

Например, calcsoft.ru/skolko-vesit-kamaz — несколько таблиц как раз на заданную тему показывают, что отношение массы автомобилей КамАЗ к их грузоподъемности составляет величину около 2.0

Точнее, надо не «младше» и не «старше», а «выше» или «новее».
А то непонятно — более новые версии младше по возрасту, а более старые версии имеют меньшие номера.
«А для Gingerbread и младше лучше подходит HttpURLConnection» — по-моему, надо не «младше», а «старше»
В описание фич библиотеки Volley закралась незначительная ошибка.

Выражение «Cancellation request API» надо перевести не как «Отмена API запросов», а как «API отмены запроса», или «Программный интерфейс для отмены запросов»

А в целом — статья замечательная и очень полезная, спасибо!
По-моему, вы путаете понятия.
Знать, что такое мороженое и что такое шоколад, еще не означает знать свои желания и предпочтения. К примеру, я прекрасно знаю, что такое мороженое и шоколад, но иногда задумываюсь над вопросом, хочу ли я чего-то из них в настоящую минуту.

Я привел известное выражение Энштейна в ответ на вашу фразу «напишите мне», так как она близка по смыслу к вашему утверждению, хотя, конечно, и не является равнозначной. Утверждение Энштейна является более общим, чем ваше, и включает в себя ваше как частный случай. Ведь «объяснить шестилетнему ребенку» — задача более трудная, чем просто «написать». Эйнштейн утверждает, что если человек в чем-то разобрался, то он в состоянии объяснить это шестилетнему ребенку. И уж конечно, он в состоянии это написать (если только для этого нет технических препятствий :-)

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Дата рождения
Зарегистрирован
Активность