Skip to content

Category Archives: webdev

WebDev / <button>

Во избежание всяческих проблем, хочу напомнить, что по стандарту у кнопки, созданной тегом <button> хорошо бы указать аттрибут type.

type = submit|button|reset

  • submit: Создает кнопку отправки формы. ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ!
  • reset: Создает кнопку очистки полей
  • button: Создает обыкновенную кнопку, нажатие на которую не вызывает отпраку формы.

Все дело в том, что IE плевал на все стандарты, и по умолчанию type=button. А вот Опера и FF стандартам соответствуют в большей мере. Соответственно, ежели вы про аттрибут type не знаете, вы будете долго удивляться, почему у вас при нажатии на кнопку отправляется форма :-)

WebDev / PHP / Sessions

Вы никогда не сталкивались с проблемой, когда после авторизации на сайте www.domain.ru вы переходите на domain.ru, а вас не узнают?
Или вот, случай из жизни. Заходите в интернет-магазин aaa.ru, в разделе comp.aaa.ru добавляете в корзину один товар, переходите в раздел audio.aaa.ru, а корзина опять пустая. И делай чего хочешь — НЕ РАБОТАЕТ!

Я сталкиваюсь с подобными проблемами КАЖДЫЙ ДЕНЬ. Куча форумов, интернет-магазинов... да тот же news2.ru тоже имеет эту проблему.

Попробуйте зайти на news2.ru, залогиниться, а потом зайти на www.news2.ru. Вам скажут: «Привет, Гость!».

В принципе, в чем проблема — я догадался уже давно... Дело в том, что cookie, «ключик», по которому сайт вас узнает, ставится на domain.ru, домен второго уровня. А вот в домене третьего уровня (www.domain.ru) cookie уже не видится. И идут косяки.

Полистав RFC, узналось, что можно поставить кукиз на .domain.ru
Обратите внимание на ТОЧКУ перед именем домена. Это значит, что кука будет доступна как и при обращении к domain.ru, так и во всех поддоменах ТРЕТЬЕГО уровня. Это то, что было нам нужно :-)

Как в PHP это делается? Просто! Функция session_set_cookie_params:
Continue reading ›

WebDev / Solitaire on JS

Solitaire прямо у вас в браузере — написан на JavaScript'е.
Вот она, мощь JS :) ИМХО, неплохой пример получился.

Поддержка браузерами:

  • Opera 7+.
  • Mozilla/Firefox/Netscape 6+.
  • Internet Explorer 5+ on Windows and Mac.
  • Konqueror 3+/Safari/OmniWeb 4.5+.
  • iCab 3+.
  • ICEbrowser.

WebDev / Новые Веяния, RubyOnRails

Кто-то, прочитав заголовок, скажет: «Да какие же они новые!». Кто-то скажет: «Ну, руби, ну, рельсы. А зачем мне? PHP(Perl?) спасет мир». А кто-то просто прочитает и закроет.
По последней схеме раньше действовал и я, хотя многие уважаемые мной блоггеры (urbansheep, Clops, Maniac, julik) писали посты, употребляя загадочные термины типа RoR или Django, причем эти загадочные штуки они исключительно нахваливали. Да все как-то мимо ушей шло, не цепляло, да лень было.

А лказывается, очень интересная штуки, эти RoRы и Джанги.
По порядку.

Когда-то, давным давно, захотелось повебдевить (webdev). Выбор был небольшой, либо старик Perl, либо довольно новый на то время, активно рекламирующийся и захватывающий мир, PHP. Выбор пал на PHP, который был изучен за пару дней для удовлетворения собственного любопытства: «Динамический контент — это как?». И так делали многие, насколько я себе представляю. И даже зарабатывали на этом деньги. А кто-то и до сих пор зарабатывает. Но жизнь не стоит на месте. Это ключевой момент. Жизнь движется, все развивается. Кроме Perl и PHP есть ЕЩЕ ЧТО-ТО! И это давно надо было понять.

Даже если работать с Rails и Ruby претит принципиально рекомендуется наконец-то высунуть голову из PHP-болотца (как жаль что я это сделал так поздно) и оглядеться вокруг.

Пока еще не поздно :)
Вы программируете на PHP? PHP — это уродливый клон синтаксиса C. Хорошо конечно, но можно и по-другому.

Все цитаты на тему ruby выдернуты из поста julik'а. Очень советую почитать его пост на эту тему. Может хоть это откроет вам глаза. Попробовать RoR совсем не сложно, framework ставится легко. С полпинка. Лень ставить? Смотрите в конец поста. Try ruby!

Кстати да, забыл сказать. Вообще, Ruby — это язык такой. Довольно молодой. Основные принципы?

  • Все — объект 
  • Класс — тоже объект
  • Класс класса — объект (ха!)
  • И строка, и число — объекты, равно как True и False.
  • Да, null тоже объект. Кстати, его класс — объект класса Класс.
  • Объекты отвечают на сообщения, причем сообщения сходной семантики в классах называются одинаково

Все. Этого достаточно.

Чтобы выяснить разницу двух массивов в PHP, нужно хорошенько прочитать про все 6478 функций set arithmetic. Чтобы сделать это в Ruby, нужно отнять один массив от другого знаком минус.

...

Rails — это framework (набор библиотек, к которому надо приписать минимум кода для создания готового веб-приложения), сделанный для создания веб-сайтов с базами данных “с нуля”. Это важно — именно “с нуля”, для “напяливания” сайта на 1С оно не подойдет совершенно.

...

Но все вышесказанное нужно попробовать. По крайней мере по тому что в области архитектуры сейчас Rails — культовая система, а через год будет baseline-решением (а место Rails займут Seaside и ему подобные).

...

А хостинг — проблемой не является. Если он нужен, то он будет. А если нет — то пусть ваш клиент сделает вам одолжение и выберет среднестатистический русский хостинг, а не вас. Он вас не заслуживает.

Try ruby!
Ну что, уговорили мы вас попробовать? Тогда сделайте это в окне браузера прямо здесь и сейчас.

PS. На тему Python'а в применении к webdev'у сейчас не осилил. Лучше сделаю отдельный пост. А пока, можно прочитать про Django у Maniac'а в блоге.