Pull to refresh
8
0
Send message

Вникаем в метаклассы Ruby

Reading time6 min
Views52K

Примечание переводчика: данный пост является логическим развитием, а точнее «предысторией» поста Вникаем в include и extend и был подсказан в комментариях к нему пользователем murr, за что ему большое спасибо.

Классы и объекты в Ruby связаны между собой достаточно затейливо и не сразу можно понять что к чему. Из-за особого назначения классов очень легко потерять из вида тот факт, что классы — это тоже объекты Ruby. От «обычных» объектов их отличает два вещи: они служат образцом для создания новых объектов и они являются частью иерархии классов. Все верно, классы могут иметь экземпляры себя (объекты), суперклассы (родителей) и подклассы (детей).

Если классы — это объекты, то у них должен быть свой собственный класс. Классом всех классов (как объектов) в Ruby является класс Class:

# один из способов создать новый класс
Dog = Class.new
    
# общепринятый способ создания класса
class Dog
    # какая-то реализация собачьего поведения
end

Dog.class
=> Class

Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments11

Лучшие плагины для Sublime Text

Reading time5 min
Views639K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



Читать дальше →
Total votes 116: ↑114 and ↓2+112
Comments101

Большой апдейт программы f.lux

Reading time1 min
Views40K
После нескольких лет разработки известная программа f.lux наконец-то обновилась до версии 3.9 (без беты). В ней реализовано большое количество новых функций, некоторых из которых очень не хватало раньше.



Напомним, что f.lux — программа, которая изменяет цветовой профиль монитора, в зависимости от времени суток. Ночью устанавливаются тёплые цветовые тона, которые соответствуют искусственному освещению в квартире, днём — холодные, соответствующие дневному свету. Таким образом, глаза гораздо меньше устают, потому что свечение монитора становится более естественным и соответствует окружающей обстановке.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments27

Офис компании Boomburum

Reading time19 min
Views410K
image

Осторожно, трафик! Но можно хотя бы посмотреть картинки )

   Идея создать дома свой «рабочий кабинет» у меня зрела давно – как-то сам дошел до осознания его необходимости, хотя немалый вклад в начинания сделал этот давний пост на Хабре. У меня было своё рабочее место – большой удобный стол, где помещалось практически всё и даже больше… но, по сути, он был проходным двором – все время кто-то ходил, был рядом, отвлекал… такое очень часто мешает сосредоточиться и начать работать. Иногда, бывает, сидишь весь вечер за компом и понимаешь, что абсолютно ничего не сделал, хотя родным заявил «так, мне надо поработать».
Читать дальше →
Total votes 738: ↑625 and ↓113+512
Comments437

+1 компьютер

Reading time16 min
Views24K
   Расскажу о компьютере, который сделал себе для работы. Старался собрать оптимальную конфигурацию, поэтому, возможно, мой выбор пригодится кому-то еще. И совсем скоро — обзор ионного 1201N!

image

Осторожно, трафик!
Читать дальше →
Total votes 314: ↑227 and ↓87+140
Comments465

Спать мало, но правильно?

Reading time7 min
Views897K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →
Total votes 713: ↑670 and ↓43+627
Comments420

Профессиональная эмиграция — Часть 1 — Проблема курицы и яйца и как с ней бороться, а также развенчание мифов

Reading time4 min
Views59K
Здравствуйте, Хабраюзеры.

Этим постом я хотел бы начать цикл (если позволит время и будет интересно аудитории) про профессиональную эмиграцию, особенно без привязки к работодателю.
Читать дальше →
Total votes 228: ↑208 and ↓20+188
Comments337

Распараллеливаем процессы для ускорения вычислений и выполнения заданий в Linux

Reading time11 min
Views80K


Почти все персональные компьютеры, выпущенные за последние несколько лет, обладают как минимум двухъядерным процессором. Если у тебя, читатель, не очень старый комп или не какой-нибудь бюджетный ноутбук, то, вероятнее всего, ты обладатель многопроцессорной системы. А если еще любишь играть в игры, то тебе доступно около сотни GPU-ядер. Однако львиную долю времени вся эта мощь пылится без дела. Попробуем это исправить.
Подробности
Total votes 85: ↑69 and ↓16+53
Comments20

Изучаем внутреннюю кухню ядра Linux с помощью /proc для быстрой диагностики и решения проблем

Reading time13 min
Views66K
Данная статья касается современных линуксов. Например, RHEL6 с ядрами 2.6.3х — подойдёт, а вот RHEL5 с ядрами 2.6.18 (кстати, наиболее популярный в продакшне) — увы, нет. И ещё — здесь не будет описания ядерных отладчиков или скриптов SytemTap; только старые-добрые простые команды вида «cat /proc/PID/xyz» в отношении некоторых полезных узлов файловой системы /proc.

Диагностика «тормозящего» процесса


Вот хороший пример часто возникающей проблемы, которую я воспроизвёл на своём лаптопе: пользователь жалуется, что команда find работает «значительно медленнее», при этом не возвращая никаких результатов. Зная, в чём дело, мы решили проблему. Однако меня попросили изложить систематический подход к решению подобных задач.

К счастью, система работает под управлением OEL6, т.е. на достаточно свежем ядре (а именно — 2.6.39 UEK2)

Итак, приступим к диагностике.
Подробности
Total votes 127: ↑125 and ↓2+123
Comments28

Панель отправка исходящих факсов средствами Asterisk и Node.js

