Search
Write a publication
Pull to refresh
32
0
Игнат Толчанов @Leeb

Backend developer

Send message

Unsupervised learning или «пойди туда, не знаю куда, найди то, не знаю что»

Reading time3 min
Views14K
imageЭкспертные системы, нейронные сети, исчисление предикатов, хорновские дизъюнкты, теоремы сходимости…
Не знаю как у вас, у меня вся эта кухня вызывает восторг. Как замечательно, что компьютеры (конечно, наученные программистами, вооруженными серьезной математикой) могут хотя бы иногда приближаться к человеку по навыкам принятия решений. Особенно это хорошо у них получается, когда человек готов учить.

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

Неуправляемое обучение, обучение без учителя
Однако есть ситуации, и их довольно много, когда правильного ответа никто не знает. И даже непонятно что является ответом. И даже задача не вполне ясна. Есть только данные. Надо что-то полезное из них извлечь.
Согласитесь, задача гораздо более интересная и дающая простор для фантазии?
Читать дальше →

Будущее за роботами

Reading time1 min
Views598
Блуждая по просторам интернета, наткнулся на две книги, которые должны стать настольными для любого человека, желающего захватить галактику беспокоящегося о своем будущем.
Читать дальше →

Игра Сет

Reading time2 min
Views6K

Есть такая потрясающая настольная (не компьютерная!) игра — Сет (The Set). Генетик Марша Фалко (Marsha Falco) изобрела её, делая пометки во время исследования эпилепсии у немецких овчарок. Игра получилась необычной, чрезвычайно увлекательной и мозгозагружающей. Хабралюдям — самое то! Осторожно: может появиться зависимость.



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

Eloquera — объектная база с SQL

Reading time2 min
Views664
После нескольких попыток написать об Eloquera что-то связное и при этом короткое, я решил опубликовать некоторые вопросы и ответы на них — заодно

Q1: Первым делом, что такое Eloquera? С чем ее едят? Как это вообще выглядит?

A1: Eloquera — объектно-реляционная база данных с поддержкой SQL. Едят ее с .NET, в частности, с C#. Теоретически, одна должна работать с любым языком .NET, но мы проверяли только с C# и VB.NET.

А выглядит это так:

// Соединяемся к базе
DB db = new DB("server=localhost;user=sys;password=pwd;options=none;");

// Создаем наш подопытный объект
Book book = new Book() { Price = 12.99, Title = "Learn CSV in 365 days" };

// Пишем объект в базу
db.Insert(new Book());

// Получаем наши объекты из базы
var books = db.ExecuteQuery("SELECT Book WHERE Price < 15 AND Title CONTAINS 'learn'");

// И распечатаем их в красивом черном окошке
foreach(Book ibook in books)
Console.WriteLine("{0} - ${1}", ibook.Title, ibook.Price);


Так, так, а поподробнее?

Системы оплаты проезда на основе DSRC снаружи и внутри

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

В качестве средства безостановочной оплаты проезда в Европе и в России используются транспондеры DSRC — недорогие «коробочки», крепящиеся к лобовому стеклу и обеспечивающие обмен информацией по радиоканалу с антеннами на пунктах взимания платы. Коллеги из компании ОССП, оператора трассы М-4, предоставили мне для опытов один из своих транспондеров, который мы разберем с целью изучения. Но перед тем как начать ломать транспондер, нужно отдать должное тематике хаба и рассмотреть архитектуру, лежащую в основе системы безостановочной оплаты проезда.
Читать дальше →

Где регистрировать домен. Сравнение цен

Reading time5 min
Views58K
До недавнего времени у меня было три проблемы с регистрацией доменов:

  • Выбрать домен и быстро проверить его занятость.
    Любой регистратор доменных имен предлагает вам форму, в которую вы вводите желаемое слово, просит ее отправить, подождать несколько секунд, узнать свободно ли имя. Затем повторить. Если вы в высококонкурентной нише, где все словарные имена заняты, то провести за этим увлекательным занятием можно несколько часов. Эту проблему для меня несколько лет подряд решал domainr, который проверяет домены как только ты вводишь их названия.

  • Отложить несколько удачных доменов, чтобы после выбрать лучший.
    Это невероятно, но практически ни один сервис, кроме namemesh, не дает добавить домены в избранное. К сожалению, он просит зарегистрироваться, как мы все это любим. На сайтах регистраторов задача решается при помощи корзины. Сначала добавляем все в заказ, затем выкидываем лишнее. Долго, неудобно, нет вариантов перед глазами.

  • Купить домен там, где его продают и где он дешевле.
    Проблема аккредитации регистраторов касается в первую очередь newTLD-доменов (.bike, .restaurant, .tools и прочие). У вашего любимого регистратора легко может быть .travel, но отсуствовать .work. Узнать, кто может зарегистрировать для вас уже привычный домен .io нетривиальная задача, не говоря уже о том, чтобы найти место, где сделать это дешевле.

    Задача регистратора в том, чтобы внести запись о домене в единую базу данных и предоставить набор сервисных услуг, связанных с адресом (DNS, SSL и прочие). Текущие реалии таковы, что почти все регистраторы предлагают одинаковые услуги, но берут за это совершенно разные деньги. И если разница в 300 рублей на покупку .ru-домена у разных регистраторов не особенно принципиальна, то зарегистрировать десяток typo-доменов в зоне .net может стоить от 3 000 до 13 000 рублей в зависимости от регистратора ($8.99 / 650 р / $34.99).

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

