Обновить
6
Роман Давыдкин@Beholder

Java-разработчик

13
Подписчики
Отправить сообщение

Вещи, которые я ненавижу:

  • I. Римские цифры

  • II. Римские цифры

  • III. Римские цифры

  • IIII. Римские цифры

:)

  1. Если используется реализация на Java, то фильтровать символы кириллицы можно выражением \p{InCyrillic} (там есть имена и для других письменностей).

  2. Есть не только жадные и ленивые, существует три категории: Greedy, Reluctant и Possessive, там уже тонкости.

Тема корутин Kotlin не раскрыта.

Так в данном случае прикладному программисту и не надо ничего переписывать. Можно только добавить атрибут - и включится оптимизация. А можно и не добавлять. Старый API остаётся.

Такие вещи всё-таки лучше не в базе, а на бекенде делать на нормальных языках программирования с библиотеками.

Однажды один лингвист залез в программирование - получился верблюд...

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

Переключатель внизу даёт наиболее полный контроль

Переключатель в строке статуса с выбором всех режимов. Также можно назначить горячие клавиши.

Известных библиотек, которые работают одновременно в режиме WYSIWYG/markdown, мы не нашли.

Obsidian

Зачем, если npm create vue@latest проще?

Интересный момент: если заморозить прототип, то в дочернем объекте просто так свойство изменить нельзя, но через defineProperty можно

const base = Object.freeze({
    x: 11,
})
const obj = {
    y: 22,
}
Object.setPrototypeOf(obj, base)

obj.x = 33 // Failure

Object.defineProperty(obj, "x", { value: 44 }) // Ok

По нынешним временам тут особенно хвалиться нечем.

Kotlin:

fun sqr(x: Double) = x * x

fun distance(a: Point2D, b: Point2D): Double =
    sqrt(sqr(a.x - b.x) + sqr(a.y - b.y))

fun sumG(q: Long, n: Int): BigInteger {
    val bq = q.toBigInteger()
    return (bq.pow(n) - BigInteger.ONE) / (bq - BigInteger.ONE)
}

fun fib(n: Int): BigInteger =
    if (n < 2) BigInteger.ONE
    else fib(n - 1) + fib(n - 2)
// Среднее время fib(40): Python = 15s, JVM = 2s

fun intSqrt(n: Int) = sqrt(n.toFloat()).toInt()

fun primes(n: Int): BitSet {
    val bits = BitSet(n + 1).also { it.set(1, n + 1) }
    for (i in 2 .. intSqrt(n)) {
        if (!bits[i]) {
            continue
        }
        for (j in i * i .. n step i) {
            bits.clear(j)
        }
    }
    return bits
}
// Среднее время primes(1_000_000): Python = 200ms, JVM = 5ms

Самый главный продвинутый приём JavaScript - это TypeScript

  1. Хабр не жалобная книга

  2. Пишите в спортлото в багтрекер

  3. Multiplatform разве уже вышел из стадии "эксперимент"?

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

Думаю все, кто изучал Java, знают, что можно сделать так (в Kotlin такой возможности нет):

Не совсем так. Можно

abstract class Property<T>(value: T) {
    open var value: T = value
        protected set
}
class MutableProperty<T>(value: T) : Property<T>(value) {
    override var value: T
        get() = super.value
        set(value) { super.value = value }
}

Пример кода с диалогом не учитывает, что диалог может закрываться просто по нажатии Esc, тогда скролл не восстановится.

Очевидно же, что это kosmonavt Лев Андропов стучит гаечным ключом по железке корпуса.

Результаты уродливые, как и ожидалось.

Так и не сказали, что эта "суперполезная" программа делает. Гугление показывает, что вроде это для обновленения драйверов (но это не точно). Разве встроенных средств для этого недостаточно?

Так всего ведь там композиций будет на порядки больше. То есть, вы взяли узкую выборку, и в итоге пишете выводы "сколько реально loseless треков в Я.Музыке".

Информация

В рейтинге
Не участвует
Откуда
Тульская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик
Java
Kotlin
TypeScript
Vue.js