GitHub Desktop. Jak ściągnąć repozytorium na dysk lokalny ze strony GitHub.com?

Dzisiaj szybki post dotyczący ściągnięcie swojego repozytorium ze strony GitHub.com do lokalnego repozytorium zarządzanym przez GitHub Desktop.

  1. Zaloguj się do swojego konta na stronie GitHub.com i do programu GitHub Desktop.
  2. Na stronie GitHub.com przejdź na stronę repozytoriów (zakładka: Repositories).
  3. Wybierz któreś ze swoich repozytoriów, czyli kliknij w jego nazwę.
  4. Nad listą plików i katalogów po prawej stronie widnieje zielony przycisk „Code”. Kliknij w ten przycisk.
  5. Na liście rozwijalnej wybierze pozycję: Open with GitHub Desktop.
  6. Potwierdź komunikaty przeglądarki (komunikaty mogą się różnić w zależności od użytkowanej przeglądarki).
  7. W nowym oknie o nazwie „Clone a repository” masz informację o jakie repozytorium chodzi (nazwa użytkownika i nazwa repozytorium). W dolnej części okna masz wskazaną ścieżkę do lokalnego repozytorium, które zostanie utworzone jeśli potwierdzisz chęć klonowania tego repozytorium. Oczywiście lokalizację możesz zmienić.
  8. Wszystko potwierdź klikając w przycisk „Clone”.
  9. Gotowe. Na lokalnej maszynie masz teraz sklonowane repozytorium. Znajduje się ono w lokalizacji która została wskazana w pkt. 7.

SQL Dobre praktyki przy pisaniu zapytań sql cz.2.

Z uwagi na to, że artykuł „SQL Dobre praktyki przy pisaniu zapytań sql.” cieszy się dużą popularnością pozwoliłem sobie dopisać część nr 2 🙂

No to zaczynamy!

1. Zawsze prezentuj to co niezbędne i tylko to.

Początkujący programiści mają taką „przypadłość”, że często zostawiają znak ” * ” w części SELECT. Przeważnie nasze zapytanie nie musi zwracać wszystkich kolumn z wszystkich tabel które występują w zapytaniu. Ogranicz więc ilość zwracanych kolumn w części SELECT do niezbędnego minimum. Na pewno będzie to miało pozytywny wpływ na szybkość wykonywania się zapytania. To samo tyczy się podzapytań w środku zapytania głównego.

2. Poprawnie dobieraj typy danych do poszczególnych kolumn.

Ta porada dotyczy bardzie tworzenia struktury danych ale postanowiłem także o niej wspomnieć.

Jeśli nie ma potrzeby stosowania „większego” typu danych to stosuj jak „najmniejszy” typ danych. Pamiętaj że różne typy to różna ilość bajtów na dane a co za tym inna wielkość potrzebna na przechowywanie Twoich danych na dysku. Np. po co stosować typ bigint do kolumny id w tabelach słownikowych skoro „zwykły” int w zupełności wystarczy. Po co przechowywać samą datę w typie datetime skoro chcemy przechowywć tylko i wyłącznie datę bez czasu. Pamiętaj datetime to 8 bajtów a date tylko 3. itd.

3. Przy porównaniach zadbaj o zgodność typów.

Na początek dam przykład:

WHERE timestampdate BETWEEN '2000-01-01′ AND '2000-12-31′ — gdzie timestampdate jest typu timestamp.

W przykładzie powyżej timestampdate jest typu timestamp a daty w BETWEEN-ie typu date. Generalnie zapytanie zadziała ale kompilator będzie musiał konwertować w locie jeden typ na drugi a to już jest czas 🙂

TortoiseSVN czyli jak zacząć wersjonować kod, dokumenty itp.

Każdy z nas spotyka się z różnego rodzaju dokumentami tekstowymi. Jedni tworzą dokumenty w programie Word, programiści kodują … i tak dalej. Jeśli w danym momencie potrzebna jest nam tylko aktualna wersja dokumentów/kodu programisty to w porządku. Problem zaczyna się w momencie kiedy przydałoby się przechowywać (archiwizować) wcześniejsze wersje czy to dokumentów czy to kodu. Zaczyna się wtedy tworzenie jakichś skomplikowanych struktur katalogów i kopiowanie kolejnych wersji itp. Z czasem sami zaczynamy się w tym gubić i przestajemy nad tym panować.

