Maciej Cąderek
2019-07-31 23:47

Gramma - konsolowy grammar checker

Od pewnego czasu, w wolnych chwilach, tworzę konsolową apkę do sprawdzania gramatyki w tekście (w języku angielskim). Apka weszła właśnie w fazę beta - podstawowe funkcjonalności są gotowe, jak ktoś ma ochotę może przetestować.

Co apka potrafi?

  • sprawdzić plik lub string i interaktywnie poprawić błędy,
  • sprawdzić plik lub string, wypisać błedy i zwrócić status code (0 - success, 1 - errors) - przydatne jak ktoś chciałby wpiąć ją w pipeline,
  • wykonać git commit z interaktywnym sprawdzeniem gramatyki.

Jak to wygląda (przykład ze stringiem):

gramma

W czym to jest napisane?

Cała apka jest napisana w JSie (Node), korzysta z publicznego API grammarbot.io. Dla apki dostępne sa binarki, więc nie trzeba instalować Node'a by ją odpalić.

Co planuję dodać?

  • lepsze wsparcie dla markdownu i html (usunięcie false-positives)
  • wbudowany słownik terminów programistycznych (tu znowu - mniej false-positives)
  • opcje wyłączenia wybranych sprawdzeń
  • opcję włączenia podkreśleń (^^^^^^^) dla błędów (zamiast/obok kolorków)
  • lepszy error handling
  • alternatywny backend: LanguageTool -> done!
  • logo ;)

OK fajne / niefajne, co dalej?

Bardzo prosiłbym o feedback od strony użytkownika (co do kodu to wiem, że czeka mnie refaktor, odezwę się pewnie przed wydaniem wersji 1.0.0):

  • czy działa? jakieś bugi, które przeoczyłem? :D (testowałem na Linuksie i Windowsie, jak ktoś ma Maca to może spróbować odpalić binarkę)
  • czy apka jest intuicyjna?
  • czego brakuje / co jest niepotrzebne?
  • czy dokumentacja jest zrozumiała i wystarczająca?
  • wszelki inny feedback jest mile widziany,
  • jak się podoba to prosze o kliknięcie gwiazdki na Githubie :)

Linki

Strona projektu: https://caderek.github.io/gramma/
Github: https://github.com/caderek/gramma

#opensource #node.js #js #terminal #gramma

Maciej Cąderek
2017-10-20 18:20

Jak wiadomo (albo i nie) pojedynczy proces Node.js działa w jednym wątku (pomijając kryjącą się pod spodem pulę wątków do obsługi nieasynchronicznych interfejsów). Świetnie się to sprawdza w przypadku wszelkiego IO, ale nie bardzo sprawdza się w przypadku kosztownych obliczeniowo operacji (główny wątek jest blokowany).

Do tej pory najlepszym rozwiązaniem było wydzielanie zadań na zewnątrz (zwykle z pomocą task queue i workerów), ale często jest to overkill.

Na szczęście z pomocą przychodz nowy open sourcowy projekt M$ - Napa.js -> https://github.com/Microsoft/napajs/blob/master/README.md

Wielowątkowe środowisko uruchomieniowe JSa, oparte (a jakże) na silniku V8, w pełni współpracujące z Node.js (jako moduł), można je tez odpalić bez udziału Noda.

Po wstępnym przejrzeniu i odpaleniu przykładów powiem, że wygląda to dobrze.
Jest szansa, że na stałe trafi do mojego przybornika - brakowało czegoś takiego. W JSie robi się coraz ciekawiej ;)

Jaram się :D

#js #javascript #node #nodejs #napajs #opensource #brawomicrosoft

Napa.js

Desu

Mogli to zanazwac nap.js :P

Maciej Cąderek

@Laran Fakt, ale dobrych kandydatów chyba jeszcze mniej ;)