Niedawno, przez niespełna 9 miesięcy, miałem przyjemność pracować w Samsung R&D Center Poland w Warszawie. Jednym z dużych plusów pracy w tej korporacji jest możliwość zetknięcia się z produktami producenta, także tymi, których jeszcze nie ma na rynku. Będąc pracownikiem Samsunga stałem się posiadaczem kilku telefonów z serii Galaxy: S2+, S3 a na sam koniec – S4.
Nie ma co kryć – było to naprawdę wartościowe doświadczenie. Można powiedzieć, że dzięki niemu teraz mogę korzystać z mojego wysłużonego LG GT540 bez ciśnienia na flagshipy. Oczywiście nie oznacza to, że nie chcę lepszego telefonu (epopeja z wyszukiwaniem odpowiedniej oferty to temat na osobny wpis), ale mam do tego większy dystans.
Pierwsze wrażenie
Nie będę oszukiwał – gdy dostałem swój egzemplarz S4, jarałem się jak strzecha po uderzeniu pioruna 😉 Było to podekscytowanie ogólne, nie związane z wyglądem czy możliwościami telefonu – po prostu byłem ciekawy z czym mam do czynienia. W moim przypadku była to bezpośrednia wymiana S3 na S4, więc w grę wchodziło duże przyzwyczajenie wizualne, dlatego przez pierwsze 2-3 dni wydawało mi się, że S4 jest brzydszy od poprzednika. Po opatrzeniu się i przyzwyczajeniu, uznałem że jednak jest to krok w dobrą stronę i że telefon prezentuje się bardzo dobrze. Sytuacja zmieniała się jednak jak w kalejdoskopie, ale o tym później…
Konfiguracja telefonu przebiegła sprawnie, przy okazji skapnęło mi mnóstwo miejsca na Dropboxie (48GB, niestety tylko na 2 lata) za połączenie urządzenia do swojego konta 🙂 Wszystko działało płynnie, szybko, wrażenia z korzystania były bardzo pozytywne. Pierwsze zabawy aparatem fotograficznym wywoływały duży entuzjazm i budziła się we mnie świadomość, że Żona na pewno skorzysta z jego możliwości. Jedną z rzeczy, które zrobiły największe wrażenie to edytor zdjęć, w którym można zdziałać cuda, czyli powiększyć/pomniejszyć automatycznie wykrytym na zdjęciu twarzom oczy/nos/usta/kontur twarzy. Trzeba przyznać, że działa to bardzo dobrze i każda osoba, której tę funkcję pokazywałem robiła równie wielkie oczy jak te, które ja edytowałem 😉 Przeczytaj resztę tego wpisu »
Kategoria:Luźne myśli, Technologia
Przekaż dalej:
Na stronach Samsung Smart TV Apps Developer Forum można znaleźć narzędzia do tworzenia aplikacji na tę platformę (Smart TV). Dla ludzi zaprzyjaźnionych z Eclipse dobrą opcją jest wersja zintegrowana właśnie z tym IDE. Niestety, nawet najnowsza wersja środowiska (SDK 4.0 Beta) bazuje na Eclipse Indigo, czyli jest przestarzała o niemalże dwie generacje (stabilne Juno, Kepler na etapie M3). Na szczęście jest sposób na rozwiązanie tego „problemu” 🙂
Zanim rozpoczniemy integrację, kilka uwag:
- Nie należy ruszać już posiadanych środowisk Eclipse, a także współdzielić workspace’ów (lub przynajmniej zrobić ich backup)
- W przykładzie integracja bazuje na edycji Juno, choć prawdopodobnie identyczna (lub analogiczna) będzie dla każdej kolejnej wersji Eclipse
- Aby nie rozwlekać opisu, w niektórych miejscach zastosuję „skróty myślowe” licząc na samoogarnięcie czytelnika 😉
English-speaking readers should read stackoverflow’s question/answer.
Kategoria:Programowanie, Użyteczne
Przekaż dalej:
Trafiliście kiedyś na screenshoty np. Google Translate pokazujące jakieś dziwne tłumaczenie lub zrzut dyskusji na Facebooku zawierającej bardzo dziwny/kompromitujący wpis? A czy zastanowiliście się choć chwilę czy jest on prawdziwy?
Natknąłem się nie tak dawno na obrazek pokazujący, że Google Translate podpowiada „Real Madrid” gdy wyszukuje się „equipo de mierda„:
Nie wnikam w to, czy jest on prawdziwy, czy to psikus silnika wyszukiwarki. Po prostu przypomniały mi się różne inne podejrzane screenshoty i wróciło do mnie pytanie: czy screenshoty mogą być dowodem na cokolwiek? Przeczytaj resztę tego wpisu »
Kategoria:Rozrywka
Oznaczone jako: firebug
Przekaż dalej:
Wpis ten otwiera cykl jednolinijkowców, czyli użytecznych komend (czy też raczej zestawów komend) rozwiązujących niejeden frapujący problem. One-liners, bo tak zwą się w oryginale, dotyczą języków skryptowych wykorzystywanych w konsoli (linii poleceń).
W tego typu wpisach nie będę się rozwodził na temat zasad działania owych poleceń, będę tylko podawał do czego służą i jak są skonstruowane. Czasem dodam tylko jakąś małą informację, jeśli będzie potrzeba.
Na pierwszy ogień idzie komenda zamieniająca nazwy plików w katalogu (i jego podkatalogach).
Wymuszenie małych liter:
Wymuszenie dużych liter:
Oczywiście .
(katalog bieżący) możemy zamienić na dowolną ścieżkę. Ten jednolinijkowiec różni się od tych krążących po sieci tym, że do konwersji bierze pod uwagę jedynie nazwę pliku, a nie całą ścieżkę.
Kategoria:Programowanie, Użyteczne
Oznaczone jako: bash, jednolinijkowce, oneliners
Przekaż dalej:
Dziś krótko i węzłowato: jak skonfigurować połączenie ze zdalnym repozytorium Git tak, by wykorzystywać klucz SSH logując się jako użytkownik o innym loginie niż lokalny systemowy?
Załóżmy, że lokalnie nasz login to jan.kowalski
, a dostęp do zdalnego repozytorium wymaga logowania jako piotr.nowak
– wszystko pięknie, znamy host, login i hasło, tylko że ciężko nam zapamiętać ciąg znaków typu UnXTlIx5dLCGlzYF9qRp (co jest zupełnie zrozumiałe) i zupełnie nie uśmiecha nam się wizja robienia kopiuj/wklej przy każdym połączeniu. Robimy więc wszystko co potrzeba by wygenerować i wrzucić na serwer klucz SSH. W zależności od tego czy chcemy klucz zabezpieczyć, czy też nie, stosujemy passphrase (wtedy może to być nasze, łatwiejsze do zapamiętania hasło) lub go nie używamy.
Ok, mamy klucz ssh, do dzieła! Klonujemy zdalne repo na nasz komputer:
I niespodzianka… Wcale się nie łączy – pyta nas o hasło (Password:), zamiast o passphrase (Enter passphrase for key '~/.ssh/wygenerowany_klucz':). Zaraz zaraz, myślimy, przecież mam klucz SSH! Przeczytaj resztę tego wpisu »
Kategoria:Użyteczne
Oznaczone jako: git, konfiguracja, ssh
Przekaż dalej:
Jeśli mamy do wykonania 2-3 komendy, to problemu nie ma. Jeśli natomiast praca z repozytorium przypomina ciągłe sprawdzanie statusu, zmienianie gałęzi, commitowanie, resetowanie i wszystko inne, to klepanie za każdym razem komendy „git” może być uciążliwe. Z pomocą przychodzi Git-sh.
Git-sh jest nakładką na konsolę bash, która sprawia, że zyskujemy sporo cennego czasu. Dlaczego?
- Dzięki niej wszystkie komendy Gita stają się globalnymi, czy raczej komendami najwyższego poziomu (czyli zamiast
git checkout master
piszemycheckout master
) - Analogicznie dzieje się ze zdeklarowanymi aliasami (sekcja
[alias]
w gitconfig) - Koniec z cyklicznym klepaniem
git status
– linia poleceń cały czas pokazuje nam nazwę aktywnej gałęzi oraz stan katalogu roboczego (np.master!MojeRepo *>
).
Poza udogodnieniami typowo zadaniowymi, Git-sh oferuje inne: uzupełnianie wprowadzanego tekstu (zarówno komend jak i nazw gałęzi) z użyciem tabulatora oraz kolorowanie wyświetlanych elementów (personalizacja poprzez gitconfig: color.sh
). Przeczytaj resztę tego wpisu »
Kategoria:Użyteczne
Przekaż dalej:
Znaki końca linii to, wydawać by się mogło, sprawa trywialna. Zapewne wiele osób w ogóle nie ma pojęcia, że coś takiego istnieje 😉 Są jednak momenty, gdy znaki te mają znaczenie i decydują o działaniu skryptu czy też aplikacji.
Sposobów na zmianę znaków końca linii zapewne jest mnóstwo, ja postaram się przedstawić te najbardziej użytkowe – z użyciem IDE i gotowych skryptów. To, który sposób najlepiej w danym momencie zastosować, zależy tylko i wyłącznie od upodobań i aktualnych potrzeb. Co innego przecież skonwertować jeden plik, a co innego napakowany nimi katalog.
Na początek troszeczkę teorii. Znaki końca linii to \r
(return) oraz \n
(new line), które mogą pojawiać się pojedynczo lub razem. W zależności od systemu operacyjnego ich użycie jest inne, a wyróżnić można trzy rodzaje:
- CR – wykorzystuje tylko
\r
, skrót pochodzi od anglojęzycznego zwrotu carriage return (powrót karetki) - LF – wykorzystuje tylko
\n
, skrót pochodzi od anglojęzycznego zwrotu line feed (w wolnym tłumaczeniu: nowa linia) - CRLF – połączenie obu powyższych, wykorzystuje
\r\n
Tak prozaiczna sprawa potrafi wprowadzić niemały zamęt – otwieraliście kiedyś w windowsowym notatniku pliki pochodzenia unixowego? Wszystko jest wyświetlone ciurkiem i nie można się połapać co jest gdzie. Dlatego współdzielenie danych w plikach wykorzystywanych przez aplikacje uruchamiane na różnych systemach bywa kłopotliwe i nieprawidłowa obsługa znaków końca linii może doprowadzić do tego, że coś, co teoretycznie zaprogramowane jest prawidłowo, nie będzie działało. Można też natknąć się na inne problemy związane ze znakami końca linii, jak choćby „błąd składni” w plikach po klonowaniu repozytorium Git.
Kategoria:Programowanie, Użyteczne
Przekaż dalej:
O tym, czym tak naprawdę jest Git-Flow postaram się napisać kiedy indziej. Dzisiaj przejdę do konkretów – jak go zainstalować na Cygwinie i rozwiązać ewentualny problem z „błędem składni” pliku wykonywalnego.
Instalacja pakietu Git-Flow opisana jest bardzo telegraficznie na githubowym wiki projektu. Wprawdzie podkreślone jest, że wymagane są pakiety git, util-linux i wget, ale jedno nie jest sprecyzowane – że komenda
która instaluje Git-Flow jednocześnie klonuje repozytorium do miejsca, w którym została wywołana. Warto więc odpalić ją tam, gdzie chcemy, by takie repo się zadomowiło.
Jeśli wykonamy git flow
i ukaże się usage: git flow <subcommand>
z całą resztą opisu pakietu, to znaczy, że wszystko poszło dobrze i możemy korzystać z dobrodziejstw git-flow. Jednak nie zawsze jest tak kolorowo… Przeczytaj resztę tego wpisu »
Kategoria:Programowanie, Użyteczne
Przekaż dalej: