jarekr000000

  1. U krasnoludów - pod górą
Zgadzam się ze wszystkimi przedmówcami
jarekr000000
2019-09-12 22:39

To była bomba wiadomość:

https://www.manning.com/books/functional-programming-in-kotlin

Runar to norweski bóg programowania funkcyjnego i troche to było dziwne, że coś zrobil w kotlinie. (Jak to? w plebejskim jezyku...).
Wyszło, że tylko udostępnił przyklady i materiały do Scali, które na kotlina zostały przetłumaczone przez innych (takie info dostałem).

W kazdym razie może to być ciekawa pozycja, ale nie czytałem (tkwię od dawna na dwóch innych książkach i uparłem się, że nic nowego zanim nie skończę).

Z ciekawostek: Runar, tak jak Tony Morris też jest skrzywdzony przez Java EE. Zaskakujaco wielu z fanów FP / Scali i Haskella to ludzie, którzy mieli dość enterprise javy.

tdudzik

Jeżeli jest równie dobra co pierwotna wersja dla Scali to śmiało można czytać. :)

viader

nice, kupuję i przeczytam sobie

jarekr000000
2019-09-05 15:15

Macie troche popkornu, ale nie macie dobrego filmu?
Nie ma sprawy - społecznośc scalowa zawsze da radę dostarczyć jakąś fajną dramę.
W skrócie obsmarowywali Johna De Goes tak długo (to moja opinia po przebrnięciu przez materiały), aż g**no się przykleiło i wywalili go z konferencji Scala Exchange.
https://twitter.com/skillsmatter/status/1168944236181557254

Reakcja była dość burzliwa:
https://twitter.com/search?q=%23supportjohndegoes&src=typd

Dużo ludzi wypisuje się z konferencji. Speakerów i uczestników. Ja się wypisuje po cichu z haskellowej robionej przez tą samą firmę.

John wielu ludziom działa na nerwy - agresywny amerykański marketing, wszystko wie itp... ale wie jednak dużo, chętnie sie tym dzieli
często ma rację. Nie wywalił ze swoich konf dwóch gości o kontrowersyjnych poglądach - mimo, że konfa była techniczna i goście nie mieli specjalnych szans nic politycznego powiedzieć (sa nagrania). No i koniec końców nie jest to powód, żeby dośc brutalnie obsmarowywać.

A wy myśleliście, że to tylko w PHP...

Michał Sikora

Żenada. O ile nie programuje w Scali i nie planuje w najbliższej przyszłości, to lubię posłuchać jak John przedstawia tematy i opowiada o swojej wizji na przyszłość Scali.

jarekr000000

Niestety, to faktycznie żenada. Tak też napisałem w lišcie do organizatorów. Najgorsze, że ludzie płacą pieniądze, czasem żeby jernego gościa posłuchać a tu się takie jaja odstawia.

tdudzik

To nie wszystko: https://twitter.com/typelevel/status/1169625531190525953 . Totalnie nie zdając sobie sprawy z tego co wyprawia się w community Scalowym, samemu udało mi się wdepnąć w to g**** (ale kto wie ten wie :D). Cóż, wszedłem w świat Scali jakieś dwa miesiące temu, udało mi się nawet zrobić jedną bardzo niewielką kontrybucję która ostatnio została wyreleasowana (Metals), a tu czas się wynosić. Podoba mi się jednak ile osób stanęło po tej zdroworozsądkowej stronie. To chyba nie przypadek, że duża część z nich jest z naszej części kontynentu. Wygląda na to, że po drugiej stronie Atlantyku ludzie stęsknili się już za komunizmem, którego chyba nigdy nie mieli. Mam tylko nadzieje, że ta zaraza nie dojdzie do nas.

tdudzik

Ano i nie tylko PHP. Między PHP i Scalą była drama w środowisku JS (m. in. Dan Abramov).

tamtamtu

przylacze sie tez do protestu - nie poznam scali ;). Tak na serio irytujace ze glosne osobniki, ktore zazwyczaj malo co soba reprezentuja a maja tyle czasu i sily na jakies tam wymyslane oskarzenia. Co gorsze zazwyczaj sami wobec siebie swoich standardow nie stosuja...

tdudzik

Łatwiej byłoby mi to zaakceptować gdyby nic nie reprezentowali. Wydaje się jednak, że często reprezentują. ;)

tamtamtu

Ogromna wiekszosc ktora cos soba reporezentuje takimi rzeczami sie nie zajmuje i tak sie nie zachowuje. Krzycza jednostki - niestety za bardzo sa slyszane :/

WeiXiao

co mu zarzucali? bo coś tam na twitterze widziałem o tych wszystkich typowo murykańskich problemach typu lgbt feminism itd.

Koziołek

@WeiXiao: w dużym uproszczeniu John ma trudny charakter oraz zdarzyło mu się powiedzieć kilka ciepłych słów na temat kompetencji jakiegoś gościa, którego w USA uważają za „far right”.

czysteskarpety

Też nie występuje na konferencjach, bo jestem zbyt wrażliwy, pomimo tej maski twardziela na forum również mam swoje uczucia jak każdy.

WeiXiao

z jednej strony słabo tak wyrzucić prelegenta jak ludzie kupili już bilety, a z drugiej można byłoby zrobić nagonkę na organizatorów że promują takie zachowanie :P

WeiXiao

@Koziołek: ale powiedział to jakoś w ostatnim czasie, czy dawno temu?

jarekr000000

Podsumowanie od Bartosza Milewskiego https://twitter.com/BartoszMi[...]atus/1169655019240644609?s=19 Czytaliśmy to wszystlo po nocach. Bartosz mówił, że przypomina mu to typowe kampanie oczerniające za komuny...

jarekr000000

@Koziołek: od jakiegoś czasi śledziłem wpisy Johna na akcje typu - zamykamy twojego PR, bo nam sie nie podoba wasza persona i co tam robiłeś na lambdaconf w 2016... IMO John bardzo wyważone na to dawał odpowiedzi.. żadnych brzydkich słów i atakôw ad personam, chociaż nawet mi scyzoryk sie otwierał...
A to chyba tylko coraz bardziej rozsierdzało hejterów.

Nevaan

okej, a czy ktoś jest w stanie napisać coś więcej na temat tej sprawy? bo ciężko stwierdzić o co chodzi jeśli nie jest się "into" community scali. z tego wpisu można wywnioskować tylko że wywalili jakiegoś gościa za coś i wszyscy tutaj są oburzeni :P

Nevaan

@tdudzik: dzięki wielkie, o cos takiego mi chodzilo :)

jarekr000000

Tylko trzeba pamoetać, że ten dolumencik rzuca mocnymi słowami, a ja to czytałem przez dwie nocki i weryfilowałem i nic z tego nie jest dla mnie wiecej niz pomówieniem. W paru z tych linków john de goes nawet nie występuje. Po przeczytaniu postanowiłem poprzeć Johna, bo takiego hovinka dawno nie widziałem.

WeiXiao

oO robi się coraz ciekawiej :D #usa #usa #usa #usa

jarekr000000

Zaczęło sie od tego, ze nie wyrzucił z konfy sprakera, wybranego w tzw. double blind review, gościa który kiedyś wcześniej coś napisał niepoorawnego pod pseudonimem... gościu dał talka technicznego, i pojechał z konferebcji. Jest wideo z teho wykładu. Dramat trwa do dzisiaj.

WeiXiao

@jarekr000000: tylko uważaj, bo zaraz ciebie wezmą na celownik i będzie, że jarek to kiedyś goto używał i żeby go nie zapraszać :D

WeiXiao

@jarekr000000: gościa który kiedyś wcześnien coś napisał pod pseudonimem... że powyzywał z fake konta?

jarekr000000

Spoko, już jestem pobanowany. W zacnym towarzystwie.

WeiXiao

ja też, ale już łapie, bo było o tym w linku wyżej

jarekr000000

