Как стать автором
Обновить
17
0
Петрович @igordata

Картошка

Отправить сообщение

Смотря на код с закрытыми глазами

Время на прочтение6 мин
Количество просмотров123K
От переводчика

Эта статья — перевод блогозаписи Флориана Бейджерса, слепого программиста из Нидерландов.
Перевод любительский, поэтому прошу указывать на ошибки и критиковать.
Я не нашёл корректного перевода слова accessibility, поэтому перевёл его как «доступность». Если есть вариант получше — предложите, пожалуйста.
Антон Туманов предложил «адаптированность», за что ему большое спасибо.
Как заметил в комментарии pepelsbey, «доступность» является корректным переводом, вернул её обратно.
Почему я сделал перевод? Я наткнулся на опрос на Quora.com «Как программируют слабовидящие программисты?». Ответы людей меня впечатлили, а блогозапись Флориана показалась наилучшим вариантом для введения в этот важный вопрос.

Я — программист. А ещё я слеп. Слеп, как крот, как говорится. Таков я от рождения.

Когда я говорю об этом своим товарищам, то те из них, у кого никогда не было проблем со зрением, обычно задают один из трёх вопросов:

  • Как же ты тогда можешь читать то, что я пишу?
  • Ого. А как ты тогда можешь кодить?
  • Или — самый популярный вопрос — А ты видишь сны?

Мне задают эти вопросы снова и снова. Поэтому в этой блогозаписи я хочу на них ответить. Я попытаюсь нарисовать картинку для тех из вас, кто интересуется доступностью и тем, как слепые люди пользуются компьютером, кодят и выполняют другие работы в 21 веке.
Читать дальше

DDoS атака в обход Qrator. Как защититься?

Время на прочтение4 мин
Количество просмотров27K
Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
Читать дальше →

Часовые сети прошлого

Время на прочтение6 мин
Количество просмотров88K
Старинные часы сейчас, хоть и редко, но еще можно застать на вокзалах, автобусных остановках и иногда просто на улицах городов. Некоторым из них уже более полувека, и появились они во времена, когда большинство управляющих схем создавались при помощи реле. Но тем не менее, даже в таких старинных устройствах была реализована возможность удаленной настройки и синхронизации!



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

Наличие завихрений на Луне объяснили столкновениями с кометами

Время на прочтение3 мин
Количество просмотров8.3K
image

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

Особо крупные завихрения в телескопы кажутся кратерами странной формы — например, крупный след по имени Reiner Gamma. Но после того, как в 1966 году космический аппарат Lunar Orbiter II, пролетая над этим местом, сделал фотографию Reiner Gamma, стало ясно, что это что угодно, но не кратер.

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

Расследование одного взлома или как быстро и просто потратить миллиард

Время на прочтение6 мин
Количество просмотров157K
UPDATE: Всем привет! Сегодня с удивлением узнал от коллег об этой записи. Выяснилось, что мой аккаунт взломали — представители Хабрахабра это подтвердили и восстановили мне доступ и сейчас разбираются, как так получилось. Но я оставляю эту запись как есть, для истории.
В комментариях уже отметились представители Яндекса: говорят, что уязвимость закрыта, ведётся аудит безопасности софта.

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


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

Описываемый далее случай интересен именно с точки зрения взлома бизнеса, хотя статья больше посвящена взлому в смысле IT.

Начну с нетехнической части.
Читать дальше →

Ошибки разработчиков при тестировании ММО

Время на прочтение8 мин
Количество просмотров21K
Эта статья — взгляд на тестирование ММО с «другой стороны баррикад», с точки зрения геймера. Я хочу рассказать о том, как сделать альфа-тест, ЗБТ и ОБТ эффективнее. И о том, почему бета-тестеры перестают писать баг-репорты и переходят «в оппозицию» к проекту.

Предисловие


За свою жизнь я участвовал в ЗБТ и ОБТ примерно 30 игр. И самый главный вывод, который я для себя сделал – гейм-девелоперы совершенно не умеют распоряжаться теми людскими ресурсами в виде нескольких тысяч жаждущих прокликать весь функционал геймеров, которые им сваливаются на голову. И именно поэтому и был написан данный материал. От геймера – разработчику, сидящему по ту строну экрана. От тестера компаниям, которые не понимают, как правильно организовать процесс тестирования усилиями игроков.

Статья разбита на четыре раздела и написана в разговорном стиле. Я по порядку разбираю ошибки разработчиков на альфа-тесте, ЗБТ/ОБТ и при наборе тестеров после релиза. Те, кто хочет конкретики без долгих прелюдий и размышлений, могут сразу листать к последнему абзацу каждого раздела и выводам.
Читать дальше →

Исследование формата карты уровней NES-игры «Jackal»

