Jakiś czas temu stanąłem przed koniecznością napisania w Prologu testów jednostkowych. I to nie tylko w popularnym SWI-Prologu, ale również w nieco bardziej oldschoolowej implementacji GNU Prolog. W najnowszym wpisie na blogu postanowiłem zebrać zdobyte przeze mnie informacje:

LINK: Testy jednostkowe w Prologu

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #naukaprogramowania #prolog #programowanielogiczne #programowaniedeklaratywne
informatyk - Jakiś czas temu stanąłem przed koniecznością napisania w Prologu testów ...

źródło: comment_1619516924XWuyJrZiOfjh5N9iKXwJj8.jpg

Pobierz
@informatyk: spodziewałem się, że w Prologu będzie więcej podejścia z testowaniem właściwości (jak QuikCheck) zamiast "klasycznych" jednostkowych. Trochę szkoda, bo wydaje mi się, że Prolog ładnie mógłby opisywać takie testy.
  • Odpowiedz
W ostatnim artykule z serii o Haskellu pisałem na temat funktorów. Następny wpis będzie, jak niektórzy mogą się domyślić, poświęcony funktorom aplikatywnym.

Wcześniej jednak zachęcam do zapoznania się z krótkim artykułem dotyczącym monoidów, ponieważ jest to pojęcie, które pojawi się przy rozkminianiu aplikatyw. ;D

LINK: Półgrupy i monoidy w Haskellu

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #haskell #naukaprogramowania #programowaniefunkcyjne
  • Odpowiedz
Wiecie jak czytać wielokrotnie zagnieżdżone list comprehensions w Pythonie? Na przykład:

data = [j for i in accounts for v in i.values() for j in v]
Jeśli nie, to w najnowszym wpisie na blogu pokazuję jeden prosty trick, jak ogarnąć taki zapis. ( ͡° ͜ʖ ͡°)

LINK: Jak czytać zagnieżdżone list comprehensions

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #python #naukaprogramowania
informatyk - Wiecie jak czytać wielokrotnie zagnieżdżone list comprehensions w Python...

źródło: comment_1617026010Ngbb9RnuXJDaDpFTzYmpEq.jpg

Pobierz
Dziś krótki wpis o dość niszowym zagadnieniu, jakim jest modularyzacja w języku Prolog. Z racji, że jest to dość wiekowa technologia, to nawet nie wszystkie implementacje posiadają jakiegokolwiek sensowne wsparcie dla modułów. Zagadnienie to omawiam na przykładzie 3 różnych implementacji.

LINK: Modularyzacja w Prologu

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #prolog #programowanielogiczne #programowaniedeklaratywne #naukaprogramowania
@informatyk: lubię Prologa, uważam, że jest niedoceniany, oraz piszę używając potomka Prologa - Erlangu. Nigdy nic większego w nim nie napisałem, ale obecnie w swoim side-projekcie planuję użyć Prologa do definicji ACL, bo IMHO to jest idealne zastosowanie dla niego.
  • Odpowiedz
Dosłownie przed chwilą ukazała się kolejna wersja alpha Pythona 3.10, wprowadzając do tego języka bardzo ciekawą funkcjonalność - pattern matching.

Jeśli chcecie poczytać wprowadzenie do tego tematu, to tak się składa, że akurat takie przygotowałem ( ͡° ͜ʖ ͡°) ->
LINK: Pattern matching w Pythonie

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #naukaprogramowania #python #programista15k #programowaniefunkcyjne
informatyk - Dosłownie przed chwilą ukazała się kolejna wersja alpha Pythona 3.10, wp...

źródło: comment_1614630249AfDCT1hBY1yZWnDsrGyM6z.jpg

Pobierz
Takie mutowalne argumenty domyślne chociażby też nie należą do najbardziej intuicyjnych rozwiązań, a jednak z nimi żyjemy. xD


@informatyk: Dawno je powinny wywalić. Nikt ogarnięty nigdy w życiu ich świadomie nie użyje do czegokolwiek. Tak samo będzie na przkład z name capturing w pattern matching - będzie więcej problemów niż pożytku.
  • Odpowiedz
@NewEpisode: @ProfesorBigos: @informatyk:

Jak dla mnie, ten język powinien się powstrzymać od tego typu rozwoju. Po co doklejać do niego rzeczy z innych języków? Coraz więcej rzeczy, z których nikt nie korzysta, a które z czasem przysporzą tylko problemów.

Python miał być prosty i czytelny, dla mnie ostatnie zmiany związane z użyciem znaków logicznych do pracy na słownikach czy := to żadne kroki naprzód, a wyłącznie próba ugłaskania wszystkich
  • Odpowiedz
Po kilku miesiącach przerwy powracam z nową serią artykułów - tym razem na tapet weźmiemy przede wszystkim dwa języki - Haskell oraz Prolog. Oba deklaratywne, oba dosyć niszowe i - co najważniejsze - oba są niezwykle ciekawe!

