И это всё МОЁ

Всем доброго времени суток.
Есть vps на scaleway, на нём поднят 3proxy с конфигом для socks5. Работал он прекрасно.
Подключался таким методом: сервер - domain.com, порт - 2323 (в конфиге настраивается), логин и пароль.
Поставил на сервер SSl от cloudflare, и всё заглохло. Прокси теперь просто не видится, бесконечные попытки подключения.
Куда можно покопать, чтобы поправить?









 , , ,








И это всё МОЁ

Москва-сити, офис, фуллтайм


Немного о нас:


Cashwagon – динамично развивающаяся финтех компания, занимающаяся разработкой и поддержанием собственной цифровой платформы. С помощью сайта и мобильного приложения платформа Cashwagon обеспечивает онлайн доступ к различным финансовым продуктам для 80% жителей Индонезии, Шри-Ланки, Филиппин, Вьетнама, Малайзии, практически исключенным из сложившейся финансовой системы стран. Благодаря использованию своих инновационных разработок компания позволяет сделать финансовые продукты компаний-партнеров - кредиты, инвестиции и в скором будущем кредитные карты - доступными широком кругу потребителей.


Компания Cashwagon была основана весной 2017 года. Уже сегодня число клиентов насчитывает 1 млн человек, а мобильное приложение скачали более 2,3 млн чел во всем мире, со средним рейтингом 4,5 звезды. Главный офис компании находится в Сингапуре. В компании работает около 900 человек в 9 странах, около ста из них - в московском офисе. В 2019 году компания была признана лучшей в категории Digital for Financial Services международной премией Singapore Business Review Technology Awards.


Обязанности:



  • Администрирование linux (ubuntu, centos)

  • Настройка и сопровождение VPN, IPSEC, Wireguard

  • Администрирование postgresql (create, replication, backup)

  • Администрирование ELK (elasticsearch, logstash, kibana)

  • Установка, настройка, сопровождение zabbix, prometheus

  • Администрирование nginx, haproxy

  • Администрирование DNS (AD, bind)

  • Развертывание, настройка сопровождение Kubernetes, Nomad


Требования:



  • Администрирование linux (ubuntu, centos)

  • Настройка и сопровождение VPN, IPSEC, Wireguard

  • Опыт работы с AWS

  • Администрирование postgresql (create, replication, backup)

  • Администрирование ELK (elasticsearch, logstash, kibana) кластера

  • Администрирование системы мониторинга zabbix

  • Администрирование nginx, haproxy

  • Администрирование prometheus, influx,grafana, telegraf

  • Настройка и понимание работы VRRP (keepalived)

  • Администрирование DNS (AD, bind)

  • Понимание принципов работы KVM, опыт разворачивания с «нуля»

  • Администрирование контейнерных оркестраторов (kubernetes, nomad, etc)

  • Понимание принципов работы docker, желательно опыт написания docker файлов


Условия:



И это всё МОЁ

После успешной краудфандинговой кампании, в ходе которой было получено более двух миллионов долларов, британский производитель электроники анонсировал выпуск гибридного смартфона Cosmo Communicator. Особенность новинки в том, что это полноценный олдскульный коммуникатор с QWERTY-клавиатурой и раскрывающимся механизмом.


Модель оснащена 6-дюймовым дисплеем с разрешением 2160х1080 пикселей. При этом экранов у смартфона два: на фронтальной стороне корпуса установлен ещё один миниатюрный дисплей с диагональю 1,92 дюйма и разрешением 570х240 пикселей, который выполняет роль центра уведомлений о пропущенных звонках, сообщениях и актуальном времени.


Построен смартфон на базе платформы MediaTek Helio P70 и оснащается 6 ГБ оперативной и 128 ГБ встроенной памяти. В качестве способа биометрической аутентификации предложен сканер отпечатков пальцев. У смартфона есть NFC-модуль, стандартный 3,5-миллиметровый аудиоразъём и сразу два порта USB Type-C.


Cosmo Communicator оснащён двумя камерами: внешний модуль получил разрешение 24 Мп, внутренний — 5 Мп. Ёмкость встроенного аккумулятора составляет 4220 мАч.


Особенностью устройства стала не только полноформатная QWERTY-клавиатура, но и поддержка ядром нескольких операционных систем. На старте продаж смартфон поставляется с предустановленной ОС Android 9.0 Pie, но в дальнейшем разработчики планируют представить адаптированную версию Sailfish, Linux Debian и Linux Kali.


