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

Tips & tricks CakePHP #2

CakePHP *
В связи с выходом пре-беты 1.2 второй выпуск tips&tricks. Продолжаем знакомить Вас с идеями и проблемами версии 1.2, особенностями пре-беты, с которыми мы встретились в процессе разработки социальной сети.
Кроме того, мы завели себе блог на Хабре — присоединяйтесь, задавайте вопросы. Думаю, нам есть что обсудить.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 1.4K
Комментарии 19

Firefox3. 5 штучек помогающих выжить

Чулан
Все любят Firefox, особенно за то, что его можно постоянно улучшать самому, без спроса у производителя. (Хотя Опера тоже такое, вроде разрешает, но Опера не наш выбор). В новой версии всякого наменялось, но исследователи глубин FF уже нашли методы как упростить или украсить свой браузер. Достаточно лишь понимать, что хотим и зачем мы это хотим. ;)

1. Автоподстановка в адресной строке при вводе.
* Введите about:config в адресной строке.
* Нажмите “Я обещаю, что буду осторожен!”. (англ. вариант “I’ll be careful, I promise!”)
* Введите в поле поиска текст browser.urlbar.autoFill. Двойной клик по записи установит значение равным true.

Теперь у вас будет не только выпадающий список адресов, но и автоподстановка похожего адреса.

2. Включаем проверку правописания в текстовых полях

По умолчанию Firefox проводит проверку только в многострочных полях. Если Вы хотите, чтобы Firefox проверял и однострочные поля, то вот:
* Введите about:config в адресной строке.
* Нажмите “Я обещаю, что буду осторожен!”. (англ. вариант “I’ll be careful, I promise!”)
* введите в поле поиска текст layout.spellcheckDefault. Двойной клик по записи и установите значение равным 2.
3. Тюним режим full screen

По умолчанию Firefox 3 прячет адресную строку, когда вы в полноэкранном режиме. Исправляем:
* Введите about:config в адресной строке.
* Нажмите “Я обещаю, что буду осторожен!”. (англ. вариант “I’ll be careful, I promise!”)

ведите в поле поиска текст browser.fullscreen.autohide Двойной клик по записи установит значение равным false.
* для отключения анимации при скрытии установите browser.fullscreen.animateUp равным 0.
4. Включаем поддержку профилей цвета
Теперь Firefox3 есть поддержка профилей цвета, которые помогут лучше отображать графические изображения. Включаем:
* Введите about:config в адресной строке.
* Нажмите “Я обещаю, что буду осторожен!”. (англ. вариант “I’ll be careful, I promise!”)
* ведите в поле поиска текст gfx.color_management.enabled Двойной клик по записи установит значение равным true.
5. Уменьшаем размер кнопки назад

Меня лично раздражает сей огромный баттон, исправляем: щелчком мыши по правой кнопке на тулбаре и выбираем “Настроить”. Нажимаем чекбокс с “маленькие иконки”. Помогает

Оригинал

к коментарию ckald
Эта фича позволяет ускорить загрузку страниц на 10-40%. Работала в старых версиях ФФ, но как в 3 — сам не пробовал.

1. Запускаем Firefox
2. В адресной строке пишем about:config и жмем Enter
3. Для версий ниже 1.5 находим параметр browser.tabs.showSingleWindowModePrefs
4. Двойным щелчком мыши устанавливаем значение равным true.
5. Находим параметры: network.http.pipelining, network.http.proxy.pipelining
6. Двойным щелчком мыши устанавливаем значения обоих равным true.
7. Ищем network.http.pipelining.maxrequests
8. Двойным щелчком мыши открываем редактирование и меняем значение с 4 на 100.
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 236
Комментарии 9

Antique toY #05, Звукоимитация на ZX Spectrum

Чулан
Tricks: Звукоимитация в музыке на ZX Spectrum. Особенности и приёмы звукоимитации на музыкальном сопроцессоре AY-8910.

У микрофона — Siril^4D (a.k.a. oisee).

Несколько слов о внутреннем устройстве AY-8910, о генераторах тона, шума и огибающей, для чего и как они используются.

Читать дальше →
Всего голосов 10: ↑6 и ↓4 +2
Просмотры 549
Комментарии 7

Отдыхая — учусь, работая — отдыхаю

Учебный процесс в IT
Вся наша жизнь — это рабочие дни разбавленные выходными и праздниками.
А наш рабочий день — это череда часов, минут, секунд.
Наверное каждый из нас слышал о производственной гимнастике:
каждые час-два, минут на пятнадцать (вместо перекуров), хорошо бы дать отдохнуть глазам, кистям, а ещё спине и ногам.
А хорошо бы совместить полезные упражнения с получением новых навыков — и практичных и эстетичных.
Я сейчас перечислю те занятия, которыми пытаюсь заниматься сам.
По моему мнению упомянутые ниже упражнения не требуют материальных затрат и лишь минимум временных.
Дополняйте, плиз.
Читать дальше →
Всего голосов 75: ↑63 и ↓12 +51
Просмотры 840
Комментарии 87

Windows 7 Tips and Tricks ;)

Разработка под Windows *
Салют Хабралюди, хабражители :)

Продолжая рубрику статей посвященных Windows 7, решил предаставить сборник несколько полезностей которые могут облегчить работу в этой ОСи.

image

Итак приступим
Читать дальше →
Всего голосов 155: ↑83 и ↓72 +11
Просмотры 4.2K
Комментарии 132

Opera Unite для разработчиков

Opera
imageА не написать ли нам какой-нибудь сервис под Опера Юнайт? Здесь я расскажу об особенностях программирования под новинку от Оперы на примере своего сервиса "Stream media". Официальная документация пока что неполная и содержит много ошибок, и в этой статье мы попытаемся их обойти.
image
Далее, будем вникать в технологию постепенно. Желательно, чтобы Вы уже прочли мануал по созданию первого приложения, поскольку некоторые очевидные факты здесь опускаются.
Читать дальше →
Всего голосов 62: ↑55 и ↓7 +48
Просмотры 717
Комментарии 4

Delphi: Как избавиться от published свойств

Delphi *

Вводная



Работая над PostgresDAC'ом наша комманда встречалась с этой проблемой дважды. И оба раза изменения затрагивали компонент TPSQLDump, как наиболее интенсивно изменяющийся. Это и понятно, каждый серьезный релиз сервера PostgreSQL вносит порой в параметры pg_dump существенные изменения. А нашей задачей является полная совместимость TPSQLDump с pg_dump.

А в чём, вообще, проблема?
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 2.2K
Комментарии 5

19 необщеизвестных приёмов

Ruby on Rails *
Перевод
Заметка не новая, но я уверен, что и сейчас не все знают всё нижеперечисленное (Здесь и далее курсив переводчика).

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

Замер скорости в контроллерах — это очень просто. Используйте метод benchmark в любой модели.
Читать дальше →
Всего голосов 41: ↑32 и ↓9 +23
Просмотры 2K
Комментарии 30

Побит рекорд самого короткого кода по определению IE

