niedziela, 23 października 2022

Zarządzanie czasem

 

Jak zarządzać swoim czasem?
Wyczytałem gdzieś że ta sławna wielozadaniowość/multitasking to trochę ściema. Oczywiście że jesteśmy w stanie robić kilka rzeczy na raz, lecz nie będzie to pozbawione wad.
W skrócie można zrobić jedną rzecz dobrze bądź kilka tak sobie. Chyba wszyscy wolimy aby było jednak zrobione dobrze :) Co nie?
Dlatego pierwszą rzeczą jaką proponuje to PLANOWANIE.
Zaplanuj sobie dzień - niby proste ale...



Oto kilka wskazówek które wyczytałem odnośnie planowania:

  • każde zadanie ma trafić na listę - tu chodzi dosłownie o każdą rzecz którą masz zrobić - wysłanie maila, daily itp.
  • prioretetyzujmy zadania
  • małe zadanka bierzemy na sam początek
  • w ciągu dnia zajmujemy się TYLKO 1 dużym/ważnym zadaniem.
  • nie planujmy dani co do godziny - wiadomo iż trzeba być elastycznym
  • listę TODO'sów robimy na początek dnia lub pod koniec poprzedniego
  • jeżeli wiesz ze ktoś będzie potrzebował Twojego supportu - zaplanuj to !



A teraz kilka rad odnośnie tego jak zapewnić sobie czas na zadania wymagających dużego skupienia:

  • zaznacz to w kalendarzu.
  • oznacz że jesteś zajęty na temas/slack/discord.
  • ewentualnie załóż czapeczkę na głowe :P
  • ostatecznie zarezerwuj jedną z małych salek dostępnych w firmie.


Zanim pójdziesz do kogoś po pomoc:

  • upewnij się czy nie ma informacji na ten temat w firmowym intranecie/bazie wiedzy.
  • upewnij się czy to właściwa osoba.
  • postaraj się przyjść z propozycja rozwiązania problemu a nie z oczekiwaniem że ktoś to zrobi za Ciebie.
  • sprawdź czy osoba nie jest zajęta - w kalendarzu.
  • zapytaj czy możesz podejść na komunikatorze - jeżeli nie odpisuje to znaczy być może jest zajęta.
  • jeżeli uważasz że problem może się powtórzyć opisz jego rozwiązanie.


Zanim zaczniesz zlewać osoby które potrzebują Twojej pomocy:

  • pomaganie jest fajne - możesz się też czegoś nowego nauczyć
  • pamiętaj że też kiedyś będziesz potrzebował pomocy
  • zdobędziesz wieczny splendor i chwałę wśród członków zespołu :P
  • być może karma wróci na rozmowach z przełożonymi :)


Na koniec zarysuje wam zasady zarządzania czasem według techniki Pomodoro:

  • Na początek potrzebujesz listy zadań posortowanej wg ważności
  • Jedna sesja pomodoro trwa 25 min więc ustawiamy czasomierz i bierzemy zadanie
  • Przez jedno pomodoro pracujemy ciągle ( W czasie sesji nie pozwól żeby Ci ktoś przerywał) Jeżeli w ciągu sesji skończyłeś zadania zacznij następne.
  • po 25 min robimy sobie obowiązkową 5 minutową przerwę
  • po 4 sesjach robisz dłuższą (ok 20 min) przerwę - to czas na drugie śniadanie, kawę, lunch.



Zasady w Technice Pomodoro

  1. Pomodoro jest niepodzielne – Jeżeli zaczniesz nad czymś pracować to przerwę zrobisz sobie dopiero za 25 minut.
  2. Jeżeli zadanie wymaga więcej niż 5-7 Pomodoro – podziel je na mniejsze części.
  3. Jeżeli zadanie zajmie Ci mniej niż jedno Pomodoro – dorzuć do niego kolejne krótkie zadanie tak, żeby wypełnić całe Pomodoro
  4. Kolejne Pomodoro pójdzie Ci lepiej.
  5. Technika Pomodoro nie powinna być wykorzystywana w Twoim wolnym czasie – korzystaj z niego bez ograniczeń.


Wiem że wpis jest długi i nudnawy ale myślę że części z Was przypadnie do gustu a co więcej może otworzy dyskusję na temat zarządzania czasem w projekcie, bo co by nie mówić
ja jestem kompletnym laikiem w tym temacie i nie bierzcie tego co napisałem jako wyrocznie tylko jako zabawkę do zgłębienia tematu

Beyond Code 2022

 

Takiego wydarzenia potrzebowała polska scena IT. W dniach 12-13 października w Zakopanem odbyła się pierwsza edycja konferencji Beyond Code. Miała ona na celu wypełnić lukę dla tych specjalistów, którzy niekoniecznie chcą poznawać nowe języki programowania czy frameworki. Dla tych którzy interesują się nie tylko kodowaniem, ale również wszystkim innym  wokół dostarczania oprogramowania.



Już sama rada programowa ( Grzegorz Duda, Ola Kunysz, Anita Przybył), czyli osoby odpowiedzialne za konferencje Devoxx Poland zapewniała dobry poziom konferencji.

Ale co tam się tak naprawdę działo? Spróbuję przedstawić w tym krótkim materiale.

Pierwszego dnia (13 października) brałem udział w kilku fascynujących  prezentacjach które skupiały się na umiejętnościach przywódczych, mentoringu oraz komunikacji. Pierwszym z nich była prezentacja Katarzyny Leszczyńskiej-Bohdan pt. "Jaka piękna katastrofa".  Kasia w swojej prezentacji pokazała jak ewoluują konflikty w zespołach, dlaczego są one nieuniknione oraz jak niwelować eskalacje. Dodatkowo podrzuciła kilka cennych rad dla leaderów, oraz masę książek pomagających w byciu lepszym liderem. Na pewno skorzystam!



 

Kolejną prezentacja, w której uczestniczyłem prowadzona była przez Radka Mazierke i zatytułowana była "Jak tworzyć produkt a nie zbiór funkcjonalności".  Radek pokazał drogę, jak przejść z tzw. fabryki ficzerów do zespołu budującego świadomy produkt, gdzie programiści są partnerami dla biznesu. Moim zdaniem bardzo ważnym aspektem było pokazanie tego że nasza rola nie kończy się po tzw. git push'u, lecz równie ważne (nie wiem czy6 nawet nie ważniejsze) jest monitorowanie dostarczonej funkcjonalności do klienta. Czy:

  • funkcjonalność rozwiązuje problem klienta
  • funkcjonalność działa jak klient sobie zażyczył
  • funkcjonalność spełnia potrzeby biznesu
  • i w końcu czy umiem dostosować się i uczyć na wpadkach.

Następna prezentacja, być może dla tego iż była mi bardzo bliska zrobiła na mnie ogromne wrażenie. Opowieść Oli Kunysz o tym jak w naszej branży, szczególnie w aktualnych czasach łatwo o wypalenie zawodowe. Jak poprzez zaangażowanie w projekt, naszą pasje do programowania potrafimy zaniedbać inne aspekty życia i jak to może być niebezpieczne dla naszego zdrowia. Jestem pełen szacunku dla Oli iż potrafiła o tym powiedzieć głośno na scenie, a co więcej w trakcie prezentacji okazało się że jest spora grupa osób która przechodziła podobny kryzys. Bardzo bym sobie życzył aby ten temat nie pozostawał tabu - i aby organizacje wpierały swoich pracowników w pokonaniu tych problemów.




Po przerwie lunchowej, na scenie pojawiła się Beata Mosór ze swoją prezentacją pt. "Jak nasze dążenia do bycia SUPERHUMANS niszczą nasze relacje?" Beata opowiadała na swoim przykładzie jak stworzyć Kulturę Zespołowości i gdzie w tym wszystkim jest lider oraz jakie są jego zadania. 



Ostatnią tego dnia prezentacją w której uczestniczyłem była opowieść o tym jakie nawyki w sobie wyrobić aby być bardziej produktywnym oraz nie zatracić się w mrokach wypalenia zawodowego. Prezentował ją Piotr Nabielec, który wraz z Jakubem Kubryńskim i Pawłem Szlendkiem zakończyli pierwszy dzień konferencji, pokazując to czym zajmują się poza pracą. Wspaniały show Piotra zapamiętam na długo.



Drugi dzień konferencji rozpocząłem od udziału w dyskusji o syndromie oszusta podczas prezentacji Anity Przybył. Wspaniała opowieść o prokrastynacji, życiu w ciągłym stresie, niepewności, oraz o tym jak to zaakceptować i cieszyć się spokojem ducha. 





Następnie uczestniczyłem w warsztatach w warsztatach zespołowych w oparciu o MBTI. Wraz z kilkoma uczetni8kami przy asyście Martyny i Alicji, krok po kroku poznawaliśmy swoje typy osobowości określone jako jungowskie ID16.

Po kolei przechodziliśmy przez wszystkie wymiary i określaliśmy swoje preferencję. Na koniec porównaliśmy wyniki z wypełnionymi wcześniej testami i szczegółowo je omówiliśmy z prowadzącymi. Jeżeli interesuje Cię kim jesteś wg. jungowskiej topologii osobowości możesz wykonać prosty test ze strony: https://www.16personalities.com/pl/darmowy-test-osobowosci. Pamiętaj jednak że jest to test uproszczony i bez konsultacji ze specjalistą traktuj wynik jako zabawę.



 

Ostatnią prezentacją, w której uczestniczyłem był Szybki kurs myślenia biznesowego dla inżynierów prezentowany przez Michała Bartyzela. Michał prostym językiem, poprzez analogie pokazał nam jak powinniśmy rozmawiać 

z tzw "biznesem", aby zostać przez niego dobrze zrozumianym wejść na wspólną ścieżkę do osiągnięcia sukcesu , oraz nie zniechęcić go do siebie po pierwszych wymiana zdań. 

 


 

Jako iż konferencja odbywała się w Zakopanem i łączyła się z weekendem nie mogłem sobie odmówić sobotniej wędrówki po przepięknych Tatrach jesienią. Was również zapraszam na górskie szlaki, aby przewietrzyć myśli, a jeszcze bardziej zachęcam do zgłębienia tematów "miękkich" w naszym mocno technicznym świecie. Jak poznamy siebie bardziej, nasza praca będzie efektywniejsza, dodająca wartości dla klienta i naszego zespołu, a przede wszystkim dla satysfakcjonująca dla samych siebie.








wtorek, 7 lipca 2015

ELK w praktyce

Wstęp

ELK(https://www.elastic.co/) - Elasticsearch + Logstash + Kibana, czyli grupa narzędzi pomagająca scentalizować logi.
Ostatnio w firmie zaprzegneliśmy ELK do zarządzania i analizowania access logów oraz logów aplikacyjnych.
 Po krótce opisze proces instalacji  i konfiguracji całego pakietu.

 

ElasticSearch

Sciągnij i zainstaluj ElasticSearch

wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.1.deb
sudo dpkg -i elasticsearch-1.5.1.deb

zainstaluj  Java Service Wrapper dla ElasticSearch

curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mkdir /usr/local/share/elasticsearch
sudo mkdir /usr/local/share/elasticsearch/bin
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch

w pliku elasticsearch.yml odkomentuje i zmien na poprawny IP np:

network.host: 192.168.XXX.XXX


starujemy  ElasticSearch:

sudo service elasticsearch start

Upewnijmy się czy  service wystartował:

curl http://192.168.XXX.XXX:9200
 
odpowiedź powinna wyglądać mniej więcej tak:

{
  "status" : 200,
  "name" : "Storm",
  "version" : {
    "number" : "1.3.1",
    "build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015",
    "build_timestamp" : "2014-07-28T14:45:15Z",
    "build_snapshot" : false,
    "lucene_version" : "4.9"
  },
  "tagline" : "You Know, for Search"
 }

Logstash

instalujemy:
cd ~ 
wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
tar xzvf logstash-1.4.2.tar.gz 
mv logstash-1.4.2 /opt/logstash
adduser --system --disabled-login --no-create-home --group logstash 
usermod -a -G adm logstash

#auto start script for logstash
# download init script 
wget -O /etc/init.d/logstash https://raw.githubusercontent.com/elasticsearch/logstash/master/pkg/logstash.sysv
# make it executable 
chmod +x /etc/init.d/logstash 
# make it auto-startable 
update-rc.d logstash defaults

# configure logstash folder

# create logstash config dir 
mkdir -p /etc/logstash/conf.d 
# create logstash logs dir 
mkdir /var/log/logstash 
chown -R logstash: /var/log/logstash 
# make home folder 
mkdir /var/lib/logstash 
chown -R logstash: /var/lib/logstash


konfiguracja Logstasha i Logstash-forwardera

tworzymy certyfikaty SSL

sudo mkdir -p /etc/pki/tls/certs
sudo mkdir /etc/pki/tls/private



OpenSSL configuration file:
sudo vi /etc/ssl/openssl.cnf

Znajdź sekcje  [ v3_ca ] w pliku, i dodaj pod ną natępujący wpis (oczywiście z prawidłowym namiarem na maszynkę z logstashem):
subjectAltName = IP: 192.168.XXX.YYY

Teraz wygeneruj certyfikat SSL i klucz prywatny  (/etc/pki/tls/),za pomoca komendy:
cd /etc/pki/tls
sudo openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

konfigurujemy Logstasha


sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf

wrzucamy konfiguracje input do pliku:
input {
  lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}

sudo vi /etc/logstash/conf.d/10-syslog.conf


wrzucamy konfigurację filter do pliku:
filter {
 if [type] == "json" {
        json {
        source => "message"
        }
                }
if [type] == "accesslog" {
          grok {
                match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
      
       date {
                locale => 'en'
                match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
        }
        }
}


sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf
 

wrzucamy konfigurację output do pliku:

output {
        if [type] == "json" {
                elasticsearch {
                host => "192.168.XXX.XXX"
                port => "9200"
                protocol => "http"
                index => "json-logs-%{+YYYY.MM.dd}"
                }
                stdout { codec => rubydebug }
        }
}

kopiowanie certyfikatu SSL

Z serwera  Logstash , kopiujemy  SSL'a na drugi Server, gdzie będzie zaintsalowany logstash-forwarder:
scp /etc/pki/tls/certs/logstash-forwarder.crt user@server_private_IP:/tmp


konfiguracja Logstash Forwarder

 instalujemy:
wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder_linux_amd64
tar xzvf logstash-forwarder_linux_amd64 sudo chmod +x logstash-forwarder_linux_amd64
sudo mv logstash-forwarder_linux_amd64  /opt/logstash-forwarder/logstash-forwarder



cd /etc/init.d/; sudo wget https://raw.githubusercontent.com/elasticsearch/logstash-forwarder/a73e1cb7e43c6de97050912b5bb35910c0f8d0da/logstash-forwarder.init -O logstash-forwarder
sudo update-rc.d logstash-forwarder defaults

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
sudo vi /etc/logstash-forwarder

w pliku wstawiamy:

{
  "network": {
    "servers": [ "192.168.XXX.YYY:5000" ],
    "timeout": 15,
    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
  },
  "files": [
    {
      "paths": [
         "/path/to/json/log/file",
       ],
      "fields": { "type": "json" }
    }
   {
        "paths": [
           "/path/to/access/log/file"
         ],
        "fields": { "type": "accesslog" }
      }
   ]
}
sudo service logstash-forwarder restart
  

Instalacja Kibana


  cd ~
    wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.1-linux-x64.tar.gz
    tar xzvf kibana-4.0.1-linux-x64.tar.gz
    rm kibana-4.0.1-linux-x64.tar.gz
    mv kibana-4.0.1-linux-x64 /var/opt/kibana-4.0.1
#start screen which keeps running even if you disconnect your session
w pliku kibana.ymlzmieniamy wpis:
elasticsearch_url: "http://192.168.XXX.XXX:9200"
 
sudo wget https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/bce61d85643c2dcdfbc2728c55a41dab444dca20/kibana4
sudo chmod +x kibana4
sudo ./kibana4 start|stop|restart|status