uFeed
170 subscribers
65 photos
1 video
127 links
Краткость - сестра таланта 😏

Автор: @amd_nick
Сотрудничество: @mukbog
Download Telegram
🤩 «Все успешные люди — склонные к риску оптимисты»
Интервью с психологом. Люблю такое

Концентрат того, о чем пишут целые книги

- Почему предприниматели рискуют
- Как влиять на чужие решения
- Call-out culture и психология толпы
- Как ИИ изменит мир
- Почему нельзя наказывать за плохой результат

Кстати, можете поискать канал "Психология маркетинга", где каждый день появляются подобные размышления расширенно

https://incrussia.ru/understand/daniel-kahneman/
🔑 Зачем переходить на ED25519 для SSH ключей

ssh-keygen по умолчанию использует RSA шифрование, которое менее устойчиво. ED25519, если я правильно понял, основан на blowfish (алгоритме, который очень медленно брутфорсится), хотя сами ключи намного короче

https://medium.com/risan/upgrade-your-ssh-key-to-ed25519-c6e8d60d3c54
👶 Искусственная жизнь. Код-геном

Дает понимание, как без особых навыков написать свой мини-мирок, который будет сам жить и развиваться. С картинками 🖼 :)

https://habr.com/ru/post/418545/
🖼 Любимый компрессор изображений

+ Онлайн
+ Куча настроек
+ Быстрый предпросмотр результата
+ Сразу показывает процент сжатия
+ Минималистично
- Одновременно работает только с 1 фото

https://squoosh.app/ #tool
🤖 Telegram бот без сервера

1. Создаем бота в @BotFather
2. Пишем код в Google Apps Script
3. Сохраняем скрипт, как веб приложение
4. Полученный адрес указываем вебхуком бота

http://ocordova.me/blog/telegram-bot-with-apps-script
Решил устроить себе отдых на несколько дней и очередь для чтения закончилась :)

Вы можете сделать свой вклад и помочь мне наполнять канал, отправляя публикации в таком же стиле (заголовок, вкратце, ссылка) ему: @mukbog, а я опубликую их здесь

Если получится собрать здесь 300 подписчиков, тогда напишу бот-предложку, где через форму можно будет делать посты, а авторы будут упоминаться в сообщении. Получится свободный канальчик 😇
😕 Почему в воскресенье грустно

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

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

https://vk.com/@tednarusskom-nevroz-vyhodnogo-dnya-kak-otdyh-prevraschaetsya-v-stradanie
🔍 Анализ трафика iOS приложений

Я использовал mitmproxy (первое в списке) для анализа KidControl. Удобный cli, претензий нет.

А сам KidControl по себе удобный для отслеживания семьи, но абсолютно не оптимизирован. Кстати, напишите, пожалуйста @mukbog, если используете похожие приложения

https://habr.com/ru/post/421493/
⚠️ Свежая уязвимость. Запуск sudo от имени root, даже если это запрещено

sudo - программа для выполнения команд от имени другого пользователя. Чаще всего root, если это не ограничено. Уязвимость позволяет обойти ограничение и выполнить действие от root

sudo -u#-1 cmd

https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html
🧱 Паттерны проектирования
Шаблоны для решения популярных задач при разработке

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

https://refactoring.guru/ru/design-patterns/catalog
🏭 Карринг

Способ превратить первый код во второй. Позволяет делать "срез" функции, извлекая с изначальной новую с предустановленной частью параметров

https://revelry.co/function-curry/
Помощь функциональщикам

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

https://ramdajs.com/docs/
⚙️ Говоря о функциональном программировании

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

Основными функциями по моим наблюдениям являются map, curry, compose, flatten, reduce и простые математические и это лишь малая часть

ФП часто противопоставляют ООП'у и тут уже был пост с мнением функциональщика о том, почему ООП - зло
⚙️ Хорошая вводная статья в ФП

Объясняются азы парадигмы и дается несколько примеров с map, reduce, filter. Бегло просматривается за пару минут

https://medium.com/the-renaissance-developer/concepts-of-functional-programming-in-javascript-6bc84220d2aa
🎮 Идея для владельцев игровых серверов
Оптимизация расходов на хостинг

- Уже была идея с запуском нового сервера и "незаметным" перекидыванием игроков. Мало игроков - сидим на одном железе. Больше - на другом,
- И платить за парк серверов сразу?
- Нет, только за 2 в момент перехода, и за 1, когда процесс завершили.
- А как быть с развертыванием сборки?
- Этим занимается Amazon. У них есть решения для подобного
- Но в пике получится $Over9000
- Зато при простое почти даром выйдет. Вообще, самым актуальным это бы было в связке с SpatialOS и Minecraft

By @IVogel
🕳 6 неочевидных дыр в JS приложении
В целом, ничего особого, но мне понравилась идея с onerror в img

1. Код восстановления в СМС должен быть длинным, чтобы его не подобрали. От себя добавлю, что СМС часто отображаются на экране блокировки и при физическом доступе к телефону можно получить код
2. Ссылка восстановления в Email. Хэш монго можно подобрать
3. Пути к файлу в ссылке, если правильно понял. Правильное экранирование ".."
4. Популярные модули могут быть уязвимы. Используйте npm audit
5. Массовая загрузка файлов через архив. Заархивировать symlink направленный на серверный конфиг, залить архив, он decompress() в "альбом", переходим в него, скачивается файл по симлинку
6. Визуальные редакторы, типа tinymce позволяют инжектить картинки с JS в onerror колбеке (XSS)
7. еще до 14 общих уязвимостей

https://www.slideshare.net/JSFestUA/js-fest-2019-6-javascript
📁 Tabnapping уязвимость

Ворует данные из соседней вкладки, которую создает

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

Как эсплуатировать не узнавал, а предотвращается через rel=“noopener” и rel=“noreferrer” там, где есть теги с target=“_blank”

https://medium.com/@shatabda/security-tabnabbing-what-how-b038a70d300e
⚙️ "Итак, вы хотите научиться функциональному программированию"
Собрал выжимку с 6 связанных статей. Возможно, последний пост на эту тему, чтобы не надоедать вам 🙂

1️⃣ Часть первая
- ФП заставит вас учиться "программировать заново". Мозг будет отторгать его
- В ФП нет переменных. Есть константы. Переменные в ФП не перезаписываются

2️⃣ Часть вторая
- Что такое функции высшего порядка и замыкания. Полезно для понимания каррирования

3️⃣ Часть третья
- Композиция функций. Составление общих функции из нескольких специализированных (у меня это ассоциируется с конвейером)

4️⃣ Часть четвертая
- Каррирование. Совсем кратко писал выше
- Примеры map, filter, reduce. Map изменяет значения в списке, filter оставляет по критериям, reduce сводит все к одному

5️⃣ Часть пятая
- Избегаем многопоточности (там хороший пример почему)

6️⃣ Часть шестая, ура
Советы для Js разработчиков: попробовать Rambda библиотеку (писал тут) или даже Elm — язык, компилируемый (транспилируемый) в Js, заточенный под ФП