Время на прочтение17 мин
Количество просмотров13K
В статье будет описан нестандартный способ поиска данных об уровнях в NES-играх — с помощью последовательного изменения всех данных в образе и исследования последствий («коррапт» в терминах ромхакеров). Для примера я покажу, как найти данные об уровнях в игре «Jackal» для NES и добавить один из её уровней в редактор CadEditor. Данный способ позволяет исследовать любую игру с блочной структурой уровней (почти любую игру на NES), без знания ассемблера X8502, требуются только начальные навыки работы со скриптовыми языками (Lua и Python).
Читать дальше →

Проблемы, вызванные определением кортежей как функторов

Время на прочтение8 мин
Количество просмотров5.6K
Очень удивительно (я бы даже сказал — внезапно!), но кортеж-пара в GHC является функтором. Это сложно понять, ведь функтор должен иметь только один параметр, а у пары их два. Можно восхищаться тем, как разработчики стандартной библиотеки GHC умудрились предоставить такую абстракцию, но мне кажется, полученное решение все же следует признать неудачным.

Начнем с того, что оно интуитивно непонятно. Скажем, попробуйте вычислить вручную, не используя инструментов GHC, выражение (1+) `fmap` (2, 3). А после этого проверьте полученный результат, например, в ghci. У многих ли результат ручного вычисления совпал с тем, который выдала система? И если у вас результаты все же совпали, мне очень хотелось бы услышать хорошее объяснение того, как именно вам это удалось.
Читать дальше →

Microsoft Hyperlapse: видео с 3D-стабилизацией

Время на прочтение2 мин
Количество просмотров11K
На будущей конференции SIGGRAPH будет представлено много интересного. Не останется в стороне и компания Microsoft, которая заранее анонсировала свои планы. Она покажет технологию Hyperlapse для эффективной стабилизации изображений и склеивания необычных и красивых видеороликов типа таймлапс от первого лица.

Microsoft работает над этой технологией уже несколько лет, представляла научный доклад о Hyperlapse на SIGGRAPH 2014. Сейчас же всё работает. Можно установить мобильное приложение и попробовать Hyperlapse в деле (чтобы установить версию под Android, например, нужно вступить в сообщество и зарегистрироваться как тестер).


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

Фотографии с самой длительной выдержкой

Время на прочтение1 мин
Количество просмотров30K


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

Один из них показан на анонсной фотографии. Она больше похожа на рисунок художника, но на самом деле это фотография с 6-месячной экспозицией. Белые полосы — это Солнце, прохождение его по небосводу. Хорошо видны изменения положения Солнца над горизонтом за эти полгода. Самое интересное, что эта фотография — совсем не рекордсмен по экспозиции.
Читать дальше →

Защита для NGINX — NAXSI

Время на прочтение3 мин
Количество просмотров39K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


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

SSD Guru — новая утилита от OCZ для мониторинга и настройки твердотельных накопителей

Время на прочтение3 мин
Количество просмотров79K
Привет, Гиктаймс! В посте про новый SSD OCZ Vector 180 я упомянул о новом программном обеспечении для твердотельных накопителей производства этой компании. А поскольку OCZ SSD Guru будет работать с линейками SSD-дисков, которые были выпущены на контроллерах Barefoot 3, думаю, есть смысл подробно рассмотреть его возможности. Под катом – скриншоты и комментарии.


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

Эволюция скорости передачи данных в сетях Wi-Fi

Время на прочтение8 мин
Количество просмотров70K
— Зачем вам в Решётах нубук?
— Чтоб безразмерно использовать возможности блюпупа, и коммутироваться с другими абонентами по всему региону Россия с помощью Ви-Фи!
(С) Уральские Пельмени


Впервые рабочая группа IEEE 802.11 была анонсирована в 1990 году и вот уже 25 лет идёт непрекращающаяся работа над беспроводными стандартами. Основным трендом является постоянное увеличение скоростей передачи данных. В данной статье я попробую проследить путь развития технологии и показать, за счёт чего обеспечивалось увеличение производительности и чего стоит ждать в ближайшем будущем. Предполагается, что читатель знаком с основными принципами беспроводной связи: видами модуляции, глубиной модуляции, шириной спектра и т.д. и знает основные принципы работы Wi-Fi сетей. На самом деле существует не так много способов увеличения пропускной системы связи и большинство из них было реализовано на разных этапах совершенствования стандартов группы 802.11.
Читать дальше →

Заблуждения программистов об именах

Время на прочтение3 мин
Количество просмотров90K
Две недели назад на Хабре публиковался перевод «Заблуждения программистов о времени», который по своей структуре и стилю основан на этом классическом тексте Патрика Макензи, опубликованном два года назад. Поскольку заметка о времени была крайне благоприятно воспринята аудиторией, то, очевидно, имеет смысл перевести и исходную статью об именах и фамилиях.

Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
Читать дальше →

