Pull to refresh
0
max7 @max7read⁠-⁠only

User

Send message

Фотоагентство обвинило журнал в использовании пятна с фотографии

Reading time1 min
Views26K
Хакерский журнал 2600 получил предупреждение от Trunk Archive: по мнению представителей компании, журнал украл паттерн чернильного пятна. Пятна, которое находилось в левом верхнем углу оригинального изображения.

Но и «оригинальное изображение» оказалось совсем не оригинальным.

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

«Сладкое» программирование, или Как выделить этикетку с банки варенья в Mathematica?

Reading time5 min
Views11K

Перевод дискуссии "How to peel the labels from marmalade jars using Mathematica?" с сайта Mathematica at StackExchange.
Код, приведенный в статье, можно скачать здесь (~31 МБ).
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Как можно выделить содержимое этикетки с указанной ниже банки (точка съёмки кадра, геометрия банки, её содержимое — всё это нам неизвестно),



чтобы получить нечто подобное — ту же самую этикетку в том виде, в каком она была до того, как оказалась на банке?



Основная идея заключается в следующем:

  • Находим этикетку.
  • Находим границы этикетки.
  • Находим отображение координат пикселей изображения на цилиндрические координаты.
  • Трансформируем изображение с использованием найденного отображения.

Предлагаемый нами алгоритм работает только для изображений, в которых:

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

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

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

То, что наши родители и учителя не рассказали нам о неудачах

Reading time2 min
Views8.1K


Помните школьные дни перед объявлением результатов экзаменов? Эти моменты глубокого волнения, когда сердце начинало колотиться. Чем была вызвана такая реакция?

Все из-за страха перед неудачей.


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

Но так ли неудачи опасны, как мы думаем?
Читать дальше →

Мировая столица патентного права

Reading time7 min
Views13K
Раз в месяц Фонд электронных рубежей (EFF) объявляет очередного победителя в номинации «Самый тупой патент месяца». В августе это гордое звание по праву досталось патентному троллю Rothschild Connected Devices Innovations. В 2006 году RCDI получила патент на концепцию миксера, каким-то образом управляемого через Интернет, а в 2014 году умудрилась распространить действие патента на удалённое управление через Интернет вообще.

На этом основании RCDI уже подала в суд на производителя оборудования для умных домов ADT. Фактически, изобретатель (предположительно) умной мультиварки теперь претендует на лицензионные выплаты от всего, что составляет сегодня Интернет вещей.

Как вы понимаете, бредовый иск был подан в окружной суд Восточного округа штата Техас.

Как? Вы не понимаете? Тогда читайте дальше.
Читать дальше →

Строим real-time веб-приложения с RethinkDB

Reading time10 min
Views44K
От переводчика: Совсем недавно узнал про эту довольно интересную базу данных и как раз наткнулся на свежую статью. На Хабре нет почти ни слова о RethinkDB, в связи с чем было решено сделать этот перевод. Добро пожаловать под кат!

image

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

Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

Reading time10 min
Views97K
image

До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
Читать дальше →

Муравьи не уступают по эффективности пестицидам

Reading time3 min
Views14K


Учёные из Орхусского университета (Дания) обнаружили новый способ защиты агрокультур от вредных насекомых. На удивление, они предложили не какую-то генетическую технологию и не хайтек, а наоборот — настоящий лоутек. Оказалось, что самые обычные муравьи справляются с защитой урожая ничуть не хуже химических пестицидов.

Муравьи — поистине уникальные существа. Одна из их особенностей состоит в том, что они атакуют насекомых любого размера, защищая свою территорию. На фотографии вверху — муравей-портной (Oecophylla smaragdina) в позиции для атаки. Некоторые африканские муравьи могут даже напугать слона и заставить его удалиться от деревьев, на которых живёт колония.
Читать дальше →

gRPC — фреймворк от Google для удалённого вызова процедур

Reading time8 min
Views183K

В деле удалённого вызова процедур дела уже давно обстоят в точности как в известном комиксе «14 стандартов» — чего только тут ни напридумано: древние DCOM и Corba, странные SOAP и .NET Remoting, современные REST и AMQP (да, я знаю, что кое-что из этого формально не RPC, для того чтобы обсудить терминологию даже вот специальный топик недавно создали, тем ни менее всё это используется как RPC, а если что-то выглядит, как утка и плавает, как утка — ну, вы в курсе).

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

Поэтому, встречайте, gRPC, что расшифровывается как «gRPC Remote Procedure Calls» — новый фреймворк для удалённого вызова процедур от Google. В этой статье мы поговорим о том, почему же он, в отличии от предыдущих «14 стандартов» всё-таки захватит мир (ну или хотя бы его часть), попробуем собрать билд gRPC под Windows + Visual Studio (и даже не говорите мне, что инструкция не нужна — в официальной документации упущено штук 5 важных шагов, без которых ничего не собирается), а также попробуем написать простенький сервис и клиент, обменивающиеся запросами и ответами.
Читать дальше →

АНБ невозможно засудить за массовую слежку

Reading time5 min
Views14K
image

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

Вроде бы никто даже не оспаривает существования программы массовой слежки за гражданами разных стран, PRISM. Эдвард Сноуден в 2013 году раскрыл подробности этой беспрецедентной программы, стартовавшей в 2007 году и охватывающей практически весь земной шар. Агентство Национальной Безопасности, прикрываясь «Патриотическим актом» и прочей подобной риторикой, считает себя вправе шпионить не только за гражданами своей страны, но и вообще за всеми, до кого дотянется.

Пытались ли борцы за справедливость оспорить эту практику? Безусловно. Начиная с самого Сноудена, в 2013 году навсегда изменившего свою жизнь раскрытием совершенно секретной информации. В июне этого года сенатор Рэнд Пол попытался заблокировать продление действия федерального закона «О сплочении и укреплении Америки путем обеспечения надлежащими средствами, требуемыми для пресечения и воспрепятствования терроризму» (известного под прозвищем «Патриотический акт»), использовав имевшееся у него право вето.

АНБ приостановило слежку — на два дня. После чего Сенат позволил агентству возобновить её «ещё на шесть месяцев». Как? Приняв новый закон — «USA Freedom Act». Название акта — бэкроним, расшифровывающийся, как «Объединение и усиление Америки путём реализации прав человека и окончания прослушки, массового сбора данных и онлайновой слежки».
Читать дальше →

Что общего между ростом Uber и развитием эры автомобилей?

Reading time6 min
Views8.2K


Годы проходят, инновации продолжаются.

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

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

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

Трейдер из Японии, не читающий финансовых новостей, заработал $34 млн всего за сутки

Reading time2 min
Views32K
image
Трейдер CIS (фото: Bloomberg)

Иногда нежелание читать последние новости может стать фактором, влияющим на уровень дохода трейдера. Так, японский трейдер, работающий под никнеймом CIS, всего за сутки заработал около $34 млн на обвале азиатских фондовых рынков, пишет Siliconrus. Как оказалось, этот трейдер не читает финансовых новостей, а работает по собственной методике, основанной на анализе курсов, плюс доверяет собственной интуиции.

Еще 12 августа CIS смог заметить необычную динамику, тренд на рынке японских акций. Случилось нечто необычные — рынок не восстановился после распродажи ценных бумаг и контрактов в предыдущую сессию. Результат — индекс биржи стал понижаться.
Читать дальше →

Основателя Pirate Bay арестовали сразу же по выходу из тюрьмы

Reading time3 min
Views21K
image
Готтфрид Свартхольм / Getty images

Готтфрид Свартхольм, один из основателей известнейшего торрент-трекера The Pirate Bay, был арестован в Дании сразу же после того, как вышел из тамошней тюрьмы, отбыв положенный ему срок. Официально арест был произведён из-за того, что по какой-то причине он не досидел месяц в своей родной Швеции, в которой он ранее отбывал наказание. Теперь он будет экстрадирован в Швецию с целью отбывания этого месяца в тюрьме.

Свартхольм в 2003 году стал одним из основателей TPB — а кроме этого был IT-активистом, принимал непосредственное участие в развитии Пиратской партии Швеции. Он помогал Wikileaks — в частности, участвовал в публикации скандальной видеозаписи т.н. «багдадского авиаудара». Эта 30-минутная запись была опубликована в апреле 2010 года.

12 июля 2007 года в иракской столице произошёл инцидент, известный как Сопутствующее убийство (Collateral Murder). В результате обстрела иракцев двумя вертолётами армии США погибли несколько десятков человек, большинство из которых не были повстанцами. С вертолётов AH-64 Apache американцы из 30-миллиметровых пушек стреляли в иракцев на улице, после чего ракетами AGM-114 Hellfire уничтожили целое здание. В результате погибли, в том числе, 2 репортёра Reuters, а также женщины и дети.
Читать дальше →

Интервалы в С++, часть 4: к бесконечности и далее

Reading time6 min
Views9.3K
В прошлой части я рассказал о концепции инкременторов (Iterable) и показал, как они решают множество проблем, присущих стандартным интервалам. Сейчас я расширю эту концепцию, чтобы сделать программирование бесконечных интервалов более безопасным и эффективным делом.

Disclaimer: идеи в этом посте более умозрительные, чем в предыдущих. Я буду рад дискуссии.
Читать дальше →

Чего желает общество: стремление россиян к контролю интернета

Reading time2 min
Views18K
На GT уже опубликована короткая заметка со ссылкой на результаты опроса ВЦИОМ по поводу их отношения к свободе интернета. Результаты удручающие: 49% россиян считает, что информацию в интернете следует подвергать цензуре, 58% поддерживают полное отключение интернета в стране в случае национальной угрозы или возможности массовых протестов, а 73% полагают, что в сети не стоит публиковать негативную информацию о госслужащих, 81% заявили о своём отрицательном отношении к призывам протестовать против правительства. Значительная доля (42%) россиян верит в то, что иностранные государства используют интернет во вред России и её интересам.

Этот опрос ВЦИОМ требует нескольких комментариев, чтобы была понятна его достоверность.
Читать дальше →

Как исправить ошибку в Node.js и нечаянно поднять производительность в 2 раза

Reading time8 min
Views44K
Началось все с того, что я оптимизировал отдачу ошибки HTTP 408 Request Timeout в сервере приложений Impress, работающем на Node.js. Как известно, у нодовского http.Server есть событие timeout, которое должно вызываться для каждого открытого сокета, если тот не закрылся за указанное время. Хочу уточнить, что не для каждого запроса т.е. не для каждого события request, функция которого имеет два аргумента (req, res), а именно для каждого сокета. Через один сокет может последовательно поступить много запросов в режиме keep-alive. Если мы задаем это событие, через server.setTimeout(2 * 60 * 1000, function(socket) {...}) то должны сами уничтожать сокет socket.destroy(). Но если не установить свой обработчик, то http.Server имеет встроенный, который уничтожит сокет через 2 минуты автоматически. На этом самом таймауте можно отдать ошибку 408 и считать инцидент исчерпанным. Если бы не одно но… С удивлением я обнаружил, что событие timeout вызывается и для тех сокетов, которые подвисли и для уже получивших ответ и для закрытых клиентской стороной, вообще для всех, находящихся в режиме keep-alive. Это странное поведение оказалось достаточно сложным, и я расскажу об этом ниже. Можно было бы вставить одну проверку в событие timeout, но со своим идеализмом я не удержался и полез исправлять баг на уровень глубже. Оказалось, что в http.Server режим keep-alive реализован не то что не по RFC, а откровенно не дописан. Вместо отдельного timeout для соединения и отдельного keep-alive timeout, там все на одном таймауте, который реализован на быстрых псевдо-таймерах (enroll/unenroll), но задан по умолчанию в 2 минуты. Это было бы не так страшно, если бы браузеры хорошо работали с keep-alive и переиспользовали его эффективно или закрывали бы неиспользуемые соединения.
Читать дальше →

Полиция заставила китайского разработчика удалить код с GitHub

Reading time1 min
Views70K
Разработчик из Китая под ником @clowwindy — автор таких проектов, как Shadowsocks и ShadowVPN, позволяющих обходить блокировку сайтов в интернете; и, в частности, Великого китайского фаерволла. Сегодня он написал в комментарии на Github:
Позавчера ко мне пришла полиция и попросила прекратить работу над этим. Сегодня они потребовали удалить весь код с GitHub. Мне ничего не остается, кроме как подчиниться.
Читать дальше →

«Ваша конфиденциальность очень важна для нас». Читаем Заявление о конфиденциальности корпорации Майкрософт

Reading time16 min
Views140K
Прошлая неделя во многом прошла под знаком Microsoft — точнее обсуждения того, какие персональные данные собирает новая операционная система. Но прежде, чем подробно разобрать этот вопрос, позволю себе цитату из The Guardian:

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

Ну а теперь посмотрим, что хочет знать о нас Microsoft.
Читать дальше →

Роскомнадзор сможет проводить внезапные проверки интернет-компаний

Reading time3 min
Views4.5K


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

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

mhddfs — Монтирование нескольких разделов в одну директорию

Reading time3 min
Views48K
Хочу рассказать о том, как смонтироват в одну директорию два раздела.
Честно говоря, никогда не задумывался о такой возможности, пока не попался клиент с подобным пожеланием. Поначалу мне показалось что это невозможно, но покопавшись в интернете нашел пару интересных статей. За основу в работе была взята статья с сайта hotbits.ru. Но в статье монтировали разделы одного и того же диска, мне же предстояло смонтировать разделы с разных дисков. Как оказалось, нет никакой разницы.
Читать дальше →

Упрощаем for-цикл по индексам: range-based версия

Reading time8 min
Views39K
Волею судеб мне довелось заняться одной задачей автоматизации при помощи Python-скрипта. Изучая базовые конструкции, наибольший интерес у меня вызвал следующий код:

for index in range(0,10) :
  do_stuff()

Удобно, читаемо, лаконично (модно, стильно, молодежно)! Почему бы не организовать такой же цикл в С++? Что из этого вышло — под катом.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity