MAC: Python: Idle: Nie działają podpowiedzi (intelisense)

2021-05-29

Zdarza się (często), że w Idle, który jest domyślnym i bodajże najprostszym edytorem skryptów Pythona, nie działają podpowiedzi. Czasami pomaga proste uruchomienie skryptu przed jego dalszym pisaniem (Idle uświadamia sobie wtedy z jakimi zmiennymi ma do czynienie i „zaskakuje”), ale czasami to nie pomaga.

1. Poszukaj w Finder pliku autocomplete_w.py . Jeżeli plików o takiej samej nazwie jest więcej, to pewnie jest zainstalowanych kilka wersji Pythona. W takim przypadku wybierz ten zgodny z właśnie wykorzystywaną wersją (zgodną z Idle) np.:

~/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/autocomplete_w.py

2. Otwórz plik autocomplete_w.py i znajdź w nim dwie sąsiadujące linie::

listbox.pack(side=LEFT, fill=BOTH, expand=True)
acw.lift()

3. Wstaw między nie dodatkową linijke::

acw.update_idletasks()

4. Zapisz plik i trzymaj kciuki, aby po naciśnięciu klawisza ⇥ zobaczyć okienko z  autouzupełnieniem

By Rafał Kraik in Python

Azure: Dostępność maszyn wirtualnych (VM SLA)

2021-05-28

Jedną z popularniejszych usług w Azure są maszyny wirtualne (Virtual Machines – VM). Budując rozwiązanie dla klienta i wpasowując je w jego wymagania, określamy dostępność maszyny. Ten parametr jest wpisany w Service Level Agreement (SLA). Na maszynach wirtualnych mogą być oparte kolejne serwisy i zależnie od zdefiniowanej architektury, te serwisy mogą oferować lepsze SLA. Wejściowym parametrem do obliczenia SLA dla całego rozwiązania pozostaje jednak SLA maszyn wirtualnych. Co mamy do wyboru?

  • Pojedynczą maszynę, która oferuje dostępność na poziomie 99.9%
  • Dwie lub więcej maszyn w tym samym availability set – 99.95%. Co istotne oznacza to już dostępość dla Availability Set – dostępność pojedynczej maszyny to nadal 99.9%.
  • Jeśli by te maszyny rozrzucić jeszcze w różnych availability zones, to ich dostępność wzrośnie do 99.99%.

Co istotne podane tu wartości dotyczą konfiguracji maszyny opartej o storage premium lub ultra. Jeśli zdecydowalibyśmy się korzystać ze standard HDD, to gwarantowany czas dotępności spadnie do 95% w przypadku pojedynczej maszyny.

SLA dotyczy „gołego” systemu operacyjnego, to jakby włączyć w domu laptopa z czystym windows i nic na nim nie robić. Na VM  będzie oczywiście pracować aplikacja i jej dostępność to już inna sprawa. Sama zaś maszyna może być narażona na ataki malware, które również nie są brane pod uwagę przez Microsoft – w końcu samo zarządzanie systemem operacyjnym w modelu IaaS pozostaje po stronie klienta.

By Rafał Kraik in Azure

SQL: Management Studio – błąd podczas uruchamiania Activity Monitora: Access Denied HRESULT: 0x80070005 (E_ACCESSDENIED)) (mscorlib)

2021-05-16

Pełny komunikat z błędem prezentuje się następująco:

TITLE: Microsoft SQL Server Management Studio
——————————

The Activity Monitor is unable to execute queries against server XXXXXXXXXX
Activity Monitor for this instance will be placed into a paused state.
Use the context menu in the overview pane to resume the Activity Monitor.

——————————
ADDITIONAL INFORMATION:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) (mscorlib)

 

Żeby było ciekawie, to (1) jestem sysadminem na SQL (2) jestem lokalnym administratorem na Windows. Jedna z pierwszych prób naprawy błędu „Access Denied”, to zwykle uruchomienie programu „jako administrator”. I w tym przypadku pomogło. Jednak jest to nieco dziwne, dlatego poszukałem dalej i znalazłem:

https://sqltimes.wordpress.com/tag/access-is-denied-exception-from-hresult-0x80070005-e_accessdenied-mscorlib/

Artykuł opisuje, jakie uprawnienia i gdzie należy nadać, żeby można było korzystać z Activity Monitora. Grupa administratorzy wszędzie posiadała wszystkie wymagane uprawnienia, ale kiedy na serwerze jest skonfigurowany UAC, to token grupy administracyjnej jest wyrzucany podczas uruchamiania aplikacji. To dlatego SSMS uruchomione jako zwykły użytkownik nie mogło uruchomić Activity Monitora. Kiedy jednak  SSMS uruchamiałem jako administrator, to SSMS mając token grupy administrator mogło śmiało robić wszystko co chciało.

Żeby bez problemów uruchamiać SSMS jako normalny użytkownik nadałem opisane w artykule uprawnienia i wszystko działa jak należy! W skrócie:

  • Uruchom Component Services – DCOMCNFG
  • Przejdź Console Root >> Component Services >> Computers >> My Computer >> Properties
  • Na zakładce COM Security kliknij „Edit Limits” – zarówno w sekcji „Launch and Activation Permissions” jak i „Access Permissions” i nadaj swojej grupie zarówno „Remote Launch & Remote Activation”
  •  

    W My Computer, w drzewku po lewej stronie znajdziesz jeszcze >> DCOM Config. Przejdź do Windows Management and Instrumentation >> Properties.

  • W zakładce Security w sekcji Launch and Activation Permissions kliknij Edit i jeśli nie ma tam twojej grupy, to dodaj ją i przypisz uprawnienia Remote Launch & Remote Activation

Gotowe!

By Rafał Kraik in SQL

Powershell: nasłuchiwanie na porcie. Sprawdzanie czy port jest otwarty

2021-05-11

Bezpieczene środowiska są często podzielone na mniejsze strefy rozdzielone firewallem. Za takim podniesieniem bezpieczeństwa idą jednak też pewne niemiłe konsekwencje. Aplikacje wymagają łączności, a przy zbyt restrykcyjnie skonfigurowanym firewallu, ta komunikacja może przestać działać.

Tym razem problem był następujący. SQL serwer był skonfigurowany do nasłuchiwania na porcie XXX. Powstał pomysł przejścia na port YYY. Przed zmianą numeru portu na serwerze trzeba sprawdzić, czy port Y jest rzeczywiście otwarty.

Normalnie do sprawdzenia, czy port jest otwarty można użyć

Test-NetConnection -comp <adres_serwera> -port YYY

tylko… skoro na serwerze, SQL nasłuchuje na porcie XXX, to na pytanie skierowane do portu YYY nie odpowie! Trzeba by więc stworzyć jakiś proces nasłuchujący na porcie YYY, choćby tylko po to, żeby uzyskać jakąkolwiek odpowiedź na Test-NetConnection. Oto jak stworzyć taki sztuczny nasłuchujący proces:

$Listener = [System.Net.Sockets.TcpListener]9999;
$Listener.Start();
#wait, try connect from another PC etc.
#$Listener.Stop();

Te polecenia utworzą proces nasłuchujący na porcie 9999 (to odpowiednik naszego portu YYYY)

Jeśli więc na serwerze uruchomisz w/w kod (i go tam zostawisz – nie zamykaj okna), to jeśli tylko porty na firewall są otwarte, to polecenie:

Test-NetConnection -comp <adres_serwera> -port 9999

powinno zwrócić sukces. Jeśli jakaś reguła firewall filtruje ten port – to otrzymamy fail. Jest wiec to metoda na sprawdzenie, czy port jest otwarty przed zmianą portu na którym pracuje SQL, co nie?

A, no i pamiętajmy o wylączeniu nasłuchiwania w skrypcie powershellowym, bo port będzie zajęty 🙂

Windows: MS Edge: Szybkie scroll-owanie

2021-05-09

Rzadko na moim blogu piszę o sprzęcie, ale tym razem… nerwowo nie wytrzymywałem usterki objawiającej się w MS Edge. Scrollowanie stron działające bez zarzutu w innych przeglądarkach i aplikacjach było zdecydowanie za szybkie w MS Edge. Nie żebym był fanem jakieś konkretnej przeglądarki, ale korzystam z wielu z nich – jeśli zależy mi na przeczytaniu artykułu, który nie chce się wyświetlić z powodu ad-blocka, to szybkie przejście do innej przeglądarki pomaga.

Problem objawia się tylko w MS Edge i tylko na jednym laptopie Lenovo  (konkretnie IdeaPad 710S).  Próby ustawienia szybkości scroll-a w ustawieniach systemu, czy sterownika touchpada na nic się zdały, a przewijanie stron przez klikanie na suwaku przypominało mi fantastyczne lata 90-te.

Okazało się, że przyczyną jest sterownik touchpada ELAN Tech. To konkretne ustawienie nie jest dostępne w interfejsie. Trzeba skorzystać z edytora rejestru.

  • Przejdź do HKEY_CURRENT_USER\Software\Elantech\SmartPad
  • Odszukaj ustawienia ScrollControl_Mode i zmień jego wartość na 1
  • Następnie otwórz graficznego konfiguratora Elantech (zwykle miniaturowa ikonka jest w schowku obok zegarka), zmień jakikolwiek ustawienie i  kliknij Apply/Zastosuj.

Sterownik odczyta wartości konfiguracyjne z rejestru i – EUREKA – wszystko zadziała tak, jak należy.

Dziękuję za:

[Win10] ELAN Touchpad scrolling issues? : techsupport (reddit.com)

 

By Rafał Kraik in Helpdesk

Linux: Cron i crontab

2021-04-23

Kilka uwag z dzisiejszej zabawy z crontabem

listowanie zdefiniowanych zadań

crontab -l

edycja listy zaań

crontab -e

Konfiguracja logowania zdarzeń związanych z cron-em (odkomentowanie linijki):

/etc/rsyslog.conf

cron.*                          /var/log/cron.log

definiowanie joba jako do uruchomienia co 15 minut o 6 i 18 lub po restarcie:

*/15 * * * * /usr/bin/python3 /home/cam/proc_cam14.py
0 6,18 * * * /usr/bin/python3 /home/cam/send_report.py
@reboot /home/cam/prepare_ram.sh

przekierowanie standardowego wyjścia programu do /dev/null i przekierowanie wyjścia błędów do pliku:

command   >/dev/null 2>/tmp/log.txt

By Rafał Kraik in Linuxy

Postgres: Problem running post-install step. Installation may not complete correctly Error reading file C:/Program Files/PostgreSQL/13/data/postgresql.conf”

2021-04-23

Zdarza się, że coś pójdzie nie tak. Dobrze jeśli masz przy tym możliwość przejrzenia logów aplikacji, ale jeśli masz coś poradzić zdalnie nie widząc systemu…. To kilka pomysłów, co można zdziałać:

  • instalatora uruchamiać jako administrator
  • przed isnatalacją porządny restart (z przytrzymaniem klawisza shift)
  • wyłączenie antywirusa, restrykcyjnego firewalla
  • wykonanie instalacji w sieci domowej (nie korporacyjnej)
  • hasło użytkownika postgres (ostrożnie ze znakami specjalnymi)
  • instalacja w domyślnym katalogu, a jeśli problem wystąpił w domyślnym, to zmiana na inny ale o prostej nazwie (brak spacji, polskich liter etc)
  • tworzenie nowego użytkownika pod windows i instalowanie z tego konta
  • Instalacja wersji o 1 wcześniejszej
  • Usunąć pliki z C:\Users\%USERNAME%\AppData\Roaming\pgAdmin\sessions
  •  

    Wyczyścić zawartość katalogu C:\Users\%USERNAME%\AppData\Roaming\pgAdmin

  •  

    Uruchomić pgadmin „jako administrator”

  •  

    Dodać katalog bin Postgresa (np C:\PostgreSQL\10\bin) do zmiennej PATH\

 

Przejrzyj też

https://stackoverflow.com/questions/16730405/postgres-installation-error-reading-file-postgresql-conf

‘Problem running the post-install step’ during PostgreSQL installation

https://dba.stackexchange.com/questions/246775/postgresql-11-5-installation-problem

https://postgresrocks.enterprisedb.com/t5/PostgreSQL/Postgresql-11-failing-to-Install-on-Windows/td-p/2588/

configuration – pgadmin4 : postgresql application server could not be contacted. – Stack Overflow

By Rafał Kraik in PostgreSQL