Show newer

Британская газета The Sunday Times цитирует свидетельства врачей из Ирана, которые говорят, что число погибших в протестах составляет не менее 16 500, а раненых - около 330 тыс.
Чем старше маньяки, дорвавшиеся до власти, тем большим количеством жизней они готовы пожертвовать, чтобы её не потерять, хоть весь мир уничтожить.

@pureacetone А ей нельзя против исламистов выступать. Видимо друзья исламисты, которые до этого убедили её в арафатке ходить и ХАМАС защищать.

В ЕС предупредили об угрозе подрыва отношений с США из‑за тарифов Трампа для противников аннексии Гренландии
ru.themoscowtimes.com/2026/01/
{2026-01-18 - 12:28:50}

Ежегодно PKN Orlen продает около 14,5 миллионов литров сертифицированных кофейных напитков на своих автозаправочных станциях, что в среднем составляет 93 чашки в минуту. Кофе Fair Trade Certified, произведенный по стандартам справедливой торговли, также доступен на АЗС компании в Чехии, Литве и Словакии. Кроме того, 5 миллионов литров молока в год, добавляемое в кофе, поставляется польскими производителями, а бумага для изготовления чашек - из сертифицированных источников.

“Знак Fairtrade, отмеченный в каждой чашке кофе в торговых точках Stop Cafe, является гарантией того, мелкие производители и работники плантаций получили справедливое вознаграждение за свою работу. Покупая кофе на Orlen, мы вносим вклад к построению более справедливого мира. Это помогает мелким производителям в развивающихся странах улучшать условия жизни для своих семей и сотрудников, тем самым поддерживая концепцию социальной и экологической ответственности”, — сказал Войцех Мушинский (Wojciech Muszyński), исполнительный директор по розничным продажам PKN ORLEN.

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

Orlen является крупнейшим дистрибьютором кофе Fairtrade в Польше

“К сожалению, средний заработок мелких производителей оставался на одном уровне в течение двадцати лет. Учитывая рост стоимости жизни и производства, фермеры фактически становятся беднее. Действуя на принципах справедливой торговли, система Fairtrade помогает небольшим производителям кофе выйти из бедности и обеспечить достойные условия жизни. Это было бы невозможно без участия таких компаний, как PKN Orlen”, — добавляет Анджей Свава (Andrzeja Żwawy), президент Fairtrade Polska.

Фермеры, продающие кофе Fairtrade, получают как минимум минимальную цену и дополнительный бонус Fairtrade. Минимальная цена Fairtrade защищает их от внезапного падения цен на #кофе на Нью-Йоркской фондовой бирже. В настоящее время минимальная цена Fairtrade примерно на 40% выше, чем рыночная цена. Бонус Fairtrade — это дополнительные средства, выплачиваемые производственным кооперативам, которые можно инвестировать в модернизацию производства и улучшение местной инфраструктуры. Решения о распределении бонусов принимаются демократическим путем всеми фермерами, входящими в кооператив. Действуя в рамках кооператива, фермеры получить преимущества для ведения переговоров и более легкий доступ к средствам производства.

Уроки истории

Билл Клинтон не мой любимый президент.
Из-за множества причин, не включая Монику.

Но он кое-что знает за террориста Арафата и мирный процесс.
Это когда террористам предлогали половину Иерусалима, 96% процентов Иудеи - Самарии и на выбор 4% территории Израиля.

Арафат сделку не одобрил.
Желание косить бабло на бесконечной "войне с колониализмом" оказалось сильней.

Про Арафата забыли уже все, включая его жену.
Но подробности озвученные бывшим президентом США интересные.

Звезда сборной Таиланда по киберспорту "подделала" карьеру и никогда не играла в видеоигры — всю команду исключили из турнира itc.ua/news/zvezda-sbornoj-tay

Сначала onion-адреса майнит, теперь бенчмарки гоняет… Фиксики в компе уже афигели от нагрева цпу (до ~60°C в первом случае, до 50 во втором)

**Голосовать за несвободу ради свободы? Либертарианский акселерационизм без истерик**

**ЦА:** либертарианцы, умеренные консерваторы, аполитичные прагматики, уставшие от , а также все, кто начинает подозревать, что — это просто хорошо законсервированная несвобода.

**Вступление**
Идея звучит как интеллектуальная провокация: поддерживать ради . Кажется абсурдом — аплодировать тем, кто множит налоги, расширяет контроль и превращает любой бытовой жест в форму отчётности. Но логика здесь не эмоциональная, а механическая. Иногда, чтобы конструкция рухнула, её достаточно перестать подпирать. Система, перегруженная собственными правилами, умеет ломаться сама.

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

История учит без лекций. В СССР вера в контроль исчезла не после чтения Хайека, а после пустого холодильника. Экономическая реальность оказалась убедительнее телевизора. То же работает и сейчас. Хочешь, чтобы рынок перестал казаться «дикой теорией» — дай людям пожить при . Хочешь, чтобы фраза «» перестала выглядеть мемом — заставь заполнить декларацию на тринадцати страницах и получить штраф за лишнюю запятую.

Почему в США это странным образом работает через ? Потому что — партия стабильности. Да, они сдерживают рост налогов, но взамен предлагают собственный набор регуляций: моральных, миграционных, идеологических. При них жизнь «терпимо-нормальная», а значит — мысль о принципах свободы откладывается. Статус-кво убаюкивает.

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

Государство в этой модели — не злодей, а подросток, зависимый от контроля. Пока ему всё прощают, он не взрослеет. Дай ему пройти собственный кризис — и он либо меняется, либо ломается. Акселерационизм — это не капитуляция, а стратегия: позволить противнику довести свои методы до предела, где они перестают работать.

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

Битарх  
Голосуем за «Демократов» ради свободы? Да, это не шутка! Да-да, звучит безумно: зачем поддерживать тех, кто душит людей налогами, регулирует каждый...

**Литература**

Фридрих Хайек — *Дорога к рабству*
Людвиг фон Мизес — *Бюрократия*
Людвиг фон Мизес — *Человеческая деятельность*
Мюррей Ротбард — *К новой свободе*
Джеймс Бьюкенен, Гордон Таллок — *Расчёт согласия*
Мансур Олсон — *Логика коллективных действий*
Чарльз Мюррей — *Losing Ground*
Альберт Хиршман — *Exit, Voice, and Loyalty*
Роберт Хиггс — *Crisis and Leviathan*
Дэвид Гребер — *Утопия правил*

Битарх  
Голосуем за «Демократов» ради свободы? Да, это не шутка! Да-да, звучит безумно: зачем поддерживать тех, кто душит людей налогами, регулирует каждый...
Pure Acetone  
Человек и пароход (версии 2020-х) Когда пароход давно ушёл, а человек остался на берегу и продолжает отдавать команды в туман, это уже не история о...

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

Где забастовки в университетах ?

За короткое время количество убитых в Иране побило все возможные предположения.

Где эти вокнутые университетские студенты и проффесора с криками "Free Iran" ?

Единственный человек, с яйцами и бомбардировщиками Б-2 - сидит в Белом Доме и позволяет себе прямо высказываться в поддержку иранского народа.

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

**Человек и пароход (версии 2020-х)**

Когда пароход давно ушёл, а человек остался на берегу и продолжает отдавать команды в туман, это уже не история о технике и прогрессе. Это притча о власти, которая разговаривает сама с собой, и языке, который изображает движение, когда движения нет. Пароход был — с курсом, машинным отделением и ответственностью. Теперь остался только человек. И пар из ушей.

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

Раньше у него были крылатые фразы. Не потому что они были остроумными или точными, а потому что улетали — прочь от смысла, ответственности и реальности. Эти фразы жили самостоятельной жизнью, как чайные пакетики в стакане с политическим кипятком: вроде форма есть, а содержимого давно нет. Сегодня же и этого мало. Теперь это не крылатые фразы, а какие-то подбитые воробьи — падают сразу, не взлетая.

Быстропрогрессирующая шизофазия — это не оскорбление и не диагноз, а удобный технический термин. Речь, состоящая из правильных слов, собранных в грамматически корректные предложения, которые при этом не описывают ни одну наблюдаемую реальность. Поток сознания, лишённый даже иллюзии внутренней логики. Как если бы автогенератор агрессивных комментариев обучили на архивах позднесоветских передовиц, телеграм-каналах военкоров и стенограммах заседаний Совбеза, а потом забыли выключить.

В этом есть своя трагикомедия. Когда-то Медведев изображал модернизацию, айфоны и юридический формализм. Это был слабый, но внятный спектакль. Теперь сцена пуста, декорации сгорели, а актёр продолжает монолог, обращаясь к воображаемой публике. Он угрожает миру, которого не понимает, и спорит с оппонентами, которых не существует. Его враги абстрактны, как зло в плохом фэнтези, а победы — гипотетичны, как технологический суверенитет в презентациях.

И тут возникает парадокс: чем более радикальной и истеричной становится риторика, тем меньше в ней власти. Настоящая сила не орёт капслоком и не швыряется проклятиями через день. Настоящая сила молчит, подписывает и исполняет. А когда вместо решений остаются только словесные судороги, это всегда симптом. Не личный даже — системный.

Медведев сегодня — это говорящая утечка. Из него вытекает не политика, а распад. Распад языка, распад смыслов, распад представления о реальности как о чём-то, что нельзя отменить постом. Его тексты полезны не как позиция, а как материал для патологоанатомии поздней власти: вскрытие показывает, что мозг давно заменён эхом собственных лозунгов.

И в этом смысле он уже не страшен. Он показателен. Как табличка «Осторожно, высокое напряжение», прибитая к давно обесточенному столбу.

bastyon.com/pureaceton?ref=PDQ

# Взаимодействие Java и C/C++

6 min. reading
12 декабря 2017

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

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

Для решения этой проблемы разработчики Java включили в язык возможность вызывать из Java-программ функции, реализованные на других языках программирования, через нативные методы. Подсистема Java, реализующая эту возможность, называется **JNI** (Java Native Interface — интерфейс Java для доступа к нативным методам).

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

## Создание класса

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

```java
public class HelloJNI {
static {
System.loadLibrary("hello"); // Загрузка библиотеки hello.dll
}
// Объявление нативного метода sayHello(), без аргументов, возвращает void
private native void sayHello();
public static void main(String[] args) {
new HelloJNI().sayHello(); // вызов нативного метода
}
}
```

Мы объявили класс `HelloJNI`, содержащий нативный метод `sayHello`. Разберём код подробнее.

Блок `static` означает, что библиотека будет загружена во время загрузки класса. Чтобы программа смогла найти библиотеку, необходимо добавить путь к ней в `classpath`. Это можно сделать при запуске программы, добавив аргумент `-Djava.library.path=PATH_LIB`. Есть и другой вариант: вместо `loadLibrary` использовать `load`, но тогда придётся указывать полный путь к библиотеке (включая расширение `dll` или `so`).

На данном этапе у нас есть класс, но он никак не связан с библиотекой — самой библиотеки у нас пока нет.

## Создание библиотеки

Следующий шаг — компиляция файла и создание `h`-файла.

```bash
javac HelloJNI.java
javah HelloJNI
```

В результате мы получим следующий заголовочный файл:

```c
/* DO NOT EDIT THIS FILE - it is machine generated */
<jni.h>
/* Header for class HelloJNI */

_Included_HelloJNI
_Included_HelloJNI
__cplusplus
extern "C" {

/*
* Class: HelloJNI
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *, jobject);

__cplusplus
}


```

Что можно понять, глядя на этот файл? Во-первых, код на C будет подключать файл `jni.h`, который, к слову, содержит все необходимые функции для работы с JNI. Во-вторых, видно, что метод, описанный в классе `HelloJNI` как

```java
private native void sayHello();
```

в программе на C выглядит немного иначе:

```c
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *, jobject);
```

Как видно, функция принимает два аргумента, хотя мы их явно не указывали. Что это за аргументы?

* `JNIEnv*` — указатель на JNI-окружение, предоставляющее доступ ко всем функциям JNI;
* `jobject` — указатель на объект `this` в Java.

Определение `JNIEXPORT` в файле `jni_md.h`, который подключается из `jni.h`, выглядит так:

```c
JNIEXPORT __declspec(dllexport)
```

А `JNICALL` там же определяется следующим образом:

```c
JNICALL __stdcall
```

После этого становится понятно, что все эти «страшные» конструкции — всего лишь соглашения, используемые при вызове обычной экспортируемой функции.

## Реализация на C

Теперь реализуем описанную функцию в `c`-файле.

```c
<jni.h>
<stdio.h>
"HelloJNI.h"

JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject thisObj) {
printf("Hello World!\n");
return;
}
```

Как видно, функция выводит строку в консоль и возвращает `void`. *Главное — не забыть подключить заголовочный файл, созданный ранее.* Файл `jni.h` находится в каталогах `JAVA_HOME\\include` и `JAVA_HOME\\include\\win32`.

Теперь можно скомпилировать файл:

```bash
gcc -Wl --add-stdcall-alias -I"%JAVA_HOME%\\include" -I"%JAVA_HOME%\\include\\win32" -shared -o hello.dll HelloJNI.c
```

Поясним параметры:

* `-Wl --add-stdcall-alias` — опция, предотвращающая возникновение ошибки линковщика (`UnsatisfiedLinkError`);
* `-I` — дополнительные пути для включаемых заголовков (в нашем случае — `jni.h`);
* `-shared` — генерация динамической библиотеки;
* `-o` — имя выходного файла.

Теперь можно запустить Java-программу:

```bash
java HelloJNI
Hello World!
```

*Если вы использовали метод `loadLibrary`, запускать программу нужно так:*

```bash
java -Djava.library.path=PATH_TO_LIB HelloJNI
Hello World!
```

## Заключение

В статье были рассмотрены общие принципы использования JNI. С помощью этой технологии можно также вызывать методы классов, создавать новые объекты, передавать различные параметры (массивы, строки и т. д.), возвращать значения и многое другое. Подробнее можно прочитать [в официальной документации Oracle] и [в практическом руководстве Javamex].

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

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

Тем не менее, несмотря на все минусы, выбор технологий всегда остаётся за программистом.

Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.