wtorek, 16 lutego 2021

Jak wykorzystać algorytmy Google, by pracowały dla nas?

 

Siema,

dużo się mówi w ostatnim czasie o profilowaniu nas, czy to przez Google, Facebook'a, Amazona czy właściwie każdego, kto ma na tyle duży budżet by móc sięgnąć po narzędzia BigData i sztuczną inteligencję. Pewnie nawet ty korzystasz z tych narzędzi wysyłając reklamy, czy używając auto dopowiadania... Oczywiście nie wszystkie algorytmy są równie zaawansowane, ale próg wejścia w ich używanie jest coraz niższy.

" Kto jest głupszy?
Ten co nie wie?
czy ten co wie i nic z tym nie robi? "

Jedna z moich ulubionych "złotych myśli" przypomina, że wiedze zdobywamy by z niej korzystać. Skoro już wiemy, że wiesz o tym pomyślmy co możemy z tym zrobić?

Algorytmy Google ( oraz usług powiązanych - jak YouTuBe ), obserwują nasze zachowania i starają się je wzmacniać by ułatwić sobie w przyszłości współpracę z nami. Jak dziwnie by to nie zabrzmiało posłużę się przykładem.

Dostajesz maila służbowego od Łukasza w którym wspomina o wyjeździe na wakacje. Nic nie znacząca wzmianka aktywuje algorytm - "myśl o wakacjach" i od tego momentu ilość reklam wyjazdów wakacyjnych wzrasta o 90%. Też bym pomyślał reklamy są wszędzie i co z tego? Tylko że korzystasz z wyszukiwarki, oglądasz filmy na YouTube/ Netflix'ie i w jakiś magiczny sposób "proponowane" Ci się zmieniają. Nie bezczelnie "Błękitna laguna", ale filmy które oglądałeś rok wcześniej przed wakacjami, albo gorzej filmy, które znasz i dawno nie oglądałeś. Algorytm uznał, że statystycznie Twoja grupa ma większą szanse wyjechać po obejrzeniu tego filmu.

No ale przecież jesteśmy świadomi? Nie robimy tego co nam szkodzi i podejmujemy decyzje po analizie faktów, nie ograniczamy się też by mieć szerokie i obiektywne spojrzenie, prawda?

" Wiedzieć nie znaczy rozumieć "

Wiesz, że zgodnie z RODO (a nawet dłużej patrz.GIODO) masz wgląd do danych, które firma o Tobie posiada? Uśmiecham się? Tak, firmy takie jak Google udostępniają historie wyszukań, dane czasu spędzonego na stronach i wiele innych danych w formie strony www.

Kilka lat temu Google informowało z zmianie w regulaminie, że dane ze wszystkich usług Google będą trafiać w gruncie rzeczy do jednej bazy danych.

Ostatni przy okazji  Google Analytics 4, okazało się że dane są zbierane też przez eventy, a nie tylko ciasteczka.

Co możemy z tym zrobić?

  1. Nie używaj trybu incognito - lepiej mieć dostęp do danych o nas niż mieć przypięte je z boku i niemieć do nich dostępu - Serwery wiedzą jaki masz IP, model przeglądarki, rodzaj ekranu - teoretycznie to dane anonimowe, ale BigData z nimi może pracować i ich tak nie traktuje.
  2. Załóż sobie kilka kont i przełączaj się między nimi - programy takie jak KeePassa, o którym pisał niebezpiecznik tutaj: https://niebezpiecznik.pl/post/alior-sync-internauci-skarza-sie-na-limit-znakow-w-hasle/ pozwalają nawet nie pamiętać hasła
  3. Dbaj o higienę Twoich danych - sprzątaj historie wyszukań:

https://myactivity.google.com/activitycontrols/webandapp

https://myactivity.google.com/activitycontrols/youtube?hl=pl&utm_medium=web

Co nam to da? Będzie nam się łatwiej skupić na pracy, bo algorytm uzna że tylko tym się zajmujesz w internecie i to będzie wspierał, a konta nie związane z pracą będą wspierały tematy prywatne nie mieszając ich z zawodowymi.

Jeśli już poruszyłem temat pracy z Wyszukiwarką to tylko napomknę, że temat można drążyć w nie skończoność, że wspomnę tylko o filtrach zaawansowanych i operatorach, ale może o tym następnym razem.

