Search
Write a publication
Pull to refresh
0
0
Tony @tony

Ruby on Rails

Send message

Акустические локаторы

Reading time1 min
Views3.6K
Акустическая локация используется для определения местоположения и направления движения тел. В начале XX века был сконстроирован ряд необычных гаджетов, для расширения возможностей человеческого уха, некоторые из которых можно просмотреть под катом.


Сделано чехами в 1920-х г.

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

OAuth: описание протокола простым и понятным языком

Reading time16 min
Views201K
OAuth — популярный протокол, который позволяет социальным сервисам интегрироваться между собой и дает безопасный способ обмена персональной информацией. OAuth может связать между собой 2 сервиса, каждый из которых имеет свою пользовательскую базу — именно их я в данном случае называю «социальными». Когда начинаешь работать с OAuth, первое ощущение — что протокол весьма сложен и избыточен. В этой статье я попытаюсь объяснить основы OAuth человеческим языком.

Пример кросс-авторизации


Вернемся в 2005-й год и представим, что мы пишем социальную сеть. В ней имеется форма импорта контактов из адресной книги GMail. Что нужно для доступа к контактам GMail? Конечно, логин и пароль от ящика. Но если мы попросим ввести их на нашем сайте, пользователь заподозрит неладное. Где гарантия, что мы не сохраняем на сервере введенные пароли? Поэтому нам хочется, чтобы пароль вводился только на сайте GMail, и после этого доступ к контактам через API GMail предоставлялся нашей социальной сети (возможно, на время).
Под катом - повествование с примерами

Легкий способ публикации картинок в FCKeditor + IMCE + Lightbox2

Reading time3 min
Views746
Drupal очень гибок, именно поэтому он нравиться мне. Любую проблему можно решить несколькими путями.

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

В качестве редактора я выбрал FCKeditor, в качестве загрузчика картинок и браузера файлов IMCE.

Теперь о самой проблеме.


Представим, что вы загрузили картинку на сервер, создали её thumbnail и теперь хотите вставить этот thumbnail в ваш пост. Thumbnail при клике на него должен открывать картинку в оригинальном размере, используя для этого модуль Lightbox2.

Делать вручную — неудобно и долго.
На страницах drupal.ru я нашел решение. Решение заключалось в правке FCKeditor. Так что при каждом обновлении пришлось бы заново править все эти файлы.
Поэтому я решил написать свой велосипед, маленький и не очень гибкий. Но подходящий для моего сайта.
Читать дальше →

Космическая стратегия

Reading time3 min
Views1.6K
Space Community

В качестве предисловия



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

Этот проект изначально не планировался для выхода на широкую публику и писался скорее для узкого круга ценителей. Это пошаговая космическая стратегия, выполненная в духе двух своих прародителей — незабвенной Master of Orion и браузерной игры «Разделяй и Властвуй». Однако со временем узкий круг значительно расширился, и в начале июля бета-тест завершился рестартом серверов и началом нового игрового сезона. Благодаря своей нестандартной тематике удалось собрать своеобразное коммунити, которое для меня является главной ценностью этого проекта — как показатель того, что мое хобби интересно и кому то еще.

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

Перемещение курсора в Terminal

Reading time2 min
Views12K
В моем случае, Terminal.app является одним из самых активно используемых приложений в операционной системе. И первое, что кажется неудобным, это реакция на привычные комбинации клавиш, касающиеся перемещения курсора. Поясню на примере графических приложений. Вам наверняка часто приходится работать с редактированием текста, и применять клавиатурные комбинации с использованием стрелок и системных клавиш, для того, что бы передвинуть курсор к началу слова или строки. Так вот вынужден вас разочаровать, но в терминале эти фокусы работать не будут. До тех пор, пока мы не сунемся туда с напильником. За дело.
Читать дальше →

Аналоги Safari Reader для других браузеров

Reading time1 min
Views11K
Как известно, в выпущенном сегодня Safari 5 появилась очень удобная функция — Safari Reader.

Safari Reader

Эта функция предназначена для более удобного чтения новостных статей и записей в блогах. Она убирает всякий визуальный мусор, мещающий чтению, так что перед вами остаётся просто голый текст и ничего больше.

К счастью, этой замечательной функцией можно пользоваться не только в новой версии Safari. Пользователи Google Chrome могут установить расширение «Readability Redux», а пользователи Firefox — аналогичное расширение «Readability». Также можно просто добавить на панель инструментов любого браузера букмарклет, код которого можно получить на странице lab.arc90.com/experiments/readability/.
Читать дальше →