Стоимость Cosmo Communicator составляет $748.


Источник: https://4pda.ru/2019/12/02/364921/









 , ,








И это всё МОЁ
Компания Qt Company объявила о запуске каталога-магазина Qt Marketplace, через который начали распространяться различные надстройки, модули, библиотеки, дополнения, виджеты и инструменты для разработчиков, нацеленные на использование вместе с Qt для расширения функциональности данного фреймворка, продвижения новых идей в дизайне и усовершенствования процесса разработки. Допускается публикация как платных, так и бесплатных пакетов, в том числе от сторонних разработчиков и сообщества.



16:17

Сокеты

И это всё МОЁ

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

Код сервера:

include <unistd.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <strings.h>

#include <poll.h>
#define IPADDRESS "127.0.0.1"
#define PORT 6666
#define MAXLINE 1024
#define LISTENQ 5
#define OPEN_MAX 1000
#define INFTIM -1

int bind_and_listen()
{
int serverfd;
struct sockaddr_in my_addr;
unsigned int sin_size;
if((serverfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf ("error socket";);
return -1;
}
printf("socket ok\n";);
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(PORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero), 0);
if(bind(serverfd, (struct sockaddr*)&my_addr, sizeof(struct sockaddr)) == -1)
{
printf("error bind";);
return -2;
}
printf("bind ok\n";);
if(listen(serverfd, LISTENQ) == -1)
{
printf("error listen";);
return -3;
}
printf("listen ok\n";);
return serverfd;
}

void do_poll(int listenfd)
{
int connfd, sockfd;
struct sockaddr_in cliaddr;
socklen_t cliaddrlen;
struct pollfd clientfds[OPEN_MAX];
int maxi;
int sin_port2[5];
int i,j;
int nready;
clientfds[0].fd = listenfd;
clientfds[0].events = POLLIN;
for(i = 1; i<OPEN_MAX; i++)
clientfds[i].fd = -1;
maxi = 0;

while(1)
{
nready = poll(clientfds, maxi+1, INFTIM);
if(nready == -1)
{
printf("poll error";);
exit(1);
}
if(clientfds[0].revents & POLLIN)
{
cliaddrlen = sizeof(cliaddr);
if((connfd = accept(listenfd, (struct sockaddr*)&cliaddr, &cliaddrlen)) <0)
{

printf("accept error";);
exit(1);

}
fprintf(stdout, "accept a new client:%s:%d\n", inet_ntoa(cliaddr.sin_addr), cliaddr.sin_port);
for(i = 1; i<OPEN_MAX; i++)
{
if(clientfds[i].fd<0)
{
clientfds[i].fd = connfd;
break;
}
}
if(i == OPEN_MAX)
{
fprintf(stderr, "too many clients.\n";);
exit(1);
}
sin_port2[i]=cliaddr.sin_port;
clientfds[i].events = POLLIN;
maxi = (i>maxi?i:maxi);
if(--nready<=0)
continue;
}

char buf[MAXLINE];
char BUF[80];

memset(buf, 0, MAXLINE);
int readlen = 0;
for(i = 1; i<maxi; i++)
{
if(clientfds[i].fd<0) continue;

if(clientfds[i].revents & POLLIN)
{
readlen = read(clientfds[i].fd, buf, MAXLINE);
if(readlen == 0)
{
close(clientfds[i].fd);
clientfds[i].fd = -1;
continue;
}
printf("msg is:";);

memset(BUF,0,sizeof(BUF));
sprintf(BUF,"%d :%s",sin_port2[i],buf);
printf("%s",BUF);

for(j=1;j<maxi;j++)
{
if(i!=j){
write(clientfds[j].fd, BUF, sizeof(BUF));
}
}

}
}
}
}
int main(int argc, char* argv[])
{
int listenfd = bind_and_listen();
if(listenfd<0)
{
return 0;
}
do_poll(listenfd);
return 0;
}

Код клиента:


#include<sys/types.h>
#include<sys/socket.h>
#include<unistd.h>
#include<netinet/in.h>

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#include<poll.h>
#define IPADDRESS "127.0.0.1"
#define PORT 20113
#define MAXLINE 1024
#define max(a, b) (a>b)?a:b
static void handle_connection(int sockfd);
int main(int argc, char* argv[])
{
int connfd = 0;
int clen = 0;
struct sockaddr_in client;
if(argc<2)
{
printf("Usage: clientent[server IP address]\n";);
return -1;
}
client.sin_family = AF_INET;
client.sin_port = htons(PORT);
client.sin_addr.s_addr = inet_addr(argv[1]);
connfd = socket(AF_INET, SOCK_STREAM, 0);
if(connfd<0)
{
printf("error socket";);
return -1;
}
if(connect(connfd, (struct sockaddr*)&client, sizeof(client))<0)
{
printf("error connect";);
return -1;
}
handle_connection(connfd);
return 0;
}

static void handle_connection(int sockfd)
{
char sendline[MAXLINE], recvline[MAXLINE];
int maxfdp, stdineof;
struct pollfd pfds[2];
int n;
pfds[0].fd = sockfd;
pfds[0].events = POLLIN;
pfds[1].fd = STDIN_FILENO;
pfds[1].events = POLLIN;
while(1)
{
poll(pfds, 2, -1);
if(pfds[0].revents & POLLIN)
{
n = read(sockfd, recvline, MAXLINE);
if(n == 0)
{
fprintf(stderr, "client: server is closed.\n";);
close(sockfd);
}
write(STDOUT_FILENO, recvline, n);
}
if(pfds[1].revents & POLLIN)
{
n = read(STDIN_FILENO, sendline, MAXLINE);
if(n == 0)
{
shutdown(sockfd, SHUT_WR);
continue;
}
write(sockfd, sendline, n);
}
}
}

[code = C]







 , , ,








И это всё МОЁ

На самом деле ЛОР должен называться так. Предлагаю зарегать домен и поправить заголовок. Тематика ресурса ближе к ОС и дистрибутивам, а не ядру. Новости про непосредственно само ядро местный контингент всё равно пишет в лучшем случае через раз. Дискасс








 , , ,








И это всё МОЁ

Таскаю ноутбук между работой и домом. На ноутбуке - debian с i3wm. Часто работаю с виндовыми файловыми ресурсами (редактирую документы, сохраняю туда файлы и т.п.). При недоступности сетевых ресурсов начинаются проблемы с прикладным ПО (файловый менеджер грузится секунд 20, тормозит диалог открытия/сохранения файлов, виснет libreoffice и т.п.).


Ресурсы монтируются либо через autofs, либо через gvfs (через caja/nautilus). С gvfs ситуация немного получше; с autofs - вообще всё плохо (прикладное ПО воспринимает /smb/windows_share как локальный ресурс со всеми вытекающими последствиями)


Это у всех так, или я что-то себе неправильно настроил?


Есть ли способ настроить монтирование, что бы оно не вызывало указанные проблемы?


PS: из прикладного ПО используются: caja, nautilus, firefox, thunderbird, libreoffice.









 , , ,








И это всё МОЁ

Samba позволяет открывать доступ к файлам по локальной сети с компьютеров, работающих под управлением любой операционной системы. Samba также обеспечивает управление доступом к этим ресурсам используя только один конфигурационный файл. В Debian большая часть конфигурации создается автоматически, что значительно упрощает настройку сервера Samba. Когда вы прочитаете эту инструкцию, вы будете знать как установить сервер Samba, как изменить глобальные настройки сервера Samba, как настроить новый общий ресурс, как настроить пользователя Samba и как подключиться к общей папке с другой машины. Мы будем выполнять установку Samba Debian 10 Buster. Для установки нам потребуется доступ к системе с правами пользователя root. Команды которые


Запись Настройка Samba в Debian 10 впервые появилась Losst.






@темы: Инструкции

И это всё МОЁ

Установил кластерную файловую систему LeoFS по инструкциям и комментариям в этом issue https://github.com/leo-project/leofs_ansible/issues/4


Status пишет что кластер работает:


leofs-adm status
[System Confiuration]
-----------------------------------+----------
Item | Value
-----------------------------------+----------
Basic/Consistency level
-----------------------------------+----------
system version | 1.2.22
cluster Id | leofs_1
DC Id | dc_1
Total replicas | 2
number of successes of R | 1
number of successes of W | 1
number of successes of D | 1
number of rack-awareness replicas | 0
ring size | 2^128
-----------------------------------+----------
Multi DC replication settings
-----------------------------------+----------
max number of joinable DCs | 2
number of replicas a DC | 1
-----------------------------------+----------
Manager RING hash
-----------------------------------+----------
current ring-hash | 5599d172
previous ring-hash | 5599d172
-----------------------------------+----------

[State of Node(s)]
-------+----------------------+--------------+----------------+----------------+----------------------------
type | node | state | current ring | prev ring | updated at
-------+----------------------+--------------+----------------+----------------+----------------------------
S | [email protected] | running | 5599d172 | 5599d172 | 2019-12-02 10:40:05 +0000
S | [email protected] | running | 5599d172 | 5599d172 | 2019-12-02 10:40:05 +0000
G | [email protected] | running | 5599d172 | 5599d172 | 2019-12-02 10:40:07 +0000
-------+----------------------+--------------+----------------+----------------+----------------------------




Создал юзера


leofs-adm create-user leofs leofs
access-key-id: 9c2615f32e81e6a1caf5
secret-access-key: 8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb


Список юзеров:


leofs-adm get-users
user_id | role_id | access_key_id | created_at
------------+---------+------------------------+---------------------------
_test_leofs | 9 | 05236 | 2019-12-02 06:56:49 +0000
leofs | 1 | 9c2615f32e81e6a1caf5 | 2019-12-02 10:43:29 +0000


Сделал bucket


leofs-adm add-bucket leofs 9c2615f32e81e6a1caf5
OK


Список bucket:


 leofs-adm get-buckets
cluster id | bucket | owner | permissions | created at
-------------+----------+--------+------------------+---------------------------
leofs_1 | leofs | leofs | Me(full_control) | 2019-12-02 10:44:02 +0000



Конфигурирование s3cmd:


s3cmd --configure 

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key [9c2615f32e81e6a1caf5]:
Secret Key [8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb]:
Default Region [US]:

Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
S3 Endpoint [s3.amazonaws.com]:

Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used
if the target S3 system supports dns based buckets.
DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: leofs

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [No]:

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name [172.26.9.180]:
HTTP Proxy server port [8080]:

New settings:
Access Key: 9c2615f32e81e6a1caf5
Secret Key: 8aaaa35c1ad78a2cbfa1a6cd49ba8aaeb3ba39eb
Default Region: US
S3 Endpoint: s3.amazonaws.com
DNS-style bucket+hostname:port template for accessing a bucket: leofs
Encryption password:
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: False
HTTP Proxy server name: 172.26.9.180
HTTP Proxy server port: 8080

Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)

Now verifying that encryption works...
Not configured. Never mind.

Save settings? [y/N] y
Configuration saved to '/home/user/.s3cfg'


Закачка файлов


s3cmd put test.py s3://leofs/
upload: 'test.py' -> 's3://leofs/test.py' [1 of 1]
382 of 382 100% in 0s 3.40 kB/s done
ERROR: S3 error: 403 (AccessDenied): Access Denied









 , ,








И это всё МОЁ

Добрый день.


В общем тут так получилось, что не оплатили рабочий телефон, ну и целый день нечего делать.


Шеф решил что нужно рисовать схему сети. Подробную.


Мне в работе эта схема не нужна, а он говорит должна быть.


При чем подробность схемы – до порта, куда что подключено.


Вот скажите, в организации примерно 20 свитчей и 100 хостов, ну зачем тут какая то схема? 10 лет она нафиг не существовала, а тут понадобилась.


Не буду ничего рисовать, у меня дела по приятнее есть.


PS. Появились мысли уволится.









 ,








И это всё МОЁ


Платформа: Windows

Разрешение: 1920x1200
Тон: Темный





И это всё МОЁ


Платформа: Android
Версия: AIMP v3.00 или более новая

Тон: Темный, Светлый, Средний
Поверхность: Матовая
Интерфейс: Touch





И это всё МОЁ

Добрый день.
Просят помочь восстановить базу, бэкап которой делался просто через копирование файлов /var/lib/mysql даже без остановки сервера.
База для сайта на 1сбитрикс, конкретно нужно из таблички dev вытащить одну запись с кодом какой-то процедурки на сайте..

Можно ли это сделать?
Восстановил данные в /var/lib/mysql_restored, подправил конфиги на эту директорию, и, естественно, Mysql не стартует..

innodb_force_recovery = 1-6 не помогли..








 , ,








И это всё МОЁ

В инвентаре описаны хосты:

[serviceHosts]
arm1 ansible_ssh_host=192.168.1.10 ansible_ssh_user=root
km1 ansible_ssh_host=192.168.1.11 ansible_ssh_user=root
km2 ansible_ssh_host=192.168.1.12 ansible_ssh_user=root

Соответственно, в плейбуке используется группа:
hosts: serviceHosts

А задача в следующем. Нужно на каждом хосте создать директорию с его же конфигурационным именем. Ну то есть:
На arm1 создать /usr/share/myservice/settings/arm1
На km1 создать /usr/share/myservice/settings/km1
На km2 создать /usr/share/myservice/settings/km2

Я пробую в плейбуке сделать так:
  - name: Создание директорий с настройками
file:
path: "/usr/share/myservice/settings/` item `"
state: directory
with_items:
- "{{ groups['serviceHosts'] }}"

Однако в этом случае, все директории появляются на каждом хосте. А нужно чтобы одна директория с именем хоста на хосте, как написано выше.

Как это сделать?








 , ,








И это всё МОЁ

Стоит Arch Linux со всеми обновлениями на сабже. Несколько месяцев назад появилась проблема - ноутбук не просыпается из ждущего режима (suspend to RAM), начинает грузится с нуля. При этом такое происходит только если за время ухода в сон было отключение ноутбука от блока питания. Если усыпить и сразу пробудить ничего не трогая, то проснётся нормально. В прошлом всё работало нормально, скорее всего какое-то обновление что-то сломало. С батареей проблем нет - ноутбук спокойно несколько часов работает от аккумулятора.


В чём может быть проблема?









 , , ,








И это всё МОЁ

Всем привет.


Появилась тут проблема, куда копать для её решения не пойму.


Есть сайт shutterstock.com, которым пользуются в наше организации. Все пользователи работают через squid. В пятницу 29.11, пользователи начали жаловаться что сайт стал открываться а картинки не грузятся, поиск работает, но при этом картинки тоже не загружаются. Потом всё заработало само собой. Позже ситуация повторилась только сбой был более продолжительным, я успел почистить и пересоздать кеш, увеличить его размер. Но результата не дало, после через какое то время он ненадолго опять загрузился и стал работать, позже перестал и больше не работал. При этом я проверял с ПК без прокси, там сбоев не было замечено вообще. Даже спросил у коллеги работающего в другой организации как у них открывается данный сайт, через squid который настроен под них и вроде как прозрачный, работает через другого провайдера. Он сказал что тоже не открывается!


Сегодня уже понедельник 02.12, но проблема осталась, через прокси картинки не грузятся, на прямую грузятся. Пробовал добавить в конфигурацию строчки «acl photo dstdomain .shutterstock.com
cache deny photo», но результат то же.


Что можно сделать чтобы решить данную проблему, может кто знает?









 








И это всё МОЁ

Есть галеря насписанная на php. Загрузка фото через форму multiple, далее через ajax все ок, все загружает, все работает. Но как на android сделать чтобы можно было выбрать несколько фото и отправить их??? через что?









 , ,








И это всё МОЁ

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


Помимо этого я ещё передаю в оба потока указатель на одну и туже структуру но эту структуру потоки будут только читать.


Вопрос - всегда ли данные которые лежат в 1 кеш линии попав в L1 отдельных ядер вызывают процесс синхронизации? Или это происходит только тогда когда данные изменяются? Ну тоесть память помечается как неактуальная и L1 другого ядра вынуждено перезагрузить данные снова. Хотя они уже были.


Я сейчас не говорю про атомарность, мутексы и прочее. Тут дело в том что всё должно быть без этого.









 , , , ,








И это всё МОЁ

ssh netris.rocketnine.space









 , ,








И это всё МОЁ

!Ъ: https://km-optika.ru/linzy-dlya-ochkov/cryol-blue-max-1-61-hmc


Ъ: Принцип действия линз Blue Max тот же, что у широко известных линз Blue Coating. Он основывается на отсечении сине-фиолетового спектра видимого излучения и ультрафиолета. Однако Blue Max изготавливаются с применением более современных технологий, обеспечивающих больший зрительный комфорт и повышенную контрастность изображения без изменения восприятия цветов.




что это за фигня такая, как работает и работает ли?


а то чет какая-то мода опять пошла на это дело.