piątek, 12 lutego 2021

Symfony - przygotowanie środowiska

 Myślałem ze Symfony jest jak wiele innych framework'ów:

- ściągasz composerem

- dodajesz roting / controler 

- działa


Pierwszy szok:

ściągam composerem create-app odpalam i error

trzeba pobrać plik setup.exe (symfony), nie pamiętam co było potem szło szybko choć kilka rzeczy trzeba było dociągnąć.


Szok drugi:

- otwieram projekt, a tam brak pliku index !

dobra stronę uruchomiłem z Terminala:


$ php -S 127.0.0.1:8000 -t public

ale jak ją wgrać na serwer ftp, czy testować na starym dobrym xampp?


Analiza w między czasie:

xDebug - off

APCu - off

OPcache- off


odpalam terminal i


$ pear install PEAR

https://stackoverflow.com podpowiedział co dalej. W końcu udało się i jest zielono...


http://127.0.0.1:8000/

Patrzymy dalej jak ogarnąć ten kombajn


Streszczenie na przyszłość:

pliki do katalogu /php/ext/

do php.ini dodać :


zend_extension=xdebug

[apcu]
extension=php_apcu.dll
apc.enabled=1
apc.shm_size=32M
apc.ttl=7200
apc.enable_cli=1
apc.serializer=php

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1



środa, 13 stycznia 2021

WordPress WooCommerce - Wydruk do zamówienia

 Były święta więc masa pracy i nie było czasu pomyśleć, za chwilę Dzień Babci i Dziadka, a w Piernikarni wysyłki. Nasz sklep internetowy działa i można kupić online. Jednak zamówienia są indywidualne, a na produkcji trzeba zachować odpowiednie warunki sanitarne i niema mowy o ekranach dotykowych i sprawdzaniu co chwilę "co to miało być?".

Więc trzeba wydrukować zamówienia i tu mamy nasz problem biznesowy:

 - Chcemy wydrukować ze strony listę zamówień,

a) z opisem klienta bo są tam indywidualne wymagania

b) z listą produktów

c) każdy produkt ma dodatkowe atrybuty (chłopiec/ dziewczynka, pudełko, dedykacja)

d) adres wysyłki i telefon kontaktowy - bywa inny niż adres klienta

e) niech będzie czytelne, ale zajmuje mało miejsca by nie marnować papieru


Uwagi dodatkowe:

- nie można modyfikować kodu pluginów - bo przy aktualizacji zostaną usunięte zmiany.

 

Rozważania koncepcyjne

Koncepcja 1)

Załatwimy to CSS'em. Czyli dodać kod, który w podglądzie zamówień ukryje wszystko oprócz danych które chcemy wydrukować. Oczywiście tylko w wydruku, można to przetestować przy podglądzie wydruku.

@media print {

#adminmenumain, #adminmenuwrap,
#wp__notice-list,
.woocommerce-layout,
.wrap>h1,
.wrap>a,
.wrap>.updated,
.wrap>.notice,
.wpbody-content .wrap>div,
#postbox-container-1
{
display: none;
}

}

 wnioski:

Niestety na tej stronie niema wszystkich danych.


Szukamy dalej...


Koncepcja 2)

Sprawdźmy jak wygląda kod, który tworzy te listy w Wordpress'ie i może to się jakoś wykorzysta. Interesujące nas dane są na dwuch stronach

strona A - Lista zamówień: 

WooCommerce > Zamówienia ( .../edit.php?post_type=shop_order )

Mamy tu teoretycznie pętle, która pobiera wszystkie interesujące nas wpisy i wyświetla je.

strona B - Szczegóły zamówienia

 ( post.php?post=${id}&action=edit )

Mamy tu  dane zamówienia, takie jak: który produkt, atrybuty specjalne, informacje od klienta (imię, dydykacja)

Wniosek wstępny

Tu powinniśmy szukać, pierwsza strona daje nam listę wszystkich produktów, druga informacje, które będą potrzebne.

Zbieranie danych:

Strona A, jest generowana przez class'e :


class WC_Admin_List_Table_Orders extends WC_Admin_List_Table

Sama lista jest w formie <table> więc ciężko będzie nią manipulować. Sam kod css jest bardzo responsywny i w wersji na komórkę wygląda trochę inaczej. Tym zajmiemy się później.

Każda metoda tworzy inną komórkę i są one uruchamiane w pętli otrzymując dabe:

/**
* Define which columns to show on this screen.
*
* @param array $columns Existing columns.
* @return array
*/

public function define_columns( $columns ) {

 tu jest lista wszystkich komórek (kolumn) w wierszu, pomyślimy może tu się wepniemy.


Strona B, jest bardziej złożona. Kilka class tworzy jej części. Interesują mnie tylko pola z danymi i nie potrzebuje ich edytować:

 DIV  - szczegóły zamówienia



class WC_Meta_Box_Order_Data {


metoda 



public static function output( $post ) {


tworzy html tego div'a

DIV - Produkty


class WC_Meta_Box_Order_Items {

 ale metoda


public static function output( $post ) {

 która ustaliłem, że tworzy listę produktów ładuje kolejny plik...


include __DIR__ . '/views/html-order-items.php';

 i plik ten robi już bardzo dużo - wyświetla, pozwala edytować, ma masę if'ów. 


wnioski:

Dużo do przemyślenia i uwaga nie modyfikujemy orginalnego kodu tylko piszemy pligin, który będzie wpinał się w hooki WooCommerce, albo tworzył własną listę.  Pomyślimy nad nową koncepcją.


 Koncepcja 3)

Wnioski z poprzednich koncepcji

 Przeglądając kod strony A (lista zamówień) trafiłem na metodę:



protected function render_order_number_column() {
/* [...] */
echo '<a href="#" class="order-preview" data-order-id="' . absint( $this->object->get_id() ) . '" title="' . esc_attr( __( 'Preview', 'woocommerce' ) ) . '">' . esc_html( __( 'Preview', 'woocommerce' ) ) . '</a>';
echo '<a href="' . esc_url( admin_url( 'post.php?post=' . absint( $this->object->get_id() ) ) . '&action=edit' ) . '" class="order-view"><strong>#' . esc_attr( $this->object->get_order_number() ) . ' ' . esc_html( $buyer ) . '</strong></a>';

Hmm tworzy dwa guziki, które pobierają ajax'em dane, które mnie interesują. Dodatkowo w formie graficznej, która jest niemal idealna.

 

Możemy stworzyć nową stronę, która zassa te dane i ustawi je CSS'em (grid, albo flex) i prawdopodobnie już po robocie. Powinno być bezpieczne bo WC odpowiada za udostępniony kod.

Uwaga sprawdzić bezpieczeństwo, niechcemy by każdy mógł zobaczyć te dane, awięc mały audyt WC trzeba zrobić, czy weryfikuje uprawnienia przed udostępnieniem tych konkretnych danych.

 

Zbieranie danych

event click pobiera ajaxem z adresu: 

../wp-admin/admin-ajax.php?order_id=**ID**&action=woocommerce_get_order_details&security=**KOD**
 
dane w postaci JSON'a i wstawia je do template js po stronie frontend'u. 

Backend:

 Template js jest tworzony przez tą samą Class'e tutaj...



class WC_Admin_List_Table_Orders extends WC_Admin_List_Table {


public function order_preview_template() {

?>
<script type="text/template" id="tmpl-wc-modal-view-order">

To dość oczywiste, ale popup z template wstawiany jest do DIV#wc-backbone-modal-dialog, który jest niszczony po zamknięciu popup'a.

Uwagi

Widzę też, że zapytanie ma dołączony **KOD** weryfikujący uprawnienia dla zapytania ajax po stronie backendu.

Wnioski

Algorytm mógł by działać tak.

1) Włączamy filtr, który zostawi tylko te, które chcemy wydrukować (albo nie włączymy)

2) Uruchomimy funkcję w pętli jQuery - która przejdzie przez całą tabelę i zainicjuje pobieranie danych

3) dane zostaną wstawione do nowego Box'a 

4) Wystylizowanie css'em (flexbox) i ukrycie w podglądzie wydruku wszystkiego czego nie chcemy drukować (czyli właściwie wszystkiego oprucz naszego box'a).

5) opcjonalnie można usunąć jeszcze boxy z pobranych

6? może drag&drob by zmienić kolejność - opcjonalnie jako gadźet

7) klikamy drukuj i mamy zamieżony efekt ;-)

Zieranie danych - Frontend

Już myślami byłem przy pisaniu kodu, ale jeszcze ważna kwestia jak działa to na frontendzie.

Nasz przyjaciel w IDE to shift+ctrl+f (dzukaj w całym projekcie) znów się sposał...

plik wc_orders.js (wc_orders.min.js)

Dodanie event click... który uruchamia funkcje WCOrdersTable.prototype.onPreview

    $( document )
/** line: 14 **/
.on( 'click', '.order-preview:not(.disabled)', this.onPreview );
};

Szybko też namierzam kod weryfikujący w lini 63 ?


$.ajax({
url: wc_orders_params.ajax_url,
data: {
order_id: $order_id,
action : 'woocommerce_get_order_details',
security: wc_orders_params.preview_nonce /** line: 66 *//
},
type: 'GET',
success: function( response ) {
    $( '.order-preview' ).removeClass( 'disabled' );

    if ( response.success ) {
    $previewButton.data( 'order-data', response.data );

    $( this ).WCBackboneModal({
    template: 'wc-modal-view-order',
    variable : response.data
    });
}
}

WCBackboneModal jest w pliku backbone-modal.js i odpowiada za stworzenie popup'a div#wc-backbone-modal-dialog.

Sprawdziłem jeszcze listę hooks do WC z tej strony : https://premmerce.com/woocommerce-hooks-guide/#reading-progress-title-8

tu się będziemy wpinać:

<?php do_action( 'woocommerce_order_details_after_order_table', $order ); ?>



 

wtorek, 29 grudnia 2020

regex data time

 Potrzebowałem dziś kodu, który pozwoli mi wyciągnąć datę wyrażeniem regularnym, to dość proste więc uznałem że sam napiszę...


Zapiszę dla potomności


var G_time = function(t) {
var regex = /(?<day>\d+)\.(?<month>\d+)\.(?<year>\d+).(?<hour>\d+)\:(?<minute>\d+)\:(?<second>\d+)/i;
var found = t.match(regex);


var G_time = found.groups;
var time = new Date(
2000 + Math.floor( G_time.year ),
Math.floor( G_time.month ) -1,
Math.floor( G_time.day ),
Math.floor( G_time.hour ),
Math.floor( G_time.minute ),
Math.floor( G_time.second ),
).getTime();
var teraz = new Date().getTime();
var zmienna = teraz-time;
if(zmienna > 0 )
return (zmienna/1000);

return '';
};

G_time('29.12.20 14:26:34:369');
'

Korzystałem z podglądu online, na stronie 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match

do debugowania, bo jednak miałem problemy z pierwszymi liczbami najpierw dzień , a potem godzina nie była znajdywana. Błąd był w użyciu . i *

niedziela, 27 grudnia 2020

manifest.json note

 Notatnik w przeglądarce? czemu nie.


Quicknote

Źródło: /webextensions-examples/quicknote/ 

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Examples#quicknote

manifest.json

 Po kilku godzinach testowania rozwiązań coś miłego dla oka, zmiana wyglądu theme przeglądarki na stacjonarnym light/ dark/ star/ ranbow


Theme Switcher

Źrudło: /webextensions-examples/theme-switcher/

 

Wygląda też na to że znalazłem czego szukałem pop up przekazuje instrukcje do powłoki przeglądarki

 

mainifest.json Opcje wtyczki

 manifest.json

 

źrudło:  /webextensions-examples/google-userinfo/

Google User Info


- ikona 

- kliknięcie ikony otwiera nowe okno (bez menu, tylko pasek adresu)

- w ustawieniach wtyczki dostępna zakładka "Opcja"

manifest.json pop-up pwa?

 manifest.json

 

Źrudło: /webextensions-examples/forget-it/

forget-it

 

daje ...

 

 

manifest.json - Contextual Identities

 manifest.json

 

Źrudło: webextensions-examples/contextual-identities/

Contextual Identities

 

Naje możliwość tworzenia kart tematycznych i zamykanie ich 1 kliknięciem.

Fajne jest to że mają ikony i kolory :-)

 

manifest.json search

 manifest.json

 

"chrome_settings_overrides": {
    "search_provider": {
      "name": "Discogs",
      "search_url": "https://www.discogs.com/search/?q={searchTerms}",
      "keyword": "disc",
      "favicon_url": "https://www.discogs.com/favicon.ico",
      "is_default": false,
      "encoding": "UTF-8"
    }
  }
 
Dodaje do wyszukiwarki firefox do wyszukiwania jeszcze jedną wyszukiwarkę Discogs.
 Może w przyszłości zbadam ten temat. Fajnie było by by moja strona dawała możliwość skorzystania z wyszukiwania z poziomu API 

 Źrudło: webextensions-examples/discogs-search/ 

Discogs search engine

 

warto też spojrzeć na: ( otwiera nowe okno z ikony )

Find across tabs

webextensions-examples/find-across-tabs/ 

wtorek, 5 maja 2020

Ścieżka która gdzieś prowadzi, albo notatki ze zbierania informacji jak pisać komentarz do commit'ów



Pracuje teraz dużo z PHPUNIT i projektem do którego podchodzę od kilku lat.
Mam trochę problemów z tym jak to wygląda i co zrobić...
W czasie opieki nad dziećmi włączyłem sobie YouTube by poukładać sobie to w głowie...

na początek...
Programowanie obiektowe w języku PHP5 / Moduł 7. Testowanie jednostkowe / Cz. 1


Potem pomyślałem, że przypomnę sobie SOLID. Było na tej samej playlist...
Programowanie obiektowe w języku PHP5 / Moduł 5. SOLID / Cz. 1

OK spoko. Polecam, ale może inaczej i ...

 SOLID - co się za nim kryje?

potem trochę dla rozrywki...

 5 grzechów początkującego programisty

hmm coś zaświtało...

3 zasady GIT Commitów - DevGuide

pomyślałem:
- Dobry temat zawsze się starałem by moje commity były użyteczne, ale jakoś nie szukałem informacji na ten temat.

 #git Komentarze dobre praktyki - Kurs gita po polsku #6/12




potem propozycja od algorytmu Youtube...


  Jak pisać lepiej - 17 wskazówek, które przydadzą się [...]

Wziąłem zeszyt, zrobiłem notatki, po googlowałem:

https://dev.to/gaelthomas/a-beginner-s-guide-to-git-how-to-write-a-good-commit-message-2j49

http://udacity.github.io/git-styleguide/

https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-coding-rules

Głowa pełna, są notatki i myślę, że mogę to z niej wyjąć i poukładać.
Zapowiada się coś wartościowego, a na pewno coś co mam nadzieję zacznę używać.


---------------------
Jeśli chcesz coś dodać, napisz komentarz.

Pozdrawiam

wtorek, 28 kwietnia 2020

Co tam słychać? czili podcasty, które słucham

Listę zainteresować można opisać podcastami, które słuchaliśmy w ostatnim czasie.
Tylko czy jeśli czymś się interesowaliśmy, a nie słuchamy na ten temat podcastów,
to czy nadal jest to dla nas ważne?

hmm smutna konfuzja, że chyba już nie jest ważne...

U mnie to RPG i gry planszowe, ale po prostu nie interesuje mnie opinia innych i nowości, czy śledzenie jak ktoś opowiada o tym temacie, ale fakt ostatnio już nie gram.

W drugą stronę czy jak coś słucham to czy coś z tym robię? Pewnie nie...

Więc lista czego słucham:

Mała Wielka Firma
Nieplac zabaw
Merytorycznie o eCommerce
Menadżer Plus
Książki Które Uczą
Raport o stanie świata Dariusza Rosiaka
Startup My Way - Bogusz Pękalski
Finanse Bardzo Osobiste
Podatki na prawo (Deloitte)
Kwadrans na angielski
Podcast Lepiej Teraz
Ekomersowa Kawa
Porozmawiajmy o IT
Z pasją o mocnych stronach
Michał Bąk | marketing i biznes
Strefa Psyche Uniwersytetu SWPS
Kacper Szurek (Szurko gadanie o bezpieczeństwie)
Podcast Na Zdrowie
Firma ON-LINE | Agata Ch...
Ojcowska Strona Mocy
Sto Monet

:epizody z ...
Projektant Życia
Questalk
Ayming Polska

poniedziałek, 22 lipca 2019

Jak nagrywać filmy/podcasty, robić zdjęcia, pisać bloga, programować? Lekcja 1



Jak nagrywać filmy/podcasty, robić zdjęcia, pisać bloga, programować?
Lekcja 1 

 

Złota myśl do odnotowania - Co jest najważniejsze w nauce.

Zajmujesz się czytaniem o tym co chcesz robić? Przeczytaj!


[...] To jest jak z malowaniem. Najpierw uczysz się, że można pobrudzić kartkę, potem bierzesz: kredki, flamastry, farby. Uczysz się malować, stopniowo coraz bardziej skomplikowane obrazki. Mogą to być ludzie (rodzina), pojazdy (samochody, czołgi), krajobraz (plac zabaw, albo działka), przedmioty (broń) to już powoli są specjalizacje. Dobry malarz może narysować świetny obraz kiepskim pędzlem, ale tak wiele osób myśli, że świetnym pędzlem maluje się lepiej.

W pisaniu, nagrywaniu... ludzie chcą być od razu co najmniej nieźli. Czytają, wybierają programy, uczą się styli i technik, ale nie piszą i nie nagrywają. To jak uczyć się malować chodząc do galerii sztuki i czytając książki...

Żeby nauczyć się np.programować - trzeba to robić, po prostu ROBIĆ, każdego dnia po trochu, ale w miarę możliwości konsekwentnie.

Koniec.

Myśl pochodzi od Marka Jankowskiego z Mała Wielka Firma.

Do napisania o tym zainspirowała mnie moja żona, która od roku zbierała się by zacząć nagrywać i udostępniać bajki. Link do Bajki

Dzięki za uwagę.
Pozdrawiam

poniedziałek, 17 czerwca 2019

moja lista 10 rzeczy, które warto wiedzieć wcześniej.

Modne ostatnio robi się pisanie listy TOP. Dostałem od znajomego inspirującą listę 10 rzeczy... .

Uznałem, że też się podzielę moją listą. Oto ona:

10 rzeczy które warto wiedzieć wcześniej:


1) Życie to nie wyścig, ale podróż.

 -Jest w życiu wiele miejsc, kiedy można zjechać z trasy w inną drogę niż wszyscy.
szkoła(przedszkole->podstawówka->liceum->studia) tak zaczyna się "wyścig szczurów".
- Ważne by być kierowcą, nie pasażerem.

2) Talent to coś co robimy z przyjemnością, nawet jak jest trudne daje nam radość.

- Można lubić gotować, rysować i robić to bez celu.
Ktoś powie, że masz talent, ale myli się jak myśli, że to jest dla ciebie łatwe, ty to kochasz więc nie czujesz zmęczenia pokonując wyzwania, ale radość - bawisz się tym.
Mówiąc komuś, że ma talent pamiętaj, że to słowo ma dwa skrajnie różne znaczenia.
Jedno daje wolność (to jest to o którym piszę), drugie depresje (kiedy myślisz, że nie masz talentu, bo w niczym nie jesteś mistrzem już na starcie).

3) Każdy jest w czymś dobry, nawet jak nie potrafisz tego dostrzec.

- Patrząc na innych pamiętaj, że nie widać tego co w środku. Silne strony innych mogą też nie przedstawiać dla Ciebie wartości, do puki nie odczujesz ich braku, nie rozumiejąc czemu mimo, że znasz teorię na wylot po prostu Ci to nie wychodzi. np. umysły ścisłe , humanistów.

4) Komputery są głupie. 

- Napisanie dobrego kodu tego nie zmieni, mimo że dobry program będzie dobrze robił to co mu kazałeś.

