магия в class_eval и instance_eval (ruby)

Не давно работал над своим gem’ом и встретил интересную особенность ruby, которой бы хотел поделиться со всеми остальными.
Все уже давным давно знают, что в ruby c некоторых пор появились такие замечательные методы, как class_eval и instance_eval. Эти методы позволяют работать в контексте определенного класса.

Далее »

Элегантный способ заполнения массива

Представьте себе такую ситуацию – у вас есть Rails приложение, база данных, модель в этом приложении и таблица в базе данных, ассоциированная с этой моделью.

Пусть для примера таблица будет содержать два поля: report_date и value, где report_date это даты в формате Date. Представим себе, что записи в этой таблице генерируются не для каждого дня, т.е. могут идти числа [2011-01-01, 2011-01-03, 2011-01-10]. Но вам нужно вернуть какой-то промежуток времени из этой таблицы при условии, что те дни, которые не были в нее записаны вернуться как пустые объекты данного класса. Далее »

Веб-приложение за 5 минут (или меньше)

Просьба Aling Nena

Представьте, месяц спустя вы прогуливаетесь по улицам. Проходите мимо очередного магазина sari-sari (удобный филлипинский социальный магазин) и ее владелец, Aling Nena, зовет вас подойти к ней.

«Ты же заешь как создавать сайты, правильно?»

Вы знакомы с Aling Nena с детства и знаете, что она не подходит под описание типичного владельца магазинчика sari-sari. Вместо телевизора она использует десктопный компьютер с широкополосным доступов в интеренет чтобы занять себя в то время, как ждет покупателей. Когда бы вы не покупали у нее товар, вы видели как она просматривает страницы социальных сетей или чатится с ее детьми и внуками.

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

Вы соглашаетесь, как только услышали последнюю часть разговора. Я имею ввиду, кто откажется от недельного обеспечения cornik’ом? Далее »

Споры о стиле кода

Иногда в групповой разработке возникают некоторые разногласия. По именованию функций, по их использованию, объявлению, стилю кода и т.д. Конфликты могут проявляться на разном уровне и приводить к разным последствиям. Однако проблема спорящих заключается в том, что каждый считает себя умнее.

Когда мне предлагают изменить стиль кода или поправить что-то так или иначе я конечно же не побегу тут же править свою работу, но задумаюсь и, есть большой шанс того, что я могу послушать человека, если это действительно будет смотреться лучше и красивее, чем то, что написано у меня.

Однако, в любом случае важно оставаться в любой ситуации человеком. Не доводите дело до скандала. В дальнейшем вам будет сложнее с работать с этим человеком. И всегда прислушивайтесь к тому, что говорят окружающие – возможно они так или иначе смогут подать вам хорошую идею. Даже если перед вами новичок, попробуйте спросить у него совета, ведь программирование, как и наша жизнь так многогранна – возможно вы что-то упустили из виду.

Введение в Ruby on Rails

Ruby on Rails 3.0

Бесплатное студенческое руководство (оригинал)

Введение в Ruby on Rails

Что такое Ruby on Rails?

Ruby on Rails (обычно сокращается до Rails или RoR) это ориентированный на веб-разработку фрэймворк, написанный на языке программирования Ruby. Наиболее популярные примеры веб-сайтов, написанных на Rails это: Hulu, BaseCamp и GitHub. Далее »

Класс интеграции sms.ru для RubyOnRails

Недавно, дела и интереса ради решил написать интеграцию сервиса sms.ru для проекта под Rails. Сервис предоставляет очень удобное и заманчивое API для предоставления функции автоматизированной отправки sms. Поскольку на оффициальном сайте сервиса представлены скрипты только на php, думаю кому-нибудь данный класс может пригодиться.

Далее »

Ubuntu 11.10 и проблемы с wi-fi

Внимание держатели нетбуков ASUS EEEPC и wifi-роутеров если вы поставили на свой нетбук (у меня он ASUS eeePC-1000H) последний нестабильный релиз Ubuntu 11.10 и у вас начались проблемы с коннектом и скоростью wifi, то зайдите в настройки своего роутера и поменяйте знначение Preamble Type с «long» на «short». Также можно выставить CTS Mode в «Auto» для пущей уверенности. А также зайдите в Network connections и удалите из вкладки wireless текущее беспроводное соединение.

Runtime перегрузка методов класса в PHP

Часто натыкаюсь на форумах на вопросы людей о том, как перегрузить метод класса в ходе выполнения скрипта. Отвечу ясно и надеюсь поставлю точку в этом вопросе. На момент данного релиза, используя чистый PHP это НЕ ВОЗМОЖНО! Но, у нас есть такая хорошая вещь как расширения и для перегрузки функций уже написано несколько хороших решений. Далее »

