• Современная Web-платформа: как расслабиться и получать удовольствие? Практическое руководство, часть 1

    • Tutorial

    Всем привет!


    Помните эту статью? Раньше мы могли быстро собрать статичную HTML-страничку в каком-нибудь FrontPage и сайт был готов. С этим мог справится любой студент. В более сложном случае, мы писали пару строк на PHP и получали уже целый портал, собранный из разных элементов шаблона на сервере. Затем мы захотели, чтобы наш сайт как-то выделялся на общем фоне и умел чуть-чуть больше. Трон занял его-величество jQuery. Теперь же, мы оказались погребены под завалами фреймворков и библиотек, инструментов сборки, менеджеров зависимостей, препроцессоров и постпроцессоров, особых форматов, языков и стилей программирования, чтобы иметь возможность стряпать простые лэндинги. Все стало слишком сложно. Спикеры на конференциях стали соревноваться в изощренности того, каким еще образом можно сломать нам мозг. Как мы докатились до жизни такой? Чем «раньше» так сильно отличается от «сейчас»? Что нас ждет «потом»? Есть ли в современной веб-разработке некий дзен-стайл, блюдя который, можно, как в старые добрые времена, собрать себе уютный сайтик «на коленке» за пару вечеров, без ковыряния в документации десятка хипстерских технологий-однодневок? Насколько доступны нам простые решения в серьезной промышленной разработке? Куда движется веб-платформа? Предлагаю разобраться.
    Читать дальше →
  • Повышаем производительность кода: сначала думаем о данных

    • Translation


    Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…

    В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).


    Быстрый обратный квадратный корень в Quake

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

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

    В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
    Читать дальше →
  • Взлом сайта и его последствия



      Времена, когда сайты взламывались ради забавы почти прошли. В современных реалиях сайты атакуют для извлечения прибыли. Атаковать могут абсолютно любой сайт, даже с минимальными показателями и трафиком.
      Читать дальше →
    • Польза 3d-принтеров для медицины и ракетостроения: настольные FDM против промышленного металлического (могут ли 500 зерлингов завалить дарк темплара?)

        Нет. Это не самогонный аппарат.
        image
        Конструкторский макет бортового источника питания для новейшего кислородно-водородного разгонного блока тяжелого класса (РБ КВТК) для тяжелой ракеты Ангара

        NASA отправили человека на Луну и обратно, а сейчас на смартфонах, которые превышают вычислительную мощность компьютеров NASA, люди отправляют друг другу «Yo!», и птиц в свиней.

        С 3d-печатью практически такая же ситуация. Понятное дело, металлические 3d-принтеры уже творят чудеса, на них напечатали и жидкотопливный реактивный двигатель для космического аппарата, и газотурбинный двигатель. Но вот с пластиком что? Печатать свистки или чехольчики для телефонов?

        Что полезного (реально полезного) напечатали ABS/PLA пластиками в России? Кинул клич своим однохакспейсникам, те посоветовали обратиться в компанию, которая производит пластик для 3d-принтеров REC (как-то раз я ходил к ним в гости и описал процесс производства PLA). Помимо костюма железного человека (более 10 км пластика, более 1200 часов печати) есть и практически полезные примеры из медицины и ракетостроения.

        Спустя 2 года после начала писательства на Хабре про 3d-принтеры, я все же смог проникнуть в цех с металлическим принтером. И подержал в руках засекреченный ракетный движок. Коротенький обзор промышленного металлического принтера. Теперь каждый может почувствовать себя Илоном Маском и напечатать свой ракетный двигатель. Или зайчика.
        Читать дальше →
      • Запускаем источник пассивного дохода на Raspberry Pi: Мастернода Dash

          Чем привлекателен запуск Мастерноды Dash в качестве источника пассивного дохода для держателей криптовалюты Dash?

          Во-первых, Мастерноду можно запустить даже на простейшем микрокомпьютере Raspberry Pi, очень маленьком и дешёвом (альтернативное решение — её можно запускать на выделенном сервере или VPS).
          А во-вторых, владелец Мастерноды получает вознаграждение за поддержание работы сети Dash, которое на текущий момент приносит 17% годовых (в DASH).



          Читать дальше →
        • Под прессом. Ломаем и защищаем Wordpress своими руками



            WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное число различных сайтов. Из-за своей распространенности эта CMS уже давно является лакомым куском для злоумышленников. К сожалению, базовые настройки не обеспечивают достаточного уровня защиты, оставляя многие дефолтные дырки незакрытыми. В этой статье мы пройдем типичным путем «типового» взлома сайта на Wordpress, а также покажем как устранить выявленные уязвимости.
            Читать дальше →
          • Так ли быстр ReactJS?

            Предлагаю читателям «Хабрахабра» перевод публикации «Is ReactJS really fast?» из блога компании 500Tech.

            tl;dr; Нет.

            Большинство разработчиков считают само собой разумеющимся, что ReactJS — это супер быстрый движок по сравнению
            с другими более тяжеловесными фреймворками, такими как AngularJS и EmberJS.

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

            image
            феноменально ускорить AngularJS...
          • Иконификация контента

            • Translation
            img

            В этой статье мы поговорим о концепции иконификации – размещения контента на странице и применении CSS для его трансформирования в упрощенное превью в виде значка. Давайте рассмотрим на примере. В этом демо показана иконификация на примере календаря. Чтобы развернуть месяц, нужно нажать на его значок.
            Читать дальше →
            • +14
            • 14.4k
            • 8
          • Вёрстка адаптивных email-писем: подробное руководство (часть 2)

            • Translation


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

            Сегодня речь пойдет о применении media queries для разных устройств, оптимизации изображений для «мобайла» и повышении эффективности форм подписки.
            Читать дальше →
          • 12 игр, которые обучают детей программированию

            • Translation


            Программирование сейчас очень популярно. По всему миру 36 миллионов детей принимают участие в мероприятиях движения «Час программирования». Цель этих мероприятий – помочь детям стать активными, а не пассивными пользователями технологий, а также получить знания, которые в будущем могут помочь устроиться на хорошую работу в нашем все более и более техническом мире.

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

            Такие платформы, как Scratch и Alice позволяют детям (и взрослым) создавать собственные игры и анимации, используя упрощенные методы программирования. Однако не всем детям это интересно. И вот для таких детей существует множество игр, которые обучают базовым принципам программирования в веселой и доступной форме.

            Читать дальше →
          • Поверхностный монтаж: трафарет и печь оплавления в домашних условиях

              Печатная плата с поверхностными компонентами

              Когда начинаешь искать возможности произвести на продажу малую партию собственных электронных устройств, то обнаруживаешь, что эту задачу можно решить, не вставая с кресла. Например, так работает сервис Seeed, организующий не только производство, но и продажу ваших устройств. Если же вы не уверены, будет ли спрос, или просто желаете сэкономить, то оптимальным вариантом, на мой взгляд, будет заказать печатные платы где-нибудь в Китае, а себе оставить монтаж поверхностных (SMD) компонентов в домашних условиях. Я хочу рассказать, как можно существенно ускорить поверхностный монтаж с помощью самодельных трафаретов и импровизированной печи оплавления.
              Читать дальше →
            • Искусственный рассвет

              Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



              — А, что ж так темно-то, Господи? © День радио.

              Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
              Что же делать?
            • CAD для разработки снежинок: SnowFlaker


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

                Предисловие


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

                В статье не будет никакого процесса разработки и программирования. В ней я поделюсь с вами получившейся программой, и расскажу как ей пользоваться. Под катом много картинок.
                Забрать сборку под win можно тут: sourceforge.net/projects/snowflaker
                Там же исходный код в GIT. Сборки под linux пока нет, но программа написана на fpc, и должна собираться и работать под linux-ом. Добавлена сборка под Linux.
                Читать дальше →
              • Оптимизируем рабочий процесс

                Доброго времени суток. Решил поделиться опытом в организации рабочего процесса разработки веб-проектов и не только веб. Расскажу свое видение максимально удобного использования связки типа: bugtraker + git + ci + deploy.



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

                • Translation


                Cтэнфордский курс CS183B: How to start a startup. Стартовал в 2012 году под руководством Питера Тиля. Осенью 2014 года прошла новая серия лекций ведущих предпринимателей и экспертов Y Combinator:


                Первая часть курса
                Читать дальше →
                • +22
                • 45k
                • 4
              • 26 советов начинающим стартаперам от опытного предпринимателя

                • Tutorial
                *Эта статья впервые была опубликована в журнале Forbes от 27 Июня 2014 года. На Хабре публикуется её полная версия.

                Вот уже 9 лет я занимаюсь интернет-бизнесом и за это время успел создать и вывести на прибыльность 5 собственных стартапов. Кроме того, один из основных моих бизнесов – это заказная веб-разработка, куда часто приходят клиенты, которые хотят разработать свой интернет-стартап и поэтому я все 9 лет каждый день сталкиваюсь с разными проектами, многие из которых являются стартапами в полном смысле этого слова.
                Читать дальше →
              • Осваиваем CC430 — микроконтроллеры с радиомодулем: фотофиниш своими руками

                  Серия микроконтроллеров Texas Instruments CC430 — это MSP430 со встроенным радио модулем. В отечественных интернет-магазинах можно купить модули TE-CC430F51-433, содержащие на крошечной плате такой микроконтроллер с кварцем и кучкой других полезных деталей, по вполне демократичной цене. В этой статье я расскажу о построении на базе таких модулей фотофиниша — устройства весьма полезного для любителей спортивных состязаний. На нем естественно потенциальная сфера применения не ограничивается. Наличие 12 битного АЦП, аппаратного умножителя и другой периферии открывает широкий простор для применений, требующих передачи данных на расстояние до нескольких сотен метров.
                  Читать дальше →
                  • +36
                  • 22.6k
                  • 7
                • Семь принципов создания современных веб-приложений

                  • Translation
                  • Tutorial
                  Эта статья основана на моей презентации с конференции BrazilJS в августе 2014 года. Она базируется на идеях, о которых я писал в блоге недавно, в основном, в связи с UX и производительностью.

                  Я хочу представить 7 действенных принципов для веб-сайтов, которые хотят применить JavaScript для управления UI. Эти принципы являются результатом моей работы как веб-дизайнера, но также как давнего пользователя WWW.

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

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

                  • Должен ли JavaScript использоваться как замена функциям браузера: история, навигация, рендеринг?
                  • Умирает ли бэкенд? Нужно ли вообще рендерить HTML?
                  • Правда ли, что будущее за приложениями на одной странице (Single Page Applications, SPA)?
                  • Должен ли JS генерировать страницы на веб-сайте и рендерить страницы в веб-приложениях?
                  • Нужно ли использовать техники вроде PJAX или TurboLinks?
                  • Каково точное отличие между веб-сайтом и веб-приложением? Должно ли остаться что-то одно?
                  Читать дальше →
                • How-to: пошаговое руководство по разработке торговой системы для работы на фондовом рынке

                  • Translation
                  image

                  Примечание: Данный пост написан британским разработчиком и финансовым аналитиком Майклом Халлс-Муром, который является профессионалом в так называемом Quantitative trading. С нашей точки зрения информация, содержащаяся в этом топике, может быть интересна техническим специалистам и разработчикам, которые интересуются фондовым рынком и обладают навыками для создания, к примеру, успешных торговых роботов, но не знают с чего начать. Поэтому топик будет рассматриваться именно в таком контексте, кроме того, текст адаптирован к российским реалиям, соответственным образом переведены и некоторые термины. Будем рады вашим комментариям! (Поправки по переводу лучше отправлять в личных сообщениях).

                  Алгоритмическая торговля — является крайне сложной областью финансов, и чтобы освоить объем информации, который позволит создать свою собственную торговую систему или устроиться разработчиком в финансовую компанию или фонд, потребуется довольного много времени. Большой опыт в программировании просто необходим для успешной работы на этом рынке, как минимум алготорговец должен хорошо разбираться в таких языках, как C/C++ (в области финансов перспективен и язык Java) и Python, Matlab и R (на российском рынке набирает популярность разработанный в США TradeScript — прим. перев.).
                  Читать дальше →
                • Изначально ущербная система подготовки к переговорам



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

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

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