Как стать автором
Обновить
5
0

Пользователь

Отправить сообщение

Sanyo Eneloop PRO и Sanyo ENELOOP PLUS

Время на прочтение2 мин
Количество просмотров36K
Не успел мир оценить по достоинству новые аккумуляторы Eneloop XX, как компания Sanyo подготовила ещё несколько сюрпризов в этом году… встречайте новинки — аккумуляторы с низким саморазрядом типоразмера AA - Sanyo Eneloop PRO и Sanyo Eneloop PLUS

image

Читать дальше →
Всего голосов 17: ↑9 и ↓8+1
Комментарии18

Немного про Bash и смежные науки. Часть 1

Время на прочтение5 мин
Количество просмотров1.7K
Если вы активно используете Linux для администраторских задач, то наверняка заглядываете время от времени в консоль (или живёте в ней). Несмотря на активное вытеснение текстового интерфейса графическим, а тыкать галочки и нажимать на кнопочки всё-таки интуитивнее, что породило целое поколение эникейщиков, консоль была, есть и будет эффективным средством общения с компьютером. Данная статья рассчитана на тех, кто уже как бы знаком с Bash (Bourne-again Shell), самой популярной реализацией командной оболочки. Этот терминал уже много лет используется по умолчанию чуть ли не в каждом дистрибутиве Linux, так что новички даже не догадываются, что бывают и другие оболочки. Bash пронизан мудростью наших UNIX-предков и всячески рекомендуется для освоения. Сейчас вы увидите, что консоль бывает полезна не только для команд вида «sudo /etc/rc.d/network restart» :)
Да ну?
Всего голосов 40: ↑32 и ↓8+24
Комментарии38

Почтовая кухня #1: DNS

Время на прочтение3 мин
Количество просмотров69K
Думаю, многим будет интересно наконец-то узнать, как работает почта. В нескольких статьях я попытаюсь максимально простым языком расписать все основные вопросы, связанные с работой электронной почты вообще и нужными настройками — в частности.

Часть 1 - DNS.
Всего голосов 97: ↑93 и ↓4+89
Комментарии76

Оптимизация любимой Ubuntu/Gnome/ПО

Время на прочтение8 мин
Количество просмотров6.5K
Оригинал vasilisc.com/speedup_ubuntu

Пока осваивал Убунту, перечитал множества статей об ускорении Убунту, как в плане загрузки, так и работы вообще.

Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии18

JS tips

Время на прочтение1 мин
Количество просмотров401
Алгоритм получение результата А && B

Если операнд A истинный (true, «string», someObj), результатом является B, иначе — А.
То бишь код:

if (a) {
return a.member;
} else {
return a;
}


Может быть заменен на более компактный:

return a && a.member;

Алгоритм получение результата А || B

Если операнд A истинный, результатом является A, иначе — B.
Эта особенность может быть использована для присвоения дефолтных значений переменным:
last = input || default_value;

Создание объекта на лету

obj = {fieldName: "a"}; — объект с полем fieldName
Всего голосов 34: ↑18 и ↓16+2
Комментарии9

Логика английских времен

Время на прочтение6 мин
Количество просмотров72K
Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
Читать дальше →
Всего голосов 196: ↑173 и ↓23+150
Комментарии202

Восстановление битых пикселей ЖК

Время на прочтение1 мин
Количество просмотров129K
Сомневался в успешности метода, а также в том, что мой вечно салатовый пиксель, застывший полгода назад и постоянно мозоливший мне глаз, «станет на место». Но…
О чудо, помогло!
screenshot

Читать дальше →
Всего голосов 143: ↑142 и ↓1+141
Комментарии144

Эти замечательные VPN или о чём нужно помнить пользователям shared-ресурсов.

Время на прочтение3 мин
Количество просмотров2.8K
Вводная информация:
Провайдером мне предоставлен «доступ к сети с использованием технологии ADSL». Я являюсь пользователем Fedora Core 6. Эта операционная система постепенно выживает winXP с моего компьютера, не исключено, что скоро на большем из двух дисков тоже поселится какой-нибудь дистрибутив GNU Linux.

«Доступ к сети...» хорошо звучит, верно? И он на самом деле есть – внутри виртуальной частной сети провайдера можно поднять, к примеру, http-, irc- (что я и сделал) сервера. Можно и другие, но это менее актуально (трафик внутри сети тарифицируется, значит ftp отпадает, а что такое jabber мало кто из «подключенцев» слышал). Конечно динамический ip вносит некоторую долю неудобства, но в своем чате как-то приятней общаться.
Но речь пойдёт не об этом. Решил я как-то забить в адресную строку Konqueror`а что-то вроде smb://192.168.240.* (local ip address по версии pptpconfig или inet addr по версии ifconfig, по сути – динамические ip-адреса в виртуальной частной сети). С четвёртой попытки я получил возможность лицезреть shared-ресурсы другого компьютера. «Расшарены» они были, судя по всему, из расчёта, что их будут видеть пользователи локальной сети одного квартала. Увы, скорость соединения и тот факт, что трафик внутри сети тарифицируется (выяснил опытным путём – скачав какой-то mp3-файлик) не позволяли набить свой винт шедеврами советского кинематографа. Как же найти другие ресурсы? Ручной перебор – это долго и малоэффективно… Поскольку подключался я по протоколу Samba, значит в эту сторону и надо копать… ...man samba и почти сразу же натыкаемся на утилиту nmblookup. nmblookup -A позволяет просканировать машину с указанным ip на предмет shared-ресурсов (и ресурсов samba тоже). Если ввести несколько ip через пробел, то nbmlookup проверит их все. Поскольку я так и не разобрался как задать маску, то пришлось написать небольшой скриптик, выводящий интересующий меня диапазон адресов:
#!/bin/bash
for i in `seq 0 255`;
do
nmblookup -A 192.168.240.$i
done
Должен заметить, что на скорости 128kB/s сканирование 256-и ip занимает несколько минут. Первый поиск дал примерно полтора десятка машин. В их число попали несколько серверов с фильмами/музыкой/варезом для локальных сетей, и несколько компьютеров предприятий. На следующий день «попался» компьютер предприятия, на котором админил мой друг. Дело в том, что из-за проблем с программой типа банк-клиент, 2 машины его сети не были прикрыты прокси и были напрямую подключены к adsl-роутеру. Поскольку права сотрудников не были должным образом ограничены, то они пооткрывали диски друг для друга. Рабочие документы, базы данных, переписка, фотографии – всё открыто.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии67

Да, но кто сказал, что они купят это?

Время на прочтение5 мин
Количество просмотров82K
Продолжение перевода серии статей «5 уроков просмотра стартапов»,
прошлая статья Настоящие нечестные конкурентные преимущества


На сотнях стартап питчей в Capital Factory, не нашелся и десяток людей, которые были бы готовы сказать «если вы создадите этот продукт, я дам вам X долларов».



Задумайся над этим: сотни людей готовы уволиться с постоянной работы, потратить свои сбережения, рискнуть личной репутацией, трудиться 70 часов в неделю, пережить такой же стресс, как и рождение ребенка (поверьте мне, я испытал рождение и ребенка, и стартапов)… и все это при том, что нет жалкого десятка людей, действительно готовых заплатить за то, что предлагают стартаперы.

Недальновидно, не правда ли?
Читать дальше →
Всего голосов 75: ↑60 и ↓15+45
Комментарии60

11 важных вещей, которые нужно знать про DevOps — часть первая

Время на прочтение9 мин
Количество просмотров303K

От переводчика


В 2009 года за рубежом возникло движение, которое назвало себя DevOps. На первый взгляд это разработчики с навыками сисадминов и сисадмины с навыками разработчиков. Но на самом деле это отнюдь не так. Данное подход имеет четкие цели, философию, инструменты и методы, которые только некоторые русскоязычные компании начинают использовать. Мне кажется, что данный подход у нас незаслуженно игнорируется и мне хотелось бы рассказать об 11 вещах, которые нужно знать о DevOps, в частности:
  • что такое DevOps
  • каковы его ценности
  • как он внедряется
  • кому он приносит пользу

Надеюсь, этот текст вам понравится.

Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии11

Яндекс.Диск как файловая система

Время на прочтение1 мин
Количество просмотров143K

Недавно Яндекс анонсировал свой новый сервис, подобный DropBox'у. Многие его сразу же начали поливать из ведра, хотя, я думаю, зря.

Один из плюсов лично для меня, линуксоида — не нужно устанавливать дополнительные приложения, как в случае с DropBox'ом. Сервис можно подключить через файловый менеджер Nautilus, используя WebDAV. Что я, собственно, сразу же и сделал.

Однако, я не стал на этом ограничиваться, ведь гуёвый доступ — не совсем хорошо, консольки никто не отменял.

Подключим Яндекс.Диск как файловую систему
Всего голосов 118: ↑98 и ↓20+78
Комментарии181

Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер

Время на прочтение4 мин
Количество просмотров28K



Если кто не знает, Time Machine — это такой замечательный бэкап-сервис из коробки для Apple OS X, тут и тут можно почитать поподробнее. Если у вас есть мак, и вы не пользуетесь «машиной времени», то это совершенно напрасно. Time Machine делает постоянные дифференциальные бэкапы, поэтому она удобна даже в случае прекрасной жизни ваших HDD / SSD. Можно в любой момент открутить назад историю и восстановить случайно удаленный файл, или, что еще важнее, предыдущую версию измененного файла.

Предполагается, что пользователи будут использовать либо обычный жесткий диск, либо специальный сетевой девайс Time Capsule. Традиционный внешний жесткий диск — решение для очень организованных людей, которые регулярно (хотя бы ежедневно) будут его подключать для автоматического бэкапа, иначе польза от тайм машины будет весьма ограничена (хотя прошлогодний бэкап все же лучше, чем совсем ничего). С тайм-капсулой будет гораздо удобнее и надежнее. Кроме функции бэкапа, она может выполнять еще и функцию сетевой шары, раздачи Wi-Fi (фактически Time Capsule — это Wi-Fi роутер с HDD). Но устройство стоит денег, и оно не такое универсальное. Мне захотелось прикрутить на свой сервер работающий на Ubuntu возможность делать бэкапы тайм-машиной. И это не так сложно, о чем и будет эта заметка.

Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии33

Внутренности jQuery. Поиск кода, выполняемого по событию

Время на прочтение4 мин
Количество просмотров25K
Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

Клиентского кода в веб-приложениях с каждым годом действительно становится все больше. Подчас это десятки файлов с сотнями функций. И что делать, когда нам нужно поменять код, выполняемый по событию (например, клик по ссылке). Как его найти? Задавшись решением этой задачи, я придумал несколько разных вариантов. Каждый из них имеет свои плюсы и минусы. И в конце статьи я предлагаю метод, который мне кажется оптимальным.
Читать дальше →
Всего голосов 132: ↑125 и ↓7+118
Комментарии34

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

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

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

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

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

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

SEO под DDoS-ом

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

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

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

17 простых советов для повышения продуктивности

Время на прочтение3 мин
Количество просмотров33K
Эти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.

Вступление окончено, переходим к советам!
Читать дальше →
Всего голосов 180: ↑152 и ↓28+124
Комментарии116

Rails custom Scaffolding

Время на прочтение4 мин
Количество просмотров26K

Наверное каждый в начале работы с ROR был впечатлен возможностью Scaffolding'а, который позволяет одной командой создавать migrations, controllers, models и views.

Но что делать если в своем проекте вы используете не стандартные Rails утилиты: erb, Test::Unit, fixturies, а сторонние инструменты: Haml, Rspec, Cucumber, Factory Girl и более того, хотите добавить собственные шаблоны?

Интересно? GOTO next line.

Исходные данные:
Ruby on Rails; Rspec; will-paginate; Haml; Factory-girl

Задача:
% rails generate scaffold post post:string
Генерирует:
  1. contoller's с поддержкой will_paginate, русскоязычными сообщениями
  2. model's с поддержкой will_paginate
  3. view's с заданным нами содержимым и в формате haml
  4. Rspec тесты, вместо Test::Unit
  5. Factory Girl factories вместо стандартных fixtures

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии26

Использование Deferred объектов в jQuery 1.5

Время на прочтение6 мин
Количество просмотров37K
Deferred объекты появились в jQuery 1.5. Они позволяют отделить логику, которая зависит от результатов выполнения действия от самого действия. Для JavaScript Deferred объекты не новы, они уже были в MochiKit и Dojo, но с изменениями логики jQuery ajax от Julian Aubourg, внедрение Deferred объектов было неминуемо. С Deferred объектами несколько callback могут быть связаны с результатом задачи и любые из них могут быть привязаны к действию даже после начала его выполнения. Выполняемая задача может быть асинхронна, но не обязательно.

Deferred объекты теперь встроены в $.ajax() таким образом вы будете получать их автоматически. Обработчики теперь могут быть связаны с результатом следующим образом:
// $.get, ajax запрос, он асинхронный по умолчанию
var req = $.get('foo.htm')
   .success(function( response ){
      // что-нибудь делаем с ответом
   })
   .error(function(){
      // делаем что-нибудь если запрос провалился
   });
 
// это выполнится перед тем как $.get() будет выполнено
doSomethingAwesome();
 
// Делаем что-то ещё перед завершением запроса
req.success(function( response ){
   // делаем  что-то ещё с ответом
   // он будет выполнен когда запрос завершится, а если запрос завершен, то будет вызван немедленно
   // если запрос уже был выполнен
});

Читать дальше →
Всего голосов 116: ↑113 и ↓3+110
Комментарии19

Правильный захват контекста в Javascript

Время на прочтение5 мин
Количество просмотров37K
Довольно часто во многих статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись?
var self this;
Может вам тоже стоит переосмыслить этот аспект?
Читать дальше →
Всего голосов 113: ↑87 и ↓26+61
Комментарии147

Ruby on Rails 3 — Заметки к финальному релизу

Время на прочтение19 мин
Количество просмотров5.6K

Оглавление

  1. Переход на Rails 3.0
    • Rails 3 требует Ruby 1.8.7+
    • Объект Application в Rails
    • script/* заменен на script/rails
    • Зависимости и config.gem
    • Процесс перехода
  2. Создание приложения на Rails 3.0
    • Включение гемов
    • Жизнь на грани
  3. Архитектурные изменения
    • Перезарядка Railties
    • Все компоненты ядра Rails теперь независимы
    • Абстракция Active Model
    • Абстракция контроллеров
    • Интеграция Arel
    • Извлечение Mail
  4. Документация
  5. Интернационализация
  6. Railties
  7. Action Pack
    • Абстрактный контроллер
    • Action Controller
    • Action Dispatch
    • Action View
  8. Active Model
    • Абстракция ORM и интерфейс c Action Pack
    • Валидации
  9. Active Record
    • Интерфейс запросов
    • Усовершенствования
    • Патчи и устаревшие методы
  10. Active Resourсe
  11. Active Support
  12. Action Mailers
  13. О создателях
Читать дальше →
Всего голосов 109: ↑99 и ↓10+89
Комментарии57

Многопоточность в Ruby

Время на прочтение9 мин
Количество просмотров37K
Перевод главы «Multithreading» книги David Thomas и Andrew Hunt «Programming Ruby: The Pragmatic Programmers' Guide, Second Edition».

Часто самым простым способом выполнить одновременно две вещи является использование потоков в Ruby. Они являются внутрипроцессными, встроенными в интерпретатор Ruby. Это делает потоки Ruby полностью переносимыми, т.е. независимыми от операционной системы. Но в то же время вы точно не получите выгоду от использования родных, нативных потоков. Что это значит?

Вы можете столкнуться с голоданием (thread starvation — это когда поток с маленьким приоритетом не имеет шанса запуститься). Если вы хотите заблокировать ваши потоки, то со скрежетом остановится целый процесс. А если возникнет ситуация, что некоторые потоки будут посылать вызовы операционной системе, для выполнения которых требуется немалое время, то все потоки будут висеть, пока интерпретатор не получит контроль обратно. И наконец, если ваша машина имеет больше одного процессора, потоки Ruby не будут это использовать, т.к. они запускаются в одном процессе, а в одиночном родном потоке они будут вынуждены запускаться на одном процессоре единовременно.

Все это звучит страшновато. Тем не менее, на практике во многих случаях выгода от использования потоков во многом перевешивает любые потенциальные проблемы, которые могут возникнуть. Потоки Ruby являются эффективным и легким путем достижения параллельности в вашем коде. Вы просто должны понять основные проблемы реализации, и, соответственно, архитектуру.
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии30

Информация

В рейтинге
Не участвует
Откуда
Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность