Создание справочника адресной информации с блекджеком и API

Автор: admin от 16-07-2017, 16:20, посмотрело: 21

Часть 1. Трагическая. “За что мне все это?!”


Столкнулись мы как-то с необходимостью ввода корректной информации о местонахождении (прописке, регистрации) пользователей, и с тем, что проблема эта решается не совсем так легко и просто, как бы нам хотелось. Сначала мы попробовали КЛАДР, в его бесплатной ипостаси. Не то чтобы нам прямо-таки решительно все не понравилось, но было как минимум одно весьма раздражающее обстоятельство — некоторые адреса отсутствовали в справочнике. Например, дом 10 есть, а 10к1 — извините, не завезли. Вообще КЛАДР был привлекателен тем, что у него есть простой API и плагины (jQuery в частности), которые можно легко встроить в приложение, но отталкивал наполнением. Мы задумались — если нет такого ресурса, содержащего полную и наиболее актуальную адресную информацию, с API и плагинами, то единственный выход — создать такой ресурс самим.

Часть 2. Искательская. “Где собака зарыта?!”


И прослышали мы про ФИАС. О том как он бесконечно полон и прекрасен. А это выход! На сайте ФИАС есть базы, и все что нужно молодой растущей информационной системе! Правда, размер базы составляет более 4 Gb, ну да ладно, это же вся Россия! Обновляется база регулярно, так что есть где разгуляться. Дело за малым — развернуть базу, прикрутить API и плагины. Надо оговориться, что существует несколько релевантных и важных статей. К примеру, цикл вот этих статей, которые изначально очень помогли.

Часть 3. «Как это работает»


Проблемы начались с того, что база данных ФИАС поставляется в формате .dbf, данные из которого надо было как-то перенести в PostgreSQL, который было решено использовать в качестве БД.

Нужно отметить, что кроме формата .dbf, база представлена в формате xml. Как известно, человеку хочется всего и сразу. Чтобы включил и работает. Но разобраться сразу с тем, что же дает ФИАС довольно проблематично.

Категория: Программирование

 

Метод BFGS или один из самых эффективных методов оптимизации. Пример реализации на Python

Автор: admin от 16-07-2017, 07:40, посмотрело: 43

Метод BFGS или один из самых эффективных методов оптимизации. Пример реализации на Python


Метод BFGS, итерационный метод численной оптимизации, назван в честь его исследователей: Broyden, Fletcher, Goldfarb, Shanno. Относится к классу так называемых квазиньютоновских методов. В отличие от ньютоновских методов в квазиньютоновских не вычисляется напрямую гессиан функции, т.е. нет необходимости находить частные производные второго порядка. Вместо этого гессиан вычисляется приближенно, исходя из сделанных до этого шагов.

Существует несколько модификаций метода:
L-BFGS (ограниченное использование памяти) — используется в случае большого количества неизвестных.
L-BFGS-B — модификация с ограниченным использованием памяти в многомерном кубе.

Метод эффективен и устойчив, поэтому зачастую применяется в функциях оптимизации. Например в SciPy, популярной библиотеки для языка python, в функции optimize по умолчанию применяется BFGS, L-BFGS-B.

Категория: Программирование

 

Дорога к С++20

Автор: admin от 16-07-2017, 07:40, посмотрело: 19

Дорога к С++20Сегодня завершилась летняя встреча комитета ISO WG21 C++, проходившая в Торонто с 10 по 15 июля. Вскоре нас наверняка ждёт подробный отчёт от РГ21, а сегодня уважаемой публике предлагается пост-«разогрев» с обсуждением самого интересного.



Итоги встречи следующие: стандарт С++17 завершен и будет опубликован на следующем собрании в ноябре этого года; стандарт С++20 уже обзавелся первыми серьезными фичами — концептами (concepts), явными обобщёнными лямбда-функциями (explicit generic lambdas) — и это только начало.



Возможности нового стандарта С++17 обсуждались уже не раз, про нововведения писали на Хабре, проводили доклады на конференциях, поэтому снова их приводить здесь я не буду. Не секрет, что ключевой особенностью этого выпуска С++ стал перенос самых «вкусных» возможностей в неопределенное будущее. Что ж, теперь можно с уверенностью сказать, что многие долгожданные «фичи» переехали именно в С++20. Взятый курс на расширение stdlib никуда не делся, поэтому от C++20 можно ожидать гораздо большего и богатого набора функций.
->

Категория: Программирование

 

Безытеративное обучение однослойного персептрона. Задача классификации

Автор: admin от 16-07-2017, 00:45, посмотрело: 37

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

Категория: Программирование

 

Конкурс по программированию: JSDash (промежуточные результаты)

Автор: admin от 15-07-2017, 20:05, посмотрело: 26

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


->

Категория: Программирование

 

Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим

Автор: admin от 15-07-2017, 18:20, посмотрело: 22

Всем привет!

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

Давайте посмотрим, что попало в этот релиз.



Поддержка внешних инспекций кода

Если Вы используете встроенные в TeamCity инспекции кода на базе ReSharper или IntelliJ IDEA, или пользуетесь инспекциями SonarQube, теперь Вы сможете извлечь из них дополнительную пользу. Upsource 2017.2 умеет показывать результаты такого анализа в своем UI, наряду с результатами встроенных инспекций. Рецензирование кода становится немного проще, если сразу видно, какие новые потенциальные проблемы привнесло именно это изменение.

Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим


->

Категория: Программирование

 

Scala коллекции: секреты и трюки

Автор: admin от 15-07-2017, 11:35, посмотрело: 30

Представляю вашему вниманию перевод статьи Павла Фатина Scala Collections Tips and Tricks. Павел работает в JetBrains и занимается разработкой Scala плагина для IntelliJ IDEA. Далее, повествование идет от лица автора.



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



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



Этот список вдохновлен моими попытками разработать практичные инспекции для Scala коллекций, для Scala плагина IntelliJ. Сейчас мы внедряем эти инспекции, так что, используя Scala плагин в IDEA, вы автоматически выигрываете от статического анализа кода.



Тем не менее, эти рецепты ценны сами по себе. Они могут помочь вам углубить понимание стандартной библиотеки коллекций Scala и сделать ваш код быстрее и выразительнее.



Обновление:

Если вы испытываете тягу к приключениям,

вы можете узнать, как помочь в развитии IntelliJ плагина для Scala и попробовать свои силы в реализации, подобрав подходящую инспекцию.

->

Категория: Программирование

 

AWS DeepLearning AMI — почему (и как) его стоит использовать

Автор: admin от 15-07-2017, 11:35, посмотрело: 29

Иногда хорошие вещи приходят бесплатно ...



Что такое AMI?



Для тех из вас, кто не знает, что такое AMI, позвольте мне процитировать официальную документацию по этому вопросу:



Amazon Machine Image (AMI) предоставляет данные, необходимые для запуска экземпляра виртуального сервера в облаке. Вы настраиваете AMI при запуске экземпляра, и вы можете запустить столько экземпляров из AMI, сколько вам нужно. Вы также можете запускать экземпляры виртуальных машин из множества различных AMI, сколько вам нужно.

Этого должно быть достаточно, чтобы понять остальную часть статьи, однако я бы посоветовал потратить некоторое время на официальную документацию об AMI.

Идем далее...

Категория: Программирование

 

Чемпионы мира — о спортивном программировании

Автор: admin от 15-07-2017, 00:45, посмотрело: 39

Чемпионы мира — о спортивном программировании


DataArt давно дружит с командой ИТМО по спортивному программированию и помогает ей. Этим летом в гости в наш петербургский центр разработки пришли Илья Збань, Иван Белоногов и Владимир Смыкалов. Чемпионы мира 2017 года рассказали о том, как именно программисты соревнуются между собой, о тренировочных сборах, любимых задачах и сильнейших соперниках.



Олимпиада по программированию



Главное соревнование программистов — международная студенческая олимпиада под эгидой ACM (ACM-ICPC, или просто ICPC) — проходит с 1970-х, а в виде, близком к сегодняшнему, оформилась в 1989 году. Олимпиада предназначена для студентов и аспирантов, за редким исключением к соревнованиям не допускают программистов старше 24-х лет. К тому же, испытывать силы в финале можно только дважды, а в региональных отборах разрешается участвовать всего пять раз. На ранних этапах, проходящих по всему миру, соревнуются тысячи команд. Около сотни лучших доходят до финала. ->

Категория: Программирование

 

Как я заказывал мобильное приложение

Автор: admin от 14-07-2017, 23:50, посмотрело: 36

… или история о том, как увеличить продажи студии разработки.

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

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

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

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

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

Категория: Программирование » Веб-разработка