Itse pähkäilin tuossa kun piti saada Ruby-koodia väritettyä järkevästi nettisivuilla, ja törmäsin tuollaiseen:
http://qbnz.com/highlighter/
Eli Geshi. Värittää näppäpärästi lähes kaikki kielet, ja oli naurettavan helppo käyttääkin. Lisenssi on GPL. Ajattelin vain että kun putka on vissiinkin uudistumassa, että tuossa voisi olla toimiva ja helppo tapa saada koodiväritys toimimaan järkevästi myös eksoottisemmissa kielissä.
Näyttää loistavalta. Kannatetaan!
Valmiiden väritysten korjailu vain on vihoviimeistä puuhaa, ja kaikenlaiset lisenssit vähän arveluttavat. Näillä näkymin myös uusi koodinväritys on omatekoinen - mutta toimii aiempaa paremmin ja kattaa enemmän kieliä.
Niinpä niin, omaa viritystä taas ko valmista on tarjolla. Luulis olevan helpompi "korjailla" värityksiä ko tehä ite oma väritysskripti. Eikä olis menny koko kesää tuijotellessa koodeja ilman värityksiä kun olis voinu ottaa heti käyttöön. Lisenssikään ei niitä vaikeaselkoisimpia ole - lähinnä, että jos muokkaat niitä alkuperäisiä värityksiä niin siitä pitänee olla jossain maininta loppukäyttäjille.
Nah, laitetaan samantien koko putka jollekin valmiille fooruminpohjalle. Mieluummin sellaiselle jossa on miljoona erilaista toimintoa aina hymiöistä yksityisviesteihin ja käyttöliittymä että koodi erittäin vaikeaselkoisia. Mitä sitten jos on paska, kunhan ei vain ole joutunut tekemään töitä sen eteen ja se miellyttää kaikenlaisia teiniwannabekoodareita..
-Grey-
Asiapitoista tekstiä. Tässähän ei siis käyttöliittymää loppukäyttäjälle ole ja luokan käyttäminenkin on melko suoraviivaista. Uusi instanssi, jolle parametreina väritettävä koodi, kieli ja kielitiedostojen polku. Jos jotain huonoa pitää ensisilmäyksellä sanoa, niin kielitiedostot voisivat olla jossain paremmin nimetyssä hakemistossa - tällä hetkellä ne löytyvät <installdir>/geshi/. Lisäksi tuon language_pathin voisi tunkea configgiin, ei tarvitsisi aina syöttää sitä luokalle parametrina.
Ja tuo signature, kyllä sen nimen siitä nimen kohalta näkee.
tsuriga kirjoitti:
Eikä olis menny koko kesää tuijotellessa koodeja ilman värityksiä kun olis voinu ottaa heti käyttöön.
Tällä hetkellä toimimaton PHP:n väritys on ainoa, jonka tyhmyyttäni otin valmiina. Luotin lapsellisesti siihen, että PHP:n highlight_string toimisi kunnolla, vaan toisinpa kävi. Ja kun funktio ei ole itse tekemäni, niin en sitä pysty korjaamaankaan. Tällaiset ongelmat ovat tärkeä syy siihen, että pyrin tekemään koko sivuston koodin itse.
Asteen verran helpompi korjailla noita custom-funkkareita, kuin kielen omia. Tyhmä paljon työtä tekee, viisas pääsee vähemmällä :E
Valmiin koodin muokkaaminen on joskus _erittäin_ hidasta ja hermoja raastavaa. Itse koodatun systeemin etu on, että jokaisen koodirivin toiminnan ja tarkoituksen tietää. Jos jotain tarvitsee lisätä, ei tarvitse hukata aikaa siihen että etsii oikean kohdan. Mutta kukin tyylillään.
Keskittykää nyt tuohon Geshiin eikä kaiken maailman purkkaviritysskripteihin joihin oletta mahdollisesti törmännyt.
Olen wanhain aicain konservatiivi joten tahdon tehdä kaiken itse. Vakoileminen on tietysti loistava tapa luoda omaa matskua, mutta kokonaan varastaminen ei oikein tunnu kovin opettavaiselta, ainakaan positiivisessa mielessä. Siinä tsuriga on oikeassa, että pyörää ei kannata keksiä uudestaan, mutta mitään ei pidä niellä purematta. Kukapa sitä kaupassa myytävää jauhelihaa sellaisenaan syö - eiköhän sen jokainen paista ja mausta omien suuntaumustensa mukaisesti?
Niin, ostetaan jauhelihaa mutta itse lehmää ei millään viitsittäis itse tappaa vaan heitetään johonkin automatisoituuneeseen tehtaaseen.
oooh, keksinpä hienon jatkokielikuvan HellComen viestille :o
Ihan kätevältähän tuo näyttää. Tulostus on melko selkeää ja väritys luodaan css:llä, jolloin sitä luulisi olevan aika helppo muokata. Itse saattaisin jossain käyttää, koska se nyt kerta taitaa olla melko toimiva ja avoinkin ja vaikka mitä. Nähdäkseni se kuitenkin edellyttäisi koko sivustolta oliopohjaista toteutusta toimiakseen kyllin luotettavasti, koska silloin ei ole niin suurta riskiä, että yhden rivin muuttaminen rikkoo jotain toisella puolella ohjelmaa.
Antti Laaksonen kirjoitti:
[...] ja kaikenlaiset lisenssit vähän arveluttavat.
Tuo lisenssihän on ihan tuttu ja turvallinen GPL, jossa ei käsittääkseni pitäisi olla mitään epäilyttävää. Korjatkaa, jos olen väärässä.
En nyt kuitenkaan painosta Anttia: samahan se minulle on, miten koodin väritys toimii, kunhan se vain toimii.
Olen samaa mieltä Teuvo Töhvelön kanssa.
Antti, en tiedä highlight_string() funkkarista, mutta itselläni ainakin highlight_file() toimi vallan mainiosti.
Toisinaan PHP:n oma väritys toimi, toisinaan ei. Jos saman sivun latasi kahdesti peräkkäin, tulos saattoi olla erilainen.
Itse kannatan itsetehtyä koska:
a) Tehdessä oppii aina. (No tästä ei ole käyttäjille yleensä hirveästi hyötyä)
b) Korjaaminen helppoa
c) Helposti paranneltavissa esim. rakentavan palautteen pohjalta.
d) Ominaisuudet voi tehdä vastaamaan tismalleen omia tarpeita.
e) Ei ole samanlainen, kuin tuhannet muut.
Tässä näitä. Onhan niitä huonojakin puolia, mutta ainakin minä olen "tee se itse" -ihmisiä. Kyllä se vähän näkyy laadussa. :P
Noh, kyllähän minäkin olen melko lailla tee-se-itse.
Valmista koodia vain hätätapauksessa, ja silloinkin katson, että ymmärrän sen ensin :)
Minä tykkään käyttää valmista koodia hyödyksi niin paljon kuin suinkin. Se nopeuttaa paljon projektejani. Lisäksi virheitäkin on yhtä nopea etsiä kuin omasta koodista, pitää vain testata pieniä osia niin kauan kuin mahdollista.
Toisten tekemää koodia on hyvä oppia lukemaan ja ylläpitämään. Minulla on kokemusta ohjelmoimisesta työelämässä, missä piti jatkaa kesken jäänyttä projektia. Koodi oli selkeää, sain nopeasti selville ohjelman idean ja toteutin projektin loppuun. Oikeastaan sain projektin nopeammin valmiiksi, kuin jos olisin itse suunnitellut ohjelman alusta asti, vaikka siihen mennessä koodia ei ollut kirjoitettu paljoa. Näin kuitenkin käyttöliittymästä, miten projekti tuli jatkaa loppuun.
Makuasia, käyttääkö valmista koodia vai ei. Omasta mielestäni on vain hauskempaa tehä ite (jos osaan :> )
Mutta kyl se koodi jota käyttää pitäs ymmärtää, muuten ei korjauksista / lisäyksistä tuu mitään...
Kentti kirjoitti:
Mutta kyl se koodi jota käyttää pitäs ymmärtää, muuten ei korjauksista / lisäyksistä tuu mitään...
Ei välttämättä. Käytän monesti funktioita pelkästään api-kuvausten perusteella. En tiedä, miten vaikkapa C++:n iostream-kirjasto on toteutettu, mutta hyödynnän sitä lähes jokaisessa ohjelmassani.
Valmiit funkkarit on eri asia, mutta entä jos sun pitäis muokata sitä funktiota suorittamaan joitain erilaisia tehtäviä. Hankalaa, ellet ymmärrä, miten se funktio toimii..
Mutta makuasia, kuten sanoin.
Kuinka moni teistä tee-se-itse-miehistä on tehnyt itse käyttämänsä kääntäjät, assemblerit ja muut kilkkeet? Entäpä oma prosessori, joko on valmistuksessa?
Jostain syystä se itse keksimisen ilo hyytyy aina jossain vaiheessa. Se on todellakin makuasia, missä vaiheessa.
Koodin ymmärrettävyyden takia koodi tulee kommentoida ja jäsentää oikeaoppisesti. Olisihan sen geshin voinut edes väliaikaisesti laittaa. Toivottavasti muotoiluskripti myös huomaa automaattisesti aloitustagit ja lisää kooditagit jos niitä ei jo ole.
Jaska kirjoitti:
Kentti kirjoitti:
Mutta kyl se koodi jota käyttää pitäs ymmärtää, muuten ei korjauksista / lisäyksistä tuu mitään...
Ei välttämättä. Käytän monesti funktioita pelkästään api-kuvausten perusteella. En tiedä, miten vaikkapa C++:n iostream-kirjasto on toteutettu, mutta hyödynnän sitä lähes jokaisessa ohjelmassani.
Mutta teetkö sinä siihen korjauksia ja lisäyksiä? Etpä taida.
Kopeekka kirjoitti:
Kuinka moni teistä tee-se-itse-miehistä on tehnyt itse käyttämänsä kääntäjät, assemblerit ja muut kilkkeet? Entäpä oma prosessori, joko on valmistuksessa?
Jos jokin tuote tehdään kokonaan itse, niin se ei sentään automaattisesti tarkoita, että työkalutkin tehdään itse. Esimerkkisi oli siis melkoisen huono. Paljon paremmin toimiva kysymys on, että halutaanko tehdä tärkeimmät ja usein toistuvat asiat valmiilla kirjastoilla vai omilla kyhäelmillä. Siis käytetäänkö vaikkapa SDL:ää vai rakennellaanko oma kirjasto. Harkintahan on aina projektikohtainen, tässä kallistuisin itse luultavasti samaan ratkaisuun kuin Antti.
Teuvo Töhvelö kirjoitti:
Tuo lisenssihän on ihan tuttu ja turvallinen GPL, jossa ei käsittääkseni pitäisi olla mitään epäilyttävää. Korjatkaa, jos olen väärässä.
Ymmärsinkö oikein? Uskallat kutsua tutuksi ja turvalliseksi lisenssiä, jota et nähtävästi ole koskaan itse lukenut saati ymmärtänyt? Lisenssi- ja muiden lakiasioiden kanssa kannattaa olla tarkkana.
Sittenkin voi olla järkevää tehdä se itse. Tuo GPL kun on ymmärtääkseni aika pitkä litania luettavaksi ja eipähän kukaan tule valittamaan jos Putka tekee oman.
Edit: Ja myös voi olla aika järkevää mitoittaa tuo omien juttujen tekeminen käyttäsuhteen mukaan. Kuten tkarkkainen tuossa jo hienosti mainitsikin, ei välttämättä tartte tehdä omaa graffakirjastoa.
Jaska kirjoitti:
Toisten tekemää koodia on hyvä oppia lukemaan ja ylläpitämään. Minulla on kokemusta ohjelmoimisesta työelämässä, missä piti jatkaa kesken jäänyttä projektia. Koodi oli selkeää, sain nopeasti selville ohjelman idean ja toteutin projektin loppuun. Oikeastaan sain projektin nopeammin valmiiksi, kuin jos olisin itse suunnitellut ohjelman alusta asti, vaikka siihen mennessä koodia ei ollut kirjoitettu paljoa. Näin kuitenkin käyttöliittymästä, miten projekti tuli jatkaa loppuun.
Aina se ei vain ole helppoa. Oliko kyseessä 100, 1000 vai 100000 rivin koodimassa? Todennäköisesti pienemmästä päästä. Itse olen touhunnut 300000-500000 rivin koodimassojen kanssa joista on pitänyt saada selkoa (ja ei, kommentit ja muut eivät olleet kovin avuliaita) ja kyllä sekin onnistuu mutta ei aina kovin nopeasti.
Ja kun ottaa huomioon että monet "valmiit" palikat eivät ole yleensä kovinkaan hyvin dokumentoituja eivätkä valmiita vaan toteuttavat jonkin osan mutteivät kaikkia voi mennä hyvinkin kauan saada se toimimaan kuten itse haluaisi.
kayttaja-4976 kirjoitti:
Tuo GPL kun on ymmärtääkseni aika pitkä litania luettavaksi
Vähän offtopikin puolelle menee, mutta ei tuo minusta ole mitenkään epäselvä tai turhan pitkä luettavaksi, epävirallinen suomenkielinen käännös löytyy osoitteesta http://www.turre.com/licenses/gpl_fi.php.
Kannattaa lukea niin ei tarvitse mutuilla lisenssiasioissa.
Nyt on PHP-väritys käytössä, vaan entäpä JavaScript, Java, Ruby, etc.? Muutenkin Putkan kehitys etenee kuin etana hillossa - lisäkehittäjät paikallaan?
On joo kestänyt minunkin mielestä jotenkin kauan oloisesti tämä kehitys.
>tsuriga
>Squid
Mitä tiedän, on Antti Laaksosella elämä ja mitä tiedän lisää, nyt tuppaa kaikilla opiskelijoilla olemaan kiireitä. Sitä paitsi, onhan AL pitänyt putkaa melko hyvin pystyssä noista huolimatta, vai olisiko parempi että moinen unohtaisi putkan kokonaan? Ehei, kyllä hän sen muistaa, mutta oma elämä ensin. Ymmärrätte kyllä sen kun olette vanh.. siis, öh, mutta eihän nörtit koskaan ymmärrä mitään tälläistä :-P
-Grey-
Ja sen takia niitä lisäkehittäjiä vois tuoda lisäkehittäjiä / käyttää valmiita kirjastoja jos ja kun ei omaa aikaa ole. Uskallan väittää ettei Laaksosella ole vuotta putkeen ollut niin kiire, että syntaksiväritystä ei siinä ajassa kerkiä saamaan valmiiksi. Kyse on priorisoinnista, jonka olen huomannut itselleni olevan erittäin suuri ongelma: uudet ideat hyppäävät aina prioriteettilistan kärkeen ja moni asia jää kesken.
-Kts. yllä-
tsuriga kirjoitti:
Ja sen takia niitä lisäkehittäjiä vois tuoda lisäkehittäjiä / käyttää valmiita kirjastoja jos ja kun ei omaa aikaa ole.
Lisäkehittäjät, onko sellaista henkilöä joka osaa tehdä asiat yhtä hyvin tai paremmin kuin AL? Enpä usko että liian monia sellaisia löytyy. Koodauksen puolella omien kokemuksien mukaan vielä vähemmän, kun tuppaa olemaan liiaksi wannabetaitelijoita ja muodin perässä kulkevia että niitä joiden mielestä hänen tapansa on se ainoa oikea.
Kirjastot? Lisensseistä jo mainittiinkin. Vaan eipä kukaan tainnut mainita ja olla edes huomannut muuatta seikkaa putkaan liittyen. Nimittäin Ohjelmointiputka on melkoslailla puolueeton paikka. Mitään erityistä ei tunnuta suosivan ja hyvä niin. Jos alettaisiin käyttää kirjastoja, aletaan olla tavalla tai toisella jonkin asian puolella, eikä se sopine mielestäni putkan tyyliin..
-Grey-
Kyllä minä luulen, että Suomesta löytyy montakin henkilöä, joka vääntää ihan yhtä hyvää koodia kuin Laaksonen. Valintaprosessin kautta vaan. Tai olisi edes hakusessa vaan eipä ole kuulunut. Suht triviaali kyseenalaistus. Kyllähän se ihan järkeen käy, että kun mittakaavat suurentuvat niin tarvitaan yhä useampi henkilö hoitamaan asioita. Mikäli mainittua pätevyyttä tosiaan löytyy, pitäisi myös tiimityöskentelyn sujua vaivatta.
Lisensseistä mainittiin myös se, että ei tuo GPL mikään, Anzuhania lainaten, "hepreankielinen opus kryptografiasta" ole. Ja totta kai tässä ollaan otettu puolia - omien kirjastojen puoli nimittäin. Mainittakoon, että Mureakuhassa on ymmärtääkseni yhdistelty omaa ja lainattua, ja symbioosi toimii, joten kyllä toimivan systeemin luominen on mahdollista myös valmiiden kirjastojen avustuksella.
Mikä tärkeintä, lisäkehittäjät / valmiit kirjastot olisivat yhteisölle hyödyllisiä. Varmastikin useat sivuston käyttäjät katselisivat eri kielillä kirjoitettuja koodeja mieluusti väreissä. Tällä hetkellä kielistä on tuettuna vain murto-osa.
-Kts. yllä-
Yksi ja toinen osaa tehdä sivuja minua paremmin, mutta pitkäaikainen sivustoon sitoutuminen onkin toinen juttu. Jos projektia tekee suuri joukko, kukaan ei joudu ottamaan vastuuta mistään. Mutta jos projektia tekee yksi, syntipukki löytyy takuuvarmasti peiliin katsomalla. Yllättäen yksi voi saada enemmän aikaan kuin kymmenen yhdessä.
Jos tällä hetkellä koodinväritys on suurin huolenaihe, sivuston asiat ovatkin aika hyvin. Minusta tärkein asia on sivuston sisältö, ja siihen koetan käyttää eniten aikaani. Harva kuitenkaan tulee sivustolle komean ulkoasun tai edes täydellisen koodinvärityksen perässä. Oppaat, koodivinkit, keskustelu ja putkapostitehtävät ovat ne asiat, jotka kävijöitä kiinnostavat.
Ja näissä asioissa jos jossain otan kaiken avun ilomielin vastaan!
Lopullisen vastuun kantaa aina projektin vetäjä, tässä tapauksessa se olisit sinä. Kokonaisuuden eri osien kehittäjillä on sitten oma vastuunsa tekemisistään. Toki sisältö on sivustolle ensiarvoisen tärkeää, mutta kyllä tiedon selkeälle esittämisellekin tulisi antaa prioriteettiä enemmän, kuin mitä nyt on nähty. Koodiväritys on vain yksi ehdotus niiden joukossa, joihin moni on toivonut parannusta.
tsuriga kirjoitti:
Kyllä minä luulen, että Suomesta löytyy montakin henkilöä, joka vääntää ihan yhtä hyvää koodia kuin Laaksonen.
Koodauksen osaaminen on pitkälti toissijainen asia, eritoten foorumien ja muiden kanssa missä loppujen se tärkein on käyttäjät. Olkoot miten hyvin tehty foorumi tahansa ja miten erinomaista informaatiota, sen arvo on nolla mikäli käyttäjäkunta koostuu peeloista tai elitistihyypistä.
Jos aletaan puhua siitä että vain informaatio on tärkeää, kannattaa sitten poistaa kokonaan mahdollisuus keskusteluun kanssaihmisten kanssa ja luoda sivusto, jossa on pelkkää informaatiota, ei mitään foorumia. Wikipedia ja muut ovat hyvä esimerkki sellaisista sivustoista. Niistä saa informaation hyvin ilman häiritsevää kommunikointia muiden kanssa..
-Grey-
Varmasti löytyy heitäkin, ei tämä Laaksonen mikään ihmemies ole vaan eiköhän sitä ole tyhjästä aloitettu ja rakennettu tämäkin sivusto. Eikä lisäkehittäjien kontolle tarvitse eikä tulekaan antaa koko sivustoa, vaan osa-alueita, jolloin heidän ei tarvitsekaan välttämättä olla kokeneita keskustelusivuston ylläpitäjiä.
En huomaa kenenekään väittäneen vain informaation olevan tärkeää. Sitä paitsi, myös keskustelussa välittyy informaatiota. Usein. Toivottavasti :).
Grey kirjoitti:
Wikipedia ja muut ovat hyvä esimerkki sellaisista sivustoista. Niistä saa informaation hyvin ilman häiritsevää kommunikointia muiden kanssa..
Huono esimerkki. Wikipediassakin kun on jokaista aihetta kohden keskustelusivu.
Blaze kirjoitti:
Grey kirjoitti:
Wikipedia ja muut ovat hyvä esimerkki sellaisista sivustoista. Niistä saa informaation hyvin ilman häiritsevää kommunikointia muiden kanssa..
Huono esimerkki. Wikipediassakin kun on jokaista aihetta kohden keskustelusivu.
Mutta Wikissäpä sitä keskustelualuetta ei ole laitettu yksinomaan sen tiedonhaun takia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.