jakbym miał porównać z czyms z naszego podwórka. To jest sobie taki Korwin, od dawna już na niego nie głosuje (chyba od zrobienia matury), pogarda dla kobiet, homoseksualnych osób itd. mi nie pasuje. Ten Korwin oprócz pilnowania, żeby nie przekroczyć progu napisał też książke o brydżu, i nawet fajnie się czytało. Dzisiaj nie kupiłbym raczej tej książki, bo czułbym, że wspieram dość dziwnego kolesia. Chyba, ze byłaby jedyna sensowna książka o brydżu, a ja bym koniecznie potrzebował (tak):-). Książka jest bez polityki - tak do końca techniczna to nie jest, ale nie ma żadnej podejrzanej propagandy (nie ręcze - 100 lat temu czytałem). Tu dyskusja jest taka czy chcemy zamykać księgarnie, gdzie ta książka jest w sprzedaży - i dla mnie jest tu już mocno za daleki krok. Księgarz nie musi wiedzieć o co chodzi, a nawet jak mu ktoś przyjdzie i powie to może miec lekki problem z wycofaniem jeśli pechowo ma w magazynie tysiące egzemplarzy. A tu poszło jeszcze o gościa, który pisał syf pod pseudnimem... więc naprawdę można było nie wiedzieć.

bakunet

Nigdy nie ciągnęło mnie do oper mydlanych. Cieszę się, że wybrałem .Net

tdudzik

Ja w ogóle wolałbym, żeby branża tech była skupiona na technologii. Wydaje mi sie, że po to kiedyś jako społeczeństwo w różnych krajach zdecydowaliśmy się na prawo i sądy, żeby unikać takich sytuacji. Kim my jesteśmy żeby osądzać i na jakiej podstawie? Zresztą ten problem istnieje w Stanach od jakiegoś czasu. Przez takie akcje ludzie tracą pracę, często ich cała kariera jest niszczona. Można samemu posłuchać kilku historii oglądając podcast Joe Rogan i Jack Dorsey (CEO twittera) (ten drugi, gdzie łącznie była trójka gości). Jeżeli prelegenci są wybierani w ciemno, to likwiduje to problem że ktoś będzie faworyzował ludzi z danymi poglądami. Ponadto każdy powinien mieć zakaz szerzenia swoich poglądów na konferencjach, bez względu na to czy są prawicowe czy lewicowe. Może rzeczywiście niektórzy ludzie zasługują na pozbycie się ze społeczności, ale jestem przekonany że ta granica będzie się przesuwać i zawsze może stać się to argumentem żeby pozbyć sie kogoś aby osiągnąć jakieś swoje cele. Wystarczy zobaczyć kto został zbanowany u autora posta podlinkowanego wyżej. Pewnie gdyby mu dać taką władzę, to wszystkich by 'zdeplatformował'.

WhiteLightning

Patologia jakas z tym wszystkim. Doczekamy sie niedlugo wiekszej cenzury i ostracyzmu niz za komuny pod pozorem tolerancji i rownouprawnienia. Można mówić na każdy temat co sie tylko chce, ale niektorych rzeczy nie wolno kwestionowac bo od razu: antysemityzm, LGBT, ciemnota, nietolerancja, mowa nienawisci itp. Co bedzie nastepne Linus dostanie bana na rozwijanie jadra Linuxa bo kilka razy ostro po gosciach pojechal ?

tamtamtu

@bakunet wiesz tylko ze takie pasywne podejscie powoduje ze krzykliwa strona (glownie lewa) robi praktycznie co chce - moze udupic kogo chce za rzeczy ktore sama robi. Niestety sam tez reprezentuje grupe "niech ktos" :/

jarekr000000

Tak, niby sprawa wygląda prosto. Do tego konfeencje mają code of conduct opisujący co wolno, co nie. Musisz jako uczestnik zaakceptować. Jeżeli naruszysz to możesz dostać proces o odszkodowanie. Ale się okazuje, że nadal są uczestnicy czujący dyskomfort jeśli w tym tłumie pojawi się ktoś o skrajnie prawicowych poglądach, nietolerancynny, choć o polityce nie mówi. I to bym nawet zrozumiał... gdyby nie to, że za propagowanie nietolerancji itd. są sądy, a tu się okazuje, że żaden z tych złych nie był slazany. A tylko, przykładowo, ktoś ma mocne podejrzenia, że coś było napisane pod nickiem..... i teraz żądamy wywalania z konf takich gości i wszystkich, którzy nie chcieli ich wywalać.... tolerancja i równość imo weszły za daleko(kilku osobom). Ale niestety mają dużo czasu..

bakunet

@tamtamtu: ja jesteś po środku. Więc mam chodzić i nap*erdalać prawych i lewych?

WhiteLightning

@jarekr000000: na naszej scenie tez? Bo wystapilem juz na kilku, dwie sie zblizaja a nigdzie nie pisali o akceptacji Code of Conduct. Glupio byloby robic cos pro publico bono, a potem jeszcze kare zaplacic :O

Haskell

@jarekr000000: Korwin o kobietach mówi, że są średnio mniej inteligentne od mężczyzn o kilka punktów oraz ich inteligencja ma inny rozkład normalny tj. wśród mężczyzn jest więcej geniuszy, ale i więcej idiotów. Z kolei homoseksualistów nazywa "homosiami" i uważa, że istnieli zawsze i nikomu nie szkodzą, z kolei pogardę czuje do tzw. "tfu gejów" czyli w jego nomenklaturze homoseksualistów głośno manifestujących swoją odmienność, występujących na paradach, którzy domagają się praw, które jego zdaniem się im nie należą. Uważa, że małżeństwo to instytucja powołana w celu założenia rodziny i płodzenia dzieci, a jego zdaniem ze związku dwóch homoseksualistów nie urodzą się dzieci. Nie wiem czy to jest wyraz "pogardy" do tych grup czy prezentowanie niepoprawnych politycznie faktów. Z pewnością jednak nie pozwoliliby mu wystąpić na Scala Exchange.

tamtamtu

@bakunet bedac po srodku nie mozesz zgadzac sie z obecna lewica - zwyczajnie sie nie da bo wyglada ona gorzej niz prawica (ze wzgledu na to ze wiekszosc rzeczy ktore popelnia jest tolerowana przez media - gdyby podobne rzeczy zrobila prawica od razu bylaby krytykowana). Ciezko niezauwazyc ze lewica ma podwojne standardy - przyklad parytetow dla kobiet i brak dla mezczyzn, postrzeganie ludzie przez rase/orientacje jest zle ale zatrudniajac nalezy zwracac uwage bardziej na "mniejszosci" itp. Lewica tak samo jak prawica zagraza ludziom po srodku - tylko ze postepowanie lewicy jest jakos bardziej akceptowalne i sa wieksze szanse ze ich absurdy Ciebie dotkna.

jarekr000000

@Haskell mi wystarczyło już używanie słowa homosie. Ale raczej nie wywalam z grup znajomych tych co na niego głosują. Chyba, że sami używają słów typu homosie, ciapaci itd, albo maja jakieś dziwne problemy do kobiet (w IT na przykład).

Koziołek

@WhiteLightning: są konferencje z CoC, które są dość „dziwne”. Jednak w większość imprez niby ma CoC, ale każdy ma to w dupie.

Kamil Żabiński

@Haskell: Uważa, że małżeństwo to instytucja powołana w celu założenia rodziny i płodzenia dzieci ja z żoną nie zamierzamy mieć dzieci, czy to znaczy że nie powinniśmy dostać ślubu?

jarekr000000

