О Качестве кода
11.04.2010О Качестве кода
Не помню уже откуда, но попалась мне как то на глаза одна такая картинка про качество кода. Она гласит, что хорош тот код, у которого wtf/минута меньше всего :)
О Качестве кода
Не помню уже откуда, но попалась мне как то на глаза одна такая картинка про качество кода. Она гласит, что хорош тот код, у которого wtf/минута меньше всего :)
Как и обещал продолжаю цикл заметок о замене Windows на FreeBSD на почти серверной машине. Сегодняшняя наша цель – подключить виндовый раздел к фре. Сразу стоит отмести ту мысль, что можно было все перевести на ufs и не мучаться. Тут не все так просто, раздел этот размером 1Тб, с заполнением примерно но 80%. Второго такого винта не нашлось для временного перелива информации, поэтому была поставлена задача запустить его под фрей «как есть».
Проблема первая – непонятно какая на нем файловая система (всмысле FAT32 или NTFS). Создавался этот раздел давно и никто уже не помнит. Проблема решается просто – грузимся с любого виндового LiveCD и каким-нибудь Акронисом смотрим. У меня оказалась NTFS. Рекомендую сделать это заранее, т.к. я потратил определенное время пытаясь смонтировать этот винт как FAT32.
Далее нам надо чтобы ядро у нас поддерживало определенную функциональность. Делаем
$ kldstat
и смотрим чтобы в выдаче был модуль geom_mbr.ko. Если его нет, делаем следующие вещи
$ cd /usr/src/sys/modules/geom
$ make && make obj && make install clean
$ kldload geom_mbr
кроме того, идем в /boot/loader.conf и прописываем там автозапуск модуля
geom_mbr_load="YES"
После этого у нас есть возможность видеть разделы в /dev у меня виндовый раздел был ad12s2s1. Далее так как система у нас NTFS надо надо организовать поддержку NTFS. Для этого воспользуемся fusefs. Идем в /usr/ports, делаем
$ cd /usr/ports/
$ make search name=’ntfs’
и идем в ту которая от fuse. после этого делаем стандартные
$ make install clean
После этого надо прописать fusefs в автозагрузку. Для этого в /etc/rc.conf добавляем
# fusefs
fusefs_enable=»YES»
и запускаем
$ /usr/loca/etc/rc.d/fusefs start
Монтируем том
$ mkdir /d
$ ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad12s2s1 /d
Чтобы том автоматически подцеплялся при старте системы добавляем строчку в /etc/rc.conf после fusefs
# mount ntfs volume
/usr/local/bin/ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad12s2s1 /d
После этого
$ shutdown -r now
И наслаждаемся. Теперь у нас в фряхе подцеплен виндовый ntfs раздел. Могут быть проблемы с UTF-8 в консоли. Но – это тема следующих статей
По производственной необходимости понадобилось поставить на новый компьютер FreeBSD 8.0. Вроде бы все ничего – уже тысячу раз ставили и все нормально. Ан нет. Сразу при старте появились ошибки вида
acd0: TIMEOUT READ_BIG FAILURE
Это так себя ведут некоторые контроллеры приводов. Пришлось устраивать танцы с бубнами и ковырять BIOS. Увы уже не помню что сделал чтоб заработало, поэтому привести не смогу.
После всего этого система поставилась и даже заработала. Подхватив всё имеющееся оборудование. Однако не тут то было. Оказалось что система игнорирует часть оперативной памяти. (В машинке установлено ее аж 4 Гига). С сообщением вроде
786432К of memory above 4GB ignored
Проблема скорее всего в том, что используется архитектура i386, а у нее ввиде 32-битности есть некоторые ограничения. Долгое общение с гуглом дало следующий результат – проблему можно попробовать решить двумя способами:
Второго варианта я как то сначала испугался, ибо то процессор у меня Intel Core 2 Duo E8400. Поэтому решил попробовать вариант первый. Сказано сделано, прописываем в конфиге ядра
options PAE
и вперед
$ make buildkernel
Сразу хочу огорчить. После этого память вроде стала использоваться вся, однако началось периодическое отпадывание аппаратуры, поэтому лично я этот режим бы не советовал.
После чего начал курить мануалы по amd64. Оказалось, что так она называется потому, что придумала эту архитектуру фирма AMD. Но на данный момент она поддерживается и процессорами Intel тоже. Мой Core 2 Duo судя по материалам поддерживается.
Чтож, заслал в скачку FreeBSD-8.0-Release-amd64. О результатах сообщу позже.
Установка прошла практически без сучка и задоринки. Система встала и начала работать. По ощущениям даже несколько быстрее. Оперативная память теперь видна и доступна вся.
Задача следующая – запустить под фрей раздел который раньше работал под WindowsXP. Пока непонятно – какая файловая система на нем (Fat32, Ntfs). Задача поставлена такая – нельзя его преобразовывать в ufs например, он должен обязательно остаться таким каким был, но на фряхе его надо использовать.
Сие конечно делать не хорошо, но если уж вам очень надо.
Чтобы убрать надпись «PoweredBy …» в PrestaShop, надо отредактировать файлик
/modules/blockvariouslinks/blockvariouslinks.tpl
где найти и удалить соответствующую строку. После этого надпись появляться не будет.
Обратите внимание на используемую лицензию – она может запрещать делать подобные вещи.
Сегодня появилась необходимость установить Subversion с доступом через Apache2. Установку Apache2 в данной статье рассматривать не буду. Subversion ставим следующим образом:
$ сd /usr/ports/devel/subversion
$ make install clean
Далее прописываем в настройках виртуального хоста Apache 2.2 следующую конфигурацию
<Location /svnpublic>
DAV svn
SVNPath /dt/svn/public
AuthType Basic
AuthName "iLLi Public SVN repository"
AuthUserFile "/dt/svn/svn_public.auth"
AuthzSVNAccessFile "/dt/svn/svn_public.authz"
Require valid-user
</Location>
Перезагружаем Apache 2 и все бы вроде бы ничего не возникает досадная ошибка couldn’t check user. No user file… Не спешите расстраиваться – это все потому, что не подключено пару модулей, как
LoadModule authn-file-module libexec/apache22/mod-authn-file.so
LoadModule authz-host-module libexec/apache22/mod-authz-host.so
LoadModule auth-basic-module libexec/apache22/mod-auth-basic.so
После перезагрузки Apache2 все работает как надо