Digitable: Channel
132 subscribers
143 photos
12 videos
3 files
106 links
digitable.ru | Твой путеводитель в разработке ПО, от стажера/джуна до техлида, ex-workers и workers Microsoft, Xsolla, Roadmunk, Adjust, Контур, НЛМК, Т1, Аквелон
Download Telegram
Channel created
Channel photo updated
Привет, %username%, здесь ты научишься полному циклу программиста в разработке ПО.

Команда работающая над этим каналом - это ex/workers из Microsoft, Xsolla, Roadmunk, Иннотех, Контур, Akvelon, НЛМК и прочих

- Софт-скиллы (искусство менеджмента для программиста, дизайнера и так далее)
- Хард-скиллы (от аналитики до коммуникации с заказчиком, разумеется разработка ПО (все виды циклов))

Этот бот является расширением нашего веб-портала digitable.ru

Что тебя ждет:

- Постоянные ссылки на полезные ресурсы, проверенные временем
- Статьи
- Полезные заметки и гайды
- Полный карьерный путь
- Лайфхаки по собеседованиям

Всё будет публиковаться с хештегами по уровням

Цикл полный, а значит это:

- Аналитика
- Дизайн
- Разработка
- Тестирование
- DevOps/SecOps
- System adminitstration
Channel name was changed to «Digitable: Channel»
#updates

Данное сообщение запрос на интересующие Вас темы, пишите комментарием к данному посту, что бы Вы хотели узнать из мира о разработке ПО

Например:

- Интересует стек - javascript, backend
- Хочу узнать больше про SOLID, GRASP, Patterns GoF
- Как строить архитектуру
- Лучшие практики по CI/CD
#all #qa #development #environment #applications #chromeextensions

Есть ряд приложений подлежащих установке на Ваш десктоп

- Insomnia - это своего рода postman, только бесплатный; своего рода curl только с gui; своего рода тула для написания автоматических тестов; также имеет встроенную поддержку git-а, умеет генерировать код запросов;

Одна важная деталь - версия, в которой всё хорошо
Ссылка на скачивание:
https://github.com/Kong/insomnia/releases/tag/core%402023.5.8

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


- (OS X only) Meeting bar:

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

Репозиторий:
https://github.com/leits/MeetingBar
brew:
brew install meetingbar

-
(OS X only) UTM:

Поднимаем виртуалки на макбуке или айфоне из любых iso-образов, под капотом qemu, что позволяет выбирать практически любую архитектуру процессоров, запускает и Windows 95, и NetBSD и Windows 11, и Ubuntu и всё что захотите, в том числе кастомные образы

Вебсайт: https://mac.getutm.app
Репозиторий: https://github.com/utmapp/UTM

- Obsidian:

Ваш персональный Notion, который умеет строить mindmap-ы, синкуется с календарем и создаёт мини-википедию на основе ваших заметок

Вебсайт: https://obsidian.md

- Bpytop:

Сколько раз вам приходится вызывать всякого рода диспетчеры задач? Ради этой тулзы не страшно поставить Python.

Она позволяет в достаточно информативном выводе из терминала узнать что реально творится с вашей системой и что она жрёт

Репозиторий: https://github.com/aristocratos/bpytop

- Хром расширения:

1) Stylus, позволит поменять тему на любом вебсайте, к примеру сделать YouTube чёрным или ту же википедию, https://chromewebstore.google.com/detail/stylus/clngdbkpkpeebahjckkjfobafhncgmne?pli=1

2) Allow CORS, позволит не сталкиваться с траблами CORS при разработке и взаимодействием поверх CORS-ов, так как когда-то году в 21-ом Chrome выпилила флаги позволяющие это всё дело настроить, остаётся только страдать так, https://chromewebstore.google.com/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

3) JSON viewer, предосмотр json-результатов сразу в браузере, https://chromewebstore.google.com/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh

4) Web Highlights, позволяет выделять текст на любых веб-страницах и сохранять их в едином месте, после вы можете через расширение вернуться к этому куску в любое время без необходимости сохранять страницу в избранное целиком и так далее, удобная штука для заметок https://chromewebstore.google.com/detail/web-highlights-pdf-web-hi/hldjnlbobkdkghfidgoecgmklcemanhm

Что понравилось больше всего из списка и что поставил?
Напиши в комментарий 👇🏻
Что-то хочешь порекомендовать? В комментарии! 👇🏻
🔥3
#all #development #brew #osx #macos #environment #tty #terminal

Продолжаем публиковать полезные development-инструменты,
На этот раз список утилит для вашего терминала в паре с brew (https://brew.sh/),

Все команды в списке можно установить, используя brew install

- alacritty - gui под ваш терминал, самый кастомизируемый и быстрый в принципе

- mcfly - утилита по навигации в истории шела (Ctrl + R), написана на Rust

- dust - утилита показывает как много пыли в ваших директориях

- duf - расширение классического du (disk usage)

- bpytop - лучший диспетчер задач и процессов, слегка тормозит, написан на Python

- bat - красивый вывод вашего cat

- exa - красивый вывод с иконками для ls, просто используйте его вместо него либо через alias, либо просто exa -ls, шустрый и написан на Rust

- fzf - быстрый поиск по файлам

- ripgrep - будет хоткеем rg, ищет файлы по содержимому контенту

- gping - заменяет классический ping, показывая график просадки трафика

- ncdu - расширенный du (disk usage), позволяет удалять файлы и перемещаться как в классических файловых менеджерах

- podman - внутри еще будет podman-compose, ваш путь (жаль, что от RedHat) в замену Docker и Docker Compose, отличий вы практически не замените, внутри хостит qemu + fedoraos, имеет gui в виде podman-desktop-companion

- procs - ещё один менеджер процессов, только пошустрее, удобная надстройка по отношению к top

- lf - ваш файловый менеджер в терминале с предосмотром файлов, в том числе показывает скрытые файлы и имеет гибкую конфигурационную систему

- sl - паровозик в терминале, куда ж без него

- tabby - карманная LLM внутри вашей системы, можно подключить в vs code, vim и прочие IDE в качестве альтернативы GitHub Copilot, работает шустро, ставится через


brew install tabbyml/tabby/tabby
tabby serve --device metal --model StarCoder-1B


- tree - вывод директорий и их содержимого в древовидной структуре

- lynx - терминальный браузер, получше w3m

- carbonyl - терминальный браузер с рендером в svg, ставится правда через npm - npm i -g carbonyl

- tmux - менеджер окон, можно настроить тайлинг

- git-delta - позволяет перенастроить вывод git diff в удобночитаемый вывод а-ля книжка или cat

- qutebrowser - vim-оподобный браузер
#medium #development #web #css #javascript #devtools #chromium #browsers

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



Лет 6 назад в DevTools можно было увидеть интересную утилиту - Layers (Слои)

1. Открываем DevTools в Chrome, и включаем классический хоткей Ctrl + Shift + P или Command + Shift + P
2. Далее мы видим что-то вроде dmenu/rofi/spotlight и так далее
3. В ней нам интересно вбить "Слои" или "Layers"

На скриншоте пример - слои YouTube

Как это может быть полезно?

Вы понимаете лучше практики по организации масштабов, позиционирования, а также верного направления Ваших компонентов

К примеру в случае с Wikipedia - слой там один, ну еще кнопка находится одна на верхнем слое, в других случаях Вы можете наблюдать отступы и правила, которыми оно задано

Также Google хочет убрать эту feature в deprecated, поэтому вовремя извлеките её например здесь (https://stackoverflow.com/questions/47558844/is-it-possible-to-see-layers-in-firefox), где чел написал кусок кода для отображения страницы сллоями в Webkit (в комментариях будет код, вставьте в консоль любой вкладки и вертите страницу как хотите)

Подробный гайд по Chrome Layers ещё можно найти тут (на англ.) https://youtu.be/6je49J67TQk

Более подробная статья по коду из комментария тут (на англ.) - https://blog.scottlogic.com/2012/03/09/explodz-a-webkit-dom-visualizer.html

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
#medium #development #web #html #javascript #browsers #news

Сегодня короткий пост на тему реализации модальных окон без Javascript, на чистом HTML + CSS.
Раньше приходилось писать ужасный обвяз вокруг перекрытий, а теперь больше не нужно

Пример кода


<button popovertarget="mypopover">Toggle Popover</button>
<div id="mypopover" popover>Popover Content</div>


Правила использования

1. Use title if the content in my popover is just text.
2. Use the popover attribute if the content is more than plain text and like a menu of options or something.
3. Use <dialog> if you need to force the user to make a decision or block all other interactions on the page.

К примеру, вы можете теперь реализовывать контекстные меню также просто


<button id="menu-toggle" popovertarget="menu-items">
Open Menu
</button>

<ul id="menu-items" popover anchor="menu-toggle">
<li class="item">...</li>
<li class="item">...</li>
</ul>


Пример на codepen по базовому использованию: https://codepen.io/chriscoyier/pen/XWQwjPY/8c499122e4ab74c76d4997e1ce8a3ce6

Коллекция примеров: https://codepen.io/collection/ExkRWw

Из заметок: обновите Chrome до последней версии, к примеру на предыдущей сборке 124.0.6367.119, оно не работало должным образом, поэтому нужна бета 125-ая

Тут можно узнать про обновление https://developer.chrome.com/blog/chrome-125-beta


Официальная документацию тут: https://developer.mozilla.org/en-US/docs/Web/API/Popover_API/Using

Веб-сайт показывающий логику позиционирования: https://anchor-tool.com/

Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
#all #development #git #svc #pullrequests #documentation #decomposition #taskbehaviour #selfmanagement #selforganisation #problemsolving #transperancy #roadtosenior

Крайне часто нам приходится сталкиваться с тем, чтобы открывать Pull Requests / Merge Requests и прочее,

Однако мысль разработчика "моя работа заканчивается после того как я сделал пуш" в корне ошибочна,

Представьте себя в роли доставщика продуктов.

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


- Борщ
- Чай (если нет зеленого, то взять черный)
- Хлеб (если нет черного, то не брать вообще)


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

Как с этим всем работать и правильно оформлять Pull Requests и работать с задачами? 👇
Полный разбор подхода в закрепленном комментарии к этому посту.


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru/



Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
#medium #development #os #nasm #yasm #qemu #virutal #x86 #assembly #brew

Чтобы написать вашу первую программу (а именно операционную систему, но на уровне bootloader) вы можете воспользоваться NASM (Netwide Assembler) под архитектуру x86

Мне, к примеру, нравится больше переписанная реализация с более широким списком архитектур YASM (https://yasm.tortall.net/), но для начала вам хватит и NASM.

В чём он хорош?

- BSD License
- Простой и понятный синтаксис

Ставим компилятор и виртуализатор (qemu), для примера будет использоваться brew:


brew install nasm qemu


Далее берём код из закрепленного комментария к этой публикации и закидываем в boot.asm файл

Компилим




Запускаем




Наслаждаемся, команда вывода в последней строке после msg

Как залить в Live USB?


sudo dd if=boot.com of=/dev/sdb bs=512 count=1


Статья в Википедии про синтаксис (англ.): https://en.wikibooks.org/wiki/X86_Assembly/NASM_Syntax
Статья в Википедии о технологии (рус.): https://ru.wikipedia.org/wiki/NASM
Руководство с metanit на русском: https://metanit.com/assembler/nasm/
Официальный веб-сайт: https://www.nasm.us/


Код на nasm в закрепленном комментарии к этому посту.

А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog , а еще разные услуги можно найти в нашем интернет-магазине https://digitable.ru/


Ставьте Ваши реакции и задавайте вопросы в комментариях, они помогают стать нам лучше! 👇
🔥2
#advanced #development #emails #dovecot #postfix #nginx #unix #linux #ubuntu #roundcube #spf #dkim #dmarc #dns #administration #devops

Как развернуть свой email-server?

А зачем вообще нужно поднимать свой собственный?
Всё просто - не нужно платить за то, что вы можете настроить сами и пользоваться на том же уровне, что вам и предлагают за услугу.
К примеру, Digital Ocean (#digitalocean) не позволяет вам использовать собственный email-server, а продаёт Sendgrid.

Свой email-server обеспечивает как в локальной, так и в открытой сети Интернет возможность отправлять письма.
То есть, к примеру, вы купили домен myawesome.ru, как теперь сделать почту admin@myawesome.ru?
Или того хуже, вам нужна почта только в локальной сети и без доступа к интернету на основе LDAP или AD и без лишних танцев с бубнами?

Немножко суммаризируем:
- Из достоинств:
- Self-hosted, вы сами управляете вашим сервером и не ждете поддержки. Яркий кейс, что случилось у cloudpit (#cloudpit) , после обновления dmarc, Google (#google) помечает все письма с их сервиса как спам. Вы продолжаете платить деньги и ждёте когда вам кто-то ответит на почте или решит вашу проблему.
- Из недостатков:
- Кривые руки и вы похоронили всю систему

Что же использовать и почему?
Есть такая связка из открытых инструментов:

- Postfix (#postfix), https://www.postfix.org, под IBM Public License (#ibmpubliclicense), - свободный и open-source (#opensource) агент отправки электронной почты.
- Dovecot (#dovecot), https://www.dovecot.org/, под MIT (#mit) и LGPLv2 (#lgplv2), - open-source (#opensource) IMAP (#imap) и POP3 (#pop3) сервер для Unix-like (#unixlike) систем, написанный с безопасностью из коробки.
- Roundcube (#roundcube), https://roundcube.net/, под GPL-3.0-or-later с исключениями под скины и плагины (#gpl3), - почтовый бразуерный IMAP клиент, свободный и open-source (#opensource).
- Apache SpamAssassin (#spamassassin #apache), https://spamassassin.apache.org/, под Apache License 2.0 (#apachelicense2), фильтрует спам с большим разнообразием техник.

Пошаговый гайд по настройке на свеженькой убунте-бубунте-22.04 и коллекция полезных ссылок будут в закрепленном комментарии к данной публикации


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще саму настройку email-сервера можно заказать в нашем магазине https://digitable.ru

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

Have a fun!
🔥2
#medium #development #emails #dovecot #postfix #nginx #unix #linux #ubuntu #roundcube #spf #dkim #dmarc #dns #administration #devops #aapanel

Как развернуть свой email-server и поднять hosting panel? (часть вторая с графическим интерфейсом)

Сегодня разберём использование https://github.com/aaPanel/aaPanel - open-source с китайской лицензией. Это очередная панель, как вы могли привыкнуть к ISPManager, CPanel, ISPanel и прочее, но устанавливается проще, а также бесплатная, с опцией перейти на платные плагины и прочее

Устанавливаем на голую Ubuntu 22.04

Для начала не забудьте удостовериться, что в /etc/resolv.conf есть nameserver 8.8.8.8 - DNS от Google

После идём и ставим aapanel через


URL=https://www.aapanel.com/script/install_6.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_6.0_en.sh "$URL";fi;bash install_6.0_en.sh aapanel


Пошаговый гайд по настройке на свеженькой убунте-бубунте-22.04 и коллекция полезных ссылок будут в закрепленном комментарии к данной публикации


А если хочешь чаще читать наши публикации и быть в курсе вообще всего, то для доступа к нашим публикациям переходи в канал @digitable_blog

А еще саму настройку email-сервера можно заказать в нашем магазине https://digitable.ru

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