И это всё МОЁ

Уважаемые друзья,


Представляем Вам проект дешевых физических серверов в Европе, Эстония - FSmini.ee


Идеальные дешевые серверы в Европе под:



  • backup-решения: NAS, owncloud, SAMBA;

  • личный VPN/proxу-сервер/RouterOS;

  • хостинг сайтов;

  • небольшой Windows-офис;

  • среду для разработки и тестирование ПО.


Все представленные на странице серверы в наличие и готовы к работе после установки ОС.
В качестве приятного бонуса - ISPmanager Lite в подарок!


Следите за обновлениями конфигураций, мы будем постоянно их дополнять!


По любым вопросам обращайтесь по контактам с нашей страницы!









 








И это всё МОЁ

Linux on DeX — это разработка от Samsung и Canonical, позволяющая запускать Ubuntu на Galaxy Note 9 и Tab S4 при подключении к Samsung DeX. Linux on DeX до сих пор находился в статусе beta.


Инициативные пользователи уже создали петицию с просьбой открыть исходный код: петиция.









 , ,








И это всё МОЁ

Здравствуйте, джентльмены.
У меня есть набор давно написанных скриптов для работы с ldap, который я хочу собрать в более-менее внятное веб-приложение без использования php и javasсript. Написав интерфейс, я затупил с таким краеугольным моментом, как выдача результатов исполнения скрипта в html и, соответственно, передача параметров от элементов страницы (текстбоксы etc.) в скрипт.
Когда я начал искать способ исполнения python-кода из html и нашел тысячи примеров работы с cgi и фреймворками, мысли заметались из стороны в сторону и я окончательно потерял связь с реальностью.

Я вижу это так:

1. Обращение к page.html

2. Происходит неведомое волшебство

3. Python-скрипт формирует page.html c блоком аля:


<div class=«content»>
<table id=somelist1>
<tr>
<th>var1</th>
<th>varN</th>
</tr>
</table>
</div>

4. Снова волшебство

5. Веб-сервер отдает клиенту сформированный page.html

В чем, собственно, вопрос: мне курить cgi или сразу какой нибудь простой фрейморк типа cherrypy, т.к. одного uwsgi будет недостаточно?








 , , ,








И это всё МОЁ

В IT-компанию требуется сотрудник на должность инженер-программист.

Обязанности:
— поддержка и доработка существующих проектов, а также участие в разработке новых

Требования:
— базовые знания PHP
— базовые знания HTML-CSS верстки, Javasсript
— знание принципов ООП, основы SQL

Не обязательно, но приветствуется:
— знание/опыт работы с MVC-фреймворками (Yii, Laravel и др.)
— системы контроля версий (SVN/GIT)
— опыт работы с ОС семейства Linux

Условия:
— заработная плата: от 50 т.р.
— место работы: г. Москва, ул. Новодмитровская Б., дом № 12, стр. 15, метро Савёловская
— график работы: 5 дневная рабочая неделя с 10 до 18
— испытательный срок: 3 месяца
— белая заработная плата
— оформление по ТК РФ

Контакты для связи: [email protected]








 , ,








И это всё МОЁ

доброго времени суток.


2 диска sdf1,sdf2 (зеркальный - sdf2) в рейде md0
при попытке монтирования


mount: /mnt/cr1: unknown filesystem type ’linux_raid_member


рейд остановлен,


как просмотреть содержимое зеркала без разрушения рейда?


при mdadm -A -R /dev/md1 /dev/sdf2 md0 разрушается, хотя содержимое sdf2 можно посмотреть монтированием md1.


Есть другой путь? Более безопасный и корректный?









 








И это всё МОЁ

На Beaglebone ось ангстром установлена. Пишет логи в /var/log/journal и к вечеру забивает все свободные 20 мб, после этого ломается ssh и приходится очищать логи.
Как вырубить их.
systemctl disable rsyslog говорит file not found.









 , ,








И это всё МОЁ

Как правильно: Брам Моленар (как указано в Википедии) или Брам Мооленаар (как указано в Vim)?









 ,








И это всё МОЁ

Это UB? Есть ли возмодность сделать аналогичное без UB? Если это UB то по каким причинам?

template<typename K, typename V>
struct CPair {
K key;
V value;
};
int main()
{
std::map<int, std::string> sp {{42, "test"}};
CPair<int, std::string> *p =
reinterpret_cast<CPair<int, std::string>*> (&(*sp.find(42)));
std::cout << p->key << " " << p-> value;
}








 








И это всё МОЁ

Как на хабре, пикабу и т.д.







Да3
Нет1
Мне всё равно0
Свой вариант(в комментариях)0
Всего голосов: 4




 , , ,








И это всё МОЁ

ходить на работу



И это всё МОЁ

Можно его конечно в виде ряда самому сделать, ряд быстро сходится,
но может кто то уже это сделал по людски?









 , ,








И это всё МОЁ

Состоялся релиз самой популярной CMS WordPress 5.3.


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


В этом выпуске также представлена



И это всё МОЁ

доброго времени суток.


есть 2 терабайтных диска. Хочется raid1 с шифрованием. Вопрос: как правильно это сделать?


сперва создать рейд1, и на него накатывать luks? Или?









 ,








И это всё МОЁ

На сервере крутится apache и nginx, кэширую то что можно через varnish, не соображу как добовать поддержку нескольких виртуальных хостов. По примерам пробовал делать несколько именованых backend и в sub vcl_recv по домену менять переменную

if (req.http.host == "site1.ru";) {
set req.http.host = "127.0.0.1";
set req.backend = site1ru;
return (lookup);
}
if (req.http.host == "site2.ru";) {
set req.http.host = "127.0.0.1";
set req.backend = site2ru;
return (lookup);
}

Но вылетает с ошибкой Unknown variable 'req.backend'
Видимо этот пример от старой vcl

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

# Сообщаем компилятору о том, что используется новая версия VCL 4
vcl 4.0;

include "devicedetect.vcl";

# Настройки бэкенда
backend default {
.host = "127.0.0.1";
.port = "8080";
}


# Диапазон IP/Хостов, которым разрешено выполнять PURGE-запросы для очистки кэша
acl purge {
"localhost";
"127.0.0.1";
}

# Получение запроса от клиента
sub vcl_recv {
call devicedetect;

# Разрешить очистку кэша вышеописанному диапазону
if (req.method == "PURGE";) {
# Если запрос не из списка, то разворачивать
if (!client.ip ~ purge) {
return(synth(405, "This IP is not allowed to send PURGE requests.";));
}
return (purge);
}

# POST-запросы а также страницы с Basic-авторизацией пропускать
if (req.http.Authorization || req.method == "POST";) {
return (pass);
}

# Пропускать админку и страницу входа
if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true" || req.url ~ "(manager|php|assets|components)";) {
if( !(req.url ~ "\.html";) ){
return (pass);
}
}

# Если установлены cookies "wordpress_" или "comment_" пропускаем напряиую к бэкенду
if (req.http.Cookie ~ "wordpress_" || req.http.Cookie ~ "comment_" || req.http.Cookie ~ "modx_admin";) {
return (pass);
}


# Удаляем cookies, содержащие "has_js" и "__*", добавляемые CloudFlare и Google Analytics, так как Varnish не будет кэшировать запросы, для которых установлены cookies.
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(_[_a-z]+|has_js)=[^;]*", "";);

# Удаление префикса ";" в cookies, если вдруг будет обнаружен
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "";);

# Удаляем Quant Capital cookies (добавляются некоторыми плагинами)
set req.http.Cookie = regsuball(req.http.Cookie, "__qc.=[^;]+(; )?", "";);
# Удаляем wp-settings-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-1=[^;]+(; )?", "";);

# Удаляем wp-settings-time-1 cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wp-settings-time-1=[^;]+(; )?", "";);

# Удаляем wp test cookie
set req.http.Cookie = regsuball(req.http.Cookie, "wordpress_test_cookie=[^;]+(; )?", "";);

# Удаляем cookie, состоящие только из пробелов (или вообще пустые)
if (req.http.cookie ~ "^ *$";) {
unset req.http.cookie;
}

# Для статических документов удаляем все cookies, пусть себе кэшируются
if (req.url ~ "\.(css|js|png|gif|jp(e)?g|swf|ico|woff|svg|htm|html)" || req.url ~ "/";) {
unset req.http.cookie;
}

# Если cookie не найдено, удаляем данный параметр из пришедшего запроса как таковой
if (!req.http.cookie) {
unset req.http.cookie;
}

# Не кэшировать запросы с установленными cookies, это уже не касается WordPress
if (req.http.Authorization || req.http.Cookie) {
# Not cacheable by default
return (pass);
}

# Кэшировать всё остальное
return (hash);
}

sub vcl_pass {
return (fetch);
}

sub vcl_hash {
hash_data(req.url);

return (lookup);
}

# Приём ответа от бэкенда
sub vcl_backend_response {
# Удаляем ненужные заголовки
unset beresp.http.Server;
unset beresp.http.X-Powered-By;

# Для статических файлов, которые отдаёт бэкенд...
if (bereq.url ~ "\.(css|js|png|gif|jp(e?)g)|swf|ico|woff|svg|htm|html" || bereq.url ~ "/" ) {
# Удаляем все куки
#unset beresp.http.cookie;
# Устанавливаем срок хранения в кэше - неделю
set beresp.ttl = 1d;
# Устанавливаем заголовки Cache-Control и Expires, сообщая браузеру о том, что эти файлы стоит сохранить в кэше клиента и не нагружать лишниий раз наш сервер
unset beresp.http.Cache-Control;
set beresp.http.Cache-Control = "public, max-age=604800";
set beresp.http.Expires = now + beresp.ttl;
}

# Не кэшировать админку и страницу логина
if (bereq.url ~ "wp-(login|admin)" || bereq.url ~ "preview=true" || bereq.url ~ "(manager|php|assets|components)";) {
if( !(bereq.url ~ "\.html";) ){
set beresp.uncacheable = true;
set beresp.ttl = 30s;
return (deliver);
}
}

# Разрешить устанавливать куки только при обращении к этим путям, всё остальное будет резаться
if (!(bereq.url ~ "(wp-login|wp-admin|preview=true|manager|php|assets|components)";) || bereq.url ~ "\.html";) {
unset beresp.http.set-cookie;
}

# Не кэшировать результат ответа на POST-запрос или Basic авторизации
if ( bereq.method == "POST" || bereq.http.Authorization ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}

# Не кэшировать результаты поиска
if ( bereq.url ~ "\?s=" ){
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}

# Не кэшировать страницы ошибок, только нужные вещи в кэше!
if ( beresp.status != 200 ) {
set beresp.uncacheable = true;
set beresp.ttl = 120s;
return (deliver);
}

if (bereq.http.X-UA-Device) {
if (!beresp.http.Vary) { # no Vary at all
set beresp.http.Vary = "X-UA-Device";
} elsif (beresp.http.Vary !~ "X-UA-Device";) { # add to existing Vary
set beresp.http.Vary = beresp.http.Vary + ", X-UA-Device";
}
}
# comment this out if you don't want the client to know your classification
set beresp.http.X-UA-Device = bereq.http.X-UA-Device;

# Хранить в кэше всё прочее на протяжении одного дня
set beresp.ttl = 1d;
# Срок жизни кэша после истечения его TTL
set beresp.grace = 30s;

return (deliver);
}

# Действия перед отдачей результата пользователю
sub vcl_deliver {
if ((req.http.X-UA-Device) && (resp.http.Vary)) {
set resp.http.Vary = regsub(resp.http.Vary, "X-UA-Device", "User-Agent";);
}

# Удаляем ненужные заголовки
unset resp.http.X-Powered-By;
unset resp.http.Server;
unset resp.http.Via;
unset resp.http.X-Varnish;

return (deliver);
}







 








И это всё МОЁ






