Category: it

Dark

Searchlight gem для красивого поиска в базе данных

Для интересующихся разработкой на Ruby (и Ruby on Rails) я открыл новый блог http://gemsfromhell.com в котором рассказываю о полезных gem библиотеках под разные нужды и возможности.

Вот сегодня например о библиотеке Searchlight, которая позволит вам проще и красивее искать данные в вашей базе данных не отменяя при этом всю мощь ActiveRecord'а в ваших моделях - http://gemsfromhell.com/blog/show/5-searchlight-kak-cvetoch-ydobnogo-poiska-v-baze-dannih.html
Dark

Индусо-ориентированный код

Хотите вот показательны момент индусского кодирования?

Маленькое так сказать вступление и ссылочка будет. В целом группы на LinkedIn интересны для меня в плане поиска зарубежной работы, ну иногда и мелких проектиков. Хотя последнее время пытаюсь свой кривой английский импрувить, но блин, но засилие индусов заставляет сомневаться в этой затее. Мало ли у них тоже кривой :)
Ну да не суть. А суть именно в топиках, что обсуждают, какие вопросы, какие ответы, и честно. Это ПИЗДЕЦ! А не уровень.

Вот вам человек решал проблему 4 (!!!) дня. Причем понять проблему и решить такого уровня если ты понимаешь php и вообще суть фрэймворков (такого простого как codeigniter - это же молоток, бери и бей!) ничего не стоит, это элементарщина! Сорри за мой английский так сказать.
Вот тема тема на linkedin

Понятно, что удалось человеку донести немного правильное пользование redirect'ом, но основная проблема ведь была что человек не понимал роутинг.
$route['delete/(:num)'] = 'news/delete/$1';
как вот при таком хотеть news/delete/(\d+) ???

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

Dark

Связи

В общем-то я так и не нашел хорошего форума для программистов, потому попробую спросить у себя, мало ли у меня фрэндов тут разбирающихся в БД, а то я что-то совсем загрустнел с этим вопросом до степени, что хочу перекинуть все на MongoDB.

В общем задачка, помогите советом.

Что есть.

Обычная таблица users с полями id, name, email, password etc...

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

Решения
1. В лоб, завести таблицу damneds c двумя полями id, user_id, users - где user_id связь со мной, а users текстовое поле например json (marshal, serialize) всех пользователей, что я "забанил"
+ связь, один к одному, быстро достать по индексу user_id и рассериализовать все id
- но после рассериализации, чтобы выбрать и пропустить where not in ( .... тут id'шники )
- неудобно добавлять, надо достать, рассериализовать, проверить нет ли уже, добавить, сохранить
- простым запросом не проверить забаннил ли Я например пользователя 666 или нет?
В общем-то я вижу вариант очень неудачный, хотя и денормализованный, в Mongo был бы идеальный, никаких лишних коллекций в users завел поле-список и пихай туда пользовательские id, правда проблема выборки опять встает или редюсить или вторым запросом проверять на вхождение.

2. Как я сделал сейчас. Завел еще одну таблицу damneds с полями id, user_id, damned_user_id, то бишь user_id это пользователь, а damned_user_id - это "забаненный" пользователь. Академично, классично, молодежно! Да и в Rails сделать через has_many :damned_users, :through => :damneds и от туда уже belongs_to :damned_user, :class_name => "User" это проще паренной репы.
+ или это - в больших нагрузках, что все нормальзовано, зато просто проводить операции
- что я пока не могу красивый scope к модельке придумать, чтобы выбирать всех пользователей, кроме забаненных, как?

UPD: Вариантов 3... и больше не нашлось
Остановился на втором, с AREL решил так:

User.where("id not in (?)", current_user.damneds.blank? ? "" : current_user.damneds).all

спасибо руби-чатику :)
Dark

Облачный хостинг

flops.ru Купился я недавно с Хабра на рекламку нового облака - http://flops.ru

Купило, что дали сразу 1000 руб. на счет и возможность гибко расширять в последствии ресурсы сервера без переустановок, ну и всякие быстрыи клонирования машин, моментальный снимок (и бесплатно), да и панель красивая.
Вот только все это хорошо, но на деле ведь всплыли куча минусов в итоге которые привели меня, что я свой старый аккаунт на http://clodo.ru открыл.

Во-первых для чего я взял это облако? Мне надо поставить Ruby + Unicorn + Nginx + Rails на проект, конечно база будет MySQL, Memcache и возможно будет стоять Node.js + чатик на CoffeeScript. Чисто для тестов и так сказать разработки на более или менее приближенной машине.
И так, что получилось с flops в итоге, что мне не понравилось:
- тормознутость, о да, еще какая в плане отключить машину например у меня минут по 10-15 уходило, включается быстрее. Уведомления о вкл. и выкл. приходят на почту и СМС, все это можно настроить конечно же в панели
- дистрибутивы на выбор, я как большой леньтяй выбираю обычно Ubuntu, желательно вообще голую без единого веб-сервера или нестандартных языков (перл и питон по умолчанию конечно), вот тут я выбрал 12.04 и она уже изначально загаженная, потому как стоят к чему-то две версии руби 1.8.x и 1.9.2 обе уже старые
- глючность, после установки ubuntu образа я зашел в шел и начал обновлять, но увы пинг ни до ru.archive.ubuntu.com (ни до их локального репозитария не доходил) ни еще куда-то не доходил, пришлось перезагрузить систему, после этого пошло
- медлительность, на flops - 1 GB RAM + 12 ядер CPU но все работает намного медленнее чем на clodo'вском 512 MB RAM + 4 ядра CPU, особенно например заметно притормаживало в mcedit на средних файлах, дисковые проблемы на свежей системе? хм, возможно... но где тогда обещанный 100 мбит канал, в то время все качается очень медленно, я то знаю как на hetzner и clodo скорости! Вторая медлительность это при сборке, так как через rvm я пересобрал ruby версию наверное раз 30, то ждать каждый раз сборку по 20 минут я заебался, честно, в клодо это на-а-амного быстрее делается
- я разумеется все проапдейтил и давай ставить mysql, rvm, версию ruby 1.9.3 поставил и решил деплоить приложение, но знаете это не в первый раз, но такую кучу проблем выплывающих в образе, что я задеплоить смог конечно после многих часов, но всяческое неудобство выплыло уже на миграциях, капля в море стала когда просто начал capistrano deploy:migrate ругаться на неустановленный multi_json это было блядство, ибо поставил я его уже и по дефолту руками даже и в один единственный gemset.

Это три большие минуса, которые я решил не испытывать пока, да и бесплатные еще 1000 пусть пока для экспериментов будет, взял и вернулся на clodo.
Я понимаю, что и в clodo еще выплывут проблемы, хотя думаю не такие дурные, так как опыт у Оверсана поболее, да и на рынке они дольше.

Что понравилось в flops так это две вещи:
- удобная, очень функциональная панель, даже например ssh ключ можно добавить через панельку, такую тупую панельку я хочу, я не хочу ебаца в панели, я хочу фап-фап блеа
- я попробую позже, но возможность сделать клон системы и сразу запускать + делать моментальный образ-бэкап по мне так это круто. Пошла нагрузка, делаешь клон системы, дописываешь во внешнем ngix (или haproxy) свой новый ip и вуа-ля - пошла малина. Звучит конечно красиво и прям как Amazon :) Только для бедных :)

В общем еще один вечер тюнинга сервера, теперь clodo. Скоро точно можно будет обойти всех облачных хостеров и написать прям статью в картинках для какого-нить фап-фап журнала.

update: и ведь вот результат, полтора часа как оплатил clodo, обновился, поставился, задеплоил с первого раза!!! БЛЯТЬ!!! Че еще я могу сказать! Просранные выходные! Завтра поставлю NGINX выведу сервер и возьму выходные.
Dark

Как я шагал по пути создания CMS

DC.CMSДумаю, почти каждый веб-программист задумывался на тему свой «CMS», мега крутой, мега универсальной, удобной и завоевывающей мир. Задумывались, писали, разочаровывались и писали снова. Я, разумеется, так же прошел этот тернистый путь, что-то изобретал, на глазах росли продукты вокруг, рос я и так же росли мои продукты. Хочу немного рассказать как раз о новом своём детище, как я к нему пришел это будет первой статьёй, второй станет, что представляет внутри новая система DC.CMS и как я научился говорить нет себе, мириться с рядом вещей, что не всегда удается сделать в «идеальном» мире.
Collapse )
Dark

:) улыбнуло

программеры, программерши и просто кодеры, будьте внимательны когда при базы пользователей отводите поле под пол, их не два :) male и female как вы можете думать, но еще и trans :-PPPP

как я это узнал, я вам хрен скажу, просто советую :)))
Dark

писи-писи-пипи :)))

«Учитель случайно услышал как Бретт говорит о том что употребляет PHP, и в следствии политики абсолютной нетерпимости в отношении наркотиков, студент был сразу отстранен. Без всяких вопросов.» — сообщил ректор Clyde Thurlow. «Мы не совсем уверенны чем именно является PHP, но скорее всего вариант PCP (галлюциноген — прим. пер. ), или новый синтетический наркотик, например как GHB (бутират — прим. пер.).»

Родители в шоке из-за этих событий, и требуют, чтобы школа предприняла какие-либо действия. «Мы услышали, что он узнал о PHP в школе через Интернете. Может быть даже есть группировка в сети распространяющая PHP на территориях школ» — сказал рассерженный отец. «Предполагалось что в школе детей учат читать и писать, а не употреблять дурь вроде PHP».

В ответ на требования родителей, школа закрыла доступ ко всем сайтам так или иначе связанных с PHP. Руководство школы сообщает что эти меры предостерегут других учащихся от того что с тало с беднягой Тайсоном. Так же были проведены обыски раздевалок с собаками на предмет хранения наркотиков.

http://habrahabr.ru/blogs/php/57000/
  • Current Music
    Nahemah - Like A Butterfly in A Storm
  • Tags
    ,