Search
Write a publication
Pull to refresh
12
7
Alexander Kardapolov @akardapolov

User

Send message

Часть 2. Идентификация событий происходящих в Oracle PL/SQL

Level of difficultyMedium
Reading time17 min
Views7.4K

На картинке представлен пример обработки одной и той же ошибки. В первом случае ("красный" квадрат) представлен результат стандартной обработки ошибки. Во втором случае ("зеленый" квадрат) представлен результат кодирования ошибок в событийной модели логирования. Помимо информативности текста ошибки для пользователя, мы можем реализовать сбор статистики возникновения ошибки, идентификацию места возникновения ошибки. О том как это можно сделать, постараюсь описать в данной статье.

Читать далее

Графика для JVM

Reading time5 min
Views17K


Допустим, я хочу создавать качественные десктопные приложения. Я также хочу сделать это на JVM. Не надейтесь — мы еще не достигли цели. Но у меня есть план.

Почему именно JVM?


Это производительность на достаточно высоком уровне, но не заставляет вас слишком много задумываться о каждом выделение памяти. Это кроссплатформенно. В нем есть отличные языки — Kotlin, Scala и, конечно же, Clojure. C # тоже подойдет, но в нем нет Clojure.

Разве вы уже не можете создавать десктопные приложения на JVM?


Вы можете. Но традиционно AWT, Swing и JavaFX сопровождались множеством недостатков в качестве и производительности. Они были настолько существенными, что только одной компании удалось создать прилично выглядящее приложение на Swing. Это возможно, но требует огромных усилий.

Разве не все пользовательские интерфейсы Java прокляты?


Нет, не совсем. У AWT, Swing и JavaFX есть свои проблемы, но это исключительно их проблемы. Нет фундаментальной причины, по которой невозможно создать высококачественный пользовательский интерфейс на JVM. Просто это еще не было сделано.

Почему это еще не было сделано?


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

Почему не Electron?


Первая причина — производительность. JS — отличный язык для создания пользовательского интерфейса, но он намного медленнее, чем JVM. Wasm может быть быстрым, но подразумевает C ++ или Rust.
Читать дальше →

Принципиальная схема работы типичного мышления

Reading time5 min
Views6.8K

Вы когда-нибудь задумывались, как вы думаете ? Все мыслительные процессы в нашем мозге можно разделить на блоки, алгоритмы, нейронные сети, но принцип один — есть входные сигналы с сенсоров, есть какая-то схема обработки информации, и наконец, есть выходные нейроны, отвечающие за движение всех мышц и регуляцию организма. Простая схема — вход, функция, выход. Входная информация, это информация из среды. Наше тело так же является средой для информационной функции нашего мозга. Вообще средой можно назвать всё, что даёт информацию мозгу. Мозг получает эту информацию из окружающего нас мира, а так же от сенсоров внутренних органов, а именно об их текущем и прошлом состоянии. Информация поступает постоянным плавным потоком в мозг и хранится в нем какое-то время, что даёт ему возможность взглянуть целиком на график за какой-то последний промежуток времени, а не только исключительно на текущий момент. Что ж, давайте подробно углубимся, куда эта информация поступает и как преобразуется. Я уверен, что эту схему поймёт даже 7 летний ребёнок, и это именно та универсальная формула интеллекта, которой пользуются все высшие организмы на земле.

Читать далее

Кибернетическая саморегуляция здоровья или как работают защитные силы организма человека

Reading time8 min
Views8.2K

Когда много-много лет назад писал диссер, я сделаль величайшее супер-пупер-открытие века! Люди, в большинстве, стремятся найти источник здоровья вне себя (т.е. зависимость от внешнего) — витамины или травы, природа или медтехника, более энергичные или веселые собеседники, очищенная или минеральная вода, сахарозаменители или мёд и т.д. Это, конечно, хорошее дело, но это не те дроиды, которых вы ищете! Печаль нам, реабилитологам, что здоровье именно внутри себя почти никто не взращивает. Особенно мало у нас инструментов защиты от чрезмерного эмоционального стресса, депрессии и всяких вирусов со сквозняками. А ведь есть давненько, веков 100—200 примерно, способы увеличения внутренних ресурсов вегетативной и центральной нервной системы до индивидуального максимума. Upgrade организма дающие возможность произвести то бишь психофизическими техниками саморегуляции. Они не обещают бессмертия или ясновидения, но можно почти совсем (максимально) не болеть и быстрее выздоравливать от всяких расстройств. Если только Вы сами не захотите их поиметь вновь.  

Читать далее

Второй поэт после Шекспира: кто такой Александр Поуп и как он обогатил английский

Reading time8 min
Views11K

Уильяма Шекспира знают без малого все. Не только в Британии, но и во всем мире. Это поэт №1 во всем мире.

А кто знает Александра Поупа? Британцы изучают его в университетах, но мы уверены, что среди читателей Хабра с его творчеством знакомы очень немногие. Поуп — это второй по цитируемости поэт в английском языке, автор переводов Гомера и создатель целого ряда идиом, которые сегодня считаются «народными».

А дядька-то на самом деле был очень крут. Поэтому сегодня расскажем именно о нем.

Читать далее

Слабая связность

Reading time19 min
Views12K

NB: это черновик двух новых глав моей книги, посвященной дизайну API. В тексте встречаются отсылки к предыдущим главам.


Сильная связность и сопутствующие проблемы


В предыдущих разделах мы старались приводить теоретические правила и принципы, и иллюстрировать их на практических примерах. Однако понимание принципов проектирования API, устойчивого к изменениям, как ничто другое требует прежде всего практики. Знание о том, куда стоит «постелить соломку» — оно во многом «сын ошибок трудных». Нельзя предусмотреть всего — но можно выработать необходимый уровень технической интуиции.


Поэтому в этом разделе мы поступим следующим образом: возьмём наше модельное API из предыдущего раздела, и проверим его на устойчивость в каждой возможной точке — проведём некоторый «вариационный анализ» наших интерфейсов. Ещё более конкретно — к каждой сущности мы подойдём с вопросом «что, если?» — что, если нам потребуется предоставить партнерам возможность написать свою независимую реализацию этого фрагмента логики.

Читать дальше →

Full-stack мониторинг на примере Java приложений

Reading time9 min
Views20K

Всем привет! За последние пять лет мы достаточно часто сталкивались с запросами на мониторинг Java приложений. Собрав основные моменты по мониторингу Java, мы решили написать данный пост.

Сегодня мы с вами рассмотрим, что такое Full Stack мониторинг и чем он отличается от привычного “уху” понятию мониторинга, нюансы Full Stack мониторинга для Java и сложности мониторинга микросервисных приложений на Java. Расскажем, как мы реализуем Full Stack мониторинг с помощью OpenSource стандартов и платной платформы. 

Давайте определимся, что мы называем Full Stack мониторингом?

Full stack мониторинг – это подход в мониторинге производительности приложений, который подразумевает под собой мониторинг всего стека, что включает в себя:

Мониторинг приложений – сбор метрик приложения, сбор трейсов транзакций, обеспечение видимости на уровне кода и т.д.

Мониторинг инфраструктуры – метрики хостов, процессов, контейнеров и т.д.

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

Читать далее

Сборник диаграмм классификаций баз данных

Reading time1 min
Views3.3K

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

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

Замечания и предложения приветствуются.

Читать далее

Временные ряды. Простые решения

Reading time9 min
Views50K


Привет, Хабр!

В этой статье мы рассмотрим несколько простых подходов прогнозирования временных рядов.

Материал, изложенный в статье, на мой взгляд, хорошо дополняет первую неделю курса «Прикладные задачи анализа данных» от МФТИ и Яндекс. На обозначенном курсе можно получить теоретические знания, достаточные для решения задач прогнозирования рядов динамики, а в качестве практического закрепления материала предлагается с помощью модели ARIMA библиотеки scipy сформировать прогноз заработной платы в Российской Федерации на год вперед. В статье, мы также будем формировать прогноз заработной платы, но при этом будем использовать не библиотеку scipy, а библиотеку sklearn. Фишка в том, что в scipy уже предусмотрена модель ARIMA, а sklearn не располагает готовой моделью, поэтому нам придется потрудиться ручками. Таким образом, нам для решения задачи, в каком то смысле, необходимо будет разобраться как устроена модель изнутри. Также, в качестве дополнительного материала, в статье, задача прогнозирования решается с помощью однослойной нейронной сети библиотеки pytorch.
Читать дальше →

С лёгким налётом ржавчины или немного о владении

Reading time6 min
Views3.9K

Предыдущая заметка получилась не такая, как я задумывал. Но вызвала небольшую дискуссию. Может быть и в этот раз получится подискутировать. Или получится не так. В любом случае хотелось бы продолжить воровать тексты у богатых и переводить их бедным, т.е. делиться с общественностью пусть даже иногда для кого-то очевидными вещами. «Поговорим за» динамическую память?

Читать далее

Манифест: почему я не делаю свой пет-проджект постоянной работой

Reading time10 min
Views15K


Когда доходы от продаж с моего сайд-проекта пробили отметку $100k, я, к собственному удивлению, обнаружил:

Не хочу бросать основную работу.

Никакого позыва написать, что наконец-то я бросаю «крысиные бега». Не написал ни единого твита о том, как я стал творить, и «изменил собственную жизнь. (И вам это под силу! Купите мой курс!)». Не написал письма в духе Джерри Магуайера.

Подумал, может со мной что не так. Зависая в соцсетях, я постоянно натыкался на фетишизацию трудоголизма, из-за чего меня подмывало бросить работу. Такая свобода подобна нирване, «все или ничего» и, как только вкусишь ее, пути назад не будет. Чем не киносценарий?  

Я хочу написать новый сценарий – о тех, кто Творит По Совместительству. Давайте определим, что это такое, почему этим стоит заниматься, как дать этому ход, а потом довести до ума.

Не просто деньги


Годовой заработок в $100k всегда казался мне планкой, с которой начинается успешный «независимый доход». В лучшие годы мои родители зарабатывали меньше, а в большинстве городов $100k хватает на самообеспечение и даже на то, чтобы прокормить семью. Еще лучше, если доход целиком пассивный – мечтал, каково путешествовать по свету, а деньги пускай зарабатываются, пока я сплю.  
Читать дальше →

Как извлечь пользу из статической типизации

Reading time29 min
Views16K

Эта статья о том, как извлечь максимум пользы из статической системы типов при дизайне вашего кода. Статья пытается быть language agnostic (получается не всегда), примеры на Java и взяты из жизни.

Читать далее

Производительность: нюансы против очевидностей

Reading time27 min
Views6.9K

Приветствую, это текстовая версия моего доклада на JPoint-2021. Как обычно я сделал упор на случаи из жизни и на повседневные вещи, используемые каждым разработчиком. Под кат приглашаются интересующиеся производительностью и им сочувствующие.

Читать далее

Как проверять выражения на английском like a pro

Reading time3 min
Views29K

Представьте, что вы читаете текст и наткнулись на новую интересную фразу. Всегда ли вы знаете, как её правильно произнести и использовать в речи? Или, например, вы пишете письмо и не можете решить правильно ли использовали выражение. Эти ситуации типичны для изучающих английский. Что вы обычно предпринимаете? Скорее всего вы открываете гугл и, может быть, даже используете кавычки при поиске. Неплохая стратегия, но есть альтернативы получше. Меня зовут Дарья, я преподаю английский язык в EPAM, и в этой статье я расскажу про эффективные подходы и инструменты для поиска примеров использования лексики.  

Читать далее

Сила композиции

Reading time20 min
Views19K


Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


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

Читать дальше →

Wrike переходит с Dart на новый стек. Какой?

Reading time7 min
Views19K

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

Читать далее

Noisia — генератор аварийных и нештатных ситуаций в PostgreSQL

Reading time12 min
Views4.3K
Расшифровка доклада «Noisia — генератор аварийных и нештатных ситуаций в PostgreSQL» с конференции PGConf.Online 2021.

В докладе рассказывается про утилиту Noisia которая используется для намеренного создания аварийных ситуаций в СУБД PostgreSQL. Докладчик (то есть я) рассказывает о функциональности и назначении утилиты и о разных способах сломать Postgres.

Примечание: Доклад расшифрован пользователем chemtech. Антон, большое спасибо за проделанную работу. В этой расшифровке очень много правок, на мой взгляд читать дословную расшифровку любого доклада довольно сложно, поэтому я внес много правок и постарался привести текст к тому виду чтобы его было легче читать. В результате текст здесь местами может существенно отличаться от того что в видео.

Сам доклад и видео здесь.

image
Читать дальше →

Почему важно, что системы линейных уравнений решаются быстрее, чем множатся матрицы

Reading time5 min
Views22K

В 1998, когда Google только появился, его киллер-фичей был патентованный алгоритм PageRank для сортировки результатов поиска по популярности. Описанный стэнфордскими аспирантами Брином и Пейджем в научной статье, он сводится к очень простой идее:

Читать далее

Kodein. Основы

Reading time20 min
Views27K
Не нашел понятных гайдов для тех, кто Kodein видит в первый раз, а документация не во всех местах прозрачная и последовательная, поэтому хочу поделиться основными возможностями библиотеки с вами. Некоторые возможности библиотеки будут выпущены, но это в основном advanced часть. Здесь же вы найдете всё, чтобы по ходу чтения статьи нормально стартовать и начать внедрять зависимости с Kodein. Статья базируется на Kodein 5.3.0, так как Kodein 6.0.0 требует Support Library 28 или AndroidX и далеко не скоро все перейдут на них, так как многие сторонние библиотеки ещё не предлагают совместимых версий.

Читать дальше →

Information

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