О Качестве кода

 

О Качестве кода

Не помню уже откуда, но попалась мне как то на глаза одна такая картинка про качество кода. Она гласит, что хорош тот код, у которого wtf/минута меньше всего :)

wtf per minute

 FreeBSD - подключаем виндовый диск

     

Как и обещал продолжаю цикл заметок о замене 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

По производственной необходимости понадобилось поставить на новый компьютер FreeBSD 8.0. Вроде бы все ничего – уже тысячу раз ставили и все нормально. Ан нет. Сразу при старте появились ошибки вида

acd0: TIMEOUT READ_BIG FAILURE

Это так себя ведут некоторые контроллеры приводов. Пришлось устраивать танцы с бубнами и ковырять BIOS. Увы уже не помню что сделал чтоб заработало, поэтому привести не смогу.

После всего этого система поставилась и даже заработала. Подхватив всё имеющееся оборудование. Однако не тут то было. Оказалось что система игнорирует часть оперативной памяти. (В машинке установлено ее аж 4 Гига). С сообщением вроде

786432К of memory above 4GB ignored

Проблема скорее всего в том, что используется архитектура i386, а у нее ввиде 32-битности есть некоторые ограничения. Долгое общение с гуглом дало следующий результат – проблему можно попробовать решить двумя способами:

  1. Скомпилировать ядро с поддержкой PAE.
  2. Поставить FreeBSD на архитектуре AMD64

Второго варианта я как то сначала испугался, ибо то процессор у меня Intel Core 2 Duo E8400. Поэтому решил попробовать вариант первый. Сказано сделано, прописываем в конфиге ядра

options PAE

и вперед

$ make buildkernel

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

После чего начал курить мануалы по amd64. Оказалось, что так она называется потому, что придумала эту архитектуру фирма AMD. Но на данный момент она поддерживается и процессорами Intel тоже. Мой Core 2 Duo судя по материалам поддерживается.

Чтож, заслал в скачку FreeBSD-8.0-Release-amd64. О результатах сообщу позже.

UPDATED.

Установка прошла практически без сучка и задоринки. Система встала и начала работать. По ощущениям даже несколько быстрее. Оперативная память теперь видна и доступна вся.

Задача следующая – запустить под фрей раздел который раньше работал под WindowsXP. Пока непонятно – какая файловая система на нем (Fat32, Ntfs). Задача поставлена такая – нельзя его преобразовывать в ufs например, он должен обязательно остаться таким каким был, но на фряхе его надо использовать.

Убираем надпись «Powered By…» в PrestaShop

 

Сие конечно делать не хорошо, но если уж вам очень надо.

Чтобы убрать надпись «PoweredBy …» в PrestaShop, надо отредактировать файлик

/modules/blockvariouslinks/blockvariouslinks.tpl

где найти и удалить соответствующую строку. После этого надпись появляться не будет.

Обратите внимание на используемую лицензию – она может запрещать делать подобные вещи.

Проблема Subversion+Apache2

   

Сегодня появилась необходимость установить 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 все работает как надо