@Koziołek: @WhiteLightning faktycznie, praktycznie nikt go nie czyta - miejsce na niezłego pranka, a lektura jak John chciał wstawić swój(Lambdaconfowy) CoC gościom z typelevel - poszło o to, żeby mu pokazali gdzie jego jest gorszy to kolejna niezła historia (zresztą fakt, że się kłócił i był uparty oczywiście teraz świadczy przeciwko niemu).
Duże konfy mają Coc -> Devoxx, Geecon. IMO nie są dziwne. Małe konfy nie i wtedy może zdarzyć się taka sytuacja, że zaproszony gość z zagranicy G na miesiąc wczesniej napisze:
G : zauważyłem, że nie macie oficjalnego Code Of Conduct, profesjonalna konferencja powinna mieć Code Of Conduct
Organizatorzy : faktycznie, dzieki za zwrócenie uwagi, coś zaraz zrobimy
...
G - został wypisany z grona speakerów... tadam.
To niestety najlepszy sposób na uniknięcie dram. Jakaś będzie, ale mniejsza niż jeśli gość przyjedzie i odkryje, że nie ma gender free toalet.

axde

@jarekr000000: kajam się w takim razie za wpis o php. Z drugiej strony nie dziwi mnie to. Wszędzie są podludzie.

Kamil Żabiński

gender free toalet powinny być akurat standardem na konferencjach, bo to jest bez sensu że moja żona może skorzystać z toalety bez kolejki a ja muszę czekać

jarekr000000

Z ciekawostek: kilka lat temu byłem na spotkaniu scalowców, w zurichu. Przy piwie przedstawiamy się sobie - i jeden gość zaczyna od najważniejszy jest code of conduct. Wtedy nie wiedziałem o co chodzi, chciałem tylko dać cześć. Weganie wysiadają - taki to przynajmniej ręke poda, a dopiero potem kulturalnie powie kim jest. Ale to własnie z tej organizacji co teraz robi najazd na Johna.

WhiteLightning

@Kamil Żabiński: to ze ktos cos uwaza nie czyni tego prawda objawiona. A co do rozkladow IQ nie wiem jak wygladaja i czy sie roznia, musialbym zoabczyc wykresy, poczytac jaka byla proba statystyczna itp. ALE: jak ktos zrobi badanie mowiace ze faceci sa statystycznie wieksi, masywniejsi, silniejsi od kobiet (albo porownujac w ten sposob rozne rasy ludzkie ) to bedzie ok. Ale niechby ktos chcial zrobic podobne badanie dotyczace IQ to szkoda mowic co by sie dzialo. Jest to cecha ktorej nie wolno porownywac bo jest to niepoprawne politycznie.

Kamil Żabiński

@WhiteLightning: ale ja się nie pytam o IQ, wzrost czy siłę tylko o to czy moje małżeństwo jest zgodne z prawem i sensem skoro dzieci z niego nie będzie

jarekr000000

ej! - musicie na 4programmers jeszcze to wnosić? Jestem uwalony w gównie, które czytałem przez kilka dni - wystarczy mi.

Haskell

@Kamil Żabiński: wg Korwina pewnie nie. Z kolei wg polskiego prawa jest legalne, wg konstytucji małżeństwo to związek kobiety i mężczyzny znajdujący się pod ochroną państwa.
@jarekr000000 - hahaha sam zacząłeś :D

WhiteLightning

@Kamil Żabiński: sens zycia i malzenstwa to metafizyka :) Z punktu widzenia funkcjonowania spoleczenstwa/narodu/gatunku pewnie sensu nie ma bo marnuja sie dwie jednostki pod katem reprodukcji i do tego byc moze oszczedzicie troche na podatku rozliczajac sie wspolnie. Z polskim prawem jest za to jak najbardziej zgodne.

baant

@Kamil Żabiński: na geeconie zrobili męską toalete z damskiej (przyklejone a4 z informacją). Dobrze, że żaden wojujący SJW tego nie zobaczył...

Koziołek

@Haskell: nie, według konstytucji małżeństwo kobiety i mężczyzny podlega szczególnej ochronie, ale nie oznacza to, że nie można zawrzeć małżeństwa jednopłciowego. Uzasadnienie WSA w sprawie legalizacji związku Jakuba i Dawida jest jednoznaczne https://youtu.be/pSbcbyRnXUY?t=265 . Problemem jest brak przepisów niższego rzędu (tak naprawdę rozporządzeń), które powalały, by na zawarcie małżeństwa parze jednopłciowej.

Nech

@WhiteLightning: Przecież są dostępne badania IQ dla krajów i ras, nie widziałem też, by ktoś robił problemy z tego tytułu. Problemem są ludzie, którzy atakują przedstawicielli innych ras na podstawie tych badań lub każdego przedstawiciela innej rasy traktują z góry, choć może mieć IQ znacznie przewyższające ich(a nawet, jeśli tak nie jest, to jakie to ma znaczenie?). Nie rozumiem też, dlaczego biali alt-rightowcy tak ciągną do tego IQ, skoro jesteśmy daleko w tyle za Azjatami.

tamtamtu

@Nech oczywiscie ze masz racje ze traktowanie z gory jest zle, tak samo jak ataki - ale trzeba pamietac rowniez ze zle jest ignorowanie badan bo komus sie ich wynik nie podoba oraz atakowanie za przedstawianie tych badan. Pierwsi i drudzy sa tak samo zli.

jarekr000000

Jon Pretty zajął dośc jasne stanowisko: https://twitter.com/propensive/status/1170098827480752134
Z dodatków dwa lata temu tak kończył Scala Worl 2017 https://www.youtube.com/watch?v=dfpIvYZwvdY

WeiXiao

jak czytam te evidences (pry na gh) to tak na oko 1/2 4p do zbanowania xD

jarekr000000

@WeiXiao: a to akurat to dla mnie jasne, na szczęscie dla 4p nie jestem moderatorem. I nie zbanowałby drugiej połowy mimo, że dyskutuje z tym wszystkimi mizoginami :-)

WeiXiao

ehh, teraz to nie wiem czy się uczyć tej skali. Będę zbyt dobry, powiem coś kontrowersyjnego typu goto ma swoje usecasy i dostanę bana, a później żadna firemka w stanach mnie nie zatrudni - słabe te perspektywy :/

jarekr000000

I myk @WeiXiao na czarną listę za goto nienawiści

tamtamtu

Dzieki za linki - daja troche optymizmu - ze wartosciowi medialni ludzie sie jednak buntuja przed obecna bledna sciezka :)

jarekr000000

Ten twitt mi sie spodobał :-) Winner of oxymoron of the week award : scala community https://twitter.com/pandamonial/status/1170720604854673408

jarekr000000
2019-08-30 12:13

Lece na scalaworld. Mała konferencyjka w angli w środku niczego. Będzie Bartosz Milewski, John De Goes, a Paweł Szulc odwali jakiegoś mocnego keynota. Do tego standardowa wyprawa w góry z grupą programistów przekonanych o własnej niemutowalności i o tym, że góry nie mają efektów ubocznych.
Ostatnim razem zgarnęliśmy ładny opiernicz od Patterdale Mountain Rescue ( a potem od prasy i telewizji). Warto było.
Tym razem mam klapki i reklamówkę z biedronki, więc jestem dobrej myśli.

Wrzucam zdjecie z wyprawy w góry. chyba tym razem bez intereencji pogotoeia sie odbyło właśnie ostatnich zaginionyvh odnaleźliśmy, ale było grubo.

czysteskarpety

Klapki na sandały zamień, a sukces wielki odniesiesz.

wiciu

Poznałem Bartosza na konferencji w Szwecji rok temu. To jest ciekawy gość. ;-)

Spine

"W środku niczego"!? Takich wyrażeń nie tłumacz bezpośrednio z angielskiego "in the middle of nowhere"...
Po prostu pisz po polsku, że "na zadupiu"...

Silv

@Spine: Słownik diki.pl podaje jeszcze: "na końcu świata", "w szczerym polu", "na odludziu".

danek

miejski.pl podaje inne ( ͡º ͜ʖ͡º)

jarekr000000

mam internet, 300 bodów, ale komorki nie dzialają

PerlMonk

