Pull to refresh
-1
0

Программист

Send message

Amazon on Rails

Reading time4 min
Views3K
В данном посте я решил поделиться опытом разворачивания rails сервера на Amazon. Все предыдущие rails проекты я выкладывал на готовые сервера. Это были частные сервера, или широко известный сервис heroku. И единственные команды, которые я посылал серверу, были cap deploy и cap deploy:cold. Но в последнем проекте заказчик пожелал разместить сайт на своем амазоновском образе, поэтому пришлось погрузиться в тему более глубоко.
Читать дальше →

Полезные инструменты, туториалы и ресурсы

Reading time4 min
Views16K
Созданый Райаном Далем в 2009 году, Node.js — относительно новая технология, завоевавшая в последнее время большую популярность среди веб-разработчиков. Однако, до сих пор не каждый знает, что на самом деле Node.js это серверная JavaScript среда, использующая асинхронную событийную модель. Что это означает? Все просто: это среда, которая предназначена для написания масштабируемых, высокопроизводительных приложений. Почти как Ruby’s Event Machine или Python’s Twisted, но гораздо глубже — JavaScript реализовывает цикл событий, на уровне самого языка, а не как отдельная библиотека.



И это еще не все: то, что действительно круто в Node.js — это тысячи модулей, доступных для любых целей, а также активниешее сообщество этого молодого проекта. В этом обзоре вы найдете самые полезные ресурсы по Node.js, от просто удобных инструментов и подробных руководств, до углубленных статей и ресурсов о этой перспективной технологии. Используете ли вы Node.js? Поделитесь опытом в комментариях к этотому посту!

Читать дальше →

Что делать если в Ваш Amazon EC2 instance ударила молния?

Reading time4 min
Views4.3K
Как многим известно, недавно в Ирландии был обесточен один из датацентров Amazon. Об этом уже рассказывали. Как я понял из общения со своими коллегами, большинство пользователей Amazon EC2 получили разве что downtime, но вот мне не повезло больше — у меня не только инстансы остановились, но один из моих volume-ов перешел в состояние error.

Все бы ничего (ведь есть snapshot-ы), но вот незадача: отключать (detach) EBS volume-ы нельзя, если они подключены как root к какому либо инстансу. Во всяком случае через web.

Читать дальше →

Как DRYить модели

Reading time5 min
Views18K
В большинстве рельсовых проектов основная концентрация кода приходится на модели. Все наверняка читали про Slim controllers & fat models и стараются впихать в модели как можно больше, а в контроллеры как можно меньше. Что ж, это похвально, однако в стремлении утолстить модели многие часто забывают про принцип DRY — don't (fucking) repeat yourself.

Я тут постараюсь вкратце расписать, как в районе моделей и рыбку съесть, и про DRY не забыть.

Читать дальше →

Быстрая автоматическая установка Ruby on Rails на IIS 7

Reading time4 min
Views7.2K
Популярность фреймворка Ruby on Rails постоянно растет, общество становится шире и, если раньше об использовании Ruby на Windows говорилось редко, то сегодня это вполне реальная практика.

Такие проекты как RubyInstaller (http://rubyinstaller.org/) и RailsInstaller (http://railsinstaller.org/) значительно упрощают создание рабочей среды на Windows. Вы можете использовать нативный MRI 1.8 и 1.9, JRuby или даже IronRuby работающий на .NET. С Windows работает большинство gem-пакетов, причем благодаря DevKit (https://github.com/oneclick/rubyinstaller/wiki/Development-Kit) «сишные» джемы можно собирать прямо из исходников.

Однако, несмотря на активное развитие средств разработки, до сих пор Windows и в частности веб-сервер IIS практически не использовались как «продакшн» решение для развертки Rails приложений. Но с появлением нового инструмента Helicon Zoo на базе Web Platform Installer – эта ситуация поменялась.

Helicon Zoo


Helicon Zoo – это репозиторий веб фреймворков и приложений, позволяющий легко устанавливать и запускать Rails, Django (фактически любые rack, wsgi или FastCGI приложения) и Mojolicious на веб-сервере IIS.

Читать дальше →

Portable Areas как вариант модульности в MVC

Reading time3 min
Views3.7K
Один из первых вопросов, которым я задался после знакомства с азами технологии MVC3, это способ выделения и повторного использования функционала в нескольких веб-проектах.
В WPF или WinForms все просто и понятно — обособленный функционал изолируется в модуль, модуль компилируется в библиотеку, библиотека — подключается к проекту и повторно используется. Нужно лишь грамотно изолировать модули и всё будет хорошо.

В MVC, если «обособленный функционал» — это набор контроллеров и вьюшек, реализующих, допустим, гостевую книгу, их можно обособить в виде «области» — area. Однако просто так вынести эту область в отдельный модуль нельзя — MVC просто не найдет ваши контроллеры/вьюшки в соседних библиотеках.

Однако решение, конечно, есть, и его нам предлагает небезызвестная библиотека MvcContrib — open-source проект, неаффилированный Майкрософтом.
Читать дальше →

Архитектура контроллеров: простые советы на каждый день

Reading time6 min
Views3.9K
То, что контроллеры должны быть «худыми» знают все, но по мере наращивания функционала поддерживать чистоту контроллеров становится все сложнее и сложнее. Мы хотим предложить несколько рекомендаций как содержать свои контроллеры максимально чистыми без ущерба для качества кода.
Читать дальше →

Автодополнение команд Rails

Reading time1 min
Views889

Работая с rails 3, я подумал, что было бы здорово иметь возможность дополнять команды rails в bash с помощью tab'a.
Погуглив, я нашёл плагин, который позволяет легко это сделать:
https://github.com/jweslley/rails_completion

Для установки нужно:


1. Скопировать содержимое файла rails.bash в ~/.rails.bash
2. Добавить в ~/.bashrc строчку:

source ~/.rails.bash


И можно наслаждаться)

PS.
Для работы необходим пакет bash_completion версии > 1.2
sudo apt-get install bash_completion

Интеграция ASP.NET MVC 3 приложений с Facebook OAuth API. Часть 1: Авторизация

Reading time5 min
Views6.9K
Зачем нужна авторизация на вашем сайте через Facebook?
На данный момент в социальной сети Facebook более 500 млн. пользователей. Многие сайты предоставляют возможность авторизироваться без дополнительной регистрации, где нужно заполнять много полей информации о себе. Если у вас есть аккаунт на Facebook, то вам достаточно войти на сайт используя его. Это экономит время, ведь регистрация нередко требует потратить минут 5-10.

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

Итак, приступим…
Читать дальше →

Связка rvm + Rails + Nginx + Unicorn или деплоим рельсы правильно

Reading time9 min
Views55K
Целью данной заметки я ставлю в подробностях описать организацию сервера для Rails приложений в самой популярной на данный момент связке: rvm + Rails + Nginx + Unicorn. К написанию статьи побудило отсутствие полной пошаговой документации по этой связке, понятной не только ядреным профессионалам этой области. Далее я попытаюсь подробно, шаг за шагом, описать идеологически правильный процесс организации сервера для обслуживания нескольких Rails приложений (на примере одного) — если у вас есть абсолютная уверенность в том, что на подопытной машине никогда не будет работать более одного приложения — настройка может быть существенно короче и проще. Хочу предупредить, что тонкости, касающиеся работы приложения под высокой нагрузкой в статье не описываются, т.к. цель ставилась иная — заставить работать приложение в связке и сократить количество конфликтов с другими приложениями до минимума.
Читать дальше →

RubyGems — подробно

Reading time4 min
Views45K

Для начала определимся с понятиями:
RubyGems — фрэймворк для установки и запаковки Ruby библиотек и приложений.
gem — пакет(файл) с библиотекой или приложением. Имеет стандартизированный вид и расположен в хранилище в сети.
gem command tool — RubyGems предоставляет утилиту «gem» для работы с gem пакетами из командной строки. Она интегрирована с Ruby и позволяет получать доступ к установленным gem'ам как к библиотекам.

В чем же предназначение RubyGems?

До того как появилась RubyGems, для установки новой библиотеки нужно было найти, скачать её, попытаться установить, часто лишь для того, чтобы убедиться в отсутствии нужных зависимостей. Если же библиотека запакована с помощью RubyGems, достаточно попросить RubyGems сделать это за нас и получить установленную, интегрированную библиотеку со всеми нужными зависимостями. В дополнение ко всему утилита gem — платформонезависима, неважно какую ОС вы используете, везде механизм установки библиотек и приложений будет одинаков. Здорово, правда?

Под катом будут описаны:
1) Поиск, получение деталей, установка gem's
2) Доступ документации по установленному gem
3) Использование установленных gem's
4) Работа с версиями gem's
5) Создание собственных gem's

Читать дальше →

Declarative HTML Helpers

Reading time3 min
Views14K

@functions @helpers


Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.

Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.

image
Круто! но зачем это нужно?

Полиморфные ассоциации и Devise в Ruby on Rails

Reading time7 min
Views4.7K
Всем привет.
Когда-то давно я писал статью про полиморфные ассоциации в Ruby on Rails и, помнится, некоторые негодовали: зачем, мол, писать про Rails 2, если на подходе новая версия.

Недавно мне пришлось столкнуться с полиморфными ассоциациями в Rails 3, а точнее придумать, как организовать на сайте два типа пользователей: заказчик и исполнитель. В этой статье речь пойдет о полиморфных ассоциациях и гемах Devise (для аутентификации) и CanCan (для авторизации).
Читать дальше →

Перенос данных из одной базы в любую другую

Reading time2 min
Views14K
В нашем Ruby On Rails 3 приложении возникла необходимость перейти с Sqlite на MySQL. Нужен было простой и действенный способ, без громоздких Perl скриптов и платных утилит, которыми пестрит интернет и в частности StackOverflow.
Читать дальше →

Glimpse — серверный «firebug» для проектов ASP.NET

Reading time2 min
Views5.6K
Разработчики ASP.NET получили уникальный инструмент, который может облегчить их жизнь. Проект с открытыми исходными кодами Glimpse созданный энтузиастом веб-разработки предлагает то, что можно назвать серверным вариантом популярного средства отладки firebug (расширение для Firefox).

Glimpse – это расширение, которое можно добавить в проект на базе ASP.NET и получить богатую отладочную серверную информацию во время работы веб-приложения.

image

Панель представленная на рисунке устанавливается с помощью букмарклета для любого браузера. Она предлагает массу важной информации о работе приложения на серверной стороне. В том числе:
  • конфигурация веб-приложения;
  • значение переменных окружения и информация о .NET-сборках;
  • информация о этапах выполнения жизненного цикла приложения в ответ на запрос;
  • информация о используемых маршрутах ASP.NET при работе приложения;
  • параметры HTTP-запросов;
  • параметры сессий ASP.NET  и значения сохраненные в них;
  • параметры и жизненный цикл представлений ASP.NET;
  • отслеживание и работа с Ajax-запросами.
Как и многие инструменты сегодня, Glimpse доступен для легкой автоматической установки через пакетный менеджер NuGet. Рассмотрим подробно процесс установки и использования.

Читать дальше →

Профессиональный курс по ASP.NET MVC 3 бесплатно до 18 марта!

Reading time1 min
Views3.7K
image 

Компания Pluralsight, при поддержке Microsoft, делает прекрасное предложение для веб-разработчиков и предлагает бесплатный доступ к своему профессиональному видео-курсу обучения технологии ASP.NET MVC 3. Предложение ограничено по времени, курс будет свободно доступен только до 18 марта. Курс подготовлен на английском языке.

image

