poniedziałek, września 01, 2014

Kilka myśli ;-)

Kilka myśli na dziś ;-)

Pierwsza, że wodoodporny Kindle byłby największym wynalazkiem w dziejach ludzkości ;-)
W końcu można by było bezpiecznie połączyć kąpiel z czytaniem ;-)
Choć może z drugiej strony, odebrałoby to czytaniu w wannie ten dreszczyk emocji? ;-)

Drugie, wyciek fotek gwiazd.
Od dawna wydaje mi się, że Google i Apple powinny dodać do swoich systemów kawałki, które wykrywałyby "nagie fotki" (a umieją to robić, oj umieją) i nie synchronizowałyby ich automatycznie, a pytły usera czy jest na 100% pewien.
Ba, nawet mogłoby to działać podobnie jak rozpoznawanie obiektów w Google Gogle, czyli w momencie zrobienia zdjęcia, które mogłoby podchodzić pod "nagą fotkę" powinno pokazywać notyfikację.
Tak, byłoby to trochę creepy, tak ludzie mogliby zacząć wyłączać synchronizację zdjęć, ale w dłuższej perspektywie panowałoby większe zaufanie.
Bo nagim fotkom mówię zdecydowane, stanowcze "być może" ;-) ale tylko wtedy jeśli ich bohaterki (albo bohaterowie, ale tym mówię "nie, dziękuję" ;-)) same chcą je komuś pokazać.

Trzecie, apartamenty.
Lekko mnie śmieszy, ale też powoli wkurza jak czytam, że miejsce gdzie będę mieszkał to "apartamenty".
Dla mnie to jest blok, nie apartamentowiec.
Chciałbym mieszkać w apartamentowcu, ale to "ciut" wyższa liga.
A tu jest film z moim blokiem ;-)




Podobne postybeta
Lecę do Stanów... i co z tego? ;-)
Jak Chrome Firefoksa ruguje.....
Dwa małe błędy - czyli czemu świat nie jest do końca taki jak powinien być ;-)
Roboty i Android...
[*] najbardziej pusty imotek

niedziela, sierpnia 31, 2014

Data binding w Polymerze jest oszukany ;-)

Bawię się Polymer'em od Google i bardzo mi się podoba, chociaż trochę mnie zawodzi.

Chciałem połączyć tag <google-map> z moim <geo-location>, miało to wyglądać tak:


<geo-location id="loc" lat="{{lat}}" lon="{{lon}}"></geo-location>


<google-map id="map" latitude="{{lat}}" longitude="{{lon}}" minZoom="1" maxZoom="30" fit></google-map>

Gdzie {{lat}} i {{lon}} służyć miały do przekazania wyników z <geo-location> do <google-map>...

Problem w tym, że to działa tylko wewnątrz <template>, czyli musiałem stworzyć swój nowy tag <my-map>:

  <link rel="import" href="bower_components/polymer/polymer.html">

  <link rel="import" href="google-map.html">

  <link rel="import" href="geo-location.html">

  

<polymer-element name="my-map">

<template>

    <geo-location id="loc" lat="{{lat}}" lon="{{lon}}"></geo-location>

    <google-map id="map" latitude="{{lat}}" longitude="{{lon}}" minZoom="1" maxZoom="30" fit>

</google-map>

  </template>

  <script>

    Polymer('my-map',{});

  </script></polymer-element>

Tylko po to by móc przerzucić mapę do lokalizacji w której się znajduje wyświetlający ją komputer.

Przy okazji mój tag <geo-location> wygląda tak:


<link rel="import" href="bower_components/polymer/polymer.html">

<polymer-element name="geo-location" attributes="lat lon">

<template>

    <style>

    :host {

      display: none;

    }

    </style>

  </template>

  <script>

    Polymer('geo-location', {

        lat: 0.0,

        lon: 0.0,

      created: function() {

        var t = this;

        function updatePosition(position) {

            var lat = position.coords.latitude;

            var lon = position.coords.longitude;

            t.lat = lat;

            t.lon = lon;

        }

        navigator.geolocation.getCurrentPosition(updatePosition);

      }

      

    });

  </script>

  

  

</polymer-element>

Działa bardzo prosto.
Najpierw wskazuje, że ma dwa atrybut lat i lon, później zaś w momencie wywołania przez Polymera kodu dla eventu created pobiera lokalizację z navigatora i przerzuca ją do lat i lon obiektu.

Ta konieczność trzymania tego wszystkiego w oddzielnym tagu jest trochę niefajna.
Przyjemniej by było gdyby data binding działał także poza tagami.

[to całe moje zajmowanie się Polymerem wynika stąd, że obiecałem za 2 tygodnie zrobić o nim prezentację w pracy w ramach Technical Friday ;-)]


Podobne postybeta
"Kodowanie" na Chrome OS ;-)
Skróty klawiszowe
Z NMEA do KML (chyba najbardziej kryptyczny tytuł postu jak stworzyłem ;-))
Niech dadzą Darta dla Androida ;-)
Robimy widget do Windows 7 :-)

[Updated] Czytanie Pocketa ;-)

W moim Pocket jest parę tysięcy artykułów do przeczytania....
Szanse na to, że je wszystkie przeczytam są bliskie zeru (musiałbym chyba już teraz czytać z 3-4 miesiące non-stop).
Dlatego czasami słucham artykułów.
Na Androidzie jest to proste, ale czasem potrzebuję tego na PC.

Tutaj pomocny przychodzi skryptozakładka, której kod wygląda tak:

javascript:{function speak(txt) { var u = new SpeechSynthesisUtterance(txt); speechSynthesis.speak(u); }; var elems = document.getElementById("content").innerText.split("."); var idx=0; function s() { if (!speechSynthesis.speaking) speak(elems[idx++]); if (idx<elems.length) setTimeout(s,100);}; s();}

Cała idea jej działania polega na tym, że najpierw pobierana jest treść wpisu (wraz z tytułem i paroma dziwnymi rzeczami), później treść wpisu dzielona jest na zdania i w końcu są one czytane.

Wszystko działa na Chrome.

Czasem może dostać zadyszki i wtedy ratuje nas tylko speechSynthesis.cancel() w konsoli JavaScript.

Należy jej używać będąc w artykule w Pocket.
Kod powyżej należy wkleić do skryptozakładki (jak zakładka tyle, że zamiast adresu strony ma to co wyżej).

Update:
Nowa wersja skryptozakładki:

javascript:{function speak(txt) { var u = new SpeechSynthesisUtterance(txt); speechSynthesis.speak(u); }; var elems1 = document.getElementById("content").innerText.split("\n"); var elems=[]; for (var i=0; i<elems1.length; i++) { var el = elems1[i].split("."); for (var j=0; j<el.length; j++) elems.push(el[j]);}; var idx=0; function s() { if (!speechSynthesis.speaking) speak(elems[idx++]); if (idx<elems.length) setTimeout(s,100);}; s();}

Update2:
Coby mieć pewność, że czytanie będzie po angielsku trzeba dodać jeszcze jedną rzecz do skryptozakładki :-)

javascript:{function speak(txt) { var u = new SpeechSynthesisUtterance(txt); u.lang="en-US"; speechSynthesis.speak(u); }; var elems1 = document.getElementById("content").innerText.split("\n"); var elems=[]; for (var i=0; i<elems1.length; i++) { var el = elems1[i].split("."); for (var j=0; j<el.length; j++) elems.push(el[j]);}; var idx=0; function s() { if (!speechSynthesis.speaking) speak(elems[idx++]); if (idx<elems.length) setTimeout(s,100);}; s();}

Podobne postybeta
localStorage odsłona 2 - zaczynają się kłopoty ;-)
Sekrety klasy String ;-)
Matematyczne podstawy zakupu skarpetek ;-)
Zinwigiluj się sam ;-)
HTML5 goodies - localStorage

czwartek, sierpnia 28, 2014

0:00 - godzina updatów ;-)

Kiedyś to była godzina duchów, dziś, dzięki technologii i planom nocnym północ to czas updatów ;-)

Wtedy właśnie robię apt-get update po czym apt-get upgrade, to wtedy Chromebookowi każę sprawdzić czy nie ma nowej wersji systemu, a na wszystkich urządzeniach Androidowych sprawdzam czy nie ma aktualizacji w sklepie ;-)

Właściwie tylko Android Studio pozwalam szukać updatów wcześniej.

Co też nielimitowany internet komórkowy między 0:00 a 9:00 robi z człowiekiem.... ;-)


Podobne postybeta
Windows Mobile 6 w Asus A636N
Programowanie jako sztuka oszukiwania ;-)
So many Kindles..... ;-)
OOo2GD w Ubuntu 9.10 - da się.
Marudzenie nocne ;-)

środa, sierpnia 27, 2014

A może by tak rubber duck debugging stosować do problemów życiowych? ;-)

Zauważyliście, że tym łatwiej dawać rady [albo nie dawać, ale mieć swoje zdanie] im mniejszy związek emocjonalny z tym komu się radzi?
Wtedy człowiek zwykle bardziej racjonalny jest.

Ciekawe czy dałoby się racjonalnie spojrzeć na swoje sprawy?

Taki rubber duck debugging daje jakieś hinty jak można do tego podejść.
Tam przez opowiadanie problemu, czyli przepuszczenie go przez fragment mózgu, który odpowiedzialny jest za mowę odsuwamy trochę problem od siebie i przez to często widzimy go w innym świetle i przyczyna staje się oczywista.

Może więc w razie problemów w życiu osobistym należałoby je spisywać, albo mówić sobie nagrywając się na video? :-)

[OK zrobiłem eksperyment i hmm... może i działa, ale nie wiem czy tędy droga ;-)]

Trzeba próbować dalej ;-)


Podobne postybeta
OO.org i Google Docs bez konwersji są tuż tuż ;-)
Trzy heurystyki developerskie, których wdrożenie uchroni Cię przed zawałem i pozwoli przebić balon zadufania ;-)
Jak oni to dowiozą? ;-)
Długa Ziemia vs Wysokie Megi...
Złe Markety ;-)

poniedziałek, sierpnia 25, 2014

Ficzer, za który lubię Linuksa ;-)

Ten jeden ficzer rekompensuje mi wiele niedogodności, które przynosi ze sobą Linux ;-)



Szczególnie w połączeniu z głupim gestem, który sprawia że po przesunięciu myszy do prawego dolnego rogu ekranu pokazuje mi się właśnie taki widok i mogę łatwo przesunąć się do odpowiedniego obszaru roboczego (przy okazji brakuje mi tego na OS X, jest z gładzikiem, ale z myszą jakoś nie udało mi się tego zrobić).


Podobne postybeta
Coraz więcej dnia :-)
Przeglądarka zawsze przydatna
Clock JB+, czyli zegar z Jelly Bean 4.2 dla starszych Androidów
Smutno mi się zrobiło...
Wiele desktopów i lupa - czemu Windows tego nie ma?

Migracja

Moja podróż do Nju mobile została rozpoczęta ;-)
Dziś podpisałem papiery i dostałem SIMa na którym jest numer tymczasowy, który sobie jednak odpuszczę i poczekam aż mój numer zostanie zmigrowany z T-Mobile do Nju mobile.

Co mi się podoba to to, że na każdym etapie dostaję maile z wyjaśnieniem co się stało i co będzie dalej.
Dzięki temu wiem czego się spodziewać i kiedy.
Widzę też, że firma się o mnie troszczy.

Wystarczyło napisać kilka dobrych wzorów tekstu i wysyłać je w odpowiednim momencie i klient czuje się poinformowany.

Zawsze mnie zaskakiwało, że taka banalna rzecz, która ma gigantyczny wpływ na odbiór jest ponad zdolnościami pojmowania wielu speców od marketingu.

Bronią się tekstami, że przecież klienci wiedzą (nie wiedzą), albo że "nasz personel zawsze chętnie poinformuje" (zwykle nie z własnej woli bo mają swoje problemy, a na dodatek słabo im płacicie więc czemu się mają starać?).

A wystarczy sobie typowe sytuacje opisać i wysyłać w odpowiednim momencie maila i klient będzie zadowolony.

Podejrzewam, że nawet odpowiednio spreparowany tekst (grzeczny!) dotyczący braku opłaty rachunku by sprawy przyspieszył.


Podobne postybeta
Windows 8 - na razie czekam ;-)
Strzeż się uses-feature
Dwa narzekania ;-)
Klauzula samoluba?
Zła lojalność ;-)

niedziela, sierpnia 24, 2014

Piękne aplikacje, co to właściwe jest?

Co czyni aplikację piękną?

Nieraz byłem proszony o podanie przykładów pięknych aplikacji........
I mam z tym problem.

Po długim zastanawianiu jestem w stanie podać Moves, którego i tak już nie używam od czasu gdy przeszli pod skrzydła Facebooka (chociaż to był tylko pretekst, samo Moves zjadało mi zbyt dużo baterii). Ale Moves było ładne.

Podałbym Keep, ale chociaż ładne to zbyt często ma problemy z komunikacją, a wersja webowa zbyt często szaleje.

Flipboard mi się podoba, a dokładniej podobał, ale dawno doń nie zaglądałem bo oszukuje, coś pokazuje ja chcę zajrzeć, a to znika bo się zrobił update.

Używam często Zite, ale chociaż bardzo mi się podoba to co pokazuje (w sensie ciekawe treści) to nie nazwałbym go pięknym. Ale chociaż nie oszukuje ;-)

Mapy Google są piękne, ale wersja dla Androida jest jak dla mnie zbyt mało intuicyjna. Zawsze mam problem czy mam zrobić klik, dwuklik, dotknąć pinezki, czy przytrzymać.

Atrakcyjność wizualna nie jest zatem AŻ tak ważna.

Ale OK, może nie chodzi tylko o piękno wizualne, ale i o użyteczność?

Wtedy nadal mogę podać Moves, bo nie dość, że ładne, to jeszcze jest banalnie proste w użyciu. Praktycznie jest to aplikacja bezobsługowa.

Dodałbym Bloggeroida bo jak dla mnie jest bardzo użyteczny, jest prosty jako konstrukcja cepa i pozwala robić to co chcę. Nie twierdzę, że jest piękny wizualnie (chociaż mnie się podoba), ale jest prosty w użyciu.

Google Camera też pasuje do takiej wizji piękna. Pozwala robić to do czego służy, nie wymaga doktoratu z obsługi aplikacji, daje duże możliwości.

Pocket jest świetny,  dość ładny wizualnie, ale i użyteczny.

Dodałbym też moją "aplikację" do Agile Pokera, bo robi to co powinna bez zbytniego problemu, jest prosta i skuteczna.

To może jeszcze wziąć pod uwagę "kompletność"? W sensie czegoś co pozwala na wykonanie pewnych działań i człowiek czuje się w tym jakby to była jego druga skóra?

To IntelliJ IDEA, do niedawna mieszkałem w obozie Eclipse'a, ale od jakiegoś czasu uzywam IDEA'i i jestem zakochany. To jest IDE, które mi pomaga. Stara się jak może pomóc w kodowaniu.

Kolejnym takim narzędziem jest Total Commander.

IrfanView także.

Do tego dodałbym jeszcze WinAmp'a, który jak dla mnie jest kwintesencją odtwarzacza muzyki.

Jeszcze VLC i Chrome.

Jednak nie jestem pewien czy to co wskazałem wyżej to są piękne aplikacje. Są często ładne, zwykle użyteczne i do tego łatwe w użyciu, ale czy piękne?
Nie wiem.

Widzę, jednak że to co wymieniłem to aplikacje, które są proste w użyciu, często są single purpose apps'ami, nie wprowadzają jakiejś nadmiarowej abstrakcji i starają się jak najbardziej ukryć.
Starają się być niewidoczne.

Ale czy niewidoczne może być piękne? ;-)


Podobne postybeta
Moja następna poprawka do konstytucji ;-)
Kuchenka mikrofalowa
Może mi ktoś wytłumaczyć po co istnieją GWT i GWTP?
Ice Cream Sandwich na Naxus S :-) ciąg dalszy ;-)
Windows 8 - błeee, ciągle błeeee

sobota, sierpnia 23, 2014

Zła lojalność ;-)

Małe rzeczy zmieniają sposób patrzenia na świat ;-)
Dostałem ostatnio ultimatum od T-Mobile (oni to nazywają ofertą ;-)) w którym zagrozili, że albo przejdę do nowej taryfy JUMP ze swoimi numerami, albo oni mi podniosą cenę o 5 PLN za każdy z numerów.
Od parunastu lat byłem lojalnym klientem, a tu taka niespodzianka...

Ale dobrze się stało.

To mi uświadomiło, coś co jest niby oczywiste, ale nigdy na to tak nie patrzałem. Lojalna powinna być firma w stosunku do klienta, nie klient w stosunku do firmy.

Dlatego trzeba zmienić sobie mindset ;-) nie działać tak, że człowiek godzi się na niedogodności bo są (zwykle pozornie) mniejsze niż koszt zmiany. Od razu trzeba sprawdzić czy zmiana nie wyjdzie "taniej".
Nie płaćmy podatku od pozornej wygody.
W końcu to oni mają o nas - klientów - walczyć, a nie my - klienci - o nich ;-)

Ja już podjąłem kroki w celu opuszczenia T-Mobile. Najpierw jeden numer, a drugi gdy się umowa skończy (bo tutaj akurat te 5 PLN więcej mnie nie zaboli, a nie chcę podpisywać kolejnej umowy na parę lat bo już za chwilę, za chwileczkę Blueconnect mi nie będzie potrzebny).


Podobne postybeta
DVD BtVS sezon 2
Ciekawe czy ktoś zajmuje się "testowaniem" czy może "próbkowaniem" rynku nieruchomości? :-)
Chyba w końcu przejdę na ciemną stronę - otworzę sobie linię kredytową ;-)
Informacja
A Pi ciągle działa....

czwartek, sierpnia 14, 2014

Najbardziej przydatne akcesorium do tabletu ;-)

Wygląda w użyciu tak:



Jest to prosta, kartonowa podstawka:


Której wykonanie pokazane jest w tym filmiku [który wcześniej już wkleiłem na Google+ ;-)]:


Wygląda to niepozornie, ale naprawdę ułatwia sprawę :-)
Po pierwsze tablet/tablety zajmują mniej miejsca, po drugi łatwiej je wziąć do ręki, a po trzecie ogólnie lepiej wyglądają :-)

Sam używa z 2 tabletami :-) Teraz szykuję się ze zrobieniem takiej podstawki dla telefonu ;-)



Podobne postybeta
Poprawiamy JDK7 ;-)
Pokrowiec - zdeużytecznik ;-)
Ludzie nie potrafią czytać...
Gdzie jest mój tablet????
Asus EEE 900 - Tips & Tricks ;-)