Pull to refresh
57
0

Пользователь

Send message

Простой, но умный ход, применяемый в zsh и fish для решения проблемы пропущенного символа перевода строки

Reading time5 min
Views7.2K
Сегодня я хочу рассказать о том, как командные оболочки zsh и fish обнаруживают пропущенные символы перевода строки и выделяют соответствующие места в выводе программ, делая это в условиях, когда модель программирования Unix не даёт им возможности исследовать то, что выводят программы.

Большинство командных оболочек, включая bash, ksh, dash и ash, выводят приглашение командной строки в той позиции, в которой остался курсор после завершения работы предыдущей команды.



То, что приглашение (почти) всегда выводится в известном всем месте, в самой левой колонке следующей строки, объясняется тем фактом, что Unix-программы единодушно сотрудничают в деле размещения курсора именно в этой позиции после завершения их работы.
Читать дальше →
Total votes 54: ↑52 and ↓2+73
Comments5

Как «получить всё» — из «ничего», когда очень хочется, но нельзя

Reading time16 min
Views24K

Насколько это реально, почему нельзя, а также, — какое слово зашифровано ниже и причём тут стартапы, вы узнаете из этой статьи

image

Total votes 44: ↑42 and ↓2+62
Comments32

Неожиданные подвохи при перенаправлениях оболочки в $((i++))

Reading time3 min
Views5.1K


Год назад вышла ShellCheck v0.7.1. Главным образом в ней были подчищены и исправлены имеющиеся проверки, но также появились и новые. Лично меня из всех новинок больше всех удивила та, что указывает на проблему, обсуждение которой я еще нигде не встречал:

In demo line 6:
  cat template/header.txt "$f" > archive/$((i++)).txt
                                             ^
  SC2257: Arithmetic modifications in command redirections
          may be discarded. Do them separately. 
#Арифметические изменения при перенаправлениях в command могут быть 
#отброшены. Выполняйте их отдельно
Читать дальше →
Total votes 40: ↑38 and ↓2+57
Comments5

О дивный новый «Мир»! Восстановление советской радиолы. Часть 2

Reading time6 min
Views22K
Продолжаю свой рассказ о реставрации ламповой радиолы 1956 года. В предыдущей части я показал, как чистил её от многолетних наслоений грязи и восстанавливал покрытие из натурального шеллака.



Total votes 131: ↑131 and ↓0+131
Comments44

JavaScript-классы — это не просто «синтаксический сахар»

Reading time6 min
Views29K
После того, как я прочитал очередную статью, где говорится о том, что JS-классы — это всего лишь «синтаксический сахар» для прототипного наследования, я решил написать материал, призванный (в который раз!) прояснить вопрос о том, почему данное утверждение неверно. Тут я, надеюсь, смогу объяснить разницу между JS-классами и прототипным наследованием, и смогу рассказать о том, почему важно понимать эту разницу.


Читать дальше →
Total votes 39: ↑38 and ↓1+53
Comments25

Свой личный SMS-шлюз. Часть 2 – создаём API и форму отправки

Reading time11 min
Views26K

Представляю вам вторую часть из серии статей по созданию своего шлюза.
В первой части мы настроили Gammu, рассмотрели особо интересные параметры и успешно произвели отправку SMS сообщения. Сейчас нам предстоит задача посложнее – создать некую программную прослойку (API), для того, чтобы можно было работать со шлюзом путем отправки запросов на этот API. В первую очередь это комфорт, во вторую – большое количество дополнительных возможностей.

Если вы не знакомы с первой частью, советую сначала ознакомиться с ней:
Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование
Читать дальше →
Total votes 30: ↑29 and ↓1+43
Comments31

Как бросить нелюбимую работу и прочно войти в АЙТИ

Reading time28 min
Views15K
На этой неделе в наших соцсетях выступил Николай Сладкий, один из создателей SamaraITCommunity.

Николай, Senior Serverless JavaScript Developer в Voximplant – обладает восьмилетним опытом работы с бек- и фронтендом, влюблен *nix- подобные системы, vim, чистый код, архитектурные подходы и open source, как лучшее, что случилось с человечеством. Он — один из создателей SamaraITCommunity (сильно причастен к появлению GrindConf, VolgaHack, подкастов SITCast” и “SITalk”), а также он входит в команду авторов проекта Джуность.

Делимся с вами расшифровкой эфира и записью.
Total votes 34: ↑23 and ↓11+25
Comments18

5 React-хуков, которые пригодятся в любом проекте

Reading time7 min
Views28K
Хочу рассказать о пяти простых React-хуках, которые пригодятся в любом проекте. Причём, полезность этих хуков не зависит от того, в каком именно приложении их будут использовать. Описывая каждый из них, я рассказываю о его реализации и привожу пример его использования в клиентском коде.


Читать дальше →
Total votes 37: ↑32 and ↓5+43
Comments19

Запуск тестов Selenium в Jenkins

Reading time10 min
Views20K
В наши дни понятие «DevOps» у всех на слуху. Это — организационный подход, широко используемый для ускорения разработки и развёртывания приложений. Организации внедряют у себя практики DevOps, так как они обещают дать тем, кто их использует, всё лучшее, что существует в мире разработки ПО, причём — на всех этапах работы — от планирования и тестирования, до развёртывания и мониторинга проектов. В реализации практик DevOps важную роль играют CI/CD-инструменты вроде Jenkins. А интеграция Jenkins с Selenium значительно облегчает процесс автоматизации Selenium-тестов.



В этом материале я расскажу о том, что такое Jenkins и Selenium, и остановлюсь на методах их интеграции. Если у вас уже есть некоторый опыт работы с этими системами, но вы интересуетесь тем, как наладить их совместную работу, вы можете сразу же перейти к соответствующему разделу.
Читать дальше →
Total votes 32: ↑29 and ↓3+39
Comments4

Уверены, что отличите ассемблер от других языков?

Reading time9 min
Views25K


Немногие смело признают, что могут ошибиться в идентификации ассемблера, ведь это по-своему особенный язык. Однако не спешите с выводами, а лучше пройдите небольшой тест, который не просто позволит взгляуть на него в ином свете, но и проверит вашу осведомленность в этой сфере.
Читать дальше →
Total votes 47: ↑39 and ↓8+53
Comments94

Как взломать премию, пропустив деньги через шредер

Reading time4 min
Views9.2K

Отлично заканчивается апрель для RUVDS! Мы победили в ежегодном конкурсе среди профессионалов на рынке дата-центров и получили премию «ЦОДы.РФ» в номинации «Креатив года». Помните тот эмоциональный хакерский квест, который мы устроили в августе 2020-го? Неплохо повеселились, правда? За него нам и дали премию. Кто пропустил посты про эту чумовую игру – подробности внутри.
Total votes 35: ↑33 and ↓2+50
Comments0

Безусловный базовый доход ближе, чем кажется

Reading time7 min
Views54K

Гарантированный базовый доход, он же ББД (безусловный базовый доход) или UBI (Universal Basic Income) — горячая тема, набирающая популярность не только на Хабре и в гиковских кругах, но и по всему миру среди экономистов, руководителей городов и даже кандидатов в президенты США.

В 2021 тема ББД актуальна как никогда: эмпирические данные в пользу гарантированного базового дохода растут по экспоненте, новые эксперименты запускаются буквально на глазах: в апреле о запуске собственных пилотных программ объявили Лос-Анджелес и Сан-Франциско, следующий вероятный кандидат на очереди — Нью-Йорк. О том, что говорят ББД на практике забытый канадский эксперимент 1970-х, калифорнийский эксперимент 2020-х, политическая программа лидирующего кандидата на выборах мэра Нью-Йорка 2021 года и современная пенсионная система, существующая с 1889 года — в этой статье.
Читать дальше →
Total votes 70: ↑60 and ↓10+77
Comments1418

${var?} и && — два простых помощника в работе с командами оболочки из документации

Reading time3 min
Views10K


tl;dr: используйте инструкцию ${placeholders?} для выдачи ошибки при пропуске параметра и объединяйте команды оболочки с помощью &&, чтобы упростить и обезопасить их копирование из технической документации.
Читать дальше →
Total votes 47: ↑43 and ↓4+55
Comments16

Обман обманщиков: форк-бомба нового уровня

Reading time4 min
Views62K
Сразу предупреждаю: не копируйте примеры кода из этой статьи и не запускайте их в своей командной оболочке.
Есть люди, которые развлекают себя жестокими шутками над новичками, обманом подводя их к запуску разрушительных инструкций в командной оболочке.



Часто это принимает форму грубо замаскированных команд, вроде той, что показана ниже. Её запуск приведёт к выполнению в текущей директории команды rm -rf *, которая всё удалит. Вот эта команда:

$(echo cm0gLXJmICoK | base64 -d)

Много лет назад я наткнулся на людей, которые играли в такие игры, и решил их проучить.
Читать дальше →
Total votes 139: ↑138 and ↓1+194
Comments101

Свой личный SMS-шлюз. Часть 1 – цели, задачи, сборка и тестирование

Reading time6 min
Views66K


Представляю вам цикл статей по созданию собственного шлюза для отправки SMS-сообщений.
В первой части мы определим цели и некоторые аспекты использования своего шлюза, настроим программное обеспечение для отправки SMS с использованием USB-модемов, а также рассмотрим несколько интересных вариантов отправки
Читать дальше →
Total votes 58: ↑57 and ↓1+72
Comments62

Первый глиняный дом, напечатанный на 3D принтере

Reading time2 min
Views21K


Этот дом несколько принтеров напечатали из местной почвы за 200 часов. В итоге никаких отходов и необходимости доставки строительных материалов.
Total votes 50: ↑48 and ↓2+67
Comments182

Библиотека next-persist: преодоление разрыва между серверным рендерингом и постоянным хранением данных на клиенте

Reading time9 min
Views5.6K
Статья, перевод которой мы публикуем сегодня, посвящена next-persist — компактному и нетребовательному к ресурсам NPM-пакету. Цель его создания — упрощение обработки и реконсиляции данных, на постоянной основе хранящихся на клиенте и не имеющих критического значения. При этом данный пакет задуман так, чтобы его применение не ухудшило бы полезных возможностей Next.js по серверному рендерингу и генерированию статических сайтов.

Прежде чем мы поговорим о месте next-persist в экосистеме современной веб-разработки, нам нужно коснуться Next.js — передового фреймворка, созданного Vercel, позволяющего без особых сложностей создавать и развёртывать приложения, которые, при этом, отличаются высокой скоростью загрузки.



Next.js произвёл революцию в осмыслении того, как именно веб-содержимое доставляется пользователям. Произошло это за счёт объединения всего лучшего из сфер серверного и клиентского рендеринга с технологиями генерирования статических сайтов. Кроме того, применение Next.js до крайности упрощает доведение веб-проектов до рабочего состояния. Это происходит за счёт автоматизации конфигурирования вспомогательного ПО, вроде webpack и babel, и благодаря использованию CI/CD Vercel.

Правда, это не позволяет говорить о том, разработчику, пользующемуся удобствами экосистемы Next.js, не приходится сталкиваться с какими-то сложными задачами. Одной из таких задач является организация постоянного хранения данных на клиенте.
Читать дальше →
Total votes 24: ↑22 and ↓2+31
Comments0

Начинаем писать под stm8, выбираем среды разработки и стартуем

Reading time6 min
Views31K
image

На пути в программировании stm8 есть развилка, о ней сегодня и поговорим.

Определимся что речь будет идти о средах которые могут писать под си. Для начала поговорим о подходах, я выделю 2 основных.

Первый установка ST Visual Develop и выбор в качестве компилятора COSMIC Бывший платный, а ныне бесплатный, но со своими заморочками; регистрация, получение ключа, и прочие танцы с бубном.

Второй же вариант, более простой VS Code + PlatformIO и компилятор SDCC полностью свободный. И опять же не все так просто. Sdcc не умеет исключать не используемые функции. Я решил этот вопрос хоть и успешно, но не без дополнительных действий при написании кода.
Читать далее
Total votes 33: ↑31 and ↓2+43
Comments23

Полезные JavaScript-библиотеки

Reading time6 min
Views33K
Не стоит недооценивать силу простоты. Пожалуй, сложно представить себе, что на чистом JavaScript реализовано что-то вроде системы push-уведомлений, работающей в реальном времени, или инструмент для работы с базами данных, или полноценный текстовой редактор. Но подобные проекты существуют и позволяют решать множество актуальных задач. В этом материале речь пойдёт о нескольких весьма полезных библиотеках, которые подключаются к страницам в виде обычных JavaScript-файлов. При рассказе о каждой из них я постараюсь выделять их особенности и приводить примеры их использования.


Читать дальше →
Total votes 48: ↑37 and ↓11+41
Comments18

Автоматический дымоуловитель для пайки, основанный на Arduino

Reading time4 min
Views8.9K
Автор статьи, перевод которой мы представляем вашему вниманию, хочет рассказать о том, как сделать датчик, основанный на Arduino, который автоматически включает дымоуловитель при извлечении паяльника из держателя.



Для этого проекта вам понадобится Arduino UNO Wifi Rev.2, инфракрасный датчик препятствий KY-032 и одноканальное реле на 5В. Некоторые элементы надо будет напечатать на 3D-принтере. Для сборки готового устройства нужно будет воспользоваться паяльником.
Total votes 39: ↑27 and ↓12+29
Comments38

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity