Pull to refresh
4
0.1
Георгий @gochaorg

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

Send message

Все ничего только ссылок не хватает, а в частности

1) https://habr.com/ru/articles/739808/ [HTTP API & REST] Терминология. Мифология REST. Составляющие HTTP-запроса

2) Стандартизации REST как таковой нет, ну вот с разбегу RFCnnnn которое прямо описывало понятие таковое, не двусмысленно и четко - я не нашел

А соответственно, REST каждый волен понимать по своему, хотя есть разные трактовки на вкус и цвет

а) https://standards.rest/

б) https://restfulapi.net/

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

Подышав на стекло, так, что бы оно запотело, напишите послание указательным пальцем. Влага испариться, но след от пальца оставляет еще жирные прозрачные участки, которые могут так быть обнаружены если подышать на них или посыпать например пудрой

Этот вариант подходит как для внешних помещений, так и для внутренних - например ванна.

Варианты отпечатки пальцев, борозды и кислоты лимонной можно сочетать на одной поверхности - так вы увеличите плотность передачи данных

Это были перечислены методы шифрования данных, если сообщение хорошо зашифровано, то его доставку можно осуществлять по открытым каналам передачи данных и при том по несколько обозначенным выше путям передачи, можно например начать с двора, детвора часто обменивается игрушками например, вполне одна из таких игрушек может содержать послание, можно поучаствовать в песочнице и обменяться пластиковыми лопатками или ведерками.

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

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

Если нет молока, то думаю лимонный сок подойдет, там кислота и при высыхании станет прозрачной, а при нагревании даст оттенок отличимый от листа бумаги

Третий вариант, если у вас нет молока или лимона, возьмите иголку и тупой стороной надавите текст послания на бумаге, важно что бы не проколоть и глубина борозды не была с разбегу заметна при фронтальном взгляде

Для дешифровки нужен обычный карандаш - например Конструктор, возьмите его в руку и движением всей кисти и размашистыми движениями начните черкать грифелем по бумаге, слегка прикасаясь. Там где есть борозда, будет происходить микро удар о борт борозды, что отразиться в свою очередь как более темное пятно, по последовательности пятен вы сможете легко воспроизвести изначальный текст или рисунок послания

коль знаком, тогда меняет дело

Я имел ввиду примерно такое

есть такой синтаксис

class * {
   @ru.ok.android.commons.os.AutoTraceCompat
   * *(***) {
       before void TraceCompat.beginTraceSection(trace);
       after void TraceCompat.endSection();
   }
}

Тут указанна аннотация и способ ее интерпретации

В целом аннотация на ура переноситься в что-то типа такого

class MyFeature123 {
   @Wrap(ru.ok.android.commons.os.AutoTraceCompat.class)
   void wrapImpl1234(){
      method.before(traceData.get());
      method.after(resultData.get());
   }
}

В первом случае - синтаксис ByteWaever, во втором Java

Аналогично строиться логика для

class * extends android.app.Activity {}

В такое на java

@Extends(android.app.Activity.class)
class MyFeature124 {
    @SourceMethods({
        @SourceMethod{"meth1",args={TypeArg1.class,TypeArg2.class}},
        @SourceMethod{"meth2",args={TypeArg3.class,TypeArg4.class}},
    })
    void wrapImpl1235(){}
}

Просто это напоминает грабли с AspectJ ранних версий или кто там... у них был/есть свой язык для аспектов ajc как то так было расширение.

Язык, если не ошибаюсь, буквально 1-2 ide поддерживался каких то версий

А если синтаксис ByteWeaver синтаксис умещается 10-20 грамматических правил, без типов (ну типов для корректности компиляции ByteWeaver), то в целом то...

aspectJ - вот точно перегружен не нужной терминологией, да и функциональность у него все же узкая, по сравнению с asm

Вы не зависимо от asm разрабатываете или поверх asm ?

Дальше что собираетесь с библиотекой делать ?

Все это интересно, но вот тут https://github.com/gochaorg/jvmbc/tree/main/jvmbc-score3/jvmbc-score3 ради интереса писал компилятор/декомпилятор из/в class <-> json (цель немного другая была, а это побочка, пот тому никаких комментов prod ready нет)

Байт код можно в json, а с ним значительно легче работать, поменял его как надо, и сохранил обратно class

А тут у вас и свой язык еще... это как-то over попахивает, вы прикрутили langaue server к своему языку ?

Не знаю на сколько надо было свой язык придумывать, но вроде бы хватило и обычной Java с аннотациями, и из коробки с ide вы получаете поддержку написания трансформаций байткода

Можно дополнить либу, я бы так делал:
либа - отдельный maven - jar
плагин для бд - другой maven jar
связка lib - plugin через ServiceLoader (https://habr.com/ru/articles/118488/)

выбор какой плагин активировать через либо jdbc url (https://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#getURL--) , либо jdbc driver class (instance of)

Собственно не обязательно лочить всю таблицу, достаточно лочить только один объект, например какую ни будь спец запись в таблице, которая будет содержать maxId

А вообще можно положиться на UUID или hash значения - и выполнять upsert/merge - только, тогда возникает в случае hash - ситуация как race condition, а uuid - по сути не связан с полезными данными

оба варианта, так себе... без lock не обойтись

вопрос, а вот действительно ли нужно выносить такую важную штуку как id/Fk/Pk в java ? если только для читабельности ошибок, так вроде кол-во субд у нас в мире не бесконечно, основных/mainstream 4, если считать еще всяких недавно появишся, так не более 20-30 штук, маппинг ошибки конкретной бд в свою ошибку приложения сделать вроде не сложно, да и в модели можно комментарий на русском/англиском/ оставить - что вот это поле(я) являются unique

А оно только в код gnu asm компилируется или на прямую в exe ?

Получается проверка на уникальность в java, а в бд его нет ?, если так, тогда странное:

По скольку уникальность выступает требованием для сущности в таблице, тогда перед вставкой необходимо обеспечить атомарный доступ к таблице, ну то есть одно-поточный.

Если не обеспечить эту атомарность, то будет такое

| # | client 1      | client 2       |
|---|---------------|----------------|
| 1 | insert begin  |                |
| 2 |               |  insert begin  |
| 3 |               |  insert finish |
| 4 | insert finish |                |

client 1 и client 2 - хотят вставить одну и ту же запись - по идее только один должен суметь
но будут вставлены обе записи, по скольку каждый клиент работает в своей сессии/транзакции и включен режим MVCC или SnapShot isolation... read commited

по скольку на начало операции insert никто из них не видит изменений соседа

предварительная проверка в духе (table.field1Constraint1 = value1Constraint1 AND table.field2Constraint1 = value2Constraint1...) OR (...другой констрейнт)

не сработает в этой ситуации, по скольку опять же read commited еще не произошел, да же если insert был, но не было еще commit - то, опять же сосед ничего не узнает

В любом случае как не крути, необходима блокировка, по скольку id - должно быть уникальным значением

блокировка может быть и не явная, например по просить новый id у базы, например sequence (oracle)

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

я бы придерживался первого подхода и мапил все сообщения от разных бд в java, меньше головной боли и спокойная ночь обеспечена, после релиза хотя бы по этому пункту

Белила титановые, цинковые и свинцовые - все они сейчас продаются, но в магазинах в основном только титановые. Так вот титановые белила - самые менее насыщенные. А если пишете картину, то белил в обычном случае надо больше чем других, а с этими все резко хуже, их раз в 5-10 больше надо, чем тех же свинцовых. Титановых придется накладывать в несколько слоев, что бы хоть как-то перекрыть краску. Ну а на счет вреда, ... не знаю на счет производства, но у меня есть выборка условно из 20 человек, которые по роду деятельности пользуются белилами на протяжении 30+ лет. Вот отравления желудка или еще ... что связанного именного свинцом/цинком не замечено.

Но ... внезапно в начале 200х их объявили вредными - и фиг купить стало, ... ладно сейчас вроде по проще, а тогда внезапная истерия.

Другой пример, сам и вся группа из 15 человек, и сколько было до меня и после меня, на свинце выколачивали чеканку. т.е. по 6-8 часов, 3-5 раз в неделю, на протяжении года взаимодействовали с опасным свинцом... и вот знаете... что самое опасное при чеканке ?
шум

Ну и третье... опасные вещества.... у... свинец... да вот пофиг, при ювелирном деле - пайке, используются флюсы (смесь борной кислоты и буры), а для удаления флюса - соляная кислота - 2..5%. у нас была 2%. так вот банку с водой и кислотой на глаз не отличишь, они обе прозрачные. А проверяли просто - на вкус, или палец засовываешь в банку или просто капаешь на руку и слизываешь. Если кисло становилось, с легким щипанием - то кислота. проходило буквально за 3-5 сек. Кислота во рту быстро смешивается с другими жидкостями и растворяется. А если вспомнить что в желудке кислота и по сильнее будет, то... вообще не страшно.

А вы мне тут страшными пигментами пугаете, ой боюсь, боюсь...

Извеняюсь, а где операция flatMap?

Как то мало операций, да и не те, filter и map легко можно заменить на flatMap, а fold, size для ограниченный (конечных) итераторов годиться

Хорошая статья, вопрос а как на счет пиксельного монитора ?

Странно как-то все написано, или у меня деформация и я читаю не правильно

Остались у меня вопросы с понимаем текста

Взаимосвязаность

Системное мышление требует изменения образа мышления: от линейного к круговому. Фундаментальный принцип этого сдвига заключается в том, что всё взаимосвязано. Мы говорим о взаимосвязанности не в духовном, а в биологическом смысле.

«Система — это набор взаимосвязанных компонентов, которые работают вместе в определённой среде и выполняют все функции, необходимые для достижения цели системы».

Вот это определение больше напоминает математическое-логическое определение, но у меня не клеится "биологическое" к определению Системы...

Если биологическое, то наверно надо начать с нейромедиаторов, аксонов, дендритов и т.д....

Говоря «всё взаимосвязано» с точки зрения системного мышления, мы определяем фундаментальный принцип жизни. Исходя из этого, мы можем изменить свое видение мира, перейдя от линейного, структурированного «механического мировоззрения» к динамичному, хаотичному, 

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

Что значит взаимосвязано ? это где взаимосвязано ? у меня в голове , в моих заблуждениях ? или они связь существует объективно (эти вроде как наука занимается, яблоко и Ньютон) или в программном коде, там вот, все взаимосвязано (порой так, что лучше не надо). Как то хочется определить онтологический статус (мое воображение - субъективно, объективно или логически необходимо как математика) взаимосвязей в Системном мышлении.

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

Вот хотел бы определиться с этим фундаментальным принципом взаимосвязи, он объективен или все же субъективен ?

Прямой аналог подгрузки скриптов  - это директива import в C++

я имел ввиду загрузку по сети файлов (примитивный случай GET запрос -> и функция eval), а этот пример статической компиляции - и он принципиально другой

Касательно архитектуры приложений - то, это только windows приложения, то есть других не бывает что ли? т.е. приложения под arudino и микроконтроллеры, DOS блин, под крипту (смарт контракты), и т.д. уже не самостоятельные приложения ?

если уж докапыватся, то в частности DLL, Threads, OOP - это все частные случаи технологий, и то что их где-то нет, а где-то по другому реализованы (js) вкусовщина

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

те же dll в js заменяются на подгрузку скриптов по сети и их выполнение, и принципиальной разницы между dll и загрузкой скриптов нет, а вот утверждать что dll прям вот обязательно для js разработчика, ну странно

1
23 ...

Information

Rating
3,974-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity