Pull to refresh

Маленькие хитрости работы со слоями в Photoshop

Web design *
Есть множество секретов при работе с Photoshop, зная которые можно заметно повысить свою производительность. При создании дизайна сайта гармоничное размещение объектов на странице, правильные отступы и наличие пустого пространства играют важную роль для восприятия оформления, а достигается это перемещением элементов дизайна. При этом на переключение между слоями и операции по их перемещению уходит порой до 80% времени, и лишь только оставшееся часть идет на рисование и ввод информации. Поэтому в данном мини-ликбезе, я хочу коснуться только хитростей работы с вкладкой Layers как наиболее востребованной.
Я так и думал, господа, пройдемте
Total votes 49: ↑47 and ↓2 +45
Views 127K
Comments 55

Сказ о том как хитрые веб-дизайнеры ищут жильё.

Lumber room


Недавно у меня возникла небольшая проблема, жилищного характера. Встал вопрос как решить её красиво, оригинально и в контексте моей специальности. Я подумал и сделал вот такой милый эвент. События развиваются стремительно. Отчитываться буду в комментариях.
Total votes 69: ↑59 and ↓10 +49
Views 281
Comments 77

Еженедельный подкаст от Umputun (US, Чикаго) #145

Lumber room
— Напившись кофею дармового…
— Неделя борьбы бобра с козлом
— Все так и приключения фотокамеры
— Поездка в Apple store. С приключением
— Офисы и кубики
— Кино-рекомендации и почему обидели Анжелину?
— Филосовское отступлени
— Вопросы и ответы

* Zach and Sarah, Rescue Me
Подписка на подкасты

Total votes 40: ↑33 and ↓7 +26
Views 190
Comments 18

Еженедельный подкаст от Umputun (US, Чикаго) #148

Lumber room
— Выездной и усталый выпуск
— Начал процесс подбора IT работника
— Девы совсем распустились
— Новый C&C и странный Joost
— Полезные советы и прочие странные эпизоды
— Потекли творческие вознаграждения
— Музыка, память, орфография и эротика по вашим письмам

* Lovespirals, Our Nights

Подписка на подкасты

Total votes 32: ↑30 and ↓2 +28
Views 281
Comments 33

Радио–Т #73

Lumber room
— Дармовые компьютеры от MS
— Нечто странное для SMS 2.0
— Дружно бойкотируем Trend Micro
— Наши боты против чужей капчи
— KDE спасет Windows от смерти
— Потеря кодов и прочие курьезы школьного портала
— Групповой Google уже тут
— Yahoo окучивает перспективный рынок для взрослых
— Пора снимать шапки с буржуев
— Линус: OSX лучше всего остального
— 40M людей в сети к концу года и все с паспортами
— SSD версия: такой МБА нам не нужен!
— Темы наших слушателей
Total votes 72: ↑64 and ↓8 +56
Views 393
Comments 167

Еженедельный подкаст от Umputun (US, Чикаго) #167

Lumber room
— Опять авто–шоу
— Проценты победили. Конец истории
— Зубовные страсти
— Пример патриотического воспитания
— Кто убил декабристов и что за вода… там
— GFE и главная новость недели
— История «про брата» и любовь к совещаниям
— Подкасты, сертификаты и прочие вопросы слушателей
— Как там Карл
— Очередная глава языкознания

* качество звука сомнительно, запись была в тяжелых условиях
Total votes 44: ↑35 and ↓9 +26
Views 247
Comments 22

Еженедельный подкаст от Umputun (US, Чикаго) #207

Lumber room
— Виртуальное, но неполное отсутствие
— По мотивам суровой зимы
— Некоторые проблемки
— Рабочий выстрел через 2 года
— К вопросу о давлении
— Карл вновь вошел в шоу
— Вся правда о планировании пола
— Как все начиналось
— Прокаты и 25й звуковой кадр

* Laura Clapp, Not For M

Подписка на подкасты
Total votes 43: ↑33 and ↓10 +23
Views 181
Comments 9

10 хитростей Google Analytics

iConText corporate blog
Казалось бы, установка и настройка счетчика Google Analytics — задачи простые. На деле, эта «простота» скрывает за собой множество подводных камней. Мы постоянно сталкиваемся с тонкостями, неочевидными особенностями подсчета и глубоко спрятавшимися ошибками (конечно, обычно виноваты мы сами:).

На базе нашего опыта я сформулировал 10 советов, которые пригодятся большинству пользователей Analytics – когда-то это были и наши грабли! Некоторые темы заслуживают отдельных статей, но пока расскажу о более-менее очевидных и простых технических хитростях.

Проверка регулярных выражений при установке целей

Достаточно часто при указании адреса цели приходится использовать регулярные выражения: например, если искомый фрагмент адреса окружен другими частями. Регулярные выражения – тонкая материя, а ждать обновления данных для проверки правильности написания не хочется. Проверить правильность выражения можно мгновенно, перейдя в раздел «Содержание – Самое популярное содержание» и введя в поле фильтра выражение. Содержимое сразу же отфильтруется, а вы сможете убедиться в корректности кода.
Читать дальше →
Total votes 83: ↑63 and ↓20 +43
Views 36K
Comments 18

Злая обезьянка повышает аптайм

System administration *


Системные администраторы сервиса Netflix нашли интересное решение, которое позволило улучшить архитектуру сервиса, и уменьшить влияние технических проблем на конечных пользователей.

В компании был написан и запущен внутренний сервис под названием «Chaos Monkey» (Обезьянка Хаоса (не путать с Хаусом!)), который случайным образом убивает инстансы AWS или процессы на серверах, обслуживающих сервис. Как ни странно, такой подход не вредит, а помогает технарям улучшать качество сервиса и повышать аптайм, убивая несколько обезьян зайцев — системы Netflix проходят круглосуточную проверку на то, что:

  • Все узлы системы имеют избыточное дублирование
  • Падение одного сервера или процесса не приводит к проблемам в оказании сервиса, даже минорным — например, ошибкам или дебаг-сообщениям на сайте
  • Сисадмины точно знают, что происходит при падении каждого из серверов и как это влияет на всю систему
  • Сисадмины имеют большой опыт решения проблем с серверами, почти на каждую проблему уже есть задокументированное решение


Этот оригинальный (если не сказать парадоксальный) подход сэкономил огромное количество денег и времени компании. А что об этом думают хабрагуру?
Total votes 119: ↑111 and ↓8 +103
Views 3.7K
Comments 78

Asterisk от простого — к сложному

Development of communication systems *
Sandbox

Вступление


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

Я ничего не имею против надстроек к Астериску, которые облегчают жизнь, но я боюсь, что скоро появился поколение администраторов Астериска, которые консоли в живую не видели ниразу.

Целью моих статей является желание показать, что астериск красив сам по себе, без дополнительных надстроек, что можно, используя минимальные, ускоряющие работу скриптовые языки — творить чудеса. Хочется показать, ищущим и желающим познать новое, людям нюансы и тонкости работы системы.
Читать дальше →
Total votes 48: ↑45 and ↓3 +42
Views 163K
Comments 41

Маленькие хитрости Java

Java *
Sandbox
Я уже достаточно много лет занимаюсь разработкой на java и повидал довольно много чужого кода. Как это не странно, но постоянно от одного проекта к другому я вижу одни и те же проблемы. Этот топик — попытка ликбеза в наиболее часто используемых конструкциях языка. Часть описанного — это довольно банальные вещи, тем не менее, как показывает мой опыт, все эти банальности до сих пор актуальны. Надеюсь, статья пригодится многим java программистам. Итак, поехали:

new vs valueOf

//медленно
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");

//быстро
Integer i = Integer.valueOf(100);
Long l = 100L;//это тоже самое что Long.valueOf(100L);
String s = "A";


Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах оболочках примитивных типов, кроме случаев, когда вам нужно конкретно выделить память под новое значение. Это связано с тем, что все они, кроме чисел с плавающей точкой, от Byte до Long имеют кеш. По умолчанию этот кеш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кеша. Значение из кеша достается в 3.5 раза быстрее чем при использовании конструктора + экономия памяти. Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной. В случае, если ваше приложение очень часто использует целые типы, можно увеличить кеш для Integer через системное свойство «java.lang.Integer.IntegerCache.high», а так же через параметр виртуальной машины -XX:AutoBoxCacheMax=<size>.
Читать дальше →
Total votes 141: ↑126 and ↓15 +111
Views 265K
Comments 166

Маленькие хитрости Java. Часть 2

Java *
В продолжение первой статьи я добавлю еще несколько штрихов о наиболее часто встречающихся ошибках и просто плохом коде, с которым часто приходится иметь дело при работе с уже написанными проектами. Я не выносил это в первую часть, так как эти ситуации встречаются гораздо реже, но поскольку первая часть вызвала много позитивных отзывов, решил продолжить. Спасибо всем комментаторам, отзывам и замечаниям. Я постараюсь избежать допущенных ошибок. Итак, продолжим:

Buffered Streams

//медленно
InputStream is = new FileInputStream(file);
int val;
while ((val = is.read()) != -1) {
}
//быстро
InputStream is = new BufferedInputStream(new FileInputStream(file));
int val;
while ((val = is.read()) != -1) {
}

Казалось бы — очевидная истина, неправда ли? Но как показал чужой код и опыт собеседования кандидатов, часть разработчиков определенно не понимает в чем преимущество буферизованных стримов. Кто до сих пор не разобрался — метод read() класса FileInputStream:
public native int read() throws IOException;

Согласитесь, каждый раз делать системный вызов, чтобы считать один байт несколько расточительно. Собственно для того, чтобы избежать этой проблемы и были созданы оболочки-буферы. Все что они делают — при первом вызове системного read() считывают несколько больше (в зависимости от указанного размера буфера, котрый по умолчанию равен 8 кб) и при следующем вызове read() считывают данные уже из буфера. Прирост производительности — на порядок. Системные вызовы, на самом деле, это не всегда плохо, например:
System.arraycopy(src, srcPos, dest, destPos, length);

В случае копированния массива — системный метод будет гораздо быстрей реализованного на java. И еще — считывайте данные порциями, а не по байтам, это тоже позволит прилично сэкономить.
Читать дальше →
Total votes 93: ↑84 and ↓9 +75
Views 107K
Comments 91

Управление памятью в реальном режиме Windows

Algorithms *
Недавно Реймонд Чен завершил серию постов, начатую ещё полтора года назад, и посвящённую управлению виртуальной памятью безо всякой поддержки со стороны процессора: Windows до версии 3.0 включительно поддерживала реальный режим 8086. В этом режиме трансляция адреса из «виртуального» (видимого программе) в физический (выдаваемый на системную шину) осуществляется бесхитростным сложением сегмента и смещения — никакой «проверки доступа», никаких «недопустимых адресов». Все адреса доступны всем. При этом в Windows могли одновременно работать несколько программ и не мешать друг другу; Windows могла перемещать их сегменты в памяти, выгружать неиспользуемые, и по мере необходимости подгружать назад, возможно — по другим адресам.

(Интересно, всегдашние холиворщики «это была графическая оболочка, а не операционная система» в курсе об этих её необычайных способностях?)
И как же она ухитрялась?
Total votes 97: ↑91 and ↓6 +85
Views 39K
Comments 33

Раскрываем магию MySQL или о строгости и мягкости MySQL

PHP *MySQL *
Sandbox
Tutorial
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать дальше →
Total votes 69: ↑66 and ↓3 +63
Views 125K
Comments 13

Python: вещи, которых вы могли не знать

Python *
Sandbox
Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
Читать далее
Total votes 139: ↑120 and ↓19 +101
Views 300K
Comments 120

Почему сотрудники делают глупые ошибки и что с этим делать.Часть 1

Project management *
Как-то один из персонажей популярного сериала заявил «Все врут!». И это отчасти правда. И что уж 100% правда, что все лажают. Каждый может вспомнить, когда наши сотрудники не выполнили взятые на себя обязательства, сорвали сроки, что-то сделали — но совсем не то, а иногда лучше бы вообще не проявляли инициативу. К сожалению, лажают не только сотрудники, но и руководители. Самое печальное в этом то, что работают далеко не дураки, но бывают такие глупые epic fail, что и говорить не хочется.



Вариантов, что с этим делать, довольно много. Я бы хотел рассказать об одном из подходов, который в моем случае сработал. По итогу количество косяков и взаимных конфликтов руководитель-подчиненный стало значительно меньше.
Читать дальше →
Total votes 84: ↑66 and ↓18 +48
Views 66K
Comments 52

Подготовка к сертификационному экзамену Microsoft 70-483 «Programming in C#»

Programming *.NET *Visual Studio *C# *

Во время подготовки к экзамену номер 70-483 нашел множество разрозненных сайтов с различными ссылками на мануалы, которые мне немного помогли. Но, что помогло мне больше, так это то, что я составил для себя памятку на нескольких страницах, выдержками из которой и хочу поделиться.
Целью не является подробное описание C#, целью является освежить в памяти и заострить внимание на некоторых необходимых темах. Если какие-то темы вам незнакомы, то это значит, что у вас есть пробелы, которые необходимо устранить.
Раскрывать вопросы тестирования я не могу (да и не помню я уже их), но, если многие из перечисленных ниже нюансов, трюков и тонкостей, помогут вам, то вы на меня не обижайтесь (написано с иронией).
Читать дальше →
Total votes 50: ↑39 and ↓11 +28
Views 102K
Comments 17

Несколько тонкостей использования jade в Meteor-проектах

Meteor.JS *
Sandbox
Некоторое время назад мне пришлось окунуться в Meteor. Несмотря на то, что javascript я не люблю, coffeescript еще больше, а node.js меня приводит в бешенство, Meteor очень быстро снискал моё признание и любовь. Я не работал с ним до версии 1.0+, насколько я знаю, там было достаточно много ужасов, однако сейчас, лично для меня, это очень удобный инструмент под небольшие интерактивные проекты. Потому очень хочется поделиться тем, что может облегчить использование данного инструмента другим людям.

Мой опыт работы с Meteor не такой большой, чтобы взять и начать что-то сложное раскладывать по полочкам. Однако я столкнулся с некоторыми вещами, побился о них головой и нашел какие-то решения. И в этой статье я хочу поделиться своими наблюдениями/советами по работе с jade в Meteor. К сожалению, с ним всё не так здорово, как с чистым jade-ом.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 5.7K
Comments 11
1