5) Każdy może kodować.

- To tylko wydawanie poleceń głupiej maszynie.
- Kobiety mogą być dobre w kodowaniu.
- Ciągle tworzymy rozwiązania, które można używać nie rozumiejąc jak one to robią.

6) Pieniądze to tylko narzędzie, nie musisz umieć go używać.

Wato mieć kogoś kto ma talent (lubi to) w zarabianiu pieniędzy i korzystać z tego atutu.
Wiele osób nie umie używać młotka i krzywo wbija gwoźdź, albo wkrętkę, tak samo jest z pieniędzmi trzeba nauczyć się używać tego narzędzia, nikt się z tym nie rodzi.

----- ODDAJ MYSZKĘ TATO !! ---------- bueee ja chce komputer ------ Przerwa sorry

--- OK wracam :-)

7) Szkoła nie uczy, tylko ułatwia naukę.

- Kazik śpiewał - siłą możesz mi zabrać wiele, ale siłą niczego mi nie możesz dać - bronimy się zapominając.
- Nie rozumieją tego nauczyciele,  to czemu uczniowie mają to wiedzieć? Nauczanie na siłę jest stratą czasu, a pierwsze co się robi to zabija skojarzenie, że nauka może dawać radość jak zabawa.

8) Lepiej pamiętasz potrzebne informacje.

- Samemu znajdziesz pytania i odpowiedzi, ale to trudne - szkoła/studia to ułatwiają.
- Iść na studia by mieć dobrą pracę, albo bo idą wszyscy - to może być strata czasu.
- Lepiej iść do pracy, a później na studia - inaczej się widzi wiedzę którą tam podają.

9) Ludzie którzy się nie znają, zadają często najlepsze pytania. 

-Trzeba się nauczyć to słyszeć, bo często też nie umieją zadać tych pytań tak byśmy je zrozumieli.

10) Przyswojenie wiedza wymaga czasu i przejścia kilka razy etapu eureka (aha rozumiem).

- Czasu na jej przyswojenie, zrozumienie i skompresowanie ( by ogarnąć ją w szerszej skali).
- Trzeba spać! i naukę rozłożyć w czasie.
- Powtarzanie informacji jest mniej skuteczne, od zrozumienia i używania.
- Możemy w głowie utrzymać 3-7 informacji. Gubimy wątek i zapominamy jeśli chcemy naraz ogarnąć za dużo.


Edytowane 28.czerwca - poprawiłem logikę wypowiedzi.

niedziela, 16 czerwca 2019

Grunt czy Gulp?

Raport z kolejnego dnia zabawy i przetwarzania nowy informacji :-)

Słowo wstępu

Od kilku lat używałem grunta

- Podoba mi się składnia
- Rozumiem jak działa
- Wiem czego mogę po nim oczekiwać.

Ostatnio pracując z generatorem yo,

poraziło mnie, że wszystkie projekty używają Glup.
- Składnia wygląda haotycznie
- Nie rozumiem skąd bierze dane ( tworzyłem jakieś zmienne środowiskowe wy uruchomić test)
- Dane są trochę wymieszane i muszę się wczytać by zrozumieć co gdzie jak.

Przykłady - porównanie...


Grunt: gruntfile.js


Wszystko chyba jasne
- config
- load Tasks
- register -> tworzenie tasków

jak patrze na Glup:gulpfile.js
 

To nie potrafię napisać takiego opisu w punktach
- Load zależności
- funkcje to zadania
- tworzenie tasków

hmmm sam nie wiem.

Sprawdziłem dane na https://www.npmjs.com/package

Jakie wnioski z repozytorium


Gulp:


1) ilość pobrań - Gulp
2) Wersja (ilość poprawek? ) - Gulp
3) ilość zgłoszonych problemów (issues) - Grunt
4) pull request (branches - odnogi projektu ) - Grunt ( czy to dobrze czy źle - wiele koncepcji twórców)
5) ostatnia poprawka - Gulp

+6) ilość członków zespołu według github
grunt 68, gulp 216

7) Gulp ma wiele zależności (node_modules), czyli jest podatny na problemy w modułach.

- Korzystając z wielu modułów, z których one same też korzystają z innych tworzy się łańcuch zależności gdzie zniknięcie jakiegoś małego nieistotnego modułu kładzie cały projekt. Przykładem było jak mały moduł który usuwał białe znaki znikł z repozytorium i klops, bo nikt nie wie co z czego wynika.

Wiosek

Grunt do nauki programowania i dla komercyjnych projektów. Ma niski poziom wejścia, po prostu go używamy.
Gulp dla wszystkiego pomiędzy. :-) Wymaga wiedzy i pozwala dużo dłubać w opcjach, posiada bardzo dużo opcji które pomagają tworzyć projekty dając dużego kopa na rozpęd.

Pozdrawiam.