W ciągu ostatnich 10 lat nastąpiła eksplozja zainteresowania „obliczeniami naukowymi” i „nauką o danych”: to znaczy, zastosowaniem obliczeń do odpowiedzi na pytania i analizy danych w naukach przyrodniczych i społecznych. Aby sprostać tym potrzebom, obserwujemy renesans języków programowania, narzędzi i technik, które pomagają naukowcom i badaczom badać i rozumieć dane oraz koncepcje naukowe, a także przekazywać wyniki swoich badań. Jednak do tej pory bardzo niewiele narzędzi skupiało się na pomocy naukowcom w uzyskaniu niefiltrowanego dostępu do pełnego potencjału komunikacyjnego nowoczesnych przeglądarek internetowych. Dlatego dziś z radością przedstawiamy Iodide, eksperymentalne narzędzie, które ma pomóc naukowcom w pisaniu pięknych interaktywnych dokumentów przy użyciu technologii internetowych, a wszystko to w ramach iteracyjnego przepływu pracy, który przypomina inne naukowe środowiska obliczeniowe.
Iodide w akcji.
Poza tym, że jest tylko środowiskiem programistycznym do tworzenia żywych dokumentów w przeglądarce, Iodide próbuje usunąć tarcie z komunikacyjnych przepływów pracy, zawsze łącząc narzędzie do edycji z czystym, czytelnym dokumentem. Odbiega to od środowisk w stylu IDE, które tworzą dokumenty prezentacyjne takie jak pliki .pdf (które są następnie oddzielone od oryginalnego kodu) oraz od notatników opartych na komórkach, które mieszają kod i elementy prezentacyjne. W Iodide, możesz otrzymać zarówno dokument, który wygląda tak jak chcesz, jak i łatwy dostęp do bazowego kodu i środowiska edycji.
Iodide jest wciąż w stanie alfa, ale podążając za internetowym aforyzmem „Jeśli nie jesteś zawstydzony pierwszą wersją swojego produktu, to znaczy, że wystartowałeś za późno”, zdecydowaliśmy się na bardzo wczesną miękką premierę w nadziei na uzyskanie opinii od większej społeczności. Mamy demo, które możesz wypróbować już teraz, ale spodziewaj się wielu nierówności (i proszę nie używaj tego wydania alfa do krytycznej pracy!). Mamy nadzieję, że pomimo nierówności, jeśli zmrużysz na to oko, będziesz w stanie dostrzec wartość tej koncepcji, a informacje zwrotne, które nam przekażesz, pomogą nam ustalić, w jakim kierunku podążać dalej.
- Jak doszliśmy do Iodide
- Data science w Mozilli
- Dlaczego jest tak mało sieci w nauce?
- W stronę jodku
- Anatomia Iodide
- Widoki Eksploruj i Raportuj
- Żywe, interaktywne dokumenty z mocą platformy sieciowej
- Współdzielenie, współpraca i odtwarzalność
- Pyodide: The Python science stack in the browser
- JSMD (JavaScript MarkDown)
- Co dalej?
- Wzmocnione funkcje współpracy
- Więcej języków!
- Eksportuj archiwum notebooków
- Rozszerzenie przeglądarki Iodide do edytora tekstu
- Wskazówki i współpraca mile widziane!
- About Brendan Colloran
Jak doszliśmy do Iodide
Data science w Mozilli
W Mozilli zdecydowana większość naszej pracy w zakresie data science skupia się na komunikacji. Choć czasami wdrażamy modele mające na celu bezpośrednią poprawę doświadczenia użytkownika, takie jak silnik rekomendacji, który pomaga użytkownikom odkrywać rozszerzenia przeglądarki, przez większość czasu nasi naukowcy analizują nasze dane, aby znaleźć i podzielić się spostrzeżeniami, które będą informować o decyzjach menedżerów produktu, inżynierów i kierownictwo.
Praca w dziedzinie nauk o danych wiąże się z pisaniem dużej ilości kodu, ale w przeciwieństwie do tradycyjnego rozwoju oprogramowania, naszym celem jest odpowiadanie na pytania, a nie tworzenie oprogramowania. Rezultatem tego jest zazwyczaj jakiś rodzaj raportu – dokument, wykresy, a może interaktywna wizualizacja danych. Jak wiele organizacji zajmujących się naukami o danych, w Mozilli eksplorujemy nasze dane za pomocą fantastycznych narzędzi, takich jak Jupyter i R-Studio. Kiedy jednak przychodzi czas, aby podzielić się naszymi wynikami, zazwyczaj nie możemy przekazać notatnika Jupyter lub skryptu R osobie decyzyjnej, więc często kończy się na kopiowaniu kluczowych liczb i statystyk zbiorczych do dokumentu Google.
Zauważyliśmy, że przejście od eksploracji danych w kodzie do stworzenia przystępnego wyjaśnienia i z powrotem nie zawsze jest łatwe. Badania pokazują, że wiele osób podziela to doświadczenie. Kiedy jeden pracownik naukowy czyta raport końcowy drugiego i chce zajrzeć do kodu, który się za nim kryje, może dojść do wielu tarć; czasami namierzenie kodu jest łatwe, czasami nie. Jeśli chcą spróbować poeksperymentować z kodem i rozszerzyć go, sprawy oczywiście stają się jeszcze trudniejsze. Inny naukowiec danych może mieć twój kod, ale może nie mieć identycznej konfiguracji na swojej maszynie, a ustawienie tego wymaga czasu.
Cnotliwe koło pracy nauki o danych.
Dlaczego jest tak mało sieci w nauce?
Na tle tych przepływów pracy nauki o danych w Mozilli, pod koniec 2017 roku podjąłem się projektu, który wzywał do interaktywnej wizualizacji danych. Dzisiaj możesz tworzyć interaktywne wizualizacje za pomocą świetnych bibliotek dla Pythona, R i Julii, ale dla tego, co chciałem osiągnąć, musiałem zejść do Javascript. Oznaczało to odejście od moich ulubionych środowisk nauki o danych. Nowoczesne narzędzia do tworzenia stron internetowych są niewiarygodnie potężne, ale niezwykle skomplikowane. Naprawdę nie chciałem wymyślać, jak zbudować w pełni funkcjonalny łańcuch narzędzi Javascript z przeładowywaniem modułów na gorąco, ale poza tym nie mogłem znaleźć wiele narzędzi do tworzenia czystych, czytelnych dokumentów internetowych w ramach żywego, iteracyjnego przepływu pracy, który jest mi dobrze znany.
Zacząłem się zastanawiać, dlaczego takie narzędzie nie istnieje – dlaczego nie ma Jupytera do budowania interaktywnych dokumentów internetowych – i wkrótce zacząłem myśleć o tym, dlaczego prawie nikt nie używa Javascript do obliczeń naukowych. Wyskoczyły trzy duże powody:
- Javascript sam w sobie ma mieszaną reputację wśród naukowców jako powolny i niezręczny;
- nie ma wielu naukowych bibliotek obliczeniowych, które działają w przeglądarce lub które współpracują z Javascriptem; i,
- jak odkryłem, jest bardzo mało naukowych narzędzi kodowania, które umożliwiają szybką pętlę iteracji, a także dają niefiltrowany dostęp do możliwości prezentacyjnych w przeglądarce.
To są bardzo duże wyzwania. Ale gdy się nad tym głębiej zastanowiłem, zacząłem myśleć, że praca w przeglądarce może mieć pewne prawdziwe zalety dla rodzaju komunikatywnej nauki o danych, którą zajmujemy się w Mozilli. Największą zaletą jest oczywiście to, że przeglądarka ma prawdopodobnie najbardziej zaawansowany i dobrze obsługiwany zestaw technologii prezentacji na planecie, od DOM przez WebGL po Canvas i WebVR.
Myśląc o wspomnianym wyżej tarciu przepływu pracy, przyszła mi do głowy jeszcze jedna potencjalna zaleta: w przeglądarce dokument końcowy nie musi być oddzielony od narzędzia, które go stworzyło. Chciałem mieć narzędzie zaprojektowane do pomocy naukowcom w iteracji dokumentów sieciowych (w zasadzie jednofunkcyjnych aplikacji sieciowych do wyjaśniania idei)… a wiele narzędzi, których używaliśmy, było w zasadzie aplikacjami sieciowymi. Dla przypadku użycia pisania tych małych web-app-dokumentów, dlaczego nie połączyć dokumentu z narzędziem użytym do jego napisania?
Dzięki temu nietechniczni czytelnicy mogliby zobaczyć mój ładnie wyglądający dokument, ale inni naukowcy zajmujący się danymi mogliby natychmiast wrócić do oryginalnego kodu. Ponadto, ponieważ jądro obliczeniowe byłoby silnikiem JS przeglądarki, byliby w stanie natychmiast rozpocząć rozszerzanie i eksperymentowanie z kodem analizy. I byliby w stanie zrobić to wszystko bez konieczności podłączania się do zdalnych zasobów obliczeniowych lub instalowania jakiegokolwiek oprogramowania.
W stronę jodku
Zacząłem dyskutować z kolegami o potencjalnych zaletach i wadach obliczeń naukowych w przeglądarce, a w trakcie naszych rozmów zauważyliśmy kilka innych interesujących trendów.
Wewnątrz Mozilli widzieliśmy wiele interesujących dem pokazujących WebAssembly, nowy sposób dla przeglądarek na uruchamianie kodu napisanego w językach innych niż Javascript. WebAssembly pozwala na uruchamianie programów z niesamowitą prędkością, w niektórych przypadkach zbliżoną do natywnych binariów. Widzieliśmy przykłady wymagających obliczeniowo procesów, takich jak całe silniki gier 3D, działające w przeglądarce bez problemu. Idąc dalej, możliwe byłoby skompilowanie najlepszych w swojej klasie bibliotek obliczeń numerycznych C i C++ do WebAssembly i zawinięcie ich w ergonomiczne JS API, tak jak projekt SciPy robi to dla Pythona. W istocie, projekty już zaczęły to robić.
WebAssembly umożliwia uruchamianie kodu z prędkością zbliżoną do natywnej w przeglądarce.
Zauważyliśmy również gotowość społeczności Javascript do wprowadzania nowej składni, gdy pomaga to ludziom skuteczniej rozwiązywać problemy. Być może możliwe byłoby naśladowanie niektórych kluczowych elementów składni, które sprawiają, że programowanie numeryczne jest bardziej zrozumiałe i płynne w MATLABie, Julii i Pythonie – mnożenie macierzy, krojenie wielowymiarowe, operacje na tablicach rozgłoszeniowych i tak dalej. Ponownie, znaleźliśmy innych ludzi myślących w podobny sposób.
Zbiegając się w tych wątkach, zaczęliśmy się zastanawiać, czy platforma internetowa może być na progu stania się produktywnym domem dla obliczeń naukowych. Przynajmniej wyglądało na to, że może ona ewoluować, by służyć niektórym z komunikacyjnych przepływów pracy, z którymi spotykamy się w Mozilli (i które tak wielu innych napotyka w przemyśle i na uczelniach). Biorąc pod uwagę ciągłe doskonalenie rdzenia Javascriptu i możliwość dodania rozszerzeń składni dla programowania numerycznego, być może sam JS mógłby stać się bardziej atrakcyjny dla naukowców. WebAssembly wydawał się oferować ścieżkę do wspaniałych bibliotek naukowych. Trzecią nogą stołka byłoby środowisko do tworzenia dokumentów naukowych dla sieci. Na tym ostatnim elemencie zdecydowaliśmy się skupić nasze początkowe eksperymenty, które doprowadziły nas do Iodide.
Anatomia Iodide
Iodide jest narzędziem zaprojektowanym, aby dać naukowcom znajomy tok pracy do tworzenia świetnie wyglądających interaktywnych dokumentów przy użyciu pełnej mocy platformy internetowej. Aby to osiągnąć, dajemy Ci „raport” – w zasadzie stronę internetową, którą możesz wypełnić swoją treścią – oraz kilka narzędzi do iteracyjnego badania danych i modyfikowania raportu, aby stworzyć coś, czym możesz się podzielić. Kiedy już będziesz gotowy, możesz wysłać link bezpośrednio do swojego ukończonego raportu. Jeśli Twoi koledzy i współpracownicy chcą przejrzeć Twój kod i wyciągnąć z niego wnioski, mogą jednym kliknięciem powrócić do trybu eksploracji. Jeśli chcą poeksperymentować z kodem i użyć go jako podstawy własnej pracy, jednym kliknięciem mogą go rozwidlić i rozpocząć pracę nad własną wersją.
Czytaj dalej, aby dowiedzieć się nieco więcej o niektórych pomysłach, z którymi eksperymentujemy, próbując sprawić, by ten przepływ pracy był płynny.
Widoki Eksploruj i Raportuj
Iodide ma na celu zacieśnienie pętli między eksploracją, wyjaśnianiem i współpracą. Centralnym elementem jest możliwość poruszania się tam i z powrotem pomiędzy ładnie wyglądającym zapisem a użytecznym środowiskiem do iteracyjnej eksploracji obliczeniowej.
Gdy po raz pierwszy tworzysz nowy notatnik Iodide, zaczynasz w „widoku eksploracji”. Zapewnia on zestaw okien, w tym edytor do pisania kodu, konsolę do przeglądania danych wyjściowych z kodu, który oceniasz, przeglądarkę przestrzeni roboczej do badania zmiennych, które utworzyłeś podczas sesji, oraz okno „podglądu raportu”, w którym możesz zobaczyć podgląd swojego raportu.
Edycja fragmentu kodu Markdown w widoku eksploracji Iodide’a.
Klikając przycisk „RAPORT” w prawym górnym rogu, zawartość podglądu raportu powiększa się, wypełniając całe okno, co pozwala umieścić historię, którą chcemy opowiedzieć, na pierwszym planie. Czytelnicy, którzy nie znają się na kodowaniu lub nie są zainteresowani szczegółami technicznymi, mogą skupić się na tym, co chcesz przekazać, bez konieczności przedzierania się przez kod. Jeśli czytelnik odwiedzi link do widoku raportu, Twój kod uruchomi się automatycznie. Jeśli będzie chciał przejrzeć Twój kod, wystarczy kliknąć przycisk „EXPLORE” w prawym górnym rogu, aby powrócić do widoku eksploracji. Stamtąd mogą utworzyć kopię notatnika do własnych poszukiwań.
Przejście z widoku eksploracji do widoku raportu.
Kiedy udostępniasz łącze do notatnika Iodide, Twój współpracownik ma zawsze dostęp do obu tych widoków. Czysty, czytelny dokument nigdy nie jest oddzielony od bazowego, uruchamialnego kodu i środowiska edycji na żywo.
Żywe, interaktywne dokumenty z mocą platformy sieciowej
Dokumenty Iodide działają w przeglądarce, co oznacza, że silnik obliczeniowy jest zawsze dostępny. Kiedykolwiek udostępniasz swoją pracę, udostępniasz interaktywny raport na żywo z działającym kodem. Ponadto, ponieważ obliczenia odbywają się w przeglądarce równolegle z prezentacją, nie ma potrzeby wywoływania backendu językowego w innym procesie. Oznacza to, że interaktywne dokumenty aktualizują się w czasie rzeczywistym, otwierając możliwość bezproblemowych wizualizacji 3D, nawet przy niskim opóźnieniu i wysokim frame-rate wymaganym dla VR.
Współautor Devin Bayly bada dane MRI swojego mózgu
Współdzielenie, współpraca i odtwarzalność
Budowanie Iodide w sieci upraszcza wiele elementów tarcia przepływu pracy, które napotkaliśmy w innych narzędziach. Dzielenie się jest uproszczone, ponieważ tekst i kod są dostępne pod tym samym adresem URL, a nie, powiedzmy, wklejanie linku do skryptu w przypisach w dokumencie Google. Współpraca jest uproszczona, ponieważ jądrem obliczeniowym jest przeglądarka, a biblioteki mogą być ładowane przez żądanie HTTP, tak jak każda strona internetowa ładuje skrypt – nie trzeba instalować żadnych dodatkowych języków, bibliotek ani narzędzi. A ponieważ przeglądarki zapewniają warstwę kompatybilności, nie trzeba się martwić o to, czy zachowanie notebooków będzie powtarzalne na różnych komputerach i systemach operacyjnych.
Aby wspierać przepływ pracy grupowej, zbudowaliśmy dość prosty serwer do zapisywania i udostępniania notebooków. Istnieje publiczna instancja pod adresem iodide.io, gdzie można eksperymentować z Iodide i publicznie dzielić się swoją pracą. Możliwe jest również utworzenie własnej instancji za firewallem (w rzeczywistości to jest to, co już robimy w Mozilli dla niektórych wewnętrznych prac). Ale co ważne, same notebooki nie są głęboko związane z pojedynczą instancją serwera Iodide. Jeśli zajdzie taka potrzeba, powinno być łatwo przenieść pracę na inny serwer lub wyeksportować notatnik jako pakiet do udostępnienia w innych serwisach, takich jak Netlify czy Github Pages (więcej na temat eksportowania pakietów poniżej w sekcji „Co dalej?”). Utrzymanie obliczeń w kliencie pozwala nam skupić się na budowaniu naprawdę wspaniałego środowiska do dzielenia się i współpracy, bez potrzeby budowania zasobów obliczeniowych w chmurze.
Pyodide: The Python science stack in the browser
Gdy zaczęliśmy myśleć o tym, by uczynić sieć lepszą dla naukowców, skupiliśmy się na sposobach, które mogłyby usprawnić pracę z Javascriptem, takich jak kompilowanie istniejących bibliotek naukowych do WebAssembly i owijanie ich w łatwe w użyciu JS API. Kiedy zaproponowaliśmy to kreatorom WebAssembly z Mozilli, zaproponowali bardziej ambitny pomysł: jeśli wielu naukowców woli Pythona, wyjdź im naprzeciw, kompilując stos naukowy Pythona do działania w WebAssembly.
Myśleliśmy, że brzmi to zniechęcająco – że będzie to ogromny projekt i że nigdy nie zapewni zadowalającej wydajności… ale dwa tygodnie później Mike Droettboom miał działającą implementację Pythona działającą wewnątrz notatnika Iodide. W ciągu następnych kilku miesięcy dodaliśmy Numpy, Pandas i Matplotlib, które są zdecydowanie najczęściej używanymi modułami w ekosystemie naukowym Pythona. Z pomocą współpracowników Kirilla Smelkova i Romana Yurchaka z Nexedi, dodaliśmy wsparcie dla Scipy i scikit-learn. Od tego czasu kontynuujemy dodawanie innych bibliotek kawałek po kawałku.
Uruchamianie interpretera Pythona wewnątrz wirtualnej maszyny Javascript dodaje karę za wydajność, ale ta kara okazuje się zaskakująco mała – w naszych benchmarkach, około 1x-12x wolniej niż natywnie w Firefoksie i 1x-16x wolniej w Chrome. Doświadczenie pokazuje, że jest to bardzo użyteczne dla interaktywnej eksploracji.
Uruchamianie Matplotliba w przeglądarce umożliwia jego interaktywne funkcje, które są niedostępne w środowiskach statycznych
Przeniesienie Pythona do przeglądarki tworzy kilka magicznych przepływów pracy. Na przykład, można zaimportować i oczyścić dane w Pythonie, a następnie uzyskać dostęp do wynikowych obiektów Pythona z Javascript (w większości przypadków konwersja odbywa się automatycznie), dzięki czemu można je wyświetlać za pomocą bibliotek JS, takich jak d3. Jeszcze bardziej magicznie, można uzyskać dostęp do API przeglądarki z kodu Pythona, co pozwala robić takie rzeczy jak manipulowanie DOM bez dotykania Javascript.
Oczywiście, jest dużo więcej do powiedzenia o Pyodide, i zasługuje to na własny artykuł – zagłębimy się w szczegóły w kolejnym poście w przyszłym miesiącu.
JSMD (JavaScript MarkDown)
Tak jak w Jupyterze i R w trybie R-Markdown, w Iodide możesz przeplatać kod i zapis, jak tylko chcesz, dzieląc swój kod na „kawałki kodu”, które możesz modyfikować i uruchamiać jako osobne jednostki. Nasza implementacja tego pomysłu jest analogiczna do „trybu komórkowego” w R Markdown i MATLABie: zamiast używać interfejsu opartego na komórkach, zawartość notatnika Iodide jest po prostu dokumentem tekstowym, który używa specjalnej składni do ograniczania określonych typów komórek. Nazywamy ten format tekstowy „JSMD”.
Podążając za MATLABem, fragmenty kodu są definiowane przez linie zaczynające się od %%
, po których następuje łańcuch wskazujący język fragmentu poniżej. Obecnie obsługujemy chunki zawierające Javascript, CSS, Markdown (i HTML), Python, specjalny chunk „fetch”, który upraszcza ładowanie zasobów, oraz chunk plugin, który pozwala rozszerzyć funkcjonalność Iodide o nowe typy komórek.
Odkryliśmy, że ten format jest całkiem wygodny. Ułatwia on korzystanie z narzędzi zorientowanych na tekst, takich jak przeglądarki diff i twój ulubiony edytor tekstu, i możesz wykonywać standardowe operacje tekstowe, takie jak wytnij/kopiuj/wklej, bez konieczności uczenia się skrótów do zarządzania komórkami. Aby uzyskać więcej szczegółów, możesz przeczytać o JSMD w naszych dokumentach.
Co dalej?
Warto powtórzyć, że wciąż jesteśmy w fazie alfa, więc będziemy kontynuować ulepszanie ogólnego dopracowania i usuwanie błędów. Oprócz tego mamy na uwadze kilka funkcji, które chcemy wykorzystać w następnej rundzie eksperymentów. Jeśli któryś z tych pomysłów wyda Ci się szczególnie przydatny, daj nam znać! Nawet lepiej, daj nam znać, jeśli chciałbyś pomóc nam je zbudować!
Wzmocnione funkcje współpracy
Jak wspomniano powyżej, do tej pory zbudowaliśmy bardzo prosty backend, który pozwala na zapisywanie twojej pracy online, przeglądanie pracy wykonanej przez innych ludzi oraz szybkie rozwidlanie i rozszerzanie istniejących notatników stworzonych przez innych użytkowników, ale to tylko początkowe kroki w użytecznym przepływie pracy.
Następne trzy duże funkcje współpracy, które chcemy dodać, to:
- Wątki komentarzy w stylu Google Docs
- Możliwość sugerowania zmian w notatniku innego użytkownika za pomocą przepływu pracy fork/merge, podobnego do żądań ściągnięcia z Githuba
- Współbieżna edycja notatnika jak w Google Docs.
W tym momencie nadajemy im priorytety w mniej więcej takiej kolejności, ale jeśli chcielibyście zająć się nimi w innej kolejności lub macie inne sugestie, dajcie nam znać!
Więcej języków!
Rozmawialiśmy z ludźmi ze społeczności R i Julia o kompilacji tych języków do WebAssembly, co pozwoliłoby na ich użycie w Iodide i innych projektach opartych na przeglądarce. Nasze wstępne badania wskazują, że powinno to być wykonalne, ale implementacja tych języków może być nieco trudniejsza niż Pythona. Podobnie jak w przypadku Pythona, niektóre fajne przepływy pracy otwierają się, jeśli można, na przykład, dopasować modele statystyczne w R lub rozwiązać równania różniczkowe w Julii, a następnie wyświetlić wyniki za pomocą interfejsów API przeglądarki. Jeśli przeniesienie tych języków do sieci Cię interesuje, skontaktuj się z nami – w szczególności chcielibyśmy uzyskać pomoc od ekspertów FORTRAN i LLVM.
Eksportuj archiwum notebooków
Wcześniejsze wersje Iodide były samodzielnymi, uruchamialnymi plikami HTML, które zawierały zarówno kod JSMD używany w analizie, jak i kod JS używany do uruchamiania samego Iodide, ale odeszliśmy od tej architektury. Późniejsze eksperymenty przekonały nas, że korzyści ze współpracy wynikające z posiadania serwera Iodide przewyższają zalety zarządzania plikami na lokalnym systemie. Niemniej jednak, te eksperymenty pokazały nam, że możliwe jest zrobienie działającej migawki notatnika Iodide poprzez zawarcie kodu Iodide wraz z wszelkimi danymi i bibliotekami używanymi przez notatnik w jednym dużym pliku HTML. Może to skończyć się większym plikiem niż ten, który chcesz zaserwować zwykłym użytkownikom, ale może okazać się przydatny jako doskonale odtwarzalna i archiwalna migawka analizy.
Rozszerzenie przeglądarki Iodide do edytora tekstu
Choć wielu naukowców jest przyzwyczajonych do pracy w środowiskach programistycznych opartych na przeglądarce, wiemy, że niektórzy ludzie nigdy nie będą edytować kodu w niczym innym niż ich ulubiony edytor tekstu. Naprawdę chcemy, aby Iodide spotkał ludzi tam, gdzie oni już są, włączając w to tych, którzy wolą pisać swój kod w innym edytorze, ale chcą mieć dostęp do interaktywnych i iteracyjnych funkcji, które zapewnia Iodide. Aby zaspokoić tę potrzebę, zaczęliśmy myśleć o stworzeniu lekkiego rozszerzenia do przeglądarki i kilku prostych interfejsów API, które pozwolą Iodide rozmawiać z edytorami po stronie klienta.
Wskazówki i współpraca mile widziane!
Nie staramy się rozwiązać wszystkich problemów nauki o danych i obliczeń naukowych, i wiemy, że Iodide nie będzie dla każdego filiżanką herbaty. Jeśli potrzebujesz przetwarzać terabajty danych na klastrach GPU, Iodide prawdopodobnie nie ma Ci wiele do zaoferowania. Jeśli publikujesz artykuły w czasopismach i potrzebujesz po prostu napisać dokument w LaTeX-u, to istnieją lepsze narzędzia dla Twoich potrzeb. Jeśli cały trend przenoszenia rzeczy do przeglądarki sprawia, że trochę się wzdrygasz, nie ma problemu – istnieje mnóstwo naprawdę niesamowitych narzędzi, których możesz używać do pracy naukowej, i jesteśmy za to wdzięczni! Nie chcemy zmieniać sposobu, w jaki ktokolwiek pracuje, a dla wielu naukowców komunikacja skupiona na sieci nie ma znaczenia. Rad! Żyj swoim najlepszym życiem!
Ale dla tych naukowców, którzy tworzą treści dla sieci, i dla tych, którzy mogliby chcieć to robić, gdybyście mieli narzędzia zaprojektowane tak, by wspierać wasz sposób pracy: naprawdę chcielibyśmy usłyszeć od was!
Proszę odwiedzić stronę iodide.io, wypróbować ją i podzielić się z nami opiniami (ale jeszcze raz: pamiętajcie, że ten projekt jest w fazie alfa – nie używajcie go do żadnej krytycznej pracy i miejcie świadomość, że dopóki jesteśmy w fazie alfa, wszystko może ulec zmianie). Możesz wziąć udział w naszej szybkiej ankiecie, a zgłoszenia problemów i błędów na Githubie są bardzo mile widziane. Prośby o funkcje i przemyślenia na temat ogólnego kierunku mogą być dzielone poprzez naszą grupę Google lub Gitter.
Jeśli chciałbyś zaangażować się w pomoc w budowaniu Iodide, jesteśmy open source na Githubie. Iodide dotyka wielu różnych dziedzin oprogramowania, od nowoczesnego frontend developmentu do obliczeń naukowych do kompilacji i transpilacji, więc jest wiele ciekawych rzeczy do zrobienia! Prosimy o kontakt, jeśli coś z tego Cię interesuje!
Wielkie podziękowania dla Hamiltona Ulmera, Williama Lachance’a i Mike’a Droettbooma za ich wspaniałą pracę nad Iodide i za przejrzenie tego artykułu.
About Brendan Colloran
Więcej artykułów Brendana Collorana…