Pull to refresh
23
0
estarter @estarter

User

Send message

Эти токсичные, токсичные собеседования

Reading time8 min
Views104K


Всё началось, когда автор Ruby on Rails признался миру:

Total votes 205: ↑197 and ↓8+189
Comments734

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Reading time7 min
Views67K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

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

Область применения

Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

SEO под DDoS-ом

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

Стоимость и эффективность

На время атаки придется отказаться от некоторых сервисов вашего сайта. Возможно, придется расширить полосу канала, перенести сайт на более мощный сервер. Эффективность достигается максимизацией коэффициента масштабируемости системы. Обеспечивается быстрое наращивание аппаратных ресурсов при увеличении мощности атаки.
Читать дальше →
Total votes 193: ↑179 and ↓14+165
Comments78

RVM — подробно

Reading time4 min
Views96K

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

Читать дальше →
Total votes 53: ↑48 and ↓5+43
Comments44

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

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

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

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

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

Теперь начинается самое интересное.
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments48

Rails: Хватит отмазываться, начинаем BDD-ить!

Reading time9 min
Views32K

Кто здесь?


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

11:24:21 PM Michael: ну хз, надо пробовать
11:24:24 PM Michael: наверное так лучше
11:24:27 PM Michael: даже я думаю наверняка
11:24:36 PM Michael: но пока меня че-то останавливает
11:24:38 PM Michael: лень наверное :)

Знакомо? «Не хочется разбираться? Нет времени?» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом BDD и начать новую жизнь (опционально).
Поехали!
Total votes 88: ↑77 and ↓11+66
Comments38

jQuery для JavaScript-программистов

Reading time12 min
Views70K
Примечание: ниже расположен перевод статьи «jQuery for JavaScript programmers», в которой автор высказывает свое мнение об этой библиотеке, ориентируясь, в первую очередь, на продвинутых программистов, и приводит несколько десятков примеров ее использования.

Когда jQuery увидела свет в январе 2006, я подумал: «очередная красивая игрушка». Выбор CSS-селекторов в качестве базиса было, конечно, изящной идеей (подробнее о ней в моей заметке getElementsBySelector), но использование цепочек преобразований выглядело немного замысловато, и сама библиотека, по-видимому, не покрывала всех возможных случаев. Я расценивал тогда jQuery только как временное и проходящее решение.

Только несколько месяцев спустя понял я, насколько же ошибался по отношению к ней. jQuery является просто произведением инженерного искусства. Она умело покрывает достаточно широкой диапазон повседневных функций и предоставляет при этом удобный API для расширений, с помощью которых можно добавить любую другую функциональность. Абстрактность в ней заложена на уровне ядра — речь идет о выборе DOM-элементов — и она извлекает из него максимум пользы. И что важнее всего, использование этой библиотеки подразумевает следование хорошему стилю в программировании и хорошо сочетается с другими частями JavaScript-кода.

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

Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments121

jQuery для начинающих

Reading time9 min
Views503K
jQuery Logo

jQuery — это замечательный JavaScript Framework, который подкупает своей простотой в понимании и удобством в использовании. Но изучение надо с чего-то начинать, и лично моё мнение — лучше всего начинать с наглядных примеров, и они далее…

Читать дальше →
Total votes 251: ↑230 and ↓21+209
Comments83

RubyConf08

Reading time15 min
Views760
В ноябре месяце прошлого года прошла конференция RubyConf2008. Она прошла абсолютно мимо славянской части Ruby коммьюнити. Об этой конференции не упоминается практически нигде в укрнете/рунете. Я сам узнал об этой конференции абсолютно случайно из какого-то блога возможно даже не связанного с Ruby.

Я посмотрел одно выступление с этой конференции и мне захотелось его пересказать в виде текста на Хабре. Написав первые два абзаца я посмотрел еще несколько выступлений и понял что они ничем не хуже того, которое я начал пересказывать. Дальше — больше. Я просмотрел еще десяток докладов и понял, что если буду пересказывать все то это займет время до следующей Ruby конференции. Наступив на горло собственной песне я решил поменять формат изложения. Я расскажу обо всех выступлениях по чуть-чуть. Пусть это будет формат похожий на RSS где будет в сжатой форме рассказано о теме выступления, длительности и ключевых словах и понятиях. Такой формат даст понимание того, стоит или не стоит обращать внимание на этот доклад и узнавать подробности или нужно посмотреть какой-то другой.

Отдельным абзацем выделю тот факт, что доклады на английском.

Кому может быть это интересно. В первую очередь рубистам и рельсовикам. Во вторую очередь — программистам из Java вселенной. Некоторые темы могут быть интересны остальным разработчикам.

Для удобства я разделил доклады по группам (докладов в группе):

1)Ruby core (5)
2)На пересечении с Java (4)
3)Автоматическое тестирование (5)
4)Низкоуровневый Ruby (2)
5)Ruby и JavaScript (2)
6)Ruby on Internet (4)
7)Кодоводство (6)
8)Ruby в консоли (2)
9)Доклады несвязанные с Ruby напрямую (3)
10) Разное (2)

Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments12

Живая кулинарная книга: наше кулинарно-программисткое хобби

Reading time3 min
Views2K
Фотографии рецептов за годВсем привет. В этой статье я хочу рассказать про наш небольшой стартап, кулинарный сайт livecookbook.ru, которому буквально несколько дней назад исполнился год. Не спешите листать дальше, этот топик ничем не хуже топиков о продлении жизни или о фотоконкурсах.
Мы не ставили себе целью заполучить максимальную аудиторию (поэтому вы скорее всего про нас не слышали), или заработать много денег. Нашей целью было сделать сайт, которым было бы в первую очередь приятно и удобно пользоваться самому. Мы не бросали работу, не нанимали фрилансеров. Основное рабочее время – ночь, основные помощники – наши друзья, источник большинства идей – собственная фантазия и желание иметь на ужин что-нибудь вкусное.
Читать дальше →
Total votes 83: ↑76 and ↓7+69
Comments147

Еще одна старая ошибка о разных полах на сайте

Reading time1 min
Views604
Старый вопрос о разделении по половому признаку посетителей сайтов.

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

Когда заходишь на страницу пользователя, а этот пользователь — девушка, то там мы видим кнопку "Её". Так-же номер в рейтинге — женского пола ("4913-я в рейтинге хабралюдей"). А если опустить глаза пониже, то видим… "Зарегистрирован: 24 марта 2008 18:57", "Активность: Последний раз был на сайте 30 октября 2008 01:36".

Разработчики, давайте, если уделяем внимание при регистрации половому признаку, то не будем все делать только для мужчин.
Total votes 96: ↑66 and ↓30+36
Comments60

Как выявить медленные SQL запросы?

Reading time2 min
Views92K
Это случалось с каждым из нас при разработке веб-сайтов или приложений, использующих MySQL в качестве базы данных. Производительность внезапно сильно падала, и вы не имели понятия, почему это случилось. Этому могут быть причиной многие факторы (сильная загрузка CPU, нехватка дискового пространства, или слабая пропускная способность канала), но также это может быть и неоптимизированный запрос, выполняемый намного дольше, чем должен.

Как узнать, какие из запросов выполняются дольше всего?
В MySQL есть встроенный функционал для ведения логов медленных запросов.
Узнать, как включить этот функционал
Total votes 34: ↑31 and ↓3+28
Comments57

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity