Pull to refresh
2
0.1

Пользователь

Send message

Восстановление расфокусированных и смазанных изображений. Практика

Reading time10 min
Views351K
Не так давно я опубликовал на хабре первую часть статьи по восстановлению расфокусированных и смазанных изображений, где описывалась теоретическая часть. Эта тема, судя по комментариям, вызвала немало интереса и я решил продолжить это направление и показать вам какие же проблемы появляются при практической реализации казалось бы простых формул.

В дополнение к этому я написал демонстрационную программу, в которой реализованы основные алгоритмы по устранению расфокусировки и смаза. Программа выложена на GitHub вместе с исходниками и дистрибутивами.

Ниже показан результат обработки реального размытого изображения (не с синтетическим размытием). Исходное изображение было получено камерой Canon 500D с объективом EF 85mm/1.8. Фокусировка была выставлена вручную, чтобы получить размытие. Как видно, текст совершенно не читается, лишь угадывается диалоговое окно Windows 7.



И вот результат обработки:



Практически весь текст читается достаточно хорошо, хотя и появились некоторые характерные искажения.

Под катом подробное описание проблем деконволюции, способов их решения, а также множество примеров и сравнений. Осторожно, много картинок!
Читать дальше →
Total votes 459: ↑456 and ↓3+453
Comments141

Эмиграция и всё о ней в телеграм-блогах

Reading time6 min
Views70K

«Хорошо там, где нас нет» — думают многие и годами живут на одном и том же месте. Но мир слишком разнообразен, чтобы всю жизнь провести в одной стране.


image

Карта каналов об эмиграции


На помощь приходит Telegram, где в последние годы появилось уникальное сообщество авторов жанра «я — эмигрант».


Каждый день очередной эмигрант решает вещать из своей страны и заводит канал в телеграме. Ребята (а 90% из них работают в IT или около IT индустрии) делятся полезными советами, общаются с читателями в чатах, пропагандируют свободу перемещения, рассказывают о плюсах и минусах эмигрантской жизни, честно и без прикрас выдают информацию, которую не найти в поисковиках.


Какие на самом деле жители выбранной ими страны? Как найти жилье? Как устроится на работу? В чем отличия менталитета? Или даже Как проходят свидания? Как строится личная жизнь в другой стране? Такого нет в Google! :)


Я собрал максимально большой список таких блогов, отсортировал по странам и делюсь с вами.

Читать далее
Total votes 49: ↑44 and ↓5+39
Comments57

Нейронные сети с нуля. Обзор курсов и статей на русском языке, бесплатно и без регистрации

Reading time5 min
Views220K
На Хабре периодически появляются обзоры курсов по машинному обучению. Но такие статьи чаще добавляют в закладки, чем проходят сами курсы. Причины для этого разные: курсы на английском языке, требуют уверенного знания матана или специфичных фреймворков (либо наоборот не описаны начальные знания, необходимые для прохождения курса), находятся на других сайтах и требуют регистрации, имеют расписание, домашнюю работу и тяжело сочетаются с трудовыми буднями. Всё это мешает уже сейчас с нуля начать погружаться в мир машинного обучения со своей собственной скоростью, ровно до того уровня, который интересен и пропускать при этом неинтересные разделы.

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

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


Читать дальше →
Total votes 39: ↑34 and ↓5+29
Comments12

All-In-One: Proxmox + OpenMediaVault или ещё одна идея для домашнего NAS

Reading time11 min
Views90K


Астрологи объявили месяц статей о домашних NAS на Хабре, так что поделюсь и своей историей успеха...


Не так давно я попробовал новый FreeNAS Coral. Понравилось мне в нем если не все, то очень многое: это и новый гипервизор bhyve, и повсеместное использование 9P для проброса файловой системы на гостя, а так же идея с docker и многое другое.


Кроме того я ещё больше влюбился в ZFS со всеми её плюшками, такими как дедупликация и сжатие на лету.


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


В статье так же будет немного рассказано про Docker и автоматический прокси с автоматическим получением сертификатов Letsencrypt.

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments54

Конференция DEFCON 16. Фёдор, хакер InSecure.org. NMAP-cканирование Интернет

Reading time19 min
Views10K
Добрый день, меня зовут Фёдор, я из InSecure.org и я являюсь автором проекта сканера безопасности Nmap, выпущенного в свет в 1997 году. Я хотел бы поблагодарить всех, кто сюда пришёл, и сам Defcon за то, что меня сюда пригласили. Я большой поклонник таких конференций, куда могут прийти люди, испытывающие настоящую страсть к любительским технологиям, но не имеющие компаний, которые готовы заплатить тысячи долларов за билет.

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



Потому что для меня говорить о чём-то другом будет так же непривычно, как услышать Дэна Камински, который не рассказывает о DNS. Я имею в виду, что я могу ринуться в обнаружение некоторых ОС или действие обработчика скриптов Nmap так же, как Дэн может взять свой DNS и использовать его для туннелирования YouTube, чтобы обдурить какого-нибудь болвана, но в обоих случаях мы просто расширяем свою ключевую тему.

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

И когда я рассказываю об этом людям, они часто спрашивают: «Зачем»? Для меня сканирование является ценным само по себе, но если вам нужна какая-то причина, то в данном случае в этом случае у меня были некоторые конкретные цели проекта. Первая – это собрать эмпирические данные и использовать их для расширения и улучшения функциональности Nmap, мы поговорим об этом чуть позже.
Total votes 13: ↑12 and ↓1+11
Comments5

Анализ графиков бинарных опционов или как я в очередной раз доказал себе, что халявы не существует

Reading time6 min
Views70K


Недавно я наткнулся на занимательное видео из разряда «Чтобы быстро стать богатым нужно всего лишь...». Видео начинается пафосным пересчитыванием солидной пачки денег и демонстрированием приличного счета. Далее парень показывает стратегию, которая основана на фразе «Ну вот смотрите на график, тут видно».


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

Читать дальше →
Total votes 125: ↑120 and ↓5+115
Comments191

Типичные ошибки, которые разработчик допускает при обучении — и как их избежать

Reading time4 min
Views17K

В эпоху подрывных технологий и засилья фреймворков.

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

Переведено в Alconost
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments6

Тяжкое наследие прошлого. Проблемы командной строки Windows

Reading time28 min
Views78K
Предисловие от автора, Рича Тёрнера из Microsoft. Это статья о командной строке: от её появления и эволюции до планов капитального ремонта Windows Console и командной строки в будущих версиях Windows. Будь вы опытным профессионалом или новичком в IT, надеемся, что вы найдёте статью интересной.

Давным-давно в далёкой-далёкой серверной...


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

Одним из первых по-настоящему эффективных человеко-машинных интерфейсов стал Tele-Typewriter или «телетайп». Это электромеханическая машина с клавиатурой для ввода данных и каким-нибудь устройством вывода — сначала использовался принтер, позже экран.
Читать дальше →
Total votes 107: ↑103 and ↓4+99
Comments181

Английская грамматика как математика. С чего начать тем, у кого не сложилось

Reading time6 min
Views43K
Английская грамматика – удивительна своей простотой. Её очень сложно не любить: почти всё логично, структурировано, понятно, если знать (конечно). Это не русский, где можно что угодно сказать как угодно, но и в этом есть свой шарм. Поэтому мне всегда кажется, что людям с математическим складом ума природа просто кричит в ухо, что английский надо учить и для них это просто. Полно конечно всяких исключений, куда без них, но в общей массе всё логично.
Допустим, решились, нашли какую-то мотивацию. Так как же начать, с чего подойти? С алфавита? С неправильных глаголов? С произношения? Можно как угодно подходить, но, если ваша цель заговорить, правильнее всего будет подойти к преподавателю. Если к преподавателю лично подойти не можете, подойдите сюда.

Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments52

Наша книжная полка С#-программиста. А что у вас?

Reading time6 min
Views55K
Привет!

Будущие студенты Veeam Academy часто спрашивают нас о книгах, которые были бы полезны при подготовке к поступлению на наш курс по программированию на С#. Обычно мы рекомендуем несколько источников, сопровождая их своими комментариями, почему именно они будут полезны.

Однако большинство книг по программированию – это 1К+ страниц, и для их прочтения «от корки до корки» понадобится не один месяц и, возможно, даже не один год! Поэтому все наши рекомендации для абитуриентов Академии Veeam служат лишь ориентиром, а не обязательным требованием.

Со временем мы обобщили свои комментарии по каждому из изданий и в итоге получили список, как нам кажется, хороших книг для профессионального роста C# программиста.
Представляем наш краткий обзор под катом.

image
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments18

Re: «Сравнение JS-фреймворков: React, Vue и Hyperapp»

Reading time7 min
Views16K
Это небольшая ответная статья на публикацию «Сравнение JS-фреймворков: React, Vue и Hyperapp». Вообще я не большой фанат подобных сравнений. Однако раз уж речь зашла о таком маргинальном фреймворке, как Hyperapp, в сравнении с мастодонтами, типа React и Vue, я подумал, почему бы не рассмотреть все те же примеры на Svelte. Так сказать, для полноты картины. Тем более, это займет буквально 5 минут. Поехали!

image
Читать дальше →
Total votes 41: ↑31 and ↓10+21
Comments85

Инструментарий фондового рынка: Производные инструменты

Reading time6 min
Views52K
image

Не так давно на Хабре был опубликован интересный пост «Как IT-специалисту сохранить свои финансы», к которому, в частности был прикреплен не менее интересный опрос. Его результаты показательны – большинство хабрапользователей не отличает фондовый рынок от рынка FOREX (хотя на самом деле различия есть), и даже идея инвестировать свои сбережения в стартапы куда более популярна, чем стать инвестором на бирже. Первое место, с огромным отрывом занимают банки, и это также можно понять – к сожалению, в нашей стране не так много людей действительно обладает обширными финансовыми знаниями, а в таком случае депозит в банке – это, пожалуй, лучшее, что можно придумать, чтобы сохранить свои средства.

Мы, однако, считаем, что это не единственный способ сохранить и преумножить свои финансы, поэтому продолжаем свою серию образовательных постов, посвященных фондовому рынку. И сегодня мы поговорим о том, без чего сложно себе представить функционирование любой биржевой площадки – производных инструментах.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments8

How to ReactJS

Reading time6 min
Views85K
Для новичка, экосистема вокруг React (как и фронтэнда в целом) может показаться запутанной. Этому есть несколько причин.

  • Изначально, React был нацелен на экспертов и ранних последователей
  • Facebook открывает исходный код только тех продуктов, которые использует сам, т. е. не нацеленные на проекты-меньше-чем-Facebook
  • Огромное количество гайдов по React совершенно разной сложности


Здесь и далее, я предполагаю, что вы уже знакомы с HTML, CSS и JavaScript.

Читать дальше →
Total votes 46: ↑35 and ↓11+24
Comments24

Функциональное мышление. Часть 1

Reading time7 min
Views59K

В этой серии статей вы познакомитесь с основными принципами функционального программирования и поймёте, что значит «мыслить функционально» и как этот подход отличается от объектно-ориентированного или императивного программирования.


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments67

Решаем проблему миллиона открытых вкладок или «помогаем железу выживать»

Reading time7 min
Views23K


Мы попробуем разобраться — как можно снизить нагрузку на серверное железо, обеспечив при этом максимальную производительность Web-приложения.


В разработке больших высоконагруженных проектов с огромным онлайном часто приходится думать, как снизить нагрузку на сервера, особенно при работе в webSocket'ами и динамически изменяемыми интерфейсами. К нам приходит 100500 пользователей и мы имеем 100500 открытых соединений по сокетам. А если каждый из них откроет по 2 вкладки — это уже *201000 соединений. А если пять?

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments54

Самая сложная программа

Reading time5 min
Views129K
От переводчика: я нашел на Quora вопрос: Какую программу или код можно назвать самыми сложными из когда-либо написанных? Ответ одного из учасников был настолько хорош, что вполне тянет на статью.

Пристегни ремни.

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

Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.
Читать дальше →
Total votes 174: ↑158 and ↓16+142
Comments272

Каскадная генерация HTML-тегов посредством C#

Reading time4 min
Views11K
В очередном процессе написания веб приложения под ASP.NET MVC с использованием Bootstrap поймал себя на мысли, что неизбежное создание HTML-тэгов можно было бы и подсократить. Речь пойдёт не о наборе пользовательских элементов управления для расширения пространства Html.*, а о том, что лежит немножечко глЫбже. Для торопыг предлагаю глянуть сюда (GitHub), а для остальных добро пожаловать под кат.
Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments21

Раскрытие памяти (Memory Disclosure) ядра в современных ОС

Reading time27 min
Views13K

Под катом расположен перевод вступительной части документа Detecting Kernel Memory Disclosure with x86 Emulation and Taint Tracking (Статья Project Zero) от Mateusz Jurczyk.


В переведенной части документа:


  • специфика языка программирования C (в рамках проблемы раскрытия памяти)
  • специфика работы ядер ОС Windows и Linux (в рамках проблемы раскрытия памяти)
  • значимость раскрытия памяти ядра и влияние на безопасность ОС
  • существующие методы и техники обнаружения и противодействия раскрытия памяти ядра

Хотя в документе пристально рассматриваются механизмы общения привилегированного ядра ОС с пользовательскими приложениями, суть проблемы можно обощить для любой передачи данных между различными доменами безопасности: гипервизор — гостевая машина, привилегированный системный сервис (демон) — GUI приложение, сетевые клиент — сервер и т.д.


КДПВ

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments15

Помнить все: Evernote и Anki

Reading time12 min
Views257K


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

Я хочу достичь следующих целей при использовании системы:

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

Ниже я напишу о методах и правилах, которые составляют данную систему. Статья будет состоять из нескольких разделов:

  • Мой опыт по описанному вопросу
  • Проблемы запоминания
  • Теоретическое разрешение проблем
  • Практическое разрешение проблем с Evernote
  • Практическое разрешение проблем с Anki
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments66

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views783K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Total votes 290: ↑215 and ↓75+140
Comments67

Information

Rating
3,732-nd
Location
Россия
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle