Pull to refresh
0
0
Павел @aracost

User

Send message

Делаем веб-клиент GMail удобным

Reading time3 min
Views52K
Если очень постараться, веб-клиент GMail-а можно довести до состояния, когда им более-менее приятно пользоваться. Вот как он выглядит у меня сейчас:



Под катом рассказ о том, какие особенности и как я использую.
Читать дальше →
Total votes 102: ↑86 and ↓16+70
Comments110

Как положить спасибо в карман

Reading time6 min
Views4.4K
Эссе Джоэля Спольски (Joel Spolsky) о мотивации, о денежных премиях и о том, что делать с сотрудником, если его идея принесла вашей компании миллион долларов. Оригинал статьи на английском языке можно прочитать здесь.

Джоэль Спольски — один из создателей сайта stackoverflow.com и ведущий блога joelonsoftware.com.


Два года назад студент по имени Ноа Вайс (Noah Weiss), проходивший летнюю стажировку в нашей фирме Fog Creek, поделился со мной отличной бизнес-идеей. Он обратил мое внимание на то, что довольно много сайтов IT-тематики размещают платные объявления о вакансиях, и предложил мне делать то же самое на страницах моего блога Joel on Software. По словам Ноа, написать систему показа таких объявлений будет проще простого («Это же просто еще одна таблица в базе!»). А для других продуктов у нас уже были готовые модули для приема банковских карт и генерации платежек, так что проект действительно выглядел несложным.

Но я колебался. До этого я не размещал рекламу в своем блоге, и, честно говоря, вовсе не планировал переводить его в коммерческое русло.

Читать дальше →
Total votes 132: ↑123 and ↓9+114
Comments140

Как быстро и просто написать DSL на Ruby

Reading time14 min
Views19K
Представленный текст является переводом статьи из официального блога компании ZenPayroll. Несмотря на то, что в некоторых вопросах я не согласен с автором, общий подход и методы, показанные в этой статье, могут быть полезны широкому кругу людей, пишущих на Ruby. Заранее извиняюсь за то, что некоторые бюрократические термины могли быть переведены некорректно. Здесь и далее курсивом выделены мои примечания и комментарии.

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

ZenPayroll сейчас создает общегосударственный сервис (реализован уже в 24 штатах), что означает, что мы удовлетворяем множеству требований, уникальных для каждого штата. Поначалу мы заметили, что тратим много времени на написание шаблонного кода вместо того, чтобы сконцентрироваться на том, что делает каждый штат уникальным. Вскоре мы поняли, что эту проблему мы можем решить, используя преимущества создания DSL, чтобы ускорить и упростить процесс разработки.

В этой статье мы создадим DSL, максимально близкий к тому, что мы используем сами.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments26

Настройка Guard для автоматизации Ruby on Rails разработки

Reading time7 min
Views17K
Всем привет! По моему мнению, каждый программист должен стремиться к автоматизации и оптимизации всего, что движется и еще нет. В этой статье будет рассказано о том, как автоматизировать рабочий процесс Ruby on Rails разработчика с помощью Ruby гема под названием Guard. Эта статья в первую очередь полезна Ruby разработчикам, но может пригодиться и другим.

image

Что такое Guard?


Что ж такое-то это?
Total votes 26: ↑26 and ↓0+26
Comments13

Switch to Sketch. Часть 1

Reading time10 min
Views144K


О программе Sketch я узнал еще год назад. Скачал демо тогда еще 2-й версии. Признаться, она меня совершенно не впечатлила. Какой-то слишком простой показалась. Я привык к навороченным интерфейсам софта от Adobe, а расположение панелей в стиле Apple iWork (Pages, Numbers, Keynote) мне по какой-то причине не нравится. К тому же мне оказалось комфортнее работать с темным интерфейсом, каковой нынче есть в Photoshop CC. Плюс Sketch 2 был достаточно кривоватый, содержал немало досадных багов, да и вообще впечатления не оказывал скоростью работы. В общем, поигрался с демкой и благополучно забыл. Впрочем, оказалось, что зря…

Читать дальше →
Total votes 73: ↑68 and ↓5+63
Comments69

Премьера jQuery UI 1.9.0