Адаптируем графику под Retina экран

Reading time3 min
Views51K
image
Очень часто мне встречаются сайты которые отвратительно выглядят на iPhone4, и дело даже не в том, что большинство из них не адаптированы под маленький экран, а в том, что разработчики не учитывают новый тип экранов. На иконки не хочется смотреть, на кнопки не хочется нажимать, а от картинок вообще хочется… закрыть сайт. То, что призвано завлечь пользователя на сайт, вникнуть в его суть, а не покинуть его тут же — теперь работает совершенно наоборот. Но пользователи iPhone в целом привыкли к такой ситуации, т.к. телефон не может заменить полноценного браузинга.

Однако, совсем недавно Apple дала нам iPad 3 небольшую фору, для того, чтобы привести дела впорядок. iPad'ом уже пользуются вполне себе полноценно, поэтому сайты должны выглядеть на нем ничуть не хуже, чем на ноутбуке или стационарном компьютере. И я считаю, что iPad 3 — это лишь первый шаг к полноценному внедрению Retina экранов в те же ноутбуки, а за ними и в стационарные мониторы. Apple уже готовит свою OS для Retina, у Windows 8 скорее всего с этим тоже проблем не будет, с их новым подходом в дизайне интерфейсов.
Читать дальше →

Google предлагает стандартизировать автозаполнение форм

Reading time1 min
Views3.7K
Компания Google внедрила в браузер Chrome поддержку экспериментального атрибута autocomplete type и теперь обращается с призывом ко всем веб-мастерам использовать этот атрибут в описании всех онлайновых форм. Просто добавьте его в поле input, например, для email это может выглядеть так:

<input type=”text” name=”field1” x-autocompletetype=”email” />

Таким образом, владелец сайта может гарантировать, что функция Chrome Autofill точно сработает на этом поле.



Google сейчас договаривается с другими заинтересованными сторонами, чтобы стандартизировать данный атрибут как часть спецификаций HTML5. Пока что у него экспериментальный статус, что подчёркивается приставкой x- в полном написании x-autocompletetype.

Нынешний стандарт в данной области RFC 4112 практически нигде не используется и явно нуждается в обновлении.

Расширяем hook_node_info() для настройки комментариев, отображения и прочих вещей

Reading time2 min
Views1.2K
Думаю, многие сталкиваются с подобной проблемой: создаешь с помощью hook_node_info() новый тип контента, но все равно приходится лезть в интерфейс и настраивать в ручную такие параметры, как отображение комментариев, настройки публикации, отображение даты/автора и прочие вещи, которые hook_node_info() не охватывает. А каждый раз использовать костыли типа variable_set — неудобно.
Читать дальше →

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

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

Оформление изображений на CSS3

Reading time8 min
Views70K
При использовании свойств box-shadow или border-radius непосредственно на изображении, браузеры могут некорректно отображать заданные нами CSS стили, из-за чего внешний вид блока будет существенно отличаться от задуманного. Однако если использовать изображение в качестве фона, то этой проблемы можно запросто избежать. Из статьи вы узнаете, как с помощью jQuery сделать идеально закругленные углы у изображений, а так же какие еще способы оформления возможны с помощью таких свойств как box-shadow, border-radius и transition.
Читать дальше →

10 примеров меню для web страниц

Reading time1 min
Views19K
image Эти способы не являются ноу-хау или чем-то в этом духе. Тем не менее, они могут помочь начинающим дизайнерам и web технологам в реализации задуманных ими идей. Каждый из предложенных вариантов можно обыграть по-своему.

Проверял лично и убедился в том, что исправно работает под следующими браузерами:

IE7+, Opera 10.5+, FF 3.6+, Chrome 12+ (linux), Chrome 13+ (windows), Safari 5+(win) исходя из личного опыта, предполагаю о том, что работать исправно будет во всех свежих версиях Safari, FireFox, Opera и Chrome.

С помощью CSS можно построить вот такие вот симпатичные варианты:


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

Видео доклада «Продвинутый мультисайтинг»

Reading time1 min
Views1.5K
Новое видео доклада с DrupalCamp Kyiv, в этот раз от Влада Савицкого о мультисайтинге в Друпале.



И снова спасибо нашему видео-партнеру «Николаевскому курьеру» и Александру Митасову лично.

Drupal + Ajax + Свои шрифты + Flash + PNG = кроссбраузерный сайт

Reading time5 min
Views3.2K
Недавно, передо мной была поставлена задача разработать сайт на Drupal с использованием весомого Flash, фирменных шрифтов и PNG-графики так, чтобы всё это одинаково отображалось в офисных IE6 и других более популярных браузерах. Со всеми технологиями, я работал давно, но и предположить не мог, что всё вместе окажется одной большой головной болью. Но миллион разных частных решений таки привёл меня к общему решению этого длинного уравнения. О чем и собираюсь рассказать в сей статье.
Читать, как реализовано мной...

Как начать работать с GitHub: быстрый старт

Reading time6 min
Views1.3M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →

RVM — подробно

Reading time4 min
Views98K

RVM — Ruby Version Manager
Программа для управления версиями Ruby.

Как быть если один проект использует Ruby 1.8.7, а другой 1.9.2? А что если при этом у вас 2 проекта под версией 1.9.2, но с разными наборами гемов? Хотелось бы вам иметь отдельные наборы gem's для каждого проекта?

Основные задачи:
1. Физическое разделение версий ruby и наборов гемсетов
2. Возможность иметь несколько версий ruby и переключаться между ними
3. Возможность для каждой версии ruby иметь несколько gemsets — наборов gem's и переключаться между ними

Под катом будут описаны:
1. Установка RVM
2. Работа с разными версиями Ruby
3. Работа с gemsets
4. Задание окружения под отдельный проект с помощью .rvmrc
5. Команды RVM которые могут оказаться полезными
6. Шпаргалка по основным командам RVM

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

Инструменты поисковиков для продвижения сайтов

Reading time4 min
Views9.2K
В предыдущих статьях мы рассказали про базовые принципы поисковой оптимизации, при выполнении которых можно достаточно хорошо улучшить позиции своего сайта в результатах поиска.

Сегодня мы хотим рассказать о некоторых дополнительных возможностях, которые вы можете использовать при продвижении своего сайта через инструменты от самих поисковых систем Яндекс.Вебмастер и Google Webmasters.

Данный обзор инструментов идет в продолжение первых двух статей (см часть 1 и часть 2)

Сейчас мы разберем такие важные вопросы как:
  • Присвоение региона сайту
  • Формирование особых сниппетов
  • Обзор самых важных слов сайта
  • Анализ мета-описаний страниц сайта
  • Проблемы индексации
Эти инструменты хорошо известны профессионалам, но далеко не все, кто самостоятельно занимается продвижением своего сайта, знает о них. Эта статья именно для них.
Читать дальше →

Влияние внутренней оптимизации на успешное продвижение сайта в поисковых системах. Часть 1

Reading time7 min
Views16K
Данная статья рассказывает о том, как важно проводить комплексную внутреннюю оптимизацию сайта и что нужно сделать для того, чтобы обеспечить успешное продвижение веб-ресурсов в поисковых системах. Выполненная в соответствие со всеми требованиями поисковиков оптимизация будет являться гарантом хорошей видимости сайта в результатах поиска и, как следствие, стабильного потока целевых посетителей.

Статья рассчитана, прежде всего, на людей, которые занимаются или планируют заняться созданием и продвижением сайта в Интернет, но не знают с чего начать и как вообще все делать правильно. Я расскажу про самые основные шаги, которые нужно совершить в начале пути.
Читать дальше →

Оптимизация сайта. Технологический фундамент. Часть 2

Reading time9 min
Views11K
В прошлой статье мы описали, что нужно сделать для того, чтобы обеспечить успешное продвижение веб-ресурсов в поисковых системах при помощи выполнения базовых требований поисковой оптимизации.

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

Итак, помимо внешних факторов вашего сайта, видимых, что называется, невооруженным глазом (структура, тексты, дизайн) существует целый ряд технических мероприятий, которые нужно проделать с сайтом для его правильной настройки для лучшей индексации поисковиками. Перечислим наиболее важные из них.
Читать дальше →

История про ExecJS или как выполнять джаваскрипт в руби

Reading time4 min
Views3.8K
Допустим, вы пишите крутой вебдванольный проект на рельсах. У вас есть друг Петя — сильный программист на джаваскрипте. Поскольку Петя пишет много и задорно, он решил облегчить себе жизнь и придумал новый язык с красивым и простым синтаксисом, который будет транслироваться в джаваскрипт.
Еще Петя — большой любитель зеленого чая, поэтому назвал он свой новый язык GreenTeaScript.

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

Поскольку и Петя и Вася ни на чем, кроме джаваскрипта, программировать не умели, свои продукты они на нем и написали.

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

Теперь начинается самое интересное.
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity