Archive for the ‘Life’ Category

Хороший вводный текст к ООП

15 марта, 2010

Потиху изучаю Питон. Решил почитать, что по этому поводу пишет intut.ru.  Введение в ОПП у них меня порадовало — просто и доступно. Можно спокойно использовать этот текст для объяснения новичкам.

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

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

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

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

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

Даже если просто перечислить все существительные, встретившиеся в описании задачи (явно или неявно), получится неплохой список кандидатов в классы.

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

Microsoft Access Database using Linux and PHP часть 2.

1 декабря, 2009

Попытка создать систему для тестирования умения учеников писать SQL для MS Access провалилась. Причина этому — ограниченная поддержка MS Access SQL. Согласно man mdb-sql

The currently implemented SQL subset is quite small, supporting only single table queries, no aggregates, and limited support for WHERE clauses. Here is a brief synopsis of the supported language.

Получается, что кроме простых select ничего сделать нельзя. А нужны же еще всякие функции для изменения регистра (LCase, UCase), для изменения представления (format), ну и JOIN’ы всякие тоже нужны.

Придётся тестировать детишек «руками» :(.

Microsoft Access Database using Linux and PHP

24 ноября, 2009
По мотивам «Microsoft Access Database using Linux and PHP«

Я веду в ХТТ практические занятия по курсу «Базы данных и СУБД».  Название курса само по себе довольно странное, но речь сегодня не об этом. Так как я «второй» преподаватель и отвечаю только за практические занятия со вторыми группами, то мне нет необхожимости парится про содержание практических работ, это забота «первого» преподавателя. Но проверять их то мне, а это ой как неприятно. Надо:

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

Короче, проблем хватает.

И тут я вспомнил про практику использования автоматических систем. Серега Курило в своё время написал систему для тестирования решений задач, написанных на Pascal, С, С++ и т.д. Признаюсь честно, я так и не смог её развернуть.

Но тут то у меня задача другая, мне надо проверить, как умеют детишки писать SQL запросы на выборку данных (пусть хотя бы это умеют, оставим DDL в покое). Так как это техникум и дети не особо сильны, то единственной понятной для них средой можно считать Acess. Переносимость файлов acess, обусловленная установленным практическ на всех компьютерах пакетом Microsoft Office, позволяет закрыть на все остальные недостатки.

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

Где разместить такую систему. Крнечно же на своём ноуте. Пришёл, врубил в сеть, дал детям линк… пусть «играются». Но у меня на ноуте не Windows :). Поэтому пришлось немного повозится, чтобы появилась возможность работать с Access файлами.

Я действовал практически так же, как и описано в статье. Но есть некоторые различия:

  1. Я устанавливал с репозитария Debian (а не скачиавал с сайтов) следующие пакеты
    • unixodbc
    • unixodbc-bin
    • libmdbodbc
    • php5-odbc
  2. Не использовал odbcinst -i -d -f. Вместо этого собственоручно модифицировал файлы. Сначала я попытался ODBCConfig. Но при первой же попытке создания он отругал меня, что я не root, и что он не может модифицировать файлы. Запустив его с правами root, наблюдал, как он падал при попытке создания записи ODBC драйвера или записи DNS.
  3. Создавал для файла System DNS, т.к. apache запускается из под root (не уверен точно).

Осталось только написать саму систему :) А что, конннектиться к MS Access базе уже умею.

Захомутали

16 сентября, 2009

homutСегодня позвонила Светлана Леонидовна. И ей удалось меня уговорить преподавать олимпиадное программирование.

Честно сказать я отказывался по следующим причинам:

  • Нет времени.
  • Я лентяй. Для того, чтобы воспитывать настощих бойцов из практически всех, а не выезжать на природной пытливости некоторых учеников (например Левкевич Вероника), необходима программа обучения. Тяп-ляп уже не прокатит. Нужно учить твёрдо и усердно, с домашними заданиями.
  • Моя отсталость. В последнее время, а если быть точнее, то с момента окончания
  • Опять «двадцать-пять». За время моего обучения, точнее преподавания я уже всё что знал — рассказал. Начинать сначала ой как не хочется.

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

Если честно, очень хочется, чтобы появилась еще одна «Вероничка» или «Вероник» :) Знания вроде есть. Надо их передавать.

Тестер

11 сентября, 2009

Если честно, то за время работы в EPAM Systems, мне практически не доводилось общаться (читай совместно работать) с тестерами. Всё общение заменяли баг трекинговые системы, да и тестеры зачастую сидели в отдельной комнате.

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

В итоге Наташа заменила мне

  • совесть. Если раньше я мог закрыйть на что-нибудь глаза, понадеяться на авось, то теперь ничего не прочкочит мимо её зорких глаз.
  • память. Да да, она не позволит мне забыть про что-нибудь. У неё все ходы записаны в волшебный блокнотик.
  • немного мозга. Такие use case я бы точно не стал бы себе придумывать. А для неё это работа.

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

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

Как вы думаете, почему я пишу сейчас. Потому что тестер ушел домой :)

Frisbee kata

10 июля, 2009

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

А теперь немного философии. Алтимат Фризби это такая смесь «бульдога с носорогом», от каждого вида спорта взяли по чуть-чуть, поменяли снаряд и вуаля — игра готова. Но вот забыли, что игра это не только правила. Это еще и комплекс тренировок для данного вида спорта. Но спросив у гугла «frisbee training», увидел, что тренируют только собак :) Для людей тренировок похоже нет, или о них никто не говорит.

Давайте посмотрим, из чего состоит наша любимая игра. По идее всё просто — бросок и приём. Большинство считает, что умение круто кидать дикс, сразу же приведет команду к победе. Увы это не так. Диск ведь еще необходимо поймать, причём поймать раньше соперника. Да и для того, чтобы вам кинули диск необходимо «открыться»,  «предложить себя». Короче, вырисовывается очень интересная картинка — фризби по «высокой механике» ничем не отличается от любого другого вида спорта.

Что же необходимо тренировать. Сначала просто списком в порядке значимости (значимость в данном случае я выставлял из своих субъективных соображений)

  • физуха. Ровное дыхание, распределение сил на всю игру. Умение делать моментальные ускорения.
  • умение ловить. Если ты не сможешь поймать, то смысл тебе кидать.
  • умение кидать. Без коментариев
  • умение кидать при рядом стоящем сопернике.  А вот про то, как совершенствовать это навык я поговорю ниже.
  • тактика. Тоже отдельная тема для разговора.

Я был бы очень рад, если бы во время каждой тренировки происходила именно тренировка каждого из описанных компонентов. А уже только в конце минут 20-30 на саму игру. Отдача была бы колосальной. Только упражнения надо делать «фановыми», чтобы девчёнки не скучали, чтобы было не только тяжело и изнурительно, но и весело.

Мда. Философии оказалось больше, чем я планировал.

Для того, что бы тренировать умение кидать при рядом стоящем сопернике предлагаю разработать kata комплекс движений, которые бы повторяли бы основные броски и фейки. Чем же данный метод хорош? Исполняя кату человек на подсознательном уровне запоминает двидения, вписывая их в свою интуицию. И когда перед ним окажется соперник, он уже не будет думать…. тело само подскажет, и…что самое главное, выполнить необходимый фейк и бросок.

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

Планирую с Юрой в воскресенье попробовать разработать первый вариант каты для фризби. Пока в инете такого не нашел. Чтож… круто быть первопроходцем. :)

Планы на ХТТ

17 июня, 2009

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

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

Нету нормального collaboration suita. Почему нет места, где я могу глянуть свои должностыне инструкции, узнать, как проводить занятия, контрольные, какие бумажки мне нужно сделать и кому их сдать. Почему об этом всём я узнаю тогда, когда «уже всё должно быть готово». Зачем мне составлять календарно-тематический план (КТП), когда до меня уже это сделало человек 10! Зачем я сам буду рыть инет в поисках материалов, когда это всё уже читалось 10 раз!

Вот я решил немного помянять ХТТ в данном направлении. Хочется начать именно с учебного процесса. Автоматизировать его как только возможно. Дать возможность студентам свободного доступа к электронному варианту лекций, к проверочным тестам и т.д.

intuit.ru_logoДовольно неплохие, я бы даже сказал хорошие курсы есть у intuit.ru. Но в ХТТ нет нормального интеренета. Так что использовать сайт довольно проблематично, и, скорее всего попытка использования превратиться в сущий кошмар, так как даже для того, что бы открыть стартовую страничку уходит около 3 минут :(. Я им написал письмо с предложение о разработке локальной версии для учебных заведений, которые позволили бы развернуть локально раьотоспособную (с тестами, оценками) копию в локальной сети ХТТ, с возможностью синхронизации с их сервером. Конечно за курсы будет платиться не 2 доллара, как для их обычной одиночной локальной версии, а например 10-15 (в зависимости от того, как договоримся :(). Или же можно организовать оплату по подписке. Например, за год 120 долларов. Но тут очень тяжело будет защититься от недобросовестного использования, т.к. получив курс, люди смогут его скопировать и не платить больше ничего. Так что, буду ждать, но на положительный ответ я, если честно, мало надеюсь.

moodle-logoКраем уха слышал про moodle. Почитать про этого зверя можно в википедии и в официальной справке. А слышал я, что Товсктики (Максим и Таня. Таня пока… наверное еще не Товстик, но я буду сильно удивлён если этого не случится) расширяли его, добавляя какую-то новую систему оценок. Так что, чуть-что, будет кому «пополоскать мозг». Ах, да moodle еще поддерживает SCORM (еще одно навороченное слово в лексиконе:).

Надеюсь моего энтузиазма хватит не только на этот пост, но и на то, чтобы дело довести до конца.

Установка софта на ноут

23 мая, 2009

Сегодня весь день посвятил установке софта на ноут. Витя принёс какой-то очень класный установочный диск, с которого я поставил девственно чистую Windows XP SP3. Диск настолько классный, что винда встала без единого вопроса. Потом настал черед драйверов. Сначала я скачал дрова на сетевую и перекинул флешкой на ноут. После этого подключил ноут к сети. Теперь у меня уже был ноут, который может ходит в инет. Сказал себе «хромого» и начал устанавливать все драйвера для своего ноута с сайта support.dell.com. Я умудрился два раза ошибиться при вводе service tag’а. Из-за этого я скачал драйвера к какой-то непонятной фигне :)

А вот линукс ставился долго. У меня был диск с убунтой, который мне прислали. Но в убунте по умолчанию идет Gnome, а я хотел KDE. Витя мне сдела netinstall диск для Debian. Началась установка, в процессе которой обнаружилось, что Витя, при смене инфраструктурного сервака, снёс весь кеш. В итоге всё качалось с инета. А это было достаточно долго :(

Как результат:

  • полностью рабочая винда
  • линукс установлен только до состояния консоли

Ноут

21 мая, 2009

Позавчера просматривал форум и наткнулся на объявление о продаже Dell Latitude d630. Меня сразу же заинтересовало большое разрешение экрана 1440х900. Посморел, поразмышлял и пошел покупать. Идти нужно было не далеко. Продавец живёт, точнее (как выяснилось чуть позже) снимает квартиру в соседнем доме от литовского посольства. Номер квартиры 32 (Хм. Как у Юры :)). Посмотрел поглазел и купил.

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

Моей радости не было придела — классный ноут и всего за 700 у.е. Но на завтра меня немного опустили на землю. Начал сначала Юра, сказав, что 0.5 года это примерно 1 год :). Тут закралось сомнение. Потом позвонил Фалину, тот сказал, что дороговато. Я еще раз полазил по инету и поискал аналоги. Короче новый стоит у нас сейчас примерно 1000-1100. Ну что ж. Сомнения мои развеялись.

Кроме того, сегодня в ХТТ я попробовал делать что-нибудь  на двух мониторах. Супер! Поразмышляв немного я решил купить домой KVM. Посмотрел цену на форуме (30$) и решил немного подаждать. Деньги то закончились :).

Так как я собираюсь на ноуте заниматься и работой и strix’ом, то придётся ставить как Linux (для работы), так и Win (для strix’а). Скорее всего буду ставить XP. Что-то Vista не внушила мне доверия :) Кстати, у меня же на ноуте на обратной стороне есть ключик для Vista, так что я могу быть полностью легальным парнем.

В планах купить еще мышку для ноута, а то тачпадом и «пимпочкой» как-то не очень удобно пользоваться.

На написание данного поста было потрачено ровно 20 минут.

Темы дипломных работ

13 апреля, 2009

Итак, в ХТТ наступает горячая пора : написание дипломных работ. Мне дали 5 дипломников.

Ф.И.О. Тема дипломной работы
1 Филончик Оля Создание системы учёта приходно-расходных операций для оптового склада.
2 Зайцев Василий Система для автоматизации процессов прохождения тестов по психологии и вычисления результатов тестирования.
3 Чигарёв Максим Александрович Создание системы для поддержки деятельности куратора.
4 Разгильдяева Марина Николаевна Создание системы для поддержки деятельности учебной части
5 Басинская Наталия Александровна Разработка способа интерактивного отображения тактики в командных игровых видах спорта.

Более подробно про каждого напишу чуть позже.