atarionline.pl Action! na Rosetta Code - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1:
       
      CommentAuthoramarok
    • CommentTime8 Nov 2021
     
    Rosetta Code (http://www.rosettacode.org/wiki/Rosetta_Code) to wyjątkowa strona internetowa zawierająca rozwiązania różnorodnych problemów programistycznych w większości znanych językach programowania.

    Jakiś czas temu zorientowałem się, że również znajdują się tam 3 zadania rozwiązane w języku Action! dla 8-bitowego Atari.

    Świetna sprawa, że Action! zaistniał na Rosetta Code, jednak liczba rozwiązań nie jest zbyt porywająca. Zwłaszcza jak porównamy sobie to z innymi językami 8-bitowymi (stan na dzień 8 listopada 2021):
    - Locomotive Basic (71 zadań),
    - Sinclair ZX81 BASIC (76 zadań),
    - Commodore BASIC (127 zadania),
    - ZX Spectrum Basic (215 zadań)

    Doszedłem do wniosku, że dobrze byłoby zwiększyć liczbę zadań na Rosetta Code dla języka Action!. Poza tym od zawsze (ponad 30-tu lat) chciałem nauczyć się programować w tym języku.

    Od paru miesięcy w wolnej chwili staram się zgłębiać tajniki Action! a przy okazji rozwiązywać sobie na boczku kolejne zadania ze strony Rosetta Code.
    Przyznam szczerze, że troszkę się już tego uzbierało i chyba warto zacząć umieszczać je sukcesywnie w bazie danych Rosetta Code.

    Zanim to jednak nastąpi, chciałbym poprosić Was o przejrzenie moich kodów źródłowych, bo nie chciałbym opublikować czegoś co budzi wątpliwości.

    Wszystkie przygotowane przeze mnie kody źródłowe umieściłem na moim gitlabie: ->link<-
    Liczę bardzo na Wasze wsparcie za co z góry dziękuję.

    Poniżej umieszczam również pożyteczne linki:
    Lista zadań: ->link<- oraz ->link<-
    Ranking języków programowania pod względem liczby rozwiązanych zadań: ->link<-
    • 2: CommentAuthortebe
    • CommentTime9 Nov 2021
     
    ogrom włożonej pracy robi wrażenie, gratuluję
    • 3: CommentAuthorilmenit
    • CommentTime9 Nov 2021
     
    szczęka na stole (w sumie to na kolanach, bo piszę z laptopa) - napisałeś ponad 500 programów w Action!?
  1.  
    O ja pierdziu, szacun!
    • 5: CommentAuthorgorgh
    • CommentTime9 Nov 2021
     
    o ja cie nie pierdziu, 500 sztuk kodu
    • 6: CommentAuthor0xF
    • CommentTime9 Nov 2021
     
    LGTM
    • 7:
       
      CommentAuthorKaz
    • CommentTime9 Nov 2021
     
    Niesamowity człowiek! Gratsy :)
    • 8:
       
      CommentAuthorGeorge
    • CommentTime9 Nov 2021
     
    Super pomysł, żeby uczyć się Action! i rozwiązywać te zadanka.

    Ja w zeszłym roku również siadłem do Action! i chciałbym wrócić do tej nauki.
    Z chęcią bym Ci pomógł, już nawet sforkowałem Twój kod, ale to jest dużo pracy, żeby przejrzeć 500 programów, tym bardziej, że Tobie to parę miesięcy zajęło.
    Jakoś trzeba do tego dobrze podejść.
    Rozumiem, że na tej stronie Rosetta Code nie ma żadnej weryfikacji tych programów?

    Spróbuję niebawem przejrzeć kilka z nich, uruchomić i podesłać Ci uwagi w formie issue albo PR, czy tak będzie OK?
    Myślę, że pewnie zależnie od odbioru i chęci pomocy Tobie przez innych możesz wrzucać kolejne przejrzane rozwiązania, a jeśli nie będzie dostatecznego odzewu to przecież możesz wrzucać bez review, bo sam na pewno masz dostateczną dozę pewności, że dobrze działają.

    Widzę, że tych zadań na Rosetta jest dobrze ponad 1000, więc i tak dużo jeszcze do roboty :)
    W razie czego zdaje się, że na samej stronie Rosetta Code też można poprawić program, bo jest w formie wiki?

    pozdrawiam i gratuluję regularności w pracy!
    • 9:
       
      CommentAuthorGeorge
    • CommentTime9 Nov 2021
     
    Poszedł pierwszy Merge Request.
    Niestety miałem jakis problem z małymi/wielkimi literami i musiałem poprawiać ręcznie.
    W jaki sposób edytujesz te pliki (*.ACT) i wrzucasz na gitlab?
    Ja sobie wkleiłem i testowałem na Altirze, a później wyeksportowanie pliku niestety generuje niekompatybilne z ASCII znaki, więc musiałem copy/paste z edytora Action! w Altirze robić - mocno niewygodne.
    • 10:
       
      CommentAuthoramarok
    • CommentTime9 Nov 2021 zmieniony
     
    Wielkie dzięki za Wasze zainteresowaniem tematem. Miło mnie zaskoczyliście.

    Co do ilości zadań to fakt, trochę się tego zebrało. Początkowo planowałem przygotować kilkadziesiąt, góra sto, ale za bardzo mnie to wciągnęło. Jak przygotowałem 200, to stwierdziłem a może jeszcze jedna setka? I tak jakoś poszło. Ale stwierdziłem dosyć tego, trzeba to wreszcie puścić w świat.

    Jestem pewny, że te programy, które napisałem na początku mogą odbiegać jakością od tych późniejszych, tak więc czekają mnie jakieś korekty. Bo nie wypada na Rosetta Code wrzucać czegoś niedopracowanego.

    To może teraz parę szczegółów dotyczących mojego środowiska pracy. Kod powstaje w Visual Studio Code z zainstalowaną wtyczką do kolorowania składni OSS-Action! autorstwa Paulo Garcia. Dzięki temu mam bardzo komfortowe warunki na pisanie i czytanie kodu. Nie mam na przykład problemu z łatwym używaniem małych i wielkich liter (staram się cały czas być konsekwenty w stylu kodowania) i w ogóle mogę szybciej kodować.

    Poza tym Visual Studio Code pozwala mi łatwo wyszukiwać fragmenty kodów, które już wcześniej przygotowałem, żeby przypomnieć sobie jak używa się jakiejś funkcji bibliotecznej. Pod ręką mam również podręcznik do Action! ->link<-

    Visual Studio Code ma oczywiście wsparcie gita, tak więc z łatwością mogę wprowadzać zmiany do repozytorium, porównywać różnice itd.

    Jeśli chodzi o uruchamianie programów, to obok mam uruchomioną Altirrę ze skonfigurowanym dyskiem twardym, który ma ustawioną ścieżkę na katalog z kodami źródłowymi - lokalny odpowiednik source z repozytorium. Każdą zmianę w kodach po stronie PC zawsze sprawdzam w emulatorze. Dzięki temu mam pewność, że to co umieszczam w repozytorium kompiluje się i działa zgodnie z oczekiwaniem. Chociaż błędy pewnie się jeszcze znajdą.

    Co do kwestii konwersji ASCII<->ATASCII to sprawę załatwia sama Altirra, ponieważ odwołuję się do plików używając dysku H6 zamiast H1.

    Ponieważ korzystam z DOS 2.5 (zaraz będą gromy) to jest problem z długością nazw plików a to sobie rozwiązałem przygotowując na bieżąco ściągę w pliku files.txt w głównym katalogu repozytorium.

    @George, bardzo się cieszę, że zdecydowałeś się aktywnie włączyć do prac! Dziękuję za pierwszą propozycję zmian i proszę o więcej. Inni też są mile widziani.
    • 11:
       
      CommentAuthortdc
    • CommentTime10 Nov 2021
     
    500? - no ładnieee;))

    Najważniejsze, że programowanie w Action! sprawia Tobie przyjemność!;)

    Pozdrawiam!
    • 12:
       
      CommentAuthorGeorge
    • CommentTime10 Nov 2021
     
    @amarok - dzięki za opis setupu.
    Próbuję w Altirze ustawić ten dysk H1/H6.
    Spod Basica zadziałało, ale spod DOS (Sparta DOS X) nie widzi dysków H1: czy H6:. Coś jeszcze trzeba zrobić? Jakiś sterownik?
    • 13: CommentAuthorpirx
    • CommentTime10 Nov 2021
     
    W sparcie H6 niestety nie działa, albo mi nie działa, za to jest wirtualny dysk sparty. nie powiem Ci, jak to ustawić, bo po zainstalowaniu nowych sterów do nvidii przestała mi się altirka uruchamiać pod wine, ale to łatwe.
    niestety nie ma automatycznej konwersji 155 na CR/LF, trzeba sobie jakimś skrypcikiem radzić.
    • 14:
       
      CommentAuthorGeorge
    • CommentTime10 Nov 2021
     
    W końcu zrobiłem tak jak Amarok, pod tym DOSem 2.5 zadziałało. Choć pod Action! nie działa listowanie plików, to samo ładowanie, nawet z podkatalogu działa.
    • 15:
       
      CommentAuthortdc
    • CommentTime10 Nov 2021
     
    Nie działa, bo Action! był projektowany z ułatwieniami do edycji i całej pracy (co jest fenomenem na początku lat 80. - popatrzcie na koszmar Turbo Pascala na pececie w tym czasie itp.) i to konkretne ułatwienie zakłada że odczytujemy katalog do edytora ze stacji dysków czyli urządzenia D: itp. tymczasem dysk H1-H6 to wynalazek dzisiejszych czasów emulacji;)
    • 16:
       
      CommentAuthorPecus
    • CommentTime10 Nov 2021
     
    Chciałeś oczywiście napisać, że Action! jest ograniczone tak, że potrafi odczytać katalog tylko z urządzenia D: , czyli np. zawartości ramdysku (który miewa czasem inne oznaczenie) już sobie nie wylistujesz.
    • 17: CommentAuthorbob_er
    • CommentTime10 Nov 2021
     
    Bądźmy precyzyjni. Implementacja H1/H6, której używa George jest dzisiejsza, ale sama koncepcja urządzeń jest jak najbardziej ówczesna. Wszak na tym polega cała tablica HATABS. Więc nie wiń tutaj dzisiejszych czasów.
    Z drugiej strony jednak, całkiem sporo softu zakłada, że oprócz D: żadne inne urządzenie do przechowywania plików się nie nadaje, i nie uwzględnia wyboru urządzenia. Więc Action! może nie jest wyjątkiem w tej ułomności, ale zajebistości też to nie dodaje.
    • 18:
       
      CommentAuthortdc
    • CommentTime10 Nov 2021
     
    @Pecus - tak, dlatego można wprowadzić niewielką zmianę w pliku ROM Action! tak aby pobierał z H a nie z D;)
    • 19:
       
      CommentAuthortdc
    • CommentTime10 Nov 2021
     
    @bob_er - to nie o to chodzi. Jedno, że Action! w edytorze ułatwia pracę tak że nie trzeba podawać nazwy urządzenia na operacjach plikowych (ewenement na Atari) oraz nie trzeba za każdym razem wpisywać nazwy pliku. To jedno.

    Drugie to specjalna funkcja, która umożliwia wczytanie katalogu z dyskietki jako tekstu do edytora. Robi się to śmiesznym trikiem, gdzie już nie ma możliwości zmiany z D na H. Najprawdopodobniej autor założył, że nie ma innego urządzenia, które może przesłać zawartość katalu dyskietki ;)))
    • 20: CommentAuthorilmenit
    • CommentTime10 Nov 2021
     
    @amarok - przejrzałem losowo wybrane kody i jakość jest nawet lepsza niż wielu kodów w innych językach, które są na Rosetta Code.
    • 21:
       
      CommentAuthorsun
    • CommentTime11 Nov 2021
     
    A co robi ta opcja w Altirra?
    • 22:
       
      CommentAuthortdc
    • CommentTime11 Nov 2021
     
    Aaaa - celna uwaga;)
    • 23:
       
      CommentAuthorGeorge
    • CommentTime11 Nov 2021
     
    @sun - Dobre pytanie, bo jakby nie działało. Szczególnie jak mam DOS na D1:. No chyba, że samo D: to coś innego?
    • 24:
       
      CommentAuthorGeorge
    • CommentTime11 Nov 2021
     
    Ja domyślam się, że coś może nie działać, ale z drugiej strony jak działa wczytanie z H6:nazwa.act, to i "?H6:nazwa.act" myslałem, że zadziała.
    • 25:
       
      CommentAuthoramarok
    • CommentTime14 Nov 2021
     
    W międzyczasie wprowadziłem 28 zadań do bazy danych. Tym samym Action! ma już 32 wpisy i jest na 276 miejscu w rankingu najbardziej popularnych języków na stronie RosettaCode:
    ->link<-

    Do wprowadzenia pozostało mi już tylko 472 zadania...

    @George - uwzględniłem także Twoją optymalizację, dzięki!
    • 26: CommentAuthorpirx
    • CommentTime15 Nov 2021
     
    kudos!
    • 27:
       
      CommentAuthorGeorge
    • CommentTime15 Nov 2021
     
    Bardzo się cieszę!
    Będę sobie przeglądał te zadanka i Twoje rozwiązania - tam jest dużo rzeczy, których nie znałem nawet z nazwy - dobra nauka.

    Swoją drogą ktoś z zacięciem popularyzatorsko-historycznym mógłby powiększyć opis języka i jego historii na tej stronie, bo na razie jest dość ubogo.
    • 28:
       
      CommentAuthorKaz
    • CommentTime15 Nov 2021
     
    Zapraszam jutro, 16 listopada 2021 roku, na zooma - Amarok będzie obecny i opowie o tym projekcie, a także odpowie na pytania.

    ->link<-
    • 29:
       
      CommentAuthorKaz
    • CommentTime16 Nov 2021 zmieniony
     
    Niby Action! niszowa sprawa, a tu proszę, przewinęło się ponad 20 osób na spotkaniu, w tej chwili 15 :). Jak ktoś ma jeszcze jakieś pytania do Amaroka, to zapraszam, jeszcze jest możliwość.
    • 30:
       
      CommentAuthorKaz
    • CommentTime19 Nov 2021
     
    I już jest nagranie - dzięki Misza za błyskawiczny montaż! Film trwa nieco ponad 2 godziny i kwadrans i będzie miał premierę jutro wieczorem:

    • 31:
       
      CommentAuthoramarok
    • CommentTime21 Nov 2021
     
    W tym tygodniu udało mi się opublikować kolejnych 91 zadań na RosettaCode i tym samym w poczekalni pozostało tylko 381 do wrzucenia.

    Aktualnie Action! jest na 140 miejscu w rankingu najpopularniejszych języków i wyprzedził m.in. Locomotive Basic, Sinclair ZX81 BASIC, TI-89 BASIC, 8080 Assembly, 6502 Assembly, 8086 Assembly czy Visual Basic: ->link<-

    Wrzucam jeszcze obrazek z przykładowymi zrzutami ekranowymi z programów, które znajdują się już na RosettaCode.
    • 32:
       
      CommentAuthorKaz
    • CommentTime24 Nov 2021
     
    Brawo! Wprowadzone 124 programy, co daje wykonanie 8.34 % zadań.
    • 33:
       
      CommentAuthoramarok
    • CommentTime29 Nov 2021
     
    Mała aktualizacja z ostatniego tygodnia. Od ostatniego wpisu udało mi się wprowadzić 150 zadań na RosettaCode.

    Poza tym 11 zadań zostało przygotowanych przez użytkownia Atari Fan - myślę, że zbieżność imion nie jest przypadkowa :). A jeśli tak, to bardzo dziękuję i zachęcam do rozwiązywania kolejnych zadań.

    W tym momencie Action! z liczbą 284 zadań jest na 83-cim miejscu w rankingu i wyprzedza m.in Commodore BASIC, Applesoft BASIC, IS-BASIC, ZX Spectrum Basic oraz Algol W. Dane wzięte ze strony ->link<-

    Umieszczam jeszcze obrazek z zadaniami, które w ostatnim czasie umieściłem na stronie.
    • 34:
       
      CommentAuthorKaz
    • CommentTime7 dni temu
     
    Tak, AtariFan czyli Piotrek to znany miłośnik Action!, więc nie dziwi, że się w to wciągnął... Trzymam kciuki za Wasze działania.
    • 35:
       
      CommentAuthoramarok
    • CommentTime1 dzień temu
     
    Ho, ho, ho... W tym roku Święty Mikołaj przyniósł ponad 500 programów w Action! na RosettaCode ;)

    Udało się w ten sposób uzyskać 55-te miejsce w rankingu wyprzedzając m.in. języki takie jak COBOL, MATLAB, VBA, Prolog czy PHP.

    W miarę możliwości będę starał się dopisywać kolejne rozwiązania do bazy, ale liczę także na pomoc z Waszej strony. Myślę, że spokojnie znajdzie się jeszcze sporo zadań, które mogą być bliższe Waszym zainteresowaniom.

    Przy okazji jeszcze raz chciałbym podziękować AtariFanowi za jego wkład.

    Jak co tydzień wysyłam zrzuty ekranowe z ostatnio dodanych programów.