• Правда ли, что GOPATH и GOROOT больше не нужны?

      Так повелось, что разработчики, еще только начинающие знакомиться с Go, часто сталкиваются с проблемой выбора рабочей директории для Go-проектов. Вот и в чате конференции GolangConf тоже задавался этот вопрос. Новые гоферы часто пугают друг друга словами GOPATH и GOROOT. Однако, в руководствах по быстрому старту с текущей версией Go (1.13) упоминания эти двух «страшных» слов вообще нет.

      Читать дальше →
    • Точечный обход блокировок PKH на роутере с OpenWrt с помощью WireGuard и DNSCrypt

      Чем отличается от подобных материалов?


      • Реализация на чистом OpenWrt
      • Использование WireGuard
      • Конфигурация роутера организуется с помощью конфигов OpenWrt, а не кучей в одном скрипте
      • Предусмотрены ситуации при рестарте сети и перезагрузке
      • Потребляет мало ресурсов роутера: заблокированные подсети содержатся в iptables, а не в таблицах маршрутизации. Что позволяет развернуть это дело даже на слабых устройствах
      • Автоматизация конфигурации с помощью Ansible (не требуется python на роутере)
      Читать дальше →
    • Программатор для нового семейства tinyAVR на базе дешевого китайского конвертера CH340

      Unified Program and Debug Interface (UPDI) — это однопроводной интерфейс для программирования/отладки новых 8-битных микроконтроллеров Atmel, пришедший на смену двухпроводному интерфейсу PDI, использовавшемуся для программирования микроконтроллеров AVR XMEGA.

      image
      Читать дальше →
    • Текстуры для 64k intro: как это делается сегодня

      • Translation
      Эта статья является второй частью нашей серии о создании H – Immersion. Первую часть можно прочитать здесь: Погружение в Immersion.

      При создании анимации всего лишь в 64 КБ сложно использовать готовые изображения. Мы не можем хранить их традиционным способом, потому что это недостаточно эффективно, даже если применять сжатие, например JPEG. Альтернативное решение заключается в процедурной генерации, то есть в написании кода, описывающего создание изображений во время выполнения программы. Нашей реализацией такого решения стал генератор текстур — фундаментальная часть нашего тулчейна. В этом посте мы расскажем, как разрабатывали и использовали его в H – Immersion.


      Прожекторы субмарины освещают детали морского дна.
      Читать дальше →
      • +37
      • 8.4k
      • 3
    • Основы 3D-моделирования для 3D-печати

        3D-модель, которая в дальнейшем  будет распечатана на 3D-принтере отличается от 3D-модели, разработанной для литья или фрезерования. Связано это с техническими особенностями 3D-принтера, из которых нужно либо выжать максимум пользы, либо подстроиться под недостатки печати.

        Из оговорок, отмечу, что данные рекомендации относятся в основном к методу 3D-печати FDM(FFF), при котором пластиковый пруток топится подвижным экструдером, формирующим деталь слой за слоем.

        Разработка 3D-модели начинается с создания эскиза. Это может быть рисунок на бумаге, материальный прототип, мысленный образ и пр. На что важно обратить внимание при создании такого эскиза и самой модели разберем подробно.
        Читать дальше →
      • Downclocking оперативной памяти на MacBook

        Хочу поделиться своим опытом апгрейда своего MacBook6,1 A1342 (увеличение памяти до 8Гб, установка SSD) и решении ряда проблем связанных с установкой системы на новый диск и борьба с глюками несовместимости RAM.

        Сначала может показаться, что апгрейд старого железа тривиальная задача: в интернете должно быть полно статей на эту тему, а на рынке куча дешевых запчастей для него. Но не все так просто на практике. Проблемы начались еще в магазине на этапе подбора комплектующих
        Читать дальше →
      • Альманах пакетных менеджеров Linux

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


          Управление пакетами

          Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.

          Читать дальше →
        • Перестаньте травить печатные платы дома — заказывайте их на производстве

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

            Я ни в коем разе не принуждаю сразу выливать ваше хлорное железо / перекись водорода, оставьте их для макетирования. Я лишь хочу показать, что заказать платы на производстве в наше время совсем не сложно, как может показаться начинающему радиолюбителю. Есть в этом что-то магическое — подержать в руках красивую плату собственного изготовления.
            Читать дальше →
          • Как я боролся с комарами. Личный опыт и тесты на себе

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


              Читать дальше →
            • Переход с bash на zsh

              • Tutorial

              Чтобы перейти с bash на zsh необходимо знать базовые отличия между ними — без этого будет сложно провести первоначальную настройку zsh в ~/.zshrc.


              Я не нашёл краткого описания этих отличий когда переходил сам, и мне пришлось потратить немало времени на вычитывание документации zsh. Надеюсь, эта статья упростит вам переход на zsh.


              Зачем переходить


              Для начала — а стоит ли вообще тратить своё время и внимание на переход? Учить ещё один диалект sh, менее распространённый чем POSIX sh или bash, заново заниматься настройкой рабочего окружения…


              На мой взгляд, если вы проводите много времени в консоли, вам нравятся Vim или Emacs и вы уже потратили немало времени на их настройку "под себя" — однозначно стоит! Zsh по духу очень на них похожа: это очень сложная и гибкая программа, чьи возможности полностью мало кто знает, но потратив некоторое время на настройку можно получить очень удобную лично вам рабочую среду.

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

                Привет, %username%!

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

                В этом посте я постараюсь дать информацию о некоторых интересных препаратах. Часть из них доступна, часть доступна только по рецепту, а часть — практически запрещена. Но, думаю, некоторые сведения из психофармакологии, представленные в этом посте, найдут своего читателя.

                Spoiler: NZT ещё не изобрели, но синтезировали некоторое количество потенциально интересных штук.
                Читать дальше →
              • (Надеюсь) всё, что нужно знать о фотограмметрии

                • Translation
                image

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

                Эта статья предназначена для следующих категорий пользователей:

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

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

                Выражаю особую благодарность Югославу Пендичу (Jugoslav Pendić) за редактирование и дополнение этой статьи. Ещё я благодарю команду, занимающуюся 3D-сканированием, за ликвидацию пробелов в моих знаниях.
                Читать дальше →
              • Мыслим в стиле React

                image


                Перевод туториала официальной документации библиотеки React.js.


                Мыслим в стиле React


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


                Одно из многих замечательных свойств React — это принцип "Как вы проектируете приложение, также вы и создаете его". В этом туториале вы пройдете весь мыслительный процесс проектирования и создания приложения React, отображающего таблицу данных для поиска товара.


                Читать дальше →
              • Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть вторая, инструмент и приспособления

                • Tutorial
                На днях устыдили меня, мол ругаюсь на дилетантов, а сам ничего хорошего не пишу, а обещал ажно «цикл статей». Пришлось достать старый черновик и доработать. Для забывших — первая часть про выбор станка тут.

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

                Хотя многие поставщики вкладывают в комплект «стартер кит», для комфортного домашнего использования он будет явно недостаточен. Так что сразу начинаем искать/покупать/делать следующее:

                — Режущий инструмент — фрезы/граверы и боры
                — Дополнительные цанги к шпинделю
                — Крепеж для стола
                — Систему изоляции и/или удаления стружки

                И да, сразу оговорюсь: данная статья касается домашних фрезеров со шпинделями типа Kress или китайчонками с цангой Er11, поэтому во-первых предположим, что хвостовик фрезы у нас цилиндрический до 6 мм (у Кресса есть 8, но нормальной его работу с 8кой не назовешь — слабенький он таки), во-вторых, механический инструмент смысла не имеет — мощи не хватит, а в третьих, сверла-развертки-метчики-флайкаттеры недоступны, поскольку минимальная скорость — 6000 оборотов.
                Читать дальше →
              • Допустимые и недопустимые контакты металлов. Популярные метрические и дюймовые резьбы

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

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

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

                  И, раз уж зашла речь о металлообработке, заодно автор привёл таблицу с популярными в электронике резьбами и соответствующими свёрлами, отобрав из объёмных источников наиболее релевантное по тематике портала. Не все же здесь слесари и металлурги, экономьте своё время.
                  Читать дальше →
                • Этикет Кремниевой Долины

                  • Translation
                  Здесь встречают по манерам…
                  В 17-ом веке во Франции манеры приобрели политическое значение. Король Людовик XIV и его предшественники, собирая вместе аристократию Франции под одной крышей с сувереном в его дворце в Версале, основали своего рода школу манер.

                  Во дворце придворные жили под деспотическим надзором короля. Если вы вызывали недовольство Людовика, то он просто высказывал пожелание «не видеть вас» на следующий день. И желание короля «не видеть вас» было равносильно полному забвению вас в Версале.

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

                  Маргарет Виссер
                  Читать дальше →
                • Как я создавал бесшовный Wi-Fi



                    У нас в конторе не так давно назрела задача сделать бесшовное Wi-Fi-покрытие, долго терпели и перетаптывались, но в итоге его сделали. Поделюсь опытом, как это было. Началось с того, что два года назад мы полностью перешли на IP-АТС и почти извели аналоговые телефоны включая, в итоге и DECT. Однако, переносные трубки нужны и помимо настольных SIP-телефонов купили несколько Wi-Fi телефонов Tecom. Я и сам, как ответственный за техническую часть в компании постоянно хожу по офису с различными Wi-Fi-ными девайсами, ну и манагеры тоже. У многих на руках упомянутые Wi-Fi SIP-телефоны, + у складских пару Wi-Fi терминалов, есть просто Андроиды и Яблоки с установленными SIP-клиентами от АТС. Раньше все решалось несколькими Wi-Fi роутерами, в принципе, тоже было приемлемо (офис небольшой), но ровно пока ты сидишь на месте – пошел, все, кончился разговор, а Skype-соединение еще быстрее слетает. Это стало изрядно раздражать руководство и менеджеров и пошли наезды что вай-фай не вай-фай. Попытки просто увеличить количество роутеров ясное дело задачу не решило.

                    Стал читать и таки вычитал, что все уже давно придумано до нас. Есть Wi-Fi точки, которые могут делать переход клиента между собой без разрыва или почти без разрыва соединения. Причем оборудования такого достаточно много на рынке, осталось только выбрать по бюджету и адекватности. Оказалось, на эту тему очень много публикаций в зарубежном интернете, у нас поменьше. Огромным минусом этих систем, что все они хотят контроллера, который стоит как чугунный мост и у некоторых особо жадных еще и лицензии требуются на подключение каждой точки. Я принес смету на наш офис на одном таком уважаемом оборудовании, у генерального глаза округлились и ответ был виден на его лице еще до того, как он дочитал эту калькуляцию.

                    В общем, по мере изучения задачи проснулся уже спортивный интерес – можно ли сделать гладкое WiFi-покрытие (прям как на форумах) в нормальные деньги и так чтобы без этих контроллеров? Оказалось, можно.
                    Читать дальше →
                  • Подводные камни Bash

                    • Translation


                    В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


                    Читать дальше →
                  • Жаргон функционального программирования

                    • Translation


                    У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.


                    В примерах используется JavaScript ES2015). (Почему JavaScript?)


                    Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


                    В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


                    Arity (арность)


                    Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

                    Читать дальше →
                  • Продуктивное использование PHPStorm

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

                      Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
                      Что ж там такое?