• Запуск веб-сайта на Windows Web Server 2008 R2 — шаг за шагом

      Для тех, кто никогда не разворачивал веб-сайты на Windows Server, процесс может казаться сложным и непонятным. Поэтому, в этой небольшой статье-инструкции, я хочу рассказать о полном процессе установки и настройки — от момента загрузки с установочного диска, до развертывания Wordpress. Я покажу, что процесс простой и даже приятный.
      Читать дальше →
    • Что такое качество в веб-дизайне: примеры и рекомендации. Часть 3

      • Translation
      Не забудьте почитать:
      Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь)
      Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2. (или здесь)

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

      05. Сдержанность и деликатность


      Дизайнеры вечно придумывают, как поразить уникальным дизайном или особыми его деталями. Но иногда, вы сможете достичь большего эффекта за  счет сдержанности. Иногда выходит, что хороших вещей должно быть не слишком много. Хороший дизайнер в состоянии определить, где та черта, за которую не следует переступать, и старается не переборщить с дизайнерскими приемами или особенными эффектами.

      Читать дальше →
    • Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2

      • Translation
      Не забудьте почитать: Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь).

      А сегодня поговорим о том, что такое хорошо продуманная типографика и как правильно организовать элементы на странице.

      03. Хорошо продуманная типографика


      Хотя реальные тексты для сайта будет писать не дизайнер, они играют такую же важную роль, как и общее качество контента. Дизайнер должен потрудиться, чтобы тексты легко читались и удерживали внимание. Существует множество способов сделать текст легко читаемым и приятным глазу. По мере перечисления правил и норм того, что следует и чего не следует делать, я приведу несколько примеров сайтов, где рациональная типографика действительно работает.
      Читать дальше →
    • Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1

      • Translation
      Несколько выдающихся примеров и рекомендаций по созданию качественного дизайна веб-страницы или блога

      quality

      Многие люди склонны описывать предоставляемые ими услуги по веб-дизайну как «качественные». Но что означает здесь слово «качество», как определить, является дизайн качественным или нет? Что ж, я вижу несколько способов определить качество применительно к сфере веб-дизайна. Ведь если однажды определить, что позволяет создавать качественный веб-дизайн, можно использовать эти же приемы для оттачивания собственного стиля.

      Чтобы объяснить, как я понимаю качество в дизайне веб-сайтов, я собрал несколько рекомендаций и примеров.
      Читать дальше →
    • Алгоритмы поиска, обратный индекс — Часть 1

        image
        C этой статьи я начинаю цикл статей по SEO, в которых будет теория, практика и советы. Начнем естественно с азов. В материале вкратце описываются алгоритмы, по которым современные поисковые системы осуществляют поиск, как проходит индексация, какие математические модели используются при поиске документов.


        Что вы узнаете?


        Алгоритмы поиска. Что представляет из себя индексация, инвертированный индекс. Математические модели, используемые современными поисковыми системами.
        Узнать больше
      • Обзор планшетов

          Здравствуйте. В этом топике речь пойдет о выборе такой вещи, как планшет. Ниже вы найдете коротенькие обзоры, технические характеристики и цены на планшеты от таких производителей как Wacom, Genius и Hanvon. Будут рассмотрены следующие модели — Wacom Bamboo Fun, Wacom Intuos3, Genius G-pen m712 и m609, Hanvon Art Master, Hanvon GraphicPal.
          Читаем
        • Используем Adobe Illustrator для создания макета страницы

          • Translation
          Данное руководство создано для тех, кто уже умеет пользоваться Adobe Illustrator, но пока не знает всех тонкостей работы с ним и хочет познакомиться поближе.

          Товарищ CurlyBrace уже сверстал представленный здесь макет, спасибо ему!

          Для начала посмотрите на то, что мы будем стараться сделать:



          Читать дальше →
        • Хабрахакер 2.3


            Апгрейд скрипта.
            Исправлена ошибка с ресайзом (спасибо spiritzzz! нука все ему кармы кинули ;) ). Слегка поменял рендеринг формы, и теперь при наведении бордюрчик появляется.
            Почти не тестировалось.

            Установка на лиса, оперу и сафари описана в предыдущем топике. Если вы уже знаете, как ставить, вот скрипт (напоминаю, фоксом с установленой грейсманки надо его лишь открыть, а оперчанам и сафарцам — скачать)
          • Создаем свою тему iGoogle

              Совсем недавно, 15 января, на официальном блоге Google был анонсирован Google Themes API. Тогда же была опубликована документация, благодаря которой каждый пользователь iGoogle может создать свою собственную тему. Давайте пройдемся по документации и узнаем побольше об этом событии. Оригинал статьи — в моем блоге. Пожалуй, начнем:

              Что такое тема?

              Тема — ваш собственный дизайн для страницы iGoogle. Тема описывается через XML, содержащий такие параметры для страницы, как, наприме, фон и цвет текста. Тема может быть всего лишь простой цветовой настройкой для «шапки» и логотипа iGoogle, или содержать множество картинок и способность меняться, например в зависимости от времени суток или года. Каждая из этих страниц, например для вечера или дня, назвается оболочкой.

              Читать дальше →
            • Объяснение фотореалистичной живописи Яна Вермеера

                Ян Вермеер, «Урок музыки» (1662-1665)

                Известный в сообществе Amiga и Siggraph хакер Тим Дженисон (Tim Jenison) потратил много месяцев, чтобы воспроизвести предполагаемую технику живописи, которую использовал голландский художник Ян Вермеер в середине 17 века. До сих пор остаётся неясным, каким образом он мог создавать настолько фотореалитичные картины за полтора века до изобретения фотографии.

                Как эксперт по компьютерной графике Тим Дженисон был уверен, что художник использовал какую-то технику захвата изображений, в том числе с копированием цвета. На это явно указывают некоторые детали картин. Например, текстура белой стены на картине «Урок музыки».
                Читать дальше →
              • Асинхронные задачи в С++11

                  Доброго времени суток, хотел бы поделиться с сообществом своей небольшой библиотектой.
                  Я программирую на С/C++, и, к сожалению, в рабочих проектах не могу использовать стандарт C++11. Но вот пришли майские праздники, появилось свободное время и я решил поэкспериментировать и по-изучать этот запретный плод. Самое лучшее для изучения чего либо — это практика. Чтение статей о языке программирования научит максимум лучше читать, поэтому я решил написать маленькую библиотеку для асинхронного выполнения функций.
                  Сразу оговорюсь, что я знаю, что существует std::future, std::async и тп. Мне было интересно реализовать самому нечто подобное и окунуться в мир лямбда-функций, потоков и мьютексов с головой. Праздники — отличное время для велопрогулок.
                  Читать дальше →
                • Синтаксис объявления указателей на функции в С++

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

                    Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.

                    На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
                    Читать дальше →
                  • Несколько слов о размере структур в С/С++ и о том, почему так получилось

                      Ниже по тексту термином «платформа» будем называть любой заданный набор из процессора, компилятора и операционной системы, под которой скомпилированный код будет запускаться.

                      Исторически язык C создавался таким, что среди главных целей, положенных в его основу есть такие:
                      • быть максимально независимым от какой-то конкретной платформы,
                      • быть максимально эффективным на всех платформах. В идеале — на всех.

                      Немножко о разнообразии платформ. Их (платформ) существует огромное количество — среди процессоров есть и 16-битные, и 32-битные, и 64-битные. Есть такие, которые умеют выполнять операции с плавающей точкой на аппаратном уровне, какие-то поддерживают операции с двойной точностью, а в каких-то процессорах FPU отсутствует полностью. Процессоры отличаются также внутренним порядком следования байт в слове (big/little endian), как именно процессор работает с внешней памятью, и т.д. и т.п.

                      И на весь этот зоопарк существует один-единственный Стандарт языка C. Как же это удалось? Вот тут и начинается самое интересное.

                      Читать дальше →
                    • 7 шагов по переносу программы на 64-битную систему

                        Аннотация


                        В статье рассмотрены основные шаги, обеспечивающие корректный перенос 32-битных Windows приложений на 64-битные Windows системы. Хотя статья ориентирована на разработчиков, использующих язык Си/Си++ в среде Visual Studio 2005/2008, она будет полезна и другим разработчикам, планирующим перенос своих приложений под 64-битные системы.

                        Читать дальше →
                      • Вызов функции с «неизвестным» именем на C++. Часть 1 — cdecl

                          Постановка задачи


                          Что же я имел ввиду, когда написал «неизвестное» имя функции? А значит это то, что имя функции, её параметры и, в конце концов, соглашение вызова, становятся известными только во время выполнения программы. Займемся её вызовом! =)
                          подробности
                        • Создание своего Windows Service

                            Я решил провести один эксперимент, суть его пока не могу разглашать, но по результатам обязательно опишу его))) Для этого эксперимента, мне нужно написать приложение которое работает как сервис в Windows.
                            Читать дальше →
                          • DLL Injection

                              DLL инъекция дает возможность выполнять свой код в адресном пространстве уже запущенного процесса. Многие используют инфицирования для написания читов для игр, выполнения вредоносных действий для системы и т.п. Но данный прием не обязательно применять для реализации коварных планов, а например, для обновления своего приложения.
                              Читать дальше →
                            • STL Filter — скрипт для лаконичных ошибок STL

                                STL славится своей способностью заполнять метры экранного пространства сообщениями об ошибках. Надоело смотреть на экран и видеть перлы вроде:

                                testmap.cpp:25: error: no matching function for call to ‘std::map<int, double, std::less, std::allocator<std::pair<const int, double> > >::map(int, int, int)’
                                /usr/include/c++/4.3/bits/stl_map.h:175: note: candidates are: std::map<_Key, _Tp, _Compare, _Alloc>::map(const std::map<_Key, _Tp, _Compare, _Alloc>&) [with _Key = int, _Tp = double, _Compare = std::less, _Alloc = std::allocator<std::pair<const int, double> >]
                                /usr/include/c++/4.3/bits/stl_map.h:165: note: std::map<_Key, _Tp, _Compare, _Alloc>::map(const _Compare&, const _Alloc&) [with _Key = int, _Tp = double, _Compare = std::less, _Alloc = std::allocator<std::pair<const int, double> >]


                                ну и еще пара десятков строк.

                                Читать дальше →
                              • Многопоточность, общие данные и мьютексы

                                  Введение


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

                                  Для блокировки общих данных от одновременного доступа необходимо использовать объекты синхронизации.

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

                                  Неудаление мютекса приводит к утечке памяти, незахват — к некорректным данным, а неосвобождение — к блокировке всех функций, работающих с общими данными.

                                  Ниже рассматривается работа с мютексами в Windows и Unix, подобная идея может быть использована при работе с другими объектами синхронизации.

                                  Эта идея является частным случаем методики «Выделение ресурса — есть инициализация (RAII)».

                                  Далее