• О чём рассказали Хабрасоздатели

      В аудитории было около 150 человек, в основном, естественно, студенты, а также разработчики, менеджеры и пользователи интернет-продуктов. Авторам лучших вопросов из зала дарили книгу Антона Попова «Блоги. Новая сфера влияния».
      Видеозапись встречи (500 Мб AVI), альтернатива
      Презентация от Мио

      Начало проекта

      О продукте, похожем на сегодняшний Хабр Денис Крючков задумался ещё во время работы в Вебпланете. После того, как он был оттуда уволен, то занялся идеей более плотно — а именно — 2 месяца гулял по городу, размышлял, наблюдал. Так родилась концепция ресурса, где бы комментирующие имели равные права со штатными редакторами и журналистами — сам были бы такими же авторами. Далее в течение ещё 2-х месяцев он сам отрисовал дизайн, договорился со знакомым программистом о разработке первой версии сайта. То, как быстро вносились исправления в систему, не устраивало Дениса и он решил подойти к проекту более фундаментально — взял кредит в банке, занял у родителей и принялся за создание полноценной версии системы.

      Хабрареволюция

      Первичная концепция сайта была такова, что посты редакции публиковались в разделе «тексты», а посты остальных участников — в разделе «блоги» (?). Однако с течением времени начало нарастать недовольство пользователей неравенство в правах и была совершена «хабрареволюция», при которой каждый пользователь получил право быть полноценным автором.
      Читать дальше →
    • Практический JS: проблемы innerHTML

      • Перевод
      Примечание: ниже перевод статьи Julien Lecomte «The Problem With innerHTML», в которой автор рассматривает проблемы при использовании метода innerHTML в современных браузерах и предлагает ряд советов, как ее можно избежать. Мои комментарии далее курсивом

      Свойство innerHTML крайне популярно среди веб-разработчиков в силу своей простоты и удобства, поскольку оно совершено элементарно позволяет заменить HTML-содержание у конкретного тега. Можно также воспользоваться DOM Level 2 API (removeChild, createElement, appendChild), но использование innerHTML гораздо более простой и эффективный способ для модификации DOM-дерева. Однако, есть ряд проблем при использовании innerHTML, которых следует избегать:

      • Неправильная обработка свойства innerHTML может привести к атакам, связанным со script-инъекциями (XSS) в Internet Explorer, когда HTML-строка содержит вызов <script>, помеченного как отложенный: <script defer>...</script>
      • Выставление свойства innerHTML уничтожит все текущие вложенные HTML-элементы со всеми обработчиками событий, что потенциально может вызвать утечки памяти в некоторых браузерах.


      Есть и еще несколько более мелких недостатков, которые тоже стоит упомянуть:

      • Нельзя получить ссылку на только что созданные элементы, вам приходится добавлять код для получения ссылки на них вручную (используя DOM API).
      • Вы не можете выставить innerHTML для всех HTML-элементов во всех браузерах (к примеру, Internet Explorer не позволяет выставить innerHTML для строки таблицы (tr)).


      Читать дальше →
    • Работа с временными зонами в PHP

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

        Далее перевод :-)
        Читать дальше →
      • В интернете началась тотальная замена IP-адресов

          Сегодня ночью организация ICANN, осуществляющая надзор за использованием интернет-протоколов, начала добавлять в DNS-сервера записи, содержащие адреса в формате протокола IPv6, что означает присвоение каждому новому доменному имени адреса в новом усовершенствованном формате.
          Читать дальше →
        • 10 принципов эффективного веб-дизайна

          • Перевод
          Юзабилити и практичность, а не визуальный дизайн, определяют успех или провал любого веб-сайта. Так как именно пользователь — единственный, кто кликает мышкой и, таким образом, принимает все решения, то одним из стандартных подходов для создания успешных и прибыльных веб-дизайнов стал «дизайн, ориентированный на пользователя» (user-centric design). В конце концов, если пользователь не умеет пользоваться той или иной функцией, ею можно легко пренебречь.

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

          Читать дальше →
        • Разгони свой сайт: gamma-версия

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

            Почему оптимизация?



            На мой взгляд, на текущий момент веб-разработчики очень мало уделяют внимания доступности (accessibility) и удобству пользования (usability) проектов, над которыми работают. Для них сайт — это килобайты кода и пара картинок, которые нужно как-то показать клиенту. О пользователе никто при этом не думает, в лучшем случае, прикрываясь такими выражениями, как: «у меня отсюда и так все быстро грузится» или «каналы сейчас не те, что 10 лет назад».

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

            Почему клиентской части?



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


            Естественно, это совсем не так. Загрузка страницы это не только HTML. Существует множество инструментов, которые позволяют в этом убедиться, проанализировать процесс целиком и найти в нем слабые места. Но именно такой анализ, который находится, фактически, на стороне пользователя и должен быть проведен в первую очередь при оценке доступности веб-сайта, зачастую вообще не проводят либо делают быстро и некачественно. А ведь он может позволить уменьшить время загрузки страниц на порядок.

            WEBoptimizator

            Читать дальше →
          • Проблемы с округлением в CSS

            • Перевод
            Посмотрите на эту страницу. Синим цветом выделены 4 плавающих блока с шириной равной 25% у каждого, которые находятся в контейнере с шириной 50px. Теперь вопрос: Какова ширина каждого блока?

            Ширина эта должна быть равна 12.5px, но т.к. мы можем использовать только целые значения, то приходится округлять значения. И тут же возникает вопрос: В какую сторону округлять? В большую, в меньшую или в обе? Результаты думаю вас удивят, как и меня.


            В итоге мы имеем три абсолютно разных лагеря.

            Округление в меньшую сторону — И Opera и Safari округлили значение ширины до 12px. В результате чего образовался 2-x пиксельный пробел (помечен зеленым цветом) справа от блоков. Если вы когда-либо озадачивались, почему ваша красивая навигация не заполняет все пространство контейнера, теперь вы знаете ответ.
            Округление в большую сторону — 6-й и 7-й Internet Explorer увеличивают ширину до 13px, что приводит к «поломке» структуры сайта.
            Округление в обе стороны — Firefox 2 и 3 сочетают оба подхода, округляя ширину одних блоков в меньшую сторону, а других в большую. Побочный эффект заключается в том, что ширина блоков теперь имеет разное значение, несмотря на то, что в CSS задано одно значение. К тому же, если получить значение ширины с помощью Javascript, то оно будет равно 12.5px, не давая понять в какую сторону было произведено округление. Есть и еще один неприятный момент. В Firefox 3 меняется порядок округления.

            David Baron, один из разработчиков Mozilla, разъяснил ситуацию:

            — Мы стараемся соблюдать все нижеописанные правила, которые, однако же, не могут быть удовлетворены одновременно:

            1. 4 смежных объекта шириной/высотой 25% (например), начинающиеся у одного края внешнего контейнера, должны заканчиваться у другого. Не должно появляться никаких свободных или лишних пикселей.
            2. Объекты, которые являются логически смежными, всегда должны визуально касаться друг друга. Не должно быть никаких пустых пробелов или наложений, возникающих из-за ошибки округления.
            3. Объекты с одинаковой шириной должны занимать такое количество пикселей, которое было задано.
            4. Границы объектов не должны быть размыты.

            Эти правила могут быть полезными, но придется пожертвовать по меньшей мере одним из них, для того чтобы удовлетворить остальным.
          • Как найти партнера по стартапу?

              Это, конечно, хорошо, искать партнеров по будущему проекту среди друзей, но если среди них их нету подходящих, что же делать? Аналогично, если проект испытывает проблемы и необходима свежая кровь? Неужели в век Веб 2.0 сложно найти того, кто также, как и ты интересуется данным направлением и поможет реализовать идею?

              Как найти партнера?
            • Лаконичность в описании

                Не секрет, что при составлении бизнес плана, предприниматели уходят в дебри экономических расчетов и описания функциональности частенько теряя главное.
                Один из ведущих венчурных фондов Силиконовой Долины в свое время рекомендовал предпринимателям пройти простенький тест. Управляющие партнеры из Секвои считают, что проект достоин рассмотрения, если его идею можно описать на обратной стороны визитной карточки, так, чтобы идея была привлекательна для потенциальных потребителей, инвесторов, партнеров и сотрудников компании. Такое описание должно быть коротким, полным и «sexy» (подразумевается, что оно должно возбудить всех потенциальных участников).
                Читать дальше →
              • Опыт верстки под Pocket PC на примере

                  Не так давно я запустил небольшой проект, призванный помочь «мобильным» людям объеденяться, общаться на форуме, меняться мыслями на хабраподобных блогах итп. Однако, как правильно было замечено в комментариях, проект якобы «мобильный», а с мобильных устройств он смотрится хреновенько, не смотря на валидную xhtml верстку итп. «Черт подери», — подумал я, включил свой FS loox n560 и начал потихоньку переверстывать темплейты для pda версии.
                  Сначала я думал обойтись подключением «handheld.css» и написанием КПК-ориентированных стилей, как я это делаю обычно для «печатных» версий. Но достаточно быстро понял, что не все проблемы можно решить с помощью CSS. Тем более принцип построения тех же «печатных» страниц сводится обычно к: «Это скрываем, это скрываем, это переносим сюда, это туда, а это тоже скрываем». Все же мы имеем дело с мобильными устройствами и грузить лишний траффик, чтобы в итоге не отображать его это глупо… В итоге пришел к тому, что следует не только CSS стили переписать, но и шаблоны переверстать. Начал с более маленького и простого проекта, чтобы попрактиковаться…
                  Читать дальше →
                • Верстка под PDA, часть 2

                    Уже писал о верстке под PocketPC устройства, на неделе доработал все то, что так смущало и подвел небольшие итоги.

                    1. Резинка.
                    Верстка под PDA должна быть резиновой. Без дополнительного ПО эмулировать разное разрешение на PDA устройствах нельзя. Да и никому это особо не нужно =) Чаще всего это 320х240 или 640х480, хотя бывают и нестандартные разрешения. В любом случае сайт должен смотреться во всех разрешениях одинаково, т.к. их разброс не такой и большой, а значит верстка должна быть резиновой.

                    2. Одна колонка.
                    Есть исключения, но чаще всего скелет сайта должен быть одноколоночным. Т.е. исходник сайта может быть 2-х, 3-х колоночным, но PDA версия чаще всего превращается в одну колонку, т.к. места и так мало. Чаще всего левая колонка (навигация) превращается в <select>, а правая сползает под основной контент.

                    3. Авто определение PDA устройства + pda.site.ru домен.
                    Определить PocketPC не так и сложно. HTTP_USER_AGENT содержит «windows ce» + браузер (mobile ie) добавляет ряд своих заголовков, например HTTP_UA_OS. Соответственно при просмотре site.ru с мобильного устройства должна отображаться оптимизированная верстка. Однако помимо этого необходим и безусловный способ получения PDA верстки, самое простое — поддомен «pda». Это просто удобно + важно для всяких поисковых ботов, да и заранее сообщает, что есть и pda версия сайта…
                    Читать дальше →
                  • Жизнь после Google, с миллионами в кармане. Часть первая

                    • Перевод
                    moneyЧто бы вы делали, окажись на ваших руках 10 или 100 миллионов долларов? Ушли бы на пенсию, ежедневно ходили на работу в обогатившую вас компанию, или преследовали свои давние мечты?

                    Это вопрос, который задают себе сотни давних работников Google. По некоторым оценкам, более 900 сотрудников в один миг превратились в миллионеров, когда Google в 2004 году стала публичной компанией, и их счета раздувались одновременно с увеличением стоимости акций. В прошлую пятницу цена акций при закрытии торговой сессии составила 600,25 долларов — более чем 600-процентный рост цены размещения в 85 долларов.

                    Согласно последним отчётам компании, в сентябре 2007 года на руках у сотрудников находилось 11 662 917 опционов на покупку акций. Их общая стоимость на настоящий момент — 4,48 млд. долларов, которые потенциально могут получить их владельцы при продаже. Согласно аналитическим отчётам Equilar, стоимость пакета акций соучредителя Google Лари Пэйджа составляет 18,87 млрд., Сергея Брина — 18,51 млрд.
                    Читать дальше →
                  • Jevix 0.9.5



                      Опубликована новая версия Jevix — 0.9.5.

                      Основное отличие новой версии в том, что с этих пор Jevix можно использовать как средство для всестороннего контроля и преобразования текстовых данных больших интернет-проектов с «User-Generated» материалом.

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

                      Читать дальше →
                    • JavaScript: жать или не жать?

                        После публикации статьи на тему архивирования JS/CSS-файлов для последующей выдачи клиенту, я задумался на тему, какой же метод минимизации (minify) следует использовать. В докладе на конференции ClientSide'2007 не удалось установить четкого критерия, чем и как лучше всего сжимать JavaScript-файлы. Данная заметка посвящена рассмотрению как раз этой проблемы.

                        Задача



                        В качестве цели исследования был закреплен анализ всех известных средств статической минимизации JavaScript-кода, после чего нужно было ответить на три основных вопроса:

                        • Имеет ли смысл пользоваться каким-либо минимизатором JS-кода?
                        • Есть ли среди них универсальное средство, показывающее лучшие результаты в подавляющем большинстве случаев?
                        • Если такого средства нет, то каковы критерии использования набора инструментов?


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

                        читать дальше на webo.in →
                      • Сделаем это по-быстрому – habrahabr за пару часов

                          habradrupal
                          В последнее время на drupal.ru и habrahabr.ru частенько проскакивают темы вроде: «Делаю социальную сеть – бюджет пара сотен! Помогите сделать хабрастартап!» Отечественные аналитики связывают эту тенденцию с тем, что кризис на ипотечном рынке США тянет вниз за собой рынок в целом, что заставляет игроков на бирже вкладывать в высоколиквидные и надежные активы. Традиционно прибежищем инвесторов в смутные времена является золото, медь да стартапы на просторах бывшего СССР.

                          Как быть, если денег и других ресурсов пока нет, а вот почувстовать себя Денискиным или Андреевым хочется уже сегодня? Попробуем исполнить соцзаказ и попытаемся по-быстрому сделать сайт напоминающий хабр.
                          Читать дальше →
                        • Практический JS: оптимизируем CSS expressions

                          • Перевод
                          Примечание: ниже находится перевод статьи «CSS Expression Optimization», в которой автор немного освещает использование и проблематику динамических свойств в CSS (aka CSS expressions). Также автор предлагает способ их оптимизации (исполнение один-единственный раз вместо постоянного выполнения). Далее приведены несколько тезисов с ClientSide'2007 по заявленной тематике. Мои комментарии даны курсивом.

                          CSS expressions были впервые представлены в Internet Explorer 5.0, который позволял назначать JavaScript-выражение в качестве CSS-свойства. Например, следующий код позволит разместить элемент в зависимости от того, какого размера окно браузера.

                          #myDiv {
                             position:   absolute;
                             width:      100px;
                             height:     100px;
                             left:       expression(document.body.offsetWidth  - 110 + "px");
                             top:        expression(document.body.offsetHeight - 110 + "px");
                             background: red;
                          }
                          


                          Не самый лучший способ решения поставленной задачи, но в качестве примера его достаточно.

                          читать дальше на webo.in →
                        • Как делались иконки машинок для Автокадабры



                            У каждого пользователя Автокадабры есть виртуальный гараж, где хранятся его машины. Разработчики проекта (Тематические Медиа) обратились к нам (Турбомилк) с непростой задачей — нарисовать иконки для всех легковых автомобилей на свете. Но не простые иконки, а «перекрашиваемые», чтобы пользователи могли выбирать любой цвет для своего авто.

                            Читать дальше как делать иконки машинок-хамелеонов