Search
Write a publication
Pull to refresh
674
0
Владимир Юнев @XaocCPS

Chief Architect

Send message

Вертикальный скрол c краткой информацией.

Reading time1 min
Views2.3K
Когда то давно, не помню где я читал о том, что обычный скрол можно сделать более функциональным и предлагалось ряд решений.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
Читать дальше →

Мультфильм «Цыган»: Да будет цвет!

Reading time3 min
Views596
main
Ну что ж, пришла пора поставить точку в работе с трехмерным образом нашего главного героя. Почти все готово: есть модель, текстура и даже анимация. Остались последние штрихи: шейдинг, визуализация и композитинг. Мы решили объединить описание этих 3-х этапов в одну статью, т.к. они очень тесно связаны друг с другом.
Читать дальше →

Счетчик времени загрузки

Reading time3 min
Views2.2K
Коллеги, други и просто хабралюди. С неделю назад на Web Optimizator был выложен код для счетчика загрузки (немного более подробно об измерении времени загрузки страницы можно прочитать в статьях про анализ скорости загрузки и разгон интернет-магазина).

Теперь каждый (не) высоконагруженный проект может себе позволить посмотреть, какая реальная скорость загрузки его страниц у конечных пользователей.

Время загрузки Web Optimizator
График распределения пользователей webo.in по времени загрузки у них этого сайта

Читать дальше →

Инвайты, офтопики, любимые теги и прочее…

Reading time3 min
Views1.1K
Всем привет! Так получилось, что сегодня Хабр пережил весьма жырное обновление, которое принесло нам всем целых три приятных штуки: раздача инвайтов, разделение блогов и любимые теги. Кроме того, были исправлены некоторые баги, глюки и недочеты (а также наверняка добавлены новые, куда ж без них), а также произведен частичный рефакторинг кода.

Впрочем обо всем по порядку.
Читать дальше →

Ошибка 404 на Хабре

Reading time1 min
Views7K
Даже на таком ресурсе как Хабрахабр случается так, что посетитель оказывается на странице, которой не существует. В таком случае сервер выдает сообщение об ошибке 404. Чтобы как-то подсластить горечь от такой неприятности, мы решили нарисовать забавную картинку.

image
Читать дальше →

Упрощаем разработку сайта с Site Helper

Reading time2 min
Views1.1K
Site Helper(SH) – тулза для помощи верстальщикам, а также хороший инструмент для общения верстальщик-программер-руководитель, а так же руководитель-клиент «не отходя от сайта» незаметно для обычных пользователей и в реальном режиме времени.

Наверное, каждый, кто хотя бы разверстал пиксель в пиксель под каждый браузер, сталкивался с ситуацией, когда что-то едет, не совпадают высоты ширины блоков… ситуация знакомая.
Тут может спасти PixelPerfect или сетка разметки на js или SH ;)

Ещё очень распространенная ситуация, когда заказчик или тестер нашел баг и не может понятно объяснить, где он находится. Ну, или заказчик решил добавить блок баннеров и также не может внятно объяснить, что и куда.
Читать дальше →

Свершилось — Jevix 1.0

Reading time2 min
Views2.6K

Jevix — система автоматического применения правил набора текстов (типографика) разработанная в ТМ™ для собственных проектов (Хабр, Кадабра, Дрибблер), с открытым исходным кодом, наделённая способностью унифицировать разметку HTML/XML документов, контролировать перечень допустимых тегов и атрибутов и предотвращать возможные XSS-атаки в коде документов.

В связи с катастрофической нехваткой времени, не смотря на мои обещания, код версии 1.0 выложен только сегодня. Но зато он всё же вышел! Причём вместе с исправлением вчерашнего хабрабага с перечёркиванием текста.

Теперь Jevix доступен на google code. Я не поссорился с Juks — автором perl-версии (если кто что подумал) — просто с google code мне работать проще.
Читать дальше →

Compact Framework: Грани прозрачности

Reading time4 min
Views1.5K

Вступление


К большому сожалению разработчиков, Compact Framework, да и native-функции тоже, не поддерживают альфа-канал с разной прозрачностью у индивидуальных пикселей. Это означает, что нет возможности создавать красоту неописуемую с плавными переходами между изображениями. Однако, что же делать, если хочется иметь хотя бы подобие «полного» альфа-канала, а именно, выводить полупрозрачные изображения, у которых есть ещё и полностью прозрачные участки?
Читать дальше →

Compact Framework: адаптируем графику приложения под текущую цветовую схему

Reading time5 min
Views1.1K

Вступление


Как известно, на Windows Mobile устройствах существует возможность смены цветовой схемы. В случае, если приложение не использует графические элементы, достаточно воспользоваться набором цветов, предоставляемых классом SystemColors, чтобы приложение соответствовало текущей схеме. Из наиболее часто используемых имеет смысл отметить ActiveCaption, ActiveCaptionText, InactiveCaption, InactiveCaptionText, WindowText и.т.д. Также не стоит забывать про класс SystemBrushes, в котором представлены готовые для работы кисти — нет необходимости вызывать конструкторы и т.д.

Но что делать, когда есть набор изображений, которые должны соответствовать текущей цветовой схеме? Неужели делать набор картинок под все основные цвета?
Читать дальше →

.NET Framework. Memory management

Reading time11 min
Views23K
В данной статье рассматриваются некоторые моменты по работе с памятью в .NET Framework. Статья описывает работу GC, как GC контролирует свои хип, режимы работы GC. Приведены примеры, по использованию памяти в обход GC. Я изложил не только легко доступную информацию, ну и ту, что доступна только при изучении дампов приложений, написанных на .NET. Надеюсь статья получилась информативной и не очень скучной. Следующая статья будет про загрузчик, JIT, и его структур данных, таких как Method Tables, Method Descriptors и EEClass.
Немного дополнительной информации о управляемой памяти в .NET

Живой Photoshop

Reading time1 min
Views766
Очень понравилось, как неизвестная мне wandaaaa с известного мне Flickr «оживила» интерфейс известного нам всем Photoshop`а. Решил поделиться позитивом :)
изображение
А тут можно ознакомиться с процессом создания этой красоты.

Зачем нужны иконки

Reading time3 min
Views2.1K
Зачем нужны иконки
Вы не поверите, но в 85-м году компания Apple в своем руководстве для разработчиков прямо призывала всегда, когда это возможно, стараться заменять надписи пиктограммами. Якобы пиктограммы понятнее начинающему пользователю, чем слова. Конечно, это полная чепуха. Словами намного проще высказать почти любую идею.

Если только вы не проектируете интерфейс графического редактора В этом случае, как говорится, лучше один раз увидеть, чем сто раз прочитать:

Зачем нужны иконки
Нижние 6 иконок прямо изображают результат применения соответствующих инструментов.

Такой подход применим также в интерфейсах конструкторских, архитекторских программ, и в других интерфейсах, основанных на принципе WYSIWYG. Но часто ли нам, простым дизайнерам интерфейсов из Самары, приходится прилагать руку к интерфейсам подобного софта? Признаюсь, не очень часто. Правда такова, что в современном цифровом мире мы гораздо чаще имеем дело с вещами, не имеющими визуального воплощения вовсе.

Читать дальше →

PostgreSQL. Пользовательские данные в рамках сессии

Reading time3 min
Views21K
Недавно у меня возникла интересная задача по хранению некоторых данных в рамках сессии работы с БД PostgreSQL (TTL = время жизни единичного коннекта к базе). Изначальный вопрос был таков…
А можно ли вместо вот такой конструкции:
some_procedure1(user_id, param1, ... , paramN);
...
some_procedureX(user_id, param1, ... , paramN);

использовать такую:
set_user(id);
some_procedure1(param1, ... , paramN);
....
some_procedureX(param1, ... , paramN);

т.е. использовать некую глобальную переменную в рамках сессии для хранения значение идентификатора пользователя, которое будет доступно всем процедурам внутри базы.
Порывшись в гугле, поспрашивав на форуме, я нашел даже не одно решение, а целых 3! Чем с вами и делюсь…
Читать дальше →

Иерархические (рекурсивные) запросы

Reading time10 min
Views541K
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

Читать дальше →

Новые возможности C# 4.0. Часть 3: Ковариантность обобщений

Reading time3 min
Views15K
Когда обобщения(generic) пришли к нам вместе с C# 2.0, они стали одной из лучших возможностей в этом языке. Те, кто когда-либо создавал классы строготипизированных коллекций в C# 1.0 знает, насколько они упростили нам жизнь и уменьшили количество кода. Единственная проблема заключалась в том, что обобщенные типы не следовали тем же правилам наследования, которые были в силе для обычных типов.
Читать дальше →

Графические фильтры на основе матрицы скручивания

Reading time6 min
Views43K
UPD: Заголовок изменен, что бы более соответствовать теме статьи

В статье пойдет речь об использовании convolution matrix (матрицы скручивания или матрицы свертки), с помощью которой можно создавать и накладывать на изображения фильтры, такие как blur, sharpen и многие другие.

Cтатья будет интересна не только веб-программистам, но и всем кто так или иначе занимается программной обработкой изображений, поскольку функции для работы с матрицей скручивания имеются во многих языках (точно известно о php и flash). Так же, статья будет интересна дизайнерам, использующим Adobe Photoshop, поскольку в нем имеется соответствующий фильтр (Filter-Other-Custom).

Примеры будут на языке PHP с использованием библиотеки GD. Теория, практика, примеры (осторожно, много картинок!)

под катом

Template + jQuery + MVC = jsMVC

Reading time5 min
Views2.9K
Разрабатывая сайты мне всегда хотелось облегчить себе жизнь, так я познакомился с jQuery. Все было бы хорошо если бы проекты не погружались в зыбучую смесь UI и js кода. Следующим этапом стало то что мы выделили UI Шаблоны в отдельные файлы, код стал более чистым, но, черт побери, все равно приходилось писать кучу UI кода, например вставка и настройка дополнительных компонентов в шаблон, event bind, надписи и т.д. И только после всего этого на выходе получался нужный нам компонент. Возникало, конечно, много проблем, особенно когда дизайнер менял шаблон, но все это решаемо.
Читать дальше →

Разработка на PC и производительность — Memory Latency

Reading time7 min
Views11K
Herb Sutter (автор Exceptional C++, бывший глава ISO C++ standards committee, мистер Free Lunch Is Over и прочая, и прочая) работает в Microsoft и иногда по средам читает атомные лекции.

Я наконец-то на одну такую попал, и очень радовался. На умных мужиков всегда радостно поглядеть и послушать.
Для отчета — кроме Херба, видел живого Олександреску и живого Walter Bright (который "D").

Лекция называлась «Machine Architecture: Things Your Programming Language Never Told You» (здесь можно скачать презентацию и видео) и была про конкретную часть abstraction penalty — Memory Latency.

Я попытаюсь коротко рассказать о ключевой мысли лекции. Она простая, очевидная и тысячу раз сказанная. Думаю, еще раз повторить азбуку — никогда не повредит.
Читать дальше →

Developer Tools — online изменения CSS на сервере

Reading time1 min
Views3.1K
Как то сидя на работе и смотря как дизайнер «ковыряется» в «кишках» нашего веб проекта, я заметил что дизайнер по «100 раз» перегружает сайт ради того что бы применились CSS. Да, есть FireBug, но он меняет css «на лету» и не сохраняет изменения в файлы. Порой это и не возможно, так как сайт находится на удалённой машине.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity