• Контроллер для домашней пивоварни Mega Brewery. Part I

      image Я домашний пивовар.
      Начинаю «разработку» контроллера для своего минипивзавода.

      Т.к. я нифига не программист, обратился к русскому Arduino сообществу.
      С момента желания сделать умный термометр для пивоварения, прошло много времени и возникло новое желание — построить автоматизированную домашнюю пивоварню. Для ее автоматизации необходим блок управления. Решено было отказаться от использования покупных PID контроллеров, для управления ТЭНом, т.к. имеется Arduino, к ней SSR реле — 2шт., дисплей 4 на 20 строк и к нему Serial Board для передачи инфы по одному проводу, не считая землю и питание.
      Читать дальше →
    • Типографика на Вебе

      • Перевод
      Типографика на Вебе прошла длинный путь с тех пор как Тим Бёрнерс-Ли нажал на рубильник в 1991-ом году. Давным-давно, во времена IE 1.0, выражение «хорошая типографика на Вебе» было, скорее, оксюмороном (сочетанием противоположных по значению слов). Многое успело измениться. У нас есть не только браузеры, которые умеют показывать картинки (ах!); у нас есть возможность оживлять наши веб-страницы, используя великолепную типографику.

      image
      Читать дальше →
    • Можно ли выучиться на предпринимателя?

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

        В сентябре мы вместе с University of Cambridge проводим в Бизнес-инкубаторе InCube программу Cambridge Enterprisers, которая изначально создавалась для того, чтобы помочь студентам PhD и прочим молодым ученым по-новому взглянуть на то, чем они занимаются, и использовать научные разработки для создания собственных бизнесов. Или просто задуматься о создании собственного бизнеса в любой области.

        Читать дальше →
      • Основы MPI для «чайников»

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

        Основные принципы и пример

        В качестве примера будет использоваться расчет экспоненты (e). Один из вариантов ее нахождения — ряд Тейлора:
        e^x=∑((x^n)/n!), где суммирование происходит от n=0 до бесконечности.

        Данная формула легко поддается распараллеливанию, так как искомое число является суммой отдельных слагаемых и благодаря этому каждый отдельный процессор может заняться вычислением отдельных слагаемых.
        Читать дальше →
      • Шаблоны ЕСКД и ГОСТ 7.32 для Lyx 1.6.x

          Уже более полугода я пользуюсь текстовым процессором Lyx. Встроенных шаблонов с лихвой хватало, чтобы писать конспекты лекций, готовиться к семинарам и делать несложные отчеты к лабораторным работам. Но в прошлом семестре пришлось делать два курсовых проекта в соответствии с требования ЕСКД. Я начал работу в Lyx, но без специальных шаблонов документов, мои отчеты в редакторе выглядели так:

          Читать дальше →
        • CUDA: аспекты производительности при решении типичных задач

            Перед тем как начать переносить реализацию вычислительного алгоритма на видеокарту стоит задуматься — получим ли мы желаемый прирост производительности или только потеряем время. И несмотря на обещания производителей о сотнях GFLOPS, у современного поколения карт есть свои проблемы, о которых лучше знать заранее. Я не буду глубоко уходить в теорию и рассмотрю несколько существенных практических моментов и сформулирую некоторые полезные выводы.
            Читать дальше →
          • Быстрое умножение многочленов при помощи преобразования Фурье — это просто

              Добрый вечер.
              Этот пост посвящён быстрому преобразованию Фурье. Будут рассмотрены прямое и обратное преобразования (в комплексных числах). В следующей части я планирую рассмотреть их применения в некоторых задачах олимпиадного программирования (в частности, одна задача про «похожесть» строк), а также рассказать про реализацию преобразования в целых числах.
              БПФ — это алгоритм, вычисляющий значения многочлена степени n=2k в некоторых n точках за время O(n⋅logn) («наивный» метод выполняет ту же задачу за время O(n2)). За то же время можно выполнить и обратное преобразование. Так как складывать, вычитать и умножать массивы чисел гораздо легче, чем многочлены (особенно умножать), БПФ часто применяется для ускорения вычислений с многочленами и длинными числами.
              Читать дальше →
            • Книги, видео и другие материалы по разработке под iOS

                «Хочу программировать под iPhone — говори, что почитать...»
                Любимая девушка


                Когда решаешься заняться разработкой под iOS, то трудно выбрать литературу и ресурсы, которые действительно были бы полезны. Хорошо еще, что Apple предоставляет множество учебных материалов и программ с открытым исходным кодом в своем центре для разработчиков. В остальных книжках можно если и не утонуть, то порядочно захлебнуться. Сейчас я жалею, что потратил время на пару «мануалов». Не буду делать им антирекламу, а лучше порекомендую хорошие материалы по программированию под iOS.

                Под катом книги, видеокурсы и блоги, которые будет полезно прочитать/посмотреть.
                Читать дальше →
              • Git Wizardry

                  1 Введение


                  В своей прошлой заметке я постарался осветить в общих чертах стиль работы с
                  распределенной системой контроля версий git и указать на отличия по сравнению с
                  классическими централизованными СКВ. Целью было прежде всего обобщение опыта
                  работы с системой без упоминания тонкостей синтаксиса отдельных команд.

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

                  Читать дальше →
                • Популярные вопросы на собеседовании по C++ и ответы на них

                    Здравствуйте!

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

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

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



                      Под катом есть еще видео
                      Читать дальше →
                    • Структуры данных: двоичная куча (binary heap)

                      Двоичная куча (binary heap) – просто реализуемая структура данных, позволяющая быстро (за логарифмическое время) добавлять элементы и извлекать элемент с максимальным приоритетом (например, максимальный по значению).

                      Для дальнейшего чтения необходимо иметь представление о деревьях, а также желательно знать об оценке сложности алгоритмов. Алгоритмы в этой статье будут сопровождаться кодом на C#.

                      Введение


                      Двоичная куча представляет собой полное бинарное дерево, для которого выполняется основное свойство кучи: приоритет каждой вершины больше приоритетов её потомков. В простейшем случае приоритет каждой вершины можно считать равным её значению. В таком случае структура называется max-heap, поскольку корень поддерева является максимумом из значений элементов поддерева. В этой статье для простоты используется именно такое представление. Напомню также, что дерево называется полным бинарным, если у каждой вершины есть не более двух потомков, а заполнение уровней вершин идет сверху вниз (в пределах одного уровня – слева направо).



                      Читать дальше →
                    • Латентно-семантический анализ

                      Как находить тексты похожие по смыслу? Какие есть алгоритмы для поиска текстов одной тематики? – Вопросы регулярно возникающие на различных программистских форумах. Сегодня я расскажу об одном из подходов, которым активно пользуются поисковые гиганты и который звучит чем-то вроде мантры для SEO aka поисковых оптимизаторов. Этот подход называет латентно-семантический анализ (LSA), он же латентно-семантическое индексирование (LSI)

                      Латентно-семантический анализ

                      Читать дальше →
                    • Видео с конференции RailsClub'Moscow (30 октября 2010г.)

                        Смотреть всё подряд
                        Представлены доклады:

                        1. Ruby NoName Podcast Crew «Chef Light»
                        С помощью Chef можно организовать управление серверами не только для больших организаций, а для всех.
                        Есть сервер, есть клиенты которые гоняются на других серверах. Сервер говорит что надо сделать, клиенты делают. Для всего этого существуют dsl конфигурации с поддержкой pakages.
                        *Удалённое проведение конференции накладывает свои особенности. Извиняемся за качество видео.

                        2. Макс Лапшин «Rails do scale»
                        Пример приложения быстрого приложения на Rail для Vkontakte с посещаемостью ~ 1000 запросов в секунду.
                        Дёшево и работоспособно.

                        3. Алекс Дмитриев «Умное кэширование в rails»
                        Докладчик рассказывает о том, как пользоваться кэшированием в Rails, когда нужно использовать кэширование, что кэшировать, где хранить кэш и т.д.

                        4. Иван Евтухович «Vim or die»
                        Докладчик рассказывает о возможностях Vim — одного из мощнейших текстовых редакторов с полной свободой настройки и автоматизации.

                        5. Тимофей Цветков «Liquor, Liquid и другие безопасные языки разметки в RoR»
                        Безопасные шаблонизаторы для RoR. С помощью чего и как.

                        6. Андрей Руденко «Deploy fu»
                        Докладчик обсуждает достоинства и недостатки наиболее популярных в Ruby-сообществе инструментов развертывания приложений: Chef, Capistrano, Puppet, Сfengine, Bash-скриптики и др. Основная часть доклада посвящена презентации своего решения — Lorenz (см. github->lorenz).

                        Приятного просмотра.
                      • «Оптимизация» внешнего вида сайта в результатах поиска Яндекса

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

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

                          А как сайт выглядит в поиске? Захочет ли пользователь вообще на него перейти? Очевидно, что на решение пользователя может повлиять в том числе внешний вид сниппета.

                          Читать дальше →
                        • Распараллеливание задач. Случай «идеальной параллельности». Часть 1

                            Распараллеливание кода без зависимостей


                            Введение

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

                            Читать дальше →
                          • Оценка сложности алгоритмов

                              Не так давно мне предложили вести курс основ теории алгоритмов в одном московском лицее. Я, конечно, с удовольствием согласился. В понедельник была первая лекция на которой я постарался объяснить ребятам методы оценки сложности алгоритмов. Я думаю, что некоторым читателям Хабра эта информация тоже может оказаться полезной, или по крайней мере интересной.
                              Читать дальше →
                            • О настойчивом шевелении правильными местами

                                После 2-го видео о том, чему и как менеджерам стоит учиться, мы с товарищем eagleson получили несколько забавных комментариев по теме «Хорошо, а что делать-то?!» и конечно, традиционых «А ты ваще кто такой?» :)

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



                                Из нашего 3-го видео вы узнаете:
                                1. Как за пару лет стать успешным тренером
                                2. Как тестировщице из Харькова стать QA директором известной компании, а заодно подружиться с главным гугловским тестировщиком
                                3. Что такое лидерство в трудные моменты с точки зрения больших менеджеров
                                4. Как просто иногда бывает стать менеджером проекта
                                5. Какие результаты случаются за год у тех, кто шевелит правильными местами