Nie będzie to tutorial od podstaw, bowiem w tym zakresie nie brakuje dobrych materiałów (jak coś, to mogę zarzucić odpowiednimi linkami ( ͡° ͜ʖ ͡°)). Można za to spodziewać się wpisów,
informatyk - Po kilku miesiącach przerwy powracam z nową serią artykułów - tym razem ...

źródło: comment_1612874011J0IZZ5hizuMoVk8rHeWXwh.jpg

Pobierz
@FREEQ: mam już przygotowanych parę kolejnych artykułów o Haskellu - m.in. o klasach typów, funktorach oraz o funktorach aplikatywnych, a i coś o monoidach oraz monadach też się tworzy więc zachęcam do śledzenia. ;)

Wiadomo - tematu bynajmniej nie wyczerpię, a jeśli chodzi o jakość, to można znaleźć w sieci lepsze treści od moich, ale z doświadczenia wiem, że zgłębiając dany temat (zwłaszcza związany z różnymi dzikościami FP) warto jest poznać
  • Odpowiedz
Wiecie jakie są różnice między DSL(językami dziedzinowymi) a DSML(językami modelowania dziedzinowego)? Ja jeszcze niedawno nie miałem pojęcia, dlatego sprawdziłem co i jak, a teraz przybywam z nowym artykułem -> DSL vs DSML: czym są języki dziedzinowe i języki modelowania dziedzinowego?

Jeżeli macie jakieś doświadczenia związane z tymi tematami, to zachęcam do podzielenia się tu lub w komentarzach pod postem. :)

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #
informatyk - Wiecie jakie są różnice między DSL(językami dziedzinowymi) a DSML(języka...

źródło: comment_15961960780VlU1Ip44ZybamW3uf1Omd.jpg

Pobierz
@Hauleth: Spotkałem się już z takim podejściem o jakim piszesz, tzn. że bycie DSLem zależy od kontekstu, jednak osobiście skłaniałbym się do nazywania w ten sposób tylko tych języków, których jedyny kontekst to jakaś konkretna dziedzina. Jeżeli zastosowania danego języka poszerzają się, to przestaje on być DSLem.
  • Odpowiedz
@Saly: Masz rację, określanie poszczególnych technologii jako DSLe i debatowanie nad tym wprowadza sporo zamieszania, ale rzeczywistość jest taka, że DSL i DSML to pojęcia które można spotkać w rozmaitych miejscach w odniesieniach do różnych języków.

Dlatego, opierając się na różnych źródłach (linkowanych w artykule), postarałem się zebrać najważniejsze informacje na ten temat, by ktoś, kto pierwszy raz spotyka się z takim okresleniem, rozumiał mniej więcej o co chodzi. Nie wgłębiałem
  • Odpowiedz
Wystartowałem niedawno z nowym projektem - agregator.dev - aby uporządkować znajdowane przeze mnie ciekawe treści programistyczne i przy okazji dzielić się nimi z innymi programistami. Co tydzień w sobotę znajdziecie tam zbiór wyselekcjonowanych przeze mnie linków. Zapraszam więc wszystkich Mirków do śledzenia i przesyłania propozycji z linkami! ( ͡° ͜ʖ ͡°)

Parę słów o projekcie skrobnąłem też na bloga - https://polydev.pl/2020/07/agregator-dev-czyli-zobacz-moje-zakladki/

Jeśli interesują Cię moje wpisy, obserwuj tag
informatyk - Wystartowałem niedawno z nowym projektem - agregator.dev - aby uporządko...

źródło: comment_1595671206tngeVAREXf4FoQ0MiUPE4Z.jpg

Pobierz
Będzie czytane (ʘʘ)

Przed chwilą dotarła do mnie papierowa wersja polskojęzycznego drugiego wydania tej kultowej pozycji.

W przeszłości zdarzyła mi się już lektura niektórych rozdziałów ebooka Dragon Book, ale sporo wiedzy czeka jeszcze na przyswojenie. Liczę na to, że spoglądający z regału biały smok będzie bardziej motywował do działania. :D

#polydev #ksiazki #programowanie #kompilatory #dragonbook #naukaprogramowania
informatyk - Będzie czytane (ʘ‿ʘ)

Przed chwilą dotarła do mnie papierowa wersja po...

źródło: comment_1595243861GUuStoSKwyPbQjh1poBa4Y.jpg

Pobierz
@TheDraom: niestety tłumaczenia takich książek to zawsze dodatkowe ryzyko błędów i pewnie w tym przypadku również ich nie uniknięto. Przy niektórych wątpliwych fragmentach trzeba wspierać się oryginałem. Żeby daleko nie sięgać - 5. strona pierwszego rozdziału i ilustracja z błędem
  • Odpowiedz
Mirki pomomóżta z takim tematem na #wikipedia

mam przykładowo stronę znanego urzytkownika który pomaga w edycji artykułów np. gdzie są problemy jezykowe np. rosyjski cyrilica etc, pytanie: jak się z nim skomunikować dla pewności..

coś jak mail czy wiadomość w dyskusji czy coś aby się wyświetliło mu w pilnych sprawach w powiadomieniach?

ps. jak można zaprosić inne osoby co mają pojęcie w temacie lub takich tematach do dyskusji? mają dane jak wyżej
Tym razem artykuł pozbawiony technicznego „mięska”, a skierowany bardziej do rekruterów IT, managerów i wszystkich tych, którzy uczestniczą w procesie pozyskiwania nowych programistów do swoich firm. Przedstawiam w nim platformę Geektastic, w której działam jako code reviewer

--> https://polydev.pl/2020/07/rekrutacja-programistow-przy-pomocy-geektastic/

Gdyby ktoś był ciekawy jak dokładnie wygląda praca na takim stanowisku, to prawdopodobnie w przyszłości też ukaże się wpis na ten temat. :)

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#rekrutacja #
informatyk - Tym razem artykuł pozbawiony technicznego „mięska”, a skierowany bardzie...

