Смотрим, как нужно писать код теперь. Мне презентаха очень понравилась!
Archive for the ‘Без рубрики’ Category
Отличная презентация об улучшениях в коде проекта на Rails 3
Вторник, Август 31st, 2010Установка Ruby 1.9.2 и Rails 3 stable на Ubuntu
Вторник, Август 31st, 2010Давайте установим Ruby 1.9.2 и Rails 3 stable на Ubuntu. Я использовал Ubuntu 10.04, 32-х битную версию. Здесь рассматривается установка Ruby без RVM, так что если будете следовать этому мануалу, то сначала удалите старую версию Ruby и её зависимости.
Если у вас еще не установлены следующие пакеты - установите их:
$ sudo apt-get install gcc g++ build-essential libssl-dev libreadline5-dev zlib1g-dev linux-headers-generic
Теперь скачаем исходники Ruby 1.9.2, распакуем их и установим:
$ wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
$ tar -xvzf ruby-1.9.2-p0.tar.gz
$ cd ruby-1.9.2-p0/
$ ./configure --prefix=/usr/local/ruby
$ make && sudo make install
Добавим путь к бинарным файлам Ruby.
$ sudo gedit /etc/environment
Вам нужно добавить в переменную PATH этот путь - /usr/local/ruby/bin, должно получиться примерно так:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ruby/bin"
Затем выполним команду source для файла, чтобы применить изменения.
$ source /etc/environment
Теперь проверим, установился ли Ruby:
$ ruby -v
Вы должны увидеть примерно следующее: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
Теперь создадим символическую ссылку, чтобы программа gem работала
$ sudo ln -s /usr/local/ruby/bin/ruby /usr/local/bin/ruby
$ sudo ln -s /usr/local/ruby/bin/gem /usr/bin/gem
Ruby 1.9.2 уже содержит Rubygems, поэтому вам не придется его устанавливать.
Теперь установим нужные пакеты gem, включая rails 3.:
$ sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n sqlite3-ruby
$ sudo gem install rack-mount --version=0.4.0
$ sudo gem install rails --version 3.0.0
Проверим версию rails:
$ rails -v
Вы должны увидеть номер версии 3.0.0. Если этого не произошло, по попробуйте выполнить команду source /etc/environment, затем запустите rails -v еще раз.
Теперь всё готово к созданию нового приложения rails:
$ rails new myproject
cd myproject
rails server
New Mysql connector for Nodejs
Пятница, Август 20th, 2010Briefly: here’s a new connector to Mysql for Nodejs. In my opinion, it gives great hope)
So, you can get more info at github page: node-mysql-libmysqlclient
Установка MongoDB для Ubuntu 10.04 из пакета
Вторник, Август 17th, 2010MongoDB можно собрать вручную, а можно и установить из пакета. Я предпочитаю последнее, так как это гораздо проще и занимает меньше времени. К тому же, нам не нужно добавлять init.d скрипты - все добавится само.
Сначала добавим репозиторий в sources.list. Откроем файл:
sudo gedit /etc/apt/sources.list
и добавим в конец файла строку:
deb http://downloads.mongodb.org/distros/ubuntu 10.4 10gen
Затем, добавим ключ при помощи следующей команды:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
И обновим кэш:
sudo aptitude update
Всё. Теперь тупо ставим mongoDB из пакета:
sudo aptitude install mongodb-stable
После установки, проверим, все ли установилось. Для этого в консоли можно запустить mongo-shell:
mongo
Дальше можно поменять dbpath в конфиге и указать место, где у вас хранится база данных. Не забудьте сделать эту папку доступной для записи юзеру mongodb.
sudo gedit /etc/mongodb.conf
После редактирования конфига перезапустим mongod:
sudo service mongodb restart
Вот вроде бы и все. Дополнительную информацию смотрите здесь: http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages
А как вы проверяете mime-type файлов в php?
Вторник, Август 3rd, 2010Как известно, все загружаемые на сервер файлы нужно проверять на соответствие разрешенным mime-type. Большинство программистов проверяют это соответствие, сверяясь с mime-типом из $_FILES, но этот mime-тип берется из заголовков HTTP запроса и может быть определен неправильно, т.к. определяет его браузер. У меня например, некоторые jpeg-файлы определяются как application/octet-stream и естественно, скрипт их не принимает. К тому же решение построенное на проверке mime-типа из HTTP заголовка потенциально опасно, т.к. заголовки можно подделать и указать любой mime-тип.
Как же сделать правильно?
Нужно установить расширение PECL, которое называется Fileinfo. Это расширение является заменой более старого расширения mime_magic. Валидатор MimeType в Zend Framework использует именно Fileinfo, как наиболее приоритетный способ определения mime-типа. Fileinfo определяет mime-тип по специальным сигнатурам, которые есть внутри файла.
Другой способ состоит в том, чтобы переложить определение mime-типа на веб-сервер. У веб-сервера Apache есть специальный файл magic с сигнатурами, с помощью которого он определяет, какого mime-типа является загружаемый файл, и устанавливает это значение в заголовок. Таким образом, в php скрипт придет верный mime-тип.
Для того, чтобы, Apache определял mime-тип файла, нужно включить модуль mod_mime_magic.
Небольшой офф: не забывайте так же проверять тип файлов еще и по расширению.
Вернулся с отдыха
Вторник, Июль 27th, 2010Книга Олега Тинькова “Я такой как все”
Вторник, Июнь 29th, 2010У известного предпринимателя Олега Тинькова вышла классная автобиографическая книга о его становлении :) Я прочитал одну главу, выложенную на сайте - очень захватывает. Тиньков вообще молодец мужик. Вот хочу купить книгу в электронном виде, жалко только что нет оплаты вебманями или ЯДом - заплатить можно только кредиткой или SMS. Надо чето придумать, ибо кредитной карты пока тоже нет (да, вот такой вот я лох).
Зазырить инфо о книге можно тут: http://tinkov.com/
Ёбаный врот - страна обломов
Воскресенье, Май 30th, 2010- Собрались на сплав - всё отменилось из-за погоды, хотя погода была заебись, но за день до того мы не смогли это предусмотреть
- Друзья позвали на тусу на озере - но она отменилась из-за того, что была договоренность ехать на сплав
- Хотя сплав и туса на озере обломались, друзья всеже позвали на страйкбол - но он обломался, потому что всплыла работа
- Сайнт заебал ебаной рекламой в твиттере
- Денег нихуя нет, но зато есть пиво
- Завтра работа, ёбаный врот.
Надеюсь, мой другой сплав через неделю на все выходные сбудется.
x
Когда таги не работают
Среда, Апрель 21st, 2010
Поговорим о тагах (метках), как о способе категоризации контента. Как известно, тагами помечают какие-либо сущности, то есть привязывают к некой категории, как например я помечаю тагами посты в этом блоге. Если вы нажмете на какой-либо таг, то увидите список постов по теме. Всё работает и, достаточно удобно.
Однако, категоризация может не работать. Часто, разработчики включают систему категоризации, основанную на тагах, как некую модную фишку, ставшую по-сути стандартом де-факто для современных приложений, не подозревая, что это может не работать на благо.
Почему так происходит? Всё потому, что разработчики отдают “власть народу”, и пользователи на сайте получают в свои руки инструмент для категоризации. Но вот беда, обычные люди не задумываются, как работают таги - люди просто не соблюдают принцип ортогональности, поэтому, как результат, мы можем получить примерно следующее:
- Javascript
- JS
- Java Script
Как я верстаю
Пятница, Март 19th, 2010Во время верстки очень удобно иметь возможность видеть сайт в целом - то есть ходить по ссылкам, отправлять формы. Очень удобно видеть структуру сайта так, как если бы он уже был разработан и находился в интернете
Но как это сделать? Как сделать так, чтобы это работало, не приносило неудобств и быстро интегрировалось программистами в разрабатываемое приложение?
Пару дней назад приехал с моря. Щас заново учусь работать и, так сказать, жить. Отдохнул отлично, пару раз сплавлялся по горной реке, разок “повезло” перевернуться на байдарке, хапнул экстрима - мама не горюй. Но понравилось.