Pull to refresh
3

User

0,1
Rating
Send message

На самом деле OSS приложения для OBD вполне себе существуют, например AndrOBD.
Но на F-Droid оно такое пока одно, надеюсь, что скоро их станет как минимум 2 ))

Планируется ли релизиться на F-Droid? Кстати, там есть ELM327 Emulator, вдруг будет полезно?

Ещё злые языки поговаривают, что первый запуск этого носителя должен был состояться ещё 4 года назад, но постоянно откладывался. Врут конечно!

Зачем ей это?

Самый простой ответ - так вышло, случайный побочный эффект. Эволюция штука странная, например, возвратный гортанный нерв расположен так не с какой-то целью, а только потому, что “так вышло” (да простят меня биологии, если я что-то напутал)

Есть ещё OpenKeyChain (есть так же и в стандартных магазинах приложений), если я правильно понял идею автора - очень похожая штука в части шифрования текста. Можно выделить текст в поле ввода и зашифровать (не работает, если приложение как-то по своему обрабатывает контекстное меню).

Shattered Pixel Dungeon
Бесплатная, без рекламы, рогалик. Можно зависнуть очень на долго

Если нормально писать, то можно и большие проекты с долгим сроком сопровождения.

Увы, что есть. В Python стандартная перегрузка (как в языках с ad-hoc полиморфизмом) принципиально невозможна.
А вообще, мне кажется, на любом языке можно писать плохо, хоть на Python, хоть на Java, хоть на C. Просто похой код на Java быстрее даст о себе знать, чем плохой код на Python. С этой точки зрения, к сожалению, простота Python играет с ним злую шутку. Многие просто забивают на то, чтобы разобраться, как сделать лучше исходя из принципа - "работает и ладно, что ещё от этого простого языка ждать"?

В питоне нет перегрузки функций (overloading)

Есть singledispatch, но это не полноценная замена перегрузке:

note that the dispatch happens on the type of the first argument:

Некорректно писать, что компилятор Rust "ничего не гарантирует" в блоке unsafe. Внутри него он позволяет ровно 5 действий:

  1. Dereference a raw pointer.

  2. Call an unsafe function or method.

  3. Access or modify a mutable static variable.

  4. Implement an unsafe trait.

  5. Access fields of unions.

Все остальные проверки работают точно так же.

https://ru.wikipedia.org/wiki/Объект_первого_класса
Вспомните набившую оскомину фразу "В Python все есть объект". Функция - тоже объект. Он создаётся один раз, при этом один раз задаются дефолтные значения.

Потому что функция в Python - объект первого класса. Объявление функции с помощью оператора def создаёт этот объект и он начинает существовать в своей области видимости с проинициализированными значениями по-умолчанию.
При дальнейших вызовах этой функции используется этот самый ранее созданный объект функции. Так что тут как раз все очень даже логично.

Если continuous представить, не как действие, а как состояние, то становится понятным зачем там нужны эти is, was и прочие.
I am working - Я есть работающий
I was working - Я был работающим

Я не лингвист, если что

Авария Союз МС-10 2018 года
Если коротко - нештатное отделение бокового блока, потеря стабилизации, экипаж не пострадал

Как-то очень давно пробовал подобный чай. У него был особый (слабительный) эффект после употребления. Может именно в этом смысл подобных чаёв?

@DRoman0v, в обзорах на эти наушники часто утверждается, что шумодав работает на столько эффективно, что внешние звуки просто исчезают. В вашей статье заявление не столь категоричное, но и про шумодав написано не очень много. Как он вам вообще?

Вы, случайно, не к iPhone подключаете? Как я понимаю, Apple не поддерживает LDAC

Долго не отвечал - был в шоке. Получается, что я был не прав, однако не могу одобрить такого решения.
От себя я бы всё-таки рекомендовал использовать OrderedDict там, где важен порядок ключей, этим вы как бы говорите коллегам - "тут нам очень важен порядок ключей, и это не просто так". Речь, конечно же, про код, который нужно сопровождать, в одноразовых скриптах это не важно.

Благодаря динамической природе Python, в нём не видна суть кортежа - благодаря этому он воспринимается как "просто неизменяемый список". Однако суть его совсем в другом, и это видно только в статических языках, например в Rust.
Я воспринимаю эту разницу так: список - это изменяемая последовательность однородных данных, кортеж - это неизменяемый набор разнородных данных. Он потому неизменяемый, так как данные разнородны и в статических языках мы не можем заменить тип элемента кортежа. В Python эта разница размывается, так как в списке могут быть ссылки на объекты разных типов.
В этой статье этот момент упоминался:

Используйте кортеж, когда данные — это структура

На мой взгляд, это основное предназначение кортежа, как типа данных. Но в Python его, конечно же, можно использовать и в качестве неизменяемого списка.

ИМХО. Критика приветствуется.

1
23 ...

Information

Rating
4,898-th
Registered
Activity