git rm --cached
Что это за команда, что делает, зачем она вообще нужна⁉️
🖊📚📗🗂📎
Разберем такой кейс. У вас есть проект, вы там работаете, комитите что-то, пушите и т.д. И в один момент вам понадобилось чтобы файл README.txt например, перестал отслеживаться гитом. То есть чтобы вы вносили в него правки, но изменению не отображались. Для этого вы добавляете этот файл в .gitignore, но чуда не происходит. Даже несмотря на то что он теперь в игноре, изменения в нем все равно отображаются. Почему так происходит и как сделать чтобы работало так как надо?
⚙️⚙️⚙️⚙️⚙️
Все очень просто. Git устроен так что если какой либо файл уже попал в индекс (то есть уже однажды был закомичен) то он продолжит отслеживать этот файл несмотря на .gitignore. Чтобы исключить его из отслеживания есть 2 пути.
1️⃣ - ну такое. Это костыльный вариант, хотя многие именно так и делают. Нужно удалить файл который вы хотите прекратить отслеживать, затем закомитить его удаление, затем добавить этот файл в .gitignore и уже после этого можете вернуть этот файл обратно и вот после этого он перестанет отслеживаться гитом.
2️⃣ - более правильный и продвинутый метод - это использовать команду git rm --cached. Что делает эта команда - она удаляет файлы переданные ей из индекса. То есть после того как вы сделаете git rm --cached README.txt гит выпилит этот файл из индекса и он будет отображаться как какбудто только что созданный и еще ни разу ни закомиченный. После этого можно уже добавить этот файл в .gitignore и продолжить работу. README.txt больше не отслеживается. Согласитесь что это выглядит намного профессиональнее.
⚠️ P.S. GIT супермощьная штука и крайне важная в командной разработке, его надо знать хорошо. 👨🏫
Что это за команда, что делает, зачем она вообще нужна⁉️
🖊📚📗🗂📎
Разберем такой кейс. У вас есть проект, вы там работаете, комитите что-то, пушите и т.д. И в один момент вам понадобилось чтобы файл README.txt например, перестал отслеживаться гитом. То есть чтобы вы вносили в него правки, но изменению не отображались. Для этого вы добавляете этот файл в .gitignore, но чуда не происходит. Даже несмотря на то что он теперь в игноре, изменения в нем все равно отображаются. Почему так происходит и как сделать чтобы работало так как надо?
⚙️⚙️⚙️⚙️⚙️
Все очень просто. Git устроен так что если какой либо файл уже попал в индекс (то есть уже однажды был закомичен) то он продолжит отслеживать этот файл несмотря на .gitignore. Чтобы исключить его из отслеживания есть 2 пути.
1️⃣ - ну такое. Это костыльный вариант, хотя многие именно так и делают. Нужно удалить файл который вы хотите прекратить отслеживать, затем закомитить его удаление, затем добавить этот файл в .gitignore и уже после этого можете вернуть этот файл обратно и вот после этого он перестанет отслеживаться гитом.
2️⃣ - более правильный и продвинутый метод - это использовать команду git rm --cached. Что делает эта команда - она удаляет файлы переданные ей из индекса. То есть после того как вы сделаете git rm --cached README.txt гит выпилит этот файл из индекса и он будет отображаться как какбудто только что созданный и еще ни разу ни закомиченный. После этого можно уже добавить этот файл в .gitignore и продолжить работу. README.txt больше не отслеживается. Согласитесь что это выглядит намного профессиональнее.
⚠️ P.S. GIT супермощьная штука и крайне важная в командной разработке, его надо знать хорошо. 👨🏫
Вторая серия про побитовые операции
Сегодня посмотрим на исключающее ИЛИ (^)
⚠️⚠️⚠️
Суть исключающего ИЛИ в том, что оно дает единицу только в том случае, если только один из операнодов единица.
✍️📝✏️
Давайте рассмотрим на примере 3 ^ 4. Далее смотрим на картинку. Сначала представим тройку и четверку в двоичном виде. Получаем 011 и 100. Затем сравниваем поочереди каждый бит с соответствующим и записываем 1 если только один из сравниваемых битов это единица, в остальных случаях записываем ноль. Получается 111, что будет 7 если перевести в десятичную систему. Итого 3 ^ 4 = 7.
‼️⁉️❌
У исключающего ИЛИ есть одна интересная особенность. Это полностью обратимая операция. То есть если к результату первого нашего примера еще раз применить исключающее ИЛИ с тем же операндом, то в результате мы получим исходное число. Вот так 7 ^ 4 = 3.
🉐🉐㊙️㊗️
Это как говорят можно применить в простейшей шифрограмме. То есть один человек например перводит текст в числа и делает над ними операцию исключающего ИЛИ с каким то заранее договоренным числом. Затем тот хочет прочитать это, делает еще раз исключающее ИЛИ с этим же числом и получает в результате исходный текст.
🧮📏📐
Вот например я при помощь метода JS charCodeAt() и операнда 5 закодировал некоторую фразу. Кому интересно можете раскодировать ее.
Сегодня посмотрим на исключающее ИЛИ (^)
⚠️⚠️⚠️
Суть исключающего ИЛИ в том, что оно дает единицу только в том случае, если только один из операнодов единица.
✍️📝✏️
Давайте рассмотрим на примере 3 ^ 4. Далее смотрим на картинку. Сначала представим тройку и четверку в двоичном виде. Получаем 011 и 100. Затем сравниваем поочереди каждый бит с соответствующим и записываем 1 если только один из сравниваемых битов это единица, в остальных случаях записываем ноль. Получается 111, что будет 7 если перевести в десятичную систему. Итого 3 ^ 4 = 7.
‼️⁉️❌
У исключающего ИЛИ есть одна интересная особенность. Это полностью обратимая операция. То есть если к результату первого нашего примера еще раз применить исключающее ИЛИ с тем же операндом, то в результате мы получим исходное число. Вот так 7 ^ 4 = 3.
🉐🉐㊙️㊗️
Это как говорят можно применить в простейшей шифрограмме. То есть один человек например перводит текст в числа и делает над ними операцию исключающего ИЛИ с каким то заранее договоренным числом. Затем тот хочет прочитать это, делает еще раз исключающее ИЛИ с этим же числом и получает в результате исходный текст.
🧮📏📐
Вот например я при помощь метода JS charCodeAt() и операнда 5 закодировал некоторую фразу. Кому интересно можете раскодировать ее.
109 96 105 105 106 37 114 106 119 105 97
Минутка абсурда
Или почему в MYSQL кодировка UTF-8 на самом деле не UTF-8
🧭⏱⏲⏰🕰⌛️⏳💰
Этот небольшой материал возможно сохранит вам в будущем пару часов мануалов и гугления. Все дело в том что если вы попытаетесь в MYSQL сохранить эмодзи символы, то скорее всего у вас не получится. Потому что как большинство нормальных людей при создании таблицы вы указали ей кодировку UTF-8. Как известно эмодзи символы состоят из 4 байт в отличии от например букв алфавита, которые состоят из 2 байт. И все бы ничего ведь кодировка UTF-8 поддерживает четырехбайтные символы, но дело в том что в MYSQL кодировка UTF-8 не является таковой, так как по известным только создателям причинам они решили ее урезать и теперь в MYSQL она поддерживает только 3 байта максимум 🤦♂️🤦♀️🤣. По этому когда вы захотите сохранить четырехбайтную строку типа эмодзи, то получите что то типа:
Чтобы решить созданную самими же проблему, была сделана кодировка utf8mb4, которая уже и есть настоящая UTF-8 и поддерживает четырехбайтные строки.
⚠️Если вы планируете хранить в базе смайлики, то указываете кодировку utf8mb4.
Или почему в MYSQL кодировка UTF-8 на самом деле не UTF-8
🧭⏱⏲⏰🕰⌛️⏳💰
Этот небольшой материал возможно сохранит вам в будущем пару часов мануалов и гугления. Все дело в том что если вы попытаетесь в MYSQL сохранить эмодзи символы, то скорее всего у вас не получится. Потому что как большинство нормальных людей при создании таблицы вы указали ей кодировку UTF-8. Как известно эмодзи символы состоят из 4 байт в отличии от например букв алфавита, которые состоят из 2 байт. И все бы ничего ведь кодировка UTF-8 поддерживает четырехбайтные символы, но дело в том что в MYSQL кодировка UTF-8 не является таковой, так как по известным только создателям причинам они решили ее урезать и теперь в MYSQL она поддерживает только 3 байта максимум 🤦♂️🤦♀️🤣. По этому когда вы захотите сохранить четырехбайтную строку типа эмодзи, то получите что то типа:
Incorrect string value: '\xF0\x9F\x93\x9E \xF0...' for column 'data' at row 1🚴♀️🦿🧠🦽🦼👏
Чтобы решить созданную самими же проблему, была сделана кодировка utf8mb4, которая уже и есть настоящая UTF-8 и поддерживает четырехбайтные строки.
⚠️Если вы планируете хранить в базе смайлики, то указываете кодировку utf8mb4.
Чистый код
⚠️👍Передача логического значения функции — воистину ужасная привычка. Она немедленно усложняет сигнатуру метода, громко провозглашая, что функция выполняет более одной операции.
©️Р. Мартин, «Чистый код»
➖➖➖➖➖➖
Наткнулся на статью, озаглавленную вот этой цитатой. И очень удивился почему не обратил на нее внимания при прочтении, цитата то ведь шикарная. И вправду не смог вспомнить случая когда передача булевого значения делала бы что то хорошее. Не долго покопавшись в коде нашел примерчик. И еще раз убедился в правоте. Ведь действительно в коде вызов будет гораздо более читаемым, сравните сами
⚠️👍Передача логического значения функции — воистину ужасная привычка. Она немедленно усложняет сигнатуру метода, громко провозглашая, что функция выполняет более одной операции.
©️Р. Мартин, «Чистый код»
➖➖➖➖➖➖
Наткнулся на статью, озаглавленную вот этой цитатой. И очень удивился почему не обратил на нее внимания при прочтении, цитата то ведь шикарная. И вправду не смог вспомнить случая когда передача булевого значения делала бы что то хорошее. Не долго покопавшись в коде нашел примерчик. И еще раз убедился в правоте. Ведь действительно в коде вызов будет гораздо более читаемым, сравните сами
//getUserId() и getLevelAcces() понятно, а вот что за true!?
getSome(getUserId(), getLevelAcces(), true);
//ну тут все ясно
getSomeAll(getUserId(), getLevelAcces());
Запутываем код еще больше
☝️🧙♂️
Наверное в каждом языке есть свои интересные фичи. Когда впервые про них узнаешь они кажутся очень классными и так и хочется их использовать в своем проекте. Сегодня о таких фичах и поговорим. Для примера возьму магические методы в PHP, а конкретно __invoke.
🔨🔧💻🔬🔭
То что хотелось бы донести - это то что в абсолютном большинстве случаем, когда я встречал такие фичи в коде, они были абсолютно не оправданы и только усложняли понимание написанного. Все это можно было бы написать тривиальными методами и это было бы в разы понятнее. Но судя по всему автор увидел интересную фишечку и непременно решил ее использовать, не смотря на то нужна ли она или нет. Могу сравнить это только с тем как забивать гвозди микроскопом. Результат то будет возможно и одинаковый, но блин зачем?
❇️❇️❇️
Вот на первой картинке кусок кода. Понять его не так то просто, не правда ли. Его реализация на второй картинке. А теперь представьте что классов может быть не только One и Two, а например таких классов может быть пять и они разбросаны по всему проекту. И конечно же они не объявляются там где используются, а приходят в виде параметра как на третей картинке. Уверяю вы проведете незабываемое время за разгадыванием того как же работает этот код, и что он вообще делает?
✏️📝✅🛂🔰
Что хочу сказать, давайте использовать определенные инструменты если они действительно нужны. И всякий раз думать а насколько будет понятен мой код если я использую тот или иной инструмент.
☝️🧙♂️
Наверное в каждом языке есть свои интересные фичи. Когда впервые про них узнаешь они кажутся очень классными и так и хочется их использовать в своем проекте. Сегодня о таких фичах и поговорим. Для примера возьму магические методы в PHP, а конкретно __invoke.
🔨🔧💻🔬🔭
То что хотелось бы донести - это то что в абсолютном большинстве случаем, когда я встречал такие фичи в коде, они были абсолютно не оправданы и только усложняли понимание написанного. Все это можно было бы написать тривиальными методами и это было бы в разы понятнее. Но судя по всему автор увидел интересную фишечку и непременно решил ее использовать, не смотря на то нужна ли она или нет. Могу сравнить это только с тем как забивать гвозди микроскопом. Результат то будет возможно и одинаковый, но блин зачем?
❇️❇️❇️
Вот на первой картинке кусок кода. Понять его не так то просто, не правда ли. Его реализация на второй картинке. А теперь представьте что классов может быть не только One и Two, а например таких классов может быть пять и они разбросаны по всему проекту. И конечно же они не объявляются там где используются, а приходят в виде параметра как на третей картинке. Уверяю вы проведете незабываемое время за разгадыванием того как же работает этот код, и что он вообще делает?
✏️📝✅🛂🔰
Что хочу сказать, давайте использовать определенные инструменты если они действительно нужны. И всякий раз думать а насколько будет понятен мой код если я использую тот или иной инструмент.
Что то я отстал от геймдева)
👨🦯🧙♂️👨🦳
Причем отстал так не хило, похоже что на целую вечность. А именно - вчера случайно наткнулся на новость что GTA V теперь раздают бесплатно. И больше из любопытства, чем от желания поиграть решил "купить". Интересно же посмотреть на аттракцион невероятной щедрости, да и тут как бы 1500 р. сэкономил)
👀😳
В общем начал скачивать и немного, так скажем, удивился. Весит то игрушка 95G однако. 95 Карл! Это ж вся моя жизнь, и еще плюс 94G. Я конечно давненько не играл, ни во что, может оно конечно так сейчас и принято но блин.
🤧😭😢
Кстати в стиме она до сих пор платная, должно быть обидно тем кто ее реально покупал, соболезную мир жесток.
😡🤬🤯
В общем так я и не поиграл, сначала пришлось сто пятьсот аккаунтов зарегать, привязать, подтвердить, запротоколировать, завизировать блин, а потом еще игра качалась, потом лаунчер, еще какая то хрень. В общем когда запустил просто проверил что работает, но уже не до игры было.
Если еще кому то надо то вот ссылка.
👨🦯🧙♂️👨🦳
Причем отстал так не хило, похоже что на целую вечность. А именно - вчера случайно наткнулся на новость что GTA V теперь раздают бесплатно. И больше из любопытства, чем от желания поиграть решил "купить". Интересно же посмотреть на аттракцион невероятной щедрости, да и тут как бы 1500 р. сэкономил)
👀😳
В общем начал скачивать и немного, так скажем, удивился. Весит то игрушка 95G однако. 95 Карл! Это ж вся моя жизнь, и еще плюс 94G. Я конечно давненько не играл, ни во что, может оно конечно так сейчас и принято но блин.
🤧😭😢
Кстати в стиме она до сих пор платная, должно быть обидно тем кто ее реально покупал, соболезную мир жесток.
😡🤬🤯
В общем так я и не поиграл, сначала пришлось сто пятьсот аккаунтов зарегать, привязать, подтвердить, запротоколировать, завизировать блин, а потом еще игра качалась, потом лаунчер, еще какая то хрень. В общем когда запустил просто проверил что работает, но уже не до игры было.
Если еще кому то надо то вот ссылка.
Epic Games Store
Epic Games Store | Загружайте игры для ПК, моды, дополнения и не только — Epic Games
Добро пожаловать в Epic Games Store! Загружайте игры любого жанра и играйте в них на ПК. У нас также есть моды, дополнения и бесплатные игры! Игры для всех.
Кодируем картинки
🖼🔛🖥
Способ, как можно сократить количество запросов к серверу, а значит и нагрузку - закодировать картинки в base64. Особенно это эффективно будет если у вас например множество мелких картинок, за каждой из который браузер делает запрос на сервер.
⚠️ Нам нужны будут две вещи - это сама кодировка base64 и специальный протокол Data URL.
✅ Base64 - это кодировка, которая позволяет перевести данные, в том числе и двоичные, в последовательность символов. Такую последовательность в последующем можно передать например по http, например с помощью POST запроса.
❎ Data URL - протокол, позволяющий встроить практически любые данные прямо в документ. То есть относительно нашего примера с картинкой - браузер, встретив Data URL не будет делать запрос на сервер, а просто преобразует его обратно в картинку и отобразит. Data URL имеет вид data:[MIME тип данных][данные в base64]
🖼 🔛 🈵🈴㊙️🉐
Чтобы закодировать картинку в base64 есть много онлайн инструментов, разбирать как это происходит думаю нет смысла.
➖➖➖➖➖➖➖➖➖➖
Вот пример Data URL, его вы можете вставить прямо в адресную строку, можно вставить в атрибут "src" тэга "img" и браузер отобразит эту картинку (конечно если картинка очень большая, то и строка Data URL тоже будет очень длинная):
🖼🔛🖥
Способ, как можно сократить количество запросов к серверу, а значит и нагрузку - закодировать картинки в base64. Особенно это эффективно будет если у вас например множество мелких картинок, за каждой из который браузер делает запрос на сервер.
⚠️ Нам нужны будут две вещи - это сама кодировка base64 и специальный протокол Data URL.
✅ Base64 - это кодировка, которая позволяет перевести данные, в том числе и двоичные, в последовательность символов. Такую последовательность в последующем можно передать например по http, например с помощью POST запроса.
❎ Data URL - протокол, позволяющий встроить практически любые данные прямо в документ. То есть относительно нашего примера с картинкой - браузер, встретив Data URL не будет делать запрос на сервер, а просто преобразует его обратно в картинку и отобразит. Data URL имеет вид data:[MIME тип данных][данные в base64]
🖼 🔛 🈵🈴㊙️🉐
Чтобы закодировать картинку в base64 есть много онлайн инструментов, разбирать как это происходит думаю нет смысла.
➖➖➖➖➖➖➖➖➖➖
Вот пример Data URL, его вы можете вставить прямо в адресную строку, можно вставить в атрибут "src" тэга "img" и браузер отобразит эту картинку (конечно если картинка очень большая, то и строка Data URL тоже будет очень длинная):
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDADIiJSwlHzIsKSw4NTI7S31RS0VFS5ltc1p9tZ++u7Kfr6zI4f/zyNT/16yv+v/9////////wfD/////////////2wBDATU4OEtCS5NRUZP/zq/O////////////////////////////////////////////////////////////////////wAARCAAKAAoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCR3aFniic+VkZbGfLz/n/JqwtnblRhd3HXceaLJQbRRgc5z781l1nex1qLk2k7W/E//9k=
This media is not supported in your browser
VIEW IN TELEGRAM
🤷♂️🤹♂️🎲
Немного развлекательный пост, а то последнее время было слишком много текста.
Вот такая вот забавная игрушка с помощью которой можно взорвать например статейку про винду на Лурке, ну или про кота Шрёдингера на худой конец (статейка кстати более чем годная).
А вот страница приложения чтобы поиграться.
Немного развлекательный пост, а то последнее время было слишком много текста.
Вот такая вот забавная игрушка с помощью которой можно взорвать например статейку про винду на Лурке, ну или про кота Шрёдингера на худой конец (статейка кстати более чем годная).
А вот страница приложения чтобы поиграться.
Пароль для wi-fi
Вопрос конечно холиварный, вот например в Ubuntu 19.10 считается что он должен быть не короче 8 символов. Ну ладно, ну пусть при создании и настройки wi-fi будет ограничение в 8 символов, но блин при подключении! Ну правда чем может быть обусловлено данное ограничение? Сегодня попытался подключиться к сети пароль у которой был из 6 символов и не смог. Потому что родное убунтовское диалоговое окошко говорит что пароль должен быть не менее 8 символов. Замкнутый круг. В следующем релизе предлагаю вообще запретить подключение к сетям не прошедшим сертификацию "Wi-fi seSurity consortium" (выдуманная организация, будет проверять сеть на безопасность, политкорректность и COVID-19).
Лично мое мнение в отношении паролей - длинна и набор символов должен быть такой какой хочет пользователь. Если мне хочется пароль из 4 символов, то разрешите мне оставить такой пароль.
P.S. модалка на картинке не оригинальная, взял из интернета, потому как когда оригинальная открыта еще и скриншоты не работают.
Вопрос конечно холиварный, вот например в Ubuntu 19.10 считается что он должен быть не короче 8 символов. Ну ладно, ну пусть при создании и настройки wi-fi будет ограничение в 8 символов, но блин при подключении! Ну правда чем может быть обусловлено данное ограничение? Сегодня попытался подключиться к сети пароль у которой был из 6 символов и не смог. Потому что родное убунтовское диалоговое окошко говорит что пароль должен быть не менее 8 символов. Замкнутый круг. В следующем релизе предлагаю вообще запретить подключение к сетям не прошедшим сертификацию "Wi-fi seSurity consortium" (выдуманная организация, будет проверять сеть на безопасность, политкорректность и COVID-19).
Лично мое мнение в отношении паролей - длинна и набор символов должен быть такой какой хочет пользователь. Если мне хочется пароль из 4 символов, то разрешите мне оставить такой пароль.
P.S. модалка на картинке не оригинальная, взял из интернета, потому как когда оригинальная открыта еще и скриншоты не работают.