Demonical Monk
2013-10-06 13:08

Niedawno zasłyszany suchar. Jedzie webmaster pociągiem i cały czas słyszy:

--- END SUCHAR ---

#webdesigner #suchar

AlfaLeporis

@Demonical Monk: Ten dowcip leży już tutaj ponad dwa dni i za każdym razem jak wejdę na 4programmers to mi się coś w żołądku już dzieje :) Kiedy to to poleci w dół?

Demonical Monk

@AlfaLeporis: Jak zbierzesz ekipę do plusowania innych rzeczy w zakładce "Mikroblog", działaj ;)

Artur Protasewicz
2013-10-06 09:51

Słownik "Bułka z masłem": A4, Word, Times New Roman 12, marginesy normalne

Krótkie uzupełnienie do artykułu:
Regułowy System ekspercki / Rule-driven expert system

"Na początku było słowo," (Jan 1,1) – tego nigdy nie zrozumiem. Ludzki mózg, to nieodgadniona tajemnica, a mózg programisty jest po prostu arcydziełem (pytanie czyim: Boga, czy ewolucji, czy tajemniczego sprawcy z kosmosu?) Oto, jak trudno jest powiedzieć słowami to, co mózg programisty rozumie po jednym spojrzeniu na kod. Sam nie wiem, ile jest moich błędów w słowniku "Bułka z masłem" poniżej. Tym bardziej nie rozumiem, że "Na początku było słowo,"(?)

/*Zwróć fragment wniosku w formie słownej znajdujący się w pewnej kolumnie i pewnym wierszu tabeli z regułami wnioskującymi.*/
String Conclusions(int Column, int Row) 
      return (String)grdConclusions[Column, Row].Value;

/*Jeśli operator o numerze Index znajdujący się w kolumnie RelacjaAB (inaczej w kolumnie operatora pomiędzy faktem A i faktem B) jest ORAZ ("I", "and"), do części ścieżki lub bieżącej ścieżki uzasadnienia "dlaczego?" dla relacji Fakt A ORAZ Fakt B dodaj tekst złożony z nazwy faktu A i nazwy faktu B połączonych iloczynem logicznym, ujęty w nawiasy okrągłe.*/
if (Conclusions(abRelationCol, ConclusionIndex) == "and")
      sFact += "(" + FactA + " and " + FactB + ")";

/*Jeżeli rezultat warunku logicznego jest true (prawda), do ścieżki uzasadnienia "dlaczego?" dodaj zdanie twierdzące, że wniosek zachodzi (is true = jest prawdą) i zmniejsz wcięcie oraz zwróć potwierdzenie prawdziwości wniosku.*/
if (result) { WhyPath("conclusion " + Conclusion + " is true"); Nested--; return true; }

/*Czy zachodzi fakt A dla wniosku o indeksie Index dla kandydata Candidate na męża dla Alicji?*/
IsFactA(int ConclusionIndex, String Candidate)

/*Jeżeli i-ty fakt w kolumnie "Obiekt" tabeli fakty to imię kandydata na męża dla Alicji i kandydat ma cechę nazwaną tekstem FaktA, do ścieżki uzasadnienia "dlaczego?" dodaj zdanie twierdzące, że FaktA zachodzi (is true = jest prawdą) dla danego kandydata i zmniejsz wcięcie oraz zwróć potwierdzenie tego, że zachodzi faktA dla kandydata Candidate.*/
if (Facts(objectCol, iFact) == Candidate && Facts(attributeCol, iFact) == FactA) {
      WhyPath("fact " + FactA + " is true for " + Candidate); Nested--; return true;
}

/*Dla każdej osoby spośród kandydatów na męża dla Alicji, jeżeli równocześnie prawdziwy jest wniosek mówiący, że Alicja może poślubić daną osobę i fałszywy jest wniosek mówiący, że Alicja nie może poślubić danej osoby, do zbioru osób, które może poślubić Alicja dodaj kandydata.*/
foreach (String Person in Persons) { 
      if (Is("can marry", Person) && !Is("cannot marry", Person)) result.Add(Person);
}
aurel

