• Dozen tricks with Linux shell which could save your time



      • First of all, you can read this article in russian here.

      One evening, I was reading Mastering regular expressions by Jeffrey Friedl , I realized that even if you have all the documentation and a lot of experience, there could be a lot of tricks developed by different people and imprisoned for themselves. All people are different. And techniques that are obvious for certain people may not be obvious to others and look like some kind of weird magic to third person. By the way, I already described several such moments here (in russian) .

      For the administrator or the user the command line is not only a tool that can do everything, but also a highly customized tool that could be develops forever. Recently there was a translated article about some useful tricks in CLI. But I feel that the translator do not have enough experience with CLI and didn't follow the tricks described, so many important things could be missed or misunderstood.

      Under the cut — a dozen tricks in Linux shell from my personal experience.
      Read more →
    • Полное практическое руководство по Docker: с нуля до кластера на AWS

      • Translation



      Содержание



      Вопросы и ответы


      Что такое Докер?


      Определение Докера в Википедии звучит так:


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



      Ого! Как много информации.

      Читать дальше →
    • Полный цикл разработки IoT устройства управления подогревом бассейна на ESP8266 в среде Arduino

      В данной публикации я поделюсь опытом о создании IoT устройства с ноля: от появления идеи и воплощении ее в «железе» до создания микропрограммы для контроллера и web-интерфейса для управления созданным устройством через сеть интернет.


      До создания этого устройства я:


      • Почти не разбирался схемотехнике. Только на уровне принципов работы
        резистора/транзистора… Я не имел никакого опыта в создании сколь-нибудь сложных схем.
      • Никогда не проектировал печатных плат.
      • Никогда не паял SMD компонент. Уровень владения паяльником был на уровне припаивания проводов и какого-нибудь реле.
      • Никогда не писал таких сложных программ для микроконтроллера. Весь опыт был на уровне «зажги светодиод в Arduino», а контроллер ESP8266 я встретил впервые.
      • Совсем немного писал на C++ для «большого брата», но это было более десятка лет назад и все давно забылось.

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

      Читать дальше →
    • Магия SSH

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

        Оглавление:

        1) Local TCP forwarding
        2) Remote TCP forwarding
        3) TCP forwarding chain через несколько узлов
        4) TCP forwarding ssh-соединения
        5) SSH VPN Tunnel
        6) Коротко о беспарольном доступе
        7) Спасибо (ссылки)
        Читать дальше →
      • Цвет: от шестнадцатеричных кодов до глаза

        • Translation


        Почему мы воспринимаем background-color: #9B51E0 как этот конкретный фиолетовый цвет?



        Долгое время я думал, что знаю ответ на этот вопрос. Но хорошенько поразмыслив, осознал значительные пробелы в своих знаниях.
        Читать дальше →
      • Правильные ответы по криптографии: 2018 год

          Перевод статьи, автор – Latacora

          В литературе и самых сложных современных системах есть «лучшие» ответы на многие вопросы. Если вы разрабатываете встроенные приложения, то предлагают использовать STROBE и модный современный криптографический стек для аутентификации полностью из одиночных SHA-3-подобных функций губки. Советуют использовать NOISE для разработки безопасного транспортного протокола с формированием общего ключа аутентификации (AKE). Говоря об AKE, есть около 30 различных парольных AKE на выбор.

          Но если вы разработчик, а не криптограф, то не должны делать ничего такого. Следует придерживаться простых и обычных решений, которые легко поддаются анализу — «скучных», как говорят люди из Google TLS.
          Читать дальше →
          • +24
          • 14k
          • 7
        • Топ-10 распространенных ошибок в английском произношении, которые вы можете совершать

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

          Читать дальше →
        • [CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?

          • Tutorial

          Продолжение цикла обзорных статей с конференции CppCon 2017.



          На этот раз очень интересное выступление от автора Compiler Explorer (godbolt.org). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.


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


          Читать дальше →
          • +31
          • 12.2k
          • 3
        • Тернистый путь Hello World

          Вдохновение на написание данной статьи было получено после прочтения похожей публикации для архитектуры x86 [1].


          Данный материал поможет тем, кто хочет понять, как устроены программы изнутри, что происходит до входа в main и для чего всё это делается. Также я покажу как можно использовать некоторые особенности библиотеки glibc. И в конце, как и в оригинальной статье [1] будет визуально представлен пройденный путь. В большинстве своём статья представляет собой разбор библиотеки glibc.


          Итак, начнём наш поход. Будем использовать Linux x86-64, а в качестве инструмента отладки — lldb. Также иногда будем дизассемблировать программу при помощи objdump.


          Исходным текстом будет обычный Hello, world (hello.cpp):


          #include <iostream>
          int main()
          {
                  std::cout << "Hello, world!" << std::endl;
          }
          Читать дальше →
          • +74
          • 24.7k
          • 4
        • 50 цитат о программировании всех времён

          • Translation
          Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

          49. Lisp — это не язык, а строительный материал.
          — Alan Kay

          48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
          — Edward V Berard
          Читать дальше →
        • Немного предпятничных задачек на Bash

            image

            Привет Хабр!



            В bash частенько можно столкнуться с ситуацией, когда вроде как уже разобрался, и тут внезапно какая-то магия. Ковырнешь ее, а там еще целый пласт вещей, о которых раньше и не подозревал…
            Под катом — несколько забавных задачек на bash, которые (надеюсь) могут оказаться интересными даже для середнячков. Удивить гуру я не надеюсь.., но все же перед тем как залезть под кат, сперва пообещайте ответить на задачки хотя бы для себя вслух — без man/info/google.
            Читать дальше →
          • 10 советов, как преодолеть страх общения с носителем английского языка

            • Tutorial
            С вами такое было, что сам с собой говоришь на безупречном английском, а вот с реальными людьми получаются какие-то рандомные слова? А с носителем языка вообще выходит какой-то треш, после которого хочется завернуться в одеялко и никогда больше не покидать свою квартиру! Хорошо, если под рукой Google Translate или какой-то словарик. А еще лучше, если вживую общаться не нужно.

            Вы скажите, что уже есть всякие там разговорники и даже волшебные наушники, как рыбка из “Автостопом по галактике”, которые переводят все на лету. Это правда, но вот качество таких переводов пока все также на уровне Google Translate или Prompt пятнадцатилетней давности. В смысле, что машинный перевод пока еще не очень и его нужно фильтровать и проверять, а общаться нужно уже сейчас.

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

            • Tutorial
            Привет гиктаймс! Я решил опубликовать по частям свое руководство по материалам, используемым не только в электротехнике, но и вообще в технике, в том числе самодельщиками. С описанием, примерами применения, заметками по работе. Руководство написано максимально просто, и будет понятно всем, от школьника до пенсионера.

            В этой части начинаем разбирать проводники — Серебро, Медь, Алюминий.

            image

            Добро пожаловать под кат (ТРАФИК)
            узнать о материалах
          • Обзор фантастики на Geektimes с 2009 по 2017 годы

              На geektimes есть хабы «Читальный зал» (про литературу для гиков), «Научная фантастика» (про научную фантастику), «Киберпанк» (про киберпанк). Как-то так повелось, что в эти хабы всякие деятели стали публиковать свои рассказы. Причём, это не только небольшие зарисовки, для лёгкого пятничного чтения, но и этакие «мыльные оперы»: в реальном времени можно следить, как авторы пишут главы рассказов, можно сказать, «Special for GT».

              Я сейчас не хочу обсуждать целесообразность подобных публикаций на техническом ресурсе (кто-то за, кто-то против, кто-то предлагает создать отдельных хаб) или соответствие статей выбранным хабам. Так получилось, что последние пару лет я непериодически читал ресурс (вновь активно «сидеть» стал где-то только в последние полгода) и мне стало интересно — а сколько же фантастики тут вообще написано?



              Предлагаю вниманию небольшой обзор по становлению литературной составляющей хаба «Читальный зал», а так же список рассказов с моими краткими аннотациями.
              Читать дальше →
            • Избранное: ссылки по reverse engineering


                Всем привет!


                Сегодня мы хотели бы поделиться своим списком материалов по тематике reverse engineering (RE). Перечень этот очень обширный, ведь наш исследовательский отдел в первую очередь занимается задачами RE. На наш взгляд, подборка материалов по теме хороша для старта, при этом она может быть актуальной в течение продолжительного времени.


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


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


                Итак, перейдем к списку материалов!

                Читать дальше →
              • Мигаем светодиодом в STM32 на ассемблере

                Некотрое время назад захотелось мне освоить ассемблер и после прочтения соответствующей литературы пришло время практики. Собственно о ней и пойдет дальше речь. Первое время я практиковался на Arduino Uno (Atmega328p), теперь решил двигаться дальше и взялся за STM32. В руки ко мне попала STM32F103C8 собственно на ней и будут проходить дальнейшие эксперименты.

                Инструменты


                Я использовал следующие инструменты:

                • Notepad++ — для написания кода
                • GNU Assembler — компилятор
                • STM32 ST-LINK Utility + ST-LINK V2 — для прошивки кода на микроконтроллер и отладки

                Начало


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

                jmp main
                

                В нем прописываются конкретные адреса и во время прерывания процессор сам подставляет прописанный в векторе адрес в PC регистр. Вот пример моего вектора прерываний:

                .org 0x00000000					
                SP: .word STACKINIT				
                RESET: .word main
                NMI_HANDLER: .word nmi_fault
                HARD_FAULT: .word hard_fault
                MEMORY_FAULT: .word memory_fault
                BUS_FAULT: .word bus_fault
                USAGE_FAULT: .word usage_fault
                .org 0x000000B0
                TIMER2_INTERRUPT: .word timer2_interupt + 1
                

                Хочу обратить внимание читателя, что первой строкой идет не reset вектор, а значения которым будет инициализироваться стэк. Сразу следом за ним идет reset вектор после которого следуют 5 обязательных векторов прерываний (NMI_HANDLER – USAGE_FAULT).
                Читать дальше →
              • Базовая фортификация Linux: выбираем ежи и учимся рыть траншеи


                  Несмотря на то, что Linux по праву считается более защищенной системой, чем MS Windows, самого по себе этого факта мало.


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

                  Читать дальше →
                • Как работает Android, часть 1


                    В этой серии статей я расскажу о внутреннем устройстве Android  —  о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.

                    Читать дальше →