• 10 лет с Колибри: как это было

      Обзор в честь моего 10-летия участия в проекте создания операционной системы Kolibri.

      Кем я только не работал и что только не делал в этом проекте. Именно знания, полученные в процессе работы над Колибри дали мне возможность кардинально изменить свою жизнь — найти работу мечты, новых друзей и получить невероятное количество фана!

      image
      Читать дальше →
    • Notepad++: проверка кода пять лет спустя

        Picture 1

        В этом году статическому анализатору PVS-Studio исполнилось 10 лет. Правда, стоит уточнить, что 10 лет назад он назывался Viva64. И есть ещё одна интересная дата: прошло 5 лет с момента предыдущей проверки кода проекта Notepad++. С тех пор PVS-Studio был очень сильно доработан: добавлено около 190 новых диагностик, усовершенствованы старые. Впрочем, ожидать огромного количества ошибок в Notepad++ не стоит. Это небольшой проект, состоящий всего из 123 файлов с исходным кодом. Тем не менее, в коде найдены ошибки, которые будет полезно исправить.
        Читать дальше →
      • Ярлыки в Windows: куда они ведут и могут ли быть опасны?


          В данной статье мы поговорим о методах компрометации систем с использованием стандартного функционала ОС Windows, доступного при создании ярлыков и как с этим бороться.
          Читать дальше →
        • Как я использую git

            Intro


            Основам git мне пришлось научиться на своем первом месте работы (около трех лет назад).
            С тех пор я считал, что для полноценной работы нужно запомнить всего-лишь несколько команд:


            • git add <path>
            • git commit
            • git checkout <path/branch>
            • git checkout -b <new branch>

            И дополнительно:


            • git push/pull
            • git merge <branch>
            • git rebase master (а что, можно еще и на другие ветки ребейзить? О_о)

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

            Читать дальше →
          • Сударь, ваша команда — не команда

              За свои 12 лет работы в сфере разработки ПО, мне посчастливилось поработать в команде только два раза. Хотя я сменил порядка десяти мест работы. Но попробовав раз, ем и сейчас… Т.к. я не жадный, и готов своими достижениями делиться с сообществом, то решил я предпринять попытку вывести из равновесия неумных руководителей, которые до сих пор не осознали важность команды, а также тех руководителей, которые профессионально занимаются самообманом — мол, они строят команду, а на деле — тьфу, а не команда.
              Читать дальше →
            • Тестируем асинхронный код с помощью PyTest (перевод)

                При подготовке материала для курса, нам периодически попадаются интересные статьи, которыми хотелось бы поделиться с вами!

                Автор Stefan Scherfke “Testing (asyncio) coroutines with pytest”



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

                Тем не менее, на момент версии 2.7, он менее эффективен в тестировании (asyncio) подпрограмм. Поэтому не стоит пытаться их тестировать таким способом:

                # tests/test_coros.py
                
                import asyncio
                
                def test_coro():
                    loop = asyncio.get_event_loop()
                
                    @asyncio.coroutine
                    def do_test():
                        yield from asyncio.sleep(0.1, loop=loop)
                        assert 0  # onoes!
                
                    loop.run_until_complete(do_test())
                

                В таком методе много недостатков и излишеств. Единственные интересные строки — те, что содержат операторы yield from и assert.
                Читать дальше →
                • +11
                • 3,2k
                • 2
              • Учимся программировать под Андроид

                Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «How To Learn Android Development» от Amit Shekhar.

                image

                Как изучить разработку приложений под Андроид?

                Я видел много вопросов о том, как начать изучать программирование под Андроид и стать успешным разработчиком. Здесь я попытался охватить большинство важных аспектов в Android Development.
                Читать дальше →
                • +16
                • 25,8k
                • 5
              • 10 приёмов работы в терминале Linux, о которых мало кто знает

                • Перевод
                Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

                Читать дальше →
              • Пишем и собираем приложения для Android в linux консоли

                image


                В данной статье я покажу как можно собрать apk файл в Ubuntu используя лишь
                утилиты командной строки.


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


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

                Читать дальше →
              • Что может чат-бот

                  Сначала мы выделили основные офисные процессы. Про чат-бота мы даже не говорили. Вот, например, заказ командировок. Сейчас я должна написать сотруднику службы деловых поездок в почту: «Я собираюсь в командировку в Сургут 5-го числа на три дня», а он: «Такой-то самолет и такая-то гостиница — всё подходит?», а я: «Да, давай». Дальше он пойдет согласовывать с руководством, забронирует сам билеты, спустя какое-то пришлёт мне подтверждение, что все Ок. Всё то же самое может делать бот.

                  Или если нужна справка для визы, то бот постучит в шину, шина постучит в кадровую подсистему и заберёт PDF, дальше отправит его на принтер отдела кадров и напишет письмо, что туда нужна печать. Затем уведомит меня, что можно подойти через пару часов. Если нужно оформить пропуск на гостя или забронировать переговорку для встречи, то достаточно поручить боту эту задачу, и он её выполнит.



                  Теперь давайте покажу пример чуть посложнее.

                  Читать дальше →