Napisane przez: futrzak | 12 sierpnia 2015

O nie dzialajacym programie i dzialajacym kranie…

How lovely.
Otoz bowiem dzis przy probie wykonania jednego skryptu win8.1 powitaly mnie cudnym komunikatem:
The application has failed to start because its side-by-side configuration is incorrect.

A poniewaz byl to program napisany w .net, ktorego nigdy wczesniej nie uzywalam, wiec nie wiem o co chodzi, nie?
Porady z oficjalnych stron Microsoftu mozna sobie w buty wsadzic, bo jest to ogolny error, ktory wyskakuje z okazji tysiaca i pincuset najrozniejszych problemow.
Juz po 15 minutach doszlam do tego, ze po prostu musze sobie cala .net framework zainstalowac i skonfigurowac. Ze komputer nie moj, to nie wiedzialam nawet, czy owa framework mam, czy nie, a po takim komunikacie oczywiscie rzucilam sie najpierw sprawdzac plik konfiguracyjny (ktory wygladal ok i nic w nim nie znalazlam nie takiego co trzeba) i rzucac miechem.

I tak jest codzien. Moze dla zwyklych userow, ktorzy nic poza surfowaniem po sieci nie robia, ten system jest ok. Ale dla kogos, kto robi jakikolwiek development, testy czy inna niestandardowa dzialanosc, to jest po prostu zmora. Wiekszosc errorow jest kompletnie beuzyteczna, a jesli jakis program sie wywali, zawiesi czy cierpi na inne bole, to albo czlowieku posiadasz wiedze tajemna (zdobywana w pocie ciezkich doswiadczen I walk przez innych uzytkownikow) albo mozesz komputer ze zlosci wywalic za okno. Ot uroki proprietary operating system..

Z rzeczy ciekawszych, bo obyczajowych, na ktorych kazdy sie zna.
W pracy obserwuje przyzwyczajenia Urugwajczykow.
W kranie w kuchni nie ma cieplej wody. „Ale po co?” – tak mi odpowiedziano, jak zapytalam.
Do lunchu nikt nie pija napojow gazowanych ani zadnych wynalazkow – nalewaja sobie do szklanek przefiltrowana wode z kranu. Jesli lunch odbywa sie w knajpie i sklada z goracego posilku, pija wino i wode.
W ciagu dnia kazdy pije mate – kazdy ma swoj termos i matere, ktora albo ze soba nosi non-stop, albo ma drugi komplecik, ktory zostawia w pracy w kuchni.

Advertisements

Responses

  1. A są ludzie, którzy piją napoje gazowane przy posiłkach? Oj, oni chyba w życiu nie rozmawiali ze specjalistą od pożywienia.

  2. Są tacy ludzie, jest ich bardzo dużo w USA. Są tacy, którzy bez pół litra koli nie mogą przetrawić „psiego żarcia”. Dlatego tak rosną w szerokość.

  3. andsolbr:
    gdy pracowalam w USA to w wiekszosci firm byly tzw. „soda fountains” czyli taka maszyna do nalewania sobie napojow jak w McD czy innych fast foodach. Podlaczalo sie toto do kranu, ladowalo worek z syropem oraz butle z CO2 i korzystalo. Osoby pijace wode mozna bylo policzyc na palcach jednej reki. Tam, gdzie nie bylo soda fountains byly zawsze zamawiane na koszt firmy zgrzewki z podstawowym zestawem.
    Nawet w Argentynie znacznie wiecej ludzi pilo te paskudztwa – moda niestety dotarla i tam :-(

  4. No nie wiem, może wszyscy napotkani w życiu specjaliści od żywienia (wśród nich paru lekarzy) to fanatycy ale zawsze słyszałem, że nie jest polecane picie czegokolwiek w trakcie jedzenia. Przed albo w jakiś czas po — ok.

    Domyślam się (choć nigdy nie wypytywałem, bo nie piję wina przy posiłkach), że lampka wina nie jest objęta anatemą, bo nie chodzi o stan płynny a o ilość płynu. A także chyba sosy nie wliczają się do płynów :)

  5. andsolbr:
    a wyjasniali dlaczego? Bo z punktu widzenia fizjologii ukladu trawiennego czlowieka nie ma to zbyt wielkiego sensu:
    There’s no concern that water will dilute the digestive juices or interfere with digestion. In fact, drinking water during or after a meal actually aids digestion.

    Water and other liquids help break down food so that your body can absorb the nutrients. Water also softens stool, which helps prevent constipation.
    (http://www.mayoclinic.org/healthy-lifestyle/nutrition-and-healthy-eating/expert-answers/digestion/faq-20058348)

    Owszem, wypicie jakichs strasznych ilosci albo bardzo zimnej wody zaraz po bardzo tlustym posilku moze miec nieprzyjemne konsekwencje, ale reszta to chyba powszechne przekonania nie poparte zadnym konkretnym research. Now kazdym razie ja nic nie znalazlam o szkodliwosci picia plynow w trakcie posilkow….

  6. A bo ja wiem? Pierwsza wycieczka do gugla powtarza to, co od lat słyszałem: http://www.tuasaude.com/beber-durante-as-refeicoes-faz-mal/

    Tu nieco bardziej od strony chemii żołądka, ale te same konkluzje: http://www.sitemedico.com.br/site/qualidade-de-vida/alimentacaosaudavel/7049-evite-liquidos-durante-as-refeicoes .

    Nie przestrzegają przed zamoczeniem dzioba, ale przed nadmiarem płynu. A kto uważa, że 295 ml rozpuszczalnika Coca-Cola to nie nadmiar, to już jego sprawa.

  7. Po golonce najlepsze dla mnie jest pół litra piwa. Nie mam po tym żadnych sensacji żołądkowych. A niechbym tylko popróbował amerykańskich wynalazków! Roztrój żołądka pewny.

  8. andsolbr:
    no tak, w anglojezycznym Internecie tez pelno takich wyjasnien.
    Ale jak szukalam konkretnych badan na ten temat (potwierdzajacych badz obalajacych zalecenia picia przed, w trakcie czy po) to jedyne, czego sie doszukalam, bylo owo badanie:
    http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2859815/

    W pubmedzie mozna sie doszukac kilku podobnych, ktore prowadza do wlasciwie takich samych wnioskow a mianowicie ze konsumpcja wody przed lub w trakcie posilku zmniejsza energy intake i co za tym idzie przyczynia sie do weight loss (aczkolwiek ta ostatnia teza wcale juz nie jest taka pewna).

    Nie ma natomiast nic na temat badan pokazujacych zaleznosc miedzy iloscia wypijanej wody w trakcie posilku i negatywnym tego wplywem na proces trawienia.
    No chyba ze zle szukalam i takie badania istnieja, to z checia sie doinfirmuje.

    Nie, zebym sie czepiala czy cos – po prostu to zalecenie wydaje sie jednym z wielu, ktore zostaly oparte na common wisdom, a nie poparte konkretnymi badaniami, co jednak nie przeszkadza lekarzom w gloszeniu ich jako jedynie slusznych zalecen…

    Natomiast to, ze Coca-Cola i pdobne sa szkodliwe do konsumpcji, to odrebna kwestia…

  9. Picie płynów „pomaga” zjeść więcej – już sam ten argument wystarcza moim zdaniem

  10. Ale kaman, o ile dobrze pamiętam, obecnie .NET jest instalowany domyślnie na każdym Windowsie, więc masz, a który to zależy głównie od użytkownika, czy instaluje poprawki, czy nie. I np. nasi deweloperzy dają sobie radę, a sporo naszego „korbiznesu” opędzamy dotnetem.

    I to nie jest tak, że soft zamknięty to wali niezrozumiałymi błędami, a ten opensource jest cacy. Właśnie na gwałt wdrażam pewien produkt, rozwijany jako OS i pakowany potem w komercję (tak naprawdę płacisz za support, branding, trochę skryptów, teoretycznie lepszy dobór wersji komponentów i dostęp do repozytoriów vendora). Przykład pierwszy z brzegu: utworzyłem swoje repozytorium i omyłkowo dodaję doń moduł, który już w nim jest. Aplikacja zwraca błąd. Ale nie „ogarnij się, ten moduł już mam”. Wali „HTTP/500 internal server error”, a jak chcesz głębiej, to jest pod spodem fafnaście logów, z których każdy jest zawalony stacktrace’ami javy, ruby’ego i innych, gadatliwych narzędzi (aplikacja jest nowomodna, składa się z fafnastu podsystemów poklejonych ze sobą różnego rodzaju API, kolejkami, bazami — dwa silniki bazodanowe w jednym produkcie — i skryptami). Ale to nic, bo po takim proteście zostaje jeszcze task, który trzeba ubić i to też trzeba wiedzieć jak. O tym, że rzecz jest „stable, ready for production”, a trochę nie bardzo idzie wykroić uprawnienia ludziom tak, żeby sobie wzajemnie nie zaglądali do zasobów i ich nie psuli, warto wspominać?

  11. nocman:
    jak widac, niekoniecznie. w kazdym razie na moim kompie pracowym nie bylo.

    Co do reszty. HTTP 500 internal server error to jest error pochodzacy od serwera web (ktory tez moze byc proprietary). Jesli to Apache to zagladasz do jego error.log

    Jesli w tych error logach serwera web masz burdel I nie wiadomo co, to sorry – ale co ma OS do tego??? Nalezy winic tych, co pisali aplikacje skladajaca sie z fysnastu podsystemow I nie zadbali o sensownie raportowanie errorow I problemow.

    Co do ubijania taskow – no na unixie ubicie procesu zajmuje 10 sec. Wykonujesz z shella polecenie
    ps uax | grep ToCoCiTrzeba
    a potem kill -9 numerekproesu (albo kill z innymi opcjami. jesli stosowne)

    Ze na windows to problem – alez wlasnie o tym pisalam wyzej, ze to do bani OS do debugowania?

    Z permissions na unixie tez nie ma wiekszych jakichs problemow (chyba ze developer idiota I nie wie jak ich uzywac) – wiec nie bardzo wiem, o co ci chodzi…

  12. O, a skoro o tym mowa, ktoś gdzieś kiedyś wpuścił mi do głowy (to nie byłaś chyba Ty, co? nie pamiętam rozmów z Tobą o wybijaniu procesów), że opcja „-9” przy „kill” może mieć jakieś niepożądane konsekwencje, że nadaje to preferencje i natychmiastowość temu poleceniu, ale czemuś tam lepiej trzymać się nieco niższego poziomu. Wiesz coś o tym czy to takie unixowe głupie gadanie?

    Problemem tu jest fakt, że trzeba znać nazwę procesu, bo kiedyś uruchomiłem Open Office, który jakoś się zapętlił, ale kliknięciem i nie wiedziałem, że to się nazywa soffice :) Ale jak trzeba to się człowiek domyśli.

  13. Hm…. przez tyle lat uzywalam polecenia kill I jakos uhm nie slyszalam.
    Tak, wykonuje sie natychmiast, pod warunkiem ze jest sie wlascicielem procesu (znaczy ma uprawnienia odpowiednie).

    Niekoniecznie zawsze trzeba znac nazwe procesu, sa inne command flags I zawsze warto zrobic najpierw
    man kill
    bo rozne wersje unixa moga miec rozne opcje pod tymi samymi numerkami.

    No I na wszelki wypadek nie nalezy byc zalogowanym jako root :) (chyba, ze sie bardzo dobrze wie, co sie robi).

    Ale zeby cos poza tym, to nie wiem.

  14. Jak mawiają chłopcy od postgresa, nigdy nie rób kill -9 postmasterowi…

    Zajmuję się tymi rzeczami już parę lat i trochę wiem, gdzie szukać bobów. W przypadku tej aplikacji error.log można od razu olać (np. Script timed out before returning headers: webservices.wsgi i koniec) i przejść do głównego logu aplikacji, a potem ewentualnie oglądać inne (o ile są w ogóle tworzone, bo to nie jest takie oczywiste). Niestety główny log jest zafajdany stacktrace’ami ruby’ego, które czytelne są dla developerów.

    kill -9 ma się nijak do wewnętrznych tasków aplikacji, trzeba się wklikać do narzędzia zarządzającego przepływami i tam ubić padnięty flow tak żeby nie zaszkodzić. A wystarczyło zrobić w aplikacji warunek, który zwróci czytelny błąd użytkownikowi. Przed próbą wykonania akcji, nie po. Sanity checks FTW.

    Z uprawnieniami też nie jest tak prosto, bo to uprawnienia w aplikacji, a nie w systemie plików. W aplikacji jest około 50 zasobów, każdy zasób ma od jednego do kilkunastu uprawnień i na tych uprawnieniach zakłada się filtry po różnych kryteriach, żeby z tego wszystkiego stworzyć rolę. Dopiero tę rolę przydziela się użytkownikowi. I byłoby fajnie, gdyby nie to, że dla niektórych zasobów nie da się stworzyć filtra wg potrzebnego kryterium.

    Dodatkowo niektóre komponenty mają cokolwiek dyskusyjną architekturę (np. repozytorium to katalog, w którym może leżeć nawet do kilkudziesięciu tysięcy plików, a jego publikacja to stworzenie w innym katalogu następnych kilkudziesięciu tysięcy symlinków do plików źródłowych. Na filesystemie utworzonym ze standardowymi parametrami i-node’y znikają w tempie zastraszającym. Powiedziałbym, że rozwiązanie proste, ale co najmniej… suboptymalne.

    Aplikację tę sprzedaje lokomotywa ruchu Open Source, Red Hat.

    W Windows jest kupa kultu cargo, ale też są logi i całkiem niezły system zbierania liczników (z całą powagą będę uważał, że perfmon, mimo że z epoki kamienia łupanego, rozwala sar-y, procfs-y, sysfs-y i inne jedną prostą sprawą: wszystkie dostępne w systemie liczniki są w jednym miejscu, można od razu uruchomić zbieranie danych i wizualizację). Problem w tym, że w linuksowych[1] aplikacjach też jest co raz więcej cargo, dokumentacja niejednokrotnie leży i w praktyce nie ma znaczenia, czy to dotnet, czy ruby, czy python, bez mocnej współpracy z deweloperami/supportem nie rozbierzesz. Nowa religia: devops.

    Wracając jeszcze do kultu cargo: swego czasu robiłem dwa porównywalne szkolenia Microsoftu i Red Hata: Performance monitorVital Signs z Premiera i RH442 (Enterprise Performance Tuning) i to microsoftowe materiały lepiej tłumaczą wnętrzności systemu operacyjnego niż redhatowe.

    [1] — o uniksowych nie będę wspominał, mam jeden produkt IBM-a, który wyrósł z AIX-a. Póki działa jest fajnie. Jak się coś spieprzy, to niech go piekło pochłonie.


Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

Kategorie

%d bloggers like this: