Afera Newag

AS
  • Rejestracja:prawie 4 lata
  • Ostatnio:około 21 godzin
  • Postów:344
2

https://www.onet.pl/informacje/onetwiadomosci/awarie-pociagow-newagu-hakerzy-ujawniaja-kto-stoi-za-celowymi-usterkami/g4hymmg,79cfc278

Przyznać się, kto z was robił ręczne porównywanie dat:

Z Zielonej Góry zadzwonili do nas dokładnie 21 listopada 2022 r. Tego dnia ich pociąg nie ruszył, bo nie można było podnieść pantografów, czyli nie miały zasilania. Po analizie okazało się, że w oprogramowaniu wpisano, że pociąg miał stanąć rok wcześniej, czyli 21 listopada 2021 r., kiedy to miał przewidziany serwis. Wtedy był właśnie na serwisie i dlatego nikt niczego nie podejrzewał. Jednak informatyk, który wpisał tę datę, przedobrzył. Wpisał regułę, że pociąg ma stawać w dacie równej lub większej niż 21 listopada 2021 r. Stawał więc również w grudniu 2021 r. i również stawałby w kolejnych latach od 21 listopada do końca miesiąca i od 21 grudnia do końca miesiąca. Ruszałby dopiero od stycznia, bo przecież to miesiąc niższy niż listopad — wskazuje Michał Kowalczyk.

Dlatego tak ważne jest Code Review!

4w0rX4t4X
Śmierdzi mi tu polityką.
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 minut
  • Postów:3539
0

Podejrzewam, że to nie code review zawiodło i "informatyk" nie przedobrzył, a analityk biznesowy podał ciekawe wymagania.

Ciekawe jak to się skończy dla owego programisty. Z jednej strony - nie można się tłumaczyć "wykonywałem rozkazy", ale na pewno to jest jakaś okoliczność łagodząca.

Z drugiej strony - gdybyście mieli taką okazję, tj.:

  • wziąć na siebie taką winę,
  • jak afera ucichnie to zainkasować stosowne odszkodowanie i zadośćuczynienie

to czy wzięlibyście to na siebie?

DE
Z konia spadłeś? To wina niedouczonego analityka który wpisał wymagania w niezrozumiałej formie. Programista jest od wykonywania polecan opisanych w tasku. Jak napisał głąb że pociąg ma stawać o tej dacie to programista to wykonał. Programiści jeszcze mają brać na siebie obowiązki analityka? Może wreszcie ta sytuacja pokaze jak ważne w projekcie sa dobrze opisane wymagania. Jak znajdą w tasku że był opis z którego wynika ze tak miał zaprogramwac to ch0ja mu zrobią. Prędzej analityk który wpisał głupotę beknie
W0
Ty przeczytałeś, co napisałem?
ZI
  • Rejestracja:ponad 8 lat
  • Ostatnio:dzień
  • Postów:228
1

Mam nadzieje na wiezienie od programisty w gore. To pod teroryzm mozna podciagnac...

A politycznie mysle ze fajna obitka opozycji na "afere" wiatrakowa i material na kolejna komisje

KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

Heh, my w czwartek wydaliśmy niedziałający produkt bo bazodanowiec zmienił procedurę składowaną bez trybu, bez review, bez testów bez czegokolwiek. Ciekawie wyglądał by swiat jakby za to wsadzali. Czy wszyscy Hindusii by się zmieścili w więzieniach ?
Czy pracowalibyśmy bezpośrednio z wieńzień? Kto zaopiekowałby się moimi psami?


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
ZI
Wydac niedzialajacy produkt, a umyślnie powodować "awarie" infrastruktury krytycznej to chyba inna skala
K5
Narzekałeś na kamsoft to masz. Mógłbyś tam siedzieć do końca życia na ciepłej posadce. W kamsofcie codziennie nic nie działa i jakoś nikt nie idzie siedzieć a apteki i tak płacą kasę za licencję i 'ghost support' :p
KamilAdam
Mialem dosc krzyku dziewczyn z supportu
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:3 miesiące
  • Postów:2787
2

Dobrze że nie robię w usługach publicznych.

AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 20 godzin
  • Postów:3561
3
wartek01 napisał(a):

to czy wzięlibyście to na siebie?

Ja bym grał na świadka koronnego.

Ale tak, pora na pierwsze więzienia bez zawiasów za kod. Bez tego nie bedziemy jako branża profesjonalni (zupełnie serio, to nie sarkazm). Wsadza się za zwalone mosty, błędy medyczne, oszustwa finansowe, wkład w katastrofy, tylko u nas "software as is"


Bo C to najlepszy język, każdy uczeń ci to powie
4w0rX4t4X
Bo mosty projektują doświadczeni inżynierowie, lekarze pokończyli długie studia i praktyki a to niestety programista "is as is" więc nie ma się co dziwić, że software jest taki sam.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0

Wydac niedzialajacy produkt, a umyślnie powodować "awarie" infrastruktury krytycznej to chyba inna skala

A czy tamten od pociągów umyślnie spowodował awarię? Czy nieumyślnie bo mu się wbił zły znak? >= zamiast ==?


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
G8
  • Rejestracja:około 3 lata
  • Ostatnio:około rok
  • Postów:2000
2

Na razie widać jak próbują się bronić. Typowe odwracanie kota ogonem, czyli twierdzenie że pociągi stanęły bo ingerowano w oprogramowanie, gdy tymczasem było odwrotnie ingerowano w oprogramowanie bo pociągi stanęły i trzeba było sprawdzić czemu.

Sprawa jest ewidentna, znaleziono logikę która tym sterowała. Według mnie jest możliwe że programista beknie za to, na zasadzie kozła ofiarnego. Ale bardziej prawdopodobne że przykleją to do jakiegoś dyrektora/kierownika niższego szczebla.

Ogólnie to nie wiem jakim trzeba być idiotą żeby coś takiego robić, chyba ktoś nie zdawał sobie sprawy że całe oprogramowanie można zrewersować i wszystko sprawdzić i że to się nie ukryje.

edytowany 1x, ostatnio: gajusz800
Wibowit
Ogólnie to nie wiem jakim trzeba być idiotą żeby coś takiego robić, chyba ktoś nie zdawał sobie sprawy że całe oprogramowanie można zrewersować i wszystko sprawdzić i że to się nie ukryje. - pewnie hakowanie pociągów się tak rzadko zdarza, że myśleli, że ujdzie im to na sucho
G8
No tak, bo jak urządzenie jest zamontowane w pociągu to nie można zgrać i przeanalizować firmware. Znając życie, pewnie nie było tam żadnych zabezpieczeń ani wymyślnego szyfrowania, a kod był w javie .net albo Pythonie
Wibowit
a kod był w javie .net albo Pythonie - eee, raczej nie. https://zaufanatrzeciastrona.pl/post/o-trzech-takich-co-zhakowali-prawdziwy-pociag-a-nawet-30-pociagow/ Komputer oparty jest o architekturę TriCore, jak wiele podobnych rozwiązań na przykład w branży samochodowej. Niestety brakuje dobrych dezasemblerów, więc badacze poprawiają nieco Ghidrę i w końcu mogą spojrzeć w kod. Co prawda brakuje stringów, ale prace powoli idą do przodu.
G8
No ok, tak czy inaczej dla dobrego specjalisty od reverse engineering nie jest to jakiś duży problem. Kwestia motywacji i czasu. Nie wiem tylko czy można takich ludzi nazywać hakerami, ale cóż
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 minut
  • Postów:3539
0

@AnyKtokolwiek: też jestem zdania, że programista powinien móc powiedzieć "nie napiszę tego bo mnie za to zamkną". Z drugiej strony jeśli kasa byłaby odpowiednio dobra- to na serio dwa razy bym się zastanowił czy jednak to nie była tylko i wyłącznie moja inicjatywa ;) Zwłaszcza, gdybym był na UoP.

