Mac OS X очень красивая ось со множеством полезностей и до безобразия легкая в управлении и использовании даже при установках и настройках по умолчанию — это факт. Но меня интересуют эффективность и, если можно так выразиться, просторы в использовании всей ОС. Это меня и побудило написать данный пост и подробно изложить, что я делаю для повышения КЭ* при работе на моем 12«вым iBook. Также этот пост и мои навыки могут оказаться полезными свитчерам, только что купившим свой первый mac. Итак, от слова к делу.
Emacs. Полезности и трюки
это мой первый пост на хабре и в блогах вообще, так что не судите строго. emacs — это чудо-конструктор, из него можно слепить практически всё что угодно (или возможно). и чем больше вы с ним работете, тем больше вы ощущаете его безгранность и мощь. здесь вам и почтовый клиент, и джаббер, и шелл, универсальная среда для разработки, файловый менеджер, игры… этот список можно продолжать и дополнять.
первый запуск emacs' вам не покажет ничего особенного, но как только у вас возникнет проблема или неудобство, вы объязательно найдете решение (если конечно захотите). в этом посте я покажу вам некоторые вещи, которые помогли мне и, надеюсь, помогут вам. заранее предупреждаю, что некоторые функции из тех что я перечислю ниже, написаны не мною и выражаю благодарность их авторам за то что они сделали.
первый запуск emacs' вам не покажет ничего особенного, но как только у вас возникнет проблема или неудобство, вы объязательно найдете решение (если конечно захотите). в этом посте я покажу вам некоторые вещи, которые помогли мне и, надеюсь, помогут вам. заранее предупреждаю, что некоторые функции из тех что я перечислю ниже, написаны не мною и выражаю благодарность их авторам за то что они сделали.
Tips & Tricks для iPhone
iPhone 3G буквально пару недель назад начал продаваться официально в России.
Новости про iPhone и технические обзоры про него уже сидят поперек горла.
Поэтому я решил написать статью, которая принесла бы реальную пользу пользователям iPhone.

Вы узнаете…
— как перезагрузить зависший iPhone
— где найти инструкцию на русском языке к iPhone
— как грамотно сделать рингтон
— как отслеживать новые программы/игры в AppStore и покупать их дешево
— как добавлять закладки в Delicious в Safari на iPhone.
Новости про iPhone и технические обзоры про него уже сидят поперек горла.
Поэтому я решил написать статью, которая принесла бы реальную пользу пользователям iPhone.

Вы узнаете…
— как перезагрузить зависший iPhone
— где найти инструкцию на русском языке к iPhone
— как грамотно сделать рингтон
— как отслеживать новые программы/игры в AppStore и покупать их дешево
— как добавлять закладки в Delicious в Safari на iPhone.
Кастомизация Photoshop
Фотошоп использую постоянно. Для творческих целей — раз. И по работе, при вёрстке сайтов — два.
Изучал программу с интересом. Нашел много книг. Но только ту, которая всё изменила, могу порекомендовать каждому: Photoshop CS Killer Tips by Scott Kelby & Felix Nelson.
Уровень профессионализма повышает значительно. За счет клавишных сокращений и особых приемов скорость возрастает очень сильно. Но по-настоящему удобным PS становится после собственноручной
Изучал программу с интересом. Нашел много книг. Но только ту, которая всё изменила, могу порекомендовать каждому: Photoshop CS Killer Tips by Scott Kelby & Felix Nelson.
Уровень профессионализма повышает значительно. За счет клавишных сокращений и особых приемов скорость возрастает очень сильно. Но по-настоящему удобным PS становится после собственноручной
Закрепляем jQuery — 25 отличных советов
Перевод
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.
Далее все написано от имени автора оригинальной статьи.
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Далее все написано от имени автора оригинальной статьи.
Введение
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Содержание
- Загружайте фреймворк с Google Code
- Используйте «шпаргалку» (cheat sheet)
- Соединяйте все ваши скрипты и уменьшайте размер файла
- Используйте возможности Firebug для ведения логов
- Минимизируйте операции выборки в пользу кэширования
- Сводите манипуляции с DOM-деревом к минимуму
- Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
- Используйте «id» вместо классов, где это возможно
- Задайте контекст своим селекторам
- Используйте последовательности вызовов методов с умом
- Научитесь правильно использовать анимацию
- Научитесь назначать и делегировать события
- Используйте классы для сохранения состояния
- Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
- Пишите собственные селекторы
- Подготавливайте HTML и модифицируйте его, когда страница загружена
- Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
- Используйте служебные функции jQuery
- Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
- Как узнать что картинки загружены?
- Всегда используйте последнюю версию
- Как проверить, что элемент существует?
- Добавляйте класс «JS» в элемент «html»
- Возвращайте «false» для отмены поведения по-умолчанию
- Короткая запись для события готовности документа
8 отличных хитростей jQuery
Перевод

«Скрытые» полезности С#
Предлагаю мой вольный перевод вопроса с stackoverflow, который мне показался полезным и сидит в фаворитах. Что-то я взял с MSDN (в основном вырезки из русской редакции), что-то -с блогов.
Все мы, С# разработчики, знаем базовые комманды C#. Я имею ввиду объявления, условия, циклы, операторы и т.д.
Некоторые из нас знают даже про Generics, anonymous types, lambdas, linq,…
Но, каковы реально скрытные возможности и трюки C#, про которые даже фанаты и эксперты не всегда знают?
Все мы, С# разработчики, знаем базовые комманды C#. Я имею ввиду объявления, условия, циклы, операторы и т.д.
Некоторые из нас знают даже про Generics, anonymous types, lambdas, linq,…
Но, каковы реально скрытные возможности и трюки C#, про которые даже фанаты и эксперты не всегда знают?
Делаем файлы сценариев исполняемыми
По долгу службы часто приходится писать сценарии (shell scripts) для автоматизации рутинных задач. После сохранения файла каждый раз необходимо давать ему право на исполнение. Подобную задачу также можно автоматизировать непосредственно средствами редактора.
Открываем/создаем файл ~/.vimrc и вносим в него следующую строку:
Открываем/создаем файл ~/.vimrc и вносим в него следующую строку:
au BufWritePost * if getline(1) =~ "^#!" | if getline(1) =~ "/bin/" | silent !chmod a+x | endif | endif
Приведенная директива проверяет первую строку сохраняемого файла и, если она начинается с "#!" и содержит "/bin/", присваивает последнему исполняемый атрибут.
Источник: shell-fu.
10 вещей, которые вы (возможно) не знали про App Engine
Перевод
Что может быть лучше, чем описание девяти классных фишек App Engine? Разумеется, описание десяти. Участвуя в обсуждениях в группах, мы заметили, что некоторые возможности App Engine часто остаются незамеченными, так что мы выбрали чуть меньше, чем одиннадцать интересных фактов, которые, возможно, просто позволят вам писать программы по другому. Но довольно слов, смотрим первую фишку:
Выполняем sudo при записи
В дополнение к предыдущей заметке "Делаем файлы сценариев исполняемыми"...
В практике системного администратора иногда случается так, что начинаешь править какой-либо сценарий, автоматизирующий процесс резервного копирования, например, а в конце концов выясняется, что не хватает прав на запись в данный файл, который, возможно, принадлежит пользователю root. Чтобы не сильно изворачиваться в подобной ситуации, сохранение изменений производим командой
Вопросы безопасности в данном случае находятся в рамках sudo.
В практике системного администратора иногда случается так, что начинаешь править какой-либо сценарий, автоматизирующий процесс резервного копирования, например, а в конце концов выясняется, что не хватает прав на запись в данный файл, который, возможно, принадлежит пользователю root. Чтобы не сильно изворачиваться в подобной ситуации, сохранение изменений производим командой
:w !sudo tee %
Вопросы безопасности в данном случае находятся в рамках sudo.
Tips & Tricks: изменяем User Agent в iPhone
Как известно, User Agent необходим для «идентификации» пользователя, а конкретнее, для определения, каким клиентом или через какое устройство заходит пользователь к вам на сайт. В зависимости от этого, можно «подставлять» необходимый контент (данные, разметку). Это актуально в последнее время по причине большого роста мобильных устройств.
В продолжении темы iPhone Dev Tips & Tricks расскажу о том, как поменять User Agent на «iPhone».
В продолжении темы iPhone Dev Tips & Tricks расскажу о том, как поменять User Agent на «iPhone».
Windows Mobile: проблемы с фокусом в ImageButton
Всем доброго дня!
Проблема следующая: требуется элемент управления ImageButton для Windows Mobile Application, который совмещал бы поведение элементов управления Button и PictureBox.
Варианты ImageButton:
1. Использовать элемент управления Button. Проблема: отсутствие свойства Image как в WinForms аналога.
2. Использовать элемент управления PictureBox, который поддерживает событие OnClick. Проблема: PictureBox не поддерживает метод Focus (а также его наследники), Справедливости ради надо сказать, что программно можно вызвать этот метод, но визуально это никак не будет заметно. Кроме того, мы не можем переключаться с помощью таба между несколькими элементами управления типа PictureBox.
3. Унаследоваться от Button и попробовать реализовать свойство Image самостоятельно. Этим способом у меня не получилось добиться желаемого результата.
4. Унаследоваться от Control и реализовать свою логику отрисовки элемента управления, как это рекомендует делать Mictrosoft. Проблема: не прорисовывается рамка фокуса. Именно эту проблему мы и попробуем решить.
Проблема следующая: требуется элемент управления ImageButton для Windows Mobile Application, который совмещал бы поведение элементов управления Button и PictureBox.
Варианты ImageButton:
1. Использовать элемент управления Button. Проблема: отсутствие свойства Image как в WinForms аналога.
2. Использовать элемент управления PictureBox, который поддерживает событие OnClick. Проблема: PictureBox не поддерживает метод Focus (а также его наследники), Справедливости ради надо сказать, что программно можно вызвать этот метод, но визуально это никак не будет заметно. Кроме того, мы не можем переключаться с помощью таба между несколькими элементами управления типа PictureBox.
3. Унаследоваться от Button и попробовать реализовать свойство Image самостоятельно. Этим способом у меня не получилось добиться желаемого результата.
4. Унаследоваться от Control и реализовать свою логику отрисовки элемента управления, как это рекомендует делать Mictrosoft. Проблема: не прорисовывается рамка фокуса. Именно эту проблему мы и попробуем решить.
Русификация Windows 7 Professional
Наконец-то дошли руки поставить и посмотреть Windows 7. Поскольку ВУЗ подключен к программе MSDN Academic Alliance, то я решил не пиратствовать, а честно поставить предоставляемую по программе Windows 7 Professional. С русской локализацией она не доступна, потому ставил английскую. В придачу скачал Language Pack со всеми доступными языками.
Видеть родной русский интерфейс привычнее, потому уже начал потирать руки и искать как поставить скачанный Language Pack. Но тут то и возникла проблема… поставить его можно лишь на Ultimate или на Enterprise.
Видеть родной русский интерфейс привычнее, потому уже начал потирать руки и искать как поставить скачанный Language Pack. Но тут то и возникла проблема… поставить его можно лишь на Ultimate или на Enterprise.
12 советов по созданию макетов в браузере
перевод статьи: 12 Killer Tips for Designing in the Browser

Обычный проект начинается с создания макета в Фотошопе и потом с использованием HTML и CSS максимально приближается к виду исходного PSD файла. Не смотря на это, развивается направление в веб-дизайне пропускающее этап Фотошопа в пользу создания первоначальной композиции прямо в браузере с использованием вашего любимого редактора. Я уверен, что прямо сейчас Ваша голова шумит от причин, по которым этот подход ограничит ваш дизайн, но есть огромное количество вещей, которые Вы можете делать в браузере. Эта статья познакомит с инструментами и приемами, которые понадобятся для создания великолепных работающих макетов на первом же этапе работы.
Meagan Fisher на 24ways.org представил неотразимый довод проектирования в браузере. Хотя я и не разделяю его презрение к Фотошопу (Я люблю Фотошоп больше любого другого ПО на планете), я согласен с некоторыми другими его пунктами. Фишер говорит, что статическое изображение не дает по настоящему ощутить, как сайт будет работать и что проектирование в браузере направляет твои силы на организацию контента до дизайна, что гарантирует большее удобство и создание правильной структуры
Мы будем использовать статью Фишера как затравку для наших заметок по превращению в профессионала в создании фантастических in-browser макетов готовых к работе сразу по получению одобрения от клиента.

Как Вы создаете макет сайта?
Обычный проект начинается с создания макета в Фотошопе и потом с использованием HTML и CSS максимально приближается к виду исходного PSD файла. Не смотря на это, развивается направление в веб-дизайне пропускающее этап Фотошопа в пользу создания первоначальной композиции прямо в браузере с использованием вашего любимого редактора. Я уверен, что прямо сейчас Ваша голова шумит от причин, по которым этот подход ограничит ваш дизайн, но есть огромное количество вещей, которые Вы можете делать в браузере. Эта статья познакомит с инструментами и приемами, которые понадобятся для создания великолепных работающих макетов на первом же этапе работы.
Основная идея
Meagan Fisher на 24ways.org представил неотразимый довод проектирования в браузере. Хотя я и не разделяю его презрение к Фотошопу (Я люблю Фотошоп больше любого другого ПО на планете), я согласен с некоторыми другими его пунктами. Фишер говорит, что статическое изображение не дает по настоящему ощутить, как сайт будет работать и что проектирование в браузере направляет твои силы на организацию контента до дизайна, что гарантирует большее удобство и создание правильной структуры
Мы будем использовать статью Фишера как затравку для наших заметок по превращению в профессионала в создании фантастических in-browser макетов готовых к работе сразу по получению одобрения от клиента.
Оформление псевдоссылок в Axure
Многие пользователи программы Axure поначалу сталкивались с такой проблемой, как оформление псевдоссылок. Дело в том, что по умолчанию софтина не позволяет делать ссылки (или текст, что, в принципе, — одно и то же) подчёркнутыми пунктиром. Поэтому у начинающих творцов прототипов (прототипистов?) периодически можно увидеть псевдоссылки со сплошным подчёркиванием, что вносит в документ путаницу. На самом деле решить эту задачу очень просто.
Python: советы, уловки, хаки (часть 1)
Перевод
Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.
Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.
1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.
Содержание
1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Python Tips, Tricks, and Hacks (часть 2)
Перевод
Содержание
Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Tips & Tricks
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.
Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.
Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.
Способ первый, самый примитивный:
Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.
Методы массивов
Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.
Способ первый, самый примитивный:
- @users = User.find(:all)
- activated_users = 0
- foreach user in @users
- activated_users += 1 if user.activated == 1
- end
-
- # если количество совпадает, значит все юзеры активированы
- activated_users == @users.size
Пример входа в две учетные записи на одном и том же сайте одновременно, используя Private Tab Opera
У многих из нас есть по нескольку учеток на одном и том же сайте. Если вы зашли под одним именем, обычно вы уже не сможете зайти под другим, потому что куки-общие для всех табов.
В Opera версии 10.5 и выше появились Private Tab, куки с которыми не общие, так что вы можете зайти на сайт с двух учетных записей одновременно. Для вызова Private Tab проделать следующее: правый клик по таб-у > New Private Tab

В Opera версии 10.5 и выше появились Private Tab, куки с которыми не общие, так что вы можете зайти на сайт с двух учетных записей одновременно. Для вызова Private Tab проделать следующее: правый клик по таб-у > New Private Tab