Курс состоит из следующих частей:
  • введение: новый проект, шаблон MVC, маршрутизация, контроллеры, представления, создание действия;
  • движок представлений Razor: преимущества Razor, создание простого представления, смешивание кода и разметки, модели и ViewData, HTML-хелперы, частичные представления, модель компоновки представления, код для автоматического запуска, конфигурация;
  • контроллеры: глобальные фильтры действий, кэширование результатов вложенных действий, ViewBag, новые результаты действий, валидация запросов;
  • модели: валидация в MVC3, аннотация данных, пользовательские атрибуты валидации, модели с поддержкой валидации, клиентская валидация, пользовательская клиентская валидация, удаленная валидация;
  • NuGet: средство управления пакетами, зависимости пакетов, использование PowerShell, пользовательские пакеты;
  • Dependency Injection: инъекции зависимостей, использование IDependencyResolver, инъекция в контроллерах, инъекция в представлениях, активаторы, расширяемость фильтров, расширяемость моделей.
Pluralsight делает весьма и весьма качественные видео-курсы, поэтому рекомендую всем не упустить возможность и ознакомиться с этим бесплатным предложением. Очень хороший шанс начать изучать ASP.NET MVC или узнать что нового было представлено в MVC3.

iText: пишем в PDF по-русски

Reading time5 min
Views25K
Задача: создавать PDF-документ с использованием библиотеки iText. При этом пользователь должен сам задавать используемые шрифты, из установленных в системе. Шрифты как TrueType так и Type1.
В iText есть статический класс предоставляющий доступ к системным шрифтам FontFactory. При получении шрифта нужно правильно указать его кодировку. Тут и возникли проблемы. Для ТТ и Т1 кодировки разные, и в .NET нет штатных средств позволяющих отличить ТТ-шрифт от Т1.
Решение проблемы

ASP.NET MVC: Привязка данных модели, которые содержат изображения

Reading time5 min
Views9.2K
Привязка данных(binding) является достаточно удобным средством ASP.NET MVC. Удобно оно в первую очередь тем, что позволяет скрыть реализацию преобразования данных между данными из модели и данными HTTP запроса.
В своих проектах я часто сталкиваюсь с необходимостью сохранять различные данные типа blob и image. В этой статье я бы хотел показать, как можно легко организовать и использовать привязку данных из модели, которые содержат различные изображения. Для примера я взял учебный проект MVC Music Store и решил его подправить — добавить возможность изменять изображение обложки музыкального альбома. При написании данной статьи, я использовал версию APS.NET MVC 3 и Razor.
Читать дальше →

Компилятор Brainfuck в .NET

Reading time5 min
Views7.7K
Здравствуйте.
Смотрю я, что у вас неделя BrainFuck-а и я решил написать компилятор, тем более, что в комментариях к этой статье просили рассказать поподробнее про динамические методы. В этой статье мы рассмотрим этот метод компиляции кода и попробуем сделать компилятор самого нормального простого языка
Читать дальше →

Быстрое создание прототипа веб приложения в ASP.NET MVC 3 с использованием MvcScaffolding

Reading time7 min
Views6.9K
В этой статье я бы хотел рассмотреть возможность быстрого создания функционального прототипа веб приложения на основе технологии ASP.NET MVC 3. Немного соприкоснувшись с «Ruby on Rails», я заинтересовался его возможностью Scaffolding-га т.е. быстрого способа генерации основного каркаса приложения. Это дает возможность разработчику сконцентрироваться на создании бизнес модели и получить функциональный прототип не тратя свое время на детали реализации, что очень важно в начале любого проекта. А существует что-либо подобное в ASP.NET MVC? И насколько это функционально, быстро, удобно и практично.
Я хотел бы рассмотреть это на конкретном примере, и в этом качестве предлагаю создать простой веб каталог товаров. В моем случае это будет каталог автозапчастей.
В качестве инструментов, я буду использовать следующие средства разработки и библиотеки.
  • MS Visual Studio 2010
  • ASP.NET MVC 3 – официальный релиз
  • NuGet – менеджер пакетов для Visual Studio
  • MvcScaffolding — генератор кода MVC на основе шаблонов
  • EFCodeFirst — новая возможность Entity Framework CPT5

Читать дальше →

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity