Pull to refresh
16
0
Что в имени тебе моём? @mas

User

Send message

Neovim для full stack программиста

Reading time7 min
Views75K

Я немного расскажу, как использую vim в работе full stack программиста, со своей колокольни, но для начала отвечу на некоторые вопросы, которые задают мне, когда узнают, что я использую vim при разработке проектов:

Зачем?

Хороший вопрос. Стоит для себя лично на него ответить. Зачем валандаться с vim, изучать кучу комбинаций клавиш и плагинов? Какой смысл, если есть vscode или pycharm или phpstorm? Жизнь коротка, стоит ли ее тратить на все это? Чтобы впечатлить кого-то, как на картинке в начале статьи? Да кого этим удивишь?

Читать далее
Total votes 58: ↑56 and ↓2+54
Comments179

Как прорешать SICP: Отчёт о создании решебника для самого известного в мире задачника по программированию. Ботаны есть?

Reading time45 min
Views17K

(Хабр-Статья представляет собой авторский перевод доклада, представленного автором на Scheme Workshop 2020, проводившегося в рамках Международной Конференции по Функциональному Программированию, 28 августа 2020 года)

Эта статья -- своего рода "отчёт" по самому большому проекту, который я сделал в своей жизни по собственной инициативе. Я сделал полное, исчерпывающее решение всех задач из одной из самых извесных книг по программированию в мире "Структура и Интерпретация Компьютерных Программ" (Structure and Interpretation of Computer Programs -- SICP), за авторством Абельсона, Сассмана и Сассман.

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

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments14

Git, я хочу все отменить! Команды исправления допущенных ошибок

Reading time4 min
Views47K
image

Git — удобная, но довольно сложная система. Сложность, прежде всего, в том, что по невнимательности можно допустить ошибку, которую затем сложно или вообще невозможно исправить. Документация Git предоставляет описание множества команд, которые дают возможность исправить ошибку.

Но вся штука в том, что для исправления проблемы нужно знать точное название команды. И здесь у нас возникает типичная проблема курицы и яйца. В этой статье рассказывается о командах, которые помогают решить проблемные ситуации.
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments20

Как выбрать красивые цвета для вашей инфографики

Reading time10 min
Views38K


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

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

Статья не поможет найти хорошие градиенты или оттенки. Она предназначена для подбора красивых, чётких цветов для различных категорий информации (например, континентов, отраслей промышленности, видов птиц) в линейных, круговых, полосковых диаграммах и так далее.
Total votes 46: ↑45 and ↓1+44
Comments6

О работе ПК ч.3: От включения до полной загрузки Windows 10

Reading time20 min
Views100K
Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.

Старт системы


Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.

Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments57

Работа с файлами в JavaScript

Reading time24 min
Views100K
Доброго времени суток, друзья!

Мнение о том, что JavaScript не умеет взаимодействовать с файловой системой, является не совсем верным. Скорее, речь идет о том, что это взаимодействие существенно ограничено по сравнению с серверными языками программирования, такими как Node.js или PHP. Тем не менее, JavaScript умеет как получать (принимать), так и создавать некоторые типы файлов и успешно обрабатывать их нативными средствами.

В этой статье мы создадим три небольших проекта:

  • Реализуем получение и обработку изображений, аудио, видео и текста в формате txt и pdf
  • Создадим генератор JSON-файлов
  • Напишем две программы: одна будет формировать вопросы (в формате JSON), а другая использовать их для создания теста

Если Вам это интересно, прошу следовать за мной.

Код проекта на GitHub.
Total votes 8: ↑6 and ↓2+4
Comments1

Как получить размеры экрана, окна и веб-страницы в JavaScript?

Reading time2 min
Views161K


Доброго времени суток, друзья!

Представляю Вашему вниманию перевод небольшой заметки «How to Get the Screen, Window, and Web Page Sizes in JavaScript» автора Dmitri Pavlutin.

Для определения ориентации окна браузера (ландшафтной или портретной) можно сравнить его ширину и высоту.

Однако во всевозможных доступных размерах легко запутаться: существуют размеры экрана, окна, веб-страницы и т.д.

Что означают эти размеры и, главное, как их получить? Именно об этом я и собираюсь рассказать.
Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments5

68 непрошеных советов

Reading time6 min
Views76K
Это перевод самого недавнего поста Кевина Келли, со-основателя журнала Wired, писателя, фотографа, футуролога.


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

  • Научитесь учиться у тех, с кем вы не согласны, или даже тех, кто вас раздражает. Нет ли истины в их убеждениях?
  • Энтузиазм эквивалентен 25 баллам IQ.
  • Всегда требуйте дедлайн. Дедлайн избавляет от лишнего и заурядного. Он останавливает попытки достичь совершенного, поэтому вам приходится делать необычное. Необычное лучше.

Читать дальше →
Total votes 92: ↑85 and ↓7+78
Comments106

Делаем MIDI-клавиатуру из старого детского синтезатора

Reading time9 min
Views35K
image

В один из дней, возвращаясь домой, возле мусоропровода в подъезде я увидел старую детскую игрушку-синтезатор. Прошел мимо, так как брать с мусорки «грешно», но в душе захотелось утащить ее оттуда. Уже поздно ночью, где-то часа в 2 я решил посмотреть, не стоит ли она все еще там. И да, она все еще была там! С виду она был вполне целой и чистой, так что никакой брезгливости, чтобы не забирать ее не было. Так что да, я ее забрал.

Давно хотел себе пианино, я не профессиональный музыкант, но просто побаловаться — почему нет? Покупать что-то «ради побаловаться» меня «душила жаба», а тут — халявная игрушка. Когда я ее забирал с мусорки, то даже мысли не было пользоваться ей как детской игрушкой, была сразу мысль: «О-о-о…, хорошая база, чтобы попробовать сделать MIDI-клавиатуру».
Total votes 48: ↑48 and ↓0+48
Comments28

Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm

Reading time8 min
Views331K

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


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


Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.


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

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments20

Zip-файлы: история, объяснение и реализация

Reading time76 min
Views92K


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Total votes 176: ↑175 and ↓1+174
Comments45

Backblaze — статистика жестких дисков за 2019

Reading time4 min
Views30K


На 31 декабря 2019 г. у нас 124 956 работающих жестких дисков. Из них 2 229 загрузочных и 122 658 с данными. В данном обзоре мы рассмотрим статистику по отказам среди жестких дисков с данными. Также рассмотрим 12 и 14 TB версии дисков и новые 16 TB, которые мы активно используем с начала четвертого квартала 2019 года.


Статистика за 2019 год


На конец 2019 года мы мониторили 122 658 жестких дисков, использующихся для хранения данных. Мы убрали из расчета диски, которые использовались для тестирования, и диски, у которых нет наработки ~5 000 диско-дней (на модель) в течение четвертого квартала. Таким образом, мы собрали данные на основе 122 507 жестких дисков. Таблица ниже отображает нашу статистику:

Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments21

Автономная метеостанция на контроллере ATMEGA328P и питанием от батареек с беспроводным выносным датчиком

Reading time12 min
Views20K

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


Тем, кто тут впервые, советую сразу перейти сюда. Тут — новая версия метеостанции.

Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments49

Печать гобелена «Игры престолов» на фискальном принтере с использованием Python

Reading time11 min
Views10K
Однажды в одном из проектов в мои руки попал фискальный принтер. Мы каждый день сталкиваемся с этими устройствами, когда совершаем платежи в магазинах, но мало кто догадывается что на самом деле они из себя представляют. Не буду вдаваться в подробности их работы, просто скажу, что это такие штучки, которые печатают чеки с данными о покупке на специальной термобумаге (да-да, почти во всех фискальных принтерах нет чернил!).

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

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

На выходе получился вот такой ролик:


Подробные действия для печати гобелена на языке python под катом ниже.
Total votes 36: ↑36 and ↓0+36
Comments27

Создаю глобальную базу знаний по элементам питания

Reading time2 min
Views27K
Тестирую элементы питания на профессиональном оборудовании. Цель охватить большую часть рынка элементов питания Европы и России.

