poniedziałek, lutego 27, 2017

Godzina godzinie nierówna

Jedna godzina spędzona na nauce na Coursera, Udacity czy gdzie indziej to godzina lepsza od godziny ma Facebooku, Twitterze czy nawet Google+.
Z pierwszej zwykle wyjdziemy z jakąś wiedzą, z drugiej też się to może zdarzyć, ale zwykle ta wiedza będzie dość płytka i po chwili wyleci nam z głowy.
Godzina nauki może co prawda pokazać, że jesteśmy tępi ;-) ale mimo tego po godzinie może nadal będziemy tępi, ale nasza wiedza będzie choć trochę większa.
W przypadku Facebooka możemy się czuć po godzinie gorzej niż godzinę wcześniej...

Stąd, jak gdzieś się wala jakaś wolna chwila to może lepiej spędzić ją na nauce niż na Facebooku?

posted from Bloggeroid




Podobne postybeta
Długa Ziemia vs Wysokie Megi...
0:00 - godzina updatów ;-)
Logistic Regression wykrywa clickbaity lepiej od Bayesa ;-)
Facebook vs. Ja, tym razem 1:0 dla Facebooka ;-)
Pratchettowy urodzaj :-)

niedziela, lutego 26, 2017

Lepszy test mniejszy i dokładniejszy, niż większy i ogólniejszy ;-)

Mam w Bloggeroidzie taki kawałek kodu:

  public static String markupToHTML(String content) {
// ampersand and lt and gt
      content = content.replace("&", "&");
content = content.replace("<<", "&lt;");
content = content.replace(">>", "&gt;");

// add links
      content = content.replaceAll("\\[([^\\]]+)\\s+(http[^\\]]+)\\]", "<a href=\"$2\">$1</a>");
content = content.replaceAll("\\[(http[^\\]\\s]+)\\s+([^\\]]+)\\]", "<a href=\"$1\">$2</a>");
content = content.replaceAll("\\[(http[^\\]\\s]+)\\]", "<a href=\"$1\">$1</a>");

// formatting
      content = content.replaceAll("\\*\\*([^*]*)\\*\\*", "<b>$1</b>");
content = content.replaceAll("\\_\\_([^_]*)\\_\\_", "<i>$1</i>");
content = content.replaceAll("\\-\\-([^_]*)\\-\\-", "<strike>$1</strike>");
content = content.replaceAll("\\^\\^([^_]*)\\^\\^", "<sup>$1</sup>");

return content;
}

Ma dokonywać konwersji postów z Bloggeroidowego markup'a do HTMLa.

I mam do tego trochę testów (które dopisuję ostatnio, bo wcześniej UT na Androidzie były tak sobie możliwe)

@Test public void strike() {
// setup
    String input="This is --strike--";
// examine
    String result = Markup.markupToHTML(input);
// verify
    assertEquals("This is <strike>strike</strike>", result);
}

@Test public void sup() {
// setup
    String input="E=mc^^2^^";
// examine
    String result = Markup.markupToHTML(input);
// verify
    assertEquals("E=mc<sup>2</sup>", result);
}

@Test public void link1Https() {
// setup
    String input="Go to [przemelek https://przemelek.blogspot.com]";
// examine
    String result = Markup.markupToHTML(input);
// verify
    assertEquals("Go to <a href=\"https://przemelek.blogspot.com\">przemelek</a>", result);
}

Dużo ich jest i wiele osób byłoby za tym by zamiast robić tyle małych testów mieć jeden mniej więcej taki:


@Test public void text() {
// setup
    String input="Most **famouse** __equation__ is E=mc^^2^^\nGo to [http://przemelek.blogspot.com]";
// examine
    String result = Markup.markupToHTML(input);
// verify
    assertEquals("Most <b>famouse</b> <i>equation</i> is E=mc<sup>2</sup>\nGo to <a href=\"http://przemelek.blogspot.com\">http://przemelek.blogspot.com</a>", result);
}

Bo ten test testuje praktycznie wszystko co moje multum małych testów.
Niejeden byłby za tym by w ogóle testować jeszcze wyżej, żeby sprawdzić jeszcze inne konwersje za jednym zamachem.

I niby coś w tym jest, w końcu one wszystkie razem występują....
Ale problem jest w tym, że jak taki test padnie to trzeba dość dużo czasu by dojść do tego co w ogóle nie działa.
Jeśli nawet w drugiej wersji testu okaże się, że __ nie jest tłumaczone na kursywę to dojdę do tego dopiero oglądając dokładnie różnicę między tekstem oczekiwanym, a otrzymanym.
W pierwszej wersji testów po prostu padnie mi test italic().

Stąd lepiej czasem napisać trochę głupich i malutkich testów, niż 1 mega test.

Ogólnie jak w teście pojawia się if albo for to wiedź, że coś się dzieje ;-)


Podobne postybeta
Skróty klawiszowe
Tworzenie poprawnych nazw plików :-)
Pomnóżmy sobie duże liczby ;-)
Eksperyment, czyli z Google+ do Bloggera ;-)
Data binding w Polymerze jest oszukany ;-)

sobota, lutego 25, 2017

Biurko

Biurko to rzecz ważna.

Ja mam 2 biurka.

Jedno w domu (Ikea Bekant sit-stand)


Drugie w pracy (jakieś biurko + WorkFit-S, Dual Monitor with Worksurface+)



Wolę to w domu bo jednak całe jest podnoszone i ma tylko 1 telewizor + ekran laptopa, przez co mogę patrzyć zawsze do przodu, a nie muszę w bok*.

Ostatnio odkrywam, że funkcja stania w biurku jest bardzo ważna.
Gdy muszę się skupić na tym co robię najlepiej jest gdy stoję. Wtedy szkoda mi czasu by wchodzić na FB czy podobne pożeracze czasu i energii.
Zdejmowanie butów też jest dobre, bo nie ciągnie mnie do łażenia po biurze.
Ogólnie stojące biurko pomaga mi w przejściu do deep work'u ;-)

Siedzenie jest dobre gdy trzeba coś dłuższego przeczytać, albo obejrzeć jakieś video w szkoleniu/kursie.
Albo po prostu gdy człowiek się na tyle zmęczy, że jednak chce usiąść ;-)

Przy zmianach pozycji biurka ważne jest to, że można zmienić też wysokość monitora, wtedy łatwiej jest ustawić bardziej ergonomiczną pozycję.

Jedna rzecz, z którą mam zawsze przy biurkach problem to cable management ;-)
Wygoda się kłóci z elastycznością. Powiązane kable maja to do siebie, że trudno coś w nich zmienić... np. mysz gdy jej kabel jest w wiązce ;-)
To samo z listwami elektrycznymi, fajnie mieć łatwo dostępne gniazdko, ale takie widoczne gniazdko oznacza zwykle walające się kable.
Ja jednak stawiam elastyczność nad estetyczność w takich przypadkach ;-)

* - u mnie dodatkowy monitor robi za przeszkadzajkę, jakoś nigdy nie nauczyłem się pracować z 2 monitorami. Zdecydowanie bardziej od dodatkowych monitorów pomagają mi kolejne wirtualne desktopy)


Podobne postybeta
Praca na stojąco - wersja pro ;-)
Liliputer - istnieje coś takiego? ;-)
3 must have dla Chrome OS ;-)
Moje "odkrycia" 2014 roku :-)
Komputery w ubraniu....

poniedziałek, lutego 20, 2017

Odinstaluj jedną aplikacje dziennie - wyniki

Wychodzi, że skasowałem z telefonu już wszystko czego nie używam.
Teraz ekran główny wygląda tak:

Chociaż nadal są to 92 aplikacje...
Ale było więcej :-)

Chyba jednak będę już musiał zrezygnować z tego codziennego odinstalowywania codziennie jednej aplikacji.

Telefon wydaje się działać jakoś tak ciut szybciej i wygląda, że bateria starcza mu na dłużej.

posted from Bloggeroid




Podobne postybeta
Facebook vs. Ja, tym razem 1:0 dla Facebooka ;-)
Minisec
Usuń jedną aplikacje dziennie
5 prawd życiowych ;-)
4 mln ton....

niedziela, lutego 19, 2017

Deklaratywnie czy imperatywnie... oto jest pytanie ;-)