Плагин сортировки таблиц javascript/jQuery

Итак представляю на ваш суд свой плагин сортировки таблиц на для jQuery. Плагин не использует каких-то своих стилей, поэтому табличка будет такой, какой вы ее задумали. Из минусов – нет подгрузки контента ajax-ом (все загружается единовременно), сортировка по датам не производится (пока). Всего минимум – сортировка и пагинация. Вот файлик: jFST.js.

Краткая справка по юзабилити.

Табличка строится в формате:

<table class='sortable'>
<thead>
<tr>
<th class='sort'>id</th>
<th class='sort'>user</th>
<th>date</th>
</tr>
</thead>
<tbody>
<tr><td>1</td><td>user1</td><td>date1</td></tr>
<tr><td>2</td><td>user2</td><td>date2</td></tr>
</tbody>
<tfoot>
<tr><td colspan=3></td></tr></tfoot></table>

Использование плагина для этой таблицы будет таким:

$('.sortable').jFST({TableRowsNum : 20, PageCountText : 'Страниц пользователей:'})

где первый параметр – количество строк таблицы на одну страницу, а второй – текст, который будет отображаться перед списком страниц.

Почему в PHP не работает передача по ссылке

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

Потрясающая песенка про сколково

Смотрим и улыбаемся)

Как сформировать адекватное скачивание файлов

В общем ко мне в аську обратился товарищ по переписке с проблемой. У него на сайте была галерея фотографий и под каждой фотографией была ссылка с надписью <a href=’somefile.jpg’>Download</a>. Он спросил меня каким образом сделать так, что бы при нажатиии браузер не отображал фотографию а давал возможность скачать ее. Далее »

Кроссбраузерный плагин сглаживания краев у div’ов

Запарился искать подходящий плагин, который бы работал и на firefox и на ie и на остальных браузерах. Решил написать свой. Тестился на firefox 3.6.14 и ie>5.0. Вроде все работает нормально. Функцианала маловато, но как говорится жизненный цикл… Прошу, кто-нибудь, возьмитесь потестить. Только по существу, если что-то не работает, потому что по сути плагин не оптимизирован. Считай это даже alpha версия. Далее »

Кросс-браузерный просмотр

Учитывая мою возросшую активность в сторону изучения PHP и JQuery и зная об убогости интерпретации страниц браузером IE, появилась необходимость проверять свои творения в разных браузерах. Но как это сделать не имея оных? Ставить ворох браузеров на свою машину не было никакого желания. И потому что я очень ленивый человек – начал серфить ИнтерСеть в поисках другого решения. И другое решение как выяснилось ЕСТЬ! Далее »

Как из домашнего компьютера сделать веб-сервер

Вы давно мечтали распрощаться со своим хостингом и начать жить своей жизнью? У вас хороший выделенный интернет-канал и хорошое железо? (По сути если у вас намечается только блог, то особо высоких требований к каналу и железу не требуется.) И вот вы решились – будем делать домашний сервер. Далее »

Вертикальное центрирование в div

Кого также, так и меня, запарило перебирать все возможные способы сделать сабж через css – вот мое решение на jQuery: Далее »

Opera анонсировала выход новых версий

Хорошие новости, Opera выпустила новые версии мобильных браузеров, это: Opera Mini 6 и Opera Mobile 11. Opera не рассказывает очень многого про то, какие функции будут включены в новых браузерах, говорит только о том, что появится и версия под Tablet PC.  Далее »

Microsoft анонсировала Microsoft Kodu Game Lab под PC

16 марта Корпорация Microsoft анонсировала полную доступность продукта Microsoft Kodu Game Lab под PC и соревнования под названием Microsoft kodu Cup 2011. На соревнования приглашаются дети от 9 до 17 лет, для разработки, построения и публикования их собственной видеоигры на платформе Codu Game Lab software – никаких предыдщих опытов программирования не требуется. Дети могут ознакомиться с правилами на сайте http://koducup.us. Далее »

Twitter становится безопаснее: переход на HTTPS

Теперь все соединения с твиттером будут производиться посредством HTTPS соединения. Такой шаг twitter предпринял вследствии того, что оббычное соединение не является безопасным при работе через незащищенные WiFi сети. Далее »

iPad 2 захватит рынок

Многие отзываются неготивно об iPad. Даже среди ведущих сайтов о новинках IT-мира нет единства. Конечно они правы, с рациональной точки зрения. iPad, если рассудить – это вообще лишний гаджет, занимающий дополнительное пространство. В нем никакой очевидной необходимости. Если у вас уже есть телефон или ноутбук с сенсорным экраном, зачем еще покупать iPad. Если честно, то он больше похож на большой Touch Pod. Далее »