Зачем быть в курсе трендов? Вот начинаете программировать, хотите освоить систему контроля версий (СКВ). Вики насчитывает более 30 СКВ. Какую выбрать?
Нашёл опрос 2008 года, где лидер Subversion. В 2014 году на хабре был опрос по СКВ. Результат на скрине — 71% был за git, 32% за SVN, 16% за mercurial, 8% за TFS от Microsoft. Сейчас лидер де-факто Git со своими 97% в последнем опросе от Stackoverflow.
Технологии умирают. Вам в любом случае придётся изучать другие инструменты. Тренды позволят понять, какой инструмент выбрать для работы, а какой теряет популярность.
#skills #trends #devfm
Нашёл опрос 2008 года, где лидер Subversion. В 2014 году на хабре был опрос по СКВ. Результат на скрине — 71% был за git, 32% за SVN, 16% за mercurial, 8% за TFS от Microsoft. Сейчас лидер де-факто Git со своими 97% в последнем опросе от Stackoverflow.
Технологии умирают. Вам в любом случае придётся изучать другие инструменты. Тренды позволят понять, какой инструмент выбрать для работы, а какой теряет популярность.
#skills #trends #devfm
👍13🔥2⚡1
Когда код не работает, то понять проблему помогут следующие способы:
1. Метод пристального взгляда. Полезное упражнение для мозга – попытаться в голове построчно воспроизвести код и состояния всех переменных
2. Отладка. Воспользоваться IDE или сторонними инструментами для пошагового запуска с контролем выбранных переменных. Этот способ следует освоить, пользоваться горячими клавишами и точками останова. Незаменим при разборе чужого кода или сложных структур данных
3. Юнит-тесты. Вместе с кодом важно писать изолированные тесты, покрывающие ту функцию, над которой вы сейчас работаете. Выгодное отличие от отладки – накопительный эффект. Чем больше уже написано тестов, тем меньше область поиска ошибки
4. Отладочные принты. Выводить нужные переменные. Детский способ вникания в код. Почему детский? Есть альтернатива лучше по всем параметрам
5. Логгирование. Это отладочная печать на стероидах. Можно сконфигурировать выводимое сообщение (добавить время и дату, добавить название вызываемого модуля и функции и многое другое). Можно настроить уровень предупреждений. В info писать важное (например, изменение состояния в базе данных), в error писать ошибки, а в debug – нужное для отладки. Прелесть в том, что debug убирать не придётся. В конфиге настраиваем писать только info и выше, и в результате debug выполняться не будут. Удобно
Про логгирование недавно был пост в канале по питону
Наилучшим сочетанием я считаю 3, 5, 1 – именно в таком порядке. Всегда писать тесты, часто использовать логгирование и использовать мозг
#sudo #procode #devfm
1. Метод пристального взгляда. Полезное упражнение для мозга – попытаться в голове построчно воспроизвести код и состояния всех переменных
2. Отладка. Воспользоваться IDE или сторонними инструментами для пошагового запуска с контролем выбранных переменных. Этот способ следует освоить, пользоваться горячими клавишами и точками останова. Незаменим при разборе чужого кода или сложных структур данных
3. Юнит-тесты. Вместе с кодом важно писать изолированные тесты, покрывающие ту функцию, над которой вы сейчас работаете. Выгодное отличие от отладки – накопительный эффект. Чем больше уже написано тестов, тем меньше область поиска ошибки
4. Отладочные принты. Выводить нужные переменные. Детский способ вникания в код. Почему детский? Есть альтернатива лучше по всем параметрам
5. Логгирование. Это отладочная печать на стероидах. Можно сконфигурировать выводимое сообщение (добавить время и дату, добавить название вызываемого модуля и функции и многое другое). Можно настроить уровень предупреждений. В info писать важное (например, изменение состояния в базе данных), в error писать ошибки, а в debug – нужное для отладки. Прелесть в том, что debug убирать не придётся. В конфиге настраиваем писать только info и выше, и в результате debug выполняться не будут. Удобно
Про логгирование недавно был пост в канале по питону
Наилучшим сочетанием я считаю 3, 5, 1 – именно в таком порядке. Всегда писать тесты, часто использовать логгирование и использовать мозг
#sudo #procode #devfm
Telegram
Senior Python Developer
Логирование
Логировние является неотъемлемой частью разработки. Логи показывают информацию о текущем состоянии программы. И чем лучше выстроено логирование, тем проще будет разобраться в нестандартных ситуациях.
Python поставляется для этих целей с гибким…
Логировние является неотъемлемой частью разработки. Логи показывают информацию о текущем состоянии программы. И чем лучше выстроено логирование, тем проще будет разобраться в нестандартных ситуациях.
Python поставляется для этих целей с гибким…
👍8🔥2
Почему zip-файл с произведением "Война и мир" весит во много раз меньше оригинала, а 1.5-гигабайтный avi файл после сжатия почти не меняет размера?
Давайте погрузимся в область сжатия данных на примере zip. Zip-файлы: история, объяснение и реализация. Про баг "master key" в apk весьма занятно.
PS: исходники лежат в архиве hwzip-1.0. Если пойти на оригинал статьи (ссылка вверху статьи), то там уже hwzip-2.1. Как жаль, что не придумали более удобного способа хранения версий кода...
PPS: комментарии, как обычно, могут радовать
#skills
Давайте погрузимся в область сжатия данных на примере zip. Zip-файлы: история, объяснение и реализация. Про баг "master key" в apk весьма занятно.
PS: исходники лежат в архиве hwzip-1.0. Если пойти на оригинал статьи (ссылка вверху статьи), то там уже hwzip-2.1. Как жаль, что не придумали более удобного способа хранения версий кода...
PPS: комментарии, как обычно, могут радовать
#skills
Хабр
Zip-файлы: история, объяснение и реализация
Мне давно было интересно, как сжимаются данные, в том числе в Zip-файлах. Однажды я решил удовлетворить своё любопытство: узнать, как работает сжатие, и написать собственную Zip-программу. Реализация...
👍11🔥2
А как насчёт zip-бомбы? Их есть у меня. Архив в 10 мегабайт в распакованном виде занимает... 281 терабайт. В статье ковыряют алгоритм распаковки zip с целью получения весьма опасного архива, который съест весь ваш жёсткий диск.
Ещё лучшая ZIP-бомба
PS: наконец, git clone в примерах кода. Наши ребята
#skills
Ещё лучшая ZIP-бомба
PS: наконец, git clone в примерах кода. Наши ребята
#skills
Хабр
Ещё лучшая ZIP-бомба
В статье показано, как создать нерекурсивную zip-бомбу , которая обеспечивает высокую степень сжатия путём перекрытия файлов внутри zip-контейнера. «Нерекурсивная» означает, что она не зависит от...
👍11🔥2
Пятничное развлекательное
Культовая трилогия 90-ых – Назад в будущее. Три классических фильма о путешествиях во времени смотрятся на одном дыхании. Всегда старый Кристофер Ллойд в роли безумного учёного. Любимая Делориан, способная переместить вас в любое время и обеспечить переплетение прошлого, настоящего и будущего. Притягательный альманах! Как же хотелось получить себе такой... Однозначно рекомендуется к просмотру
А если вы уже смотрели трилогию, то вам однозначно зайдёт фанатский анализ от ЧБУ Бутылка виски спасает всех.
#fun #films
Культовая трилогия 90-ых – Назад в будущее. Три классических фильма о путешествиях во времени смотрятся на одном дыхании. Всегда старый Кристофер Ллойд в роли безумного учёного. Любимая Делориан, способная переместить вас в любое время и обеспечить переплетение прошлого, настоящего и будущего. Притягательный альманах! Как же хотелось получить себе такой... Однозначно рекомендуется к просмотру
А если вы уже смотрели трилогию, то вам однозначно зайдёт фанатский анализ от ЧБУ Бутылка виски спасает всех.
#fun #films
Кинопоиск
«Назад в будущее» (Back to the Future, 1985)
🎬 Подросток Марти с помощью машины времени, сооружённой его другом-профессором доком Брауном, попадает из 80-х в далекие 50-е. Там он встречается со своими будущими родителями, ещё подростками, и другом-профессором, совсем молодым. Подробная информация о…
👍8🔥3
Одним из вариантов безопасной пересылки данных является передача зашифрованного rar/zip архива с паролем. В rar есть удобная галочка "шифровать имена файлов", когда названия файлов внутри архива не показываются. Но rar формат проприетарный, что плохо с точки зрения криптографии и является дурным тоном. Берём zip.
О пароле можно договориться заранее. Если пересылка регулярная, на помощь может прийти одноразовый блокнот. Менее безопасным является пересылка архива по одному каналу связи (мессенджер), а пароля – по другому (СМС, почта, другой мессенджер).
Надёжный пароль состоит не менее, чем из 20 символов. Отличный пароль – набор из 4+ английских слов. Изменение регистра и спецсимволы приветствуются. Примеры хороших паролей:
HowAwesomeHumanBrain
ComputerGamesAreNotBad
Many%Coders%Can%Code%Windows
Такие пароли легко запомнить и сложно перебрать (и bruteforce, и перебор по словарю за разумное время не производится).
PS: Идеальным будет пароль вроде JVoZlEoHk~?rsnJFCZ1pJ%IEp, но его невозможно запомнить и тяжело набирать. Тут могут помочь менеджеры паролей, но это другая тема.
#sudo #skills #devfm
О пароле можно договориться заранее. Если пересылка регулярная, на помощь может прийти одноразовый блокнот. Менее безопасным является пересылка архива по одному каналу связи (мессенджер), а пароля – по другому (СМС, почта, другой мессенджер).
Надёжный пароль состоит не менее, чем из 20 символов. Отличный пароль – набор из 4+ английских слов. Изменение регистра и спецсимволы приветствуются. Примеры хороших паролей:
HowAwesomeHumanBrain
ComputerGamesAreNotBad
Many%Coders%Can%Code%Windows
Такие пароли легко запомнить и сложно перебрать (и bruteforce, и перебор по словарю за разумное время не производится).
PS: Идеальным будет пароль вроде JVoZlEoHk~?rsnJFCZ1pJ%IEp, но его невозможно запомнить и тяжело набирать. Тут могут помочь менеджеры паролей, но это другая тема.
#sudo #skills #devfm
👍8🔥3
Python умеет "из коробки" работать с zip. Можно удобно использовать контекстный менеджер with.
Называть открытый архив zip нельзя, так как это ключевое слово для одновременного итерирования по нескольким коллекциям. В этом случае добавляем нижнее подчёркивание в конце названия.
Подробнее о ZipFile в документации
#python #codereview
Называть открытый архив zip нельзя, так как это ключевое слово для одновременного итерирования по нескольким коллекциям. В этом случае добавляем нижнее подчёркивание в конце названия.
Подробнее о ZipFile в документации
#python #codereview
👍10🔥2
За последние 5 лет доля Windows упала с 84 до 76% согласно statcounter. В 2009 году, когда проект statcounter начался, доля Windows была 95%.
Ещё в районе 2010-ых года я предполагал, что Ubuntu почти готова для распространения среди непрофессиональных пользователей. Достаточно же установить Ubuntu и всё настроить, а дальше оно работает почти без нареканий. Ну что ж, спустя десятилетие Ubuntu всё ещё в состоянии "оно почти готово".
Надежда была на разработчиков, так как на Linux удобнее разрабатывать софт. Ну, игр то нет и ничего не отвлекает. К сожалению, всё идёт к тому, что распространением WSL (Windows Subsystem for Linux) Windows продолжит быть основной ОС.
#skills #trends
Ещё в районе 2010-ых года я предполагал, что Ubuntu почти готова для распространения среди непрофессиональных пользователей. Достаточно же установить Ubuntu и всё настроить, а дальше оно работает почти без нареканий. Ну что ж, спустя десятилетие Ubuntu всё ещё в состоянии "оно почти готово".
Надежда была на разработчиков, так как на Linux удобнее разрабатывать софт. Ну, игр то нет и ничего не отвлекает. К сожалению, всё идёт к тому, что распространением WSL (Windows Subsystem for Linux) Windows продолжит быть основной ОС.
#skills #trends
👍3🔥2
Есть такая больная тема, как фрагментация версий. Речь про то, сколько одновременно существует версий операционной системы (или форматов экранов, или чего угодно), под что требуется адаптация разрабатываемых приложений. Windows провела хорошую работу в части сокращения фрагментации версий своей ОС. В начале 2018 win10 обогнал win7 и с тех пор уверенно растёт до 80% в пике
👍3🔥3
IOS вот умеют твёрдой рукой загонять в светлое будущее. Вышел апдейт – надо обновиться, бро. Убрать зарядку или дырку для наушников? Я лучше знаю, я же Apple. Это позволяет быстро внедрять инновации и доставляет много боли, если конкретно эту инновацию ты не хочешь
👍6🔥2
На рынке браузеров сейчас складывается грустная монополия Chrome и Chrome-based движков. Монополия Internet Explorer 6 задержала развитие интернета на 15 лет. Использование Chrome своего доминирующего положения не за горами.
Поддержи Firefox как единственный альтернативный движок для браузера
#skills #trends
Поддержи Firefox как единственный альтернативный движок для браузера
#skills #trends
👍10🔥2
Расклад по РФ чуть лучше. Яндекс смог взять 20% рынка, пусть движок тот же Blink, что и у Chrome.
👍5🔥2
Мобильные браузеры тоже под Chrome. Кусок рынка Safari от пользователей IOS. Есть некий Samsung Internet с 5%, впервые такое вижу. А он с 2016 года взял 5% и не отдаёт.
👍2🔥2
В РФ на рынке мобильных до 2014 года правила Opera с долей аж до 80% (в 2010). А потом владельцы потеряли все полимеры.
👍4🔥1
Для Mobile в РФ яндекс проигрывает гуглу. Почему? Средний пользователь мобильного телефона не лезет в настройки и пользуется всем по умолчанию. Отсюда всякие законодательные инициативы о предустановке или обязанности предоставления выбора при первом запуске
👍3🔥3👎1