На вопрос, как сделать AJAX запрос к другому домену, я всегда отвечал, что никак, и предлагал в качестве альтернативы jsonp, прокси, флеш, фреймы. Но, оказывается, большинство современных браузеров (IE8+, FF3.5+, Chrome 6+ и Safari 4+) вполне поддерживает кроссдоменный XMLHTTPRequest.
Untit1ed @Untit1ed
User
Разоблачение алгоритмов растеризации шрифтов (2/2)
14 min
10KTranslation
(вторая часть перевода статьи Разоблачение алгоритмов растеризации шрифтов)
Windows растеризует шрифты плохо, Linux ещё хуже. Во всех Linux-системах, которые я видел, используется FreeType [10] Дэвида Тёрнера, Роберта Вильгельма и Вернера Лемберга. Это отличная библиотека, но способ её использования, к сожалению, нельзя назвать удачным. Типичный скриншот Linux выглядит так:
Вот полный скриншот:
ссылка
Сразу заметна проблема — чёрные пятна в скругленных углах, образовавшиеся в результате сглаживания. Вцелом, можно сказать, что косые штрихи выглядят тяжелее чем вертикальные, что в регультате производит впечатление «грязи». Вы можете возразить, что FreeType и Linux могли бы использовать схожую с ClearType субпиксельную растеризацию, но по мне это не даёт заметных преимуществ.
Linux
Наследуя худшее
Windows растеризует шрифты плохо, Linux ещё хуже. Во всех Linux-системах, которые я видел, используется FreeType [10] Дэвида Тёрнера, Роберта Вильгельма и Вернера Лемберга. Это отличная библиотека, но способ её использования, к сожалению, нельзя назвать удачным. Типичный скриншот Linux выглядит так:
Вот полный скриншот:
ссылка
Сразу заметна проблема — чёрные пятна в скругленных углах, образовавшиеся в результате сглаживания. Вцелом, можно сказать, что косые штрихи выглядят тяжелее чем вертикальные, что в регультате производит впечатление «грязи». Вы можете возразить, что FreeType и Linux могли бы использовать схожую с ClearType субпиксельную растеризацию, но по мне это не даёт заметных преимуществ.
+118
Организационные и технические аспекты распространения приложений для BlackBerry
5 min
1.9KОрганизационная часть процесса
Research In Motion не накладывает на разработчиков никаких обязательств при распространении приложений для BlackBerry. Вы можете распространять свои приложения как через BlackBerry App World, так и самостоятельно.
+17
Медиа-сервер, собираем своими руками из найденного в «закромах родины»
6 min
52KКризис! Работы мало, времени много… никто не мешает навести порядок в закромах.
В результате получился полноценный мультимедиа компьютер с огромным экраном, беспроводной клавиатурой, мышкой, WiFi. С торрент качалкой, файло-помойкой, персональный веб-сервер. И все это под управлениемстрашной операционной системы Linux. Компактный корпус и уровень шума не мешает спать.
В результате получился полноценный мультимедиа компьютер с огромным экраном, беспроводной клавиатурой, мышкой, WiFi. С торрент качалкой, файло-помойкой, персональный веб-сервер. И все это под управлением
+117
+251
Свежая подборка jQuery плагинов
2 min
15KTranslation
Для меня jQuery ассоциируется с мощной и главное кросс-браузерной JavaScript библиотекой. Можно долго перечислять ее достоинства, холиварить по поводу и без, но думаю, никто не будет против посмотреть подборку интересных плагинов и уроков:
для удобства – каждая картинка ведет на демо
Демо | Урок
для удобства – каждая картинка ведет на демо
Hover Slide Effect
Демо | Урок
Галерея состоит из нескольких картинок, при наведении на одну из них она эффектно меняется на другую, а при клике на любую картинку — меняются все одновременно.
+121
Как создать вебсайт для мобильных устройств
3 min
64KСтили
User Agent
Один из способов включения стилей для мобильного устройства — это использование User Agent, которую получает сервер от клиента.
Этому может помочь набор скриптов: code.google.com/p/mobileesp, а также сервис от яндекса api.yandex.ru/detector
При работе с User Agent только одна проблема — это постоянно появляющиеся новые User Agent.
+123
Кроссплатформенная разработка на мобильных устройствах
2 min
15KTranslation
Сравнение PhoneGap vs. Titanium vs. Rhodes
В первую очередь должен заметить, что кроссплатформенная разработка не для тех, кто разрабатывает 3D-игры, интерактивные, мультимедийные и анимированные приложения.
Рассматриваемые в этой статье разработки все построены на web-технологиях и могут быть использованы web-разработчиками, которые хотят применить свой опыт в мире мобильных приложений.
В первую очередь должен заметить, что кроссплатформенная разработка не для тех, кто разрабатывает 3D-игры, интерактивные, мультимедийные и анимированные приложения.
Рассматриваемые в этой статье разработки все построены на web-технологиях и могут быть использованы web-разработчиками, которые хотят применить свой опыт в мире мобильных приложений.
+15
Singleton (Одиночка) или статический класс?
6 min
195KСтатья будет полезна в первую очередь разработчикам, которые теряются на собеседованиях когда слышат вопрос «Назовите основные отличия синглтона от статического класса, и когда следует использовать один, а когда другой?». И безусловно будет полезна для тех разработчиков, которые при слове «паттерн» впадают в уныние или просят прекратить выражаться :)
Для начала вспомним что такое статический класс и для чего он нужен. В любом CLI-совместимом языке используется следующая парадигма инкапсуляции глобальных переменных: глобальных перменных нет. Все члены, в том числе и статические, могут быть объявлены только в рамках какого-либо класса, а сами классы могут (но не должны) быть сгруппированы в каком-либо пространстве имен. И если раньше приходилось иммитировать поведение статического класса с помощью закрытого конструктора, то в .NET Framework 2.0 была добавлена поддержка статических классов на уровне платформы. Основное отличие статического класса от обычного, нестатического, в том, что невозможно создать экземпляр этого класса с помощью оператора new. Статические классы по сути являются некой разновидностью простанства имен — только в отличие от последних предназначены для размещения статических переменных и методов а не типов.
Что такое статический класс?
Для начала вспомним что такое статический класс и для чего он нужен. В любом CLI-совместимом языке используется следующая парадигма инкапсуляции глобальных переменных: глобальных перменных нет. Все члены, в том числе и статические, могут быть объявлены только в рамках какого-либо класса, а сами классы могут (но не должны) быть сгруппированы в каком-либо пространстве имен. И если раньше приходилось иммитировать поведение статического класса с помощью закрытого конструктора, то в .NET Framework 2.0 была добавлена поддержка статических классов на уровне платформы. Основное отличие статического класса от обычного, нестатического, в том, что невозможно создать экземпляр этого класса с помощью оператора new. Статические классы по сути являются некой разновидностью простанства имен — только в отличие от последних предназначены для размещения статических переменных и методов а не типов.
+46
Авторизация по протоколу OAuth на примере Desktop Twitter-клиента
6 min
25KTutorial
Потребовалось мне тут написать некий кроссплатформенный Twitter-клиент с закрытым исходным кодом, не спрашивайте зачем мне это надо, работа у меня такая, деньги я за это получаю. Что логично, языком разработки был выбран С++ с использованием Qt.
Сам API Twitter'a прост как кирзовый сапог. Но! Есть такая важная штука как авторизация, и тут есть два пути, старый — аутентификация посредством HTTP Headers и новый — использование протокола OAuth. Старый метод прост, также как и само API, но, к сожалению, он не безопасен, и самое главное команда Twitter'a предупреждает, что откажется от него в конце июня сего года. Поэтому остается второй метод OAuth. Надо сказать, что данный протокол используется не только в Twitter, но поскольку я писал Twitter-клиент, и рассматривать мы будем на примере Twitter'a.
Сам API Twitter'a прост как кирзовый сапог. Но! Есть такая важная штука как авторизация, и тут есть два пути, старый — аутентификация посредством HTTP Headers и новый — использование протокола OAuth. Старый метод прост, также как и само API, но, к сожалению, он не безопасен, и самое главное команда Twitter'a предупреждает, что откажется от него в конце июня сего года. Поэтому остается второй метод OAuth. Надо сказать, что данный протокол используется не только в Twitter, но поскольку я писал Twitter-клиент, и рассматривать мы будем на примере Twitter'a.
+29
Как сделать динамичный, переливающийся фон
1 min
11KНа сайте новаторского магазина thinkgeek.com столкнулся с любопытным эффектом — переливающимся фоном (чтобы увидеть конфетку нужно поработать колёсиком прокрутки). Сделан он очень просто, и все же подобная техника попалась мне впервые.
+93
Очень интересный вариант защиты от SQL-инъекций и XSS
1 min
5.9KОдин весьма мной уважаемый гн Ден Каминский (Dan Kaminsky — известен благодаря обнаружению им фундаментальной уязвимости в DNS ) предложил очень интересную универсальную технику защиты от SQL injection и XSS.
Метод очень просто и от того гениален.
Метод очень просто и от того гениален.
+5
Горячие клавиши Visual Studio 2010
1 min
17KTranslation
Ранее на этой неделе команда Visual Studio выпустила обновленные плакаты «горячих клавиш» VS2010. Эти плакаты — готовые к печати документы (которые теперь поддерживают стандартные размеры бумаги). Они являются хорошими «шпаргалками», которые могут помочь Вам быстро найти (и в конечном счете запомнить) общие команды нажатия клавиш в Visual Studio.
+15
Flash и HTML5-тег «video» — позиция YouTube
5 min
14KTranslation
Пару дней назад YouTube разместил в своем блоге интересный пост.
Сразу скажу от себя, что в последнее время я с интересом наблюдаю за всем этим искусственно раздуваемым «противостоянием» Flash-платформы и HTML5, но уверен, что тема интересует не только меня.
Интересно, что многие бросаются в бой с головой с аргументами вроде «мы хотим открытые стандарты, мы не хотим этот ужасный, отвратительный и жутко проприетарный Flash, который к тому же еще и всего-лишь навсего плагин!». Вот именно внимание таких людей я и хочу обратить на то, что «HTML5» (в частности тег
Рано или поздно кто-то должен был обозначить (более-менее) объективную позицию по этой теме и вот это сделали YouTube, а они, будем надеяться, хоть что-то да смыслят в таких вещах как «видео» и «флэш».
Итак,
Сразу скажу от себя, что в последнее время я с интересом наблюдаю за всем этим искусственно раздуваемым «противостоянием» Flash-платформы и HTML5, но уверен, что тема интересует не только меня.
Интересно, что многие бросаются в бой с головой с аргументами вроде «мы хотим открытые стандарты, мы не хотим этот ужасный, отвратительный и жутко проприетарный Flash, который к тому же еще и всего-лишь навсего плагин!». Вот именно внимание таких людей я и хочу обратить на то, что «HTML5» (в частности тег
<video>
) — это не серебряная пуля, и я сторонник точки зрения, что Великое Пришествие HTML5 не решит разом всех проблем.Рано или поздно кто-то должен был обозначить (более-менее) объективную позицию по этой теме и вот это сделали YouTube, а они, будем надеяться, хоть что-то да смыслят в таких вещах как «видео» и «флэш».
Итак,
+148
Проверки на пустые перечисления
2 min
11KTranslation
Недавно, во время разбора кода одной программы я заметил метод, который выглядел примерно так:
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.
public void Foo<T>(IEnumerable<T> items)
{
if(items == null || items.Count() == 0)
{
// Оповестить о пустом перечислении
}
}
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
items.Count() == 0
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.
+54
10 HTML5 примеров, чтобы вы забыли о Flash
1 min
60KTranslation
В последнее время Вы, наверное, много слышали о том, что Flash является умирающей технологией и о том, как она будет вскоре заменена на HTML5. Лично я считаю, что HTML5 будет постепенно заменять Flash лишь для некоторых вещей, но Flash всегда будет иметь место, особенно при разработке сложных игр и насыщенных интернет-приложений. Если вы еще не видите, что можно сделать с помощью HTML5, я ограничусь десятью примерами, чтобы показать некоторые из возможностей HTML5.
Так что же вы думаете – HTML5 заменит Flash?
Так что же вы думаете – HTML5 заменит Flash?
+123
Колоночная верстка
5 min
16KСуществует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:
Плюсы
- Есть прижимающийся к полу футер
- Колонки меню растягиваются по 100% высоте
- Колонок может быть сколько душе угодно
- Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
- Ширина как резиновая, так и фиксированная
- Критический минимум хаков
- Не используется Javascript
- Не используются бекграундовые изображения для создания эффекта колонки
- Никаких таблиц
- Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)
Минусы
- Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
- Есть несколько абсолютно-позиционируемых блоков
+88
Инструменты css, экономящие ваше время
2 min
19KВольно-сокращенный перевод статьи 15 Time Saving CSS Tools You Should Be Aware Of
Под катом текст, графика, ссылки
Под катом текст, графика, ссылки
+65
jQuery.Tree
2 min
25KТоварищ caffeine искал плагин к jQuery, который делает дерево с чекбоксами, которые имеют три состояния — установленный, снятый и «чуть-чуть установленный». Не нашел, попросил меня написать. Я написал и делюсь со всеми желающими.
+62
А давайте подружимся с SSH
7 min
1.9KМногие мои знакомые так или иначе используют протокол SSH (заходя на свои роутеры, веб хостинги и непосредственно на собственные компьютеры дома и в офисе), при этом не все об этом знают.
Я расскажу о нескольких стандартных возможностях, не открою ничего нового и сакраментального администраторам, но простые пользователи существенно упростят себе работу и, возможно, даже начнут активнее пользоваться этим великолепным протоколом.
В этой заметке вы узнаете:
Я расскажу о нескольких стандартных возможностях, не открою ничего нового и сакраментального администраторам, но простые пользователи существенно упростят себе работу и, возможно, даже начнут активнее пользоваться этим великолепным протоколом.
В этой заметке вы узнаете:
- как прописать псевдонимы для соединений
- как настроить авторизацию без пароля
- как передавать файлы по SSH
- как запускать графические приложения по SSH
- а так же получите общие советы по опциям SSHD
+169
Information
- Rating
- Does not participate
- Registered
- Activity