Reading time3 min
Views32K
image

За последние два с половиной года команда jQuery UI проделала огромную работу. Было выпущено более десятка релизов, исправлено больше 500 багов. Но основная задача была сделать jQuery UI как можно стабильнее, и гибче. В прошлом году мы замахнулись на серьезную цель:
Мы хотим полностью обновить весь проект к версии 2.0. Мы упростим API, улучшим стабильность, документацию, и обеспечим полное тестирование каждого плагина.

И вот сегодня мы рады представить вам первый важный шаг в достижении этой цели — новая версия jQuery UI 1.9.0. Она содержит сотни исправлений, лучшее покрытие тестами, и обновленным API. В добавок, мы развернули новую версию сайта, с улучшенной документацией.
Итак, что вас ждет
Total votes 57: ↑54 and ↓3+51
Comments27

Google’s Mod_Pagespeed вышел из беты

Reading time1 min
Views13K

Для тех, кто как я, не знал, что такое mod_pagespeed — это модуль для Apache, собравший в себе очень много механизмов оптимизации. На страничке приводятся:
  • Оптимизация изображений, их ресайз и компрессия
  • Сращивание и минификация JS и CSS
  • Отложенная загрузка JS и изображений

И многое-многое другое.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments20

Готовим Sublime Text 2 для front-end

Reading time7 min
Views268K
Ни для одного опытного программиста или верстальщика не секрет, что настроенная под себя среда разработки (не в смысле IDE, а в более общем) — жизненная необходимость. Было время, когда я делал очередную верстку в практически голом Notepad++ на единственном мониторе, поочередно открывая Photoshop, браузер и редактор. Сегодня, в эпоху «автоматизации всего», мне сложно представить, как вообще можно было так работать.

Sublime Text 2 — популярный расширяемый кроссплатформенный текстовый редактор, для которого написано множество плагинов если и не на все случаи жизни, то на многие. В этом посте я попытаюсь рассказать как из этого конструктора сложить удобный инструмент front-end разработчика для работы с HTML, CSS и JavaScript.
Читать дальше →
Total votes 107: ↑95 and ↓12+83
Comments134

Управление каналами Nginx Push Module с использованием Ruby

Reading time3 min
Views6.5K
Приветствую всех! Многие разработчики вкурсе про замечательный модуль Nginx Push Module для веб-сервера Nginx. Многие его опробовали, пощупали.

Задача модуля – позволить веб-серверу Nginx выступать в качестве Comet-сервера.

Материала по использованию данного модуля достаточно: хороша официальная страница проекта, описание Basic HTTP Push Relay Protocol, а также многие статьи, например Nginx & Comet: Low Latency Server Push. Однако, во многих руководствах рассматривают лишь базовую конфигурацию модуля с использованием одного общедоступного канала всеми клиентами. Несмотря на огромную полезность, модуль не предоставляет разработчикам гибкое управление каналами, их защиту.

В данной статье я напишу небольшой пример, демонстрирующий возможный способ управления каналами.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments1

Как я использовал gem gon в Групоне

Reading time4 min
Views6.2K
На днях я зарелизил новую версию своего gem Gon – 4.0.0 и решил привести пару примеров его возможностей и использования. Данная библиотека служит для упрощения работы с данными в MVC архитектуре. Она позволяет работать с данными контроллера из JS пропуская шаги перекидывания этих данных через вью. На сегодняшний день существуют реализации гона для RoR приложений, sinatra-like приложений (sinatra, padrino, etc.) и для .Net MVC.

Карта в админке

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

Читать дальше →
Total votes 30: ↑25 and ↓5+20
Comments8

Занимательное функциональное программирование в Ruby

Reading time13 min
Views10K

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

Предположим, что единственный способ представления кода — лямбда-выражение, а единственная доступная структура данных — массив:

square = ->(x) { x * x }
square.(4) # => 16

person = ["Dave",:male]
print_person = ->((name,gender)) {
  puts "#{name} is a #{gender}"
}
print_person.(person)

Это самые основы функционального программирования: функции — единственное, что у нас есть. Давайте попробуем написать что-то более похожее на реальный код в таком же стиле. Посмотрим, как далеко мы сможем зайти без особых мучений.
Читать дальше →
Total votes 67: ↑64 and ↓3+61
Comments20

