Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Stargazers - 25.07.09 - klo:11.37
-
Tuli tässä tänään ja eilen vähän väsättyä omaa ShortURL-palvelua.
Eli siis sivu joka vain lyhentää urleja lyhempään muotoon.
Tämä tuli väännettyä kanssa omaan tarpeeseen, joten sen se on näköinenkin ;
En löytänyt nopeasti itselleni sopivaa joten tein itse. Ohjelma ei käytä tietokantaa, vaan lisää urlit suoraan
tekstitiedostoon. Tämä sen takia että omassa käytössäni olisi tietokannan käyttö jo vähän yliampuvaa kun niitä
urleja ei _niin_ paljoa tule. ShortURL-palvelun voi vilkaista http://s.runosydan.net osoitteessa.
Eli projekti löytyy GitHubista jos on tarvetta pistää omalle servulle:
http://github.com/stargazers/ShortURL/tree/master
-
Tuli tässä tänään ja eilen vähän väsättyä omaa ShortURL-palvelua.
Id:t 18 ja 19 demoavat ensimmäisen bugin.
Ohjelma ei käytä tietokantaa, vaan lisää urlit suoraan tekstitiedostoon.
Kyllä se tekstitiedostokin on tietokanta (http://fi.wikipedia.org/wiki/Tietokanta).
-
Tarkennatko toki mitä tarkoitat?
Eli toinen vei urliin jota ei ollut ja toinen vei googleen jossa hakusanana oli foo?
-
Tarkennatko toki mitä tarkoitat?
Eli toinen vei urliin jota ei ollut ja toinen vei googleen jossa hakusanana oli foo?
Molemmissa on pystyviiva "|" ja nykyisellään se sotkeentuu tietueen kenttien erotinmerkkinä käytettävän pystyviivan kanssa. Jälkimmäisen linkin olisi pitänyt viedä Googleen hakusanalla "foo|bar".
-
Ahaa, tarkoitit tuollaista. Jeesh, koetin aikaisemmin etsiä urlia missä on pystyviiva mutta eihän sitä silloin etsimisvaiheessa toki vastaan tullut ;)
Kiitosta ilmoituksesta, fiksaan tuon mahdollisimman pian :)
-
No niin, nyt on muutettu versio tuolla. Kiitos ilmoituksesta!
Eli pistin urlencode ja urldecodet, joten uudet urlit _pitäisi_ mennä oikein filuun.
-
Ahaa, tarkoitit tuollaista. Jeesh, koetin aikaisemmin etsiä urlia missä on pystyviiva mutta eihän sitä silloin etsimisvaiheessa toki vastaan tullut ;)
Eihän niitä tarvitse etsiä. Riittää kun sellaisen luo itse ;)
-
Eli pistin urlencode ja urldecodet, joten uudet urlit _pitäisi_ mennä oikein filuun.
Näyttää paremmalta. Minä muuten olisin laittanut aikaleiman id:n perään ja url:n viimeiseksi. Tämä ihan siitä syystä että aikaleimat ovat tasalevyisiä ja näin ollen tiedostosta olisi tullut helpommin luettava.
-
Näyttää paremmalta. Minä muuten olisin laittanut aikaleiman id:n perään ja url:n viimeiseksi. Tämä ihan siitä syystä että aikaleimat ovat tasalevyisiä ja näin ollen tiedostosta olisi tullut helpommin luettava.
Niin, toisaalta. Toisaalta taas varsinainen tiedosto ei ole tarkoitettu ensisijaisesti suoraan luettavaksi, joten en tiedä.
Voisi se toki olla parempi siten, mene tiedä :)
-
Kyllä se tekstitiedostokin on tietokanta (http://fi.wikipedia.org/wiki/Tietokanta).
No toki jos tuolta kannalta ajatellaan, mutta lähinnä tässä kontekstissa viittasin tietokannalla erillisiin
tietokantaohjelmistoihin, esim. MySQL/PostgreSQL/SQLite jne.
-
Kyllä se tekstitiedostokin on tietokanta (http://fi.wikipedia.org/wiki/Tietokanta).
No toki jos tuolta kannalta ajatellaan, mutta lähinnä tässä kontekstissa viittasin tietokannalla erillisiin
tietokantaohjelmistoihin, esim. MySQL/PostgreSQL/SQLite jne.
Viittasit siis relaatiotietokantoihin.
-
Viittasit siis relaatiotietokantoihin.
Jep. Juurikin näin.
-
Ohjelma ei käytä tietokantaa, vaan lisää urlit suoraan
tekstitiedostoon. Tämä sen takia että omassa käytössäni olisi tietokannan käyttö jo vähän yliampuvaa kun niitä
urleja ei _niin_ paljoa tule.
Yleisesti ottaen tietokantojen käyttö on suositeltavaa tiedon rakenteen selkiyttäjänä. Jos palvelimellasi on esimerkiksi SQLite-tuki, kannattaa sitä käyttää. SQLite on varmaankin tietokantaohjelmista kaikkein kevyin, ja sopii parhaiten tällaiseen tarkoitukseen. Oma nyrkkisääntöni on, että jos tekstitiedoston rakenteen kanssa joutuu kikkailemaan, silloin olisi ollut parempi käyttää tietokantaa. Esimerkkiohjelmasi on tässä mielessä rajaviivalla, todennäköisesti olisit selvinnyt vähän vähemmällä työllä tietokantaa käyttämällä.
Kyllä se tekstitiedostokin on tietokanta (http://fi.wikipedia.org/wiki/Tietokanta).
Asiayhteydestä käy selville mitä tarkoitetaan, ja tässä yhteydessä pedanttisuus sotkee enemmän kuin selventää.
-
Oma nyrkkisääntöni on, että jos tekstitiedoston rakenteen kanssa joutuu kikkailemaan, silloin olisi ollut parempi käyttää tietokantaa.
Minusta tärkein etu SQLitessä tekstitiedostoon nähden on ACID. Pienissäkin projekteissa (yksi taulu) on erittäin hyödyllistä että transaktiot on eristetty eivätkä ne pääse vaikuttamaan toisiinsa. Tässäkin projektissa ajaudutaan ongelmiin jos kaksi tai useampia lisäyksiä tapahtuu samanaikaisesti.
Kyllä se tekstitiedostokin on tietokanta (http://fi.wikipedia.org/wiki/Tietokanta).
Asiayhteydestä käy selville mitä tarkoitetaan, ja tässä yhteydessä pedanttisuus sotkee enemmän kuin selventää.
Kyllä se asiayhteydestä kävi ilmi, mutta samalla jäi epäselväksi onko terminologia selvää viestin kirjoittajalle. Miten hän voisi oppia oikean terminologian jos kukaan ei koskaan häntä oikaise?
Pedanttisuus ei tässä yhteydessä sotke asioita. Minusta seuraava teksti on selkeämpi kuin aloitusviestissä oleva teksti: "Ohjelma ei käytä relaatiotietokantaa, vaan lisää urlit suoraan tekstitiedostoon. Tämä sen takia että omassa käytössäni olisi relaatiotietokannan käyttö jo vähän yliampuvaa kun niitä urleja ei _niin_ paljoa tule."
Jos lukija ei tiedä mitä relaatiotietokanta tarkoittaa eikä hän osaa sitä itselleen selvittää niin hän ei todennäköisesti ymmärrä muutakaan viestin sisältöä.
-
Tässäkin projektissa ajaudutaan ongelmiin jos kaksi tai useampia lisäyksiä tapahtuu samanaikaisesti.
Toisaalta jos olet itse ainoa käyttäjä niin tuleeko niitä yhtäaikaisia lisäyksiä? ;)
Nyt tuota taitavat testata kaikki ja eihän tuota ole myöskään suojattu mitenkään, joten niitä ongelmia voi tulla.
PS. Minulla ei ole pahemmin kokemusta tälläisestä. ;)
-
Tässäkin projektissa ajaudutaan ongelmiin jos kaksi tai useampia lisäyksiä tapahtuu samanaikaisesti.
Toisaalta jos olet itse ainoa käyttäjä niin tuleeko niitä yhtäaikaisia lisäyksiä? ;)
Sen vuoksi en maininnutkaan asiasta ensimmäisessä viestissä vaan vasta siinä vaiheessa kun keskustelu siirtyi käsittelemään relaatiotietokantojen etuja tavallisiin tekstitiedostoihin nähden.
-
Jos lukija ei tiedä mitä relaatiotietokanta tarkoittaa eikä hän osaa sitä itselleen selvittää niin hän ei todennäköisesti ymmärrä muutakaan viestin sisältöä.
Relaatiotietokanta on tässä yhteydessä täysin tarpeeton sivistyssana, joka pikemminkin vähentää tekstin ymmärrettävyyttä kuin lisää sitä. Itse käyttäisin tällaisessa tilanteessa yksinomaan sanaa tietokanta.
Toisaalta, myös tekstitiedosto voi olla relaatiotietokanta, jos se on suunniteltu oikealla tavalla. Samoin varsinaisilla tietokantaohjelmilla on mahdollista toteuttaa tietokantoja jotka eivät ole relaatiotietokantoja, mikä tosin lähinnä tarkoittaa tehtyjä virheitä tietokannan suunnittelussa.
-
Yleisesti ottaen tietokantojen käyttö on suositeltavaa tiedon rakenteen selkiyttäjänä. Jos palvelimellasi on esimerkiksi SQLite-tuki, kannattaa sitä käyttää. SQLite on varmaankin tietokantaohjelmista kaikkein kevyin, ja sopii parhaiten tällaiseen tarkoitukseen.
Jep. Tiedän, olen käyttänyt myös SQLiteä, mutta halusin nimenomaisesti tehdä tämän käyttäen tekstitiedostoa, koska ne toimivat laitoinpa sen minne tahansa (esim. omalle ulkoiselle kovalevylleni pyörivälle serverille). SQLiteä sinne ei ole tainnut tulla asennettua ja levytilakin vähissä, joten helpommalla pääsin kun tein nimenomaisesti tekstitiedoston. Varsinaisesti en myöskään näe tarpeelliseksi käyttää tälläisessä tapauksessa relaatiotietokantaa, sillä hakuja ei juurikaan tehdä ja parsiminen tekstifilusta on tarpeeksi nopeaa myös tuolla tavalla mitä käytin.
Oma nyrkkisääntöni on, että jos tekstitiedoston rakenteen kanssa joutuu kikkailemaan, silloin olisi ollut parempi käyttää tietokantaa. Esimerkkiohjelmasi on tässä mielessä rajaviivalla, todennäköisesti olisit selvinnyt vähän vähemmällä työllä tietokantaa käyttämällä.
Totta. Tietokannoista on helppoa hakea juurikin mitä haluaa esim. ID:n perusteella, mutta koska omat tarpeeni oli nimenomaisesti olla käyttämättä relaatiotietokantaa, tein sen siksi käyttäen tekstitiedostoja.
-
Toisaalta jos olet itse ainoa käyttäjä niin tuleeko niitä yhtäaikaisia lisäyksiä? ;)
Nyt tuota taitavat testata kaikki ja eihän tuota ole myöskään suojattu mitenkään, joten niitä ongelmia voi tulla.
Jeps. Tämä on toki totta, että samaan aikaan voi kaksi ihmistä käydä tekemässä shorturlin, mutta koska käyttö
on itselläni niin pienimuotoista, en pitä tätä mitenkään merkittävänä ongelmana. Tokihan tuolla nyt voi kuka tahansa testata tuota, koska sitä ei ole suojattu ja voihan se olla että kaksi ihmistä käyttää samaan aikaan ja räjähtää koko roska, mutta noh, jos tarvitsen "vakavampaa" väännän SQLite/MySQL taulun jolloin saa estettyä moisia ongelmia. Kuitenkin näin pienessä mittakaavassa missä itse käytän kyseinen asia ei siis ole ongelma itselleni.