Kirjoittaja Aihe: Simppeli ShortURL  (Luettu 5045 kertaa)

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Simppeli ShortURL
« : 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

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #1 : 25.07.09 - klo:11.53 »
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.
« Viimeksi muokattu: 25.07.09 - klo:12.01 kirjoittanut mgronber »

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #2 : 25.07.09 - klo:11.57 »
Tarkennatko toki mitä tarkoitat?
Eli toinen vei urliin jota ei ollut ja toinen vei googleen jossa hakusanana oli foo?

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #3 : 25.07.09 - klo:12.05 »
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".

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #4 : 25.07.09 - klo:12.06 »
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 :)

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #5 : 25.07.09 - klo:12.16 »
No niin, nyt on muutettu versio tuolla. Kiitos ilmoituksesta!

Eli pistin urlencode ja urldecodet, joten uudet urlit _pitäisi_ mennä oikein filuun.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #6 : 25.07.09 - klo:12.18 »
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 ;)

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #7 : 25.07.09 - klo:12.20 »
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.

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #8 : 25.07.09 - klo:13.25 »
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ä :)

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #9 : 25.07.09 - klo:13.26 »
Kyllä se tekstitiedostokin on tietokanta.

No toki jos tuolta kannalta ajatellaan, mutta lähinnä tässä kontekstissa viittasin tietokannalla erillisiin
tietokantaohjelmistoihin, esim. MySQL/PostgreSQL/SQLite jne.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #10 : 25.07.09 - klo:14.33 »
Kyllä se tekstitiedostokin on 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.

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #11 : 25.07.09 - klo:14.38 »
Viittasit siis relaatiotietokantoihin.

Jep. Juurikin näin.

snifi

  • Vieras
Vs: Simppeli ShortURL
« Vastaus #12 : 25.07.09 - klo:15.21 »
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.

Asiayhteydestä käy selville mitä tarkoitetaan, ja tässä yhteydessä pedanttisuus sotkee enemmän kuin selventää.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #13 : 25.07.09 - klo:16.10 »
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.

Lainaus
Kyllä se tekstitiedostokin on 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öä.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11441
    • Profiili
    • Tomin kotisivut
Vs: Simppeli ShortURL
« Vastaus #14 : 25.07.09 - klo:16.20 »
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ä. ;)
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #15 : 25.07.09 - klo:16.25 »
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.

snifi

  • Vieras
Vs: Simppeli ShortURL
« Vastaus #16 : 25.07.09 - klo:17.23 »
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.
« Viimeksi muokattu: 25.07.09 - klo:17.45 kirjoittanut snifi »

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #17 : 25.07.09 - klo:18.04 »
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.

Stargazers

  • Käyttäjä
  • Viestejä: 549
    • Profiili
Vs: Simppeli ShortURL
« Vastaus #18 : 25.07.09 - klo:18.10 »
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.