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

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

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



        * Луц — (чатл.) топливо для пепелаца.

        Не успели мы как следует распробовать решения Ubiquiti ac, не поставили еще везде, где не хватало емкости обычных каналов связи, airFiber 5/5u, а наш любимый производитель уже радует нас очередной новинкой — причем новинка обещает быть быстрее Rocket AC, дешевле airFiber 5, и работать при этом на большие, чем оба эти решения, расстояния.
        Посмотрим, что же нам предлагают.

        Обзор, картинки и скриншоты:
      • Процедурная генерация текстур планет на основе алгоритма Diamond-Square, часть 1

        • Tutorial
        image

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

        1) Этот генератор не претендует на реалистичность, и писал я его для того, чтобы сгенерировать уникальные текстуры для сотни маленьких шариков, которые занимают 10% экрана и к тому же прикрыты облаками.
        2) Чисто технический момент: я пишу на C# под Unity3d, так что думать о том, как выводить в изображение с приемлимой скоростью вам придется самим, для каждого языка и платформы свои способы.

        Читать дальше →
      • NetApp 7-Mode: Недокументированные возможности или делаем DR из SnapVault

          В продолжение статьи о парадигме резервного копирования NetApp, хочу рассказать о недокументированной возможности преобразования «архивных копий» в «резервные» для серии FAS. Отличительной чертой СХД компании NetApp серии FAS является то, что они все унифицированы. Унифицированность не только в том, что одно устройство предоставляет доступ хостам как по блочным, так и по файловым протоколам, но и по способу применения. Системы FAS используются для виртуализации, для Data Compliance, для хранения архивных копий, для построения Disaster Recovery решений и т.д. Одна и та же СХД может выполнять сразу множество функций. Так для каждой функции не нужно держать одно «специализированное» устройство, а в случае если срочно понадобится «запасная» СХД, её всегда можно «перепрофилировать» из того что есть, к примеру из СХД для архивации данных. Благодаря этой универсальности нет необходимости переобучаться под каждую из этих задач ведь операционная система, командная строка и все принципы настройки одни и те же для всех FAS систем.

          В этой статье я расскажу как построенное решение «Архивация данных на NetApp» переделать в решение «Disaster Recovery».

          С точки зрения бизнеса Disaster Recovery и архивирование отличаются тем, что:
          • Архивирование (SnapVault) — решение предназначено для длительного хранения и защиты данных от изменений, для последующего восстановления их туда, откуда они были скопированы (или в другое место).
          • Disaster Recovery (SnapMirror) — хранение данных на резервном сайте, для переключения на него (и соответственно изменения данных), в случае катастрофы.


          Поясню на примере: когда у вас есть хотя бы две СХД с настроенной репликацией SnapMirror, в такой схеме одна из них играет роль источника (primary), а вторая роль приемника (Secondary). В случае аварии, при разрыве репликации (командой break, а не просто разрыв линка), принимающая (Secondary) система переведёт реплицируемое зеркало из режима read-only в режим read-write. Т.е. это инструмент для создания решения «Переключение на запасную площадку в случае аварии» (Disaster Recovery). Логично, чтобы обе системы были плюс-минус одинаковой производительности, чтобы обеспечить все переключённые узлы с одного сайта на другой, должным уровнем производительности.



          В то время, как SnapVault предназначен для архивирования на резервную (Secondary) систему, чтобы потом из неё восстановить все данные обратно на первичную систему или вообще на третью систему. Стоит отметить, что для задач архивирования очень важно хранить данные в неизменённом состоянии все время. В данном случае вторичная система, куда складываются все архивы, может быть любой модели. Здесь логично иметь самую дешевую модель NetApp FAS с медленными и дешевыми дисками большего объема. К примеру, FAS2554 или FAS2520.
          Как перевести SnapVault в SnapMirror
        • Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4б из 6

          • Tutorial

          Содержание курса




          Улучшение кода






          Official translation (with a bit of polishing) is available here.




          Сегодня мы заканчиваем с ликбезом по геометрии, в следующий раз будет веселье с шейдерами!
          Чтобы не было совсем скучно, вот вам тонировка Гуро:



          Я убрал текстуры, чтобы было виднее. Тонировка Гуро очень проста: добрый дяденька-моделёр дал нам нормальные вектора к каждой вершине объекта, они хранятся в строчках vn x y z файла .obj. Мы считаем интенсивность освещения для каждой вершины треугольника и просто интерполируем интенсивность внутри. Ровно как мы делали для глубины z или для текстурных координат uv!

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

          Текущий код, который сгенерировал эту картинку, находится здесь.
          Читать дальше →
        • Снимаем образы с картриджей для Dendy/Famicom/NES

            Ни для кого не секрет, что сейчас можно легко скачать эмулятор почти любой игровой консоли 80х-90х и поиграть в классические игры на компьютере, телефоне и многих других платформах. В сети легко можно найти и ROM'ы этих самых игр. Зачастую люди качают их и даже не задумываются, каким же образом кто-то однажды прочитал их из картриджа. В этой статье я и постараюсь рассказать, как же это делалось в случае с NES/Famicom, которая у нас была больше известна как «Денди», и покажу, как можно сделать это самостоятельно.

            image

            Читать дальше →
          • Первый в мире bluetooth-граммофон

              Gramovox — bluetooth-граммофон, работающий на одной зарядке 15 часов. Устройство оснащено металлическим горном, портом 3,5 мм и заряжается по microUSB.

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

              image
              Читать дальше →
            • Статистика Backblaze: какой HDD самый лучший

              • Translation


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

              В дата-центре Backblaze на 31 декабря 2014 года работало 41213 дисков, которые используются для наших тарифных планов без ограничения на размер дискового пространства. Это больше, чем 27134 диска на конец 2013 года. В прошлом году большинство новых дисков имели объём 4 терабайта, а некоторые 6 терабайт.
              Читать дальше →
            • Влияние кабелей на параметры систем «усилитель-АС» и «микрофон-микшер»

              В существенном влиянии кабелей на звук уверено подавляющее большинство аудиофилов. На эту тему написано немало статей как сторонников, так и противников данной теории, впрочем, мне не встретилась ни одна статья, содержащая реальные технические расчёты, которые доказывали бы ту или иную точку зрения. В текстах обычно приводятся собственные домыслы, которые порой далеки от реальности. Я использовал технические знания и расчёты, чтобы разобраться в данной теме.
              Читать дальше →
            • Как я создавал приложение для Samsung SmartTV

              Привет, Geektimes! Хочу поделиться с Вами своим опытом в разработке приложений для Samsung SmartTV.

              image
              Весь процесс, а именно период времени от начала разработки приложения до его публикации, можно разделить на две стадии: разработка и публикация. Но будем называть вещи своими именами, поэтому будем использовать их «синонимы»: светлая и темная сторона, соответственно. Почему?
              Читайте дальше!
              • +10
              • 15.8k
              • 6
            • Персональная копия торрент-сайта с поиском на своём компьютере



                На фоне непрекращающихся атак на торрент-сайты и находящегося в дауне сайта The Pirate Bay (в прошлом «самый упругий сайт интернета»), появилось интересное, хоть и не идеальное, решение. Программист-самоучка, а в данный момент – студент Стивен Смит, сделал простой персональный сервер BitCannon, работающий с дампами баз торрент-трекеров. Каждый, обладающий минимальными познаниями по скачиванию файлов и установке программ, может скачать и установить себе персональную копию торрент-трекера, с поиском и сортировкой торрентов. Об этом нам рассказал сайт TorrentFreak.
                Читать дальше →
                • +15
                • 10.1k
                • 9
              • MicroView: крохотный Arduino-совместимый микроконтроллер с OLED-дисплеем в корпусе

                imageПроект стартовавший на KickStarter в апреле 2014, собрал более 600 тыс. долларов (вместо запрашиваемых 25 тыс.), и в сентябре 2014 наконец вышел в большой мир при участии знакомой многим компании SparkFun.

                Что же это за зверь такой?

                А это OLED-дисплей + корпус + сердце на AVR и Arduino внутри. И всё это в компакт-факторе и стильной форме.

                Самое оно для заманухи новичков в мир микроконтроллеров.
                Читаем дальше?
              • Унылое капитанство или как Tor Project борется с browser fingerprinting

                В статье известного в определённых кругах Hovav Shacam и Keaton Mowery от 2012 года был описан новый на тот момент метод генерации идентификатора браузера и системы прямо из JavaScript — Canvas Fingerprinting. Метод позволял различать, в том числе, оборудование…


                И что дальше?
              • Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

                Содержание курса



                Улучшение кода






                Official translation (with a bit of polishing) is available here.




                Постановка задачи


                Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

                Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



                Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
                Читать дальше →
              • Уязвимость MS14-063 в драйвере FastFat в ОС Windows. Разбор полетов

                В данном исследовании проведем анализ уязвимости MS14-063, связанной с некорректной работой драйвера fastfat.sys и приводящей (по крайней мере, по словам Microsoft) к несанкционированному повышению привилегий. Данной уязвимости до недавнего времени были подвержены Win Server 2003/2008 и Win Vista (в Win7 данная дыра была исправлена давным давно, кстати говоря, но это уже совсем другая история — об этом подробнее рассказывается в статье на ресурсе xakep.ru). Тут же мы поговорим о том, какие возможности могла на самом деле предоставить данная уязвимость злоумышленнику, решившему реализовать атаку с помощью флешки с «битой» ФС FAT.
                Читать дальше →
              • Перманентный бан злоумышленников при помощи Fail2Ban + MikroTik

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

                Итак, у нас имеется:
                • Ubuntu Server 14.04 (думаю не принципиально, должно работать на других дистрибутивах)
                • Fail2Ban
                • MySQL
                • Asterisk (или любой другой сервис, который нужно защитить от брут форс атак)
                • Роутер MikroTik
                • Руки
                • Желание изобрести велосипед


                После прочтения пары статей (один, два) родился следующий концепт:
                1. баним злоумышленника на определённое время при помощи Fail2Ban и добавляем запись с его IP адресом в БД MySQL
                2. после определённого количества выданных банов добавляем IP адрес в список запрещённых на роутере

                Читать дальше →
              • Будни багхантинга: еще одна уязвимость в Facebook



                  Декабрь для меня получился наиболее удачным за четыре года участия в разнообразных программах bug bounty, и я хотел бы поделиться информацией об одной из обнаруженных уязвимостей. Речь пойдет о небезопасной обработке Request-URI (Request Target). На этот раз красивой комбинацией уязвимостей порадовал Facebook.
                  Читать дальше →
                  • +98
                  • 50.4k
                  • 8
                • Arduino, модуль Nokia 5110 LCD и любая картинка



                  Наверное, у меня, как и у всех Arduino-строителей, появилась какая-то бредовая идея в голове. Заказал в Китае все необходимые детали. Ждать пришлось очень долго, но тут раньше срока был доставлен клон платы Arduino Uno и LCD-дисплей Nokia 5110. Так как до этого с электроникой и программированием я был не знаком, решил не терять время зря и начал учиться выводить информацию на данный модуль.
                  Читать дальше →
                • Эмуляция носителя FAT32 на stm32f4



                  Недавно возникла данная задача — эмуляция носителя FAT32 на stm32f4.

                  Её необычность заключается в том, что среди обвязки микроконтроллера вовсе может не быть накопителя.

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

                  Результатом работы явился модуль, который я озаглавил «emfat», состоящий из одноимённого .h и .c файла.

                  Модуль независим от платформы. В прилагаемом примере он работает на плате stm32f4discovery.

                  Функция модуля — отдавать куски файловой системы, которые запросит usb-host, подставляя пользовательские данные, если тот пытается считать некоторый файл.
                  Читать дальше →