sudo apt-get install quake-3-arena quake-3-ospmod

  • February 19, 2009 20:32

Дорога жежешечька

Доброго дня.

Сьогодні я вам розкажу як поставити і запустити quake 3 arena на вашій убунті. Вважаємо, що у нас є скачаний ISO образ квейку (де його взяти) і OSP mod в архіві. Кваку ми будемо ставити звичайно куда положено, а саме в /usr/local/games/. Приступаєм:

# mkdir /usr/local/games/quake3
# mount quake3arena.iso /media/cdrom/ -t iso9660 -o loop
# cp -r /media/cdrom/baseq3 /usr/local/games/quake3
# umount /media/isoimage

 

Тепер нам потрібно скачати бінарні файли для запуску quake3. Для цього робимо слідуюче:

 # cd /usr/local/games/quake3
# wget -c ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run
# chmod +x linuxq3apoint-1.32b-3.x86.run
# ./linuxq3apoint-1.32b-3.x86.run

Після цього можна вважати, що квака в нас вже в кишені. А тепер качаємо хотфікс версії 1.32:

# wget ftp://ftp.idsoftware.com/idstuff/quake3/quake3-1.32c.zip
# unzip quake3-1.32c.zip
# cp Quake\ III\ Arena\ 1.32c/linux/* .
# rm -rf Quake\ III\ Arena\ 1.32c/

Також варта видалити і скачаний нами бінарнік кваки.

# rm -rf linuxq3apoint-1.32b-3.x86.run 
А тепер розпаковуємо OSP мод і ставимо рядом біля квейку.
# unzip osp-Quake3-1.03a_full.zip
# rm -rf osp-Quake3-1.03a_full.zip
 
Якщо у вас проблеми зі звуком, то це проявиться коли в консольному виводі:

/dev/dsp: Input/output error
Could not mmap /dev/dsp

В такому випадку робимо:

# nano /etc/init.d/bootmisc.sh

І в цьому файлі добавляємо дві стрічки над exit 0:

echo 'quake3.x86 0 0 direct' > /proc/asound/card0/pcm0p/oss
echo 'quake3-smp.x86 0 0 direct' > /proc/asound/card0/pcm0p/oss

Тепер має працювати. Також бажано видалити з файла baseq3/pak0.pk3 папочку music. Вам на допомогу прийде ваш архіватор.

Ну а тепер скачаєм конфігураційний файл до кваки. Розширення файлу міняємо на .cfg і відкриваємо улюбленим текстовим редактором. Проходимось по всіх настройках, робимо всьо під себе і ставимо цей файлик в /usr/local/games/quake3/baseq3/.

Останній штрих, який залишилось зробити — написати скрипт, який це все буде запускати. Називається він оригінально q3 і має наступний вміст:

#!/bin/bash
quake3 +set fs_game osp +exec xobb
 

І ставимо цей файлик в /usr/games попередньо давши йому права на запуск.

На цьому все дорогі дітки, пам’ятайте:

Counter-strike is only Half-Life, Quake is a lifestyle.

Попутного рокета ;)

Переклад: Мій фреймворк кращий за всі інші

  • February 14, 2009 17:25

— "Це правда! Я маю фреймворк, який може відобразити CRUD за допомогою однієї стрічки коду. Він може рендерити веб-сторінки, використовуючи MVC паттерн з найменшими зусиллями, і немає значення як ви накапарите з HTML в своїх темплатах і з CSS в своїх стилях, з нашою технологією "зроби-красіво" ваш сайт завжди матиме достойний вигляд. По суті фреймворк навіть вибере лей-аут сторінки, який буде найкраще підходити для відвідувача, при тому ще й з самими оптимальними показниками виконання, з якими вам коли-небудь приходилось стикатись".

Якщо ви шукаєте ссилку «Скачати», будь ласка, облиште це зайняття: такого фреймворка не існує. Незважаючи на те, що абзац вище очевидний, я завжди наголошую людям, які серйозно займаються пошуком фреймворка на всі випадки життя. Я навіть спілкувався з розробниками, які використовували Zend Framework для кожного проекта, який вони робили, бо їхньому боссу сказали, що це найкращий фреймворк. Zend дійсно хороший фреймворк, який ви зможете використати в більшості випадків, але є задачі, з якими інший вибраний фреймворк міг би справитись краще.

Фреймворк, який би допомагав вирішити будь-яку проблему, яку ви можете уявити просто не існує і не може бути створений з декількох причинам.

По-перше, якщо фреймворк хоче забезпечити готове рішення для великої кількості ситуацій, то все менше часу залишається на розробку вирішення для конкретної ситуації. Тому фреймворки, які націлені на вузьке коло проблем, що вони вирішують, буде кращим рішенням. З іншої сторони ви не хочете використовувати 20 різних фреймворків в одному проекті, бо вам займе багато часу знайомство з кожним з них і підтримувати фреймворки в актуальному стані буде основною вашою болячкою.

По-друге, фреймворк повинен бути великим і малим одночасно. Якщо ви побудуєте фреймворк, який буде робити масу речей, він у вас получиться великим. Якщо вам потрібно буде застосувати тільки один аспект, то у вас можуть виникнути накладки з цим. Користі від здорового фреймворка не буде, якого для того щоб розвернути, потрібно інсталювати і настроїти, якщо все, що ви хотіли зробити, — це маленький скрипт на 5 стрічок, який запускається по crontab. Звісно фреймворк може бути більш захищеним в цьому випадку, але подумайте про кількість include-ів і перевірок, які повинен виконати фреймворк перед тим, як добереться до виконання власне вашого коду! В конкретному випадку краще буде використати компонентний фреймворк, або частину великого фреймворка.

Є багато інших причин, щоб ви не покладались тільки на один фреймворк. Інколи ви хочете швидко шось "приготувати" і те, як це працює і виглядає є менш важливе, чим власне задачу, яку код виконує. На іншому проекті вам буде потрібно тюнінгувати кожного компонента, наприклад настроїти вигляд кожної кнопки. Ці два різних проекти потребують абсолютно різних фреймворків, і, очевидно, другий потребую потужнішого і функціональнішого. Це речі, про які ви не повинні забувати при виборі фреймворка.

Один з аргументів в користь використання єдиного інструмента є можливість спеціалізації розробників на виконанні одного (одноманітного) завдання. Використання правильного інструменту зробить розробника набагато ефективнішим загалом. Розділити кусок дерева молотком буде важко, і результат, що ми отримаємо, не буде одним з кращих, не залежно від того яким б "майстром молотка" ви не були. Набагато корисніше знати, що є такий пристрій як пила і яке його застосування. Якщо ви не знаєте яким боком пила повинна бути повернена вверх, — не хвилюйтесь, — це можна дізнатись із документації до пили або запитати в людей, які користувались пилою раніше, на форумах підтримки.

Тому необхідно знати, які фреймворки вже існують і яким краще скористатись в конкретній ситуації. Вам не обов’язково бути гуру в кожному з цим фреймворків. Хоча знання фреймворків і ситуацій, коли їх варто застосовувати може надати вам велику перевагу над розробниками, які користуютья тільки одним інструментом.

Оригінальна стаття.

Devilspie робить чудеса!

  • February 13, 2009 17:23

Ха, я тут таку штуку вигуглив, що не можу не поділитись. В мене постійно відкрите вікно терміналу, з нього я собі софта ставлю і на роботу ходжу. Деколи ще музику слухаю, sql-запити виконую. Так як воно завжди відкрите, то хотілося б, щоб воно було завжди під рукою десь в певному місці, на яке можна легко попасти, не потрібно б було переключати куча раз через alt+tab і т.д.

В допомогу нам приходить Devilspie, який позволяє зробити все що мені потрібно було. Спочатку скреньшот, як воно виглядає, а потім буде інструкція як таке зробити.

Прозорий термінал по середині робочого столу без декорації вікон

Сподобалось? Робимо наступне:

# aptitude install devilspie

Створюємо папочку з файликом:

$ mkdir ~/.devilspie
$ nano ~/.devilspie/Terminal.ds

І вставляємо наступні стрічки в файлик:

(if
        (matches (window_name) "Terminal")
        (begin
                (set_workspace 4)
                (below)
                (undecorate)
                (skip_pager)
                (skip_tasklist)
                (wintype "utility")
                (geometry "+50+50")
                (geometry "1024x800")
        )
)
 

