Dev Tools
3.4K subscribers
1 photo
220 links
Предложить материал: @developer_tools_suggestion_bot

По вопросам рекламы: @account_managerTG

Авторы: @katetheriver
Download Telegram
​​DuckDuckGo

Даже не думал писать про этот поисковик, так как мне казалось что о нем уже все вкурсе.
По процентному соотношению DuckDuckGo занимает меньше 0.4%.
DuckDuckGo - поисковик который позиционирует себя как полностью анонимный, он не собирает о вас информацию, не хранит историю итд.
Наглядная разница с гугл видна на запросах вроде "кофейня"

DuckDuckGo - отдает какие-то форумы, приложения итд
Google- интересные для вас кофейни рядом с вашей гео.

Попробуйте пару дней пользовать DuckDuckGo в быту, очень ощутима разница.
В DuckDuckGo есть реклама, но в отличии от google, она основана на исключительно одном запросе, а не вашем профайле собраном со всех Google площадок.
Больше про DuckDuckGo почитайте на их сайте.

DuckDuckGo это более обьективный интернет, одинаковый для всех, а не собраный индивидуально под вас.

📌P.S.Если тема с поисковиками вам интересна, могу потом рассказать, о там как они работают и на чем основана выдача вам материала.
​​Hyper Terminal

A terminal built on web technologies

hyper - много раз мне присылали его на обзор.
На картинках выглядит круто, а на деле - очередная оболочка.
Есть довольно большое комьюнити людей, в связи с чем огромное к-во плагинов.
Для себя я не нашел ничего нового, чего нельзя было бы найти в tmux и zsh.

P.S. Если у тебя есть чем поделиться, пиши: @developer_tools_suggestion_bot
​​asdf

Manage multiple runtime versions with a single CLI tool

asdf - неплохая реализация инструмента для контроля версий.
Есть куча поддерживаемых языков и удобная работа с ними.
Если приходится часто работать с версиями, asdf выглядит как неплохое решение.
​​Key Promoter

Один из моих любимых плагинов под zsh это tipz, который подсказывает доступные алиасы.
В Jetbrains есть свой - key promoter который дает небольшое уведоление, если на твое действие в IDE уже есть хоткей.
Очень удобно.
​​Bash built-ins

Возможно для многих эта информация будет в новинку.

Внутри shell есть built-in команды и програмные команды.

На примере bash:
ping - программа, cd - built-in.

Для пользователя все выглядит одинаково.
Обе команды доступны уже с момента установки системы.

built-in команды можно поделить на три типа:
- Команды как части shell language: break, return, eval, exit
- Команды которые работают с "внутренностями" shell-a- cd, dirs, fg, bg, hash, history
- Команды которые сделаны built-inами для лучше работоспособности echo, test, true, false

Built-in команды работают быстрее нежели те, которые вызывают программу.
Список для bash built-ins можно глянуть тут, в то время как в других более современных shell-ах вроде zsh, elv.sh и fish этот список больше.
​​Find HTML Anchor

Ранее я писал про сниппеты в Chrome.
Этот сниппет находит ближайший к кликнутому елементу якорь на странице и возвращает ссылку.
В некоторых случаях может быть полезно, что бы не лезть в код страницы.
Какими браузерами пользуетесь?
(Можно выбрать несколько)
Anonymous Poll
70%
Chrome
13%
Chromium
5%
Edge
12%
Safari
6%
Brave
16%
Opera
50%
Firefox
4%
Vivaldi
9%
Yandex
3%
Selenium
​​Привет!

Решили расшириться, так что знакомьтесь,

@dev_quiz - канал для "самотестирования". Тут можно проверить свои знания и просто отдохнуть.
@dev_daily - айтишный абсурд и жиза для разработчика.

Тема с интернет безопасностью пока остается открытой.
Возможно буду писать об этом на @developer_tools, а может уйдет в отдельный канал.

Каналу недавно исполнился один год, спасибо каждому кто читает канал и отдельное спасибо тем, кто с DevTools с самого начала, а также тем, кто присылает материалы и помогает развитию канала!
​​Strange Public API

Как-то пришлось реализовать распознавание пола по имени и наткнулся на следующие сервисы:
https://genderize.io/ - определяет пол по имени
https://nationalize.io/ - определяет национальность по имени
https://agify.io - определяет возраст по имени

Как работают первые два я еще могу понять, но осознать третий - никак.
Если есть идеи как определить возраст по имени то го в комменты к этому посту)
​​TamperMonkey

userscript manager

tampermonkey - очень крутой браузерный extension для того что хранить и запускать javascript-ы в браузере.
Доступен для Chrome, Edge, Safari, Opera, Firefox.

Из того что пока выделил для себя я:
- Возможность ранить и сохранять скрипты по желанию (гораздо удобнее чем Chrome Snippets)
- Возможность настраивать скрипты для автоматического запуска на урлах
Обязательно попробуйте если любите покапаться в коде страницы и умеете в js.
​​Rick and Morty in terminal

Продолжаем переосмысливать старые статьи.
Я не являюсь поклонником MyLittlePony, потому альтрернатива в виде рика и морти меня очень порадовала.
Все еще считаю эти пакеты безсмысленными, но круто что есть вариации.
​​Тренды Github

За последние полгода, вижу рост популярности всяких spy инструментов в трендах github-a.
Начиная от поиска человека по фото в соцсети, до программ которые в реальном времени вырезают человека с видеоряда.
Популярность набирают даже либы которые топорно ищут юзернейм в соцсетях, вроде sherlock.
Спрос рождает предложение ¯\_(ツ)_/¯.
​​Copy request as a cURL

У Chrome Developer Tools есть одна очень маленькая но безумено полезная фича.
Правым кликом на запрос можно скопироваь его в виде cURL со всеми cookies, headers итд.
А потом с помощью curltrill можно преобразовать в код-семпл на большинство ЯП.
Очень удобно когда приходится работать с сайтами, которые не отдают респонс без пары нужных хедеров.
​​Привет
Готовлю для вас крутой материал про git.
Разберем все что находиться внутри, как все работает.
Что такое референсы, метки, head, индексы, бранчи с технической точки зрения.
Думаю на днях закончу собирать все в кучу и начнем.
​​DeepGit: Plumbing и Porcelain - введение.

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

Изначально git был больше инструментом для создания VCS чем непосредственно VCS.
Знакомый нам git в виде git add, git commit, git merge итд это "высокоуровневые" врапперы над низкоуровневыми командами вроде git update-index, git hash-object, git cat-file и других.

Вся "магия" гита спрятана внутри папки .git и представляет собой своего рода файловую систему с файлами и папками.

Что у нас появляется внутри папки .git после создания:
 tree -a
.
└── .git
├── branches
├── config
├── description
├── HEAD
├── hooks
│ ├── applypatch-msg.sample
│ ├── commit-msg.sample
│ ├── post-update.sample
│ ├── pre-applypatch.sample
│ ├── pre-commit.sample
│ ├── prepare-commit-msg.sample
│ ├── pre-push.sample
│ ├── pre-rebase.sample
│ └── update.sample
├── info
│ └── exclude
├── objects
│ ├── info
│ └── pack
└── refs
├── heads
└── tags
Упустим пока все файлы кроме основных: HEAD, index, objects, refs.

refs - папка содержит ссылки на обьекты коммитов.
objects - папка git-обьектов
index - содержимое индекса
HEAD - содержит ссылку на актуальное состояние.

Остальные папки вроде hooks которае содержит "тригеры" на на различные действия или папка config с доп настройками для этой репы не являются частью "двигателя" гит.

В следующей статье мы разберемся какие есть виды обьектов внутри гита, что они хранят итд.
Forwarded from Dev Daily
Еще до того, как это стало мейнстримом 😎@dev_daily
​​IdeaVim

Не люблю когда IDE начинают "косить" друг под друга.
Есть весьма суверенный редактор - вим, зачем его интегрировать в jetbrains?
Или зачем из vim делать jetbrains обвешивая его сотнями функциональных расширений.

Есть ли тут люди которые пользуются этим или подобными расширениями?

P.S. Последние пару дней был очень загружен и не успел дописать вторую часть про .git.
Думаю следующая статья уже выйдет о нем. Если пропустили первую, то вот ссылка.
​​DeepGit: Hashing and Cating. Понимаем файловую систему.

Ч1

Как я говорил ранее, Git это файловая система основой которой являются файлы типа tree, commit, blob.
Подробнее о типах файлов у меня вышла статья на DevQuiz.
Рекомендую прочесть ее и вернуться сюда.

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

Чтобы добавить файл в git есть техническая команда git hash-object -w filename.txt она делает blob файл с вашими данными и сохраняет себе в objects.

После этого git status все еще будет пуст, так как индекса еще нет, но git уже сохранил себе версию этого файла.
Именно эта команда лежит в основе гита, это такой себе "save" ваших данных.

Например вы сделали
 echo "first version" >  new_file.txt
git hash-object -w new_file.txt

У вас появляется файл new_file.txt с текстом first version и появляется файл de8d69c9026be2a49f540fda12f3e755a33e6c в папке 22 с таким же текстом.

Следом мы делаем
 echo "second version" > new_file.txt
git hash-object -w new_file.txt

У нас появляется доп файл 7ac37bb280ccd34b350a59ba440614d9106e41 в папке ad с текстом second version

Теперь с помощью git cat-file -p 22de8d69c9026be2a49f540fda12f3e755a33e6c > new_file.txt можно переключиться на старую версию.

И все это происходит до того как вы сделали git add.
Все еще с пустым индексом.