?

Log in

No account? Create an account

Entries by category: it

[sticky post]Заглавный пост
Я
donz_ru
Пишу обо всем, что меня интересует. А на данный момент, хотя интересы меняются довольно редко, это: путешествия, банковские и житейские вопросы, IT и разработка. Лытдыбра с котиками мало (но котики могут появиться в любой момент!). Стараюсь делать посты информативными и полезными. Если кратко, то фотографии пляжей Таиланда или перепост "у маленького Вани пиздецома, срочно нужна пересадка бабла" вы здесь вряд ли найдете, а вот расписание общественных автобусов в Доминикане, выбор рюкзака или инструктаж по влезанию в ипотечную кабалу - это запросто. Как уже, наверное, поняли, ругаться в меру можно. Мера определяется на глазок владельца журнала.
Основные тэги журнала:
Инфо о стране - быстрая информация о посещенной мной стране: где жить, как передвигаться, как оставаться на связи, что там с деньгами, чем заняться, какие особенности и т.д.
Ликбез - обычно пошаговая инструкция для достижения какого-либо блага или его дотошное описание. Может касаться как вопросов путешествия, так и получения различных документов и прохождения бюрократических процедур.
Полезное - если на момент написания казалось, что пост будет полезным.
IT - все, что касается IT (логично, правда?)
Банки - все про банки.
Вылазка - путешествия, туризм и т.д.
Если хотите что-то написать о себе, узнать обо мне, сообщить мне свое мнение о чем-либо или ком-либо, включая автора журнала - велкам в комментарии к этому посту. Также можно отписаться при желании зафрендиться (страдаю взаимофрендингом).

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

Ответ на загадку
Я
donz_ru

Сама задачка здесь

  Проблема в том, что в InnoDB уровень изоляции по умолчанию REPEATABLE READ. Если две транзакции одновременно сделают селект фор апдейт по одному и тому же предикату, а такой записи не будет, то первая транзакция, которая попытается вставить эту запись, будет заблокирована, так как другой транзакции уже было обещано, что такой записи нет, и никто на нее блокировку не поставит. Вторая же транзакция потом тоже захочет сделать такой же инсерт и тут уже она будет заблокирована инсертом первой транзакции. Па-бам, у нас дедлок на ровном месте!

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


Что будет завтра или немного понастрадамлю
Я
donz_ru

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

Попробую еще раз. https://meduza.io/news/2019/07/19/zhiteley-kazahstana-obyazali-ustanovit-sertifikat-bezopasnosti-dlya-zaschity-ot-hakerskih-atak-i-prosmotra-protivopravnogo-kontenta — это нас ждет в более причесанном виде в ближайшие три года.
Для непосвященных: предлагается установить сертификат, после чего казахские товарищи майоры будут иметь доступ к TLS трафику, используя атаку man-in-the-middle. Исключения составят те ресурсы, которые имеют дополнительные проверки, а точно ли клиент доверился именно тому сертификату, который выпустил именно сам ресурс. Тут, если честно, я немного плаваю в нюансах, но общий смысл такой.

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


ZenMate - каждому россиянину!
Я
donz_ru
Если списки Роскомнадзора о блокировках сайтов уже начинают вам надоедать.
Если чувствуете, что без RuTracker'а, которого скоро тоже порежут, жить не сможете
То самый простой способ прокрутить Роскомнадзор - установить плагин ZenMate Security, Privacy and Unblock VPN!

В магазине Хрома есть еще один ZenMate в разделе приложений. Он неправильный, вам он не нужен. А нужен именно с тем названием, что указано выше. После установки плагин захочет, чтобы вы оплатили премиум аккаунт, но он не нужен, так что смело отказывайтесь.
ZenMate есть под все современные браузеры, андроид, iOS и вроде как под ИЕ тоже.
Использование простое - тыкнули левой кнопкой мыши на иконке плагина, тыкнули еще раз в правом нижнем углу всплывшего окна на переключатель On-Off. Все, профит.

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

Удержание GPRS-сессии
Я
donz_ru
Несколько обобщил заголовок, но, думаю, понятно, что речь о мобильном интернете (EDGE, 3G и т.д.)
ОСС "в связи с кризисом" на неинтернеториентированных тарифах ввели округление до 100Кб при завершении каждой GPRS-сессии. Неважно, десять байт вы скачали или девяносто килобайт - цена будет одинакова. Соответственно, чтобы пользователи не платили за воздух, каждый разработчик сетевого приложения должен позаботиться об удержании сессии. То есть, чтобы не создавать новое GPRS-подключение на каждый коннект к серверу, а работать в одной большой сессии до закрытия программы или другого явного действия по окончанию работы с интернетом.
В J2ME явных способов управления GPRS-сервисом нет, значит надо держать высокоуровневый коннект. Вначале в голову лезли всякие мысли о создании мелкого демона на сервере, с которым клиент будет перекидываться парой байт каждые несколько минут. Вариант осложнялся тем, что сервер должен одновременно держать несколько тысяч соединений. Коннекты очень легкие, но все равно виден геморрой в такой реализации.
После некоторых раздумий пришел к простому решению: открываем коннект к веб-серверу и забываем про него. То есть, банальное SocketConnection holdingConnection = ( HttpConnection )Connector.open( "http://mywebserver.xyz" ); Приличный веб-сервер со своей стороны закроет соединение через несколько секунд, а значит нагрузка на него нулевая. Но мобильный телефон не получает инструкции holdingConnection.close() от программы, а значит соединение хоть и закрыто, но мобила думает, что оно еще понадобится пользователю. Поэтому телефон не инициирует закрытие GPRS-сессии со своей стороны. ОСС в свою очередь думает, что GPRS-сессия еще понадобится телефону, который думает, что хттп-соединение еще понадобится пользователю. И это работает.
Опытным путем было выяснено, что московские операторы зыкрывают сессии без проявления сетевой активности через:
Мегафон - 1 час
Билайн - 1.5 часа
МТС - 4 часа

Этого уже вполне достаточно, чтобы обеспечить непрерывность GPRS-сессии. Если пользователь битый час не использует интернет, может он ему действительно не нужен?
Но хочется все по-чесноку, поэтому при каждой полезной сетевой активности проверяется, что удерживающий коннект не слетел, а если слетел, то он восстанавливается. А каждые полчаса без полезной сетевой активности создается новое удерживающее соединение после чего сразу же закрывается старое. Делать надо именно в порядке "сначала открыл - потом закрыл", чтобы мобила не успела увидеть полное отсутствие коннтеков, иначе может и GPRS-сессию прикрыть. Сам процесс соединения с сервером уже дает активность в канале передачи данных, так что обмениваться байтами на высоком уровне не надо.
Конечного тестирования еще не прошло, но вижу, что все работает. На Билайне сессия держалась около четырех часов, после чего я ушел домой. Завтра посмотрю, протерпит ли всю ночь. Навряд ли, так как операторы специально накрывают длительные сессии, чтобы народ не забывал платить за округления.
Вот, что удалось узнать от ОСС:
1)МТС. Клятвенно заверили, что GPRS-сессии по инициативе оператора не закрываются вообще, только если технические неполадки или "вне зоны действия". Пока точно известно, что есть четыре часа для неактивной сессии и более четырех для активной
2)Билайн. Так как неосторожно ляпнул про уже проверенные 90 минут на неактивной сессии, мне это число и назвали в качестве максимального времени, не забыв упомянуть, что это "в целях вашей же безопасности". Точно известно про 90 минут на неактивной сессии и более четырех часов на активной
3)Мегафон. Дозванивался 15 минут - песец. Говорят, что обрубают каждые сутки где-то между полуночью и часом ночи. Реально проверено, что час при неактивной сессии и более четырех при активной.

Дефрагментация в Windows XP
Я
donz_ru
На работе решил как-то проверить, не пора ли провести дефрагментацию.

Кому интересен дефраг под XP, жмакаем сюдаCollapse )
Tags: