Wpis z mikrobloga

◢ #unknownews

Dziś zestawienie jest wyjątkowo długie - był to tydzień obfity w ciekawe znaleziska :)


1) Machine Learning - podstawy dla wszystkich i dla 'opornych'
https://vas3k.com/blog/machine_learning/
INFO: bardzo fajnie napisany tekst pokazujący zawiły temat w przystępny sposób i na realnych przykładach

2) Pisz DŁUGIE funkcje, czyli słów kilka o rozdrabnianiu kodu źródłowego
http://redbeardlab.com/2019/02/07/write-long-function/
INFO: ciekawe przemyślenia odnośnie tego, aby nie dzielić na siłę kodu na coraz mniejsze fragmenty.

3) Krótkie funkcje mogą być szkodliwe - czyli szersza dysputa na temat wcześniejszego linka
https://medium.com/@copyconstruct/small-functions-considered-harmful-91035d316c29
INFO: tekst zawiera także porady, kiedy tworzenie mini-funkcji może pomóc

4) Czy rozpoznasz źle zaprojektowany design? Sprawdź swój zmysł estetyki i użyteczności
https://cantunsee.space
INFO: zaczyna się banalnie, ale im głębiej wchodzisz w pytania, tym jest trudniej. Nie z każdą decyzją można się zgodzić.

5) Wizualizacje struktur danych, wybierz konkretną implementacje / algorytm i w interaktywnej animacji zobacz jak wygląda dodawanie/usuwanie danych
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

6) Lista popularnych pytań rekrutacyjnych z zakresu algorytmiki i struktur danych
https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0
INFO: pytania są skategoryzowane, a autor daje linki do kompleksowych rozwiązań.

7) Używaj średników w kodzie JavaScript! - niekiedy zmienia to efekty działania skryptów
https://medium.freecodecamp.org/codebyte-why-are-explicit-semicolons-important-in-javascript-49550bea0b82
INFO: ostatnio króluje moda na pisanie kodu bez użycia średników. Do czego to może doprowadzić?

8) Lista zaskakujących rzeczy, które możesz wykonać w czystym HTML+CSS (nie potrzebujesz JS)
https://www.256kilobytes.com/content/show/4399/get-these-dependencies-off-my-lawn-5-tasks-you-didnt-know-could-be-done-with-pure-html-and-css

9) GitHistory - "git diff" to za mało? chcesz czegoś czytelniejszego, webowego i po prostu... ładnego?
https://githistory.xyz
INFO: kliknij na 'try now' aby zobaczyć o co w tym chodzi. Wygląda bardzo przyjemnie.

10) Przegląd ustawień serwera Nginx (WWW) - porady na temat konfiguracji i hardeningu
https://github.com/trimstray/nginx-quick-reference
INFO: warto rzucić okiem na infografikę na temat hardeningu ustawień

11) Automatycznie aktualizowana lista wszystkich filmów udostępnionych na wykopowym mikroblogu (możesz wykopać)
https://www.wykop.pl/link/4796587/wszystkie-filmy-udostepnione-na-mikroblogu-7-dni/
INFO: lista odświeża się co około 15 minut i zawiera dane z ostatnich 7 dni.

12) Jak działa GPS? co to jest AGPS? - przystępne wyjaśnienie technologii
https://medium.com/@aryamansharda/how-gps-actually-works-e6e0d126d2d5
INFO: jeśli często czytasz coś na Medium i wyskoczy Ci paywall, użyj trybu incognito ;)

13) Człowiek vs “zautomatyzowany system” - o tym, jak trudno walczyć z decyzjami automatów, zwłaszcza gdy nie znamy ich powodów
https://blog.usejournal.com/google-wrongly-terminated-our-new-business-via-our-google-play-developer-account-5f5b7b742542
INFO: gość wydał kilkadziesiąt tysięcy funtów na budowę aplikacji, która natychmiast dostała bana od Google - powód nieznany, możliwości odwołania brak

14) Darmowa, dostępna online książka na temat HTTP/3
https://http3-explained.haxx.se/en/

15) Blobmaker - stwórz własnego 'bloba' (kleksa) do użycia np. w logo (ostatnio to modne w startupach)
https://www.blobmaker.app
INFO: pobaw się dwoma suwakami nadole, kliknij na generowanie kształtu i pobierz wzór jako plik SVG

16) Szpitale i duże sklepy posiadają wystawione do netu panele sterowania chłodniami (domyślne hasła!)
https://www.safetydetective.com/blog/rdm-report/
INFO: wspomniane panele można namierzyć np. przez Shodana

17) Sheety - zamień dowolny (publiczny) arkusz kalkulacyjny Google w API i używaj go w swoim produkcie
https://sheety.co/