@KamilAdam: z kodu ewidentnie widać, że to nie jest pomyłka. Chyba, że programista:

  • najpierw wpisał te współrzędne przez przypadek
  • potem pomylił się osiem razy przy wpisywaniu owego warunku
  • i w końcu w środku tego if'a przez przypadek ustawił wyłączanie pociągu

Również uważam, że nie da się tego wytłumaczyć "ja nie wiedziałem co to zrobi".

edytowany 2x, ostatnio: wartek01
RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 14 godzin
1

Cóż sprawą się nikt nie interesował bo plecy. Przypominam że pan premier morawiecki wielkrotnie zakłąd wizytował mówił w samych superlatywach to i CBA nie ma prawa się mieszać.


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 14 godzin
0

Wszystkie polskie służby już od maja wiedziały, że firma Newag mogła celowo wywoływać usterki w swoich pociągach, by przejmować intratne zlecenia na ich naprawę. Taką informację potwierdza w rozmowie z Onetem Janusz Cieszyński, były pełnomocnik rządu ds. cyberbezpieczeństwa i minister cyfryzacji. Zdaniem polityka w tej sprawie trwają już śledztwa.

Dziwne na wiatraki wymyślał lipne tabelki od razu na to czasu na tt nie znalazł?


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0

O czym wy w ogóle tu debatujecie?! Odpowiedzialność ponosi producent pociągów. Dopiero gdyby producent pociągów poniósł stratę, to wewnętrznie może przeprowadzić śledztwo/audyt i sprawdzić kto jest winny. Gdyby okazało się, że winny jest programista, który wprowadził zmiany w kodzie w wyniku nienależytej staranności, to może odpowiadać finansowo do wysokości 3-miesięcznej pensji. Jeżeli programista wprowadził zmiany w kodzie umyślnie, to może odpowiadać do pełnej wysokości szkody. Z kolei jeżeli dostał takie wymagania od product ownera, to wtedy winny jest product owner i tutaj również decydujące jest czy działał umyślnie czy nieumyślnie.

W przypadku programisty na b2b o wysokości odpowiedzialności finansowej decyduje umowa. Jeżeli nie ma żadnych bezpieczników to może ponosić pełną odpowiedzialność za szkodę, nawet jeżeli działał nieumyślnie np. popełnił błąd w kodzie.

W tym konkretnym przypadku w kodzie były następujące warunki:

  • uniemożliwienie uruchomienia pociągu, jeżeli stał przez 10 dni w jednym z centrów serwisowych firmy Newag, sprowadzane po koordynatach gps
  • uniemożliwienie uruchomienia pociągu, jeżeli wymieniono któryś z komponentów, sprawdzane po nr seryjnym
  • uniemożliwienie uruchomienia pociągu, jeżeli pokonał 1 milion kilometrów
  • informowania o awarii sprężarki w dniach 21-30 listopada i 21-31 grudnia każdego roku począwszy od 2021.
  • logika umożliwiająca zdjęcie powyższych blokad przez serwisanta lub maszynistę, po wprowadzeniu odpowiedniej sekwencji uderzeń klawiszy w kabinie pociągu.

Dodatkowo w pociągach znaleziono urządzenie, które za pomocą sieci GSM informowało producenta o wystąpieniu którejś z blokad.

Nawet jeżeli programista w którymś z tych warunków popełnił błąd np. tak jak sugeruje "Trzecia strona", że pociąg miał stanąć tylko w dniach kiedy miał przegląd, zaplanowany na koniec listopada 2021 rok, a nie co roku w listopadzie i grudniu, to nic nie świadczy o tym, że była to zmiana wykonana z inicjatywy programisty.

Wszystkie zmiany wyglądają na celowo wprowadzone przez producenta, potwierdza to również urządzenie które wysyła informacje o blokadach. Nie ma tutaj mowy o błędzie programistów, ale jest to celowe działanie producenta.

Ja ze swojej strony miałem przyjemność uczestniczyć w projekcie dla producenta autobusów. Projekt polegał na zbieraniu danych o sposobie eksploatacji maszyn, ustawieniach i wskazaniach komponentów, w celu przewidywania awarii przed jej wystąpieniem oraz wyłączania gwarancji producenta, jeżeli sprzęt był eksploatowany niezgodnie z zaleceniami.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
edytowany 1x, ostatnio: Haskell
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 minut
  • Postów:3539
0
Haskell napisał(a):

O czym wy w ogóle tu debatujecie?! Odpowiedzialność ponosi producent pociągów. Dopiero gdyby producent pociągów poniósł stratę, to wewnętrznie może przeprowadzić śledztwo/audyt i sprawdzić kto jest winny. Gdyby okazało się, że winny jest programista, który wprowadził zmiany w kodzie w wyniku nienależytej staranności, to może odpowiadać finansowo do wysokości 3-miesięcznej pensji. Jeżeli programista wprowadził zmiany w kodzie umyślnie, to może odpowiadać do pełnej wysokości szkody. Z kolei jeżeli dostał takie wymagania od product ownera, to wtedy winny jest product owner i tutaj również decydujące jest czy działał umyślnie czy nieumyślnie.

To nie ma znaczenia przy procesie karnym. Jest całkiem sporo procesów karnych w których wykonujący polecenia szefa dostał karę porównywalną z szefem. Jedyne, co mogłoby uratować programistę to brak świadomości, co robi - a to trudno byloby wykazać.

W przypadku procesu cywilnego sprawa jest pomiędzy dwiema firmami, więc osoby fizyczne nawet nie są stronami.

Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0
wartek01 napisał(a):

To nie ma znaczenia przy procesie karnym. Jest całkiem sporo procesów karnych w których wykonujący polecenia szefa dostał karę porównywalną z szefem. Jedyne, co mogłoby uratować programistę to brak świadomości, co robi - a to trudno byloby wykazać.

W przypadku procesu cywilnego sprawa jest pomiędzy dwiema firmami, więc osoby fizyczne nawet nie są stronami.

Jaki artykuł KK masz na myśli w kontekście pociągu, który nie chce ruszyć z miejsca? Raczej ciężko mi sobie wyobrazić, żeby ten kod mógł np. spowodować katastrofę kolejową.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
W0
Np. art 287, i pewnie art. 269, pewnie sporo innych by się znalazło.
RE
  • Rejestracja:ponad 18 lat
  • Ostatnio:około 14 godzin
0
Haskell napisał(a):
wartek01 napisał(a):

To nie ma znaczenia przy procesie karnym. Jest całkiem sporo procesów karnych w których wykonujący polecenia szefa dostał karę porównywalną z szefem. Jedyne, co mogłoby uratować programistę to brak świadomości, co robi - a to trudno byloby wykazać.

W przypadku procesu cywilnego sprawa jest pomiędzy dwiema firmami, więc osoby fizyczne nawet nie są stronami.

Jaki artykuł KK masz na myśli w kontekście pociągu, który nie chce ruszyć z miejsca? Raczej ciężko mi sobie wyobrazić, żeby ten kod mógł np. spowodować katastrofę kolejową.

z tego co możesz sprawdzić w pierwszych wynikach w google odnośnie back door i innych tego typu sprawek to art. 267 § 3 k.k.. istnieje możliwość podpięcia pod to.


We are the 4p. Existence, as you know it, is over. We will add your biological and technological distinctiveness to our own. Resistance is futile
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0

@wartek01

Np. art 287, i pewnie art. 269, pewnie sporo innych by się znalazło.

IMHO bardzo naciągane. W jaki sposób chcieliby udowodnić, że to było wprowadzone w celu osiągnięcia korzyści majątkowej? Nie rozumiem też kwestii uszkodzenia danych, tutaj raczej nie może o tym być mowy, ponieważ to zaplanowane działanie.