Reading time5 min
Views10K
Факс — это одна из тех вещей, которой многие желают скорейшей смерти. Тем не менее в регионах этот способ передачи информации по прежнему используется очень часто. Так и в нашей организации появилась необходимость по возможности упростить данный процесс. После изучения уже существующих здесь статей я пришел к выводу, что представленные решения не совсем подходят в моей ситуации. В частности, хотелось немного более интеллектуальную систему, чем просто основанную на call файлах. Такую, чтобы она могла перезванивать несколько раз в случае неудачной отправке. При этом пользователь должен видеть текущее состояние доставки. В совокупности с тем, что мне давно хотелось посмотреть на веб-разработку в целом и node.js в частности, было принято решение написать свой велосипед сервер исходящих факсов. Что из этого получилось можно увидеть под катом.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments3

PyFence: верификация типов для Python

Reading time2 min
Views6.9K


PyFence — самопальная утилита-библиотека, которая позволяет следить за соответствием типов во время отладки вашего проекта. PyFence берет информацию о типах из docstring'ов функций в стандартном формате Sphinx. То есть, если у вас уже есть документация, больше ничего делать для использования PyFence не нужно!

Например, возьмем следующий класс:
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments18

ARM ChrUbuntu 12.04 Alpha — портируем Ubuntu на Samsung Chromebook

Reading time1 min
Views18K


«Хромобук» от Samsung и Google привлекает внимание любителей гаджетов всего мира. Программное обеспечение этого нетбука стараются изменять и подгонять под себя. Приверженцы Linux в настоящий момент пытаются установить Linux на Chromebook, причем так, чтобы работало все и сразу. Пока что добиться идеальной работы дистрибутивов LInux на указанном нетбуке не получается, но успехи есть. Значительным успехом можно назвать портирование Ubuntu на Chromebook с ARM.

Читать дальше →
Total votes 21: ↑13 and ↓8+5
Comments7

Chromebook в России

Reading time2 min
Views41K
Вчера на Google Mobile Day было объявлено об официальном начале продаж в России нового вида компьютеров — хромбуков.



Хромбук предназначен в первую очередь для работы с интернет-браузером (само собой Google Chrome) и Google Docs. Данные пользователя хранятся «в облаке» на серверах Google.

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

Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments77

Пишем красивый идиоматический Python

Reading time4 min
Views112K

Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.

Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
Читать дальше →
Total votes 125: ↑99 and ↓26+73
Comments71

aptitude vs apt. 5 причин, почему я использую aptitude

Reading time2 min
Views73K
Пять параметров, по которым aptitude превосходит (по четвертому параметру не уступает) apt:

1. Логичность синтаксиса. И единство управления.
2. Гибкость поиска.
3. Проставление меток пакетов.
4. Разрешение зависимостей.
5. Интерфейс.

наглядно и с картинками
Total votes 137: ↑118 and ↓19+99
Comments92

Мониторинг состояния Asterisk с помощью MonAst

Reading time10 min
Views62K
Поиск удобного решения по мониторингу нескольких серверов Asterisk привел к замечательному инструменту:
Monast Logo

Осмотр возможностей


MonAst позиционируется разработчиками как инструмент мониторинга, который действует как панель оператора для Asterisk. Распространяется по лицензии BSD. Проект написан с использованием Python (демон для связи с Asterisk по AMI), PHP, JS (AJAX).
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments15

Мой опыт работы с Webrtc

Reading time2 min
Views15K
Привет, хабралюди

В этом топике я хочу рассказать вам о моем опыте работы с SIP телефонией через webrtc. Рассказать о том, с какими проблемами встречался, какой софт я пробовал, какие костыли писал :).

Что было использовано:


  • Asterisk 11.5.1
  • GSM шлюз
  • SipML5

Читать дальше →
Total votes 10: ↑6 and ↓4+2
Comments7

Большие потоки трафика и управление прерываниями в Linux

Reading time4 min
Views63K
В этой заметке я опишу методы увеличения производительности линуксового маршрутизатора. Для меня эта тема стала актуальна, когда проходящий сетевой трафик через один линуксовый маршрутизатор стал достаточно высоким (>150 Мбит/с, > 50 Kpps). Маршрутизатор помимо роутинга еще занимается шейпированием и выступает в качестве файрволла.
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments42

Что на самом деле означает сверхурочная работа?

Reading time4 min
Views49K
imageВ технологическом и дизайнерском бизнесе много людей работает сверхурочно, например, более 70 часов в неделю. Все это основано на каком-то комплексе великомученика. Но давайте посмотрим на все трезво. Вот что на самом деле означает сверхурочная работа:

Вы работаете бесплатно
Если вы наемный работник, то работаете бесплатно. Каждый час свыше 40 часов в неделю не приносит вам ни копейки. [1]

Сверхурочная работа способствует необоснованным и неразумным ожиданиям
Клиенты и боссы будут всегда ожидать от вас тех темпов проектирования и разработки, которые обычно включают в себя сверхурочные часы.
Читать дальше →
Total votes 84: ↑71 and ↓13+58
Comments56

Профилирование и отладка Python

Reading time7 min
Views40K

Некоторое время назад я рассказывал о «Профилировании и отладке Django». После выступления я получил много вопросов (как лично, так и по email), с парой новых знакомых мы даже выбрались в бар, чтобы обсудить важные проблемы программирования за кружечкой отменного эля, со многими людьми я продолжаю общаться до сих пор.



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


Welcome!
Total votes 70: ↑61 and ↓9+52
Comments14

Information

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