Господа растафарианцы, расскажите пожалуйста, если какой-нибудь крейт для раста с длинными числами вроде Integer в хаскеле? Которые неатомарные, но никогда не переполняются? Я чет не могу ничего нагуглить кроме i128. Это, конечно, длинный тип, но конечный, а потому не подходит.
Была раньше такая программа https://www.websitex5.com/ru/, а может и сейчас работает. Установил на ПК, нарисовал сайт, программа сгенерировала файлы, файлы залил на самый дешманский хостинг и сайт готов. Так же и обновления, открываем проект в программе, подредактировали\добавили\удалили - залили на хост и сайт обновился.
Существует, нечто подобное для линуксов опенсорсное? Лень с нуля писать сайт\блог.
16 марта 2021 года компания Oracle объявила о выходе Java 16 (Oracle JDK 16), которая получила 17 новых усовершенствований платформы, призванных еще больше повысить производительность разработчиков.
Последняя версия JDK включает Pattern Matching for instanceof (JEP 394) и Records (JEP 395), предварительные версии которых появились в Java 14. Кроме того, разработчики смогут использовать новый инструмент упаковки jpackage (JEP 392) для сборки и распространения приложений, а также опробовать три инкубационные версии новых функций: Vector API (JEP 338), Foreign Linker API и Foreign-Memory Access API (JEP 389) и одну функцию предварительного просмотра Sealed Classes (JEP 397). В коде JDK и VM HotSpot, написанном на C++, теперь можно использовать возможности, появившиеся в спецификации C++14 (JEP 347).
( читать дальше... )
Привет форумчанам.
Коротко: есть
class TestAvailable(unittest.TestCase)
и есть необходимость передать ему параметры авторизации в виде списка.
При попытке передать через __init__
получаю ошибку 'str' object has no attribute 'login'
Подскажите пжлст, как реализовать?
…под личный бложик и пет-проекты?
Давным-давно брал на 2domains.ru.
Лучше брать домен у зарубежного регистратора? У какого? Какие подводные камни могут быть с оплатой или еще чем-нибудь?
Привет,
настроил списки доступа к сайтам, аутентификация через AD, но если заблочить соц сети, которые шерстят весь инет, почти на каждом сайте вылезает окно аутентификации. Подскажите пожалуйста, что можно сделать чтобы убрать это.
##################################
Настройка авторизации Kerberos
##################################
auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -s HTTP/[email protected]
auth_param negotiate children 20 startup=0 idle=1
auth_param negotiate keep_alive off
Здесь задаются какие группы в AD будет использоваться при доступе в интернет для пользователей
external_acl_type users ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
external_acl_type vpn ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
external_acl_type vpn2 ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
external_acl_type vip ttl=300 negative_ttl=60 %LOGIN /usr/lib64/squid/ext_kerberos_ldap_group_acl -g [email protected]
Правило указывающее доступ в интернет только через авторизацию Kerberos
acl auth proxy_auth REQUIRED
Пути к файлам запрещающих, разрешающих определенные действия
acl users_acl external users
acl vpn_acl external vpn
acl vpn2_acl external vpn2
acl vip_acl external vip
Порт SSL для подключений по HTTPS-протоколу
acl SSL_ports port 443
Список портов, к которым разрешен доступ через прокси-сервер по протоколу HTTP
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
Список разрешений
acl allow_disk proxy_auth -i «/etc/squid/access/disk.usr»
acl allow_file proxy_auth -i «/etc/squid/access/file.usr»
acl allow_mail proxy_auth -i «/etc/squid/access/mail.usr»
acl allow_news proxy_auth -i «/etc/squid/access/news.usr»
acl allow_soc proxy_auth -i «/etc/squid/access/soc.usr»
acl allow_video proxy_auth -i «/etc/squid/access/video.usr»
acl allow_work proxy_auth -i «/etc/squid/access/work.usr»
Список блокировок
acl block_disk url_regex -i «/etc/squid/block/disk.url»
acl block_file urlpath_regex -i «/etc/squid/block/file.url»
acl block_mail url_regex -i «/etc/squid/block/mail.url»
acl block_news url_regex -i «/etc/squid/block/news.url»
acl block_old url_regex -i «/etc/squid/block/old.url»
acl block_soc url_regex -i «/etc/squid/block/soc.url»
acl block_video url_regex -i «/etc/squid/block/video.url»
acl block_work url_regex -i «/etc/squid/block/work.url»
Список локальных сайтов
acl localnetsites dstdomain «/etc/squid/local_sites»
always_direct allow localnetsites
no_cache deny localnetsites # тут сменил на deny
Маршруты
tcp_outgoing_address 192.168.0.22 vpn_acl
tcp_outgoing_address 192.168.0.22 vpn2_acl
tcp_outgoing_address 192.168.0.21
Стандартные разрешения
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
Блокировки и разрешения
http_access allow vip_acl
http_access deny block_disk !allow_disk
http_access deny block_mail !allow_mail
http_access deny block_news !allow_news
http_access deny block_soc !allow_soc
http_access deny block_video # !allow_video
http_access deny block_work !allow_work
http_access deny block_file # !allow_file
http_access deny block_old
http_access allow users_acl
http_access allow vpn_acl
http_access allow vpn2_acl
#http_access allow auth
http_access deny all
Порты
http_port 3128
Настройка кэша
cache_dir ufs /var/spool/squid 49152 16 256
maximum_object_size 61440 KB
coredump_dir /var/spool/squid
always_direct allow all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
Укажем список блокируемых ресурсов (в файле домены вида .domain.com) и правила блокировки их
acl blocked1 ssl::server_name «/etc/squid/block/disk.url»
acl blocked2 ssl::server_name «/etc/squid/block/file.url»
acl blocked3 ssl::server_name «/etc/squid/block/mail.url»
acl blocked4 ssl::server_name «/etc/squid/block/news.url»
acl blocked5 ssl::server_name «/etc/squid/block/old.url»
acl blocked6 ssl::server_name «/etc/squid/block/soc.url»
acl blocked7 ssl::server_name «/etc/squid/block/video.url»
acl blocked8 ssl::server_name «/etc/squid/block/work.url»
Устанавливаем защищенное соединение и считываем заголовок HTTP
acl step1 at_step SslBump1
ssl_bump peek step1
Закрываем соединение, если клиент заходит на ресурс указанные в blocked
ssl_bump terminate blocked1
ssl_bump terminate blocked2
ssl_bump terminate blocked3
ssl_bump terminate blocked4
ssl_bump terminate blocked5
ssl_bump terminate blocked6
ssl_bump terminate blocked7
ssl_bump terminate blocked8
ssl_bump splice all
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|?) 0 0% 0
refresh_pattern . 0 20% 4320
cache_swap_low 90
cache_swap_high 95
Максимальный размер объекта, сохраняемого в оперативной памяти
maximum_object_size_in_memory 512 KB
memory_replacement_policy lru
logfile_rotate 4
Почему в DDR5 будут большие задержки? Также как и типичная DDR4 по таймингам проигрывает хорошей DDR3
Версия Гитлаба будет называться GitLab JiHu (читается как «G Who»
https://about.gitlab.com/pricing/faq-jihu/
Всё будет «также»: онлайн и стандалон версии, только c GitLab.cn. Для материкового Китая, Макао и Гонконга. (Интересно кстати, что Тайвань не упомянута).
В общем, я так считаю, что китайцы сыграли роль микрософта, купившего github, и «купили» GitLab. Пока это проявляется только в виде образования автономной компании, действующей на территории Китая.
Но кто конкретно за этим стоит, не знаю. Наверно, дело было так, что gitlab искал выходы на китайский рынок, и китайцы, поняв суть дела, сделали предложение, от которого gitlab.com не смогли отказаться.
Уверен, что пока gitlab.com и версия CE (Community Edition) будут без китайских изменений, как политических так и кодовых.
С технической точки зрения, в GitLab JH будет добавленя интеграция со всякими китайскими сервисами, как облачными (alibaba cloud) так и соцсеточными (wechat).
Имеет ли смысл ветка catch(...)? Можно ли там что-то отловить?
try {
// bla bla
} catch (const std::exception &e) {
Log << e.what();
return FAILED;
} catch (...) {
return FAILED;
}
return OK;
Здравствуйте.
Помогите настроить сеть между виртуальными машинами и гипервизором на KVM.
Сейчас на хосте есть следующие линки:
# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:4c:68:2b:9e brd ff:ff:ff:ff:ff:ff
3: wls7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 48:51:b7:59:cc:0c brd ff:ff:ff:ff:ff:ff
Хочется:
- Добавить на хост виртуальный сетевой адаптер;
- Создать bridge с добавлением в него этого адаптера;
- Подключать все виртуальные машины в этот bridge;
- Получать настройки виртуальной сети из ВМ с настроенным DHCP
Искал в интернете, ничего не нашел. Решил обратиться сюда к коллективному разуму.
Коллеги, нужна подсказка.
В компании регулярно запускается тестирования продукта. Версий продукта много. Тестов много разных, запускаются вручную и автоматически. Есть сломавшиеся, которые требуют внимательного изучения, есть успешно прошедшие, которые требуют сохранения отчета об успехе… Вот как-бы все это учитывать…
Я не настоящий сварщик тестер, я мимо проходил и засосоало, но мне видится что для этого нужен какой-то многомерный issue-трэкер, в котором во-первых записи можно выстраивать вокруг разных осей: версия продукта, тип тестов, тип срабабатывания, если тест не прошел и т.п. Возможно выборки по пересечению множеств. А так же в котором можно было бы хранить иерархическую информацию. Напремер категории «Тестирование 2021» -> «Тестирование в рамках такого-то релиза» -> «Тестирование такой-то подсистемы». Чтобы по этим категориям можно было бы нормально перемещаться, и иметь нормальное визуальное представление (а не по одному уровню на страницу например)
Бывает ли вообще такое? Естественно лучше опенсорс, но и закрытый код рассматривается тоже.
Спасибо!
Что годного есть на рынке бесперебойников на текущий момент? Мой APC после 14 лет службы начал страшно глючить, фонить в сеть и т.д. Пора ему на свалку. Требуемая мощность ~600-700Вт, линейно-интерактивная схемотехника. По APC читал что теперь это оверпрайснутый дешман и что теперь брать?.. Бюджет до 20к.
Всем привет.
Пытаюсь настроить модуль pam_sсript.so в настройках sshd.
Что бы при подключении по ssh, отрабатывался скрипт.
Файл /etc/pam.d/sshd
:
#%PAM-1.0
auth optional pam_sсript.so debug dir=/bin/myscript.sh
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
~
Кусок лога:
Mar 18 13:39:19 admin-rsatest sshd[8876]: pam_unix(sshd:session): session closed for user user1
Mar 18 13:39:25 admin-rsatest sshd[8939]: Accepted password for anatoliit from 172.30.253.197 port 50763 ssh2
Mar 18 13:39:26 admin-rsatest sshd[8939]: pam_unix(sshd:session): session opened for user user1 by (uid=0)
Но при подключении, модуль не отрабатывает. Просьба подсказать, почему.
Заранее спасибо.
Доброго времени суток.
После очередного yum upgrade обновилась библиотека libicu в итоге база не стартует:
PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
FATAL: database files are incompatible with server
DETAIL: The database cluster was initialized with the ICU library of version 50.1.2.0, but the server was compiled with the ICU library of version 50.2.0.0.
HINT: It looks like you need to recompile or initdb.
думал, что можно откатить версию libicu, но нет вариантов:
# yum --showduplicates list libicu
Загружены модули: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.logol.ru
* extras: mirror.logol.ru
* updates: mirror.logol.ru
Установленные пакеты
libicu.x86_64 50.2-4.el7_7 @base
Доступные пакеты
libicu.i686 50.2-4.el7_7 base
libicu.x86_64 50.2-4.el7_7 base
К сожалению дампа кластера нет.
Прошу помочь советом, как еще можно запустить?
Добрый день.
Пишу в командной строке
/usr/bin/find ./ -type f -name "*.bz2" -exec /usr/bin/tar -xjf {} \;
Работает правильно. Ставлю в скрипт -
tar (child): bzip2: Функция exec завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
/usr/bin/tar: Child returned status 2
/usr/bin/tar: Error is not recoverable: exiting now
со строчкой
for f in *.tar.bz2; do /usr/bin/tar -xvf "$f"; done
То же самое.
С конструкцией
find | xargs
То же самое
В пути вместо ./ ставил `pwd` - не помогло. Как же заставить это работать из скрипта?
Далее будет немного тупняка и флуда.
Вот я старообрядец. Входил в эти ваши интернеты еще во времена HTML 1.0, познавал как все это работает там же. По некоторым причинам долгое время касался всего этого больше как пользователь, но часто читал про всякие там новомодные фреймфорки и прочие ненужноскрипты.
Сейчас я пишу сервер с админкой. В админке буквально несколько кнопочек, ничего сверхсложного, поэтому все сделано по старинке - страница генерится на сервере, браузеру отдается хтмл, все как завещали отцы. Обратная связь - GET и POST. И это работает. Работает шустро, память не жрет.
И тут я решил посмотреть, что же это за фреймфорки такие, о которых все вокруг говорят. Нет, я знаю, что такое JS и его назначение, у меня даже есть пара самописных скриптов, которые выполняют какую-то банальщину в виде обновления страницы или валидации поля. Но…
Открыл ютуб и решил послушать хипстеров про фреймфорки. Чувак 30 минут рассуждает о какой-то фигне, в 10 полезных минутах он… Генерит обычный хтмл из скрипта. То есть…. ОН. ГЕНЕРИТ. ХТМЛ. ИЗ. СКРИПТА. То есть вместо того, чтобы просто отдать браузеру готовый хтмл, он отдает браузеру JS, который подтягивает кучу какого-то шлака с удаленных реп и генерит тот же хтмл с тремя полями и кнопкой. Вангую, что все это весит в разы больше голого хтмла и жрет дофига ресурсов.
Вопрос - зачем? Или я неправильно понял суть этого всего?
Нет, я понимаю, когда речь идет про какой-то браузерный аналог ворда или что-то типа того, так без ЖС и фреймфорка (?) не обойтись, скорее всего, но зачем это все для простейших действий?
А читать я про это полез только ради того, что в одном из следующих проектов мне придется писать гораздо более сложную админку, и я подумал, вдруг что-то упускаю, и надо использовать фреймфорки?
//Тема скорее вброс, но все равно интересно.
Запустил freeradius с параметром -X
(0) Received Access-Request Id 229 from 127.0.0.1:32837 to 127.0.0.1:1812 length 57
(0) User-Name = "bruno"
(0) User-Password = "boss123"
(0) Acct-Status-Type = Start
(0) Framed-IP-Address = 10.11.12.13
(0) # Executing section authorize from file /etc/freeradius/3.0/sites-enabled/default
(0) authorize {
(0) policy filter_username {
(0) if (&User-Name) {
(0) if (&User-Name) -> TRUE
(0) if (&User-Name) {
(0) if (&User-Name =~ / /) {
(0) if (&User-Name =~ / /) -> FALSE
(0) if (&User-Name =~ /@[^@]*@/ ) {
(0) if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(0) if (&User-Name =~ /\.\./ ) {
(0) if (&User-Name =~ /\.\./ ) -> FALSE
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) {
(0) if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE
(0) if (&User-Name =~ /\.$/) {
(0) if (&User-Name =~ /\.$/) -> FALSE
(0) if (&User-Name =~ /@\./) {
(0) if (&User-Name =~ /@\./) -> FALSE
(0) } # if (&User-Name) = notfound
(0) } # policy filter_username = notfound
(0) [preprocess] = ok
(0) [chap] = noop
(0) [mschap] = noop
(0) [digest] = noop
(0) suffix: Checking for suffix after "@"
(0) suffix: No '@' in User-Name = "bruno", looking up realm NULL
(0) suffix: No such realm "NULL"
(0) [suffix] = noop
(0) eap: No EAP-Message, not doing EAP
(0) [eap] = noop
(0) [files] = noop
(0) sql: EXPAND %{User-Name}
(0) sql: --> bruno
(0) sql: SQL-User-Name set to 'bruno'
rlm_sql (sql): Closing connection (1): Hit idle_timeout, was idle for 178 seconds
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Closing connection (2): Hit idle_timeout, was idle for 178 seconds
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Closing connection (3): Hit idle_timeout, was idle for 178 seconds
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Closing connection (4): Hit idle_timeout, was idle for 178 seconds
rlm_sql (sql): You probably need to lower "min"
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Closing connection (0): Hit idle_timeout, was idle for 178 seconds
rlm_sql (sql): You probably need to lower "min"
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): Closing connection (5): Hit idle_timeout, was idle for 178 seconds
rlm_sql (sql): You probably need to lower "min"
rlm_sql_mysql: Socket destructor called, closing socket
rlm_sql (sql): 0 of 0 connections in use. You may need to increase "spare"
rlm_sql (sql): Opening additional connection (6), 1 of 32 pending slots used
rlm_sql_mysql: Starting connect to MySQL server
rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 8.0.23, protocol version 10
rlm_sql (sql): Reserved connection (6)
(0) sql: EXPAND SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' ORDER BY id
(0) sql: --> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'bruno' ORDER BY id
(0) sql: Executing select query: SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'bruno' ORDER BY id
(0) sql: User found in radcheck table
(0) sql: Conditional check items matched, merging assignment check items
(0) sql: Cleartext-Password := "boss123"
(0) sql: EXPAND SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id
(0) sql: --> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'bruno' ORDER BY id
(0) sql: Executing select query: SELECT id, username, attribute, value, op FROM radreply WHERE username = 'bruno' ORDER BY id
(0) sql: User found in radreply table, merging reply items
(0) sql: Framed-IP-Address = 1.2.3.4
(0) sql: EXPAND SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority
(0) sql: --> SELECT groupname FROM radusergroup WHERE username = 'bruno' ORDER BY priority
(0) sql: Executing select query: SELECT groupname FROM radusergroup WHERE username = 'bruno' ORDER BY priority
(0) sql: User not found in any groups
rlm_sql (sql): Released connection (6)
Need 2 more connections to reach min connections (3)
rlm_sql (sql): Opening additional connection (7), 1 of 31 pending slots used
rlm_sql_mysql: Starting connect to MySQL server
rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 8.0.23, protocol version 10
(0) [sql] = ok
(0) [expiration] = noop
(0) [logintime] = noop
(0) [pap] = updated
(0) } # authorize = updated
(0) Found Auth-Type = PAP
(0) # Executing group from file /etc/freeradius/3.0/sites-enabled/default
(0) Auth-Type PAP {
(0) pap: Login attempt with password
(0) pap: Comparing with "known good" Cleartext-Password
(0) pap: User authenticated successfully
(0) [pap] = ok
(0) } # Auth-Type PAP = ok
(0) # Executing section post-auth from file /etc/freeradius/3.0/sites-enabled/default
(0) post-auth {
(0) update {
(0) No attributes updated
(0) } # update = noop
(0) sql: EXPAND .query
(0) sql: --> .query
(0) sql: Using query template 'query'
rlm_sql (sql): Reserved connection (6)
(0) sql: EXPAND %{User-Name}
(0) sql: --> bruno
(0) sql: SQL-User-Name set to 'bruno'
(0) sql: EXPAND INSERT IGNORE INTO radpostauth (username, pass, reply, authdate) VALUES ( '%{SQL-User-Name}', '%{%{User-Password}:-%{Chap-Password}}', '%{reply:Packet-Type}', '%S')
(0) sql: --> INSERT IGNORE INTO radpostauth (username, pass, reply, authdate) VALUES ( 'bruno', 'boss123', 'Access-Accept', '2021-03-18 01:23:57')
(0) sql: Executing query: INSERT IGNORE INTO radpostauth (username, pass, reply, authdate) VALUES ( 'bruno', 'boss123', 'Access-Accept', '2021-03-18 01:23:57')
(0) sql: SQL query returned: success
(0) sql: 1 record(s) updated
rlm_sql (sql): Released connection (6)
(0) [sql] = ok
(0) [exec] = noop
(0) policy remove_reply_message_if_eap {
(0) if (&reply:EAP-Message && &reply:Reply-Message) {
(0) if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(0) else {
(0) [noop] = noop
(0) } # else = noop
(0) } # policy remove_reply_message_if_eap = noop
(0) } # post-auth = ok
(0) Sent Access-Accept Id 229 from 127.0.0.1:1812 to 127.0.0.1:32837 length 0
(0) Framed-IP-Address = 1.2.3.4
(0) Finished request
Waking up in 4.9 seconds.
(0) Cleaning up request packet ID 229 with timestamp +178
Ready to process requests
То есть он говорит ОК, но сессию не открывает, в чем дело?
Prepare for measuring sugar levels with a BeatO SMART Glucometer
Before monitoring your blood glucose levels, make sure you have the following:
• A finger-stick kit for pricking your finger like a lancet
• A swab of alcohol to disinfect the puncture spot
• Best glucometer for monitoring the sugar levels
• Bandage if bleeding goes on past a few drops
Often, based on the type of exam you are taking, you can need to change your meal plan or time around your meal, depending on your doctor’s orders.