13 ноября — междунарождный День ГИС (GIS Day)


САПР на протяжении многих лет используют для решения задач ГИС, но вот использование ГИС для решения задач САПР очень затруднено.


И так как моей основной ГИС является OpenOrienteering Mapper, вдохновившись дополнением для создания штриховки на чертежах для Inkscape, я решил сделать набор условных знаков для создания технических чертежей.



А что было первое: САПР или ГИС?























>>> Просмотр
(1335x800,
203 Kb
)










 , ,








06:50

pdf to djvu

И это всё МОЁ

имеется такой скрипт из инета:

#!/bin/bash
#
# pdfs2djvu
#

if [ -z `which pdftoppm` -o -z `which cjb2` -o -z `which djvm` ]; then
echo
echo "Error: pdftoppm, cjb2 and djvm are needed"
echo
exit 1
fi

shopt -s extglob

OUTFILE="#0.djvu"
DEFMASK="*.pdf"
DPI=300

if [ -n "$1" ]; then
MASK=$1
else
MASK=$DEFMASK
fi

for PDF in $MASK; do
if [ ! -e $PDF ]; then
echo
echo "Error: current directory must contain files with the mask $MASK"
echo
exit 1
fi
echo $PDF
pdftoppm -r 300 -aa no $PDF $PDF
for PBM in $PDF*.pbm; do
echo $PBM
cjb2 -dpi $DPI $PBM $PBM.djvu
rm -f $PBM
done

done

djvm -c $OUTFILE $MASK*.pbm.djvu

но возникает ошибка на этой строке: for PBM in $PDF*.pbm; do

так как создаются файлы в виде «001.pdf-001.pbm»

а этот скрипт понимает это как «001.pdf*.pbm»

помогите поправить скрипт.








 , ,








И это всё МОЁ

Здравствуйте, мне часто приходится работать удаленно по SSH с различными серверами, но уж сколько работаю так и не дошли руки разобраться с одной непонятной для меня проблемой. Встречается это на хостингах в основном, благо с ними я работаю достаточно редко, обычно на серверах и там такого не возникает как и на моем компе и на моих серверах нет такой беды, но все же… Объясните мне че за херня, сегодня меня прям выбесило это…


В консоли SSH когда начинаю что-то печатать, нажимаю TAB для автодополнения и текст начинает накладываться друг на друга, не я конечно понимаю, что за команду делаю, продолжаю печатать и если команда очень длинная то там такая херня на экране…


Или вставляю в консоль строку команды, там белеберда полная. Команда сама по себе выполняется нормально, но в консоли какой то бардак, буквы друг на друге вообще ересть…


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


Объясните мне этот бред, можно как то вылечить это?









 , ,








И это всё МОЁ

'.ua' = ['.ru', '.cn', .kp]










 , , ,








И это всё МОЁ
 
Мне сегодня никак не заснуть.
В темноте курю папиросу.
Интересно, хотел кто-нибудь
В жопу выебать альбатроса?







 








И это всё МОЁ
from distutils.core import setup, Extension

# Linux build path
mod = Extension(
'cpkt',
sources=['file1.c', 'file2.c', 'file3.c'],
include_dirs=['include', '.'],
library_dirs=['lib'],
libraries=['m', 'pcap', 'mylib'],
define_macros=[
# ("BENCHMARK", None),
# ("LOGINFO", None),
]
)

setup(name='MyPackage', version='0.1', description='', ext_modules=[mod])

С помощью этого скрипта компилируется *.so библиотека. Но мне нужно передавать флаги линкеру с помощью этого скрипта. Попробовал использовать extra_link_args аргумент к Extension() но он добавляет флаги в самый конец строки компилятора, а мне нужно вот так:

% gcc -O0 -g ... file1.o file2.o file3.o -Wl,--whole-archive -Llib -lmylib -Wl,--no-whole-archive -Wl,--export-dynamic -lpcap -lm -ldl -o mysharelibrary.so

Можно ли достичь с помощью distutils того что я хочу? Если так, то как?

Спасибо!








 ,