@Artur Protasewicz: Ale czym właściwie jest "słowo"? Za wiki: "zespół dźwięków mowy ludzkiej będący symbolicznym oznaczeniem jakiegoś pojęcia". Znaczy to IMHO mniej więcej tyle, że stworzenie nie było przypadkowe, lecz właśnie na początku było słowo (znaczenie, pojęcie, wyraz woli Boga), a dopiero na jego podstawie - stworzenie. Nie na odwrót ;)
A to wszystko tylko pod warunkiem, że przejdziemy ponad interpretację oczywistą - słowo jest synonimem Jezusa ;) (co wynika z dalszej części tekstu: "Słowo stało się ciałem i zamieszkało wśród nas. Oglądaliśmy Jego chwałę, którą jako Jednonarodzony, pełen łaski i prawdy, ma od Ojca.")

Artur Protasewicz
2013-10-05 18:33

"Co się nie da, jak się da?" – eksperyment z dwujęzycznym artykułem polsko-angielskim…

Eksperyment...?

Raczej upór i motywacja.

Czym jest upór? Myślę, że reakcją obronną. Nie możesz sobie poradzić albo coś bardzo chcesz mieć i próbujesz mniej lub bardziej emocjonalnie postawić na swoim. Ale osiągnięcie celu okazuje coraz trudniejsze, im bliżej tego celu jesteś, bo już zaczyna brakować sił.

I wtedy z pomocą może przyjść motywacja. Ktoś ci poda rękę. Nie zawsze czyjaś motywacja jest zamierzona w stosunku do ciebie. To raczej tylko kwestia twojej interpretacji zamierzeń tej drugiej osoby. W Polsce tak za bardzo nie ma dobrego obyczaju powiedzenia "dobra robota, dzięki". Spotkałem to w jednej zachodniej korporacji i zresztą paru moich znajomych też, mówiąc ogólnie na Zachodzie.

Miałem opory z używaniem dwujęzycznych tekstów w artykułach na 4programmers.net, bo tu wszystko, oprócz kodu programów, a nawet czasem kod jest po polsku. Bałem się, że naruszę typowo polski charakter portalu. Ale z drugiej strony pojawiała się pokusa, bo kiedyś miałem własną stronę i tak była prowadzona, co mi się bardzo podobało. Można by jednak rzec trochę szerzej. Przecież cały świat programistów porozumiewa się po angielsku. Ucząc się C# przez 2 lata, szybko zdałem sobie sprawę, że trzeba wpisywać do Google frazy po angielsku i tam wszystko można znaleźć – lepsze lub gorsze, ale zawsze to jakieś tropy, które dość dobrze naprowadziły mnie na ten nowy dla mnie język programowania (i tak jestem pozytywnie spaczony przez Delphi).

Ale tu ciekawostka – kto pisze po angielsku? Spodziewałbyś się, że pisze dużo Hindusów, Arabów i Rosjan? A tak jest. Ani Hindusi nie piszą po hindusku, ani Arabowie po arabsku, ku mojemu zaskoczeniu nawet Rosjanie nie piszą cyrylicą.

Podobno na przemian z Rosjanami dzielimy pierwsze miejsce w konkursach programistycznych. Tylko różnica jest taka, że oni już są na Zachodzie, a my jakoś chyba nie – 4programmers.net, przynajmniej od tej strony, którą najczęściej oglądam, chyba nie. Cóż to za duch narodowy i duma? Albo wsiadamy do pociągu "świat", albo zostajemy w epoce Mieszka na zawsze.

To mnie chyba zmotywowało i podjąłem próbę stworzenia porządnego artykułu w dwóch językach.

Co tu dużo mówić o eksperymencie – wszystko już powiedziałem, tylko nie wymieniłem dwóch osób – "współautorów we wspólnocie 4programmers.net", choć ja raczej akorporacyjną i indywidualną istotą jestem.

@madmike i @Marooned

@madmike w ogóle podjął dialog i reagował na moje wpisy na forum, gdzie raczej nie spotykają mnie pozytywne oceny. @Marooned właściwie dał jeden pozytywny komentarz do mojego artykułu.

O czym tu mówić – o problemach z formatowaniem tekstu wewnątrz komórek i nagłówków tabel? Widziałem to w tabeli dzielącej stronę pionowo na połowy, ale nie zawsze, kiedy mi to było potrzebne występował idealny podział na dwie dokładnie połowy szerokości strony. Rozwiązaniem okazało się dzielnie tabeli na wiersze (tabeli), bo paragrafy i break'i się nie sprawdziły.

Najpierw trzeba włożyć dużo pracy. Trzeba mieć w miarę sensowną treść artykułu, potem ją przetłumaczyć w jakimś Wordzie, czy innym edytorze tekstów pozwalającym na tworzenie tabel, skoro już się ma taką koncepcję podziału strony. Później będzie już tyle zamieszania podczas edycji na 4programmers.net, że bez gotowych tłumaczeń nie ma co zaczynać. Przydaje się:

http://translate.google.com/

i tłumaczenie w dwie strony: i z polskiego na angielski, ale i odwrotnie – z angielskiego, który jest po przetłumaczeniu, z powrotem na polski. Czasem trzeba przestawić kolejność wyrazów, bo szyk zdania się temu translatorowi często myli. Translator lubi długie zdania - wtedy lepiej orientuje się w kontekście. Czasem jest lepsze słowo od użytego przez translator i warto go użyć. Jak już kompletnie nie wiesz, co słowo znaczy, wpisz tylko jedno słowo do przetłumaczenia, a zobaczysz wiele znaczeń, bo angielski jest pełen wieloznacznych i zastępczych słów.

I niech ci, którzy spróbują pisać teksty dwujęzyczne nie przejmują się pomyłkami w słówkach, bo to i tak jest zrozumiałe. Tak pokazuje moje doświadczenie w setkach rozmów telefonicznych, które swego czasu prowadziłem. Wytwarza się jakiś taki slang dwóch osób na zasadzie "wiem, że mówisz nieprawidłowo, ale wystarczy, że to rozumiem i mogę użyć twojego słówka, żebyś i ty mnie zrozumiał". Ale chyba większość z nas trochę bardziej doświadczonych nie miała innej opcji i trzeba było czytać teksty angielskie, które w informatyce są stosunkowo proste.

Dziękuję wam @madmike i @Marooned, że mnie zmotywowaliście, nawet, jeśli w ogóle nie mieliście tego na celu. Powiało nową siłą na mój upór, który często się łamał, choć przyznam sobie, że lubię żmudne eksperymenty, ale kto z nas ich tu nie robi. Jak nie jesteś uparty, to daj sobie spokój z zawodem programisty.

Czy mi się chce grzebać w znaczniki html, czy jakieś inne? Jestem za leniwy. Podobno programista musi być wystarczająco leniwy, żeby szukać najprostszych rozwiązań – z lenistwa właśnie.

Jeśli o wynik mojego eksperymentu z artykułem dwujęzycznym chodzi, to na jakiś czas jest jakiś model, na którym inni mogą się wzorować – dla mnie wystarczający i zadowalający. A może ktoś wymyśli coś ciekawszego! Może powstanie szablon, o którym pisał na forum @madmike, przeznaczony do takich celów. Nie będę tu pokazywał, jak się robi tabelkę w Coyote.

Spójrz pod adres:

Regułowy System ekspercki / Rule-driven expert system

i jak ci ten wzorzec pasuje, to spokojnie sobie poradzisz.

Miłych poszukiwań (byle w ogóle były).

Artur Protasewicz

@Demonical Monk: Myślę, że kartka A4 Word'a Times New Roman 12 byłaby sensownym ograniczeniem. Trudno przewidzieć, jaki kto ma styl.

aurel

@Artur Protasewicz: Podziwiam za chęci i ilość włożonej pracy. Widać, że artykuł jest dopracowany, że przyłożyłeś się krótko mówiąc :)
Co prawda nie do końca przemawia do mnie układ tabelkowy. Kolumny - OK, ale tabelka...? A może to uraz front-endowca ;) Nie przepadam po prostu za wykorzystaniem tabelek do układania tekstu.

AlfaLeporis
2013-10-05 17:53

Biblioteka Prism, dzień pierwszy - po lekkiej terapii szokowej zaczynam dostrzegać potencjał tego narzędzia. Pierwsze co próbuję zrobić: zintegrować NLoga z tym cudem. Implementacja ILoggerFacase napisana, CreateLogger przeładowany, wszystko działa. Szkoda tylko że nie mogę wykorzystać potencjału funkcji NLoga GetCurrentClassLogger...

EDIT: Dzień pierwszy? I chyba ostatni... wracam do MVVM Light.

Adam Boduch
2013-10-03 23:54

Na forum poprawiona została skalowanie obrazków wklejonych w treść posta jako załącznik. Jeżeli jest zbyt duży w stosunku do twojej rozdzielczości, zostanie zmniejszony. Co prawda, mieliśmy to już wcześniej, lecz jak się okazało nie działało to za dobrze w związku z tym, że przeglądarka cachowała sobie te obrazy.

#coyote