Обновление массива jsonb в PostgreSQL

create or replace function update_array_elements(arr jsonb, key text, value jsonb)
returns jsonb language sql as $$
    select jsonb_agg(jsonb_build_object(k, case when k <> key then v else value end))
    from jsonb_array_elements(arr) e(e), 
    lateral jsonb_each(e) p(k, v)
$$;
select update_array_elements('[{"bar":true},{"bar":true}]'::jsonb, 'bar', 'false');

      update_array_elements
----------------------------------
 [{"bar": false}, {"bar": false}]
(1 row)

Краткая справка по работе с docker

Основано на видеоуроках с youtube.

Запуск контейнера

docker run -d -p 80:80 docker/getting-started
  • -d — работа в фоне (не блокируется terminal)
  • -p 80:80 привязка портов (проброс)

Просмотр образов

docket images
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
docker/getting-started   latest    3e4394f6b72f   2 months ago   47MB
Читать далее «Краткая справка по работе с docker»

Reshaping Pandas Data frames with Melt & Pivot

import pandas as pd

df = pd.DataFrame(data = {
    'Day' : ['MON', 'TUE', 'WED', 'THU', 'FRI'], 
    'Google' : [1129,1132,1134,1152,1152], 
    'Apple' : [191,192,190,190,188] 
})

reshaped_df = df.melt(id_vars=['Day'], var_name='Company', value_name='Closing Price')

reshaped_df.head()

Unmelt/Reverse Melt/Pivot

original_df = reshaped_df.pivot(index='Day', columns='Company')['Closing Price'].reset_index()
original_df.columns.name = None

original_df.head()

Оригинал статьи: https://www.freblogg.com/pandas-melt-pivot

Использование cudf в jupyter notebook

Устанавливаем cudа на WSL2 по инструкции.

  • Проверяем, что установлены поcледние драйверы Nvidia, если нужно обновить, то ставить с официального сайта https://www.nvidia.com/Download/index.aspx
  • Проверяем последнюю версию wsl
wsl.exe --update
  • Ставим cuda
sudo apt-key del 7fa2af80

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-wsl-ubuntu-12-0-local_12.0.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-0-local_12.0.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
Читать далее «Использование cudf в jupyter notebook»

Проброс файлов в NGINX

Синтаксис:	proxy_request_buffering on | off;
Умолчание:	
proxy_request_buffering on;
Контекст:	http, server, location
Эта директива появилась в версии 1.7.11.

Разрешает или запрещает использовать буферизацию тела запроса клиента.

Если буферизация включена, то тело запроса полностью читается от клиента перед отправкой запроса на проксируемый сервер.

Читать далее «Проброс файлов в NGINX»

Особенности подключения к PPTP-серверу интернет-центра из Windows

В операционной системе Windows Vista/7/8/10 можно включить поддержку ключа 40 бит для протокола MPPE. Сделать это можно через Редактор реестра (Regedit).

Важно! Редактор реестра — инструмент, предназначенный только для опытных пользователей. Он предназначен для просмотра и изменения параметров в системном реестре операционной системы Windows, в котором содержатся сведения о работе компьютера.

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

Читать далее «Особенности подключения к PPTP-серверу интернет-центра из Windows»

Работа с БД PostgreSQL в altlinux

Установка

postgresql12-server
postgresql11-server
postgresql10-server
postgresql10-1C-server
postgresql9.4-server
postgresql9.5-server
postgresql9.6-server
apt-get update
apt-get install postgresql12-server

Внимание! Перед запуском службы необходимо создать системные базы данных:

Читать далее «Работа с БД PostgreSQL в altlinux»