Viimeisen kymmenen vuoden aikana kiinnostus ”tieteelliseen tietojenkäsittelyyn” ja ”datatieteeseen” on kasvanut räjähdysmäisesti: toisin sanoen tietojenkäsittelyn soveltamiseen luonnon- ja yhteiskuntatieteiden kysymyksiin vastaamiseksi ja tietojen analysoimiseksi. Näiden tarpeiden tyydyttämiseksi olemme nähneet renessanssia ohjelmointikielissä, työkaluissa ja tekniikoissa, jotka auttavat tiedemiehiä ja tutkijoita tutkimaan ja ymmärtämään dataa ja tieteellisiä käsitteitä sekä kommunikoimaan tuloksistaan. Tähän mennessä hyvin harvat työkalut ovat kuitenkin keskittyneet auttamaan tutkijoita hyödyntämään nykyaikaisten verkkoselaimien koko viestintäpotentiaalia suodattamattomasti. Niinpä olemme tänään innoissamme esittelemässä Iodidea, kokeellista työkalua, jonka tarkoituksena on auttaa tutkijoita kirjoittamaan kauniita interaktiivisia dokumentteja web-tekniikoiden avulla, ja kaikki tämä iteratiivisessa työnkulussa, joka tuntuu samankaltaiselta kuin muutkin tieteelliset laskentaympäristöt.
Iodide toiminnassa.
Muutakin kuin pelkkä ohjelmointiympäristö elävien dokumenttien luomiseksi selaimessa, Iodide pyrkii poistamaan kitkaa viestinnällisistä työvirroista liittämällä muokkaustyökalun aina niputettuna yhteen siististi luettavaksi saatavan dokumentin kanssa. Tämä poikkeaa IDE-tyylisistä ympäristöistä, jotka tuottavat esittelydokumentteja, kuten .pdf-tiedostoja (jotka sitten erotetaan alkuperäisestä koodista), ja solupohjaisista muistikirjoista, jotka sekoittavat koodia ja esityselementtejä. Iodidessa saat sekä dokumentin, joka näyttää siltä miltä haluat sen näyttävän, että helpon pääsyn taustalla olevaan koodiin ja muokkausympäristöön.
Iodidi on vielä hyvin pitkälti alfa-tilassa, mutta internetin aforismia ”Jos et häpeä tuotteesi ensimmäistä versiota, olet lanseerannut sen liian myöhään” mukaillen päätimme tehdä hyvin varhaisen pehmeän lanseerauksen toivoen saavamme palautetta laajemmalta yhteisöltä. Meillä on demo, jota voit kokeilla juuri nyt, mutta varaudu siihen, että siinä on vielä paljon epätasaisuuksia (äläkä käytä tätä alfa-versiota kriittiseen työhön!). Toivomme, että karkeista reunoista huolimatta, jos karsastat tätä, pystyt näkemään konseptin arvon, ja että antamasi palaute auttaa meitä miettimään, missä mennään seuraavaksi.
- Miten päädyimme Jodidiin
- Datatiede Mozillassa
- Miksi tieteessä on niin vähän webiä?
- Jodia kohti
- Iodiden anatomia
- Etsintä- ja raporttinäkymät
- Elävät, vuorovaikutteiset asiakirjat Web-alustan voimalla
- JAKAMINEN, YHTEISTOIMINTA JA KERTAAMISKYKY
- Pyodidi: Kun aloimme miettiä webin parantamista tiedemiehille, keskityimme tapoihin, joilla voisimme parantaa Javascriptin kanssa työskentelyä, kuten olemassa olevien tieteellisten kirjastojen kääntämiseen WebAssemblyksi ja niiden käärimiseen helppokäyttöisiin JS-API:hin. Kun ehdotimme tätä Mozillan WebAssembly-velhoille, he tarjosivat kunnianhimoisemman idean: jos monet tutkijat suosivat Pythonia, tulisi heitä kohdata siellä, missä he ovat, kääntämällä Pythonin tiedepino ajettavaksi WebAssemblyssä.
- JSMD (JavaScript MarkDown)
- Mitä seuraavaksi?
- Laajennetut yhteistoimintaominaisuudet
- Lisää kieliä!
- Export notebook-arkisto
- Iodidista tekstieditoriin -selainlaajennus
- Palaute ja yhteistyö tervetulleita!
- Tietoa Brendan Colloranista
Miten päädyimme Jodidiin
Datatiede Mozillassa
Mozillassa valtaosa datatieteellisestä työstämme keskittyy viestintään. Vaikka otamme joskus käyttöön malleja, joiden tarkoituksena on suoraan parantaa käyttäjäkokemusta, kuten suosittelumoottoria, joka auttaa käyttäjiä löytämään selainlaajennuksia, suurimman osan ajasta datatieteilijämme analysoivat dataa löytääkseen ja jakaakseen oivalluksia, jotka auttavat tuotepäälliköitä, insinöörejä ja johtajia tekemään päätöksiä.
Datatieteelliseen työhön kuuluu paljon koodin kirjoittamista, mutta toisin kuin perinteisessä ohjelmistokehityksessä, tavoitteenamme on vastata kysymyksiin, ei tuottaa ohjelmistoja. Tuloksena on tyypillisesti jonkinlainen raportti – asiakirja, joitakin kaavioita tai ehkä interaktiivinen tietovisualisointi. Monien datatieteen organisaatioiden tapaan Mozillassa tutkimme tietojamme käyttämällä fantastisia työkaluja, kuten Jupyteria ja R-Studiota. Kun on kuitenkin aika jakaa tuloksemme, emme yleensä voi antaa Jupyter-vihkoa tai R-skriptiä päättäjälle, joten päädymme usein siihen, että kopioimme avainluvut ja yhteenvetotilastot Google-dokumenttiin.
Olemme huomanneet, että edestakainen matka datan tutkimisesta koodin avulla ymmärrettävän selityksen luomiseen ja takaisin ei ole aina helppoa. Tutkimukset osoittavat, että monet ihmiset jakavat tämän kokemuksen. Kun yksi datatieteilijä lukee toisen loppuraporttia ja haluaa katsoa sen taustalla olevaa koodia, voi syntyä paljon kitkaa; joskus koodin jäljittäminen on helppoa, joskus ei. Jos hän haluaa kokeilla ja laajentaa koodia, asiat vaikeutuvat entisestään. Toisella datatieteilijällä voi olla koodisi, mutta hänellä ei välttämättä ole samanlaista konfiguraatiota koneellaan, ja sen asettaminen vie aikaa.
Datatieteellisen työn hyveellinen ympyrä.
Miksi tieteessä on niin vähän webiä?
Taustalla näille datatieteellisille työnkulkumalleille Mozillassa otin loppuvuodesta 2017 hoitaakseni projektin, joka vaati vuorovaikutteista datan visualisointia. Nykyään voit luoda interaktiivisia visualisointeja käyttämällä loistavia kirjastoja Pythonille, R:lle ja Julialle, mutta siihen, mitä halusin saavuttaa, minun piti pudota Javascriptiin. Tämä tarkoitti astumista pois suosikkidataympäristöistäni. Nykyaikaiset web-kehitystyökalut ovat uskomattoman tehokkaita, mutta äärimmäisen monimutkaisia. En todellakaan halunnut keksiä, miten saisin täysimittaisen Javascriptin build-työkaluketjun, jossa on kuuma moduulien uudelleenlataus, käyttöön, mutta sitä lukuun ottamatta en löytänyt paljon sellaista, jonka tarkoituksena olisi ollut luoda puhtaita, luettavia web-dokumentteja minulle tutussa elävässä, iteratiivisessa työnkulussa.
Aloin miettiä, miksi tätä työkalua ei ollut olemassa – miksi ei ole Jupyteria vuorovaikutteisten web-dokumenttien rakentamiseen – ja pian zoomasin miettimään, miksi melkeinpä juuri kukaan ei käytä JavaScriptiä tieteelliseen tietojenkäsittelyyn. Kolme suurta syytä hyppäsi esiin:
- Javascriptilla itsellään on tiedemiesten keskuudessa ristiriitainen maine hitaana ja hankalana;
- ei ole monia tieteellisen laskennan kirjastoja, jotka toimivat selaimessa tai jotka toimivat Javascriptin kanssa;
- ja,
- kuten olin havainnut,
- jotka mahdollistaisivat nopean iterointisilmukan ja antaisivat myös suodattamattoman pääsyn selaimessa oleviin esitystapoihin.
on hyvin harvoja tieteellisiä koodaustyökaluja,
Nämä ovat hyvin suuria haasteita. Mutta kun mietin asiaa enemmän, aloin ajatella, että selaimessa työskentelyllä voisi olla joitakin todellisia etuja sellaiselle kommunikatiiviselle datatieteelle, jota me Mozillassa teemme. Suurin etu on tietysti se, että selaimessa on kiistatta maailman kehittynein ja parhaiten tuettu joukko esitystekniikoita DOMista WebGL:ään ja Canvasista WebVR:ään.
Ajattelemalla edellä mainittua työnkulun kitkaa, mieleeni juolahti toinenkin potentiaalinen etu: selaimessa lopullisen dokumentin ei tarvitse olla erillinen siitä työkalusta, jolla se on luotu. Halusin työkalun, joka oli suunniteltu auttamaan tiedemiehiä iteroimaan web-dokumentteja (pohjimmiltaan yksikäyttöisiä web-sovelluksia idean selittämiseen)… ja monet käyttämämme työkalut olivat itse pohjimmiltaan web-sovelluksia. Käyttötilanteessa, jossa kirjoitetaan näitä pieniä web-sovellus-dokumentteja, miksei dokumenttia voisi niputtaa yhteen sen kirjoittamiseen käytetyn työkalun kanssa?
Tämän ansiosta ei-tekniset lukijat näkivät hienon näköisen dokumenttini, mutta muut datatieteilijät pääsivät heti takaisin alkuperäiseen koodiin. Lisäksi, koska laskentaydin olisi selaimen JS-moottori, he voisivat aloittaa analyysikoodin laajentamisen ja kokeilemisen välittömästi. Ja he pystyisivät tekemään kaiken tämän ilman, että he tarvitsisivat muodostaa yhteyttä etälaskentaresursseihin tai asentaa mitään ohjelmistoja.
Jodia kohti
Aloitin keskustelun selaimessa tapahtuvan tieteellisen laskennan mahdollisista hyvistä ja huonoista puolista kollegojeni kanssa, ja keskustelujemme aikana huomasimme muitakin mielenkiintoisia kehityssuuntia.
Mozillan sisällä näimme paljon mielenkiintoisia demoja, joissa esiteltiin WebAssemblyä, joka oli selaimille uusi tapa ajaa muulla kielellä kuin Javascriptillä kirjoitettua koodia. WebAssemblyn avulla ohjelmia voidaan ajaa uskomattomalla nopeudella, joissakin tapauksissa lähelle natiiveja binäärejä. Näimme esimerkkejä laskennallisesti vaativista prosesseista, kuten kokonaisista 3D-pelimoottoreista, jotka toimivat selaimessa ongelmitta. Jatkossa olisi mahdollista kääntää parhaita C- ja C++-luokan numeerisen laskennan kirjastoja WebAssemblyyn ja paketoida ne ergonomisiin JS-rajapintoihin, aivan kuten SciPy-projekti tekee Pythonille. Itse asiassa hankkeet olivat jo alkaneet tehdä näin.
WebAssembly mahdollistaa koodin suorittamisen selaimessa lähes natiivinopeudella.
Havaitsimme myös Javascript-yhteisön halukkuuden ottaa käyttöön uutta syntaksia, kun se auttaa ihmisiä ratkaisemaan ongelmansa tehokkaammin. Ehkä olisi mahdollista jäljitellä joitakin keskeisiä syntaktisia elementtejä, jotka tekevät numeerisesta ohjelmoinnista ymmärrettävämpää ja sujuvampaa MATLABissa, Juliassa ja Pythonissa – matriisien kertolasku, moniulotteinen viipalointi, broadcast-matriisioperaatiot ja niin edelleen. Löysimme myös muita ihmisiä, jotka ajattelivat samankaltaisia asioita.
Kun nämä ajatukset lähenivät toisiaan, aloimme miettiä, voisiko verkkoalustasta olla tulossa tuottava koti tieteelliselle laskennalle. Ainakin näytti siltä, että se voisi kehittyä palvelemaan joitakin kommunikatiivisia työnkulkuja, joita kohtaamme Mozillassa (ja joita niin monet muutkin kohtaavat teollisuudessa ja akateemisessa maailmassa). Kun Javascriptin ydin paranee koko ajan ja kun siihen on mahdollista lisätä numeerista ohjelmointia varten tarvittavia syntaksilaajennuksia, JS:stä itsestään voitaisiin ehkä tehdä houkuttelevampi tiedemiehille. WebAssembly näytti tarjoavan tien suuriin tieteellisiin kirjastoihin. Jakkaran kolmas jalka olisi ympäristö, jossa voitaisiin luoda datatieteen dokumentteja verkkoon. Tähän viimeiseen elementtiin päätimme keskittyä ensimmäisissä kokeiluissamme, jotka toivat meidät Iodideen.
Iodiden anatomia
Iodide on työkalu, joka on suunniteltu antamaan tiedemiehille tuttu työnkulku upeiden interaktiivisten dokumenttien luomiseksi hyödyntäen web-alustan koko tehoa. Tätä varten annamme sinulle ”raportin” – periaatteessa verkkosivun, jonka voit täyttää sisällölläsi – ja joitakin työkaluja, joiden avulla voit tutkia tietoja iteratiivisesti ja muokata raporttiasi luodaksesi jotain, jonka olet valmis jakamaan. Kun olet valmis, voit lähettää linkin suoraan valmiiseen raporttiisi. Jos kollegasi ja yhteistyökumppanisi haluavat tarkastella koodiasi ja oppia siitä, he voivat siirtyä takaisin tutkimustilaan yhdellä napsautuksella. Jos he haluavat kokeilla koodia ja käyttää sitä oman työnsä pohjana, he voivat vielä yhdellä napsautuksella haarukoida sen ja aloittaa oman versionsa työstämisen.
Lue lisää saadaksesi lisätietoja joistakin ideoista, joita kokeilemme yrittäessämme saada tämän työnkulun tuntumaan sujuvalta.
Etsintä- ja raporttinäkymät
Iodidilla pyritään kiristämään silmukkaa tutkimisen, selittämisen ja yhteistyön välillä. Keskeistä tässä on kyky siirtyä edestakaisin komean kirjoituksen ja iteratiivisen laskennallisen tutkimisen hyödyllisen ympäristön välillä.
Kun luot ensimmäisen kerran uuden Jodidin muistikirjan, aloitat ”tutkimusnäkymässä”. Tämä tarjoaa joukon ikkunoita, joihin kuuluu editori koodin kirjoittamista varten, konsoli arvioimasi koodin tulosteiden tarkastelemista varten, työtilan katseluohjelma istuntosi aikana luomiesi muuttujien tarkastelemista varten ja ”raportin esikatselu”-ruutu, jossa näet esikatselun raportistasi.
Markdown-koodikappaleen muokkaaminen Jodidin tutkimusnäkymässä.
Klikkaamalla oikeassa yläkulmassa olevaa ”RAPORTTI”-painiketta raporttisi esikatseluikkunan sisältö laajenee täyttämään koko ikkunan, jolloin voit asettaa kertomasi tarinan etualalle. Lukijat, jotka eivät osaa koodata tai jotka eivät ole kiinnostuneita teknisistä yksityiskohdista, voivat keskittyä siihen, mitä yrität välittää, joutumatta kahlaamaan koodin läpi. Kun lukija siirtyy raporttinäkymään johtavaan linkkiin, koodisi käynnistyy automaattisesti. jos hän haluaa tarkastella koodiasi, hän pääsee takaisin tutkimusnäkymään napsauttamalla oikeassa yläkulmassa olevaa ”EXPLORE”-painiketta. Sieltä he voivat tehdä kopion muistikirjasta omia tutkimuksiaan varten.
Siirtyminen explore-näkymästä raporttinäkymään.
Kun jaat linkin jodi-muistikirjaan, yhteistyökumppanisi pääsee aina molempiin näkymiin. Puhdasta, luettavaa asiakirjaa ei koskaan eroteta taustalla olevasta ajettavasta koodista ja elävästä muokkausympäristöstä.
Elävät, vuorovaikutteiset asiakirjat Web-alustan voimalla
Iodide-dokumentit elävät selaimessa, mikä tarkoittaa, että laskentamoottori on aina käytettävissä. Aina kun jaat työsi, jaat elävän interaktiivisen raportin, jossa on käynnissä oleva koodi. Lisäksi, koska laskenta tapahtuu selaimessa esityksen rinnalla, ei ole tarvetta kutsua kielen backendiä toisessa prosessissa. Tämä tarkoittaa, että interaktiiviset dokumentit päivittyvät reaaliajassa, mikä avaa mahdollisuuden saumattomiin 3D-visualisointeihin jopa VR:n vaatimalla matalalla latenssilla ja korkealla kuvataajuudella.
Tekijä Devin Bayly tutkii aivojensa magneettikuvausdataa
JAKAMINEN, YHTEISTOIMINTA JA KERTAAMISKYKY
Joodin rakentaminen verkkoon yksinkertaistaa monia työnkulun kitkaelementtejä, joita olemme kohdanneet muissa työkaluissa. Jakaminen yksinkertaistuu, koska kirjoitus ja koodi ovat saatavilla samasta URL-osoitteesta sen sijaan, että esimerkiksi liittäisimme linkin skriptiin Google-dokumentin alaviitteisiin. Yhteistyö yksinkertaistuu, koska laskentaytimenä toimii selain ja kirjastot voidaan ladata HTTP-pyynnöllä, kuten mikä tahansa verkkosivu lataa skriptin – ylimääräisiä kieliä, kirjastoja tai työkaluja ei tarvitse asentaa. Ja koska selaimet tarjoavat yhteensopivuuskerroksen, sinun ei tarvitse huolehtia siitä, että muistikirjojen käyttäytyminen on toistettavissa eri tietokoneiden ja käyttöjärjestelmien välillä.
Tukeaksemme yhteistoiminnallisia työnkulkuja olemme rakentaneet melko yksinkertaisen palvelimen muistikirjojen tallentamista ja jakamista varten. Siellä on julkinen instanssi osoitteessa iodide.io, jossa voit kokeilla Iodidea ja jakaa työsi julkisesti. On myös mahdollista perustaa oma instanssi palomuurin taakse (ja itse asiassa näin teemme jo nyt Mozillassa joitakin sisäisiä töitä varten). Tärkeää on kuitenkin se, että itse muistiinpanovihkot eivät ole vahvasti sidoksissa yksittäiseen Iodide-palvelimen instanssiin. Tarvittaessa työsi pitäisi olla helppo siirtää toiselle palvelimelle tai viedä muistikirjasi pakettina jaettavaksi muihin palveluihin, kuten Netlifyyn tai Github Pagesiin (lisää pakettien viennistä jäljempänä kohdassa ”Mitä seuraavaksi?”). Laskennan pitäminen asiakkaassa antaa meille mahdollisuuden keskittyä todella hienon ympäristön rakentamiseen jakamista ja yhteistyötä varten ilman, että meidän tarvitsee rakentaa laskentaresursseja pilvipalveluun.
Pyodidi: Kun aloimme miettiä webin parantamista tiedemiehille, keskityimme tapoihin, joilla voisimme parantaa Javascriptin kanssa työskentelyä, kuten olemassa olevien tieteellisten kirjastojen kääntämiseen WebAssemblyksi ja niiden käärimiseen helppokäyttöisiin JS-API:hin. Kun ehdotimme tätä Mozillan WebAssembly-velhoille, he tarjosivat kunnianhimoisemman idean: jos monet tutkijat suosivat Pythonia, tulisi heitä kohdata siellä, missä he ovat, kääntämällä Pythonin tiedepino ajettavaksi WebAssemblyssä.
Luulimme, että tämä kuulosti pelottavalta – että siitä tulisi valtava projekti ja että se ei koskaan tuottaisi tyydyttävää suorituskykyä… mutta kaksi viikkoa myöhemmin Mike Droettboomilla oli toimiva toteutus, joka pyöritti Pythonia Iodide-tiedonmuistivihkon sisällä. Parin seuraavan kuukauden aikana lisäsimme Numpyn, Pandasin ja Matplotlibin, jotka ovat ylivoimaisesti käytetyimpiä moduuleja Pythonin tiedeekosysteemissä. Nexedin Kirill Smelkovin ja Roman Yurchakin avulla saimme tuen Scipylle ja scikit-learnille. Sen jälkeen olemme jatkaneet muiden kirjastojen lisäämistä pikkuhiljaa.
Python-tulkin käyttäminen Javascript-virtuaalikoneen sisällä lisää suorituskyvyn heikkenemistä, mutta tämä heikkeneminen osoittautuu yllättävän pieneksi – vertailuarvojemme mukaan se on noin 1x-12 kertaa hitaampi kuin natiivitulkki Firefoxissa ja 1x-16 kertaa hitaampi Chromessa. Kokemus osoittaa, että tämä on erittäin käyttökelpoinen interaktiiviseen tutkimukseen.
Matplotlibin ajaminen selaimessa mahdollistaa sen interaktiiviset ominaisuudet, jotka eivät ole käytettävissä staattisissa ympäristöissä
Pythonin tuominen selaimeen luo joitakin maagisia työnkulkuja. Voit esimerkiksi tuoda ja puhdistaa datasi Pythonissa ja käyttää tuloksena syntyviä Python-objekteja Javascriptistä (useimmissa tapauksissa muuntaminen tapahtuu automaattisesti), jotta voit näyttää ne käyttämällä JS-kirjastoja, kuten d3:a. Vielä maagisemmin voit käyttää selaimen API:ita Python-koodista käsin, jolloin voit esimerkiksi manipuloida DOM:ia koskematta Javascriptiin.
Pyodidesta on tietysti paljon muutakin sanottavaa, ja se ansaitsee oman artikkelinsa – menemme tarkemmin yksityiskohtiin ensi kuussa ilmestyvässä jatkopostauksessa.
JSMD (JavaScript MarkDown)
Aivan kuten Jupyterissa ja R:n R-Markdown-tilassa, Pyodidessa voit lomittaa koodia ja kirjoitusta haluamallasi tavalla ja pilkkoa koodisi ”koodipalasiksi”, joita voit muokata ja ajaa erillisinä yksikköinä. Tämän idean toteutuksemme on rinnakkainen R:n Markdown- ja MATLABin ”solutilan” kanssa: sen sijaan, että käytämme nimenomaisesti solupohjaista käyttöliittymää, Iodide-muistikirjan sisältö on vain tekstidokumentti, jossa käytetään erityistä syntaksia erityyppisten solujen rajaamiseen. Kutsumme tätä tekstimuotoa ”JSMD:ksi”.
MATLABin tapaan koodikappaleet määritellään riveillä, jotka alkavat kirjaimella %%
, jota seuraa merkkijono, joka ilmaisee alla olevan kappaleen kielen. Tällä hetkellä tuemme kappaleita, jotka sisältävät Javascriptin, CSS:n, Markdownin (ja HTML:n), Pythonin, erityisen ”fetch”-kappaleen, joka helpottaa resurssien lataamista, ja plugin-kappaleen, jonka avulla voit laajentaa Jodidin toiminnallisuutta lisäämällä uusia solutyyppejä.
Olemme havainneet tämän muodon olevan varsin kätevä. Sen avulla on helppo käyttää tekstipainotteisia työkaluja, kuten diff-katseluohjelmia ja omaa suosikkitekstieditoriasi, ja voit suorittaa tavallisia tekstitoimintoja, kuten leikkaa/kopioi/liitä, ilman että sinun tarvitsee opetella solujen hallintaan liittyviä pikanäppäimiä. Lisätietoja JSMD:stä voit lukea dokumentistamme.
Mitä seuraavaksi?
On syytä toistaa, että olemme vielä alfa-versiossa, joten jatkamme yleisen hiomisen parantamista ja bugien kitkemistä. Mutta sen lisäksi meillä on mielessä useita ominaisuuksia seuraavaa kokeilukierrosta varten. Jos jokin näistä ideoista tuntuu erityisen hyödylliseltä, kerro meille! Vielä parempi, kerro meille, jos haluaisit auttaa meitä niiden rakentamisessa!
Laajennetut yhteistoimintaominaisuudet
Kuten edellä mainittiin, olemme tähän mennessä rakentaneet hyvin yksinkertaisen taustajärjestelmän, jonka avulla voit tallentaa työsi verkkoon, tarkastella muiden tekemiä töitä ja haarukoida ja laajentaa nopeasti muiden käyttäjien tekemiä muistiinpanovihkoja, mutta nämä ovat vasta ensimmäiset askeleet käyttökelpoisessa yhteistoiminnallisessa työnkulussa.
Kolme seuraavaa suurta yhteistyöominaisuutta, joita aiomme lisätä, ovat:
- Google Docs -tyyliset kommenttiketjut
- Mahdollisuus ehdottaa muutoksia toisen käyttäjän muistikirjaan Githubin pull request -pyyntöjä muistuttavan fork/merge-työnkulun kautta
- Simultaaninen muistikirjan muokkaus kuten Google Docsissa.
Tässä vaiheessa priorisoimme ne suunnilleen tässä järjestyksessä, mutta jos haluaisit käsitellä niitä eri järjestyksessä tai sinulla on muita ehdotuksia, kerro meille!
Lisää kieliä!
Olemme keskustelleet R- ja Julia-yhteisöjen kanssa näiden kielten kääntämisestä WebAssemblyyn, mikä mahdollistaisi niiden käytön Jodidissa ja muissa selainpohjaisissa projekteissa. Alustavat tutkimuksemme osoittavat, että tämän pitäisi olla toteutettavissa, mutta näiden kielten toteuttaminen saattaa olla hieman haastavampaa kuin Pythonin. Kuten Pythonissakin, hienoja työnkulkuja avautuu, jos voit esimerkiksi sovittaa tilastollisia malleja R:llä tai ratkaista differentiaaliyhtälöitä Julialla ja näyttää tulokset selaimen sovellusliittymien avulla. Jos näiden kielten tuominen verkkoon kiinnostaa sinua, ota yhteyttä – erityisesti FORTRAN- ja LLVM-asiantuntijoiden apu olisi tervetullutta.
Export notebook-arkisto
Jodidin varhaiset versiot olivat itsenäisiä ajettavia HTML-tiedostoja, jotka sisälsivät sekä analyysissä käytetyn JSMD-koodin että JS-koodin, jota käytettiin itse Jodidin ajamiseen, mutta olemme siirtyneet pois tästä arkkitehtuurista. Myöhemmät kokeilut ovat saaneet meidät vakuuttuneiksi siitä, että Iodide-palvelimen yhteistyöhyödyt ovat suuremmat kuin tiedostojen hallinnan edut paikallisessa järjestelmässä. Nämä kokeet kuitenkin osoittivat meille, että on mahdollista ottaa ajettavissa oleva tilannekuva Iodide-muistikirjasta tallentamalla Iodide-koodi sekä kaikki muistikirjan käyttämät tiedot ja kirjastot yhteen suureen HTML-tiedostoon. Tämä saattaa olla lopulta isompi tiedosto kuin mitä haluaisit tarjota tavallisille käyttäjille, mutta se voi osoittautua hyödylliseksi täydellisesti toistettavaksi ja arkistoitavaksi tilannekuvaksi analyysistä.
Iodidista tekstieditoriin -selainlaajennus
Vaikka monet tiedemiehet ovat varsin tottuneita työskentelemään selainpohjaisissa ohjelmointiympäristöissä, tiedämme, että jotkut eivät koskaan muokkaa koodia muulla kuin suosikkitekstieditorillaan. Haluamme todella, että Iodide kohtaa ihmiset siellä, missä he jo ovat, mukaan lukien ne, jotka haluavat kirjoittaa koodinsa mieluummin jollakin muulla editorilla, mutta haluavat käyttää Iodiden tarjoamia interaktiivisia ja iteratiivisia ominaisuuksia. Tätä tarvetta varten olemme alkaneet miettiä kevyen selainlaajennuksen ja yksinkertaisten API:iden luomista, jotta Iodide voisi keskustella asiakaspuolen editorien kanssa.
Palaute ja yhteistyö tervetulleita!
Emme yritä ratkaista kaikkia datatieteen ja tieteellisen tietojenkäsittelyn ongelmia, ja tiedämme, että Iodide ei tule olemaan kaikkien mieleen. Jos sinun täytyy käsitellä teratavuja dataa GPU-klustereilla, Jodidilla ei luultavasti ole paljon tarjottavaa sinulle. Jos julkaiset lehtiartikkeleita ja sinun tarvitsee vain laatia LaTeX-dokumentti, tarpeisiisi on olemassa parempia työkaluja. Jos koko suuntaus tuoda asioita selaimeen saa sinut hieman säpsähtämään, ei hätää – on olemassa lukuisia todella upeita työkaluja, joilla voit tehdä tiedettä, ja olemme siitä kiitollisia! Emme halua muuttaa kenenkään työskentelytapaa, ja monille tiedemiehille verkkopainotteinen viestintä on sivuseikka. Rad! Live your best life!
Mutta niille tiedemiehille, jotka tuottavat sisältöä verkkoon, ja niille, jotka saattaisivat haluta tehdä niin, jos teillä olisi työkaluja, jotka on suunniteltu tukemaan työskentelytapaanne: haluaisimme todella kuulla teistä!
Käykää vierailulle iodide.io-sivustolle, kokeilkaa sitä ja antakaa meille palautetta (mutta vielä kerran: muistakaa, että tämä hanke on alfavaiheessa – älkää käyttäkö sitä mihinkään kriittiseen työskentelyyn, ja huomioikaa myös, että alfa-vaiheessa ollessamme kaikki voi muuttua). Voit osallistua nopeaan kyselyyn, ja Github-kysymykset ja vikailmoitukset ovat erittäin tervetulleita. Ominaisuuspyyntöjä ja ajatuksia yleisestä suunnasta voi jakaa Google-ryhmässämme tai Gitterissä.
Jos haluat osallistua auttamaan meitä Jodidin rakentamisessa, olemme avoimen lähdekoodin Githubissa. Iodide koskettaa monenlaisia ohjelmistoaloja modernista frontend-kehityksestä tieteelliseen laskentaan ja kääntämiseen ja siirtämiseen, joten mielenkiintoista tekemistä riittää! Ota yhteyttä, jos jokin näistä kiinnostaa sinua!
Suuret kiitokset Hamilton Ulmerille, William Lachancelle ja Mike Droettboomille loistavasta työstä Iodiden parissa ja tämän artikkelin arvostelusta.
Tietoa Brendan Colloranista
Lisää artikkeleita kirjoittajalta Brendan Colloran…