JavaScript *
Без малого год назад, я уже писал (http://habrahabr.ru/blogs/javascript/50544/) о самом коротком способе определение браузера Internet Explorer, но вот некто Aleko нашел еще более короткий вариант:

-[1,]

Всего 5 байт. Пример использования:
if(-[1,]){
alert("Not IE!");
}
Всего голосов 196: ↑178 и ↓18 +160
Просмотры 3.1K
Комментарии 76

Открываем URL из под Wine

Разработка веб-сайтов *
Tutorial
Представим ситуацию. Наш продукт умеет определять под управлением WineHQ он запущен или нет. И в самом нашем продукте есть множество мест, из которых мы должны открыть URL. Информация о продукте, проверка обновлений, онлайн-справка, страница тех.поддержки и прочее. В лоб пробуем ShellExecute, передавая параметром URL, и… недоуменно разводим руками. Ничего не происходит!
Как быть?
Всего голосов 33: ↑28 и ↓5 +23
Просмотры 1.6K
Комментарии 21

Вызов метода Javascript без его вызова фактически

JavaScript *
Перевод
imageИногда мы бываем просто ленивыми. Особенно, когда доходит дело до написания кода. И хоть круглые скобки в вызове функции не приводят к избыточности, иногда все же они могут утомлять, особенно когда javascript-метод не нуждается в передаваемых ему аргументах. Иногда это просто надоедает.
Читать дальше →
Всего голосов 84: ↑57 и ↓27 +30
Просмотры 3K
Комментарии 49

Пример входа в две учетные записи на одном и том же сайте одновременно, используя Private Tab Opera

Opera
У многих из нас есть по нескольку учеток на одном и том же сайте. Если вы зашли под одним именем, обычно вы уже не сможете зайти под другим, потому что куки-общие для всех табов.
В Opera версии 10.5 и выше появились Private Tab, куки с которыми не общие, так что вы можете зайти на сайт с двух учетных записей одновременно. Для вызова Private Tab проделать следующее: правый клик по таб-у > New Private Tab
image
Читать дальше →
Всего голосов 38: ↑20 и ↓18 +2
Просмотры 3.4K
Комментарии 13

Инвертирование страницы только средствами CSS

Разработка веб-сайтов *
Перевод
Я недавно увидела jQuery-плагин Paul Irish для инвертирования страницы. Он инвертирует каждый цвет на странице, включая изображения и CSS. Это мне напомнило о существовании ключевого слова invert для цвета контуров (outline) (к сожалению, поддерживаемом только в Opera и IE9+). В общем, я задумалась, как можно добиться такого же эффекта только средствами CSS.

Оказалось, что это достаточно просто:
Читать дальше →
Всего голосов 51: ↑45 и ↓6 +39
Просмотры 6.8K
Комментарии 24

iOS tips and tricks: Динамический Default.png

Разработка под iOS *
Из песочницы
При разработке под iOS время от времени у заказчиков, да и у некоторых программистов возникает закономерный вопрос: «А можно ли каким-нибудь образом при старте приложения подменять картинку?».

Немного порыскав по интернету, и покопавшись в документации, то напрашивается ответ, что сделать это невозможно по следующим причинам:
  • Файл, который показывается при запуске приложения лежит внутри папки приложения, и, ак следовательно переписать его не является возможным
  • По аналогичной причине нельзя изменить файл Info.plist, в котором сохраняется относительный путь к файлу стартовым изображением

Однако, все же, это возможно сделать стандартными способами, без всякого рода Jailbreak'а. Впрочем, как и у каждого решения есть свои плюсы, минусы и особенности.

Читать дальше →
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 3.2K
Комментарии 10

Малоизвестные особенности Java

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

Вот уже подоспела и вторая часть статьи.


1. Нестатические блоки инициализации.

Всем, я думаю, известно, что в Java существуют статические блоки инициализации (class initializers), код которых выполняется при первой загрузке класса.

class Foo {
	static List<Character> abc;
	static {
		abc = new LinkedList<Character>();
		for (char c = 'A'; c <= 'Z'; ++c) {
			abc.add( c );
		}
	}
}


Но существуют также и нестатические блоки инициализации (instance initializers). Они позволяют проводить инициализацию объектов вне зависимости от того, какой конструктор был вызван или, например, вести журналирование:

class Bar {
	{
		System.out.println("Bar: новый экземпляр");
	}
}


Такой метод инициализации весьма полезен для анонимных внутренних классов, которые конструкторов иметь не могут. Кроме того, вопреки ограничению синтаксиса Java, используя их, мы можем элегантно инициализировать коллекцию:

Map<String, String> map = new HashMap<String, String>() {{
	put("паук",  "арахнид");
	put("птица", "архозавр");
	put("кит",   "зверь");
}};


Очень даже мощное средство, не находите?

JFrame frame = new JFrame() {{
	add(new JPanel() {{
		add(new JLabel("Хабрахабр?") {{
			setBackground(Color.BLACK);
			setForeground(Color.WHITE);
		}});

		add(new JButton("Торт!") {{
			addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent event) {
					System.out.println("Хабрахабр - торт!");
				}
			});
		}});
	}});
}};