Newag może bardzo łatwo wybronić się, że zaprogramowane blokady miały na celu ochronę życia ludzi lub urządzeń.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:9 minut
  • Postów:3539
0

@Haskell: może przytoczmy art. 287

§ 1. Kto, w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie, gromadzenie lub przekazywanie danych informatycznych lub zmienia, usuwa albo wprowadza nowy zapis danych informatycznych,
podlega karze pozbawienia wolności od 3 miesięcy do lat 5.

Po redukcji kawałków według mnie nieistotnych w tej sprawie ten zapis wygląda tak:

Kto w celu wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie danych informatycznych
podlega karze pozbawienia wolności od 3 miesięcy do lat 5.

Czy zmiany w systemie:

  • miały na celu wyrządzenie innej osobie (tutaj- osobie prawnej) szkody? Moim zdaniem tak, celowe wprowadzanie kawałka kodu, który ma zaszkodzić konkurencji jak najbardziej się kwalifikuje.
  • to, że ta wrzutka w kodzie to wpływanie na automatyczne przetwarzanie danych to jest sprawa jasna.

Pozostaje kwestia upoważnienia - w takim wypadku upoważnienie nie może pochodzić z firmy, a z zewnątrz - w tym wypadku od kupującego pociągi lub np. rządu.

Przy czym w przypadku programisty - nie musi być tak, że to on jest głównym oskarżonym. Może to być współudział.

Newag może bardzo łatwo wybronić się, że zaprogramowane blokady miały na celu ochronę życia ludzi lub urządzeń.

Trudno mi w to uwierzyć. Prędzej Newag będzie szedł w stronę "pomyliliśmy się" lub "to było oprogramowanie testowe" - jeśli sąd uzna, że nie da rady się tego podważyć to pozostanie jedynie kc.

edytowany 2x, ostatnio: wartek01
Uśpiony wiosenny but
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 8 godzin
  • Postów:443
0
Haskell napisał(a):

@wartek01

Np. art 287, i pewnie art. 269, pewnie sporo innych by się znalazło.

IMHO bardzo naciągane. W jaki sposób chcieliby udowodnić, że to było wprowadzone w celu osiągnięcia korzyści majątkowej? Nie rozumiem też kwestii uszkodzenia danych, tutaj raczej nie może o tym być mowy, ponieważ to zaplanowane działanie.

Newag może bardzo łatwo wybronić się, że zaprogramowane blokady miały na celu ochronę życia ludzi lub urządzeń.

Żyjemy w Polsce, tu można nie wsadzić chłopa ściganego listem gończym mordującego rodzinę z dziećmi na Autostradzie, a wsadzić kogoś bez dowodów do paki za anonima ;)

W0
Cała rozmowa o prawie ma charakter dosyć hipotetyczny. Z artykułu wynika, że ani UOKiK, ani UTK nie kwapią się do pociągnięcia tematu- więc pewnie skończy się na pozwie cywilnym. Niemniej podstawa prawna jest.
neves
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Kraków
  • Postów:1114
0

Koalicja (prawie) rządząca zwęszył trop, także zapowiada się że będziemy rodzime volkswagen gate :D

Lewica zawiadamia UOKiK w sprawie działań firmy Newag

https://stooq.pl/n/?f=1585970


edytowany 1x, ostatnio: neves
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 10 godzin
  • Postów:3457
1

Według tego artykułu służby wiedziały od maja :
https://www.onet.pl/informacje/onetkrakow/skandal-na-kolei-byly-minister-cyfryzacji-potwierdza-doniesienia-onetu/ts1bsxt,79cfc278
Smutne jest to, że nie ma od tamtego czasu żadnego działania. Powinniśmy się dowiedzieć nie z konferencji a z działań odpowiednich służb i urzędów.
Biorąc pod uwagę, że w tym przegranym przetargu różnica to 3000000 to w innych pewnie też musieli (czyli my musieliśmy) przepłacać.
Najgorsza jest krótkowzroczność. Przecież teraz poza PL Newag będzie miał problemy ze sprzedażą.

AS
Potwierdza Janusz Cieszyński. Ten, co kupił respiratory. CBA zignorowało sprawę pewnie dlatego, że było zajęte kampanią wyborczą.
FR
  • Rejestracja:około 11 lat
  • Ostatnio:około 11 godzin
  • Postów:925
3

Czemu mówicie, że to developer? Mało to takich "kierowników w dziale rozwoju oprogramowania" (uwielbiam nazwę stanowiska) co pisali kiedyś jakiś kod, teraz zarządzają zespołami i jakieś tam kilka linijek kodu w pocie czoła mogliby naprodukować?

Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
1

Newag stanowczo zdementował informacje o celowym wywoływaniu awarii.

Dodatkowo dodał następujące wyjaśnienia:

  • Pojazdy będące w posiadaniu Kolei Dolnośląskich czy Kolei Mazowieckich były poza gwarancją. Pojazdy Kolei Dolnośląskich zostały dostarczone w 2017 r. Od tego czasu przez 6 lat pozostawała pod kontrolą innych niż NEWAG podmiotów
  • Już w 2022 roku Spółka stwierdziła ingerencję w systemy sterowania pojazdami, dokonaną przez podmioty trzecie, o czym poinformowała w publicznym oświadczeniu prasowym. O powyższym fakcie Spółka powiadomiła również odpowiednie organy i służby, w tym Agencję Bezpieczeństwa Wewnętrznego, Prezesa Urzędu Transportu Kolejowego, Prokuraturę oraz Służbę Kontrwywiadu Wojskowego, jak również zwróciła uwagę użytkownikom Pojazdów na konieczność sprawowania odpowiedniego nadzoru nad eksploatacją i utrzymaniem pojazdów oraz ryzyko związane z dokonywaniem ingerencji w system sterowania pojazdami kolejowymi przez podmiot nieuprawniony.
  • Kategorycznie zaprzeczamy i negujemy wgrywanie przez NEWAG jakiejkolwiek funkcjonalności w systemach sterowania pojazdów ograniczającej lub uniemożliwiającej prawidłową eksploatację pojazdów jak również ograniczających krąg podmiotów mogących świadczyć usługi utrzymaniowe lub naprawcze.
  • Opisywane przez dziennikarzy portalu onet.pl pojazdy, których zhakowanie zlecił Podmiot Konkurencyjny, były przedmiotem drobiazgowych odbiorów przed sprzedażą, od dawna nie są w posiadaniu Spółki, oprogramowanie systemu sterowania jest zainstalowane na fizycznym nośniku zamontowanym w danym Pojeździe i ma charakter „offline” (brak połączenia z siecią), przez co faktycznie niemożliwa jest jakakolwiek ingerencja zdalna ze strony NEWAG.

Jest też odpowiedź @Gynvael Coldwind: https://gynvael.coldwind.pl/?lang=pl&id=777


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
G8
Jak cię złapią za rękę to mów że to nie twoja ręka, nigdy się nie przyznawaj
loza_prowizoryczna
  • Rejestracja:ponad 2 lata
  • Ostatnio:5 dni
  • Postów:1592
1

Deweloper działał pod natchnieniem - no bo jak inaczej mógł przewidzieć że w 2023 na pewno nastąpi zmiana warty w preferowanym dostawcy taboru kolejowego i obstawi właściwego konia?

Za takie coś należy odpowiednia nagroda (i doświadczenie w negocjacjach).


Przetrzyma wszystko
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 22 godziny
  • Postów:3866
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 8 godzin
  • Postów:3169
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:dzień
  • Lokalizacja:Poznań
  • Postów:8759
3


Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:1659
0

zastanawiam się czy przypuszczenie że może to być wina czegoś dziwnego w oprogramowaniu nie pochodziła od jakiegoś pracownika.Przypuszczenie na tyle silne że została wynajęta ta grupa ekspertów Janusze, uważajcie jak wnerwicie kogoś kto wie co odwalacie na niekorzyść waszych klientów


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)