• 10 инструментов проверки контраста вашего дизайна для улучшения его „читабельности“

      Вашему вниманию предлагается перевод статьи 10 colour contrast checking tools to improve the accessibility of your design от Roger Johansson. Перевод от alexbig

      10 инструментов проверки контраста вашего дизайна для улучшения его „читабельности“



      В моей повседневной работе мы создаём графический дизайн для большинства сайтов наших клиентов, но не для всех. Некоторые из них сами или с помощью дизайн студий делают визуальный дизайн и оставляют переход на HTML + CSS + JavaScript и CMS для нас. Когда такое происходит, я практически всегда сталкиваюсь с проблемами недостаточного цветового контраста в дизайне. Иногда эти проблемы достаточно второстепенные и допустимые, но зачастую, есть области, которые необходимо скорректировать.

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

      А вы ведь, не хотите этого, верно?
    • О другом подходе к устройству на работу

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

        Пришедшая на почту рассылка новостей принесла мне очередную статью с «ХедХантера», призванную, якобы, помочь соискателям правильнее составить резюме.
        Одна из многих подобных. Несть им числа.
        Там, конечно же, рассказывалось о том, что хорошо, а что плохо писать в разных разделах резюме, какими словами о себе рассказывать можно, а какими нет, в общем — как представить из себя идеально собранную машинку по исполнению скромной, но очень важной для компании роли.

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

        Статья для соискателей.
        Читать дальше →
      • 6 отстойных слов в вашем резюме

        • Translation
        Эта статья – часть серии «Как написать резюме». Чтобы начать серию сначала, прочитайте введение.

        За свою жизнь, я использовал несколько плохих слов. Даю %^й на отсечение, что вы тоже делали это. Но, когда неправильные слова появляются у вас в резюме – это делает его отстойным.
        Читать дальше →
      • Простой и приятный видеоролик о Linux

          Консорциум Linux Foundation опубликовал видеоролик, который в доступной форме рассказывает, как происходит разработка Linux, и какое положение Linux занимает в современном мире. Специалисты вряд ли увидят в нём что-то новое, но для пропаганды свободного ПО он подходит отлично — ролик сделан вкусно и с любовью.

        • 10 способов улучшить свои навыки программирования

          • Translation

          1. Выучить новый язык программирования


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

          Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

          Читать дальше →
          • +215
          • 72.9k
          • 96
        • Архитектура контроллеров: простые советы на каждый день

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

              Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

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

              Технологию, которую я собираюсь Вам представить, я не встречал в найденных мной методах определения расстояния до объекта на изображении. Она не является ни универсальной, ни сложной, суть её заключается в том, что видимое поле (будем считать, что мы используем видеокамеру) калибруется линейкой и затем сопоставляется координата объекта на изображении с отметкой на линейке. То есть измерение ведётся по одной линии или оси. Но нам не нужно хранить отметку на линейке для каждого пикселя, алгоритму для калибровки нужно только знать размер линейки в пикселях и в метрах, а также координату пикселя, который является фактической серединой линейки. Очевидное ограничение — работает только на плоских поверхностях.

              Кроме самого метода в статье рассмотрена его реализация на языке Python с использованием библиотеки OpenCV, а также рассмотрены особенности получения изображений с вебкамер в Linux, используя video4linux2 API.


              Читать дальше →
            • Как поймать «поток», и как сделать так, чтобы он не сорвался

                Вступление


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

                Читать дальше →
              • Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM)



                Здравствуйте, читатели Хабрахабр!

                В данном посте я хочу уделить внимание сервису C2DM от компании Google и попытаюсь рассказать, как реализовать поддержку данного сервиса в вашем Android-приложении. Напомню, что C2DM — это специальный сервис, предоставляющий API для отправки сообщений приложениям, установленным на устройствах Android. Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

                Хотя C2DM является одной из фундаментальных возможностей платформы Android, информации о нем в рунете мало. Попытка изменить данную ситуацию и является одной из задач этого поста.

                Под катом я расскажу, как написать простые клиентское и серверное приложения, покажу некоторые «подводные камни», а также дам ссылки на примеры кода.

                Читать дальше →
              • Переписываем проект с Zend Framework на Rails

                  Около пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
                  Читать дальше →
                • Руководитель проекта: три шага команды к совершенному коду

                    Преамбула


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

                    И вот, вы, принимая пост, знакомитесь с командой: вроде бы есть потенциально сильные разработчики с опытом, есть несколько подающих надежды юниоров. Но что-то сразу бросается в глаза. И чем дольше вы вглядываетесь в эти занятые работой умные лица, тем более понимаете, что перед вами не команда, а «группа разработчиков». А то, что они пишут… Вы и не думали, что программисты могут так писать код. Вы смотрите на пластилиновую архитектуру, на классы в 6000 строк кода, на методы, занимающие десять страниц машинописного текста, на кейсы, ветвящиеся как головы Лернейской гидры. И у вас появляется невольный вопрос: а можно ли что-то с такой командой сделать вообще?

                    И мой ответ — можно. И нужно!
                    Читать дальше →
                  • Костыли при верстке рассылок

                      Привет, %username%!

                      Я рад, что мои предыдушие топики о верстке рассылок оказались тебе полезны. Если я прав, то хотел бы рассказать еще и о костылях при верстке, которые были выявлены мною при сотрудничестве с коллегами из Unisender. Так же я позволю себе пару раз повториться, по той простой причине, что этот топик будет являть собой шпаргалку для костыльмейкера верстки рассылок. Велкам под кат.
                      Читать дальше →
                    • Изучая Vaadin

                        Я хочу рассказать про Vaadin — фреймворк для разработки веб-приложений на Java. Да, на Java этих фреймворков — пруд пруди, но Vaadin заметно выделяется среди них.

                        Чем Vaadin отличается от других Java web фреймворков?


                        Если вкратце, Vaadin позволяет писать веб-приложение в стиле Swing:
                        import com.vaadin.ui.*;
                        
                        public class HelloWorld extends com.vaadin.Application {
                        
                            public void init() { 
                                Window main = new Window("Hello window"); 
                                setMainWindow(main);
                                main.addComponent(new Label("Hello World!")); 
                            }
                        }
                        

                        Считается преимуществом, при использовании Vaadin приходится программировать только на одном языке — Java, то есть не надо заморачиваться с XML, JavaScript, Html и т.д. и можно вовсю использовать весь мощный инструментарий Java: рефакторинг, юнит-тесты, заглушки (моки) и т.д. Ты пишешь new Label("Hello World!"), а Vaadin сам уже ломает голову, как это превратить в Html и JavaScript.

                        С чем можно сравнить Vaadin?
                      • Украшаем списки

                        • Translation
                        В 2002 году Марк Ньюхаус (Mark Newhouse) опубликовал статью «Укрощение списков» ("Taming Lists"), довольно-таки интересную часть которой он посвятил объяснению того, как создавать собственные списки, украшенные псевдо-элементами. Почти десять лет спустя Николас Галлахер (Nicolas Gallagher) изобрел технику, которая использует псевдо-элементы из спрайтов, для создания фоновых изображений.
                        Сегондя, основываясь на опыте гигантов, мы постараемся развить эту тему. Мы обсудим, как можно украсить элементы без дополнительной разметки, используя только технику CSS-спрайтов. Результат будет работать также в Internet Explorer 6 и 7 версии.
                        Читать дальше →
                      • Пишем whois-клиент под Android

                          Логотип

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

                          Под катом я расскажу о ходе разработке, покажу примеры работы и варианты развития.
                          Читать дальше →
                        • So we put a factory into your algorithm или как не надо считать факториалы

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

                          Многие бы не стали мудрствовать лукаво и написали подобное:
                          public class FactorialUtil {
                              public static int factorial(int n) {
                                  int ret = 1;
                                  for (int i = 1; i <= n; ++i) ret *= i;
                                  return ret;
                              }
                          }
                          
                          Вдумчивый читатель наверняка сейчас воскликнул: «О, ужас, а вдруг значение факториала будет больше, чем помещается в int?!», и уже готов переписать код с использованием BigInteger, или хотя бы long:
                          Читать дальше →
                        • «Пластилиновая» архитектура

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

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

                            Большинство провальных проектов обладают одной закономерностью. Они абсолютно лишены структуры. Я называю архитектуру таких систем «пластилиновой».
                            Читать дальше →