Вам потрібно буде відрегулювати розміри в geometry під ваш монітор. Наступним кроком добавляєм devilspie в автозапуск: Preferences->Sessions : Add.

Виходимо з системи, логінимось ще разок, запускаєм термінал і маєм всьо як на малюночку. Детальніше на сайті програми.

jQuery UI + Kohanaphp

  • February 11, 2009 01:52

Доброго вечора,

Давно шось цікавого від себе не писав сюди, хоча є про шо писати, але ніяк не зберусь. Отож не буду відволікатись на всякі мєлочі, а зразу перейду до теми.

Не так давно, а рівно тиждень назад, до мене прийшло трошки вільного часу на роботі, який я вирішив використати розробляючи якісь інструменти для покращення і пришвидшення побудови сайтів. В силу того, що я не ЦМСочнік, тобто ніколи не страждав написанням якихось CMS по три-чотири версії як інші це робили, але старався розробляти більш цікаві і не рутинні речі. Побавившись з джанго я зрозумів, що дуже багато вирішує для фреймворка його вигляд в робочому стані. Я говорю наразі про адмін частину, яка в джанго вже побудована і моделюється на основі ORM і бази даних.

Ставити мету оптимізувати і написати аналогічно як з джанго для kohana я не рішився, бо процес автоматизації мені ще не зрозумілий, але каркас для цього я робив останній тиждень.

Результатом своєї праці поділюсь чуть пізніше, наразі це дуже бета версія, ще не потестовано багато речей, але розкажу шо воно робить. Уявіть що ми маємо якусь сутність (користувач, для прикладу), який пише пости (іншу сутність), а пости в свою чергу мають коментарі (що є третьою сутністю). Фронтенд дизайнери намалюють, переживати в цьому плані мені як програмісту зовсім не потрібно, а вот бекенд прийдеться проектувати самому. Хотілось щоб бекенд мав зрочний аяксовий інтерфейс з мінімум перезагрузок сторінок, тобто банально перехід тільки між списками сутностей перегружав сторінку.

Kohana PHP — Swift PHP5 Framework

До того я довго працював з Magento, особливо мені сподобалось як обробляються форми на адмін частині, багато перечитав коду як це все робити за допомогою Prototype. Також дуже цікаво розібратись в Varien бібліотеках, які постачаються разом з Magento і використовують Prototype як нижчий рівень, але про це варто писати окрему статтю.

Magento Commerce — The Best Ecommerce Solution On The Market

Я пішов по шляху меншого супротиву, я розумію як працює Prototype, познайомився з його API, але не провів жодного вечора на сайті з документацією, тому вирішив взяти собі на озброєння jQuery-UI, яке мені здалось і красивішим і не менш функціональним.

З технічної точки зору в мене получився абстрактний котроллер, в якому зібрана загальна логіка CRUD інтерфейсу для будь-якої сутності і який в бекенді має ORM модель для роботи з базою даних (власне це теж варто б винести в інтерфейс, який може замість бази використовувати якийсь xml або ще інший ресурс даних) і декількох виглядів, які власне відповідають за виведення списку елементів, створення, редагування і видалення. Кошерно, по MVC паттерну.

jQuery UI — одна з найкращих сучасних джаваскріпт бібліотек наразіЗ сторони браузера в нас сиренький jQuery, приправлений Flexigrid’ом і чуть більше сотні стрічок коду на джаваскріпті. Чим більше часу приділяю для jQuery, тим більше подобається мені писати використовуючи її. Все супер логічно, в мануал можна подивитись хіба шо аргументи функцій підглянути.

Як тільки виправлю всі баги і витестую — викладу прототип подивиитсь. Далі — напевне будемо прикручувати до блога.

P.S.: в вордпресса дуже гарно перероблена адмін частина в версії 2.7. Один з факторів, який надихнув на таке.

P.P.S.: луччє б ото комєнти прикрутив сюди, замість того шоб всяку непонятну ахінєю нести.

От колись спічки робити, не те що січас

  • February 5, 2009 20:42

Знайшов дуже класну коробку з сірників.

а шо?

Крис Касперски – Исходники Вселенной

  • February 2, 2009 00:56

Недавно знайшов статтю Кріса Касперскі, в якій він описує свої погляди на світ та штучний інтелект. Думка про штучний інтелект повністю співпадає з моєю, дуже приємно, що десь є люди, в яких є подібні думки.


Считается, что основной концепцией Дзена является вера (тезис) в то, что окружающий мир не существует, а существует только сознание мира (мир существует только в сознании). В действительности так описывают только внешнюю сторону Дзен-учения, создающую нездоровый антураж: так мы не приближаемся к истине, а изгоняем из мозга устоявшиеся стереотипы, помогая себе совершить свой первый, начальный шаг. На более глубоком уровне познания Дзен ничего не отрицает, он «всего лишь» доказывает, что посредством «чистого» сознания невозможно ни обнаружить, ни опровергнуть существование «внешнего» мира (материального, физического). Может быть, все мы «спим» и являемся частью чьего-то сна (прямо как в Матрице), а может, и нет. Кто знает?

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

Физика постулирует, что материальный мир существует независимо от нашего сознания и, исходя из этого, вполне успешно исследует его устройство через призму причинно-следственных связей, «упаковывая» их в прокрустово ложе законов и моделей, каждая из которых по отдельности описывает лишь крошечную часть общей картины. Однако физика и не претендует на «истинную» природу вещей — это не ее прерогатива. Физика оперирует тем миром, который дан нам в ощущениях, дополненных показаниями приборов, и перекладывает решение «морально-идеологических» вопросов на плечи философии, обеспокоенной проблемами: «Существует ли в действительности мир, окружающий нас, и зачем? Что есть время, пространство, сознание, разум? Может ли человек создать мыслящую машину?» и т.д.

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

Возьмем компьютерного монстра из очередного 3D-шутера и наделим его разумом и (само)сознанием. Монстр будет бродить в коридорах несуществующей вселенной, обсчитываемой процессором, и думать, думать, думать… исследуя свой мир и — чем черт не шутит — даже пытаться познать себя. (Он будет предпринимать попытки только попутно, так как даже если «думающая машина» будет создана, неизвестно, сможет ли она объяснить то, каким образом она думает.)

На секунду оторвемся от иллюзий и вспомним, что можно реализовать любую ЭВМ не только в кремнии, но и, скажем, собрать ее из шестеренок (машина Бэббиджа), а то и просто из длинной ленты с ерзающей головкой (машина Тьюринга). Где же тогда окажется интеллект нашего подопечного? Очевидно, не в самих шестеренках. Может быть, в их комбинациях? Любая комбинация бессмысленна сама по себе, а смыл ей придается лишь определенной схемой интерпретации, причем обязательно внешней по отношению к монстру. «Внутри» монстра все комбинации равноправны! В зависимости от выбранной схемы интерпретации, всякая комбинация (шестеренок, перемещений магнитной головки, битов и байтов), взятая наугад, может представлять любую, абсолютно любую программу! Если так, то получается, что самосознание носителя искусственного интеллекта заключается отнюдь не в нем самом, а существует только в сознании тех, кто наблюдает за ним.

Если говорить на дзенский манер, монстр мыслит тогда и только тогда, когда на него «смотрят». Весь вопрос в том, может ли существовать некая закономерность «сама в себе» или она возникает только при выборе определенного способа интерпретации внешним наблюдателем?

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

Чтобы понять, что представляет собой интеллект, нужно выйти за его пределы. Сознание — совокупность методов интерпретации определенных комбинаций материальных сущностей (или воображаемых), но никакого «материального эквивалента» сознанию не существует. Искать сознание в нейронах — то же самое, что, растерев телевизор в порошок, пытаться обнаружить следы движущегося изображения.

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

Сможет ли наблюдатель познавать мир научным путем (а не философско-религиозным!), если будет полностью изолирован? Никаких физических приборов, которые могли бы что-то зафиксировать. Никаких органов чувств, которые могли бы услышать или увидеть что-то — одно лишь сознание в чистом виде.

И что случится с миром, из которого исчезнут все наблюдатели? 

© Крис Касперски