• Как программируют слабовидящие программисты?

    • Перевод

    От переводчика

    Что это за пост? Он не похож на статью


    Это действительно не статья. Это компиляция самых интересных, на мой взгляд, ответов на заглавный вопрос: «Как программируют слабовидящие программисты?» из обсуждения на Quora.com.

    Почему я сделал перевод?


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

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

    Это не так. Совсем не так.

    Нет никаких специально обученных разработчиков.

    Нет никакого особого веба.

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

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

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

    Читать дальше →
  • Как я завел дружбу с асинхронностью в JavaScript

      JavaScript встречает разработчиков асинхронностью можно сказать чуть ли не с порога. Начинается все с DOM-событий, ajax, таймерами и библиотечными методами, связанными с анимацией (например jQuery-методы fadeIn/fadeOut, slideUp/slideDown). В целом, это все не очень сложно и разобраться с асинхронностью на этом этапе не представляет проблем. Однако, как только мы переходим к написанию более или менее сложных приложений, в которых комбинируется все вышеуказанное, асинхронный поток может сильно затруднить понимание происходящего в коде. Цепочки асинхронных действий, например, анимация > ajax-запрос > инициализация -> анимация, создают достаточно сложную архитектуру, которая не подчиняется строгому направлению «снизу верх». В этой статье я намерен рассказать про свой опыт преодоления трудностей связанных с асинхронным JS.
      Читать дальше →
    • Методы в примитивных типах PHP

      • Перевод
      Некоторое время назад назад Энтони Феррара выразил мысли по поводу будущего PHP. Соглашусь с большинством его взглядов, но не со всеми. В статье я остановлюсь на одном конкретном аспекте: преобразования примитивных типов данных, таких как строки или массивы, в “псевдо-объекты”, позволяя выполнять в них вызовы методов.

      Начнем с нескольких примеров:

      $str = "test foo bar";
      $str->length();      // == strlen($str)        == 12
      $str->indexOf("foo") // == strpos($str, "foo") == 5
      $str->split(" ")     // == explode(" ", $str)  == ["test", "foo", "bar"]
      $str->slice(4, 3)    // == substr($str, 4, 3)  == "foo"
      
      $array = ["test", "foo", "bar"];
      $array->length()       // == count($array)             == 3
      $array->join(" ")      // == implode(" ", $array)      == "test foo bar"
      $array->slice(1, 2)    // == array_slice($array, 1, 2) == ["foo", "bar"]
      $array->flip()         // == array_flip($array)        == ["test" => 0, "foo" => 1, "bar" => 2]
      

      Здесь $str — это обычная строка и $array является простым массивом — они не объекты. Мы просто даем им немного объектного поведения, позволяя вызывать в них методы.

      Обратите внимание, такое поведение совсем не за горами. Это уже не сон, кое-что уже существует прямо сейчас. PHP расширение scalar objects позволяет определить методы для примитивных типов.

      Читать дальше →
    • Кто возьмёт билетов пачку… или о монетизации игровых приложений

        image

        Первый пост был вступительным и рассказывал больше о направлениях продаж внутри игры, нежели на их применение.
        Напомню, что в данном посте речь пойдёт о казуальных играх в соц. сетях.
        Прежде чем читать нижеприведённый текст, я попрошу всех отринуть от себя всё человечное, что в вас есть. Далее речь пойдёт только о деньгах и о том, как эффективнее их заработать.
        Читать дальше →
      • NeoAxis Game Engine 1.0 наконец-то увидел свет

          Хочу опубликовать топик, обзор релиза кросс-платформенного игрового движка NeoAxis, так как у авторов пока нет аккаунта на Хабре. Далее от первого лица:

          Уже более шести лет мы (компания NeoAxis Group) ведем разработку нового игрового 3D движка, начинавшегося как задумка энтузиаста-одиночки, но превратившегося в полномасштабный проект, над которым теперь работает международная команда специалистов. После стольких лет упорного труда мы рады сообщить, что NeoAxis Engine достиг версии 1.0!

          Читать дальше →
        • Цифры, числа и числительные

            По следам хабралинча имени Рюмкина коснёмся темы правильного типографического оформления чисел. В голову пришли следующие темы, если что-то вдруг забыто — пишите в комментариях, добавлю в статью.
            • Минускульные и маюскульные цифры
            • Целые числа и десятичные дроби
            • Простые дроби
            • Буквенные сокращения (тысяча, миллион, миллиард)
            • Диапазоны
            • Порядковые числительные и числительные в составе сложных слов
            Ещё в комментариях к хабралинчу возникло интересное обсуждение согласования и управления при употреблении порядковых числительных, но это, как мне кажется, скорее отдельная тема для блога Пишу правильно.

            Читать дальше →
          • Студия Лебедева — назад в прошлое или Сколько стоит сделать сайт?

              «Сколько стоит создание веб-сайта у Лебедева?»

              «Добрый день. Я Артемий Лебедев. Я являюсь главным художником, основателем и дизайнером студии, которая со вчерашнего дня называется дизайн-студия Артемия Лебедева, бывшая Web Design. С сегодняшнего дня она переименована. Процесс переименования заключался в замене двух gifов.

              Тема моего доклада — сколько стоит сайт? Я надеюсь, что первая половина доклада будет занята моими мыслями, а вторая — вашими вопросами и моими ответами, соответственно. Собственно, стоимость сайта — это самое неинтересное, что есть в истории его создания, как для меня, так и для заказчика, потому что серьезный заказчик мало волнуется о тех деньгах, которые тратятся на сайт.

              С чего начинается сайт? С чего начинается сайт в частности у веб-студии, которую я, может быть не без ложных оснований считаю одной из самых успешных, и чем отличается то, что я делаю от того, что существует вокруг меня, с той точки зрения, как я это оцениваю? Сайт, который делает моя студия, и вообще вся деятельность студии направлена на то, чтобы в каждом шаге все наши действия были профессиональны. Мы стараемся делать так, чтобы вся наша работа, все наши действия по общению с заказчиком, все наши общественные выступления, реклама и т.д. были рассчитаны на будущее. У нас нет задачи заработать копейку сегодня, пока ее платят, а завтра заняться чем-нибудь еще. Если бы я преследовал такую цель, то я занимался бы сайтами за 500$. Если бы я завтра объявил такую политику, то у меня через неделю было бы 500 заказчиков, которые за такую сумму хотели бы заказать сайт. Я заработал бы столько денег, сколько за всю свою жизнь успел бы сделать. Я не преследую такой цели по соображениям профессиональности того продукта, который мы делаем. Кто не знает, я скажу, что в моей студии работает 10 человек — это люди, которые занимаются непосредственно созданием сайта: разработкой, поддержкой, общением с заказчиком и т.д. А я разрабатываю дизайн и определяю концепцию, политику и идеологию.

              Какая сейчас ситуация складывается на нашем отечественном рынке веб-дизайна? Существует какое-то количество студий. Из них процентов 70 сразу можно не считать студиями, потому что это частные люди: школьники и студенты, которые пришли в Интернет, написали: „Мы занимаемся веб-дизайном“, и сразу попали во все каталоги, Желтые страницы, журналы и т.д. Все сразу считают, что они действительно дизайнеры. А у них нет ничего. У них даже нет своего телефона, который можно разместить на сайте, потому что они сидят дома, им жалко и мама будет ругать, если будут звонить. Поэтому они дают только E-mail. Этих людей мы не считаем. Существуют и другие, но с ними тоже тяжело работать, определять картину профессионального рынка с учетом них, потому что они не хотят играть в профессиональный рынок. Это связано с деньгами тоже. Скажем, с этими людьми, как минимум, нельзя договориться, чтобы они не сманивали сотрудников. Первое, что происходит в любой цивилизованной индустрии — основные игроки заключают такой договор „о несманивании“, который соблюдается. Это совершенно нормально и естественно. Как максимум, с ними нельзя договориться о ценовой политике. К этим людям нельзя прийти и сказать: „Нам можно договориться так: вы считаете себя серьезной студией? Отлично. Давайте решим6 что сайты, которые делаем мы, не стоят меньше, чем 10000$.“ Люди могут сказать: „Отлично. Мы согласны.“ Но завтра они возьмут сайт за 2000$. Они не готовы подождать, пока подойдет крупный заказчик. Они готовы брать все, что сейчас дают, любые заказы. Это относится ко всем студиям, которые я знаю. Есть заказчики, которым я отказывал, потому что они мало предлагали и я знаю, куда они потом уходили. При этом я совершенно точно знаю, что бюджет на увеличился за это время ни на один цент.

              Из чего состоит создание сайта? В первую очередь, еще до того… Не бывает такого, чтобы человек позвонил вам в студию и спросил, сколько стоит сайт, а мы ему сказали — столько-то и он либо соглашается, либо не соглашается. Такого не происходит. Это все равно, что инвестор и кинопродюсера спросит: „Сколько стоит пять кино?“ Тот говорит: „Миллион“. Не возможно себе такую ситуацию представить, потому что есть предложение проекта на бумаге. В этом предложении висит ярлык с ценой, которая ищет своего заказчика. Это то, как поступает в данном случае моя студия. Встречаясь со своим заказчиком на самом первом этапе, мы пишем ему бумагу — 20 страниц текста, где мы предлагаем, что мы можем для него сделать, т.е. пишем концепцию. Эта концепция перехлестывает все мысли заказчика, которые у него были до того, как он к нам пришел. Он пришел, он хотел: сайт, в котором будет написано „о компании“, их адрес и их E-mail, „клиенты“ и „партнеры“. Все. Вот эти вещи мы сразу выкидываем и предлагаем ему то, что больше для него подходит. Мы стараемся как можно больше узнать о этой фирме, понять чего она хочет, предложить те решения, которые сейчас в Интернете еще оригинальны. Составляется такая вот бумага. У нее уже есть какая-то цена. Она каждый раз разная. Минимум — это 10000$. Средний контракт только на дизайн сайта, что является примерно 1/5 частью работы по созданию сайта, стоит порядка 30000-40000$. Это самая-самая начальная цена, которая берется за сайт, у которого главная страница, основные какие-то элементы: содержание, концепция и т.д.

              Что происходит потом? Какие еще есть вещи, которые влияют на цену в большую сторону? Программирование. Для каждого сайта, который мы делаем, если это не совсем микроскопический сайт, типа almaz.ru, где 6 страниц текста и больше ничего нет, а нормальный — mtelecom.ru или xerox.ru например, — это сайты, где 2500 страниц текста, которые они нам дали, пишут специальные программисты. В моей студии два программиста, которые пишут специальные базы и специальные инструменты, которые обеспечивают очень легкую работу в дальнейшем с этим сервером. Например, если мы договорились с заказчиком, что поддерживать будет он сам, у него есть веб-мастер, то делается все, что бы этому веб-мастеру всю работу облегчить как можно больше. Ему не приходится, например, лезть в компьютер под Новый год и менять на всех 2000 страницах дату с 1998 на 1999 — он изменяет ее в одном месте, она автоматически меняется на всем сервере. То же самое с заливкой текста, заливкой картинок и т.д. — все системы автоматизированы. Есть такой сайт закрытый, который называется rfn.ru. На первой странице простой человек ничего не видит — все для инвесторов, для финансистов и только по-английски. Но журналисты, которые пишут эту информацию, каждый день пишут огромное количество статей для этого сервера, они HTML вообще не знают. У них есть специальный редактор на сайте, который скопированный из Word текст автоматически кладет на сайт, тфм текст автоматически кладется в директорию, на него автоматически ставится ссылка, в этом документе автоматически прописывается заголовок, этот документ сразу можно найти через поисковую систему сайта и т.д. Т.е. примерно те же механизмы, которыми пользуются на всех крупных западных сайтах, таких как ZDNet, CNet и т.д. Никто не занимается ручной обработкой, это вещь, которая должна отмереть, засохнуть и отпасть. Она годится только для мелких частных сайтов и будет жива, пока будет жив Вася Пупкин — всегда, но очень мало. Программирование стоит тоже каких-то денег. Обычно это 10000-20000$ добавляем.

              Вот готов, собственно говоря, сайт, в нем есть текст и т.д. Это еще только самое начало, потому что о сайте никто пока не знает. С ним нужно что-то делать. Если его просто положить в Интернет по своему любимому адресу www.фирма.ru, то скорее всего, никто туда не придет, даже если напечатать этот адрес на визитках или повесить у себя в магазине. Народ на это никогда не среагирует, это все ходы пока неэффективные. В нашей стране, в передачах, которые посвящены Интернет, компьютерам и т.д., человек может сколько угодно говорить про свой адрес — как результат, обычно 10 человек приходит после передачи, что совершенно неэффективно. Поэтому дальше тратятся большие достаточно деньги, в зависимости от амбиций, желаний и потребностей заказчика, на раскрутку, на то, чтобы этот ресурс со своего первого „Я“ автоматически позиционировался, как мы говорим, у жителей Интернета, чтобы все сразу знали, что появился такой ресурс, у него такие-то намерения, такие-то планы, он предлагает это, на этом сайте можно сделать то-то и т.д. Это отдельные вещи, которые, понятно, никак не входят в первоначальную стоимость сайта.

              Что входит в такие усилия по раскрутке? В первую очередь это специальные в „бумажной“ прессе. Это не просто реклама 5х10 см, где написано www.фирма.ru, поскольку это работает, но в очень редких случаях: слово price хорошо звучит, а если бы я написал еще что-нибудь, например DDC, то получается для человека совершенно все равно DDC или CDC. Он просто не запомнит этот адрес, никогда туда не пойдет и он ни с чем хорошим у него не проассоциируется. Есть специальные статьи в больших парадных изданиях. Это все происходит не единовременно, а постепенно, обстоятельно. Существует баннерная реклама, о которой я буду говорить завтра. Это один из самых сильных инструментов, но опять же это зависит от того, как им пользоваться. Если просто взять баннер, на нем написать www.фирма.ru и повесить его в сеть, то результат будет никакой.

              Существует много специальных мест в сети, которые предназначены специально для оповещения людей о том, какие существуют новые проекты: это сетевые обозреватели, сетевые системы анонсов, места со ссылками, страницы у провайдера, которые на самом деле такие очень властные рекламные места, которые провайдер никому не отдает, поэтому туда попасть — большая честь. У них есть ссылочка „Ресурсы сети“ и если вас туда поместят, то значит большой трафик будет оттуда. Плюс еще есть какие-то места для ссылок в Интернет. Например, очень смешно было мне обнаружить, что на мой сайт metro.ru, который сидит себе в Интернете и сидит, ходит огромное количество народу, примерно человек 300 в день, что для такого места очень много, собственно из метро, потому что у многих людей стоят Интернет-киоски, на станции Курская например или еще где-то. Какой я делал интерфейс к этой системе? Там просто такой замаскированный Explorer, Интернет-подключение идет по каналам, которые в метро проложены, и там есть ссылки на разные ресурсы. В частности, есть ссылка на metro.ru. Народ стоит в метро в переходе, ходит по моему сайту и изучает жетоны 30-х годов. Есть такие нетрадиционные рекламные места, о которых никто не догадывается, откуда берется трафик. Это еще одна область, куда заказчик хочет войти. Он платит за это деньги, что всегда заранее оговаривается, потому что бывают ресурсы, которые я знаю, что я могу за них взяться, а бывают ресурсы, которые настолько неинтересны, что я даже делать их не могу, не могу сказать ни одного слова, ни нарисовать ни одного баннера, хоть убейте.

              В результате получается, что для того, чтобы сделать сайт, сделать его первоначальную раскрутку, т.е. всю информацию, программирование и известность, скажем, на первый месяц, это все вылетает заказчику в 60000-100000$. Помимо этого существует поддержка. Поддержка — это одна из основных вещей, на которой существуют дизайн-студии вообще, потому что делать дизайн постоянно очень мало кому удается. В моей студии готовых работат больше, чем у кого либо еще — это от 2 до 4 работ в месяц. Все остальные студии делают минимум в 2-4 раза меньше. Не существует такого количества заказчиков, которое могло бы захлестнуть все эти студии и получить от них соответствующее количество дизайна. Эти студии должны на что-то жить, потому что один сервер в месяц не позволяет содержать студию никаким образом. Если есть один заказчик, работа длится над сервером месяц или два. Месяц или два работы десяти человек не может стоить меньше 10000$. Поэтому получается, что заказчик еще пишет контракт на поддержку еще на два, на два, на два. Тогда он делает эту студию своим официальным Интернет-партнером, который решает все проблемы: когда нужно, она следит за всем, что у заказчика происходит. Заказчик целиком считает Интернет-студию своим рекламным агентством, своим представителем. Это очень важно, потому что до этого год назад никто серьезно Интернет с этой точки зрения не рассматривал. Все считали, что можно им пользоваться, что если деньги какие-то есть, прийти в дизайн-студию — будет красиво. Сейчас эта ситуация меняется. У нас уже есть очень серьезные фирмы, у которых есть рекламные агентства в оффлайне, которые размещают рекламу в газетах, на телевидение, на рекламных щитах, на радио. А есть люди, которые занимаются всем тем же в Интернете. Рекламные агентства, ни одно из рекламных агентств — любое возьми — они про Интернет ничего не слышали, у них даже E-mailа нет. Поэтому фирма им не заказывает, потому что им позвонишь, спросишь: „Сделаешь то-то в Интернете?“. А на самом деле окажется, что они ничего не делают и стараются от этого дела отойти. У крупных фирм сейчас тенденция привлекать Сетевые дизайн-студии в качестве своих основных Интернет-партнеров, которые собственно и будут говорить, что им делать. Т.е. им клиент только платит деньги и рассчитывает на то, что те знают, что говорят. Когда проходит определенный срок контракта, на студию смотрят. Если у нее результаты хорошие: сайт стал в сто раз более посещаемым, народ заказывает, служба поддержки ничего не делает, так как люди не звонят туда, а скачивают все из Интернета. Тогда контракт с тобой продлевают. Если нет, если ты сделал серию действий, которые этот сайт погубили, то никто с тобой контракт продлевать не будет. Но в тот момент, когда ты общаешься с этой фирмой, она тебе ничего не говорит, просто верит твоим словам, поскольку она тебя уже выбрала. Она знает, что ты занимаешься этим делом профессионально, а у нее все равно нет штата людей, который мог бы делать то же самое, но лучше — откуда у фирмы, которая никак не специализируется в Интернете, вдруг возьмется профессионал, который будет знать лучше, чем специализированное агентство по дизайну, по раскрутке, по маркетингу и т.д.? Поэтому такой контракт на поддержку стоит тоже много.

              В результате получилась такая картина стоимости сайта в России. Но она все равно отстает от американских цен двухлетней давности, потому что два года назад в Америке достаточно крупный сайт стоил от 40000$ до 500000$. Просто меньше 40000$ никто не брал, это был позор. В России еще нет таких цен, потому что, с одной стороны, у нас нет фирм с таким оборотом. Фирма-заказчик не может себе позволить тратить 30 млн. $ в год на рекламу и контент-проекты в Интернете, в России таких фирм нет. Мог бы стать такой фирмой Газпром, но он еще не решился на это. Цены постепенно приближаются. Я думаю, что в следующем году они будут еще в два раза больше. Потом уже начнется еще более интересная ситуация на рынке веб-дизайна: произойдет такая вещь, как редизайн — все студии получат заказы всех своих конкурентов, все заказы пойду по кругу. Люди каждый год будут делать что-то новое: текст будет оставаться, а дизайн будет посвежее. Клиенты будут приходить в другую студию, скорее всего, если даже им не предложат лучше, и попробуют все ото всех.

              Какие еще произойдут вещи интересные? Я отвлекаюсь от цен и говорю о том, что случится в ближайшем будущем. Будет происходить, во-первых, слияние каких-то студий. Будет происходить создание новых студий на базе рекламных агентств. Т.е. рекламные агентства таким образом выйдут в Сеть: у них там много заказчиков, у них есть там дизайнеры, умение, программисты свои, но при этом они никак не присутствуют в Интернете. Теперь они будут предлагать, как правило полное решение, а не только бумажную рекламу.

              И будет происходить слияние компаний из разных областей. Как пример поступили фирма „Махаон“ и дизайн-студия „Е-программа“, которая занимается дизайном и всегда занималась им, а „Махаон“ только в Интернете сидит и его не видно совершенно на рынке профессионального дизайна. Они объединились и назвали объединение „Бюро виртуальных услуг“ и сделали несколько очень хороших сайтов. Это очень правильный путь развития. Это тоже все ближе к осени, когда таких образований будет больше.

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

              Артемий Лебедев 1998

              Заранее прошу прощение если эта статья уже 100 раз опубликована, но мне было очень интересно!
            • Всё (или почти всё) о пробеле

                Как следует из заголовка, речь в статье пойдёт о неотъемлемой части любого русскоязычного (и не только) текста — о пробеле. Мы затронем историю пробела, виды пробелов, вопросы употребления пробела в веб-типографике.

                Вообще говоря, пробел — это любое пустое место в рукописном, печатном или отображаемом на любом другом носителе тексте. Так что пробелы бывают разные:
                • спусковые (большие вертикальные пропуски в первой полосе издания) и концевые пробелы полосы,
                • абзацные отступы и концевые пробелы абзаца,
                • межстрочные пробелы (между строками текста),
                • межсловные пробелы (между словами в одной строке),
                • межбуквенные пробелы (между буквами в слове).
                Далее речь пойдёт о межсловных пробелах, разделяющих слова, и функционально принадлежащих к знакам препинания.
                Читать дальше →
              • Что мне приглянулось в Ruby on Rails

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

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

                  Взгляд пал на Руби он Рейлс. Была прочитана знаменитая Agile Web Development with Rails: Second Edition и написан небольшой проект. Здесь я попытаюсь перечислить те возможности этого прекрасного фреймворка, которые приглянулись мне. Если вы не планируйте писать на рейлс, то думаю вам всё-таки будет интересно познакомиться с некоторыми вкусностями, которые можно без труда портировать на другие языки (многое уже сделано для РНР, в том числе и мной).
                  Читать дальше →