Остальные четыре пункта под катом.
Читать дальше →
Всего голосов 163: ↑150 и ↓13 +137
Просмотры 134K
Комментарии 75

Малоизвестные особенности Java. Вторая часть

Java *
Как и обещал, предлагаю вашему вниманию следующие пять пунктов.

Малоизвестные особенности Java. Первая часть

6. Конфликт имён.

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

Неужели ничего нельзя с этим поделать? Оказывается можно. Следующий код скомпилируется без проблем, несмотря на то, что класс List присутствует и в пакете java.awt, и в пакете java.util:

import java.awt.*;
import java.util.*;
import java.util.List;

public class Класс {
	public static void main(String... аргументы) {
		List простоСписок = Collections.emptyList();
		System.out.println(простоСписок);
	}
}


Достаточно дополнительно импортировать необходимый класс, java.util.List в данном примере.

Тут, как вы заметили, используются кириллические идентификаторы. Да! Для кого-то это станет откровением, но Java… такая Java. Идентификатор может состоять из совершенно любых букв, помимо цифр, знаков подчёркивания и валюты США (однако последний знак ($) использовать не рекомендуется, он предназначен для системных нужд). Но оно нам надо? Разве только в целях обфускации. Только представьте себе, сколько разных идентификаторов можно сгенерировать всего-то из символов «А» английского, русского и греческого алфавитов…

Читать дальше →
Всего голосов 67: ↑61 и ↓6 +55
Просмотры 56K
Комментарии 42

Математика флешевого Number при твининге DisplayObject

Adobe Flash
Однажды меня попросили разобраться с багом: при смене frameRate в произвольном количестве вложенных .swf начинал странно вести себя самописный «твинер» — класс, который интерполирует некоторое значение на заданное время. Вместо своей нормальной деятельности, твинер мог перескакивать значения, мог залипать на каком-то одном, а иногда просто в произвольный момент времени задавать переменной её конечное значение и отчитываться о завершении своей работы. Просящий связывал проблему именно с многоуровневой вложенностью и несовпадении собственного и родительского fps.

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

Как я писал свой мини-твинер
Всего голосов 15: ↑11 и ↓4 +7
Просмотры 1.5K
Комментарии 12

Немного Rails трюков

Ruby *Ruby on Rails *

Хочу поделиться в вами несколькими трюками, которые помогут сделать работу с Ruby on Rails лучше, быстрее, а также позволят вам много зарабатывать и более лучше одеваться.
Читать дальше →
Всего голосов 42: ↑34 и ↓8 +26
Просмотры 11K
Комментарии 13

Duck typing или “так ли прост старина foreach?”

.NET *
Я думаю, что многие разработчики знают, что цикл foreach в языке C# не так прост, каким он кажется на первый взгляд. Для начала давайте ответим на вопрос: «А что нужно, чтобы конструкция foreach успешно компилировалась?». Интуитивным ответом на этот вопрос кажется что-то типа: «Реализация классом интерфейса IEnumerable или IEnumerable<T>.». Однако, это не так, ну, или не совсем так.

Полный ответ на этот вопрос такой: «Для того чтобы конструкция foreach успешно компилировалась необходимо, чтобы у объекта был метод GetEnumerator(), который вернет объект с методом MoveNext() и свойством Current, а если такого метода нет, то тогда будем искать интерфейсы IEnumerable и IEnumerable<T>».

Причин у такого «утиного» поведения две.
Читать дальше →
Всего голосов 52: ↑46 и ↓6 +40
Просмотры 18K
Комментарии 35

Один из методов работы с конфигурационными файлами в С++ (Qt)

Программирование *C++ *Qt *
Практически в каждом проекте, встает задача персистентного чтения/записи конфигурации. Не секрет что существует большое количество уже готовых библиотек для решения этой задачи. Некоторые из-них просты, некоторые чуть сложнее в использовании.
Если же проект разрабатывается с использованием Qt, думаю нет смысла линковать дополнительную библиотеку, так как в Qt есть все средства для создания очень простого, гибкого и кроссплатформенного решения.
Как раз о таком решении хочу расказать вам в этом посте.
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 29K
Комментарии 10
1