źródło: comment_1594817300FlH5JqTy0zFvk5leNhUPsy.jpg

Pobierz
  • Odpowiedz
Guietta to ciekawy sposób na uproszczenie tworzenia GUI w Pythonie. Czy rzeczywiście jest szybki i elegancki, podobnie jak pojazd, od którego projekt czerpie swą nazwę? Zachęcam do zerknięcia na najnowszy artykuł, który opublikowałem na swoim blogu -> Guietta - sposób na proste GUI w Pythonie

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #naukaprogramowania #guietta #python #gui #qt
informatyk - Guietta to ciekawy sposób na uproszczenie tworzenia GUI w Pythonie. Czy ...

źródło: comment_1594372906ZDgoE6O4bhUCzM41QSGk6P.jpg

Pobierz
  • Odpowiedz
Dwa dni temu Wikimedia Foundation oficjalnie ogłosiła początek dwóch nowych, niezwykle interesujących projektów - Wikilambda oraz Abstrakcyjna Wikipedia. Intrygują mnie one nie tylko jako programistę, ale również jako niegdyś aktywnego Wikipedystę, dlatego postanowiłem sprawdzić szczegóły i przedstawić je w najnowszym wpisie na swoim blogu -> Wikilambda i Abstrakcyjna Wikipedia – nowe projekty Wikimedii

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #wikipedia #wikimedia #wikidane #wikilambda #abstrakcyjnawikipedia
informatyk - Dwa dni temu Wikimedia Foundation oficjalnie ogłosiła początek dwóch now...

źródło: comment_1593856519od50HjPonbRRO5EDu1DeZt.jpg

Pobierz
  • Odpowiedz
Kiedy półtora roku dołączałem do nowego zespołu programistycznego zupełnie nie spodziewałem się, że dane mi będzie… programować graficznie. W Apache NiFi. I na dodatek zostać swego rodzaju zespołowym ekspertem w tej technologii. Posłuchajcie mojej historii pełnej przygód i wyzwań, jak również irytacji, zniecierpliwienia i wreszcie zadowolenia z dobrze wykonanej pracy i rozwiązanych problemów.

LINK: O tym, jak zupełnie przypadkiem zostałem NiFi-owym ekspertem

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #
informatyk - Kiedy półtora roku dołączałem do nowego zespołu programistycznego zupełn...

źródło: comment_1584263674V43rrJYeD0aUccUeIUVvfN.jpg

Pobierz
Dlaczego Smalltalk jest wyjątkowym językiem programowania? Na czym polega jego czysta obiektowość? Czy tworzenie klasy może być realizowane przez wysyłanie wiadomości? Co sprawia, że praca w smalltalkowym IDE wydaje się wielu osobom dziwna? Na te i inne pytania odpowiadam w opublikowanym dziś artykule, który jest pierwszym z serii wpisów poświęconych temu fascynującemu językowi.

LINK: Smalltalk – najczystszy z obiektowych języków programowania


Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#
informatyk - Dlaczego Smalltalk jest wyjątkowym językiem programowania? Na czym poleg...

źródło: comment_7dPY2kLMtp15ZBPgHvjszGg0Dli4u77p.jpg

Pobierz

Czy kiedykolwiek programowałeś w Smalltalku?

  • Tak, smalltalkuję nałogowo! 3.5% (2)
  • Tak, ale niewiele razy 7.0% (4)
  • Nie i nie zamierzam 70.2% (40)
  • Nie, ale kiedyś spróbuję! 19.3% (11)

Oddanych głosów: 57

@LazyInitializationException: rynek zweryfikował też COBOLA i JavaScript, czyniąc z nich bardzo popularne technologie, co nie oznacza, że zarazem najlepsze. Co więcej, nie każdy język aspiruje do bycia uniwersalnym, a już na pewno nie języki jednoparadygmatowe (podobnie jak np. czysto funkcyjny Haskell, który jest świetny, ale przecież nie do wszystkiego, więc nie spodziewałbym się, że nagle wpadnie do TOP5).
  • Odpowiedz