На данный момент протестированы более 230 аккумуляторов и батареек. Сделано более 1000 тестов. Израсходовано 4 ящика батареек и несколько месяцев жизни.

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


Читать дальше →
Total votes 139: ↑139 and ↓0+139
Comments81

Опусы про Его Величество Клей. Часть первая — вводная

Reading time12 min
Views66K
Есть такие области знания, которые «аршином общим не измерить...». В принципе, в моей «домашней» области, коллоидной химии, под такое направление можно спокойно помещать любое фундаментальное понятие, будь-то адсорбция (с адсорбентами) или адгезия (с клеями). Честно говоря, мысль написать про клей у меня не возникала. Но когда читатели в каждой теме, связанной с полимерами начинают просить рассказать про клеи — об этом поневоле задумаешся (ну и хочется конечно же отпарировать на «все надо клеить суперклеем»). Адгезия и клеи — очень обширная тема, поэтому я все-таки решил за нее взяться, но разбить повествование на несколько частей. Сегодня первая часть — вводно-информационная. Чтобы узнать за счет чего клей клеит, какие бывают клеи и какой клей лучше подходит для склеивания _____ (вписать нужное), традиционно идем под кат (и кладем в закладки).

Читать дальше →
Total votes 166: ↑163 and ↓3+160
Comments155

Python Testing с pytest. Начало работы с pytest, Глава 1

Reading time24 min
Views197K

Вернуться Дальше


Я обнаружил, что Python Testing с pytest является чрезвычайно полезным вводным руководством к среде тестирования pytest. Это уже приносит мне дивиденды в моей компании.

Chris Shaver
VP of Product, Uprising Technology


Читать дальше →
Total votes 31: ↑22 and ↓9+13
Comments2

Бесплатный VPN сервис Wireguard на AWS

Reading time11 min
Views130K

Для чего?


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


Статья 19
Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ

В данном руководстве мы за 6 этапов развернем свой собственный бесплатный* VPN сервис на базе технологии Wireguard, в облачной инфраструктуре Amazon Web Services (AWS), с помощью бесплатного аккаунта (на 12 месяцев), на инстансе (виртуальной машине) под управлением Ubuntu Server 18.04 LTS.


Я старался сделать это пошаговое руководство как можно более дружественным к людям, далеким от ИТ. Единственное что требуется — это усидчивость в повторении описанных ниже шагов.

Читать дальше →
Total votes 59: ↑55 and ↓4+51
Comments135

Hack Your XiaoMi Vacuum Cleaner

Reading time2 min
Views62K
image

Laziness moves the world. And today we have more and more robotic vacuum cleaners that are saving our time for something more pleasant than just vacuuming.

The robots were marketed as internet/Bluetooth/smartphone connected devices with a speaker and camera to report and explore the environment. They also have different sensors to dodge barriers and such. But that’s only some ordinary stuff everyone knows about the robotic vacuum cleaners.
But the most interesting thing about them is their software. The owners can reprogram these devices and implement different settings as well as voice acting that has a huge number of options, including funny ones. And all you need to “upgrade” your vacuum cleaner is a PC, an internet connection, and a smartphone:
Read more →
Total votes 22: ↑20 and ↓2+18
Comments0

Liquibase и Maven

Reading time10 min
Views111K

Введение


Liquibase представляет из себя систему управления версиями базы данных, в основном это касается структуры и в меньшей степени содержимого базы. При этом описание базы с одной стороны достаточно абстрактно и позволяет использовать на нижнем уровне различные СУБД, и с другой стороны всегда можно перейти на SQL-диалект конкретной СУБД, что достаточно гибко. Liquibase является устоявшимся проектом с открытым исходным кодом и активно используется за пределами своей родной Java среды и не требует глубоких знаний Java для работы. В качестве описания структуры базы и изменений базы исторически использовался XML формат, однако сейчас параллельно поддерживается YAML и JSON.


В данной статье мы немного обобщим опыт предыдущих поколений и сосредоточимся на работе с Liquibase с использованием Maven. В качестве тестовой операционной системы будем использовать Ubuntu.

Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments12
1
23 ...

Information

Rating
Does not participate
Registered
Activity