программист

Постов: 159 Рейтинг: 376979
2837

Разработка на скорости 450 слов в минуту

Развернуть
«Чего-то здесь не хватает». Спорим, такая мысль первой придёт в вашу голову, если увидите моё рабочее место в офисе. Здесь нет монитора и мыши. Есть только парень, который молотит по клавиатуре, глядя словно в пустоту. 
Разработка на скорости 450 слов в минуту
Это всего лишь я, и мои коллеги гарантируют вам, что я обычно не опасен. Я программист в офисе компании Vincit в Тампере (Финляндия). И ещё я слепой. В этой статье хочу немного рассказать, как я работаю. 

Ты слепой в том смысле что на самом деле слепой? 

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

Что ты там тогда делаешь? 

То же, что и все: делаю софт и подшучиваю над коллегами, если время позволяет. Я работал над full-stack веб-проектами с фокусом на бэкенде. Я также взял на себя роль консультанта по общей доступности проектов для людей с ограниченными возможностями — или роль полиции; в зависимости от того, как посмотреть.

Как ты используешь компьютер? 

У меня совершенно обычный ноутбук под Windows 10. Вся «магия» в софте. Для доступа к компьютеру я использую программу, которая называется скринридер. Он перехватывает картинку с экрана и представляет информацию в азбуке Брайля (через отдельный брайлевский дисплей) или синтез речи. И это не та синтетическая речь, которую вы слышите от нынешних цифровых помощников. Я использую роботизированный голос, который произносит примерно 450 слов в минуту. Для сравнения, носители английского языка обычно произносят 120-150 слов в минуту. В моей системе есть одна особенность: поскольку мне нужно регулярно читать и на финском, и на английском, то я читаю английский с финским синтезатором речи. В прежние времена скринридеры были недостаточно умны, чтобы автоматически переключаться между языками, так что я привык к такому чтению. . 
Вот пример этого параграфа так, как я его слышу
. А вот 
тот же текст через англоязычный синтезатор речи


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

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

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

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

Итак, учитывая мою любовь к командной строке, почему я застрял на Windows, операционной системе, которая не славится своими инструментами командной строки? Ответ прост: Windows — самая доступная система [для людей с ограниченными возможностями — прим. пер.]. Мой любимый скринридер NVDA — это свободный софт, он поддерживается более активно, чем любой другой скринридер. Если бы у меня бы выбор, я бы использовал Mac OS, по-моему, там аккуратный баланс между удобством и функциональностью. К сожалению, скринридер для этой системы VoiceOver страдает от долгих релизов и общей запущенности, а его модели навигации не очень совместима с моим конкретным стилем работы. Есть также скринридер для десктопа Gnome и хотя он великолепно поддерживается для столь малой аудитории пользователей, там всё ещё остались острые углы, из-за чего он не подходит мне для постоянного использования. Так что только Windows. Я компенсирую присущие недостатки этой ОС тем, что живу внутри Git Bash, который поставляется с отличным набором GNU и других утилит командной строки сразу из коробки. 

Как ты можешь кодировать? 

Мне понадобилось довольно много времени, чтобы понять, почему этот вопрос настолько важен для многих людей. Помните, что я раньше говорил о чтении текста строчка за строчкой? Так я читаю код. Я пропускаю ненужные строчки или может прослушиваю только половину ради контекста, но если мне действительно нужно разобраться, то я читаю всё как роман. Естественно, я не могу прочитать таким способом гигантскую кодовую базу. В этих случаях приходится абстрагировать части кода в уме: этот компонент принимает x на входе и возвращает y, неважно, что он реально делает. 

Такой тип чтения вынуждает меня выполнять некоторые задачи иначе, чем мои зрячие коллеги. Например, в процессе инспекции кода я предпочитаю смотреть на выдачу raw diff по возможности. Диффы side-by-side не очень полезны для меня, на самом деле, они даже отвлекают. Знаки «плюса» и «минуса» тоже гораздо лучший индикатор изменённых строк, чем выделение цветом. Не потому что я не могу прочитать названия цветов. Просто «плюс» произносится быстрее, чем название какого-то замысловатого оттенка красного, который используется для добавленной строки. (Я смотрю на тебя, Геррит). 

Вы можете подумать, что отступы и другое форматирование останется полностью незаметным для меня, поскольку это визуальное выделение. Неверно: правильные отступы помогают мне точно так же, как зрячему программисту. Если я читаю код в Брайле (кстати, это гораздо эффективнее, чем речь), то это даёт хороший визуальный ключ, где я нахожусь, точно так же, как и зрячему программисту. Я также получаю голосовые сообщения, если вхожу в блок текста с отступом или без. Эта информация помогает отрисовать карту кода в голове. На самом деле первым настоящим языком программирования у меня был Python (PHP не считается), с тех пор отступы никогда не являлись проблемой. Я настоятельно выступаю за чистый и последовательный стиль программирования по многим причинам, но главным образом потому что это не усложняет до предела мою жизнь. 

Какой редактор ты предпочитаешь? 

Спойлер: ответ на этот вопрос не начинается ни с буквы V, ни с E. (Само собой, я использую Vim для составления сообщений о коммитах git и других быстрых пометок в командной строке. Я придерживаюсь нейтралитета на этом конкретном минном поле). Год назад среди всех редакторов я бы выбрал Notepad++. Это лёгкий, хорошо спроектированный текстовый редактор, который делает своё дело. Однако год назад я ещё не работал над крупномасштабным Java-проектом. Когда это всё-таки случилось, пришло время выбирать между Notepad++ и здравым смыслом. В итоге я склонился ко второму (на то время, какое смогу) и бросил Notepad++ ради IntelliJ IDEA. С тех пор это мой избранный редактор. У меня глубоко укоренившееся отвращение ко всем IDE, потому что большинством из них или невозможно, или неэффективно пользоваться только с клавиатуры. Скорее всего, я бы перешёл на IDE гораздо раньше, если бы был зрячим. 

Вы можете спросить, почему я выбрал Notepad++. Есть же более продвинутые легковесные редакторы, такие как Sublime Text или Atom. Ответ простой: ни один из них не доступен для скринридеров. Текстовые редакторы вроде Vim тоже не вариант, потому что у моего скринридера некоторые проблемы с поддержкой консольных приложений, из-за которых эти редакторы невозможно использовать для чего-то более крупного, чем сообщение о коммите. К сожалению, доступность [для незрячих — прим. пер.] — это главный фактор для моих инструментов. Если я не могу использовать инструмент эффективно, то он уже не рассматривается. 

Ты когда-нибудь работал с кодом фронтенда? 

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

Однако у меня тоже есть кусок работы в Angular и React. Как так? Во многих современных веб-приложениях значительная часть работы выполняется под капотом в браузере. Например, однажды я пару недель внедрял поддержку интернационализации в довольно сложное приложение Angular. Там не было вообще никакой визуальной работы. 

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

Что насчёт вещей, о которых ты не рассказал? 

Определённо, многие вещи пришлось оставить за рамками этой статьи. Как и обещал, я посвящу статью искусству делать веб-страницы более доступными, поскольку отсутствие правильной семантики — моя любимая мозоль. Но есть большая вероятность, что я на этом не остановлюсь. Будем на связи!
Пост полностью скопировал с Хабра.
https://habrahabr.ru/post/336600/
1853

Страховка

Развернуть
Страховка
комикс отсюда https://vk.com/mixpixin
174

Инновации

Развернуть
Инновации
4985

Искал работу, наткнулся на эту вакансию

Развернуть
Искал работу, наткнулся на эту вакансию
link: https://hh.kz/vacancy/22167386?query=программист
9072

Траурный день для Рунета: умер Андрей «ache» Чернов

