• [PF] Печать PDF под .NET, векторный подход, теория

    • Tutorial


    Продолжаю тему печати PDF документов из под .NET.

    В принципе, распечатать документ не трудно, есть даже готовые решения. Сложности возникают, когда нужно управлять некоторыми параметрами печати. В своей практике я столкнулся с задачей по реализации минитипографии — когда при печати документов нужно указывать, из какого лотка брать очередной лист, т.е. печатать документы по шаблонам. Первым делом я попытался найти готовые решения, но не обнаружив ничего подходящего, стал придумывать свое.
    Хочу читать дальше!
    • +15
    • 7,4k
    • 3
  • Yet another инструкция по получению ssl-сертификата Let's Encrypt

      Тема получения сертификата Let's Encrypt уже подымалась на хабре (см. тут), да и в сети можно найти много рецептов разного качества.

      Читал я и ужасался: одни пишут, что то нужно nginx или apache остановить («на пару минуточек всего»), другие предлагают файлы подкладывать в папку веб-сервера (в соседней ssh-сессии), третьи — о том, как важно соблюсти правильный Content-type для файлов проверки домена…

      Давайте попробуем обойтись без всего этого: чтобы не было мучительно больно ни на стадии установки, ни очередном продлении — даже если придётся обновлять сразу много доменов. Собственно, вот и вся цель моей небольшой заметки: это не пошаговый степ-бай-степ, не длинная теоретическая статья о том, как функционирует Let's Encrypt — просто описывается правильный на мой взгляд подход, который будет правилен для конфигурации любой сложности.

      Вся суть в двух словах: пусть Let's Encrypt запустит веб-сервер на 9999 порту, а мы допишем конфиг nginx, чтобы он пробросил запрос на этот бекенд. Кому интересны детали — прошу под кат
      Читать дальше →
    • Отправляем сообщения в Telegram из C#

      • Tutorial
      TLSharp rocks!

      С# — развитый язык с большим количеством библиотек, но среди них нет ни одной работающей реализации Telegram API. Эту ситуацию я хочу исправить с помощью своей небольшой библиотеки TLSharp. В статье будет много кода и один котик.
      Читать дальше →
    • 20 самых популярных выступлений всех времен на конференции TED

        Привет, Хабр. Я знаю, что здесь уважают и любят выступления TED. Поэтому я не мог пройти мимо новости о том, что сайт ted.com после редизайна обновил плейлист «20 самых популярных выступлений на TED всех времен». Это яркий пример того, как путем послабления копирайта (все лекции TED находятся в открытом доступе, распространяются по лицензии CC, согласно которой разрешено все, кроме коммерческого использования) и организации краудсорсинга (все переводы выполняют волонтеры) можно добиться впечатляющих результатов…



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

        Рейтинг составлен по количеству просмотров (в статистике учитывались данные с TED.com, Youtube, iTunes, Hulu, встроенных фреймов, количества скачиваний и т.д.)

        Большинство лекций переведены на русский язык, с субтитрами или в озвучке. Не буду много писать, это нужно смотреть. Остальное под катом.
        Читать дальше →
      • Посадка Falcon-9: взгляд специалиста



          Сегодняшний гость блога — инженер-ракетостроитель Павел Пушкин. По моей просьбе он прокомментировал недавнюю посадку первой ступени ракеты Falcon-9, и дал экспертную оценку состоянию вернувшейся ракеты, по опубликованным снимкам.

          Павел Пушкин в прошлом заместитель руководителя проектно-исследовательского центра ФГУП «ГКНПЦ им. М.В.Хруничева». Сейчас генеральный директор ООО "КосмоКурс" — частного российского стартапа, который поставил цель создание туристической ракеты и капсулы для конкуренции за рынок космического туризма с Virgin Galactic и Blue Origin. Павел Пушкин более 10 лет занимается разработкой ракет, принимал участие в создании ракеты «Ангара», а сейчас возглавляет работы по созданию собственной суборбитальной ракеты и космического корабля.
          Читать дальше →
        • Программирование микрокомпьютера LEGO NXT Mindstorms 2.0. Введение

          • Tutorial
          Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному.



          Читать дальше →
        • Ещё одна система автополива растений с использованием ESP8266 и Blynk

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

          Вспомнив про завалявшуюся в комоде парочку Arduino, а также давнее желание осуществить нечто большее, чем просто моргание светодиодами, я сразу решил взяться за эту задачу и сделать в этот раз, по возможности, всё до конца.


          Читать дальше →
        • Kaggle и Titanic — еще одно решение задачи с помощью Python

          • Tutorial
          Хочу поделиться опытом работы с задачей известного конкурса по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга).



          Читать дальше →
          • +29
          • 61,3k
          • 6
        • Партиционирование в PostgreSQL – Что? Зачем? Как?

          • Перевод
          Функцией партиционирования таблиц в PostgreSQL, к сожалению, активно пользуются пока не многие. На мой взгляд, очень достойно о ней рассказывает в своей работе Hubert Lubaczewski (depesz.com). Предлагаю вам еще один перевод его статьи!

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

          Так что я постараюсь объяснить в меру своих знаний и возможностей, что это такое, зачем его стоит использовать и как это сделать.
          Читать дальше →
        • История победы на ежегодном соревновании Russian AI Cup 2015

          Хочу рассказать о своем участии и победе в ежегодном соревновании по программированию ИИ «Russian AI Cup 2015» от Mail.Ru Group. Посмотреть подробные правила соревнования и записи игры желающие могут на сайте соревнования russianaicup.ru.

          image

          В этом году соревнование было организовано на совершенно новом уровне. Изменения произошли как в масштабности игрового мира, в котором действует ИИ, так и на сайте соревнования. Благодаря трехмерной визуализации, игры смотрелись гораздо увлекательнее. По зрелищности, на мой взгляд, соревнование значительно превзошло прошлогодний хоккей, и «солдатиков» 2013 года.

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

          Краткое описание правил


          Цель — проехать 2 круга по замкнутой трассе быстрее всех. Точнее надо набрать больше всех очков, но приехать первым — это основной способ заработать очки. Еще очки дают за сбор бонусов по дороге и нанесение урона противникам. Трасса, как конструктор, собирается из квадратных «тайлов», это прямолинейные участки трассы, углы (поворот трассы на 90 градусов), или перекрестки (Т образные и обычные). Нужно ехать по ключевым точкам («тайлам») трассы в определенном порядке – иногда приходится делать петли, иногда вообще ехать назад. Еще у машинок есть возможность разливать за собой лужи мазута, стрелять друг в друга специальными снарядами (шины и шайбы), и использовать особый ускоритель «нитро». Заряды для всех этих приспособлений ограничены, и пополняются подбиранием случайно разбросанных по карте бонусов.

          Расскажу, как устроен мой ИИ, и благодаря чему (как я думаю) удалось победить.
          Читать дальше →
        • FISCHERTECHNIK: итоги 2015 года

            image

            Год назад я познакомился с замечательным проектом ПакПак и людьми, которые несут программирование и робототехнику в детские массы. Я тогда написал статью «FISCHERTECHNIK: хемотроника, ионисторы, электрохимические суперконденсаторы внутри детского конструктора для программистов» (вот тут раздолье для выбора подарка на новый год). Меня поразила хардкорность их конструкторов в сочетании с очень человеческим подходом на их авторских обучающих курсах («Робокурс: обучаем детей программированию и робототехнике»).

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

            Что нового появилось в 2015 году
            Читать дальше →
          • Как превратить концепт-проект на Arduino в финальный прототип

            • Перевод
            image

            Предыстория


            Некоторое время назад я описал процесс изготовления "коробки от прокрастинации" – запирающейся коробочки, в которую нужно прятать смартфон, чтобы не отвлекаться на него. По поводу статьи мне пришло следующее письмо:
            Привет! Мне очень понравилась твоя коробка от прокрастинации. Я веб-разработчик, и ищу кого-нибудь, кто сможет сделать мне прототип продукта, очень похожего на описанный тобою.


            Я, конечно, обрадовался. Но потом подумал: я ведь не инженер. Одно дело – играться с доской для прототипирования, а другое – изготовить коммерческий продукт. К счастью, я был не первым новичком, стремящимся стать профессионалом, поэтому где-то через месяц я изготовил рабочий прототип (Cloister), и написал текст на 4 странички с пояснениями по информации, нарытой в сети.

            Здесь я хочу собрать эту информацию воедино и структурировать её. Это не будет всеобъемлющая инструкция по прототипированию – я всё-таки новичок.

            Наш прототип: the MoodCube


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

            Уникальный продукт, который мы будем делать, и который принесёт нам богатство и славу – это MoodCube. Пластиковый кубик с RGB-светодиодами на 5 из 6 сторон. Управляться он будет с пульта.
            Читать дальше →
            • +16
            • 16,7k
            • 8
          • Курс по машинному обучению на Coursera от Яндекса и ВШЭ

              Когда-то мы публиковали на Хабре курс по машинному обучению от Константина Воронцова из Школы анализа данных. Нам тогда предлагали сделать из этого полноценный курс с домашними заданиями и разместить его на Курсере.

              И сегодня мы хотим сказать, что наконец можем выполнить все эти пожелания. В январе на Курсере пройдёт курс, организованный совместно Яндексом (Школой анализа данных) и ВШЭ. Записаться на него можно уже сейчас: www.coursera.org/learn/introduction-machine-learning.


              Сооснователь Coursera Дафна Коллер в офисе Яндекса

              Курс продлится семь недель. Это означает, что по сравнению с ШАДовским двухсеместровым курсом он будет заметно упрощен. Однако в эти семь недель мы попытались вместить только то, что точно пригодится на практике, и какие-то базовые вещи, которые нельзя не знать. В итоге получился идеальный русскоязычный курс для первого знакомства с машинным обучением.

              Кроме того, мы верим, что после прохождения курса у человека должна остаться не только теория в голове, но и скилл «в пальцах». Поэтому все практические задания построены вокруг использования библиотеки scikit-learn (Python). Получается, что после прохождения нашего курса человек сможет сам решать задачи анализа данных, и ему будет проще развиваться дальше.

              Под катом можно прочитать подробнее обо всех авторах курса и узнать его примерное содержание.
              Читать дальше →
            • Ричард Фейнман: Характер физического закона. Лекция #1. Пример физического закона — закон тяготения [Озвучка Vert Dider]



                Первая лекция из цикла Мессенджеровских чтений, проведенных Ричардом Фейнманом в 1964 году в Корнелльском университете. В этой лекции профессор Фейнман знакомит зрителей с законом тяготения в качестве примера физического закона, рассказывает об истории его открытия, а также о характерных чертах, отличающих его от других законов.
                Читать дальше →
                • +23
                • 18,1k
                • 9
              • Отправляем SMS из .Net приложения на C#


                  Все что нам понадобится для отправки SMS это 3G USB модем, SIM карта, Visual Studio и немного времени. Моей целью не является описать все возможные настройки COM порта или формата PDU. Я хотел бы предоставить вам готовое решение, которое можно использовать в качестве сниппета в своих проектах.
                  В качестве примера рассмотрим 2 консольных приложения. Почему консольных? Да потому, что в них нет ничего лишнего и проще разобрать код. Почему два? Потому, что есть два распространенных варианта отправки сообщений. Самый простой вариант – это отправка сообщений в текстовом режиме. Минусом этого варианта является то, что он не поддерживает отправку кириллицы. Плюсом то, что возможна отправка 160-ти символов. Второй вариант, более сложный, позволяет отправлять текст длиной до 70-ти символов в формате Unicode.
                  Читать дальше →
                • Portable Areas как вариант модульности в MVC

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

                    В MVC, если «обособленный функционал» — это набор контроллеров и вьюшек, реализующих, допустим, гостевую книгу, их можно обособить в виде «области» — area. Однако просто так вынести эту область в отдельный модуль нельзя — MVC просто не найдет ваши контроллеры/вьюшки в соседних библиотеках.

                    Однако решение, конечно, есть, и его нам предлагает небезызвестная библиотека MvcContrib — open-source проект, неаффилированный Майкрософтом.
                    Читать дальше →
                  • How-to: Правила вёрстки email-писем

                    • Перевод


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

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

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

                    Примечание переводчика: Представленный ниже материал содержит значительное количество технических терминов, при переводе которых могут возникнуть неточности. Если вы заметили опечатку, ошибку или неточность перевода — напишите нам, и мы оперативно всё исправим.
                    Читать дальше →
                  • Как попасть в топ на Kaggle, или Матрикснет в домашних условиях

                    Хочу поделиться опытом участия в конкурсе Kaggle и алгоритмами машинного обучения, с помощью которых добрался до 18-го места из 1604 в конкурсе Avazu по прогнозированию CTR (click-through rate) мобильной рекламы. В процессе работы попытался воссоздать оригинальный алгоритм Мактрикснета, тестировал несколько вариантов логистической регрессии и работал с характеристиками. Обо всём этом ниже, плюс прикладываю полный код, чтобы можно было посмотреть, как всё работает.

                    Рассказ делю на следующие разделы:
                    1. Условия конкурса;
                    2. Создание новых характеристик;
                    3. Логистическая регрессия – прелести адаптивного градиента;
                    4. Матрикснет – воссоздание полного алгоритма;
                    5. Ускорение машинного обучения в Python.
                    Читать дальше →
                  • Нескучные выходные или «тачка на прокачку»

                      Некоторое время назад я сказал: "«Тюнить» авто лично мне как-то не интересно...", но «никогда не говори „никогда“». Звезды встали в таком порядке, что пришлось экстренно сменить машину Peugeot 307sw на Mazda5.

                      Машина ездит, все хорошо, но некоторые «плюшки», которые были в прежней машине штатно, почему-то отсутствовали в текущей.

                      Одна из таких полезных вещей — парктроник. Установка парктроника не является проблемой, но вот как-то «неродной» дисплей парктроника меня в салоне не устраивал. Внутренний перфекционист был жутко против «чужеродного тела».
                      Заводи, поехали!
                    • Не учите фреймворки, учите архитектуру

                        Некоторое время назад у меня состоялся интересный разговор, коллега активно защищал Angular, говорил, что тот ускоряет веб-разработку. Я более десяти лет разрабатываю сложные web-сервисы, работал в Microsoft, в Spotware Systems на Кипре, сейчас создаю приложение для стартапа из Кремниевой долины, и в общем то слежу за трендами. Однако почувствовал себя динозавром, потому что не видел смысла использовать фронтэнд-фреймворки до того момента, а оказалось, что это уже мейнстрим. Шёл 2014-й год, я погрузился в мир Angular, Knockout и Backbone, что из этого вышло, почему я от них в итоге отказался и рекомендую коллегам сделать то же самое – под катом.
                        Читать дальше →