Search
Write a publication
Pull to refresh
1
0
Send message

Это похоже на плейтесты, которые Valve использует ещё со времён разработки самой первой Half-Life. Они тоже приглашали геймеров, усаживали их за очередную сборку игры и просто наблюдали. А потом вносили корректировки в геймдизайн.

В Portal и Half-Life 2 есть режим с комментариями разработчиков, в которых очень много рассказывают о решениях, принятых на основе результатов плейтестов

Под android сейчас как раз везде kotlin или kotlin в перемешку с java, это действительно основная сфера. На стыке с ios тоже есть. На беке с вакансиями хуже. Там, пожалуй, с go действительно найти команду значительно проще (я сам с мобилками в основном работал). Хотя когда мне нужно какой-то свой сервер написать, я просто пишу его на kTor: удобно и код с фронтом можно пошарить, если понадобится.

Про менее популярную java с теми же плюсами и минусами не соглашусь.

  • В котлине поправили многословность джавы, навалили синтаксический сахар на конструкторы и сеттеры/геттеры

  • Разобрались с NPE: там возможность предать null описывается на уровне типов (String? -- это как String в джаве, а String -- это точно не null). Без проверки на null методы класса просто не вызвать, это отсекает кучу ошибок ещё на компиляции. Хотя проверка может выглядеть как str!!.length() -- тут может вылететь NPE как в дажаве, но таких мест в коде обычно не очень много. Немного костыльно, но по сравнению с Java/(старым) C# -- очень приятно

  • Добавили функции и свойства-расширения: они объявляются вне класса, но синтаксически используются как будто бы они члены класса

  • Ввели suspend-функции -- это штука, на которой работают корутины (в go они называются горутины) и генераторы как в питоне. И ещё глубокая рекурсия, но этого в реальном коде я не встречал

  • В котлине удобно писать DSL. Ну верней скорее удобно использовать, а удобство письма зависит от того, как много ошибок вы хотите проверить на этапе компиляции

В общем, плюсов у него много. Минусы тоже есть, в основном, наверное, действительно общие с джавой, потому что они появляются из-за JVM. Но люди, перешедшие с джавы на котлин, обратно мягко говоря не рвутся. Возможно, у меня перекос из-за сферы работы, но проектов чисто на джаве без котлина я очень давно не видел

Я хорошо знаком с JVM, но не знаком с Go. И до этого был наслышан про ужасы этого языка, но до сих пор не могу понять, почему там можно неявно реализовывать интерфейсы, но все так боятся любой другой магии...

Про методы структур не понял. Для меня, как для не знакомого с Go человека, синтаксически они выглядят как внешние функции, которые можно вызывать как будто бы это методы. Понятно, что если 1ый аргумент -- не указатель, то null туда не передать, и так же понятно, что с указателями этот синтаксический сахар прекрасно работает даже если они null.

В примере с символами вы явно потеряли пробел во всех подсчётах

Вывод с go playground
s := "Привет 🌍😊"         // 8 chars, 20 bytes
fmt.Println(len(s))         // 20 🔢 (bytes)
fmt.Println(len([]rune(s))) // 8 🔣 (chars)
fmt.Println([]rune(s))      // [1055 1088 1080 1074 1077 1090 127757 128522]
21
9
[1055 1088 1080 1074 1077 1090 32 127757 128522]

Ну и вообще, если вы хотите изучить Go, рекомендую ещё раз подумать и изучить Kotlin). После Java/C# всем отлично заходит

regex101 принимает сырые строки в обоих полях, поэтому "\\r?" и "\n" на сайте -- это "\\\\r?" и "\\n" в джаве. Как там вбивать спец символы в test string я не знаю, видимо только вставлять откуда-нибудь ещё

text.replaceAll("\\r?\\n|\\r", "\n");

Но самое важное, что и написанное регулярное выражение кажется мне тоже неверным.

Вроде всё работает:

Вот такой код
import java.util.Arrays;

class Scratch {
    public static void main(String[] args) {
        String text = "\n \r \r\n \\r";
        String res = text.replaceAll("\\r?\\n|\\r", "\n");
        System.out.println(Arrays.toString(res.getBytes()));
        System.out.println(res);
    }
}

Выводит следующий текст
[10, 32, 10, 32, 10, 32, 92, 114]

 
 
 \r

10 -- перенос строки (\n), а 32 -- пробел. 92 и 114 -- \ и r

CRL подписываются так же, как и сами сертификаты. Если CA не отозвала сертификат, то атакующему просто нечего вставлять в трафик, поэтому конкретно от отзыва сертификата без ведома CA этот протокол защищён

Хотя эта файловая система входит в состав ОС Linux уже более десяти лет

В вики говорят, что ей ещё нет 10 лет, а добавили её в ядро совсем недавно, в 6.7 (вот тут упоминается, что это новая фича ядра).

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

Если дать этой программе на вход вершины в том порядке, в котором они идут в искомом кратчайшем пути -- то она вероятно его найдёт. Проблема в том, что у порядка обхода в ширину такого свойства нет, так что вы просто спрятали сложность алгоритма в этот препроцессинг. Выше уже приводили несколько контрпримеров, даже без отрицательных весов, я приведу версию, в которой parents тоже считается некорректно:

Hidden text
graph = {    
    1: {2: 1, 3: 20, 5: 10},
    2: {4: 1},
    3: {5: 1},
    5: {},
    4: {3: 1},
}
#   1 ---
#  / \   \
# 2   3 - 5
# | /
# 4

# outputs:
costs = {2: 1, 3: 3, 5: 10, 4: 2}
parents = {2: 1, 3: 4, 5: 1, 4: 2}
# на самом деле должно быть parents[5] == 3 и costs[5] == 4 
# (1 -> 2 -> 4 -> 3 -> 5)

Вся программа работает за O(V + E) (если доступ ко всем использованным питоновским структурам данных работает за (амортизационное) O(1), но это вроде правда), так как внутренний цикл проходится по всем рёбрам по 1 разу, а внешний -- по всем вершинам, и это оптимальное время, за которое можно из правильно отсортированного списка вершин получить кратчайшие расстояния, но сама сортировка займёт больше времени.

Ещё не совсем понял, зачем вам нужен processed , как будто бы в него просто переписываются все пройденные вершины, которые и так обрабатываются ровно 1 раз, поскольку внешний цикл проходится по ним ровно 1 раз

Пользователи смартфонов с Android столкнулись с тем, что Google удалила с их устройств игру Wayward Souls

А точно удалила с устройств? Я на реддите вижу только сообщения о том, что игра исчезла из play store, и что установленные копии то ли не загружаются, то ли вылетают, если у них есть доступ в сеть.

https://www.reddit.com/r/AndroidGaming/comments/17g3h1c/comment/k6g0isb/

I have it installed, can not play it. Game Starts And playstore stop it.Can not find anywhere what happened. My favorite game to return to every few months...

Deactivating the WiFi and 5G did the trick for me.

Более того, система тестирует решение только на 1ом примере из условий. Это скорее даже проверка на скомпилировалось/не скомпилировалось. И об этом явно написано в условиях каждой задачи

Да что там смс, мне с 900 уже 2 раза поступали рекламные звонки. Причём после "Спасибо, мне это не интересно" бот пытался затереть что-то про "не спешите отказываться", а сразу после звонка ещё и дублирует всё это в смс (опять же на 900). Всегда воспринимал этот номер как канал для уведомлений безопасности и для обращения в техподдержку, а теперь там вот такое...

А что не так с 2FA у дискорда? У них вполне себе есть возможность добавить внешнее TOTP приложение.

Первые цифры вообще кодируют платёжную систему, так что комбинаций первых 6 цифр возможно больше 1.

Но, справедливости ради, для 1 банка вариантов первых 6 цифр значительно меньше 10^6, так что какое-то ускорение перебора там будет.

весь арт в котором нарисовала нейросетка Midjourney

Джон: ...

Том: ...

Джон: Слушай, это что, теперь кто угодно может загнать текст в Midjourney и за пару дней превратить просто текст в целый комикс?

Том: Да, а ещё этот текст можно сгенерировать с помощью ChatGPT за день.

Джон: То есть теперь к нам любой человек может 2 раза в неделю приходить с новым комиксом? Это ж закопаться можно!

Том: Слушай, а может мы её пошлём куда подальше? Скажем, что не имеет она прав на арт.

Джон: А давай!

Upd: оказалось, что проблема была в 22H2 с KB4023057, в KB5022845 всё наоборот заработало

Персональные данные пользователей ВКонтакте защищены и не передаются в
сервисы, через которые происходит подтверждение, подчеркнули в VK.

Выглядит так, что у госуслуг и банков персональных данных больше, и тут больше интересует то, какие данные передаются в VK

Сегодня заметил, что ноутбук перестаёт реагировать на что-либо через какое-то время после отключения экрана (по тайм-ауту бездействия). Ну или по крайней мере не включает экран заново.

Не знаю, связано ли с этим обновлением, но подозрительно сходится по датам.

О поступлении в университеты по ЕГЭ (а другого способа для граждан РФ без ВО/СПО нет).

Не совсем правда, есть ещё БВИ (без вступительных испытаний): если у вас есть аттестат и диплом олимпиады из перечня РСОШ, то достаточно "подтвердить" его 75-76 (в некоторых вузах бывает до 85) баллами егэ за предмет олимпиады, и вы оказываетесь в конкурсном списке выше всех людей, которые поступают по "чистым" экзаменам. При этом баллы за остальные предметы не важны, главное перейти порог по русскому и математике и чтоб в ВУЗе котировался ваш диплом (обычно список олимпиад есть на сайте вуза где-нибудь рядом с баллами егэ, в провинциальных вузах нередко берут просто почти любой диплом).

А если у вас вдруг есть диплом ВсОШ, то его даже не нужно подтверждать и он гарантированно действует во всех вузах.

Естественно, везде надо сделать оговорку, что олимпиады должны быть того же профиля, что и программа, куда вы поступаете (например, с олимпиадой по русскому не поступить на "прикладную математику и информатику").

Потому что если подтвердить поступление и потом не попасть по конкурсу – то всё, другой университет уже не выбрать.

Разве нельзя отозвать заявление, если прийти в приёмную коммисию очно? Или после этого можно только на другую программу того же вуза переподать?

Тут тоже задача-шутка. Сразу понятно, что среднее из текущего листа никак не получить.

А если так:
fun main() {
    listOf(1, 3, 3, 2, 4, 1)
            .runningReduce { acc, e -> acc + e }
            .average()
            .let { println(it) }//=8.0
}

playground

Information

Rating
6,478-th
Registered
Activity