Ale nie ma tego złego i z pomocą przychodzą nam systemy kontroli wersji. Są to narzędzia dzięki którym możemy cały czas pracować nad naszymi dokumentami/kodem ale w każdym momencie wrócić do każdego miejsca wcześniej, który oczywiście sobie zapisaliśmy. Jednym z bardziej popularnych narzędzi tego typu (przynajmniej moim zdaniem) jest program TortoiseSVN, zwyczajowo nazywany po prostu SVN. I w tej serii artykułów omówię jego podstawowe możliwości.

Instalacja.

W tym artykule zajmę się tylko instalacją a w kolejnych przejdziemy do tworzenia repozytorium i omówienia możliwości tego narzędzia. Jestem programistą więc możliwości SVN-a pokażę Wam na podstawie wersjonowania prostego kodu C++. No to jazda.

Ściągnij SVN z Internetu.

  1. Żeby ściągnąć SVN-a wejdź na stronę: https://tortoisesvn.net/.
    tortoise svn
    Strona główna tortoisesvn.net
  2. Kliknij na zakładkę „Download”.
    TortoiseSVN
  3. Teraz wybierz wersję która jest najbardziej odpowiednia dla Twojego sprzętu (u mnie będzie to 64 bitowa wersja).
    TortoiseSVN wybór wersji
    TortoiseSVN wybór wersji (64bit).
  4. Po kliknięciu w link i akceptacji ciasteczek na stronie na którą zostaniesz przekierowany zostanie uruchomiony proces ściągnięcia pliku instalacyjnego. Otworzy się okno dialogowe w którym musisz wskazać lokalizację gdzie chcesz ściągnąć plik instalacyjny.
  5. Teraz wejdź do lokalizacji którą wskazałeś i gdzie został pobrany plik instalatora i uruchom plik podwójnym kliknięciem.
  6. Pojawi się okno powitalne. W celu kontynuowania procesu instalacji kliknij w przycisk „Next”.
    TortoiseSVN instalacja okno powitalne
    TortoiseSVN instalacja okno powitalne
  7. W kolejnym oknie musisz wyrazić zgodę na warunki licencji. W celu kontynuacji kliknij w „Next”.
    TortoiseSVN instalacja potwierdzenie warunków licencji
    TortoiseSVN instalacja potwierdzenie warunków licencji
  8. Kolejne okno to wybór komponentów które chcesz zainstalować i wybór lokalizacji którą wybierzesz dla instalacji TortoiseSVN. Domyślą lokalizacją jest C:\Program Files\TortoiseSVN\ . Wszytko potwierdź przyciskiem „Next”.
    TortoiseSVN instalacja wybór komponentów i lokalizacji
    TortoiseSVN instalacja wybór komponentów i lokalizacji
  9. Teraz potwierdź chęć instalacji klikając w przycisk „Install”.
    TortoiseSVN potwierdzenie chęci instalacji
    TortoiseSVN potwierdzenie chęci instalacji
  10. Tak naprawdę dopiero teraz następuje proces instalacji narzędzia TortoiseSVN.
    TortoiseSVN instalacja narzędzia
    TortoiseSVN instalacja narzędzia
  11. Na koniec otrzymamy informację o zakończeniu procesu instalacji. Wszystko potwierdzamy klikając w „Finish”.
    TortoiseSVN zakończenie procesu instalacji
    TortoiseSVN zakończenie procesu instalacji

    W celu poprawnego działania programu TortoiseSVN należe zrestartować komputer o co zostaniem poproszony kolejnym komunikatem.

    Po restarcie komputera mamy już poprawnie zainstalowane narzędzie do kontroli wersji np. kodu lub innych dokumentów tekstowych. W kolejnym odcinku pokażę Wam jak utworzyć proste repozytorium i zapisywać kolejne wersje naszych dokumentów.

Do zobaczenia 🙂

Zmiana ikony skrótu w systemie Windows.

Witam wszystkich w tym krótkim poradniku: jak zmienić ikonę skrótu w systemie Windows.

Przeznam się szczerze, że robiąc to bardzo sporadycznie zawsze zapominam jak się nazywa ten pliczek w katalogu Windows gdzie są "zaszyte" ikonki ale od początku i kork po kroku.

  1. Kliknij prawym przyciskiem myszy ikonę skrótu na którym chcesz zmienić ikonkę.
  2. Z menu podręcznego wybierz opcję: "Właściwości".
  3. Jeżeli automatycznie nie znajdujesz się na tej zakładce to przejdź na zakładkę: Skrót.
  4. Teraz kliknij w przycisk "Zmień ikonę…".
  5. W nowo otwartym okienku w polu "Szukaj ikon w pliku" wpis:%SystemRoot%\System32\SHELL32.dll albo  C:\Windows\System32\SHELL32.dll  i wciśnij ENTER.
  6. W części "Wybierz ikonę z poniższej listy" zobaczysz zestaw dostępnych ikon.
  7. Wybierasz właściwą dla Ciebie i potwierdzasz swój wybór klikając w przycisk OK.
  8. Powrócisz na poprzednie okienko właściwości. Teraz potwierdzasz swój wybór klikając po kolei:Zastosuj i później OK lub od razu przycisk OK.

GOTOWE 🙂

WordPress reset hasła administratora/użytkownika do panelu administratora.

Podpowiem Wam dzisiaj jak zresetować hasło administratora/użytkownika do panelu administratora w sytuacji gdy zapomnieliśmy do niego hasła.

Opis problemu: Zapomniane hasło dla administratora/użytkownika do panelu administratora w WordPress. (opis tworzony na podstawie wersji WordPress 4.1.1., ale pewnie sprawdzi się także w innych wersjach.)

Wymagania: dostęp do bazy danych WordPress’a

Rozwiązanie:

  1. Łączymy się z bazą WordPress.
  2. W bazie tej musimy zmienić wartości odpowiedniego pola w tabeli wp_users. Jeśli niczego nie zmienialiśmy prefix wp_ WordPress dodaje przy instalacji standardowo. Jeśli mamy inny prefix nazwa naszej tabeli może być inna np. prefix_users.
  3. Interesujące nas pole to user_pass gdzie przechowywane jest hasło użytkownika.
  4. Hasło użytkownika jest szyfrowane przy pomocy algorytmu MD5 i dlatego nasze zapytanie SQL którym będziemy modyfikowali hasło musi to uwzględniać.
  5. Nasze zapytanie będzie wyglądało następująco
    UPDATE [nazwa_tabeli] SET [które_pole_chcemy_zmodyfikować] = [tutaj_wpisujemy_nową_wartość_pola] WHERE [warunek_wykonania_zapytania]

     

     

    Przyjmijmy, że mamy użytkownika o nazwie Test, którego ID=1  (ID użytkownika w tabeli wp_users). Przy takich parametrach nasze zapytanie SQL przybierze następującą postać.

    UPDATE wp_users SET user_pass = md5('new password/nowe hasło') WHERE ID=1

    jeśli nie znamy ID naszego użytkownika w bazie ale znamy jego login (w naszym przypadku to będzie login Test) to nasze zapytanie przybierze postać.

    UPDATE wp_users SET user_pass = md5('new password/nowe hasło') WHERE user_login=’Test’

    Wyjaśnienie: Co tak naprawdę kazaliśmy zrobić. Kazaliśmy zmienić wartość pola user_pass w tabeli wp_users dla użytkownika Test (w pierwszym przypadku korzystając z jego identyfikatora, a w drugim z loginu) wykorzystująca algorytm MD5

    Pamiętaj! Jeśli nie wiesz co robisz nie klikaj :)

SQL Dobre praktyki przy pisaniu zapytań sql.

Czesto w sieci widzę pytania typu: jak dobrze pisać zapytania SQL? albo jakie są dobre praktyki pisania zapytań sql? itp. Postanowiłem podzielić się z Wami kilkoma poradami tego typu. Modyfikacja "swojego warsztatu" zalezy oczywiście od stopnia Twojego zaawandowania w pisaniu zapytań ale może komus się przydadzą. Podane poniżej porady stosuję osobiście i wynikaja one z mojego długoletniego doświadczenia w pracy z bazami danych.

1. Nie rzucaj sie od razu na głęboką wodę.

Jeśli masz do napisania jakieś skomplikowane zapytanie to dobrym sposobem jest rozbić je sobie na kilka kroków. Nie zaczynaj od razu pisać postaci finalnej tylko dojdź do tej postaci etapami. Chodzi o to, że jak zbudujesz dość duże zapytanie to ciężko jest później szukać ewentualnych błędów a tak jak podzielisz prace na mniejsze etapy to za każdym razem przy końcu danego etapu możesz sprawdzić poprawność swojego zapytania.

2. Podzapytania testuj osobno.

Często się zdarza, że w swoim zapytaniu potrzebujesz utworzyć podzapyanie. Ja podzapytania staram się budować obok głównego zapytania i dopiero jak sie upewnię, że działa ono poprawnie dołączam je do zapytania głównego. Czasami zdarza się, że Twoje zapytanie zwraca błędne wyniki a Ty ciągle analizujesz "główne zapytanie" a tak naprawdę to Twoje podzapytanie może zwracać błędne wyniki cząstkowe.

3. Poprawność, czytelność, optymalizacja

Bardzo często za szybko i za dużo chcesz zrobić w jednym kroku. Od razu przy budowaniu myślisz o optymalizacji i to nie jest generalnie złe. Ale często za bardzo skupiasz się na optymalizacji na samym początku i cierpi na tym poprawność i czytelność zapytania.

Moim zdaniem lepiej jest zacząć od poprawności i czytelności zapytania. Oczywiście kluczowa jest tutaj poprawność ale NIE bagatelizujcie czytelności zapytania. Czasami na szybko próbujesz coś stworzyć. Piszesz i piszesz i Twoje zapytanie staje się juz dosyć sporawe i nagle błąd. Bez zadbania od razu o czytelność zapytania trudno Ci będzie szybko zdiagnozować problem.

4. Zapoznaj się z danymi.

Jak nie poznasz dobrze zbioru danych do którego będziesz pisał zapytania to przygotuj się na drogę przez mękę. Poświęć czas na poznanie tabel, zależności pomiędzy nimi i typów danych w kolumnach itd. Ale także a może przede wszystkim zastanów się jakie wartości mogą przechowywać Twoje tabele/kolumny i głównie chodzi mi tutaj np o NULL-e. Bardzo często to właśnie wartości null mogą bardzo pomóc lub wygenerować jakiś nichciany błąd. Powiedzmy, że mamy kolumnę "DataKoniecZatrudnienia" i tam przy niektórych pracownikach są wartości NULL. Oznacza to, że jeśli jest NULL to pracownik jeszcze pracuje w firmie bo w tej klumnie nie ma konkretnej wartości i w przykładowym zapytaniu np.: pokaż mi wszystkich pracowników, którzy pracują aktualnie w firmie ta informacja może bardzo pomóc. Ale np. okazuje się, że są przypadki kiedy przy pracowniku nie ma ani daty zatrudnienia ani daty końca zatrudnienia i oznacza to, że pracownik jest zatrudniany np. na umowy zlecenia ale jest wykazywany na liście pracowników itp.

Sam widzisz, że kombinacji może być wiele i bez dobrego rozpoznania tematu można nieźle zamieszać zapytaniem.

5. Do poprawności analizuj mniejsze ilości danych lub pojedyncze małe lokalizacje/działy.

Jak napiszamy sobie zapytanie które "wypluwa" nam dziesiątki tysięcy, a może i więcej, rekordów to skąd będziesz wiedział, że zapytanie zwraca poprawne wyniki? Żeby zminimalizować ryzyko wykonuj swoje zapytania na mniejszych ilościach danych np. z jednego miesiąca lub np. z jednego działu firmy itp. Niestety mniejsza ilość danych nie gwarantuje oczywiście pełnego sukcesu bo ograniczamy także ilość możliwości wystąpienia takichś niestandardowych sytuacji. Chodzi tylko o to, że np. na mniejszej ilości danych jesteś w stanie szybciej przeanalizować poprawność wyników zapytania.