Jest teraz wielka wojna między imperatywnym, a deklaratywnym programowaniem.
Ja w użyciu jestem bardziej przy imperatywnym, choć deklaratywne mi się podoba.

Ale popatrzmy na takie 2 przykłady, które robią dokładnie to samo:

public int findOddStream(int[] A) {
return Arrays.stream(A).reduce(0, (a, b) -> a ^ b);
}

public int findOddImperative(int[] A) {
int n = 0;
for (int i:A) n^=i;
return n;
}

Obie metody robią to samo, czyli znajdują nieparzystą liczbę w tablicy A.

Nie wiem czemu, pewnie przez lata praktyki, ale to drugie rozwiązanie wydaje mi się bardziej czytelne.

Fakt, że wersja deklaratywna ze strumieniami jest krótsza jeśli liczyć linie, ale w znakach jest dłuższa.

No i w wersji deklaratywnej trzeba wiedzieć, że 0 w reduce to identity redukcji, czyli taka "wartość startowa".

Szczerze nie wiem która wersja wydaje mi się bardziej czytelna.

PS.
Na Google+ w komentarzach wyszło, że dobrze by było podać linka do treści zadania, które tu jest rozwiązywane ;-)
Stąd link https://codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/


Podobne postybeta
Dziwne te ludzie ;-) - pazerność2
Miejsca gdzie nie używałeś jeszcze komputera [ewentualnie miejsca, gdzie nie dopadły nas jeszcze komputery ;-)]
Plus dla Scala, minus dla Groovy ;-)
Fix na problem, który męczył Bloggeroida od lat.....
Skasuj konto w Facebooku - oni zdecydowanie za dużo o Tobie wiedzą.

sobota, lutego 18, 2017

Chcę sankcji UE

Chciałbym żeby UE nałożyła na Polskę sankcje za łamanie trójpodziału władzy i łamanie standardów demokratycznych.
Chcę żyć w demokratycznym państwie prawa, chcę też żyć w UE. Stąd chcę żyć w demokratycznej UE, w której przestrzega się prawo.
Jeśli UE nie zacznie wymagać od krajów takich jak Polska czy Węgry przestrzegania demokratycznych standardów to znaczy, że to nie jest ta UE w której chcę żyć.

Nie miałbym problemu z wygraniem wyborów przez PiS, gdyby PiS przestrzegało zasad.
Gdyby wybrało sobie sędziów TK na wolne miejsca, gdyby nie tworzyło ustaw o TK, które miały TK sparaliżować.
Gdyby deformę edukacji poprzedziło badaniami i konsultacjami. Gdyby nie rozwalało armii, służb specjalnych, sądów, prokuratury, czy ogólnie państwa.

Ale to co teraz robi PiS to nie demokracja, a demokratura. Nie rządy większości z poszanowaniem woli mniejszości, a dyktat tego kto ma większość w organach przedstawicielskich.

PiS ma dla jaj w nazwie na pierwszym miejscu słowo prawo, dla takiej samej beki ma jako drugie słowo sprawiedliwość. Prawa nie przestrzega, czego dowiódł demontaż TK (i to, że teraz obecna prezes TK jest w stanie zawieszenia przez to, że złamała procedury ustawy, którą pod nią napisano tylko to umacnia), sprawiedliwość ma zaś obok gwiazdkę z dopiskiem "sprawiedliwość wg Jarosława Kaczyńskiego".

Jak to Pratchett pisał, jeden człowiek = jeden głos, u nas tym człowiekiem jest Jarosław Kaczyński... Wódz. Jednoosobowo podejmuje wszystkie decyzje.

Stąd UE jeśli ma być organizacją zrzeszającą państwa demokratyczne powinna reagować i stosować presję finansową. W końcu jaki interes obywatele UE mają w niedemokratycznej Polsce?


Podobne postybeta
Noż kurwa....
Skrócona wersja zmian w ustroju Polski po wyborach w 2015 roku
Atlas zbuntowany, ale na odwrót ;-)
Ja się tam mogę ewakuować....
Politycznie

czwartek, lutego 16, 2017

Procesy ;-)

Tak dziś rozmawialiśmy w pracy o różnych praktykach w różnych firmach i wyszło, że są firmy w których gdyby ktoś zaproponował żeby w ramach podnoszenia motywacji zrywać programistom paznokcie tak raz na miesiąc to na tekst, że to głupi pomysł padłaby odpowiedź, że to bardzo nieagileowo odrzucać pomysł bez sprawdzania.
Po 3 miesiącach gdyby developerzy mówili, że to jest naprawdę głupi pomysł i nie działa usłyszeliby, że 3 miesiące to za mało by móc oceniać skuteczność i że nadal trzeba to testować.
Po 9 miesiącach zrywania paznokci na słowa krytyki od programistów padłaby odpowiedź, że może to rzeczywiście nie działa tak dobrze, ale przecież tyle już w to zainwestowaliśmy, że szkoda tak to porzucić...
Po 2 latach gdy program by jednak umarł (na korzyść wyrywania włosów tym razem) to pojawiłyby się głosy, że to niesprawiedliwe, że nowi ludzie nie będą mieli szansy popracować z procesem zrywania paznokci ;-)

posted from Bloggeroid




Podobne postybeta
[Lifehack] Jak połapać się w ładowarkach ;-)
Podróżujemy ;-)
Na śpiocha....
Post drugie - bądź na tak ;-)
A gdyby tak....

wtorek, lutego 14, 2017

CI z branchachmi to jednak nie jest CI

W dyskusji pod postem o branchach pojawił się temat CI czyli continuous integration.
I take sobie uświadomiłem, że jednak nadal jest wiele miejsc gdzie korzysta się z narzędzi do CI, ale de facto nie robi się CI.
Bo CI to jednak jest ciągła integracja, w której istotne jest to, że mamy szybką pętlę zwrotną i nie kisimy zmian tygodniami na własnych branchach by w końcu zrobić wielką integrację.
Inna sprawa, że nawet w takich miejscach te narzędzia pomagają ;-)

posted from Bloggeroid




Podobne postybeta
Wrrr.... złe API ;-)
Mój Robot - podejście pierwsze ;-)
O tym czemu branche są złe...
Czy psy lubią gdy zwraca się na nie uwagę?
W Androidzie przydałyby się nagrywalne intenty :-)

niedziela, lutego 12, 2017

Wesołego Dnia Darwina - daj pohasać dziś swojej wewnętrznej małpie :-)

Dziś 12 lutego czyli Dzień Darwina.

Radosne święto ku czci człowiekowi, który pokazał skąd taka różnorodność życia.


To dzień w którym Twoje wewnętrzna małpa powinna radować się z tego, że miała tyle szczęścia by zaistnieć.

Ja ku czci przywdzieję koszulkę z Darwinem i poczytam sobie o ewolucji :-)
A i posłucham kawałka który wyżej ;-)


Podobne postybeta
Powiedz dziś "Część!" swojej wewnętrznej małpie ;-)
Dzień Darwina
Półsprawny Gadacz....
Jakieś święto, czy co?
Rok Darwina czas zacząć :-)

Dysonans poznawczy roku 2017 ;-)

Jest rok 2017.
De facto naszym zmartwieniem i tematem rozmów powinno być budowanie stałej bazy na Marsie i lot na Jowisza, a nie budowa muru między USA i Meksykiem, nie jacyś szaleńcy w turbanach, którzy postanowili zbudować kalifat, nie "seby" i "janusze" chcący zamordyzmu.

O tym skąd pochodzą gatunki wiemy od 158 lat.
75 lat temu zbudowano pierwszy reaktor jądrowy.
64 lata temu poznaliśmy strukturę DNA.
63 lata temu pierwszy człowiek poleciał w kosmos.
48 lat temu ludzie wylądowali na Księżycu..

Ludzie nigdy nie żyli tak długo i tak zdrowo jak teraz. Nigdy nie było na Ziemi tylu ludzi. Nigdy ludzie nie byli tak najedzeni. Nigdy ludzkość nie miała takiego nadmiaru żywności, że dla wielu podstawowe problemy zdrowotne wynikają z przejedzenia.

No mam pewien dysonans poznawczy...


Podobne postybeta
Czytanie w śnie - to nie działa ;-)
Stare = do zniszczenia?
Ukradli nam przyszłość....
Android Marketowi odbiło
Sarkania na C++