18) pgstatstatements - jedno z najużyteczniejszych rozszerzeń do PostgreSQL pozwalające łatwiej optymalizować zapytania
https://www.citusdata.com/blog/2019/02/08/the-most-useful-postgres-extension-pg-stat-statements/

19) Docker i jego bezpieczeństwo - czyli jak bezpiecznie pracować z kontenerami
https://made2591.github.io/posts/docker-security
INFO: lektura obowiązkowa dla ludzi pracujących z dockerem. Przystępne wyjaśnienie tematów związanych z security

20) Awesome Bug Bounty - lista programów płacących za szukanie bugów (security) w aplikacjach
https://github.com/djadmin/awesome-bug-bounty
INFO: zwróć uwagę na sekcję 'Write Ups & Authors' - podlinkowano tam teksty z opisami już znalezionych dziur. Pouczające.

21) AMA z twórcą podcastu z USA, który zarabia ~$23000/rok prowadząc swój show
https://www.reddit.com/r/podcasting/comments/aoy4gc/in_2018_i_made_23k_in_revenue_from_my_podcast_ama/
INFO: interesująca seria pytań i odpowiedzi dla ludzi zainteresowanych podcastingiem i zarabianiem na nim

22) PhantomBuster - korzystaj z API znanych serwisów zupełnie BEZ programowania
https://phantombuster.com/api-store
INFO: w ramach darmowego konta można zautomatyzować tylko jedno zadanie. Płatne plany są niestety drogie, ale pomysł jest fajny!

23) Jak ograniczyć listę komend jakie może wykonać użytkownik w terminalu Linuksa?
https://access.redhat.com/solutions/65822
INFO: ciekawe zastosowanie RBASHa (Restricted Bash) do hardenowania środowiska pracy userów

24) InstantPage - biblioteka do ładowania w tle podstron, które prawdopodobnie chcesz zobaczyć (przyspiesza działanie serwisu)
https://instant.page
INFO: jeśli Twój kursor najedzie na link na dłużej niż 65ms, to strona do której prowadzi link będzie wczytana do cache

25) "VIM oszczędza mi wiele godzin pracy przy pisaniu książek i tworzeniu kursów"
https://nickjanetakis.com/blog/vim-is-saving-me-hours-of-work-when-writing-books-and-courses
INFO: interesujące zastosowanie wspomnianego edytora

26) Bootstrap w wersji 5.x nie będzie miał już jQuery w zależnościach
https://github.com/twbs/bootstrap/pull/23586
INFO: można go używać 'z' jak i 'bez' tej biblioteki

27) "30 sekund wiedzy" - rozszerzenie do Chrome dostarczające Ci wiedzę z programowania za każdym razem gdy otwierasz nową zakładkę
https://30secondsofknowledge.petrovicstefan.rs/

28) Google Docs ma teraz API do automatyzacji zadań
https://techcrunch.com/2019/02/11/google-docs-gets-an-api-for-task-automation/

29) Vult - jeden natywny klient (Win/Mac/Linux) wspierający Slacka, Skype, Facebooka, Twittera, Signala i kilku innych
https://volt.ws
INFO: ciekawy jest rozmiar tej aplikacji... poniżej 200KB (kilo, nie mega!)

== LINKI TYLKO DLA PATRONÓW ==

30) Seria wideo - tworzymy grę 3D w C++ z użyciem DirectX 11 (Youtube)
http://uw7.org/un_5c641806b2994
INFO: playlista obecnie posiada 6 filmów, ale kurs cały czas jest w trakcie tworzenia

31) Siedem zasad tworzenia pięknych interfejsów użytkownika
http://uw7.org/un_5c64180f7a4cf (część 1)
http://uw7.org/un_5c641821f19f8 (część 2)
INFO: zaktualizowany i rozbudowany o najnowsze standardy tekst sprzed 5 lat

32) Lista 28 stron z darmowymi fotkami (tzw. Stocki), które możesz wykorzystać w swoich projektach
http://uw7.org/un_5c641829ee9bc

33) Jak skonfigurować swojego maca do pracy nad projektami webowymi?
http://uw7.org/un_5c64182fcec46
INFO: wybór edytora, instalacja GITa, konfiguracja NodeJS - rzuć także okiem na linki na końcu tekstu

34) Przeglądarka ofert serwerów VPS i dedykowanych - ponad 11200 ofert w bazie
http://uw7.org/un_5c6418390c378
INFO: można sortować listę po dowolnym parametrze (cena, dysk, lokalizacja, rodzaj wirtualizacji itp)

35) Interaktywny kurs języka C, uruchamiany w przeglądarce
http://uw7.org/un_5c641840639d9
INFO: aplikacja może długo się ładować (kilkanaście sekund). Gdy się załaduje, kliknij w kółko w prawym dolnym rogu ekranu

36) Twórz projekty online bez programowania (często nawet za darmo!) - linki do użytecznych zasobów
http://uw7.org/un_5c6418501edc6
INFO: narzędzia podzielone są na 5 kategorii: sklepy online, aplikacje, newslettery, landing page i typowe strony WWW

==
Chcesz aby Twój link pojawił się tutaj?
Po prostu mi go zgłoś. To zupełnie NIC nie kosztuje - dodaję jednak tylko to, co mi przypadnie do gustu.
https://bit.ly/unDodaj

************

[Obserwuj mnie na FB] - [Chcesz być wołany?] - [Zostań patronem] - [Wersja RSS] - [Subskrybuj przez email] - [Grupa na Telegramie]

Adekwatne tagi:
#javascript #design #security #youtube #startup #technologia #facebook #nodejs #google #jquery #docker #serwery #programowanie #jezykc #ciekawostki
imlmpe - ◢ #unknownews ◣

 Dziś zestawienie jest wyjątkowo długie - był to tydzień o...

źródło: comment_2jmhADJxnMAIOuWy0GBLoEMxIB1J5trp.jpg

Pobierz
  • 35
  • Odpowiedz
jak odniesiesz się do ankiety ktora robiles? przydala sie? jakie plany?


@PRZEGRAC: jeszcze nie przeanalizowałem wszystkich wyników (dużo tego jest! nie spodziewałem się tylu odpowiedzi). Niektóre odpowiedzi otwarte są dla mnie bardzo użyteczne. Wiem też, które kanały dystrybucji mogę bezkarnie zautomatyzować, bo niewielu czytelników z nich korzysta (np. z Telegrama czy Slacka). Jak przeanalizuję wszystko, to opublikuję podsumowanie wyników.
  • Odpowiedz
@Koryntiusz:
Szczególnie ten fragment:

For an expert developer writing smaller functions is quite simple, pick a big function, split it up where is makes some sort of sense, and instead of one big public function we have 1 small public function that calls 4 small private functions. And none of those small private functions are never reused anywhere.

This is not a success.

The entropy generated by this process far outweigh the (doubtful) benefits of having
  • Odpowiedz
Tego, że rozsądne rozbicie na mniejsze części znacznie zwiększa czytelność kodu (co zajmuje znacznie więcej czasu niż jego pisanie) autor nawet nie wspomniał.


@AutomatycznyCzarodziej: No właśnie. Kod ma być czytelny dla programistów nie dla komputera ;)
  • Odpowiedz
Tego, że rozsądne rozbicie na mniejsze części znacznie zwiększa czytelność kodu


@AutomatycznyCzarodziej: przecież autor wspomniał o tym że się z tym nie zgadza.

I IMO ma rację, częściowo. Słowo klucz z twojej tezy to oczywiście rozsądne. Więc jeżeli rozbijesz dużą funkcję na mniejsze i dzięki temu:
- zmniejszysz zasięg niektórych zmiennych (np. miałeś zmienną która była "widoczna" w 20 liniach kodu a teraz jest widoczna
  • Odpowiedz
@AutomatycznyCzarodziej: zgoda, ale w tym momencie dochodzimy już do sześciolinijkowej funkcji czyli dłuższej niż zalecają niektórzy puryści. Więc zaraz ktoś przyjdzie i powie żebyś ją podzielił na 2 bo ma if'a i else'a więc robi 2 rzeczy :) I myślę że takie podejście stara się krytykować autor chociaż niezbyt zgrabnie.

Natomiast ja tu nie mam jakiejś większej opinii - IMHO największym rakiem branży jest ślepe podążanie za dogmatami więc zarówno
  • Odpowiedz
- zwiększa się zasięg dotychczas lokalnej zmiennej widocznej dla 20 linii kodu do bycia polem klasy, teraz widocznym dla wszystkich metod w tej klasie! Nie tylko nie zmniejszyliśmy zasięgu ale go nawet zwiększyliśmy


@vasco_da_gama: jeżeli to jest stała ustawiana w momencie tworzenia instancji i jeśli język pozwala ci zapewnić, że ta wartość się nie zmienia, to to podejście upraszcza czytanie i zrozumienie kodu - masz w trakcie analizowania funkcji mniej
  • Odpowiedz
jeżeli to jest stała


@sasik520: nie bez powodu pisałem o zasięgu zmiennej :) Natomiast niestety na co dzień używam Javy i Pythona które nie mają za bardzo wsparcia dla stałych (Python chyba nie ma wcale, Java tylko dla typów prymitywnych) więc raczej się nad stałymi nie zastanawiam.

Bo katastrofą nie jest zwiększenie zasięgu (dlaczego to miałoby boleć?)


no ale nie bądźmy zerojedynkowi, nie jest katastrofą, ale zwiększa złożoność kodu. Generalnie
  • Odpowiedz