На пути к Rust 1.0

Reading time6 min
Views17K
Эта статья — перевод первого поста в официальном блоге языка программирования Rust, разрабатываемого Mozilla. Первая стабильная версия Rust совсем не за горами (предварительный прогноз — конец этого/начало следующего года), и авторы языка собираются опубликовать несколько вводных статей о том, что же такое особенное Rust предлагает.

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




Rust 1.0 уже в пути! Мы определились со списком фич и плотно заняты их реализацией. Наш план — выпустить бета-версию 1.0 в конце года. Если всё будет в порядке, то релиз 1.0 состоится вскоре после беты. Будущие версии в ветке 1.x будут обратно совместимыми, то есть существующий код будет ими компилироваться без изменений (естественно, за исключением багов в компиляторе).

Естественно, релиз 1.0 не означает только лишь стабилизацию («ваш код продожит компилироваться»); для нас он значит, что язык стал таким, каким мы хотим его видеть. Если ещё точнее, что он минимален. На данный момент язык выстроен вокруг простых базовых концепций, которые мы называем владением (ownership) и заимствованием (borrowing) (подробнее о них далее). Применяя эти концепции, всё остальное мы смогли вынести в библиотеки. Это очень здорово, потому что вы сами сможете написать аналогичные библиотеки. Из-за этого мы уверены, что Rust не только достигнет своих первоначальных целей, но и пойдёт дальше, применяясь в таких задачах, какие мы даже себе не представляли.

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

readyto.travel — как сэкономить 30% и более при покупке авиабилетов

Reading time2 min
Views13K
Привет, Хабр!
Хочу рассказать вам о readyto.travel — особенном поисковике авиабилетов, разработанном rtt.
Его отличительная черта — собственный алгоритм поиска маршрутов, который позволяет находить неочевидные дешевые и быстрые варианты перелетов.



За счет чего же это достигается?
Читать дальше →

Бизнес-архитектура систем взимания платы с автомобилей с использованием данных спутниковой навигации

Reading time8 min
Views9.1K

Бретонские Bonnets Rouges жгут порталы контроля системы Ecotaxe. Фото Europe1.fr

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

Разработка приложения на Android с помощью Xamarin и F#

Reading time10 min
Views17K
image

Привет!

Недавно Xamarin объявил конкурс на разработку мобильного приложения на функциональном языке программирования F#.
Это было связано с выходом Xamarin 3 с полной поддержкой F#. Я решил отвлечься от повседневных задач и попробовать поучаствовать, тем более что я давно смотрю на F#, но шансов познакомиться с ним подробнее у меня не было. Для участия в соревновании я решил разработать приложение идея которого была предложена кем-то в процессе обсуждения внезапного взлета мобильного приложения Yo. Вот цитата:
Идея для стартапа, рабочее название «ты где?».

Смысл прост, девушка устанавливает приложение, указывает в нем номер своего молодого человека и после этого появляется большая гнопка отправки сообщения «ты где?» #startup #idea

Почему бы и нет?

Примечание
Я писал этот пост параллельно работая над приложением. Поэтому он большой и местами не очень логичный.

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

Как улучшить свой стиль программирования?

Reading time6 min
Views139K

Исповедь 1


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

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

Обзор iconBIT DVR QX PRO: любопытный регистратор со съемкой 1080p 60 FPS

Reading time9 min
Views27K
Откровенно говоря, о существовании регистраторов марки iconBIT до знакомства с героем обзора я и не подозревал – и, как оказалось, совершенно зря. Арсенал бренда стремительно приближается ко второму десятку моделей, не считая «архивные» устройства. Что особо импонирует – тут не очередной ассортимент «типичных регистраторов», а как на подбор в основном небезынтересные модели. Помню, недавно в комментариях вопрошали о регистраторе с отдельным экраном и «внешними» камерами – советую присмотреться к iconBIT DVR QX DUO, здесь целых два миниатюрных «глазка» под управлением самого свежего процессора Ambarella — A7LA70D. Собственно, такое же «сердце» установлено и в одноканальном iconBIT DVR QX PRO, о котором и пойдет речь. Модель примечательна как минимум одним моментом – съемкой Full HD при частоте 60 FPS, тогда как сейчас едва ли не в 99% регистраторов запись 1080p ограничена 30 к/с.

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

Обзор языка Idris

Reading time11 min
Views23K
Agda is too mainstream!

«Предвидение»

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

Итак, Idris — чистый функциональный язык программирования общего назначения с зависимыми типами.
Читать дальше →

Page-кэш, или как связаны между собой оперативная память и файлы

Reading time8 min
Views56K


Ранее мы познакомились с тем, как ядро управляет виртуальной памятью процесса, однако работу с файлами и ввод/вывод мы опустили. В этой статье рассмотрим важный и часто вызывающий заблуждения вопрос о том, какая существует связь между оперативной памятью и файловыми операциями, и как она влияет на производительность системы.
Читать дальше →

15 малоизвестных команд Linux

Reading time3 min
Views318K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →

Мультитест мультиварок: что купить IT-шнику, если хочется плова и борща

Reading time33 min
Views176K
Нам неоднократно поступали предложения о тестировании мультиварок, но до определенного времени мы от них отказывались — ну что такого можно рассказать о мультиварке. Однако, предложения продолжали поступать, и примерно после 5-6 письма редакция Box Overview задумалась, и решили сделать не просто тест одной мультиварки, а глобальное тест-сравнение 8 мультиварок нижнего ценового сегмента от разных брендов.

image

В нашем тесте участвуют 8 мультиварок от компаний Vitek (VT-4209), Kitfort (KT-201), Scarlett (SL-MC411S01), Polaris (PMC 0527D), Rolsen (RMC-5500D), Redmond (RMC-250), Philips (HD2173) и Panasonic (SR-MHS181).

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

Почему рост качества вызывает рост некачества, или должна ли работать основная функция

Reading time7 min
Views31K
Аналоговое видео Глупо спорить с тем, что аналоговое видеонаблюдение уходит в прошлое: дешевые IP камеры дают картинку сопоставимого качества с дорогими аналоговыми. Помимо этого, IP камеры не ограничены сверху ничем, кроме производительности регистратора, тогда как аналоговые камеры требуют жесткого соответствия приёмной карты, согласования уровней сигнала передатчиков/усилителей/приемников и прочего шаманства.
Конструируя систему на базе IP камер в любой момент можно снять камеру и заменить на более качественную — если при этом сохранить IP адрес и логин-пароль, то, скорее всего, даже не придётся менять настройки приемника — просто в архив пойдёт более качественная картинка.
С другой стороны, это накладывает ограничения на регистратор — он должен быть готов работать с любым разрешением, любым битрейтом, любым кодеком и любым протоколом… Ну или по крайней мере, корректно работать с заявленным.

Шива В мире софта есть два пути — есть linux-way: это набор небольших программ, каждая из которых делает одну функцию, но очень хорошо; и есть windows-way: это огромные кухонные комбайны, которые умеют делать всё, и немного больше. Главная проблема linux-way — это отсутствие интерфейса. Чтобы получить всю пользу придётся скурить маны (или хотя бы прочитать --help), и поэкспериментировать. А так же сообразить, что и с чем можно скомбинировать и как. Главная проблема windows-way — это потеря основной функции. Очень быстро при обрастании доп.функционалом теряются тесты ключевого функционала, и со временем начинаются проблемы даже с ним. А еще при этом начинается инерция мышления: «это главная функция, она оттестирована сильнее всего, там бага быть не может, пользователь делает что-то не то».
Читать дальше →

Scala WAT: Обработка опциональных значений

Reading time5 min
Views15K
В сети и на Хабре уже довольно много статей вводного уровня про то, как начать писать на Scala, и раскрывающих особенности функционального подхода.

Какое-то время назад мы полностью перевели на Scala один из основных для веба проектов. За это время я наблюдал эволюцию разработчиков, включая свою собственную, и у меня скопился объёмный список конструкций, которые тянет написать, если вы раньше писали на Java, и для которых правильное решение на Scala может не быть сходу очевидным. Данные рекомендации могут быть не очень понятны тем, кто до сих пор пишет на Java и не видел до этого код на Scala. Я не буду разъяснять работу стандартных функций и функциональных концепций, всё ищется по ключевым словам в сети.
Читать дальше →

Автоматическое выделение меток

Reading time5 min
Views23K
В машинном зрении и робототехнике есть забавный класс задачек: обнаружение заранее известных меток. Сюда можно отнести всё: QR-коды, Augmented Reality ( AR, дополненная реальность), задачи позиционирования объектов (motion capture, определение местоположения), детектирование объектов по меткам, классификация объектов в робототехнике (например при автоматической сортировке), помощь автоматическим системам в позиционировании (роботизированные захваты), трекинг объектов, и.т.д.



В статье описаны основные методы захвата меток, их возможности, границы применимости.
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity