Блог opiumsМысли, мысли, мысли...https://blog.opiums.eu/feed2022-09-22T19:38:23+07:00Мы ушли воевать под конец ноября<p><img src="http://blog.opiums.eu/content/public/upload/storm_0_o.jpg" alt="Мы ушли воевать под конец ноября" /><audio style="width: 100%;" controls="controls" preload="metadata"><source src="http://blog.opiums.eu/files/audio/08.storm.mp3" type="audio/mpeg" /><img src="http://blog.opiums.eu/files/audio-player.png" /></audio></p>
<p><!-- pagebreak --></p>
<p style="text-align: center;"><a style="cursor: pointer;" onclick="$('#metronom_storm').slideToggle('fast');">Текст...</a></p>
<div id="metronom_storm" style="display: none;">
<p style="text-align: center;">Месим грязь. Мы на броне.<br />На необъявленной войне.<br />И штурмовать, вскрывать рубцы<br />Идут бойцы.<br />Глядя в глаза этих смелых бойцов<br />Читаю стихи внутри горячих голов:<br />"<em>Жди меня мама, я скоро вернусь.</em><br /><em>Под родным одеялом героем проснусь</em>."<br />На стрёме входим в город -<br />Здесь живых нет ни души.<br />Здания разбиты<br />И пустуют этажи.<br />Тёмные глазницы окон<br />Холодом пронзают нас.<br />Враг уже ушёл<br />Или что-то нам припас?</p>
<p> </p>
<p style="text-align: center;">Мы ушли воевать под конец ноября<br />Неужели мы теряем свои жизни зря?<br />В одеяло из снега молча упав<br />Уснул мой товарищ землю обняв!<br />"<em>Бригада, огонь!</em>" - кричит командир.<br />И потухший город превращается в тир.<br />Мы зажаты в капкане, мы не можем понять<br />Неужели нас могли свои предать?</p>
<p> </p>
<p style="text-align: center;">Жди меня, мать. Я скоро вернусь.</p>
<p> </p>
<p style="text-align: center;">Слышишь меня, чёртов дух?<br />Я расскажу свои планы вслух!<br />Я соберу раненых, пока не угас<br />И мы пойдём напролом, броня вытащит нас!<br />Наши генералы предали нас<br />И мы отдаём свой приказ.<br />Нас могут предать, нас могут убить,<br />Но нас не могут сломать, мы ещё хотим жить!</p>
<p> </p>
<p style="text-align: center;">Вытащит нас.<br />Свой приказ.<br />Мы будем жить.<br />И это наш последний шанс!</p>
<p> </p>
<p style="text-align: center;">Мы ушли воевать...<br />Ушли воевать под конец ноября.<br />Мы теряли и теряем свои жизни зря!<br />В одеяло из снега молча упав<br />Уснул мой товарищ, уснул!<br />"<em>Бригада, огонь!</em>" - ревёт командир.<br />И горящий город превращается в тир.<br />Умирая в капкане мы не можем понять<br />Как нас могли свои предать?<br />Жди меня, мать...</p>
</div>
<p style="text-align: center;"><a href="https://vk.com/my_emotion_is_life?w=wall-72298263_193" target="_blank">VK</a></p>https://blog.opiums.eu/post/my-ushli-voevat-pod-konec-noyabrya/2022-09-22T19:38:23+07:00Марксистско-ленинская философия<p style="text-align: justify;">Книги по <strong>Марксистско-ленинской философии</strong> (картинка - ссылка):</p>
<table border="1">
<tbody>
<tr>
<td><a href="/files/marksistsko-leninskaya-filosofiya/Константинов Ф.В. - Основы марксистско-ленинской философии - 1979.html" target="_blank"><img style="width: 200px;" src="http://blog.opiums.eu/files/marksistsko-leninskaya-filosofiya/2022-08-19_144413.jpg" alt="Константинов Ф.В. - Основы марксистско-ленинской философии - 1979" /></a></td>
<td><a href="/files/marksistsko-leninskaya-filosofiya/Ракитов А.И. - Марксистско-ленинская философия - 1986.html" target="_blank"><img style="width: 200px;" src="http://blog.opiums.eu/files/marksistsko-leninskaya-filosofiya/2022-08-19_144428.jpg" alt="Ракитов А.И. - Марксистско-ленинская философия - 1986" /></a></td>
</tr>
</tbody>
</table>https://blog.opiums.eu/post/marksistsko-leninskaya-filosofiya/2022-08-19T14:54:20+07:00SYN flooding on port заметка<p>Заметка для поиска ddos атаки на ваш linux сервер:</p>
<pre><code data-language="bash"># Цифры в Recv-Q показывают кол-во сокетов в Accept очереди, а Send-Q размер бэклог-лимита. #
ss -plnt sport = :3724 | cat
ss -plnt sport = :8090 | cat
# Используйте команды netstat или ss для проверки состояния сокета TCP следующим образом, где указан номер порта, указанный в Possible SYN flooding on port сообщении #
netstat -nta | egrep "State|3724"
ss -nta '( dport = :3724 )'
netstat -nta | egrep "State|8090"
ss -nta '( dport = :8090 )'
# В выходных данных приведенной выше команды будет указан каждый IP-адрес, подключенный к серверу, и количество экземпляров каждого из них. #
netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r
# Как только вы будете уверены в виновности, вы можете заблокировать IP-адрес с помощью команды: #
sudo route add 128.128.128.128 reject</code>
</pre>https://blog.opiums.eu/post/syn-flooding-on-port-zametka/2022-04-04T15:45:06+07:00Поиск по альтернативным базам РКН<form id="rcn_findbyIP"><input class="inp" type="text" placeholder="Поиск по IP" /> <input type="submit" style="display: inline-block;" /></form><form id="rcn_findbyDomain"><input class="inp" type="text" placeholder="Поиск по домену" /> <input type="submit" style="display: inline-block;" /></form>
<p><span id="rcn_APIs"></span></p>
<script>
var rcn_timers;
var rcn_API_IP = 'https://reestr.rublacklist.net/api/v2/ips/json/';
var rcn_API_Domain = 'https://reestr.rublacklist.net/api/v2/domains/json/';
var rcn_APIs = "Альтернативные базы РКН:<br>\n" + rcn_API_IP + "<br>\n" + rcn_API_Domain;
function rcn_loadings(my_id){
var load = document.querySelector(my_id).innerHTML;
document.querySelector(my_id).innerHTML = load+'.';
if(load.length > 30){
document.querySelector(my_id).innerHTML = 'Загрузка';
}
rcn_timers = setTimeout(rcn_loadings, 500, my_id);
}
function rcn_stop(my_id){
clearTimeout(rcn_timers);
document.querySelector(my_id).innerHTML = rcn_APIs;
}
document.querySelector("#rcn_APIs").innerHTML = rcn_APIs
document.querySelector("#rcn_findbyIP").addEventListener("submit", function(e){
e.preventDefault();
var xmlHttp = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
var response = "?rcn_findbyIP=" + document.querySelector("#rcn_findbyIP .inp").value;
xmlHttp.open('GET', '/files/findRCN/' + response, true);
xmlHttp.send(null);
rcn_loadings("#rcn_APIs");
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
rcn_stop("#rcn_APIs");
alert(xmlHttp.responseText);
}
}
});
document.querySelector("#rcn_findbyDomain").addEventListener("submit", function(e){
e.preventDefault();
var xmlHttp = (window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
var response = "?rcn_findbyDomain=" + document.querySelector("#rcn_findbyDomain .inp").value;
xmlHttp.open('GET', '/files/findRCN/' + response, true);
xmlHttp.send(null);
rcn_loadings("#rcn_APIs");
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
rcn_stop("#rcn_APIs");
alert(xmlHttp.responseText);
}
}
});
</script>https://blog.opiums.eu/post/poisk-po-alternativnym-bazam-rkn/2022-01-06T11:58:42+07:00Конвертер MySQL в SQLite<p>
<script>
function mysqltosqlconvert() {
var sqlite = "" +
"-- import to SQLite by running: sqlite3.exe db.sqlite3 -init sqlite.sql\n\n" +
"PRAGMA journal_mode = MEMORY;\n" +
"PRAGMA synchronous = OFF;\n" +
"PRAGMA foreign_keys = OFF;\n" +
"PRAGMA ignore_check_constraints = OFF;\n" +
"PRAGMA auto_vacuum = NONE;\n" +
"PRAGMA secure_delete = OFF;\n" +
"BEGIN TRANSACTION;\n\n";
var currentTable = '';
var lines = document.getElementById('mysqlconvert').value.split('\n');
var skip = [/^CREATE DATABASE/i, /^USE/i, /^\/\*/i, /^--/i];
var keys = [];
// Used this site to test regexes: https://regex101.com/
lineLoop:
for (var i = 0; i < lines.length; i++) {
line = lines[i].trim();
// Skip lines that match regexes in the skip[] array above
for (var j = 0; j < skip.length; j++) if (skip[j].test(line)) continue lineLoop;
// Include all `INSERT` lines. Replace \' by ''
if (/^(INSERT|\()/i.test(line)) {
sqlite += line.replace(/\\'/gi, "''") + "\n";
continue;
}
// Print the ´CREATE´ line as is and capture the table name
if ((m = /^\s*CREATE TABLE.*[`"](.*)[`"]/i.exec(line)) !== null) {
currentTable = m[1];
sqlite += "\n" + line + "\n";
continue;
}
// Clean table end line like:
// ) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT='By definition:\r\n- user_group #1 is administrator and will always have all permissions.\r\n- user_group #2 is guest and always have no permissions.\r\n';
if (line.startsWith(")")) {
sqlite += ");\n";
continue;
}
// Remove CONSTRAINT `fk_address_state1`" part from lines
line = line.replace(/^CONSTRAINT [`'"][\w]+[`'"][\s]+/gi, '');
// Replace "XXXXX KEY" by "KEY" except "PRIMARY KEY" "FOREIGN KEY" and "UNIQUE KEY"
line = line.replace(/^[^FOREIGN][^PRIMARY][^UNIQUE]\w+\s+KEY/gi, 'KEY');
// Lines starting with (UNIQUE) KEY are extracted so we declare them all at the end of the script
// We also append key name with table name to avoid duplicate index name
// Example: KEY `name` (`permission_name`)
if ((m = /^(UNIQUE\s)*KEY\s+[`'"](\w+)[`'"]\s+\([`'"](\w+)[`'"]/ig.exec(line)) !== null) {
keyUnique = m[1] || "";
keyName = m[2];
colName = m[3];
keys.push('CREATE '+ keyUnique +'INDEX `'+ currentTable + '_' + keyName + '` ON `' + currentTable +'` (`' + colName + '`);');
continue;
}
// Print all fields definition lines except "KEY" lines and lines starting with ")"
if (/^[^)]((?![\w]+\sKEY).)*$/gi.test(line)) {
// Clear invalid keywords
line = line.replace(/AUTO_INCREMENT|CHARACTER SET [^ ]+|CHARACTER SET [^ ]+|UNSIGNED/ig, "");
line = line.replace(/DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP|COLLATE [^ ]+/ig, "");
line = line.replace(/COMMENT\s['"`].*['"`]/ig, "");
line = line.replace(/SET\([^)]+\)|ENUM[^)]+\)/ig, "TEXT ");
// Clear weird MySQL types such as varchar(40) and int(11)
line = line.replace(/int\([0-9]*\)/ig, "INTEGER");
line = line.replace(/varchar\([0-9]*\)|LONGTEXT/ig, "TEXT");
}
if (line != "") {
sqlite += line + "\n";
}
}
sqlite += "\n";
// Fix last table line with comma
sqlite = sqlite.replace(/,\n\);/g, "\n);");
// Include all gathered keys as CREATE INDEX
sqlite += "\n\n" + keys.join("\n") + "\n\n";
// Re-enable foreign key check
sqlite += "COMMIT;\n" +
"PRAGMA ignore_check_constraints = ON;\n" +
"PRAGMA foreign_keys = ON;\n" +
"PRAGMA journal_mode = WAL;\n" +
"PRAGMA synchronous = NORMAL;\n";
document.getElementById('sqliteconvert').value = sqlite;
}
</script>
</p>
<p><textarea id="mysqlconvert" onmouseover="this.select();">MySQL SQL код сюда</textarea><br /> <button onclick="mysqltosqlconvert()">Конвертировать</button><br /> <textarea id="sqliteconvert" onmouseover="this.select();">SQLite результат</textarea><br /> Репозиторий автора: <a target="_blank" href="http://github.com/ww9/mysql2sqlite">http://github.com/ww9/mysql2sqlite</a></p>https://blog.opiums.eu/post/konverter-mysql-v-sqlite/2021-12-08T12:34:35+07:00ГРАНД-Смета выдает ошибку о том что MSExcel не найден<p>Обычно проблема связана после удаления новой и установке более старой версии, после чего в реестре остаются ключи удаленной версии и программа ссылается на них. В дебагере можно обнаружить тогда ошибку <strong>Interface not supported</strong>. Решение проблемы было найдено на знаменитом <a href="https://stackoverflow.com/questions/43400794/interface-not-supported-error-when-attempting-to-open-excel-or-word-from-delph" target="_blank">stackoverflow</a>. И если вдруг оттуда пропадёт статья я добавляю её сюда.</p>
<p><!-- pagebreak --></p>
<p>Чтобы исправить ошибку, можно использовать следующие инструкции Microsoft:</p>
<ol>
<li>Открыть редактор <strong>regedit</strong>.</li>
<li>Открыть <strong>HKEY_CLASSES_ROOT >> TypeLib >> {00020813-0000-0000-C000-000000000046}</strong></li>
<li>Удалить папку последней версии <strong>(Excel 2013 - 1,8, Excel 2016 - 1,9)</strong></li>
</ol>
<p>Аналогичное исправление можно применить и к другим продуктам Office:</p>
<p><strong>Excel</strong> HKEY_CLASSES_ROOT\TypeLib{00020813-0000-0000-C000-000000000046}\</p>
<ul>
<li>1.7 для Office 2010</li>
<li>1.8 для Office 2013</li>
<li>1.9 для Office 2016</li>
</ul>
<p><strong>Word</strong> HKEY_CLASSES_ROOT\TypeLib{00020905-0000-0000-C000-000000000046}\</p>
<ul>
<li>8.5 для Office 2010</li>
<li>8.6 для Office 2013</li>
<li>8.7 для Office 2016</li>
</ul>
<p><strong>PowerPoint</strong> HKEY_CLASSES_ROOT\TypeLib{91493440-5A91-11CF-8700-00AA0060263B}\</p>
<ul>
<li>2.a для Office 2010</li>
<li>2.b предназначен для Office 2013</li>
<li>2.c предназначен для Office 2016</li>
</ul>
<p><strong>Outlook</strong> HKEY_CLASSES_ROOT\TypeLib{00062FFF-0000-0000-C000-000000000046}\</p>
<ul>
<li>9.4 для Office 2010</li>
<li>9.5 для Office 2013</li>
<li>9.6 для Office 2016</li>
</ul>https://blog.opiums.eu/post/grand-smeta-vydaet-oshibku-o-tom-chto-msexcel-ne-najden/2021-09-22T11:50:10+07:00SQL JOINS<p><img src="http://blog.opiums.eu/files/sql_joins.jpg" alt="SQL JOINS" class="image" /></p>https://blog.opiums.eu/post/sql-joins/2021-05-17T11:47:55+07:00OST SnowRunner<p><a href="/files/ost-snowrunner/" target="_blank"><img src="http://blog.opiums.eu/files/ost-snowrunner/SnowRunner-logo.jpg" alt="OST Spiritfarer" title="Кликни для перехода к прослушиванию саунтрека" /></a></p>https://blog.opiums.eu/post/ost-snowrunner/2020-11-21T18:42:50+07:00Лесси. Возвращение домой<p><video width="100%" height="325" poster="/content/public/upload/lessi-vozvrashenie-domoj_0_o.jpg" src="http://blog.opiums.eu/cc.opiums.eu/C650" preload="metadata" controls="controls" onerror="error">Видео загружается или не поддерживается вашим устройством...</video></p>https://blog.opiums.eu/post/lessi.-vozvrashhenie-domoj/2020-11-04T01:34:45+07:00Ошибка хром: Ваш профиль не может использоваться, поскольку он от более новой версии<p><strong>Ошибка при запуске Google Chrome/Chromium</strong>:<em> использовать этот профиль невозможно, так как он был создан в более новой версии Google Chrome. Некоторые функции могут быть недоступны. Укажите другой каталог профиля или установите более новую версию Chrome.</em></p>
<p><!-- pagebreak --></p>
<h2>Решение</h2>
<p><strong>Для Chrome</strong>:</p>
<ul>
<li>Открыть <em>C:\Users\<strong>имя пользователя</strong>\AppData\Local\Google\Chrome\User Data\Default</em></li>
<li>В папке <strong>Deafult</strong> удалить два файла: <strong>Web Data</strong> и <strong>Web Data-journal</strong></li>
</ul>
<p><strong>Для Chromium:</strong></p>
<ul>
<li>Открыть <em>C:\Users\<strong>имя пользователя</strong>\AppData\Local\Chromium\User Data\Default</em></li>
<li>В папке <strong>Deafult</strong> удалить два файла: <strong>Web Data</strong> и <strong>Web Data-journal</strong></li>
</ul>
<p><strong><img class="image" src="http://blog.opiums.eu/content/public/upload/2020-10-16112556_0_o.jpg" alt="Web Data и Web Data-journal" /></strong></p>https://blog.opiums.eu/post/oshibka-hrom-vash-profil-ne-mozhet-ispolzovatsya-poskolku-on-ot-bolee-novoj-versii/2020-10-16T11:31:58+07:00