Search
Write a publication
Pull to refresh
3
0

Руковожу разработкой всякого разного

Send message

Начало конца сетевого нейтралитета в Интернете?

Reading time2 min
Views83K


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

Речь идет об отмене сетевого нейтралитета. И произошло это событие совсем не в России, где сетевого нейтралитета не было никогда (например, многие наши операторы уже давно раздают трафик тех же Яндекс-карт бесплатно, предоставляя им очевидное преимущество перед теми же Google Maps). Нет. Это произошло два дня назад в США. Стране, ратующей больше всех за свободу и демократию.
Читать дальше →

200 миллисекунд свободы

Reading time3 min
Views199K
В 1979 году американский психолог Бенджамин Либет провел свой знаменитый эксперимент, который взбудоражил научное сообщество, но как-то прошел мимо широкой массы. А очень зря, ведь он показывает всю чудовищную правду о нашей «свободной воле».
Читать дальше →

Кнопка. История длиной в 100 лет

Reading time9 min
Views55K
Раз уж мы начали разбирать историю появления разных частей современных веб-интерфейсов, то неплохо было бы рассказать о кнопке. И о том, как на протяжении последних 100 лет менялось пользовательское мышление людей в отношении кнопок.

Другими словами, сегодня мы поговорим о том, как мы пришли от этого — к этому:



А еще мы поговорим о том, как кнопки изменили наше понимание этого мира. Вы не представляете, насколько сильным было это влияние: кнопки поменяли саму парадигму нашего мышления.
Читать дальше →

Изобретаем JPEG

Reading time28 min
Views178K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →

Python на Хабре

Reading time7 min
Views454K
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…
Читать дальше →

Миникрафт в 252 символа

Reading time5 min
Views41K
В продолжении популярного цикла статей о том, что 30 строк джаваскрипта достаточно каждому, предлагаю Вашему вниманию перевод статьи Мэтью P01 Генри о его последней работе:


Итак, Мэтью пишет:

Кешируем статику

Reading time4 min
Views37K
Существует мнение, что nginx — отличный инструмент для отдачи статики.
Есть статьи, где описываются настройки sendfile или aio для «улучшения» отдачи.
На Хабре есть чего почитать о настройке proxy_store с proxy_cache для минимизации проблем со стороны мозгов сайта.
Еще в QA иногда возникают вопросы про кеширование картинок, например.
Зачем заниматься этой ерундой! — говорят опытные пользователи — OS лучше вас знает как кешировать файлы! С кешем и префетчем в современных OS, точнее FS, проблем нет! Зачем плодить свои кеши и списки популярных материалов и все такое?...

Есть только одно вредное «но» — в среде исполнения nginx (в общем случае Linux) понятие "файл" и вообще «файловая система» — просто понятие.
И однажды, когда я, подмонтировав сервер по sshfs, обновил один скриптик, случилось волшебное:
1. На каждой страничке стало на 4 картинки больше.
2. Сервера сдохли.

Что поделать — картинки хранились на glusterFS. Наступил полный FUSE.
Читать дальше →

Отладка самолета? Это очень просто!

Reading time13 min
Views119K
Некоторое время назад мне пришлось очень плотно поучаствовать в приемо-сдаточных испытаниях самолета. Эти испытания были основной частью процесса передачи свежеизготовленного, самого (по моему мнению) технически продвинутого на настоящий момент времени бизнес-джета от производителя заказчику. Казалось бы, причем здесь тестирование, разработка, да и вообще тематика Хабра? Желающие узнать это могут перевернуть страницу и прочитать довольно много текста, причем вообще без картинок.
Читать дальше →

HP Proliant MicroServer Gen8 — работа над ошибками

Reading time4 min
Views191K
Почти три года прошло с обзора первого HP Proliant MicroServer.
Следуя трехгодичному циклу в обновлении линеек серверов, компания Hewlett-Packard, летом этого года выпустила Microserver восьмого поколения. И вновь, один из первых экземпляров попал мне в руки, предоставляя отличную возможность бок-о-бок сравнить два поколения этой небезынтересной железки.

Предлагаю взглянуть, что изменилось и что стало лучше.
Осторожно, много фоток.
Читать дальше →

Squeak: Моделирование систем массового обслуживания

Reading time4 min
Views19K
На Хабре крайне мало информации о таком языке программирования как Squeak. Я попытаюсь рассказать о нем в контексте моделирования систем массового обслуживания. Покажу как написать простой класс, расскажу его структуру и использую его в программе, которая будет обслуживать заявки посредством нескольких каналов.

Пару слов о Squeak


Squeak это открытая, кросс-платформенная реализация языка программирования Smalltalk-80 c динамической типизацией и сборщиком мусора. Интерфейс довольно специфический, но вполне удобный для отладки и анализа. Squeak полностью отвечает концепции ООП. Все состоит из объектов, даже конструкции if-then-else, for, while реализованы с их помощью. Весь синтаксис сводится к посылке объекту сообщения в виде:
<объект> <сообщение>
Любой метод всегда возвращает объект и ему можно направить новое сообщение.
Squeak часто используется для моделирования процессов, но может использоваться и как средство для создания мультимедийных приложений и разнообразных образовательных платформ.
Читать дальше

Fortuna: генератор случайных чисел для параноиков

Reading time5 min
Views46K

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

Если у вас такого устройства нет, то прошу под кат.
Читать дальше →

Как правильно приготовить HDD

Reading time4 min
Views221K
(Вы не любите Seagate? Вы просто не умеете их готовить!)
Для NAS пришлось купить HDD 3TB WD Caviar Green IntelliPower (других трёшек просто не было). Руки привычно взяли «напильник» и начали «снимать фаску», из глаз слёзы обиды — семь с половиной тысячи за ЭТО. Да «гарантия», да RAID5, но держать в уме предстоящий через 6-8 месяцев ребилд 6 террабайтного массива?! И тут новость о снижении вендорами сроков гарантии. Нет, я отлично понимаю, почему уменьшают гарантию,- ЭТО работать вообще не должно. Но почему не повышают качество изделий? Впрочем, и это понимаю,- надо чтобы продавалось много, а не работало долго. А то вот мои три 2ТБ Барракуды уже второй год под торрентом 7/24 работают и не бэдят, а Seagate голодает.
И так, если вас греет гарталон — этот топик вам будет не интересен. Если у вас RAID6 из Seagate 7200 Constellation ES — ваше время слишком дорого стоит, что бы читать такие мелочи. Если вы потратили свои кровные и хотите «что бы не было мучительно больно» — загляните под кат, может найдёте что-то полезное.
Читать дальше →

Домашний сервер на Windows 8 Pro

Reading time12 min
Views162K
Приветствую!

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

В один из чудесных осенних дней меня тоже посетила эта мысль. Дело в том, в доме «развелось» слишком много устройств, которые захотелось объединить во что-то структурированное. Было принято решение поднять домашний сервер. В качестве ОС сначала хотелось использовать Windows Server 2012 Essentials, в состав которого вошли такие продукты, как Windows Home Server и Windows Small Business Server, но после нескольких часов работы с ней я понял, что использовать Windows Server 2012 в домашних условиях слишком «жирно». Тогда я решил использовать ОС попроще, а именно Windows 8 Pro, лицензия на которую лежала без дела.

Предупреждение. Я прекрасно понимаю, что поднять домашний сервер на Unix-подобных ОС, возможно, было бы и проще, но в данном материале я хочу рассказать, как поднять такой сервер на клиентской ОС Windows 8 Профессиональная обычному пользователю ПК (ну, или почти обычному), который никогда не имел опыта общения с Unix.
Вот моя история...

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

Reading time3 min
Views92K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

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

Python. Неочевидное поведение некоторых конструкций

Reading time4 min
Views35K
Рассмотрены примеры таких конструкций + некоторые очевидные, но не менее опасные конструкции, которых в коде желательно избегать. Статья рассчитана на python программистов с опытом 0 — 1,5 года. Опытные разработчики могут в коментах покритиковать или дополнить своими примерами.
Читать дальше →

Решение японских кроссвордов одним запросом SQL

Reading time4 min
Views60K
Привет хабр! Приближается день программиста, и я спешу поделиться своими ненормальными наработками.

Японский кроссворд — NP-полная задача, как и задача коммивояжёра, укладки рюкзака и др. Когда ее решает человек, следует последовательно определять гарантированно заполненные и пустые ячейки. Одну за другой вычеркивать колонки и строки, пока не сложится весь рисунок. Как же возможно запрограммировать решение подобной задачи на языке, который официально даже не является языком программирования, не содержит циклов и переменных? SQL — язык запросов, его главная задача — выбирать строки. Вот мы и будем генерировать множество всех возможных перестановок и, словно скульптор, отсекать все лишнее.

укусить себя за пятку

Мошеннические методы монетизации в free-to-play играх

Reading time11 min
Views137K
Примечание переводчика: После публикации статьи с автором связался коммерческий директор из King.com, создателя Candy Crush Saga, и прояснил несколько моментов, после чего автор добавил пару замечаний. Добавленные абзацы отмечены курсивом.

Принудительная монетизация


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

Согласно исследованиям, добавление даже одной промежуточной валюты между потребителем и реальными деньгами, например «игровых самоцветов» (премиальная валюта), делает потребителя гораздо менее подготовленными к оценке стоимости сделки. Лишние промежуточные предметы, я называю их «наслоения», делают для мозга оценку ситуации очень сложной, особенно под напряжением.

Этот дополнительный стресс часто подаётся в форме того, что Роджер Дики из Zynga называет «весёлыми мучениями». Приём заключается в том, чтобы поставить потребителя в очень неудобное или неприятное положение в игре, а потом предложить ему убрать эти «мучения» в обмен на деньги. Эти деньги всегда замаскированы в слоях принудительной монетизации, поскольку потребитель, столкнувшийся с «реальной» покупкой, скорее всего не поведётся на трюк.
Читать дальше →

Ищите ошибки с помощью Google или «взлом» аккаунтов на badoo.com

Reading time3 min
Views132K
Хочу рассказать, как компания Badoo охраняет аккаунты своих клиентов. Данная статья написана исключительно в образовательных целях. Я не подталкиваю никого к совершению противоправных действий и не преследую никакого злого умысла.

image

Не все Bug Bounty programs одинаково полезны


В марте 2013 года компания Badoo объявила конкурс «Проверь Badoo на прочность!».
Конкурс манил призами и я, довольная успехом в поиске уязвимостей для Yandex, зарегистрировалась на сайте, посмотрела, какие ссылки приходят в письмах, и просто вбила их в поисковую строку Google.
Читать дальше →

Используем почтовые индексы в своём приложении во благо

Reading time6 min
Views57K
Я думаю, что на многих сайтах пользователя спросят его физический адрес. Для доставки ли, для отсылки бумажного спама уведомлений ли. И, в общем-то — это мелочь. Вбил индекс, Москва, область, район, село, улица, дом, квартира. Казалось бы, что тут упрощать, каждый вроде помнит свой адрес, трудно ли его вбить? Но дьявол, как всегда, кроется в мелочах: пользователь опечатывается в адресе, посылка уходит не туда, лучи «добра» идут вам в обратную связь и вообще жизнь плохеет.

Приглядитесь к первой части адреса — индексу. В этом наборе из шести цифр уже есть область, район и город/село. Их можно подставить автоматом. Этим мы убъём сразу двух зайцев:
  • Убережём пользователя от ошибок (при вводе неверного индекса он сразу заметит, что город-то не его), что, в случае доставки письма (а то и посылки), может здорово её ускорить (пока её по неверному индексу зашлют, да пока разберутся, что не туда заслали, да отправят туда — пользователь вам всю плешь проест)
  • пользователю будет приятно, что о нём заботятся :-)

Дело за малым: нам нужна база почтовых индексов.

И она есть! Всамделишняя, электронная и, главное, официальная база индексов от Почты России.
Встречайте!

Псевдоскоп, или что если поменять глаза местами

Reading time8 min
Views385K

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

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

графоманское словоблудие с обилием картинок, фотографий и даже схем

Information

Rating
Does not participate
Location
Россия
Registered
Activity