Развернуть
Траурный день для Рунета: умер Андрей «ache» Чернов
Сегодня, 17 августа, произошло печальное событие для Рунета: На 52-м году жизни скончался Чернов Андрей Александрович — программист, благодаря которому жители стран СНГ получили в начале девяностых возможность набирать текст на русском языке в глобальной Сети.

Андрей Чернов являлся автором кодировки KOI8-R, которая поддерживала ввод кириллических символов. Создание этой кодировки ознаменовало появление Рунета. Однако, KOI8-R — далеко не единственное, что сделал ache (именно под этим никнеймом он был известен сообществу программистов) для развития сферы IT. Чернов принимал участие в таких важных событиях для Рунета, которые до сих пор удивляют и одновременно вызывают зависть многих программистов:

В 80-х Чернов был одним из членов коллектива разработчиков советских операционных систем ДЕМОС и МНОС, которые разрабатывались в Институте атомной энергии имени И. В. Курчатова.

В 90-х ache работал в компании «Демос», которая была первым российским интернет-провайдером. Этот период является особенно важным для сферы IT в России. Именно в августе 1990 года Россия впервые подключилась к компьютерам в городе Хельсинки, а в сентябре того же года появился первый домен — .su (Soviet Union). Так началась история Рунета как части всемирной Сети. ache был непосредственным участником запуска и наладки первого интернет-канала между Россией и странами запада.

В 1992 до 2001 годах Чернов разработал и поддерживал почтовый клиент UUPC/@.

В 1992-1996 годах занялся локализацией шифровальной системы PGP совместно с Сушковым.

В 1994 году создал перекодировщик текстовых файлов TODOS с CP866, который использовался в ОС MS-DOS.

В 1993-2000 годах был членом FreeBSD Core Team, которая руководила разработкой FreeBSD. Он был единственным русскоязычным участником в совете проекта.

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

Прощание с выдающимся программистом пройдёт 19 августа в крематории Горбрус в 14:00, г. Балашиха, Носовихинское шоссе, ул. Окольная, владение 2.

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

с tproger
3498

Про баги

Развернуть
Про баги
2728

Не стоит бояться ГМО...

Развернуть
Разговор зашел про ГМО... Тема тертая-перетертая, но в этот раз решили подколоть Петровича. Ему за полтинник, так что был шанс послушать феерические бредни... Но вышло совсем не так....

- Петрович, а ты не боишься жрать ГМО?
- Нет... И вообще, вечно вы не того боитесь...
- Это как так?
- Да так.. Ночью в лесу например, надо бояться не зверей, а человека. Понятно?
- А к ГМО это как относится?
- Тупой... Если я ем бутерброд с лососиной, то хрен ли бояться, если все эти белки замешаны в модифицированной пшенице? А вот самого факта, что люди додумались до этого, бояться надо.
- Почему?
- Ну я тут у вас сисадмин, малость программирую. Таки вот, ДНК - та же программа, только написанная неизвестным кодом. А биологи типа хакеры, пытаются взломать. Раньше просто меняли код и смотрели, что получится. Сейчас стали соображать - что к чему. Но средств программирования на ДНК пока нет, поэтому они по сути те же хакеры. Пройдет десяток-другой лет и ДНК взломают полностью. И средства программирования напишут. Типа с++ или автокада. Ввел характеристики организьма - комп пожужжал - вот твоя ДНК. А 3-д принтер тебе эмбрион этого дела распечатает. И пжалста - розовый слон на день рождения тёщи. Вот тут и начнется юмор. Сделать можно всё.. Муравьи, которые кусают синильной кислотой, организмы со счетчиками - типа двадцатое поколение няшных котиков внезапно порождает метровых тараканов-людоедов, пшеница, которая дает только один урожай. А ведь можно еще инстинкты в генах прописать. Волки, которые хотят прийти в определенный регион и именно там вырезать людей. Шершни с таким же инстинктом. Про бактерии и вирусы вообще молчу. И получается,что безопасность ГМО - это вопрос порядочности и этики. Воот, а когда люди порядочностью страдали? От этого и страшно... Людей бояться надо, а не свёклу...
1855

Ошибка программиста в 2 500 000 рублей

Развернуть
Ошибка программиста в 2 500 000 рублей
При попытке убрать косяк в 1с при передаче данных с онлайн касс в налоговую, строчкой кода наш доблестный программист провёл одну и ту же операцию, большое количество раз и данные об этом ушли в налоговую. Общая сумма оплат превысила 2 500 000 рублей. На фото, чеки по всем операциям.
1326

Профориентация с детства

Развернуть
Профориентация с детства
#comment_90233755
2842

Требуется "Имитатор программиста"

Развернуть
Требуется
4786

В случае кибератаки

Развернуть
В случае кибератаки
3844

Когда программист немного сексист

Развернуть
Когда программист немного сексист
1711

Не обижайте программиста или откуда берутся "русские хакеры"?

Развернуть
В Британии программиста лишили призовых в конкурсе из-за гражданства России.
Программист Владимир Игловиков лишился призового места в британском конкурсе Data Science Challenge из-за российского гражданства. Об этом он написал в Facebook.
https://www.facebook.com/iglovikov/posts/10203262494799398
Не обижайте программиста или откуда берутся
Игловиков занял второе место и претендовал на получение 12 тысяч фунтов стерлингов. Однако организаторы уведомили его о том, что согласно правилам конкурса денежное вознаграждение не может быть выплачено гражданину страны, стоящей слишком низко в рейтинге проникновения коррупции Transparency International.
В комментариях к своему посту программист отметил, что денежный приз не имел для него особого значения, однако сам факт существования таких правил его расстраивает.

"Наука должна быть выше политики", — написал Игловиков.
https://ria.ru/world/20170522/1494812639.html
3466

Сисадмин и программист

Развернуть
Сисадмин и программист
так и работаем
2033

Глаза под разной дурью

Развернуть
Глаза под разной дурью
2422

Увольнение

Развернуть
Недавно коммерческий попросил генерального уволить ведущего программиста проекта.
Обоснование: "Он делает всё не так, как я говорю, но ВСЁ РАБОТАЕТ!"
5841

Машина + Смартфон с акселерометром + ямы

Развернуть
Всем привет.

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

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

Сервер на NodeJS принимает данные, конвертирует их в удобный json и затем отдаёт любому желающему (да да, безопасностью тут и не пахнет)

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

Итак, отдал телефончик в добрые руки, подождал с часик и получил следущее:
Машина + Смартфон с акселерометром + ямы
Немного приближаемся, и вот мы уже можем рассмотреть концентрацию ям на дорогах своего города.
Машина + Смартфон с акселерометром + ямы
Как известно, акселерометр измеряет по трём осям: X,Y,Z. Сответветсвенно, на карте тоже 3 типа кружочков, радиус которых зависит от ускорения в момент времени.
Машина + Смартфон с акселерометром + ямы
Смартфон лежал горизонтально, носом по курсу движения (если можно так сказать). Так что жёлтые круги отвечают за движение вверх-вниз, красные - вперёд, назад, зелёные - влево, вправо.

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

Вот очень контрастный пример того, как выглядит неотремонтированная дорога:
Машина + Смартфон с акселерометром + ямы
В будущем надеюсь сделать глобальную карту, более точные алгоритмы распознавания ям, публикацию в Google Play и всё такое прочее.

Кажется, что это может быть полезно миру, до скорого :)
2771

Аккуратнее при родителях

Развернуть
Аккуратнее при родителях
2474

Кто же там растет?

Развернуть
Кто же там растет?
8102

Суровый тимлид 2: перегрузка

Развернуть
Суровый тимлид 2: перегрузка GIF