• Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

      То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия.

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

      Итак, магия:


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

      Читать дальше →
    • Сделай сам: SQL JOIN на Java

      • Tutorial
      Я часто собеседую разработчиков и часто задаю им простой, как кувалда, вопрос — как внутри работает JOIN в SQL? В ответ я обычно слышу бессвязное мычание про волшебные деревья и индексы, которые быстрее. Когда-то мне казалось, что каждый программист специалист должен знать то, с чем работает. Впоследствии жизнь объяснила мне, что это не так. Но мне все еще не понятно, как можно годами теребить базёнку, даже не догадываясь, а что там у нее «под капотом»?

      Давайте проведем ликбез и вместе посмотрим, как же работают эти джойны, и даже сами реализуем парочку алгоритмов.

      SQL JOIN
      Читать дальше →
    • Бег помогает увеличить количество нейронов в гиппокампе

        Команда учёных из Финляндии доказала, что аэробные упражнения вроде бега позволяют увеличить количество нейронов в гиппокампе – той части мозга, которая отвечает за переход данных из кратковременной памяти в долговременную. Учёные пытались выяснить, что именно в большей степени повлияет на нейрогенез – высоко-интенсивные интервальные тренировки или анаэробные упражнения.

        image
        Читать дальше →
      • Пробежки: хороший спорт для айтишника или как начать бегать

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

          Регулярные физические нагрузки нужны и полезны. Среднестатистический ITшник недополучает физических нагрузок на работе, это факт. Он не таскает холодильники на 9й этаж без лифта, не носит мешки с цементом на стройке, не бегает за мамонтом в надежде на вкусный ужин. Так что со временем он только «хиляет» и «сдувается». Думаю, это ощущает каждый, кто еще не занимается спортом по какой-либо причине, будь то нехватка времени, лень, или растеряность. Если же желание всё же возникает, то вместе с ним возникает и вопрос — какой же спорт выбрать?
          П.С. Регулярный бег позволяет эффективно сбросить вес.
          Читать дальше →
        • Чтобы в старости не подводило зрение — не забывайте делать упражнения

            Жизнь программиста — это движение,
            Но электроника портит зрение!
            Поэтому — вот мое мнение,
            Сделай паузу, и упражнение!!!

            Комплекс гимнастических упражнений для глаз
            Читать дальше →
          • [ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

            • Translation
            Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



            Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
            Читать дальше →
            • +140
            • 80.6k
            • 15
          • Руководство по HTML/CSS/JavaScript

              Frontend Guidelines

              Правила и руководства оформления, форматирования HTML, СSS и JavaScript кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

              От переводчика

              Приветствую всех снова, меня зовут Максим Иванов, и сегодня я подготовил перевод, который, возможно, окажется для вас полезным. Бенджамин Де Кук (Benjamin De Cock), разработчик из Бельгии, собрал некоторые указания по оформлению кода, которые позиционируют себя как лучшие практики по написанию HTML, CSS, JS. Конечно, существует множество рекомендаций, например, есть хороший гайдлайн от Google, наверное, есть еще что-то, однако, если следовать хотя бы некоторым из них, то можно надеяться, что ваш код станет лучше. В отдельных случаях следование этим гайдлайнам не полезно, а совсем наоборот. В общем и целом, все зависит от вашего опыта и виденья дела, если вы новичок, то скорее вам будет полезно оценить то, что пишут другие и в обществе считается верным, если вы гуру, то наверное вам и не нужны гайдлайны, которые написаны непонятно кем на ваш взгляд. Итак, приступим.
              Читать дальше →
            • Алгоритмы для поиска палиндромов

              image

              Сегодня я хочу вам рассказать об алгоритмах подсчёта количества палиндромов в строке: для чего это нужно, где применяется, как это быстро сделать, какие подводные камни нас ожидают и многое другое. Рассмотрим различные способы для решения данной задачи, выясним плюсы и минусы каждого способа. Эта статья будет обзорной: если я что-то не описываю здесь, то постараюсь всегда дать вам набор ссылок, где всё подробно описано и расписано. Надеюсь, что материал будет интересен как новичкам в сфере алгоритмов, так и матёрым программистам. Что же, если я смог заинтересовать вас, то прошу под кат!
              Читать дальше →
            • Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 2



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

                Читать дальше →
                • +32
                • 18.9k
                • 3
              • Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1



                Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
                Читать дальше →
                • +49
                • 41k
                • 7
              • Способы ценообразования для фрилансера

                Независимо от сферы вашей деятельности ваш статус фрилансера означает, что вам неизбежно придется столкнуться с вопросом: Как должна оплачиваться моя работа? Стоит ли брать деньги за час? За проект? За этап работы? Исходя из стоимости предыдущих проектов? Исходя из потребностей?

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

                Существует пять основных способов ценообразования, которые вы можете использовать, чтобы найти идеальную схему. Каждый из пяти типов ценообразования обладает своим собственным набором плюсов и минусов и может быть настроен под индивидуальные нужды.
                Читать дальше →
                • +8
                • 11.3k
                • 2
              • Автоматизация переноса статей из Microsoft Word в Geektimes


                  Мне нравится писать на Geektimes, но есть одно неудобство. Это необходимость использования нестандартной разметки в стиле хабрахабр и ручной перенос картинок на habrastorage.org. Я пишу статьи в MS Word под Windows. Честно потратил около часа чтобы найти готовые решения данной проблемы. Лучшее из найденного был анализ API habrastorage для автоматизации загрузки картинок, но похоже устаревшее. Было упоминание некоего конвертера, но с неработающей ссылкой.

                  Читать дальше →
                • Подводные камни использования Excel Power Query и MySQL для автоматизации отчетности

                    image
                    Всем привет.
                    Наступил новый 2016 год, а значит пора обновить инструменты для упрощения скучной механической работы. Отделы аналитики, маркетинга, продаж часто сталкиваются со следующими трудностями при обновлении отчетности:
                    1. Данные приходится собирать воедино из нескольких источников.
                    2. Отчеты составляются в Excel, что накладывает значительные ограничения на объем обрабатываемых данных.
                    3. Внесение изменений в заранее настроенные разработчиками выгрузки дело как правило не самое быстрое.

                    Если отчеты нужно обновлять еженедельно или даже ежедневно, то эта процедура становится весьма напряжной даже для самых терпеливых. С помощью надстройки Excel Power Query и записи данных в MySQL можно свести обновление большинства отчетов до простого нажатия кнопки «Обновить»:
                    1. Данные из любого количества источников импортируются через SQL-запросы в обычные таблицы Excel.
                    2. Даже из большой базы можно записывать в Excel только небольшую часть данных (например, итоговые суммы за нужный диапазон дат с группировкой только по нужным столбцам).
                    3. Изменения в отчет можно вносить просто поменяв SQL-запрос. Далее формируем нужный отчет стандартными средствами Excel.

                    В этой статье я покажу как настраивать и автоматически заполнять простые базы данных MySQL (на примере выгрузки статистики всех ключевых слов из Яндекс Метрики), а потом одной кнопкой обновлять отчеты в Excel, используя надстройку Power Query. Power Query имеет весьма странные особенности работы при составлении SQL-запросов (особенно динамических), которые мы разберем во второй части статьи.
                    Читать дальше →
                    • +9
                    • 22.6k
                    • 1
                  • Распарсить HTML в .NET и выжить: анализ и сравнение библиотек


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

                      К сожалению, никаких цифр и/или аргументов в пользу того или иного парсера найдено не было, что послужило поводом к написанию данной статьи.

                      Сегодня я протестирую популярные, на данный момент, библиотеки для работы с HTML, а именно: AngleSharp, CsQuery, Fizzler, HtmlAgilityPack и, конечно же, Regex-way. Сравню их по скорости работы и удобству использования.


                      TL;DR: Код всех бенчмарков можно найти на github. Там же лежат результаты тестирования. Самым актуальным парсером на данный момент является AngleSharp — удобный, быстрый, молодежный парсер с удобным API.

                      Тем, кому интересен подробный обзор — добро пожаловать под кат.
                      Читать дальше →
                    • Структура данных 2-3-4 дерево

                      Когда я первый раз столкнулся с темой бинарных деревьев в программировании, то сразу нашел на Хабре ответы почти на все возникшие у меня вопросы, но время шло, вопросов становилось больше и совсем недавно я нашел тему, которую еще не осветили на данном ресурсе — это 2-3-4 деревья. Есть отличная статья на тему 2-3 деревьев, в которой можно найти ответы на вопросы «Что такое куча?», «Что такое 2-3 деревья», а также информацию про основные операции со структурой, поэтому я не буду повторяться и сразу перейду к главной теме.

                      Итак, главное отличие 2-3-4 деревьев от 2-3 состоит в том, что они могут содержать более трех дочерних узлов, что дает возможность создавать четырехместные узлы (узлы, имеющие четыре дочерних узла и три элемента данных). Можно увидеть отличия визуально на гифке под эти текстом.На первом слайде показано 2-3 дерево, на втором — 2-3-4.


                      Читать дальше →
                      • +16
                      • 29.9k
                      • 2
                    • Что нам стоит сайт распарсить. Основы webdriver API

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



                        В интернет опубликовано много полезной информации и умение извлекать данные поможет в жизни и работе. Научимся получать информацию с помощью webdriver API. В публикации приведу два примера, код которых доступен на github. В конце статьи скринкаст про то, как программа управляет браузером.
                        Читать дальше →
                      • Организация рабочего места с позиции здоровья спины (и не только)

                          После моей предыдущей статьи по поводу корректоров осанки в комментариях попросили изложить свой взгляд на оборудование рабочего места за компьютером с позиции здоровья позвоночника и минимизации влияния позы на возникновение болей в различных отделах спины.
                          Прежде чем самому взяться за систематизацию знаний по этому вопросу я решил посмотреть, что в интернете по этому вопросу написано. И с удивлением понял, что до конца толковых советов почти нигде нет. Есть масса статей, в них очень часто сказаны верные вещи, но вот чтоб прям все и в одном месте – с ходу не нашел. Дабы сэкономить время решил сам написать.
                          Читать дальше →
                        • Power Query: стероиды для MS Excel и Power BI

                            image

                            В данной статье я хочу рассказать о некоторых возможностях бесплатной и крайне полезной, но пока еще мало известной надстройки над MS Excel под названием Power Query.

                            Power Query позволяет забирать данные из самых разных источников (таких как csv, xls, json, текстовых файлов, папок с этими файлами, самых разных баз данных, различных api вроде Facebook opengraph, Google Analytics, Яндекс.Метрика, CallTouch и много чего еще), создавать повторяемые последовательности обработки этих данных и загружать их внутрь таблиц Excel или самого data model.

                            И вот под катом вы можете найти подробности всего этого великолепия возможностей.
                            Читать дальше →
                          • Office Add-Ins для Excel — новые возможности для разработчиков на VBA и VSTO

                              Предыстория


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

                              В то время, у нас, как у разработчиков, было два способа «расширить» Excel под нетиповые задачи:
                              • VBA (Visual Basic for Applications);
                              • VSTO (Visual Studio Tools for Office).


                              Читать дальше →
                            • Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение



                                Привет сообществу!

                                Я Юрий Кашницкий, раньше делал здесь обзор некоторых MOOC по компьютерным наукам и искал «выбросы» среди моделей Playboy.

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

                                Почему бы воскресным вечером не поделиться с сообществом материалами по Python и обзором репозиториев по машинному обучению… В первой части будет описание репозитория GitHub с тетрадками IPython по программированию на языке Python. Во второй — пример материала курса «Машинное обучение с помощью Python». В третьей части покажу один из трюков, применяемый участниками соревнований Kaggle, конкретно, Станиславом Семеновым (4 место в текущем мировом рейтинге Kaggle). Наконец, сделаю обзор попавшихся мне классных репозиториев GitHub по программированию, анализу данных и машинному обучению на Python.

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