Как отобразить количество оповещений в названии вкладки браузера

Время на прочтение3 мин
Количество просмотров33K


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

Существует пара наиболее распространенных способов оповещения пользователя. С одной стороны, социальные сети Facebook, Twitter и LinkedIn указывают определенное число, которое соответствует количеству обновлений. С другой стороны, Trello отображает небольшой красный кружок поверх favicon.

Trello Facebook and Twitter notifications
Оповещения Trello, Facebook и Twitter

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

Посмотреть на GitHub
Демо (рус.)
Читать дальше →

Вычислите длину окружности

Время на прочтение6 мин
Количество просмотров90K
«Пожалуйста, напишите на C++ функцию, которая получает диаметр круга как float и возвращает длину окружности как float».

Звучит как задание на первой неделе курса по C++. Но это только на первый взгляд. Сложности возникают уже на первых этапах решения задачи. Предлагаю рассмотреть несколько подходов.

Студент: Как вам такой вариант?

#include <math.h>
float CalcCircumference1(float d)
{
    return d * M_PI;
}

Преподаватель: Да, этот код может нормально откомпилироваться. А может и нет.
Читать дальше →

Ноутбуки Lenovo поставляются с вредоносным ПО Superfish и его CA-сертификатом и приватным ключом в хранилище

Время на прочтение2 мин
Количество просмотров123K
Программа Superfish, которая поставляется с ноутбуками Lenovo Y50, Z40, Z50, G50 и Yoga 2 Pro, представляет из себя типичный Malware, который прослушивает трафик, анализирует поисковые запросы пользователя и вставляет рекламу на страницы сторонних сайтов. Работает это приложение на уровне системы, перехватывая, в том числе, HTTPS-трафик. Для этого, приложение устанавливает CA-сертификат Superfish в хранилище ключей Windows и проксирует весь трафик между хостом и браузером, подменяя сертификат на свой. Поставляется это ПО, как минимум, с июня 2014 года. Первое сообщение об этой программе на форуме Lenovo датировано сентябрем 2014 года.

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

Естественный отбор — враг бота

Время на прочтение1 мин
Количество просмотров68K
Интересный баг только что отловили. Рассказываю.

Имеем сервис с капчами. Чтобы уменьшить время отклика логично генерировать картинки по случайному коду в свободное время в час наименьшей нагрузки. Так и делаем — ставим в крон задачку, делаем 100500 капч (картинка + код в базе) и в течение дня их показываем. На тот случай если прегенерированные капчи все-же закончатся, делаем режим аварийного полета — если отгаданная и, в связи с этим, убираемая из базы капча уменьшает общее число капч до опасного уровня (например, остается меньше 50), то генерируем новую капчу вместо убранной.

Казалось бы, простая и рабочая схема. Так и было до недавнего времени.
Читать дальше →

Fail2ban [incremental]: Лучше, быстрее, надежнее

Время на прочтение9 мин
Количество просмотров159K
fail2ban image
Про fail2ban написано уже много, в том числе и на хабре. Эта статья немного о другом — как сделать защиту им еще надежнее и о еще пока неизвестных в широких кругах новых функциях fail2ban. Добавлю сразу — речь пойдет пока про development branch, хотя уже долго проверенный в бою.

Краткое вступление


В большинстве своем fail2ban устанавливается из дистрибутива (как правило это какая-нибудь стабильная старая версия) и настраивается по манам из интернета за несколько минут. Затем годами работает, без вмешательства админа. Нередко даже логи, за которыми вроде как следит fail2ban, не просматриваются.
Так вот, сподвигнуть на написание этого поста меня заставил случай, произошедший с одним сервером моего хорошего знакомого. Классика жанра — пришла абуза, за ней вторая и пошло поехало. Хорошо еще злоумышленник попался ленивый — логи не потер, да и повезло еще крупно, что logrotate был настроен, чтобы хранить логи месяцами.
Как дальше жить

Что нового в C# 6.0?

Время на прочтение4 мин
Количество просмотров147K
image

Microsoft выпустила предварительную версию Visual studio 2015 и .Net 4.6 для разработчиков. В новом C# 6.0 несколько новых возможностей, которые могут облегчить кодинг.

В этой статье рассмотрены новые возможности языка C# 6.0. Скачать новую VS можно по ссылке:
Microsoft Visual Studio Ultimate 2015 Preview

Инициализация свойств со значениями


В C# 6.0 мы можем инициализировать свойства со значениями, написав справа от них их значение. Это поможет избежать ошибки с null и пустыми значениями свойства.

Раньше:


public int Id { get; set; }
public string FirstName { get; set; }

Теперь:


public int Id { get; set; } = 1001;
public string FirstName { get; set; } = "Srinivas";
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность