• 5 способов полезного использования Raspberry Pi

      Привет Хабр.

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

      Для тех кому интересно, подробности под катом. Статья рассчитана для начинающих.
      Читать дальше →
    • Блокировки в PostgreSQL: 2. Блокировки строк

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



        Блокировки строк


        Устройство


        Напомню несколько важных выводов из прошлой статьи.

        • Блокировка должна существовать где-то в разделяемой памяти сервера.
        • Чем выше гранулярность блокировок, тем меньше конкуренция (contention) среди одновременно работающих процессов.
        • С другой стороны, чем выше гранулярность, тем больше места в памяти занимают блокировки.

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

        Есть разные пути решения этой проблемы. В некоторых СУБД происходит повышение уровня блокировки: если блокировок уровня строк становится слишком много, они заменяются одной более общей блокировкой (например, уровня страницы или всей таблицы).

        Как мы увидим позже, в PostgreSQL такой механизм тоже применяется, но только для предикатных блокировок. С блокировками строк дело обстоит иначе.
        Читать дальше →
        • +24
        • 7,1k
        • 7
      • Блокировки в PostgreSQL: 1. Блокировки отношений

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

          В этом цикле мы поговорим о блокировках (locks). Я буду придерживаться этого термина, но в литературе может встретиться и другой: замóк.

          Цикл будет состоять из четырех частей:

          1. Блокировки отношений (эта статья);
          2. Блокировки строк;
          3. Блокировки других объектов и предикатные блокировки;
          4. Блокировки в оперативной памяти.

          Материал всех статей основан на учебных курсах по администрированию, которые делаем мы с Павлом pluzanov, но не повторяет их дословно и предназначен для вдумчивого чтения и самостоятельного экспериментирования.



          Общая информация о блокировках


          В PostgreSQL используется множество самых разных механизмов, которые служат для блокировки чего-либо (или по крайней мере так называются). Я поэтому начну с самых общих слов о том, зачем вообще нужны блокировки, какие они бывают и чем отличаются друг от друга. Затем мы посмотрим, что из этого разнообразия встречается в PostgreSQL и только после этого начнем разбираться с разными видами блокировок подробно.
          Читать дальше →
        • Шпаргалки по безопасности: JWT



            Многие приложения используют JSON Web Tokens (JWT), чтобы позволить клиенту идентифицировать себя для дальнейшего обмена информацией после аутентификации.

            JSON Web Token – это открытый стандарт (RFC 7519), который определяет компактный и автономный способ безопасной передачи информации между сторонами в виде объекта JSON.
            Читать дальше →
          • ENTRYPOINT vs CMD: назад к основам

            • Перевод

            Construction


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

            Читать дальше →
          • Docker: невредные советы

              В комментариях к моей статье Docker: вредные советы было много просьб объяснить, чем так ужасен описанный в ней Dockerfile.


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



              Сейчас разберемся, что не так с этим Dockerfile.


              Итак, прошла неделя.

              Читать дальше →
            • Образы и контейнеры Docker в картинках

              docker container

              Перевод поста Visualizing Docker Containers and Images, от новичка к новичкам, автор на простых примерах объясняет базовые сущности и процессы в использовании docker.

              Если вы не знаете, что такое Docker или не понимаете, как он соотносится с виртуальными машинами или с инструментами configuration management, то этот пост может показаться немного сложным.

              Пост предназначен для тех, кто пытается освоить docker cli, понять, чем отличается контейнер и образ. В частности, будет объяснена разница между просто контейнером и запущенным контейнером.
              Читать дальше →
              • +31
              • 107k
              • 6
            • Как начисляются проценты по кредиту и как это применить

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

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



              Исходя из этого:

              1. Сумма ежемесячно начисляемых процентов самая большая в начале, потому что в начале самый большой остаток основного долга. По мере его снижения снижаются и проценты.
              2. Сумма процентов “скачет” от месяца к месяцу, потому что зависит от количества дней в месяце.
              3. Срок кредита в расчёте ежемесячно начисляемых процентов не фигурирует, а это значит, что неважно, на какой срок брать ипотеку — переплата будет одинаковой, если одинаковы ежемесячные платежи.
              4. При внесении частичного досрочного погашения с уменьшением ежемесячного платежа переплата будет точно такой же, как в случае сокращения срока, если продолжать платить прежний ежемесячный платёж, а не уменьшенный.

              Приведу расчёты по каждому пункту.
              Читать дальше →
            • Single Responsibility Principle. Не такой простой, как кажется

              • Tutorial

              image Single responsibility principle, он же принцип единой ответственности,
              он же принцип единой изменчивости — крайне скользкий для понимания парень и столь нервозный вопрос на собеседовании программиста.


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


              В лесу нас разделили на группы по 8-9 человек в каждой и устроили соревнование — какая группа быстрее выпьет бутылку водки при условии, что первый человек из группы наливает водку в стакан, второй выпивает, а третий закусывает. Выполнивший свою операцию юнит встает в конец очереди группы.


              Случай, когда размер очереди был кратен трем, и являлся хорошей реализацией SRP.

              Но почему соображать нужно именно на троих?
            • Поднимаем производительность SSD c колен, куда нажимать и зачем

                На самом деле, речь сегодня пойдёт не только о бывших в использовании какое-либо время накопителях, ведь проблема низкого быстродействия может затронуть даже только что принесённый из магазина SSD. Конечно, физику не обманешь – со временем все твердотельные накопители будут терять производительность. Но причиной этому может стать не только проблема именно самого SSD. Обеспечить грамотное взаимодействие комплектующих и программного обеспечения в системе – не совсем простая задача для простых пользователей, кто не хочет (или кому попросту не надо) хоть мало-мальски разобраться в теме и послушать советы грамотных в этом плане людей. Кому-то проще переустановить операционную систему или добавить в список используемых приложений какие-то сомнительные «твикеры». Но ведь вдумайтесь — к примеру, простое с нашей точки зрения удаление файла состоит из достаточно большого количества этапов, в которых завязаны сразу несколько участников. И, если хоть один из них отработал задачу некорректно, то это сказывается на производительности диска. Что это за этапы? Кем или чем они выполняются? Как обеспечить стабильную работу? Во всём этом мы сегодня и разберёмся. Просто и наглядно, чтобы понятно было всем. И тогда станет ясно, что лечение симптомов низкой производительности SSD не поможет.

                Читать дальше →
              • Разбор: 23 популярные ошибки в письменном английском и как их избежать

                • Перевод
                • Tutorial


                Даже если вы учите английский язык много лет, скорее всего время от времени совершаете ошибки при письме. Я нашел интересный пост с подборкой более чем двух десятков распространенных ошибок и советами о том, как их избежать. Представляю перевод этого полезного материала.
                Читать дальше →
              • Картинки в вебе 2019

                  Проблема с отображением картинок возникла с момента появления адаптивности в интернете. Мы хотим, чтобы сайт хорошо смотрелся на любом планшете, телефоне, в портретной или ландшафтной ориентации экрана, а также на супербольших дисплеях 5K. Также на рынке появились Retina-дисплеи с высокой плотностью пикселей (DPI), где обычные картинки выглядят размытыми. Растет доля мобильного трафика, и крупные ресурсы нацелены на экономную загрузку изображений. Рассмотрим, как решают эти проблемы на сайтах Apple, Tilda и блог-платформе Medium.
                  Читать дальше →
                  • +4
                  • 10,9k
                  • 4
                • Семь неожиданных переменных Bash

                  • Перевод
                  • Tutorial
                  Продолжая серию заметок о менее известных функциях bash, покажу вам семь переменных, о которых вы могли не знать.

                  1) PROMPT_COMMAND


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

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

                  Попробуйте запустить это в новом шелле, и увидите, что произойдёт с сессией:

                  $ PROMPT_COMMAND='echo -n "writing the prompt at " && date'
                  Читать дальше →
                • Ускоряем сборку веб-приложения с webpack

                  По мере того как ваше приложение развивается и растёт, увеличивается и время его сборки — от нескольких минут при пересборке в development-режиме до десятков минут при «холодной» production-сборке. Это совершенно неприемлемо. Мы, разработчики, не любим переключать контекст в ожидании готовности бандла и хотим получать фидбек от приложения как можно раньше — в идеале за то время, пока переключаемся с IDE на браузер.


                  Как этого достичь? Что мы можем сделать, чтобы оптимизировать время сборки?


                  Эта статья — обзор существующих в экосистеме webpack инструментов для ускорения сборки, опыт их применения и советы.


                  Оптимизации размера бандла и производительности самого приложения в этой статье не рассматриваются.

                  Читать дальше →
                • Как на самом деле надо сравнивать цены Apple в США и РФ. Личный опыт



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

                    Pochtoycom (на самом деле не только они) лукавят, сравнивая цены Apple в РФ и в США. Действительно, в США возможно купить iPhone дешевле, чем в России. Однако есть несколько особенностей, о которых не стоит забывать и для некоторых покупателей они могут оказаться блокирующими. Для меня это оказалось интересным квестом, который я успешно прошел. И далее я расскажу как. Если хотите пройти этот квест самостоятельно, то не читайте дальше — под катом спойлеры ;)
                    Читать дальше →
                  • Дзен Эрланга [и Эликсира — прим. переводчика]

                    • Перевод

                    Введение от переводчика


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


                    Ещё от переводчика

                    Статья от 2016 года, но речь в ней идёт о базовых концепциях, которые не устаревают.


                    Ссылки на понятия и комментарии от меня (переводчика) расположены в квадратных скобках [] и снабжены указателем "прим. переводчика".


                    Если вы найдёте какие-то части перевода недостаточно корректными, особенно в плане терминов, или столкнётесь с любыми другими ошибками — дайте мне, пожалуйста, знать, с удовольствием исправлю.


                    Отдельное спасибо Яну Гравшину за помощь в вычитке и редактуре текста.


                    Это свободная расшифровка (или долгий парафраз?) моей презентации на организованной Genetec конференции ConnectDev'16.


                    001


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

                    Читать дальше →
                    • +26
                    • 5,4k
                    • 9
                  • Монады за 15 минут

                    • Перевод

                    Вступление


                    На конференции YOW! 2013 один из разработчиков языка Haskell, проф. Филип Вадлер, показал, как монады позволяют чистым функциональным языкам осуществлять императивные по сути операции, такие, как ввод-вывод и обработку исключений. Неудивительно, что интерес аудитории к этой теме породил взрывной рост публикаций о монадах в Интернет. К сожалению, бо́льшая часть этих публикаций использует примеры, написанные на функциональных языках, подразумевая, что о монадах хотят узнать новички в функциональном программировании. Но монады не специфичны для Haskell или функциональных языков, и вполне могут быть проиллюстрированы примерами на императивных языках программирования. Это и является целью данного руководства.

                    Чем это руководство отличается от остальных? Мы попытаемся не более чем за 15 минут «открыть» монады, используя лишь интуицию и несколько элементарных примеров кода на Python. Мы поэтому не станем теоретизировать и углубляться в философию, рассуждая о буррито, космических скафандрах, письменных столах и эндофункторах.
                    Читать дальше →
                  • FAQ: что надо знать путешественнику-гику про прививки перед поездкой

                      Мадагаскар закрывает границы!Вакцина — это способ показать иммунной системе сигнатуру угрозы, к которой за несколько циклов обучения будет выработан иммунный ответ.

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

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

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

                      Давайте сначала разберёмся с ликбезом, потом перейдём к путешествиям и списку действий.

                      Почему путешествия опасны?


                      Предположим, вы летите в Африку. Там есть повышенный риск жёлтой лихорадки. Простая вакцина обойдётся вам примерно в 1 500 рублей вместе с приёмом терапевта и услугами процедурного кабинета, вакцина более высокого уровня — в 3 000 рублей. Вылечиться от жёлтой лихорадки специализированными медикаментами нельзя (то есть можно только поддерживать ресурсы организма, пока он сам не справится), заболеть легко, летальность — около 10%, основной вектор — комары. Побочных эффектов у вакцины почти нет. Стоит вакцинация того? Наверное, да. Но решать вам.
                      Читать дальше →
                    • Иммиграция фрилансера: что нужно знать

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

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

                        Но процесс релокации фрилансера в разных странах немного отличается от переезда штатного специалиста. Рассмотрим его на примерах разных стран Европы, Азии и Северной Америки.
                        Читать дальше →
                        • +11
                        • 12,5k
                        • 9
                      • 10 познавательных YouTube-каналов на английском, о которых вы никогда не слышали

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

                          Мы собрали 10 по-настоящему крутых и познавательных англоязычных каналов. Самые известные и популярные мы не рассматривали, поэтому гарантируем, что все (или почти все) окажутся вам в новинку.

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