Архив за 21 мая 2012 - 6

Достаточно часто на практике возникает необходимость воспользоваться такими конструкциями как «пара» (Pair<First, Second>), менее часто «тринарными» объектами (Triplet<First, Second, Third>) и более длинными цепочками ассоциированных объектов. В связи с чем всегда удивлялся, почему в JDK (в java.lang.* или java.util.*) до настоящего момента нет стандартной Pair<First, Second> или более длинных конструкций. Думаю многие программисты практикующие на Java имеют свою реализацию «пары». Не исключением являюсь и я.

И вот в очередной раз наткнувшись на необходимость работать с большим количеством различных кортежей, решил взяться за эту проблему системно. Придумал название проекту, определил цели и после экспериментов, занявших некоторое время, выложил код ( git://github.com/telesik/rumba.git ).

Чего хотелось достичь:

  • Необходима удобная конструкция (назовем ее кортеж) для ассоциации нескольких объектов, типы которых определялись бы из позиции в полученном кортеже;
  • Кортеж должен быть неограниченным по длине и типу;
  • Типы элементов должны быть относительно контролируемым (как минимум ограничен дженериками);
  • Описание структуры кортежа должно быть простым;

Читать полностью »

Команда YouTube 
YouTube появился на свет в мае 2005 года. Прошло семь лет, и сегодня с его помощью наши пользователи делятся друг с другом видеоинструкциями, репортажами, домашними видео, смешными сюжетами, музыкальными роликами и многим другим.

В прошлом году в день рождения видеохостинга мы обратились к вам, нашим пользователям, с благодарностьюЧитать полностью »

Microsoft инвестирует в СколковоКорпорация Microsoft планирует инвестировать десятки миллионов долларов в широко известный наукоград «Сколково», о чём объявили сегодня представители организаций на совместной пресс-конференции.

Соглашение о создании центра НИОКР Microsoft-Сколково подписали президент Microsoft Business Solutions Кирилл Татаринов и вице-президент по работе с международными партнерами фонда «Сколково» Конор Ленихан. Планируется, что через несколько лет там будут проводиться работы по разработке программных решений Microsoft Dynamics.
Читать полностью »

Оптимизация и Generics в CLR В этой статье Джон Скит будет описывать как простейшие конструкции языка замедляют вашу программу и как их можно ускорить.

Как и в любой работе, сваязанной с производительностью приложений, результат может варьироваться в зависимости от условий (в частности, например, 64-разрядный JIT может работать несколько иначе), и в большинстве случаев это не должно вас волновать. Несмотря на это, относительно небольшое количество разработчиков пишут продакшен-код, состоящий из большого количества микрооптимизаций. Потому, пожалуйста, не принимайте этот пост как призыв к усложнению кода ради иррациональной оптимизации, которая якобы ускорит вашу программу. Используйте это только там, где это реально может понадобиться.

Читать полностью »

Рады сообщить, что улучшения индексации AJAX-сайтов Яндекс поддержал изменения в поисковом роботе и правилах обработки им URL таких сайтов.

Технология AJAX пользуется большой популярностью. Однако то, как содержимое страницы «видит» браузер и пользователь, отличается от того, как страницу «видит» робот поисковой системы. Например, пользователь видит удобный интерфейс с динамически подгружаемыми страницами, в то время как содержимое той же страницы для поискового робота может быть пустым или представленным в виде остального статического HTML-контента страницы, для генерации которого не используются скрипты.

При создании AJAX-сайтов могут использоваться URL с #, но такой URL не используется поисковым роботом. Как правило, часть URL после # отсекается. Поэтому вместо URL вида site.ru/#example он обращается к главной странице сайта, расположенной по адресу site.ru. Это значит, что контент страницы может не проиндексироваться и, как следствие, не попасть в результаты поиска.

Теперь вебмастер AJAX-сайта может указать поисковому роботу Яндекса на необходимость индексации, поддержав соответствующую схему в структуре сайта. Для этого нужно:

Читать полностью »

Искусство каррированияВ недавней статье предложена реализация каррирования (currying) и частичного применения (partial function application) на PHP. Ее фундаментальным недостатком является то, что результатом каррирования является не функция, а объект. Он уже не может быть передан в качестве callback-параметра, а для подстановки аргументов приходится использовать специальный синтаксис. В настоящем тексте предлагается новая, прозрачная реализация этих конструкций для PHP 5.3 и выше.

Термин currying происходит от фамилии американского математика Haskell Curry. Второе значение слова currying — выделка дубленой кожи.

Понятия каррирования и частичного применения происходят из функциональных языков программирования, в рамках которых они находят широчайшее применение. Современный PHP проявляет тенденцию к заимствованию некоторых элементов функционального программирования (функции как объекты первого класса, анонимные функции и замыкания), так что обсуждаемые концепции уже не являются для него совершенно инородными.

Эмуляция каррирования и частичного применения на PHP — это один из примеров того, что Макконнелл в «Совершенном коде» (гл. 4.3) называет программированием с использованием языка, а не на языке.
Читать полностью »

Искусство каррированияВ недавней статье предложена реализация каррирования (currying) и частичного применения (partial function application) на PHP. Ее фундаментальным недостатком является то, что результатом каррирования является не функция, а объект. Он уже не может быть передан в качестве callback-параметра, а для подстановки аргументов приходится использовать специальный синтаксис. В настоящем тексте предлагается новая, прозрачная реализация этих конструкций для PHP 5.3 и выше.

Термин currying происходит от фамилии американского математика Haskell Curry. Второе значение слова currying — выделка дубленой кожи.

Понятия каррирования и частичного применения происходят из функциональных языков программирования, в рамках которых они находят широчайшее применение. Современный PHP проявляет тенденцию к заимствованию некоторых элементов функционального программирования (функции как объекты первого класса, анонимные функции и замыкания), так что обсуждаемые концепции уже не являются для него совершенно инородными.

Эмуляция каррирования и частичного применения на PHP — это один из примеров того, что Макконнелл в «Совершенном коде» (гл. 4.3) называет программированием с использованием языка, а не на языке.
Читать полностью »

Вместо вступления

Всем доброго времени суток!

Кастомизация элементов форм наверное одно из самых увлекательных занятий в Веб-дизайне. Оправданное ли это занятие решает каждый для себя сам, хотя очевидно, что в наше время дизайнеры и верстальщики все же уделяют этому свои силы и время.

К сожалению, одного только CSS частенько не достаточно, чтобы с легкостью оформить тот или иной элемент формы. Наверное поэтому многие используют штуки вроде Uniform для своих форм. Лично я всегда стараюсь сократить количество Javascript, используемого в подобных целях, поэтому хочу рассказать о совершенно нативном HTML+CSS методе кастомизации радио-кнопок и чекбоксов.

Уверен, что на большая часть специалистов на Хабре, применяют схожие методы, для тех же, кто использует js-библиотеки, вроде Uniform, надеюсь будет полезной эта статья.

Поехали!

Итак, сразу поставим цель: оформить чекбоксы и радио-кнопки, чтобы внешне они были похожи на js-магию Uniform, но сделать это максимально простым, нативным по отношению в HTML и CSS способом, а также избежать применения лишних тегов, сохраняя семантику. Как-то так.
Читать полностью »

Вместо вступления

Всем доброго времени суток!

Кастумизация элементов форм наверное одно из самых увлекательных занятий в Веб-дизайне. Оправданное ли это занятие решает каждый для себя сам, хотя очевидно, что в наше время дизайнеры и верстальщики все же уделяют этому свои силы и время.

К сожалению, одного только CSS частенько не достаточно, чтобы с легкостью оформить тот или иной элемент формы. Наверное поэтому многие используют штуки вроде Uniform для своих форм. Лично я всегда стараюсь сократить количество Javascript, используемого в подобных целях, поэтому хочу рассказать о совершенно нативном HTML+CSS методе кастумизации радио-кнопок и чекбоксов.

Уверен, что на большая часть специалистов на Хабре, применяют схожие методы, для тех же, кто использует js-библиотеки, вроде Uniform, надеюсь будет полезной эта статья.

Поехали!

Итак, сразу поставим цель: оформить чекбоксы и радио-кнопки, чтобы внешне они были похожи на js-магию Uniform, но сделать это максимально простым, нативным по отношению в HTML и CSS способом, а также избежать применения лишних тегов, сохраняя семантику. Как-то так.
Читать полностью »

За много лет работы в области web-разработки мне приходилось сталкиваться с самыми разными проблемами на этапе создания и отладки сайтов. Многие технические и идеологические проблемы многократно упоминались в различных статьях, но одна очень часто встречающаяся проблема кажется мне незаслуженно обойденной вниманием. Это учет длины строковых данных, которые будут присутствовать в элементах сайта. Речь о названиях рубрик, пунктах меню, данных во всевозможных списках, описаниях, всплывающих подсказках и так далее. Учесть все эти вещи — сложно. Но если не учесть, сложностей может оказаться еще больше. Статья предназначена, скорее, для фрилансеров или небольших групп разработчиков, где процесс разработки менее формализован, а каждый (в том числе — сомнительный) клиент более ценен, чем для более крупных web-студий. Пригодится она и тем, кто занимается web-разработкой, сидя в IT-службах крупных компаний, не желающих отдавать создание своих сайтов на сторону.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js