@danek: Łeeee, ja myślałem, że napisali tam o czymś, co jest za dupą, ale się myliłem.

Silv

O, jakie fajne owce. :)

Spine

czy ten skrót ma podobne rozwinięcie do "milf" :D ?

jarekr000000
2019-07-24 22:21

Lubię takie perełki od programistów funkcyjnych:

Intuitively it is a bifunctor where the first argument is contravariant and the second argument is covariant.

Prawie jak sławny tekst o monadach.
Tak się nie zachęca ludzi do poznawania tematu.

yarel

To zupełnie jak z refaktoringiem, można doszukać się pewnej analogii z przekształceniami homotopijnymi ;)

lion137

"Monad is just a monoid in the category of endofunctors" :)

WhiteLightning

Przypomnial mi sie pierwszy rok studiow, Algebra i te wszystkie *morfizmy. Jak kolezanka z roku stwierdzila ze jeszcze troche i pojdzie do lekarza i powie ze ma homomorfizm :)

several

Nawet nie musiałem długo szukać All told, a monad in X is just a monoid in the category of endofunctors of X, with product × replaced by composition of endofunctors and unit set by the identity endofunctor. No faktycznie, i wszystko jasne.

hauleth

@several: przy czym jak się rozumie te terminy to już nie jest takie trudne ;)

  • Monoid - zbiór A, funkcja f: A x A -> A (dwuargumentowa funkcja, która przyjmuje elementy ze zbioru A i zwraca element ze zbioru A, tzn. jest wewnętrzna) oraz element e, takie, że f(a, f(b, c)) = f(f(a, b), c) oraz f(a, e) = f(e, a) = a dla każdego a, b, c in A
  • Funktor - w prostych słowach - uogólnienie funkcji na kategorie
  • Kategoria - w skrócie - zbiór funkcji operujących na obiektach tego samego typu
  • Endofunktor - funktor z kategorii w samą siebie, czyli F: C -> C (gdzie C to kategoria)

Czemu to wszystko ma swoje dziwne nazwy, nie wiem - nie mnie pytać.

several

@hauleth: No przeca napisałem, że wszystko jasne ;)

somekind

A drzewo to las spójny. ;)

Wibowit

Kiedyś rozkminiałem te monady, ale podszedłem do problemu zbyt niskopoziomowo: A monad is just a monoid in the category of endofunctors

lion137

@somekind: A dokładnie, drzewo to las, który ma co najmniej dwie z trzech własności: spójny; ma n - 1 krawędzi, jest acykliczny:-)

Koziołek

@jarekr000000: idzie nowe nazwy jedno literowe nazwy funkcji by nie rosła skomplikowanie https://twitter.com/JM0x5C/status/1154447947955724288

hauleth

@lion137: a może być cykliczny las?

somekind

Tu nie trzeba żadnych definicji pisać, to że drzewo jest lasem spójnym jest intuicyjnie zrozumiałe dla każdego, kto kiedykolwiek widział drzewo oraz las.

Kamil Żabiński

Na prawdę nie rozumiem o co chodzi. Kowariancja i kontrawariancja jest używana w OOP, np. gdy mówi się o typach uogólnionych itp. To że programiści OOP języków statycznie typowanych nie rozumieją tych pojęć znaczy tylko, że są niedouczeni i klepią kod przez koincydencje i permutacje. (Oczywiście mi też to się zdarza, tak więc od dziś postaram się pamiętać znaczenie "Kowariancja i kontrawariancja").W tym zdaniu można przyczepić się chyba tylko słowa funktor. Ale znowu jest to jedno z podstawowych słów w PF z typami. To tak jakby chcieć programować OOP i nie wiedzieć co to obiekt i metoda, gdy starszy programista mówi ci "żeby wywołać metody obiektu musisz utworzyć obiekt który jest instancją klasy". Też nie tego nie rozumiałem jak zaczynałem programować OO.

jarekr000000
2019-07-17 15:11

Czasem sie słyszy, że kod COBOLa jest bardzo rozdmuchany. Gdzieś nawet czytałem, że przy pisaniu tej samej funkcjonalnosci stosunek linii kodu w COBOLU do JAVY to 60 do 1.

Java -- taka zwięzła :-)

Nie do końca w to wierzyłem, ale dzis spotkałem programik, który jak wyjaśnia IDENTIFICATION DIVISION, ma za zadanie wrzucić jeden wiersz do bazy danych. Wiersz dotyczący wersji programu, żeby było widać (w GUI) , która wersja jest aktualnie odpalona.

Programik ma 2962 linijki. Z tego wiele bez sensu - to widzę, ale przy tym rozmiarze programiści już dawno sie pogubili i nie wiedzą co można wywalić.

Pod koniec jest jakiś ciekawszy kod, którego nie rozumiem, a przed nim:

 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 * DON'T TOUCH THIS CODE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Dokładnie 7 razy.

Przekonali mnie. Nie ruszam.

Shalom

Pewnie każda linijka dopisana przez kolejnego developera który ruszył ten kod ;)

grski

powinni dodać taki mały licznik pod spodem w stylu
* Hours wasted by previous developers not adhering to this advice: XX (add your hours)

nie100sowny

@jarekr000000: Pewnie programik tajemny, przez bank zapieczętowany, ale jak możesz to wrzuć cały :)

somedev

Ja się nauczyłem nie ruszać. Raz zobaczyłem jakiś WTF. Patrzą kto to robił - jakiś senior... ale 7 lat temu... no to pewnie jeszcze seniorem nie był. Podśmiechujki pod nosem i refaktor..... koszulę z przodu wygładziłem, w spodnie wciągnałąłem i program wygląda lepiej... ale zaraz dupa tyłem wystaje, bo spodnie się przesunęły. Zakrywam tyłek to znów od przodu wychodzi. Po paru godzinach już wszystko ok, ale teraz spodnie za krótkie są .... na koniec skończyło się tak, że okazało się, żeby wszystko działało poprawnie trzeba zrobić taki wtf jak na początku zastałem i z pokorą i zdziwieniem uznaje, że to jedyna droga .... commituje jedynie komentarz dla innych śmiałków.

Shalom

@somedev: widzisz, ja mam zwykle więcej zaufania do developerów i zakładam z góry ze skoro ktoś napisał XYZ to miał ku temu powód i najwyżej zaglądam w historię czy nie ma gdzieś więce info / referencji do jiry czy wiki z szerszym wyjaśnieniem co tam się stało :)

jarekr000000

@nie100sowny: nie zrobię tego. Chociaż może byłby wtf roku. Znający cobola mogliby zemrzeć. W kodach są hektary copy pastów z tutoriali. Pozostawione, bo cholera wie co by się stało gdyby ruszyć... Chyba ostatnio w 2000 roku miałem przypadek, że chciałem kogoś pozbawić prawa do wykonywania zawodu. Cały ten kod, a jest tego setki plików, wygląda jak sabotaż. Btw. to nie bank, i myślałem, że moi cobolowcy w banku byli słabi..., ale to przebija wiele.

jarekr000000

@Shalom ja rżnę taki kod jeśli tylko mam tam dopisać choćby małego IFa. Skoro mam wziąć odpowiedzialność za tego jeszcze jednego IFa to muszę też mieć pewność, że rozumiem co się dzieje dookoła. A nic tego lepiej nie sprawdzi jak refaktor rozpierdalator. Parę lat temu w CH zacząłem pracę od zrefaktorowania kluczowego procesu batchowego w firmie. Strach wśród reszty programistów i managementu byl spory. Btw. oczywicie zje... /zepsułem. Ale po dwóch hotfixach na produkcji :P mieliśmy czytelny batch, do tego z testami.

jarekr000000

Btw. czuję, że drugi raz w życiu wezmę kawałek kodu i wyniosę z firmy. Umieszcze na bezpiecznym dysku. Nie, żeby ten kod był czegoś warty. Po prostu nikt mi nie uwierzy... A za 30 lat może będę mógł pokazać. Pierwszy taki kawałek (który kiedyś wyniosłem) jest w javie i ma ręcznie pisane metody, które są na krawędzi dopuszczalnych długości w bytecode, ale nie mogę publicznie pokazać - firma istnieje i może mieć ten kod nadal na produkcji.

jarekr000000

@Shalom - to straszne, ale nie mam zaufania do developerów. Mam wrażenie, że mnóstwo kodu powstaje jako try and error. Moje wywiady z programistami to potwierdzają.

Shalom

Pierwszy taki kawałek jest w javie i ma ręcznie pisane metody, które są na krawędzi dopuszczalnych długości w bytecode

Widziałem już uderzenie w ten limit 64kb bajtkodu dla jednej metody :D Ale akurat były częściowo generowane (mimo wszystko szablon to setki linii...)

jarekr000000

W wygenerowanym kodzie to norma. Ale tu chodzi o 2 metody z setkami ręcznie rzeźbionych ifów, różnie pozagnieżdzanychm tonami flag boolean i przelatującymi przez to wszystko hashmapami (modyfikowanymi). Dało sie to coś debugować i nawet naprawiać błędy, ale nie dało się nic zmienić bez wielokrotnych porażek. Klasa była też doskonałym stress testem dla IDE. Jak przyszedłem do firmy to wszyscy mieli JBuildera, bo to jedyny edytor javowy, który na tym kodzie nie umierał. (ale potem, któryś eclipse, tez zaczął dawać radę ).

vpiotr

Pracowalem przy COBOLowym frameworku ktory rozdmuchiwal jedno przypisanie do ok. 400 LOC.

Markuz

@jarekr000000: Jest taka technika do refaktoryzacji, gdzie kodu legacy nie ruszasz, piszesz własny obok (lub kopiujesz legacy i go modyfikujesz) - potem na produkcji dalej korzystasz z legacy ale dodatkowo w tle odpalasz sobie ten nowy, porównujesz output - po jakimś czasie poprawiasz jak się output nie zgadza i tak do skutku a potem podmieniasz. Robiłeś już tak kiedyś, czy za dużo zachodu?

jarekr000000

@Markuz robiłem. W jednym projekcie nawet na dużą skalę. Konkretne batche, procedury składowne itp. da się tak zwykle całkiem rozsądnie przepisać. Ale z typowym monolitycznym / wielowarstwowyum softem raczej nie pójdzie, masz sześć baz danych, trzy GUI i nie bardzo wiadomo gdzie input i output. Btw. większość rzeczy robiliśmy mając ustalone zrzuty baz danych i odpalaliśmy nowe batche do skutku, aż wynik się zgadzał

jarekr000000

@vpiotr: możliwe, że tu jest podobnie. Nie znam ekosystemów około cobolowych, ale mój nos archeologa softu mówi mi, że patrzę na cargo kult wyrosły i zdziczały po jakimś zapomnianym frameworku. Muszę dokopać się do głębszych warstw, może wtedy ogarnę sens. Na razie niestety śmieci z ostatnich warstw osadniczych mocno zaciemniają ogląd na fundamenty oryginalnej budowli.

Koziołek

@jarekr000000: trochę przesadzasz. Wiele programów w COBOLU jest rzeczywiście rozdmuchanych do granic, ale wynika to niestety z braków w pierwszych wersjach języka. W dużym skrócie COBOL do dzisiaj nie ma czegoś w rodzaju JDBC ani mechanizmów e rodzaju importu fukncji. Napisanie prostego selecta wybierającego jeden wiersz wymaga, niestety, każdorazowego napisania translatora struktur bazodanowych przysłanych w odpowiedzi na struktury w programie.
Przy czym należy pamiętać, że najpierw był COBOL, a potem SQL.

jarekr000000

@Koziołek: tak... podam tylko czyjś komentarz z środka kodu :

      * It's not a smart solution to implement the connection-code
      * as a code snippet which is copied into all program.
      * Changing a bit in this snippet results in a mass compile
Koziołek

@jarekr000000: brak mechanizmu bibliotek :) Serio. Próbowaliśmy w KIRze, napisać preprocesor COBOLa by nam takie cuda sam wstawiał do kodu (trochę jak preprocesor c), ale nie działało to najlepiej.

jarekr000000

@Koziołek: tu mam taki preprocessor (ale wstawia i zmienia in place w pliku - zajebiste :P). Ale tak po prawdzie podprogramy są przecież - CALL działa raczej. ...

somedev

@jarekr000000: może zbyt nisko patrzą, ale takie call jak bardzo jest kosztowne? Może jest tez limit wywołań jednego calla z drugiego - COBOL to prymitywny język i implementacja (niektóra) więc może o to chodzi? (Nie wiem, głośno zadaje pytanie).

Koziołek

@jarekr000000: CALL działa inaczej niż wywołanie funkcji z innego pliku. CALL uruchamia wskazany program (proces w systemie) i przekazuje do niego sterowanie, po zakończeniu procesu sterowanie wraca do wywołującego. Komunikacja pomiędzy tymi procesami może odbywać się tylko poprzez pliki. Co prawda jest możliwość współdzielnia pamięci (podobnie jak w vfork w C), ale to nie zawsze działa tak jak powinno (nazewnictwo zmiennych ma znaczenie!).

jarekr000000

To na kiego grzyba jest CALL BY REFERENCE ?

Koziołek

@jarekr000000: to jest właśnie vfork pozwalających na współdzielenie pamięci, ale nadal jest tu osobny proces.

vpiotr

Preprocesor COBOLa (różne preprocessingi copybooków) to chyba jedyny komercyjny kawałek kodu który napisałem w C... Ale powiedz to dzisiejszej młodzieży.

jarekr000000
2019-07-16 11:37

Miałem pogadanke z Adamem Bienem ( w zasadzie to on robił ze mną wywiad).

http://airhacks.fm/
(#45)

Zamiast dyskutowac o konkretach to głównie wspominaliśmy jak to dawniej było.

Nie mogłem utrzymać powagi, a od momentu jak Adam powiedział, że zabrania konstruktorów to już całkiem.

To ciekawe, bo kiedyś był moim idolem - nawet wspominam tą część jak kiedyś na 33rd degree (obecnie devoxx polska) miał ładny występ przeciwko over engineeringowi w java ee (który zresztą się dość przydał w firmie).

Adam Bien jest straszliwym Java EE (jakarta ee) advocatem, ale wywiady na airhacks są całkiem ciekawe (Gosling na przykład fajnie wyszedł).

czysteskarpety

(Gosling na przykład fajnie wyszedł) on nie tylko fajnie wychodzi, np. w "First Man" jako Neil Armstrong bardzo dobrze zagrał i nie jest to już tylko ładny chłopaczek co fajnie wychodzi, ogólnie niezły aktor się zrobił.

catom

Oj, z tymi konstruktorami i @PostConstruct to poleciał - "I do exactly the same code, but we don't have constructors and in rare cases we have a PostConstruct which is really rare, because the most developers don't even know that it exists".
Taa... Wystarczy wpisać w google jedno z najczęstszych pytań zadawanych przez moich początkujących wsółpracowników, gdy pracowałem przy JEE - ejb initilize bean - bum... w prawie każdym wyniku wyszukiwania mamy @PostConstruct.

Szkoda, bo kiedyś też ogromnie na nim się wzorowałem, ale widzę, że trochę za mocno próbuje bronić JEE (naginając trochę rzeczywiśtość) i to jeszcze z dziwnymi konceptami ("I forbid using constructors" o.0)...

Shalom

@PostConstruct? A name i haven't heard in a long time moim zdaniem trochę rak, bo jak chcesz potem cośtam sobie przetestować jednostkowo bez stawiania całego kontekstu aplikacji to nagle się okazuje, że się nie da bo kostruktorów nie ma, same field injection i jeszcze jakieś prywatne postconstructy ;]

LukeJL

dlaczego zakazuje konstruktory? Z Goslingiem Pamiętnik oglądałem i to o jeżdżeniu samochodem(Drive chyba). Oba były spoko.

WeiXiao

@dużo @wypiliście @?

vpiotr

No jak gadaliście o C64 to rzeczywiście mało okazji do używania konstruktorów :)

jarekr000000
2019-06-20 22:20

Od paru dni mogę się pocieszyć threadripperem.
Wrażenia:
chyba pierwszy raz po 25 latach znów mam komputer wielozadaniowy

  • w tle odpalona kompilacja ety (eta-lang) na VMware,
  • ściągają się nowe pakiety,
  • coś się dociąga na steamie,
  • odpalony vivecraft,
  • sterownik do katany soundblaster działa (to nie żart - najbardziej cpu-żerny program, konkuruje jedynie ze sterownikiem klawiatury od logitecha),
  • no i chrome (!!!)

I nic się nie tnie.

Ze złych rzeczy to okazuje się, że multum buildów jest jednak mocno max- kilkuwątkowych (2-3) (ghc, eta (stack, cabal) ) - próbuję to tunować z jakimiś mizernymi efektami, ale nie mam tego przyspieszenia w buildach na jakie liczyłem :-(
Build haskella GHC mnie tu najbardziej rozczarował :-( (co jak co, ale haskell, który się dobrze nie skaluje to kpina).

W ogóle część softu nie rozumie koncepcji więcej niż 10 rdzeni. Takim softem jest np. Windows 10. To nie żart :-)

Musiałem w czasie instalacji uciąć liczbę rdzeni, żeby sie zainstalował (he, he ) i dopiero po wgraniu poprawek działa dobrze na normalnej ilości. (konkretnie to generyczny driver wifi ma potwierdzony problem). Chyba tez windows linux subsystem ma jakieś z tym problemy (ale jeszcze nie jestem pewny czy problem nie jest czymś innym spowodowany lub łatwo naprawialny). W każdym razie dziwnie nie działa mi część rzeczy na Windows Linux (ale to dla mnie trrzeciorzędna sprawa, więc na razie olewam). Linux subsytem używam głównie do benchmarków (żeby nie być pod VM).

Nie mam jakiś topowych gierek AAA tylko VRowe (Fallout 4 VR, Skyrim VR) - no i tam jest git - komputer się nudzi - jest rtx2080 i mogę jeszcze mieć w tle sporo odpalonego (np. dwie VMki do deva).
To mi pasuje bardzo, bo mogę w czasie "pracy" spokojnie wyskoczyć do Whiterun na zakupy i jak wracam to własnie się kończy instalować nowa wersja ety na testy.

Btw. sprzęt poskładałem w domowym zakresie - fajna zabawa (ale nie pierwszy raz). Chłodzenie powietrzne - średnio to wygląda - ale komputera nie słychać ani trochę (be Quiet! obudowa + wentylatorek (taka sobie jeśli chodzi o ergonomię składania - Cooler mastery dużo fajniejsze (i tańsze), ale w Szwajcarii za długo musiałbym czekać na dostawę).

Nie wiem dlaczego kupiłem RAM bez ledów - od razu widać, że wolny.

PC Master Race

Aryman1983

Już z opisu widać, że pożałowałeś kasy na dobrą ledową obudowę :-) Nie wiem jak Ci to w ogóle ruszyło bez Spotkań trzeciego stopnia na froncie :-)

jarekr000000

@Aryman1983 Tak naprawdę to mam szklana szybkę i w cholerę ledów RGB do podłączenia..... ale mi się nie chciało. Co pod biurkiem świeci tego sercu nie żal.

Aryman1983

No to czekam na upgrade ;-) tam przy karcie to mam nadzieję, że nie widni ucięta liczba 80 bo wtedy będę mocno zazdrosny tuląc mój leciwy rx470 :-(

jarekr000000

Ponieważ nie mam już ledów od alienware to muszę sobie koniecznie podpiąc Soundblastera (Katana - Aurora) pod Intellij, żeby ładnie migały na czerwono jak build nie przejdzie - znalazłem już API - więc PRIO 1.

Aryman1983

@jarekr000000: haha o tym nie pomyślałem :-) Jest pomysł na plugin do intellij i pochodnych :-)

jarekr000000

@Aryman1983: zwykły MSI RTX2080, jak na moje potrzeby to wyszło, że przestrzelony.

jarekr000000

@Aryman1983: w ramach zabaw domowych mam takie projekty: https://github.com/jarekratajski/mood-server (sterowanie "diodami") po http - łatwo do czegokolwiek (IDE) podpiąc i https://github.com/jarekratajski/alienBridge (binding java -> diodki alieware). Poza tym jescze pluginy do intellij i gradle (ale tych nawet nie chciało mi się wrzucać na githuba - bo mogę je napisać kciukiem na telefonie). (nie sądze, żeby w obecnym stanie kodu było to używalne, ale idea (working proof of concept) jest.

mr_jaro

@jarekr000000: a instalowałeś od razu najnowszy build win10? Bo zaskok troche, że nie chodził, tym bardziej, że jest to wersja z optymalizacjami pod ryzeny.

jarekr000000

@mr_jaro: instalowałem z płytki, ale wszyscy co dotarli do bluescreena pisal żeby po prostu obciąć rdzenie.

mr_jaro

@jarekr000000: no to może dlatego, nie wiadomo którą tam wersje na płytce miałeś. Najlepiej zawsze pobrać świeżą.

TurkucPodjadek

@jarekr000000: a z jakiego procka migrowałeś, że odczuwasz tę liczbę rdzeni teraz?

jarekr000000

Nowiutka ze sklepu. Krakowsk suchą w lodówce mam starszą, a nadal da się jeść.

jarekr000000

@TurkucPodjadek: poprzednie 5 komputrów to same i7 (4/8) różnych generacji. W tym najnowsza, ale w g**no mini booku. I miałem też xeony (skylake) w desktopie ( akurat spoko, ale imo drogo jak na efekt).

Spine

Co Ty takiego wyrabiasz, że tyle kompilujesz :P ?

vpiotr

Sprawdziłem WSL vs Docker, wyniki bardzo mało się różnią. A docker jednak raczej lżejszy dla kompa. W tej całej historii wspomniałeś o CPU i GPU ale przy kompilacji to warto wspomnieć raczej o SSD i RAID, ew. PCIe, NVMe.

TurkucPodjadek

@vpiotr: on ma 64 GB ram, threadrippera i RTX2080... raczej jest pewne, że dysku 5400 rpm tam nie włożył, strzelam w ciemno, że ma tam dysk na m.2

vpiotr

@TurkucPodjadek: jak chcesz strzelać to jedź na wojnę, ja pytam o fakty. :-P

jarekr000000

@vpiotr: wstawiłem normalnego samsunga 970 (m.2) nic specjalnego, ale dobrze mi się te samsungi w innych sprzetach sprawują. (IMO lepiej od alienwarowych wynalazków - toshiba -> niby ma byc szybko, a przy dużych zrzutach danych zacina się cały komp).

czysteskarpety

Threadripper. W sumie widziałem testy to te same demony co zawsze u AMD, czyli bardzo wysokie zużycie energii i chwilami słaba optymalizacja.

jarekr000000

@czysteskarpety: wstawiłem 1.2kilowata. Ale tyle nie ciągnie - na razie.

mr_jaro

@czysteskarpety: zacznijmy od tego, że to ryzeny to załkiem inna rodzina i architektura niż buldożery, tak na prawde amd się cofnęło do phenoma i zbudowało nową architekturę na tamtej bazie. Zużycie energii jest mniejsze niż na intelach. Optymalizacja w tym przypadku zależy od oprogramowania.

czysteskarpety

No nie wiem, idle 70-100w, stres 300w, oc 400w bez gpu.

mr_jaro

To porównaj sobie z odpowiednikiem intela o ile znajdziesz 16/32

czysteskarpety

Raczej nie muszę szukać, bo intel bez tylu rdzeni jest mniej więcej na równo, a czasami i stary 7700k wygrywa, więc bez spiny, amd jeszcze musi trochę popracować, można powiedzieć: dobry początek.

mr_jaro

@czysteskarpety: intel wygrywa... w aplikacjach jednowątkowych i grach

TomRZ

Z aparycji, to powinieneś być rockmanem i cieszyć się nową gitarą, a nie jakims procesorem. Sex, drugs & rock'n'roll a nie jakieś wątki, multitaskingi i inne diabelstwa.

Hispano-Suiza

Niech ktoś zdejmie tę pornografię z głównej, bo aż nie wiem co mam ze sobą zrobić widząc taki config :| Zazdro.

jarekr000000

@TomRZ: gitarki też są. Zostałem zmuszony kilka akordów ogarnąc, bo ludzie mieli dysosnans poznawczy.

mr_jaro

@Hispano-Suiza: miód na moje uszy :D do tej pory byłem osamotniony w twierdzeniu, że nie każdemu do programowania wystarczą 4 rdzenie :D

jarekr000000

@mr_jaro: to ty też Scala i Haskell ?

Hispano-Suiza

@mr_jaro: nie mam pojęcia po co byłby mi taki zestaw ale wiem, że chciałbym mocno :D

mr_jaro

@jarekr000000: nie, ale angular potrafił zabić moją poprzednią i5 :D

mr_jaro

@jarekr000000: zresztą mi nawet wystarczy to, że na 4 rdzeniach testy laravela wykonywały się 15min, a na ryzen 2700x 8/16 2,5min

jarekr000000

@mr_jaro: to u mnie na razie nie widze spektakularnych efektów. Jest szybciej, ale po prostu na nowym kompie z dobrym chłodzeniem i 4 rdzeniami IMO byłoby podobnie. Najabardziej zależało mi na 4 kanałach RAM, za jakiś czas zobacze co to daje w testach. (Na razie mam czas zapierdalania).

czysteskarpety

@mr_jaro: przecież niedawno twierdziłeś, że na laravelu to ty już 3 lata nic nie robiłeś :D

mr_jaro

@czysteskarpety: O.o na wp nic nie robiłem i to pisałem

czysteskarpety

Nie no pamiętam dobrze, pisałem, że bootstrap jest w larwie, a ty, że w larwie to ty już od dawna nic nie piszesz, tylko angularze

mr_jaro

@czysteskarpety: no to mnie źle zrozumiałeś, chodziło o frontend statyczny w laravarze. To fakt, bardzo, bardzo rzadko coś muszę robić. W larvie w firmach dla których robię robione jest api, więc bootstrap w larvie jest nietykany przeze mnie.

komuher

Ooof 16 rdzeni u mnie zamiast tak poteznego procka rtx 2080ti xD

revcorey

dej mnie parę rdzeni mam hory kompóter

vpiotr

Jakby kogoś zazdrość zżerała to na Titan Computers dostanie coś na miarę Haskella.Np. Titan X650 - już od $12.3k (32c/64GB).

jarekr000000
2019-06-17 19:09

@Trollsactional

Zawsze rozważałem to jako tylko teoretyczną możliwość. Ale programiści potrafią zaskoczyć jednak.
Dziś tropiłem heisenbuga produkcyjnego i wyszło, że coś nie bardzo jest z transakcjami (jak zwykle). Są, ale jakoś dziwnie się obiekty propagują. Flush nie tam gdzie trzeba, cuda, dziwy i nulle.
Po paru godzinach rozpaczy, dostrzegłem coś zabawnego- @Transactional był domowej roboty :-) ( z innego pakietu, ale weź to człowieku wypatrz podczas przeglądania setek linii kodu).
Implementacja nie była nawet jakaś specjalnie dziwna, ale się pokłóciła z zastaną magią JBossa 7. (nie chciało mi się wnikać czemu - zastępuję chwilowo zwykłym @Transactional i
patrzę co się dzieje). Widze klasykę : ponieważ połączona logika (a właściwie jej brak) JPA (Detached, Managed entities) + Transactional z Requires_NEW + ISOLATION z DB jest nie do ogarnięcia bez pół litra wódki,to programiści postanowili sami sobie na siłę wymuszać transakcje - dla pewności... walczyli z cudami pare miesięcy i w końcu tak poszło na produkcję. Długo działało, aż ktoś zmienił wersję JBOSSa.

Dodatkowe wyjasnienia dla miłośników magii:
Requires_New jest potrzebne czasem, bo np. w wypadku błędu nie chcemy żeby się wszystko rollbackowało (bo chcemy mieć np. w bazie info dlaczego płatności się nie powiodły).

Jak ktoś myśli, że to jest prosta sprawa to taki mały test:

W zewnętrzej transakcji (powiązanej z PersistenceContext) tworzymy sobie entity XParent i je jakoś ustamiamy.
A potem w zagnieżdżonej (Requires_new) dopisujemy kilka dzieci do XParent (List<XKid> bachory ). Potem jeszcze zmieniamy jakieś inne pola w XParent.
Kończymy metodę zagnieżdżoną (commitem) i teraz:

  • czy w encji XParant nadal mamy dzieci? (przed commitem zewnętrznej transakcji),
  • co ze zmianami?
  • co jeśli XParent na nowo podładujemy (refresh vs findById, vs namedQuery)?,
  • i gdzie to i w jakiej specyfikacji jest opisane... (w jakich trzech (albo czterech) :-) ?)

Najgorsze, że ta aplikacja całkiem dużo kasy przerabia, więc trzeba będzie to Java EE wywalić, szkoda by było mieć kogoś na sumieniu. (Na razie tylko terminale płatnicze czasem nie daja się aktywować).
Dlaczego ktoś w całkiem poważnej aplikacji użył bazy SQL (Oracle) ? - to kolejna dziwna sprawa, ale tego już raczej nie będę zmieniać. SQL może i jest upierdliwy, ale w odróżnieniu od Java EE działa również na trzeźwo.

czysteskarpety

Po paru godzinach rozpaczy serio musisz się taplać w takim guanie? to ja już wole ściemnianie w php, zrobię swoje i nad jeziorko.

jarekr000000

@czysteskarpety: w PHP też się taplałem. Nawet gorsze IMO.

czysteskarpety

W php robisz w większości swoje projekty, więc jak masz syf to na własne życzenie.

jarekr000000

@czysteskarpety: zastanawiałeś się czemu tak jest ? Btw. mam też swoje projekty. Ale te nie są tak dobrze płatne. Więc czasem kombinuję - poza tym - ja to nawet lubię :-)

czysteskarpety

Swoje w sensie, że sam możesz dobrać stack i nie musisz odwalać takiej chałtury, tym bardziej jako mid/senior.

vpiotr

Nie ma nic bardziej deprymującego niż analiza czegoś co powinno działać samo a... nie działa.

jarekr000000

@vpiotr: mnie super ciekawi rozkminianie takich reczy. Ale łamie, że mimo, że siedze w tym 20 lat to jak stawiam sobie takie pytania jak w poście ... to nie wiem. Zwykle po przewertowaniu kilku pdfów, literku czystej, w końcu kumam i rozumiem ... tak przez 2-3 godziny. Robię dwa commity i wszystko śmiga... do następnego razu, gdzie znomu zadaję sobie pytanie jak to właściwie miało być. Pojeb..EE. Najczęściej to w zasadzie debuguje JBossa albo WebSphere lub Springa aż znajdę kluczowego IFa i wtedy wiem czego szukać w specyfikacji/dokumentacji. (W zasadzie 100% programistów zadowala się koncepcją:- będę losowo przestawiał i dowalał adnotacje aż zadziała, ale mnie takie podejście cholernie męczy mentalnie).

vpiotr

będę losowo przestawiał i dowalał adnotacje aż zadziała - to programowanie mutacyjne, w odróżnieniu od testowania mutacyjnego i programowania genetycznego ma wydźwięk z gruntu negatywny.

jarekr000000

@vpiotr jak robię przeglądy kodu i pytam dlaczego tu są takie adnotacje... to jedna z najczęstsdszych odpowiedzi. Chociaż najczęstsza to: - no nie wiem co to robi, ale skopiowałem z kawałka kodu u kolegi, który działał.

szarotka

a mówisz o adnotacjach Transactional, czy jeszcze inne jakieś brużdżące, stawiane na chybił trafił?

jarekr000000

@szarotka: poza Transactioanal. @Singleton, @PostConstruct. @NoRepositoryBean itd. - można się nieźle ubawić przy czytaniu.

yarel

no nie wiem co to robi, ale skopiowałem z kawałka kodu u kolegi, który działał kojarzy mi się nieodparcie z różnymi strategiami ujeżdżania martwego konia -> "Zawsze jeździliśmy w ten sposób na tym koniu."

superdurszlak

nie wiem co to robi, ale skopiowałem z kawałka kodu u kolegi, który działał Najlepiej. A jeszcze lepiej, jak ktoś popełni kod, który działa, każdy zaczyna sobie bez głębszej refleksji "pożyczać" jakieś urywki do innych miejsc - w końcu WET > długo nic > DRY - a na koniec oryginalny autor znika lub dopada go demencja, albo sam się już gubi w powstającym grajdołku i wtedy nikt już nie wie, jak i dlaczego właściwie to coś działa :D

jarekr000000
2019-06-14 00:54

Mój laptop do 4programmers (lenovo c930) zaliczył pólpadakę. Padł LCD. Dało się pracować tylko na podłączonym monitorze - co oczywiście wwypadku akurat tego lapka bez sensu.
Lekcje:

  1. Support lenovo wstępnie faktycznie mało przyjazny - dramatu nie ma, ale raczej zniechęcający (stronki, informacje kontakt - mocno nieczytelne, poukrywane).
  2. Jak już dowiedziałem się gdzie wysłać laptopa - to okazało się, że mam po drodze i wstąpiłem. Po drugiej stronie w punkcie odbioru od razu zastałem kompetentnego człowieka, bo rozmawiał ze mną po polsku (w Zurichu to było :-) ).
  3. Mój laptop będzie robiony we Wrocławiu (gdzieś pod Wrocławiem) - czyli jest szansa, że dobrze.
  4. No i okazało się, że Lenovo i Medion to ta sama firma.

To ostatnie jest dobre, bo chodząc do tutejszej (szwajcarskiej) biedronki - czyli Aldi Suisse - zawsze patrzyłem z góry na bieda sprzęt od Mediona...., kto by taki syf kupił. Wyszło, że ja tylko pod logiem Lenovo i za dwa razy wyzszą cenę (no, ale prestiż....).

furious programming

@jarekr000000: ale padła matryca czy tylko jej podświetlenie? W razie czego zawsze możesz używać z latarką. :P

jarekr000000

Chyba całość. Ale nie odróżnie nawet. Poza tym na gwarancji, więc latarka wchodzi w gre tylko jeśli to lenovo przyśle karła do trzymania tej latarki.

cerrato

A tak całkowicie poważnie w temacie Mediona - czy koleś powiedział, że w środku to jest to samo? Bo fakt, że Medion należy do grupy Lenovo nie oznacza, że mówimy o takiej samej jakości i wnętrznościach, prawda?

czysteskarpety

Lenovo i matryce to temat rzeka, lepiej jest przy biznesówkach, które mają oddzielną linię serwisową, nawet 5 lat gwary, 3 lata na baterie, On-Site itp.

Schadoow

@jarekr000000: Dokładnie w hemmersbach'u na Bielanach Wrocławskich :P. A tam robią ludzie, którym znudziła się praca w amazonie po drugiej stronie ulicy ;p.

somedev

Czy chodzi o komputery Medion czy całość elektroniki? Mam od Medionu radio gniazdkowe internetowe na WiFi z przyłączanym na magnes głośnikiem BT z baterią i bardzo sobie chwalę.

jarekr000000

Tak naprawde bardzo nie wiem co gdzie siedzi, ale patrząc po tym, że przejęcie mediona było dawno, serwis ten sam to zapewme mają z lenovo dużo wspólnego. Ogólnie to długo miałem thinkpady, ale lonovo polubiłem po kupnie gamingowego y50. A jeszcze bardziej polubiłem lenovo jak kupiłem gamingowego della.

cerrato

Napisz coś o dellu, bo nie kojarzę tego wątku, a może być ciekawy

jarekr000000

@cerrato: po prostu alienware. Całkiem duża cena, wcale nie specjalne osiągi i kilka dziwacznych problemów - bluetooth, który można uznać, że nie działa. Problemy ze sleep i wybudzaniem. Raz na jakiś czas tryb - zjedziemy baterię w 5 minut (choć to niby niemożliwe). Jedyny plus to taki, że już dwa razy przeżył ostre zalanie piwem ... nie wiem jak - ale zdobył moje uznanie, za to że nadal działa.

cerrato

Może serwuj jednak dzieciakom inne napoje do gier :p

Hispano-Suiza

@czysteskarpety: lepiej jest przy biznesówkach, które mają oddzielną linię serwisową, nawet 5 lat gwary, 3 lata na baterie, On-Site itp. najlepiej to jest bez gwarancji gdy kupujesz nową za 2 stówki, i wymieniasz w 5 minut :P

orchowskia

@jarekr000000: medion ma akurat całkiem dużo dobrego sprzętu, albo miał kilka lat temu. Wiem co mówię bo dostawałem tego tony do recenzowania. Część rzeczy mają na podzespołach lenovo, a część philips (szczególnie sprzęt audio).

czysteskarpety

@jarekr000000 po prostu wymagasz od gamingówki to co od biznesówki, to są lapki do pykania, kto tam patrzy na baterię, touchpad, czy nawet matrycę ;) @Hispano-Suiza baterię nie zawsze kupisz osobno oryginał co wytrzyma tysiąc cykli ;)

jarekr000000

@czysteskarpety: miałem i nadal mam w pracy różne biznesówki. Fakt, że Thnikpady najmniej obsysały, a drugie w kolejności Delle. Jakkolwiek obsysały. Touchpady to kupy (szczególnie w thinkpadach) . Sprzęt nie daje rady - wydajnościowo, a kosztuje dużo. Jedyny plus to fakt, że biznesówki mają dużo portów. Ale najgorsze, że wstyd się z tym pokazać gdziekolwiek.

czysteskarpety

@jarekr000000: Tutaj bardziej mam na myśli serię workstation P, tam masz xeony 6/12, do 128GB ram, 3xSSD 6TB, raid, szyfrowanie itp.

furious programming

@jarekr000000: pytam, bo już dwa razy padała mi matryca w Lenovo (w starszych modelach od Twojego) i dwa razy była taka sama sytuacja – matryca działała prawidłowo, ale świetlówkę szlag trafiał. Problem diagnozowałem właśnie latarką z telefonu (bo mocna) – wystarczyło przyświecić w ekran i było widać obraz.

Ale i tak nie dało się w ten sposób niczego sensownego zrobić, co najwyżej zapisać dane oraz pozamykać programy i system. Tyle że miałem (i nadal mam) dołączony monitor do laptopa, więc mogłem robić różne rzeczy, gdy czekałem na przylot nowej matrycy (latpopy bez gwarancji, naprawiałem we własnym zakresie).

Jakiś miesiąc temu po raz trzeci świrowała mi świetlówka – świeciła przez chwilę i gasła. Ale że mam na stanie drugą sztukę tego samego modelu, to naprawa potrwała godzinkę i mogłem wrócić do swoich zajęć. ;)