Как стать автором
Обновить
16
0
Роман @lampa

Пользователь

Отправить сообщение

Если БД используется как olap, то всё это рабочие схемы. Переливки во временные таблицы, отключение репликации, расчёт на партициях, блин да даже ram диск использовать это вполне норм. Да, тогда надо брать спарк, но тут речь про постгрю :-)

Вообще если предполагается какое-то массовое удаление и речь зашла про доп. подготовки вроде отключения триггеров, то есть еще вариант - таблицу готовим в рид онли, на её основе создаем новую через `create as select` и переименовываем новую в старую, а старую потом дропаем, иначе это удаление вообще может зависнуть)))

@aabzel а не знаете, могут ли два и более устройств одновременно получать расстояние друг до друга? А может еще и направление?

да, но по сравнению с отладочными платами esp32 за 150-250рэ - разница существенная, уже не получится взять и купить 10-20 штучек поиграть)

Цена на эти модули кусачая, но с другой стороны какие здесь аналоги? Я в своё время пытался с десяток esp32 подружить между с собой с помощью RSSI, но на практике это не работает, определить кто на каком расстоянии +-10м сложно

"Гора" исключений на самом деле не гора, а структура для ответа ошибок. Ответы в одном месте, ошибки в другом. ResponseEntity - это конечный объект, кастомный exception - это то, что содержит объект запроса (например) и далее обрабатывается по своей логике. Постоянно наблюдаю в концепции ResponseEntity разные форматы ошибок (как одна из болей) для одной одинаковой ситуации в разных эндпоинтах. Ну и ломание дженериков вообще попахивает не очень))) В целом исчерпывающая статья https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

Предполагается, что для создания/изменения/удаления и просмотра вы используете разные эндпоинты

@ResponseStatus(HttpStatus.CREATED)

Он самый. В идеале прямо в рантайме хуки добавлять, но этого я еще не пробовал)
Кстати всё это можно попробовать проделать и через asm:

Заголовок спойлера
public class BadClass {
    public String badCheck(String value) {
        System.out.println("123");
        return value;
    }
}

public class GoodClass {
    public static String goodCheck(String value) {
        System.out.println("321 " + value);
        return Objects.requireNonNullElse(value, "hello!");
    }
}

public class Application {
    public static void main(String[] args) throws Exception {
        ClassReader reader = new ClassReader(Application.class.getResourceAsStream("BadClass.class"));
        ClassWriter writer = new ClassWriter(reader, ClassWriter.COMPUTE_MAXS);
        reader.accept(new YourClassVisitor(writer), ClassReader.EXPAND_FRAMES);

        FileOutputStream out = new FileOutputStream(Application.class.getResource("BadClass.class").getFile());
        out.write(writer.toByteArray());
        out.close();

        new BadClass().badCheck(" test ");
    }

    public static class BadClassVisitor extends ClassVisitor {
        public YourClassVisitor(ClassVisitor cv) {
            super(Opcodes.ASM9, cv);
        }

        @Override
        public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
            if (name.equals("badCheck")) {
                return new BadMethodVisitor(super.visitMethod(access, name, desc, signature, exceptions));
            }
            return super.visitMethod(access, name, desc, signature, exceptions);
        }

        private static class BadMethodVisitor extends MethodVisitor {
            public YourMethodVisitor(MethodVisitor mv) {
                super(Opcodes.ASM9, mv);
            }

            @Override
            public void visitCode() {
                mv.visitVarInsn(Opcodes.ALOAD, 1);
                mv.visitMethodInsn(Opcodes.INVOKESTATIC,"com/lampa/liqui/GoodClass","goodCheck","(Ljava/lang/String;)Ljava/lang/String;",false);
                mv.visitInsn(Opcodes.ARETURN);
            }
        }
    }
}


Не ради холивара, но для TLS я поднимаю mitmproxy и успешно наблюдаю за запросами и ответами.
ZvoogHub а можно еще сделать, чтобы при уходе с вкладке аудио продолжало играть?
Очень классно, я залип) Но вот крутилки плохо работают (точнее вообще непонятно как работают) и проще настраивать всё через меню
Это жеж сарказм)) А любители глобальных переменных всё равно смогут в статические поля накодить)
Увы, но это не пэхапэ
Если что, то это фотографии откуда-нибудь с шаттерстока с прифотошопленными татухами))
На самом деле фича очень полезная что в идее, что в хроме)
Как люди узнают несовершенную упаковку?
— теперь там нет зарядки))
У меня постоянно на 970 evo plus NVMe температура около 65-70, На 970 evo SATA 32-40
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность