• You are the CSS to my HTML

      Всем добрый день!

      Как выразить чувства «компьютерщику»? Пожалуй, так:



      Фраза, понятная не всем, но «знающие» оценят сколько души вложено в эти слова :-)
    • Полный html-код для вывода списка регионов России

        При создании формы, в строке «регион» потребовалось сделать перечисление регионов. Поискав в сети подобного списка, да ещё к тому же совпадающего с текстом Конституции, не нашёл. В итоге создал свой. Делюсь им со всеми желающими.

        1. Важно — регионов сейчас 83 (upd!). Не все программисты заметили, что в последние годы некоторые регионы успели объединиться. Под катом html-код.

        2. Создал три варианта для Value. Один по названиям регионов, второй по автомобильным кодировкам, третий — по ISO. Регионы отсортированы по тому, как идут в Конституции, однако у новообъединённых регионов вроде Забайкальского края, код не соответствует положению.

        UPD: регионов всё-таки 83. Прошу прощения. Код поправлен.
        UPD: создан третий вариант с ISO-3166-2 в качестве ID и Value для регионов.
        UPD: добавил недостающие названия республик.

        Пожалуйста, пользуйтесь.
        Читать дальше →
      • Капча с помошью MagickWand

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

          Как это все сделано?
        • О том, как я впустую потратил пару штук баксов

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

            Сначала я расскажу, как я облажался и что в итоге получил, а потом, что я из этого извлек.

            Первый старт магазина, а точнее первый движок, был Shopcms (в то время avalonshop). Не расписывая все прелести данного движка, скажу, что он тяжел для модификаций. Еще в те далекие годы, даже сделать нормальный дизайн для двига, а потом натянуть его стоило бы нам, по нашим тогдашним меркам, немалых денег. А за три месяц мы поняли, что надо менять дизайн. Да и кроме дизайна, хотелось сделать красивый, удобный сайт.

            Вот тут-то и начались повальные ошибки.
            Читать дальше →
          • Rounded corners HTML+CSS+jQuery

              Закругленные уголки опять волнуют хабравчан, за последние 24 часа наблюдал 2 интересных топика с различными способа закругления этих самых уголков. Решил показать то, чем пользуюсь сам.
              Сразу хочу оговориться, что я не претендую на уникальность данного способа, но додумался до него сам.
              image
              Читать дальше →
            • Багрепорт по материалам подготовки к ЕГЭ по информатике

                1. Начнем с самой безобидной ошибки. На официальном сайте ЕГЭ есть демо-версия экзамена. В ответе на задание C4 объявлена целочисленная переменная k, которая в теле программы ни разу не используется.
                Вот полный текст программы

                var nc:array[1..99] of integer;
                p:1..99;
                c:char;
                i, k, N, min: integer;
                begin
                readln(N);
                for i:=0 to 99 do nc[i]:=0;
                for i:=1 to N do
                begin
                repeat
                read(c );
                until c=’ ’; {считана фамилия}
                repeat
                read(c )
                until c=’ ’; {считаны инициалы}
                readln(p);
                nc[p]:=nc[p]+1;
                end;
                min:=N;
                for i:=1 to 99 do
                if nc[i]>0 then
                begin
                if nc[i]<min then min:=nc[i];
                end;
                for i:=1 to 99 do
                if nc[i]=min then
                writeln(i);
                readln
                end.


                А ведь если написать так на реальном экзамене, балл, пожалуй, снимут.

                2. На официальном сайте ЕГЭ по Забайкальскому краю можно пройти пробное онлайн-тестирование по материалам экзамена.
                Вот задание A5.
                image

                Даже не производя вычислений, можно сказать, что сумма этих чисел будет явно больше одного байта, и, кроме того, будет числом четным. Ну и можно заметить, что первый и второй варианты ответов удивительно похожи.
                Я, конечно, подозреваю, что на самом деле x=A6 в шестнадцатеричной системе счисления, а y=75 в восьмеричной. Тогда получается аккурат 11100011. Но основания систем записаны не подстрочными символами.

                Читать дальше →
              • Инфляция и образование

                  EduflationЯ понимаю, что этот топик не совсем по тематике Хабрахабра, но тем не менее он касается каждого из нас. И я просто хочу обратить Ваше внимание на вопрос, который меня очень беспокоит.

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

                  В прошлом столетии, да, в том самом, где осталась твоя молодость, если у тебя был диплом специалиста — то получить работу не представляло особого труда. По крайней мере в западном мире. В нашем тебя просто направляли в конкретное место, хочешь ты того или нет. Но суть от этого не меняется.

                  А все из-за того, что иметь высшее образование раньше — было круто. Но сейчас получение диплома превратилось в обычный мудатский ритуал, который должен пройти каждый. Ведь иначе, по мнению общества, человек не полноценный?

                  Читать дальше →
                • Определение Flash Player на стороне сервера, используя PHP

                    Пример из Flash Player Detection Kit:

                    The following PHP code uses the $hasFlash variable to parse the return value of the HTTP Accept header, and checks if the application/x-shockwave-flash mime-type is returned:
                    <?php
                    // Search through the HTTP_ACCEPT header for the Flash Player mime-type.
                    $swfheader = strpos($_SERVER['HTTP_ACCEPT'],'application/x-shockwave-flash');

                    Читать дальше →
                  • Timepicker на основе jQuery

                      Недавно у меня (если быть точным, то не совсем у меня) возникла потребность вставить такую штуку, как таймпикер в один проект.
                      Судьба и добрые люди навели меня сначала на ужасный циферблат на основе MooTools, а потом и на jQuery Timepicker plugin.

                      В силу того, что я пользуюсь именно jQuery, плагин был осмотрен и даже встроен в проект, однако тут же я столкнулся с рядом проблем.
                      Во-первых, требует всю библиотеку ui (а это 200кило кода) и нигде (я не нашел) нет зависимостей, дабы можно было вычленить лишние килобайты кода.
                      Во-вторых, он требует несколько css файлов, которые что-то наследуют от ui.core.css.
                      В-третьих, он требует парочку приличных спрайтов.
                      После подключения всей этой истории я получил не до конца работающий таймпикер (проблематичность стилизации из-за наличия других элементов ui библиотеки) и заторможенность страницы. Это не говоря о том, что он мне не нравится наличием AM/PM переключателей, жесткой (ну или не очень, я не помню его конфиг) привязкой к 15 минутным интервалам и странным внешним видом.

                      Так что пришлось писать свой велосипед, который был успешно интегрирован в проект. Естественно, меня посетила мысль, что, возможно, найдутся такие люди, которым за каким-то чёртом может пригодиться мой небольшой кривоватый скрипт. Поэтому я потратил ещё часик на оформление демоверсии скрипта. Посмотреть (и вытащить все исходники) вы можете здесь — public.xfenix.ru

                      P.S. Допилено упадническими методами до работоспобного состояния в браузерах IE (6,7), Opera, FF 3, Google Chrome. Для IE пришлось внести кондишнл комменты, а для оперы крепко поморчиться (и все равно баг остался — бекграунд наносится лишь на половину li при клике). Если кто объяснит почему возникли такие ошибки и как их побороть чуть более чем полностью, то буду благодарен до конца века.

                      P.P.S. Если вдруг каким-то чудом ты, читатель, вовсе не зубр, ехидно посмеивающийся над моими исходниками, а начинающий javascript-наркоман и тебе требуется описание по подключению и опциям этого скрипта, то ты можешь сказать мне об этом в коментариях и тогда я отреагирую и допишу пару абзацев текста.
                    • Средства парсинга XML в PHP

                        В личной практике задача разбирать XML средствами PHP возникла еще в 2005. Однако, при попытке разобраться и написать несложный скрипт, загружающий XML-файл в массив, я наткнулся на довольно серьёзную проблему – не существует нормальных программных средств и бинарных библиотек PHP для работы с XML. По мере работы с XML средствами PHP и эволюции PHP применялись различные технологии разбора XML кода, о них далее и пойдет речь.

                        Сперва приведу сводную таблицу совместимости средств PHP и библиотек XML.

                        image

                        Самым совместимым оказался SAX (Simple API for XML), он поддерживается даже в библиотеке EXPAT имеющейся во всех версиях PHP 4 и выше. Однако его возможности и способы применения вызвали резко негативную реакцию – нет возможности модификации XML, крайне громоздкий и сложный код с большим количеством мест для потенциальных ошибок.

                        Читать дальше →
                      • Делаем красивую флеш галерею в программе Picasa

                          image
                          Совсем недавно мне понадобилось составить подборочку из нескольких моих фотографий. Это должны были быть портреты. Недолго думая, я решил что нужно всё это реализовать это на флеш, т.к. это просто, карасиво, да и флеш-плеер я думаю уже почти у всех есть.

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

                            Из всех наведенных примеров мне больше всего понравился Open Flash Chart. Который я заслужено поставил на первое место. Все остальные, мне показались тоже не плохими но для работы я выбрал именно Open Flash Chart.
                            Open Flash Chart – FLASH компонент для построения диаграмм. Он имеет много настроек и легко взаемодействует с PHP, Perl, Python, Java, Ruby on Rails, and .Net. Также может читать данные с .txt файлов.

                            смотреть другие скрипты для построения графиков и диаграмм
                          • Как правильно ставить задачи для сайта

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



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

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

                              «Цели-задачи» — это что-то вроде веб-девелоперского карго-культа: большинство студий ставит макет аэропорта из соломы («Сайт должен предоставлять посетителю всю необходимую информацию и формировать солидный имидж компании») и ждёт, когда с неба свалится ящик с консервами.

                              Давайте попробуем разобраться, как правильно подходить к постановке задач для сайта, в этой статье из четырёх частей:
                              1. Поведение потребителя в «цифровую эпоху» — чем отличается сегодняшний потребитель от вчерашнего, и как это влияет на бизнес.
                              2. Сайт как инструмент влияния — чем отличается сегодняшний сайт от вчерашнего, и о чём нужно помнить, решив создать новый сайт.
                              3. Как ставить задачи для сайта? — конкретные рекомендации для заказчиков и студий. За рецептами — пролистывайте до сюда.
                              4. Пример блока «Назначение сайта» — демонстрация того, что должно получиться в итоге.

                              Осторожно, под катом очень много букв!
                            • jqGrid — Динамические таблицы на jQuery. Сложный Поиск

                              Введение


                              На мой взгляд, jqGrid — самый успешный и удобный на данный момент плагин для jQuery, работающий с таблицами БД через AJAX запросы и PHP (Так же существует версия для ASP.NET).

                              Все подробности в данной статье я опущу, акцентируя ваше внимание лишь на вопросе, как сделать сложный поиск по таблице, используя этот плагин.
                              Читать дальше →
                            • 15+ полезных документов по jQuery

                                Как известно, пару месяцев назад свет увидела jQuery 1.4, в которой мы можем наблюдать множество новых функций и возможностей. А значит, стало еще больше информации для изучения и запоминания. И не важно, насколько хорошо вы владеете искусством jQuery — запомнить всё в любом случае не удастся. И вот здесь нам на помощь приходят всевозможные сборники документаций и шпаргалки, которые очень полезно держать под рукой и периодически в них заглядывать).
                                Читать дальше →
                              • Плагин для отображения таблицы с данными. FlexiGrid

                                  Таблицу мы будем делать используя jQuery-плагин «FlexiGrid».
                                  Более чем уверен, что опытные программисты уже знакомы с этим плагином, но как показывает опыт, некоторые все же не знают о подобных вещах.
                                  Читать дальше →
                                • Картинки делают вашу информацию интереснее

                                    Интересные картинки
                                    Приветствую всех! Я представляю вам свой Первый Пост На Хабре, он является объединяющим симбиозом нескольких постов моего личного блога [Батоноблог], и речь сейчас пойдёт о универсальной вещи, которая поможет увеличить продажи вашего товара, задержать на вашем сайте лишний десяток посетителей, и сделать из сложной многобуквенной статьи простой доходчивый рассказ. Также будут даны описания и адреса хранилищ этих вещей.

                                    А вещь эта называется «Картинка».

                                    В чём суть?


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

                                    Читать дальше: почему, как и где искать картинки
                                  • Browsera — новый инструмент тестирования сайта

                                      Browsera — сразу определимся что это не ещё один сервис бесплатных скриншотов. Этот сервис позволяет проводить атоматизированнное тестирование кросс-браузерности вашей вёрстки, то есть читается ваш html код, стили, скрипты — и моделируется их отрисовка в соответствии с особенностями того или иного браузера. Впрочем, сервис также генерирует скриншот для каждого браузера: будет что отослать верстальщику.

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