Sublime Text 2

Reading time12 min
Views306K
Пару месяцев назад я случайно наткнулся на массу положительных отзывов о текстовом редакторе Sublime Text 2. Попробовав его в деле, я не разочаровался. Теперь это мой основной рабочий инструмент.

Sublime Text 2 — это платный текстовый редактор, написанный на C++, который:

  • Работает в Linux, OS X и Windows
  • Обладает приличной скоростью работы
  • Приятным интерфейсом (включая всевозможные анимации)
  • Гибко настраиваем (правда, не в GUI, а в json-конфигах)
  • Имеет множество плагинов, число которых растёт как на дрожжах
  • Поддерживает VIM-режим
  • Использует fuzzy-поиск
Читать дальше →
Total votes 235: ↑208 and ↓27+181
Comments284

Edit-in-place на компонентах Bootstrap

Reading time1 min
Views22K
Привет, Хабр!
В этой статье я коротко расскажу о библиотеке Editable for Bootstrap, позволяющей вводить данные на страницу методом edit-in-place и основанной на компонентах Bootstrap. Я использую ее в админ-части проектов, либо когда нужно оперативно сделать интерфейс с возможностью пользовательского ввода.
Подробности под катом.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments26

Отправляем уведомления Nagios в чат Skype

Reading time4 min
Views5K
Итак, однажды в голову пришла мысль, что было бы здорово получать уведомления от Nagios в skype.
Вкратце: используем Skype4Py, скриптом отправляем уведомления.
Жирный минус: skype не работает без иксов.
Плюс: уменьшение времени реакции на проблемы.

Интересно? Подробности под катом.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments19

Как облегчить себе жизнь в Xcode. Shortcuts, tips&tricks

Reading time2 min
Views60K
image
Эффективная работа в любой IDE, да и не только в IDE, определяется в немалой степени тем, как много вы используете клавиатурных сокращений и всяческих фич, призванных облегчить вашу жизнь.
В этом посте я попытаюсь поделиться тем, что знаю и использую сам, что накопалось в сети но так же очень рассчитываю на вашу помощь. Поделитесь своими находками и трюками. По результатам думаю сделать какой-то PDF, вроде известного Xcode-рам pdf c шорткатами от Colin Wheeler (не знаете? тогда вот линк)
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments24

Знакомство с Active Scaffold

Reading time3 min
Views5.7K
Всем доброго дня! Я вам хочу поведать о замечательном геме (плагине) для Ruby and Rails (практически не нашёл упоминаний о нём на хабре).

Цель данного плагина — предоставить удобный типовой интерфейс «из коробки». С добавлением, удалением, правкой, поиском, сортировкой и всё это с ajax (или без него).



Делается такое чудо, как на рисунке, в несколько простых шагов:

1. Кидаем строчку в Gemfile
gem 'active_scaffold'

2. Устанавливаем gem'ы
bundle install

3. Подключаем стили и скрипты
/* В /app/assets/stylesheets/application.css.scss
 *= require active_scaffold
 */

// В /app/assets/javascripts/application.js
//= require active_scaffold

4. Прописываем в целевом контроллере
class StuffsController < AuditorController
  active_scaffold :stuff
end

Всё! Дальше Active Scaffold сам подхватит соответствующую модель (в примере — Stuff), разузнает о её колонках в таблице БД и связанных моделях, выберет 15 (по умолчанию) первых записей согласно настройкам default_scope в модели (если задано) и представит вам. Так же заодно (кроме отображения HTML) предоставит вам API в форматах JSON и XML.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments13

5 полезных методов jQuery API, о которых вы могли не знать

Reading time2 min
Views55K
В статье я расскажу о пяти методах jQuery, которые я нашел для себя полезными и о которых, по моим наблюдениям, мало кто знает.

Я с jQuery работаю уже около двух лет, но до недавнего времени не использовал эти методы, так как и без них можно обойтись. Но с ними может быть на много легче.
Читать дальше →
Total votes 131: ↑112 and ↓19+93
Comments68

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity