Uninstalling DB2

Ноябрь 25, 2009 от krolser
по мотивам «Installing IBM DB2 for Linux, UNIX, and Windows transparently with your application«.

Uninstalling DB2 on Linux and UNIX

On Linux and UNIX, you need to perform the following steps, in this order:

  1. Drop all databases by entering the following command:
    DROP DATABASE database_alias.
  2. Stop the DB2 Administration Server by logging in as the DB2 administration server owner and issuing the db2admin stop command.
  3. Stop all DB2 instances by repeating the following steps for each instance you created:
    1. Log in as the instance owner.
    2. Severe all database connections by entering the FORCE APPLICATION ALL command.
    3. Stop the DB2 database manager by entering the db2stop command.
  4. Remove the Administration Server:
    1. Log in as root.
    2. Issue the command:
      /opt/ibm/db2/V9.5/instance/dasdrop.
  5. Remove DB2 instances by repeating the following steps for each instance you created:
    1. Log in as root.
    2. Issue the /opt/ibm/db2/V9.5/instance/db2idrop InstanceName command.
    3. Remove the instance owner’s user ID and group if you created them during installation and if they are used only by your program.
  6. Remove DB2. You must have root authority for uninstalling.
    • Use the db2_deinstall command in the root directory of the DB2 DVD or image.

Что я могу сказать. Столько дейтсвий я еще никогда не делал, чтобы сненсти что-нибудь в Linux :).

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

Microsoft Access Database using Linux and PHP

Ноябрь 24, 2009 от krolser
По мотивам «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 базе уже умею.

Run-levels in Debian

Ноябрь 13, 2009 от krolser

logo-debianПосле некоторого времени у меня на моём ноуте началсь полный зоопарк из запускаемых приложений. При старте стартуют Apache2, MySQL, tomcat6. Но у меня же еще есть и GlassFish. Запустить просто так GlassFish без остановки tomcat не получится, они по умолчанию используют один и тот же порт. Да, я конечно могу переконфигурить или GlassFish или tomcat, но я не хочу.

Если честно, то tomcat мне нужен периодически. Зачем мне запускать его каждый раз.

Решение оказалось очень простым и привлекательным. Оказывается в Linux есть run levels. При старте исполняется 0. Если вы запустили ОС в single mode, то затем исполняется 1 level, а если в multi-user mode, то тогда — 2.

Кроме того есть еще для пользовательских нужд 3,4,5. Между level’ами можно легко переключаться командой telinit <имя level’а>.

По умолчанию 2,3,4,5 level’ы содержать одинаковый набор ссылок на скрипты запуска приложений. Но можно, при желании изменить их состав командой update-rc.d.

Описывать все варианты её использования нет смысла, а вот сказать как я отлючил tomcat всё-таки стоит.

sudo update-rc.d tomcat6 disable

Всё. Теперь при старте tomcat6 не грузится. Кстати, таким образом можно организовать удобное рабочее окружении. На один level нацепить нужные тебе в один омент прилодения, на другой — другие. Надо всего-то вовремя переключаться.

По мотивам «An introduction to run-levels«.

Apache 2 mod_rewrite в Debian

Ноябрь 12, 2009 от krolser


Когда-то, давным давно, я ставил Apache 2 на Windows. Для того, чтобы добавить, доустановить новый модуль, надо было просто его раскоментарить в конфиге.

Каково было моё удивление, когда в конфиге /etc/apache2/apache2.conf я не увидел строк для раскоменчиванияю

Оказывается, что за подключение модулей отвечают вот эти строчки

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

А вот в директории mods-enabled находятся ссылки на файлы из директории mods-available. Хм. Неужели придётся самому создавать линки? Нет. для этого есть консольная команда

a2enmod [module]

В моём случае было выполнено

sudo a2enmod rewrite

и после этого рестартануть Apache2 командой

sudo invoke.rc apache2 restart

И вуаля. Всё работает.

Захомутали

Сентябрь 16, 2009 от krolser

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

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

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

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

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

Тестер

Сентябрь 11, 2009 от krolser

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

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

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

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

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

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

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

Витраж

Август 28, 2009 от krolser

vitrag-smallПосле того, как наша тестер поведала мне немного про рисование витражей, я пошел в книжный магазин и купил Краски для стекла «Витраж», 6цв * 10мл. Так как я непосредственно на стекле рисовать не могу из-за того, что оно вставлено, а снять дверь не представляется возможным, то я решил сделать витраж на обычном файле и потом его переклеить на стекло.

raskraske-carevna-legushka-smallДля того, чтобы аккуратно переклеить витраж с файла необходимо, чтобы рисунок был цельным. Царевна лягушка подошла как нельзя кстати. Распечатанный рисунок я положил в файлик. Контуром я начал обводить рисунок. Честно сказать, тюбик с контуром не очень удобный, лучше был бы какой нибудь шприц. Но так как я всего лишь первый раз делал что-то похожее, то можно сослаться на мою неловкость. Со временем можно привыкнуть и к тюбику.

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

Вернулся домой примерно к 11.30 и после этого занялся разукрашиванием. Жабка стала зеленой, пупырышки коричневыми, корона желтенькой а глазки голубыми. После этого я попил чайку и благополучно завалился спать. Утром, даже не умывшись, я занялся отскрёбыванием жабки от файла. Оказалось, что реснички правого глаза надо было делать пожирнее. Одна толком и не оторвалась. Но в общем процедура прошла успешно и земноводное перекочевало на моё окошко. Смотриться достаточно ничего. Посмотрим, как будет это чудо выглядеть вечером, когда солнышко заглянет в моё окно.

Теперь могу смело констатировать, что операция «Тайд или кипячение» план Б этап 2 завершен. Осталось совсем чуть-чуть : нарисовать кораблик и поселить его на вставленном стекле. Жабку я наверное оставлю себе. Уж очень мне она понравилась.

«Тайд или кипячение»

Август 27, 2009 от krolser

tide_bigОперация «Тайд или кипячение» план Б этап 1 завершена.

Примерная смета.

Затраты материальные

Стекло узорчатое РБ 0.575х1.450 м 14.929
Штапик 1.80 4шт. 5.400
Гвозди имелись в наличии
Маршрутка 2 проезда 2.000
Автобус тролейбус 2 проезда 1.100
Итого 23.429

Затраты нематериальные

Время на поездки по магазинам 3 часа
Время на выполение работ 40 мин

По идее, времени можно было затратить намного меньше, если бы в Гемме были штапики, и мне не пришлось бы ждать открытия другого магазина 30 минут. Кроме того, ехать через центр. А центр Гродно днём — это сплошная пробка. Хорошо, что хоть на маршрутке.

Итог: стекло вставлено.

Что дальше?

Операция «Тайд или кипячение» план Б этап 2. «Рисования кораблика».

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

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

Тада… только что тестер увидела у меня на мониторе гуловскую страницу поиска по фразе «Краски витражные». Оказывается её мама недавно проводила подобною процедуру у себя дома. Рисовали на уже вставленном стекле. От подтёков не смогли избавится. К тому же такие краски можно купить только в Минске, в Гродно их нет. НО! Можно рисовать другими красками (название мне скажут вечером) на обычном файлике, а потом эту получившуюся плёночку перенести на любую гладкую поверхность. И такие краски можно купить на советской в «Детском мире». Кстати в файлик можно сразу засунуть картинку и по ней, как по трафарету рисовать. Может быть удастся обойтись и без художницы Юли. Хотя нет, пусть лучше работа будет авторская, а не какой-нибудь голимый шаблон.

Так что иногда полезно, когда «палят» твой моник.

Время затраченное на написание статьи составляет примерно минут 30. Статья писалась во время сборок проекта.

Ссылки по теме

Будущее российского образования

Август 25, 2009 от krolser

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

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

Но некоторые люди меня просто убили своими высказываниями:

Из поста «Большая Тройка и информатика«:

Сегодня преподавание информатики в школах можно разделить на два течения: обучение основам работы в Windows и Office, и преподавание азов программирования на Basic или Pascal. Последнее направление постепенно отмирает, и замечательно. Умение написать пару вложенных циклов на этих «мощных» и «современных» языках вряд ли сделает из будущего выпускника школы человека, готового к  испытаниям и вызовам взрослой жизни. С другой стороны, обучая детей лишь составлению простеньких табличек в Экселе и отправке документа на печать, мы штампуем безликую массу «пользователей», будущий офисный планктон, не способный мыслить нестандартно, не по заученным схемам, неспособный к решению уникальных задач. Школьный курс информатики не должен быть узкоспециализированным предметом, дающим примитивные или никому не нужные навыки работы с несколькими конкретными компьютерными программами. И конечно, школьная информатика не должна быть дисциплиной, наполненной одной лишь голой теорией из целого ряда наук. Здесь необходим сплав из теоретических основ и практики использования программных средств для решения самых разных задач. Если сформулировать очень упрощённо, то школьная информатика должна знакомить учеников с современными информационными технологиями через решение различных прикладных задач. Например, сегодня в школах практически не используются ни дистанционное обучение, ни технологии Веб 2.0 . Ведь термин «информационные технологии» подразумевает не только сами компьютеры, но и современное программное обеспечение, и идеологию его использования. Обучение с помощью современных компьютерных технологий является не данью моде, а по-настоящему необходимым процессом повышения качества школьного образования. Это относится уже далеко не только к информатике, но и ко всему процессу обучения в целом.

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

Итог таков. ППР. Пришли, попиздели, разошлись. Я не верю, в то, что что-то координально, да что уже греха таить, хоть чуть-чуть изменится. Просто очередной треп.

Мои мысли по этому поводу следующие (может даже перерастёт в конкурсную работу):

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

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

Это конечно всё пишется на эмоциях. Но мне кажется что все пытаются лечить следствия, а причину или не видят, или просто не хотят видеть.

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

Фюрер :)

BigDecimal

Июль 22, 2009 от krolser

java-personСеголня я немного был шокрирован, когда результат BigDecimal.equals(BigDecimal) давал false, хотя я на 100 процентов был уверен, что числа одинаковые.

Оказывается, что два BigDecimal’а эквивалентны тогда, когда не только их значения равны, но и scale одинаковый.

В если хочется проверить на равенство не взирая на scale, то нужно использовать compareTo.

Вот так вот, так что читаем JavaDoc.