środa, grudnia 30, 2015

Wyrzuć 1 rzecz dziennie

Mam problem z tym, że trzymam masę rzeczy "na przyszłość", "bo się kiedyś może przydać", "bo szkoda wyrzucać".

Ostatnio zacząłem z tym walczyć.

Motorem był kolega z pracy, który pozbywał się książek, które przeczytał i stwierdził, że nie będzie już ich więcej czytać.

Nie umiałbym się na coś takiego zdecydować, zbyt lubię mieć książki, ale zrobiło to na mnie wrażenie, bo jest to ze wszech miar racjonalna postawa*.

Stąd sam zacząłem dzień w dzień wyrzucać po jednej (najmniej rzeczy).

Doszedłem teraz do momentu gdy skończyły mi się low hanging fruits ;-) większość karteczek, karteluszek, wyciągów z kart, pudełek, popsutych urządzeń i podobnych już mi się skończyła...
Pozbyłem się już nawet 1 laptopa, ale oszukiwałem bo zawiozłem nieużywanego, acz w pełni sprawnego i używalnego Chromebooka do własnej matki :-)

Teraz będzie trudno.

Ale będę próbował.

Ideałem byłoby posiadać tylko rzeczy, które są mi niezbędne i kilku które sprawiają mi przyjemność (książki liczę jako 1 rzecz ;-)).



* - patrząc na wielkość mieszkań, można powiedzieć, że posiadając jakąś rzecz ponosimy też koszty jej składowania, trudno je wyrazić w złotówkach, ale można je szacować np. zastanawiając się o ile dłużej musimy sprzątać omijając daną rzecz i porównać koszt czasu, który zużywamy z kosztem samej rzeczy, do tego dochodzi też koszt "zabałaganienia" i czasem może nam wyjść, że bardziej się opłaca w razie potrzeby daną rzecz kupić, albo wypożyczyć, niż ją trzymać przez lata.


Podobne postybeta
Telefon lepszym aparatem niż prawdziwy aparat ;-)
Przeprowadzka - "optymalizator" posiadania
A Pi ciągle działa....
IT - Jaka kasa w zależności od skilla? ;-)
Piszemy rozszerzenie dla Chrome ;-)

wtorek, grudnia 22, 2015

Jak walczyć z gigantycznym kodem w Java'ie, część 1 ;-)

Bawiąc się kilkoma milionami linii kodu, które mamy w repo stwierdzam, że nic nie pobije grep'a w poszukiwaniu kodu po różnych projektach ;-)
Najpierw miałem skrypt, który leciał po liście projektów w repo, robił dla każdego z nich checkout,
później go buildował używając Mavena, a w końcu analizował przy pomocy javap.
Skrypt, który to robi wygląda tak:

import os

f = file("java_poms.txt")
lines = f.readlines()

out = open("decompiled.txt","w+")

def removeDir():
os.popen("rm -rf asources")

def choeckout(repo):
os.popen("hg clone "+repo+" asources")
print("Checkouted "+repo)

def make(repo):
os.chdir("asources")
os.popen("mvn clean compile -DskipTests=true")
res = os.path.isdir("target")
os.chdir("..")
print("Made "+repo)
return res

def analyze(repo):
f = os.popen("""javap -c $(find asources/target/classes/. | grep ".class$")""")
lines = f.readlines()
out.write("REPO:"+repo+"\n")
for line in lines:
out.write(line)
out.flush()
print("Analyzed "+repo)


for line in lines:
line = line.strip()
print(line)
choeckout(line)
buildSomething = make(line)
print buildSomething
if buildSomething:
analyze(line)
removeDir()

out.close()


Po paru godzinach biegania na jednym z serwerów zrobił mi gigantyczny plik, w którym mam zdekomplikowany do "assemblera" JVM kod naszych wszystkich aplikacji ;-)

Do tego mam jeszcze inne skrypty w Pythonie, które lecą po zdekompilowanym kodzie i np. budują mapę wszystkich miejsc gdzie są tworzone i wszystkich miejsc gdzie są używane message JMS, które dziedziczą po odpowiedniej klasie ;-)
W końcu jak szukam repo w którym jest dana klasa, to na razie po prostu szukam w tym wielkim pliku tekstowym nazwy klasy i sprawdzam jakie to repo ;-) [po to jest linia REPO: ;-)]

Sam plik java_poms.txt powstał przez puszczenie na serwerze gdzie jest zainstalowany Mercurial komendy:

find repos/ | grep ".hg" | grep "pom.xml"

i późniejszym wyrzuceniu nadmiarowych informacji.

W kolejnym odcinku, krótka opowieść o tym jak śledzić zależności między kilkuset repozytoriami ;-)


Podobne postybeta
Jak zrobić plik OVPN (dla OpenVPN) w wersji unified format?
SSD a programowanie
Jak walczyć z gigantycznym kodem w Java'ie, część 1.6 - podłe metody prywatne ;-)
Migracja z blog.pl do blogger.com
OS X po 1.5 miesiąca... chyba wolę Ubuntu ;-)

sobota, grudnia 19, 2015

Moto 360 v2 - to jest to :-)

Moto 360 v2 ma killer ficzer.... cały czas pokazuje godzinę ;-)
Oto on:

(jeden komentarz o owłosionej łapie, albo pytanie czemu założyłem zegarek na nogę i zabiję ;-) [nie wiem czy nudę, czy trochę czasu, ale zabiję ;-)])

Rozmiarami wersja 46 mm jest porównywalna ze starą Moto 360:

(po lewej Moto 360 v1, po prawej v2, jak ktoś ciekawy to po lewej stronie u góry to ręczny czytnik kodów paskowych... chyba)

Przy włączonym ambient mode, który pozwala na to by ciągle była widziana godzina na zegarku, po jakichś 18-19 godzinach zostaje nadal ~40% baterii.

Wydaje się też, że przekonstruowany czujnik do pomiaru tętna działa lepiej.

Wbrew temu co mówią plotki ładowarka z nowej Moto 360 v2 jest zgodna z tą z wcześniejszej wersji. Tak Moto 360 v2 może ładować się na ładowarce pierwszej Moto 360, jak i pierwsza Moto 360 na ładowarce wersji drugiej.

Stąd jeśli szukacie prezentu to Moto 360 v2 może być całkiem dobrym pomysłem.


Podobne postybeta
Wartość...
Moto 360 i Lollipop na Nexusach
Pierwszy wpis v2.0 ;-)
Moto 360 i Android Wear po 3 dniach - zaczynam dostrzegać zalety ;-)
Piszę sobie...

wtorek, grudnia 01, 2015

Pierwsza zasada wyboru pracodawcy - rozumieć co robi jego firma ;-)

Dostaję różne oferty pracy (czy bardziej starania się o pracę) i zauważam, że wielu rekruterów próbuje mnie wabić technologiami, albo tekstami o prężnym zespole, czy łamaniu standardów.

Ja bym wolał opis tego co robi firma, tak bym mógł zrozumieć biznes i bym mógł stwierdzić czy to jest coś co chciałbym robić.

Mogę się zgodzić na głupie technologie, walnięty proces i chaotyczne zarządzanie, jak to wszystko wiąże się z ciekawym modelem biznesowym, czy ogólnie ciekawą materią.
W końcu każdą z tych rzeczy (technologie, procesy i metody zarządzania) można zmienić, ba podobno tego się od nas inżynierów oczekuje, ale clue biznesu musi być od początku w miarę czytelne i zrozumiałe... OK, no chyba, że to startup. Wtedy powinno być jak najbardziej nowatorskie i dziwne.

Ale nawet najfajniejsze technologie w służbie pisania np. spam toola? Nie, jednak nie.
Nie warto.


Podobne postybeta
Książki kształtujące - nakażmy politykom przedstawiać listę książek które ostatnio przeczytali
Dream job? ;-)
Szybkoholizm ;-)
Wyznania programoholika ;-)
Atak kreacjonistów