Архив автора: Ivan Nikiforov

[Solved] Manjaro Linux: Cannot connect Bluetooth headset

TL; DR: 1. sudo pacman -S pulseaudio-bluetooth
2. sudo nano /etc/bluetooth/main.conf
3. Add «Enable=Source,Sink,Media,Socket» in [General] section
4. pulseaudio -k

Long version:
I recently stuck on connecting my Trakz Titanium Bluetooth headset in Manjaro Linux (kernel version 5.8.18-1). I saw it in the list of Bluetooth devices to connect, but nothing happened if I set the connection on. Needless to say that there was no option to choose a headset in the list of sound devices.

I had to spend some time reading docs, installing packages, and playing with conf files, and finally found the reason, so hopefully, this article saves you from this tedious journey.

— So here is the how to fix this.

Turn on a dark theme for most of the popular web-sites

TL; DR: Enable flag #enable-force-dark in Chrome.

I’m a big fan of dark themes for websites and apps. They make browsing more comfortable to my eyes, especially after a long day and during the night. Unfortunately, there are still lots of sites (including the most popular ones) that offer only the default «white background» style which makes using them eye-leaking.

Until today, I used the Stylus plugin for my browser which has a comprehensive library of themes that applies over the top of the default website style. It worked for me, although I still had to write my own styles for some unpopular sites, another issue was that styles from the community-developed library were often outdated.

Fortunately, developers of Chrome browser recently solved that issue for us, so that you can easily turn on (and off) the dark theme for most of the sites, also you don’t need any plugins anymore.

To enable dark themes:

  1. Type chrome://flags/ URL in Chrome browser address bar
  2. Search for #enable-force-dark (Force Dark Mode for Web Contents) setting and Enable it (you may play with different modes if you faced performance issues, but to me simple «Enabled» option works just fine).

That’s it! Open your favourite website on the browser and check it out.

In fact, it works even on this site 🙂

Hacktoberfest 2019 — go and contribute to open source

Hacktoberfest is an initiative from Digital Ocean and it’s intended to invite anyone to go and contribute to open source, even it’s your first commit or pull request. Any help to OSS community would be appreciated these days.

Whether you’re a developer, student learning to code, event host, or company of any size, you can help drive growth of open source and make positive contributions to an ever-growing community. All backgrounds and skill levels are encouraged to complete the challenge.

  • Hacktoberfest is open to everyone in our global community!
  • Pull requests can be made in any GitHub-hosted repositories/projects.
  • Sign up anytime between October 1 and October 31.

Oh, and last but not least. Everyone can get a free nicely looking t-shirt from Digital Ocean for just 4 approved PR’s.

Check official website for more info: https://hacktoberfest.digitalocean.com/

Hint. To find suitable issues to fix, search them with #hacktoberfest label.

Как удалить встроенные приложения в Windows 10

Вместе с установкой Windows 10 приходит довольно много разнообразных пользовательских приложений, часть из них постоянно висит в фоне и отнимает ресурсы системы. Возможно, вы захотите удалить часть из этих Windows Store apps, тем более если вы не пользуетесь ими (эй, кто-нибудь знает зачем на корпоративной версии Windows 10 предустановлены приложения Xbox?)

Стандартными средствами Windows (в «Установке и удалении программ») приложения типа Photos, Feedback, Camera нельзя найти, и следовательно удалить их оттуда. Но есть другой способ.

Необходимый disclaimer: всё, что вы делаете со своей системой — на ваш страх и риск. Делайте бэкапы перед экспериментами 🙂

Собственно, процесс удаления состоит из двух шагов:

  1. Запускаем PowerShell с правами администратора
  2. Выполняем команду вида «Get-AppxPackage *photo* | Remove-AppxPackage«, где между звёздочками укажите название Windows App, которое вы хотите удалить. После нажатия Enter приложение будет удалено из системы.

Простыми словами о Big O (Time Complexity)

Есть у программистов понятие «временная сложность» (time complexity or Big O) для сравнительной оценки эффективности алгоритма.

К примеру, для некоторой структуры может быть линейное время доступа (искомый элемент либо встретится сразу, либо он может быть в самом конце, и если структура очень большая (n — это число элементов), а элемент в самом конце, то поиск может быть долгим. Обычно рассматривают время доступа в среднем и худшем случае. Big O — обозначение верхней границы, т.е. худшего случая. Для нашего примера O(n).

Также есть константное время доступа (например, когда мы знаем индекс элемента в структуре и обращаемся к элементу по его индексу), тогда где бы элемент не находился, мы всегда можем получить к нему доступ за O(1).

Так вот, поездка на машине в снежную погоду — это скорее O(n) (неизвестно за сколько доберёшься из-за пробок), а на метро — O(1) (всегда примерно одинаковое время на дорогу).

Эффективность алгоритмов варьируется от O(1) до O(n!), их полный список можно найти на вики (ссылка в конце статьи).

В своё время мне помогли «войти в тему» следующие статьи, их я очень советую прочесть:

  • Знай сложности алгоритмов — Краткая шпаргалка по сложности алгоритмов. Теперь вам будет проще выбрать наиболее эффективный тип данных и алгоритм, подходящий под ваши задачи.
  • Введение в анализ сложности алгоритмов — Лёгкий для чтения и понимания материал. Идеально, чтобы начать разбираться во всех этих алгоритмах и «читать» их сложность. Обязательно прочтите все части.
  • Big O notation — Orders of common functions — не пугайтесь длинного списка, просто запомните что сложность от O(1) до O(n) норм, а всё что больше — уже не норм.

Python: передача значения переменной в контексте экземпляра класса

Пример ниже показывает как в Python реализована передача значений между методами используя контекст экземпляра класса (т.е., когда мы порождаем переменную в выражении «c = A()», обращаясь к ней, мы обращаемся к экземпляру класса).

Как известно, в Python функции могут существовать вне класса, в этом случае в параметрах такой функции может ничего не передаваться. Однако, когда мы определяем функцию внутри класса, первым параметром идёт «self«, т.е. ссылка на контекст экземпляра класса, и такую функцию мы уже будем называть методом. Эта ссылка неявно передаётся в метод интерпретатором каждый раз когда мы вызываем метод, таким образом нам не нужно указывать это значение самостоятельно.

class A:
    list1 = []

    def method_a(self):
        self.list1 = [1, 2, 3]

    def method_b(self):
        print(self.list1)

Теперь запускаем код в интерпретаторе

   # create instance of class A() and name the instance 'c'
c = A()
   # call method_a() for instance 'c', this will set value to list1 on the instance-wide
c.method_a()
   # call mathod_b() for instance 'c', this will get value of list1 from instance
c.method_b()
>>> [1, 2, 3]
   # we can also get the value of 'list1' by calling the attribute of instance 'c'
c.list1
>>> [1, 2, 3]

Это свойство Python, как объектно-ориентированный языка, позволяет передавать значения из одного тестового метода в другой тестовый метод.

Бесплатный доступ: все курсы DataCamp и LinkedIn

Компания Microsoft в очередной раз преподнесла подарок всем любителям онлайн-курсов. Если раньше можно было получить бесплатный 3-месячный доступ к полной базе курсов Pluralsight, то теперь из аккаунта Visual Studio Dev Essentials (если его у вас ещё нет, то заведите — это бесплатно) можно активировать ваучеры на бесплатную 2-месячную подписку на DataCamp и 3-месячную подписку на LinkedIn Premium.

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

Чем интересны перечисленные MOOC площадки?

  • Data Camp (обработка и анализ данных, искусственный интеллект, Python, R)
  • LinkedIn Premium (для бизнеса, технических и творческих специалистов)

Бесплатная книга: Selenium WebDriver

Хороший источник информации на русском языке по работе с Selenium WebDriver, с примерами кода на Java. Книгу на GitBooks можно смотреть онлайн (зелёная кнопка Read), а также скачать в популярных форматах (PDF/ePub/Mobi).

https://www.gitbook.com/book/kreisfahrer/selenium-webdriver/details