6. Robisz UPDATE? Pamiętaj o kryteriach WHERE.

Informatyk jest jak saper. Niektóre czynności robi tylko raz i z reguły to wystarczy żeby uczyć się na swoich błędach. Czasami jednak straty są już nie do naprawienia. Przykład z życia. Pewien znajomy informatyk napisał sobie UPDATE-a w celu zmiany ceny jednego produktu w sklepie internetowym. Jakieś było jego zdziwienie jak po chwili wszystkie produkty miały takią samą cenę. Jeśli modyfikujesz jeden lub tylko kilka rekordów to przyjmij zasadę UPDATE = WHERE czyli jeśli stosujesz UPDATE to musi wystąpić WHERE z warunkami opisującymi który rekord, lub grupę rekordów, zmodyfikować w innym przypadku "polecisz po całej tabeli" i będzie rozmowa dyscyplinująca z przełożonym (w najlepszym przypadku).

To na dzisiaj tyle. Myślę, że w miarę możliwości będę ten post rozbudowywał lub dorzucał jego kolejne części.

 

 

PostgreSQL łączenie stringów (konkatenacja) i NULL-e.

PostgreSQL łączenie stringów (konkatenacja) i NULL-e.

 

Do łączenia stringów w PostgreSQL możemy podejść na dwa sposoby.

Sposób 1. Użyj operatora konkatenacji ||

Zadanie 1

Połącz dwa stringi 'Text1' i 'Text2'.

Rozwiązanie

SELECT 'Text1' || 'Text2'

Wynik

Text1Tex2

Zadanie 2

Połącz text 'Text1' i NULL

Rozwiązanie

SELECT 'Text1' || NULL

Wynik

NULL

Zadanie 3

Połącz text 'Text1', wartość NULL i 'Text2'

Rozwiązanie

SELECT 'Text1' || NULL || 'Text2'

Wynik

NULL

 

Sposób 2. Użyj funkcji CONCAT()

Zadanie 1

Połącz dwa stringi 'Text1' i 'Text2'.

Rozwiązanie

SELECT CONCAT( 'Text1' , 'Text2')

Wynik

Text1Tex2

Zadanie 2

Połącz text 'Text1' i NULL

Rozwiązanie

SELECT CONCAT( 'Text1' , NULL)

Wynik

Text1

Zadanie 3

Połącz text 'Text1', wartość NULL i 'Text2'

Rozwiązanie

SELECT CONCAT( 'Text1' , NULL , 'Text2' )

Wynik

Text1Text2

 

Podsumowanie

Wszędzie tam gdzie spodziewasz się, że jedna z części, które chcesz połączyć w nowy string, może być NULL-em, używaj funkcji CONCAT().

ASUS N300 konfiguracja wzmacniacza sygnału/powtarzacz WLAN z wykorzystaniem WPS.

Konfiguracja wzmacniacza sygnału/powtarzacz WLAN ASUS N300 z wykorzystaniem WPS

  1. Umieść urządzenie w pobliżu routera i podłącz urządzenie do prądu i włacz urządzenie (ON). 
  2. Zresetu urządzenie przyciskiem reset. Przytrzymaj go 10 sekund. Przycisk jest ukryty tak żeby go przypadkowo nie nacisnąć dlatego musisz użyć wąskiego narzędzia np. śrubokręta precyzyjnego.
  3. Teraz przytrzymaj na urządzeniu ASUS przez 3 sek. przycisk WPS. Wynikiem tego ikona sieci na urządzeniu zacznie migać na pomarańczowo.
  4. Następnie zrób to samo ale z przyciskiem WPS na swoim routerze.
  5. Po chwili oba urządzenia powinny być połączone czego dowodem powinna być świecąca na zielono ikona sieci WLAN na urządzeniu ASUS.

#ASUS #N300 #WzmacniaczSygnału #adapter #repeater #WiFi #WLAN