Pieniä kysymyksiä ohjelmoinnista

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Nykyään kai paras paikka avainsanoille on title. Joka sivulle oma luoneteva otsikko joka ei toistu sivulta toiselle ja pituus joku ihan max 50 merkkiä. Ja titleä kun muotoilee niin tärkein avainsana alkuun ja niin edelleen.

Top 1-3 avainsanaa titleen ja luontevassa muodossa.
HTML:
<title>Kotimaiset lumilapiot edullisesti</title>
ei luetteloina
HTML:
<title>Halpa, kotimainen, lumilapio</title>
 
Liittynyt
17.10.2016
Viestejä
3 279
Nykyään kai paras paikka avainsanoille on title. Joka sivulle oma luoneteva otsikko joka ei toistu sivulta toiselle ja pituus joku ihan max 50 merkkiä. Ja titleä kun muotoilee niin tärkein avainsana alkuun ja niin edelleen.

Top 1-3 avainsanaa titleen ja luontevassa muodossa.
HTML:
<title>Kotimaiset lumilapot edullisesti</title>
ei luetteloina
HTML:
<title>Halpa, kotimainen, lumilapio</title>
Tosiaan kikkailin tuon titlen kanssa ja pilkun perässä oli kaupunki eli pilkku on huono juttu? Paree ottaa se pilkku pois sitten.

Huomasin, että joku oli käyttänyt tätä merkkiä titlessä kait erotellakseen juttuja vai oliko sitten vaan koriste --> | Vastaako tuokin pilkkua?
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Ajatusviiva on hyvä esim. sivuston etusivun titleen, jos haluaa laittaa sivun osoitteen sinne. Ei se yksi pilkku siellä pahaa tee. Google osaa aikaa hyvin lukea tekstiä, jos aivan poskettomalle levelille haluaa lähteä niin titlee kun runoilee jotain, nii samaa avainsanaa voi käyttää kahdessa eri taivutus muodossa. Googlea haeskellessä niistä osumista taivutus muodot näkyy lihavoituna.

edit: rankaa typoilua :facepalm:
 
Liittynyt
17.10.2016
Viestejä
10 293
Eiköhän ne crawlerit osaa parsia pilkut ja muut välimerkit pois. En näe mitään syytä välttää pilkkua indeksoinnin takia. Mutta käyttäjänä title, jossa on vain läjä keywordeja ei näytä kovin tyylikkäältä. Eli kyllä tärkeintä on loppupeleissä satsata sisältöön ja sen laadukkaaseen esilletuontiin. Sitä kauttaa saa linkityksiä ja näkyvyyttä.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Eiköhän ne crawlerit osaa parsia pilkut ja muut välimerkit pois. En näe mitään syytä välttää pilkkua indeksoinnin takia. Mutta käyttäjänä title, jossa on vain läjä keywordeja ei näytä kovin tyylikkäältä. Eli kyllä tärkeintä on loppupeleissä satsata sisältöön ja sen laadukkaaseen esilletuontiin. Sitä kauttaa saa linkityksiä ja näkyvyyttä.
Juurinäin, sisältö ratkaisee!

Sen takia tuollaiset keywords hommat google on dumpannut, jotta hakutuloksissa näkyisi laadukas sisältö. Olisi huonoa bisnestä tarjota paskoja sivuja hyvillä keywordseillä.

Mutta tälläset pienet "optimoinnit" auttaa monesti vielä parantamaan osuvuutta parilla pykälällä. Esim sisältöä kun kirjoitteelee nii otsikot ovat otollisia avainsanoille ja voimasanoille yms yms..

Kaikki se mikä vituttaa klikkiotsikoissa auttaa hakukoneissa... "Katso tissikuvat" -> tulee klikkauksia -> google ymmärtää sen käviöinä -> näkyvyys paranee.


Hakukoneoptimoinnista on paljon juttua netissä eikun tonkimaan!
 
Viimeksi muokattu:
Liittynyt
20.03.2017
Viestejä
181
SEO on hirveetä paskaa, tuntuu ettei netissä ole enää mitään muuta kuin SEO-mielessä tehtyä sisältöä, loputtomia avainsanavirityksiä ja muita listoja sekä linkityksiä ristiin rastiin. Ja kun edes vastaisivat sivuston sisältöä, ihan vaikka lähtien edes siitä, että kauppa myisi sitä tuotetta, jolla vaikka googlesta sisään tultiin.
 
Liittynyt
01.01.2017
Viestejä
447
Tarkoitan nyt sitä, kun perinteinen tapa on laittaa näitä sinne sivuille-->
<meta name="description" content="Suomen myynti halvalla">
<meta name="keywords" content="suomi, kekkonen, kekkonen, kekkonen">

Kattelin, että on jonkinlaista SEO hässäkkää ja äkkiseltään en tajunnut. Vaatiiko jotain erikoisohjelmia? Onko tämä enemmänkin wordpressiin liittyvää sinne, kun tuskin voi tuosta noin vaan lisätä noita yllä olevia pätkiä?

Sitten oli esim. Googlen esim.<meta name=”google-site-verification” content=”rc2RXSkjV5rz9P2s2hTwdDsnwTu4tD-gmruKUrqBGjs” />
Eli onko tuollainen todennus tarpeellinen, että näkyy paremmin Googlen hakukoneella vai onko turha kilke?
Meta tagit on html-kielen peruselementti ja liittyy ihan mihin vain sivuihin ja niitä voi vapaasti lisätä sekä WordPressiin että muuhun sisältöön.

Google-site-verification on Googlen tapa varmistaa että sinulla on käyttöoikeus sivustoon jota olet liittämässä johonkin heidän palveluun. Ei vaikuta hakukoneisiin millään tavalla.
 
Liittynyt
01.02.2017
Viestejä
697
Ja sitten noiden keywordsien on myös hyvä liittyä sisältöön tai google rankaisee.
 
Liittynyt
17.10.2016
Viestejä
3 279
Meta tagit on html-kielen peruselementti ja liittyy ihan mihin vain sivuihin ja niitä voi vapaasti lisätä sekä WordPressiin että muuhun sisältöön.

Google-site-verification on Googlen tapa varmistaa että sinulla on käyttöoikeus sivustoon jota olet liittämässä johonkin heidän palveluun. Ei vaikuta hakukoneisiin millään tavalla.
Hieman käytin siis tuota vakavempaa WordPressiä niin ei siellä näkynyt editori kuin pelkälle CCS:lle, että sai lisätä koodia, mutta miten nuo meta tagit lisätään? Lisäpalikan avulla?
 
Liittynyt
17.10.2016
Viestejä
311
Olen huvikseni kirjoittanut vanhoja ohjelmia uudelleen Haskellilla lähinnä harjoitellakseni funktionaalista ohjelmointia. Tuli kuitenkin tällainen rakenne vastaan, jota en oikein osaa toteuttaa järkevällä tavalla.

Kirjoitin nyt tällaisen esimerkin Pythonilla. Tämä on siis vain esimerkki tuosta rakenteesta, eikä suinkaan tuo ohjelma, jota kirjoitan uudelleen.
Koodi:
#!/usr/bin/env python3

def testi1(n):
    if n % 2 == 0 and n % 3 != 0:
        return True
    return False

def testi2(n, lista):
    if n in lista:
        return True
    return False

def main():
    lista = []
    summa = 0
    raja = 100000
    for i in range(raja + 1):
        if testi1(i):
            lista.append(i)
        if testi2(i, lista):
            summa += i
    print(summa)

if __name__ == "__main__":
    main()
Kirjoitin sen sitten uudelleen Haskellilla tähän tapaan:
Koodi:
testi1 :: Integer -> Bool
testi1 n = mod n 2 == 0 && mod n 3 /= 0

testi2 :: Integer -> [Integer] -> Bool
testi2 n lista = elem n lista

raja :: Integer
raja = 100000

lista :: [Integer]
lista = [ x | x <- [1..raja], testi1 x ]

summa :: Integer
summa = sum [ x | x <- [1..raja], testi2 x lista ]

main :: IO ()
main = putStrLn(show summa)
Suoritusajat Intel Xeon X5675 @ 3.07GHz -prosessorilla:
Koodi:
$ time ./test.py
1666733334
./test.py  29.80s user 0.51s system 97% cpu 31.055 total
$ ghc -O2 test.hs
[1 of 1] Compiling Main             ( test.hs, test.o )
Linking test ...
$ time ./test
1666733334
./test  51.84s user 0.86s system 96% cpu 54.471 total
Optimoinnit täysillä ja silti aikaa kuluu melkein tuplasti imperatiiviseen ratkaisuun verrattuna. Ongelmana on selvästi, että Haskell-ohjelma laskee kahteen kertaan tuon "silmukan". Löytyykö ketään Haskell-prota, joka osaisi selittää miten tuon voisi toteuttaa järkevämmin? :tup:
Sulla tosiaan laskee toi Haskell-pätkä kaksi kertaa tuon silmukan. Esimerkissä periaatteessa toi testi2 on turha molemmissa tavoissa, koska testi1 määrittää lisätäänkö alkio i listaan, ja summahan on noiden listassa olevien alkioiden summa.
Haskell koodissa turhaan käyt summa laskussa alkiot 1..100000 läpi kun riittäisi käydä lista läpi.
 
Liittynyt
17.10.2016
Viestejä
390
Olen huvikseni kirjoittanut vanhoja ohjelmia uudelleen Haskellilla lähinnä harjoitellakseni funktionaalista ohjelmointia. Tuli kuitenkin tällainen rakenne vastaan, jota en oikein osaa toteuttaa järkevällä tavalla.

Kirjoitin nyt tällaisen esimerkin Pythonilla. Tämä on siis vain esimerkki tuosta rakenteesta, eikä suinkaan tuo ohjelma, jota kirjoitan uudelleen.
Koodi:
#!/usr/bin/env python3

def testi1(n):
    if n % 2 == 0 and n % 3 != 0:
        return True
    return False

def testi2(n, lista):
    if n in lista:
        return True
    return False

def main():
    lista = []
    summa = 0
    raja = 100000
    for i in range(raja + 1):
        if testi1(i):
            lista.append(i)
        if testi2(i, lista):
            summa += i
    print(summa)

if __name__ == "__main__":
    main()
Kirjoitin sen sitten uudelleen Haskellilla tähän tapaan:
Koodi:
testi1 :: Integer -> Bool
testi1 n = mod n 2 == 0 && mod n 3 /= 0

testi2 :: Integer -> [Integer] -> Bool
testi2 n lista = elem n lista

raja :: Integer
raja = 100000

lista :: [Integer]
lista = [ x | x <- [1..raja], testi1 x ]

summa :: Integer
summa = sum [ x | x <- [1..raja], testi2 x lista ]

main :: IO ()
main = putStrLn(show summa)
Suoritusajat Intel Xeon X5675 @ 3.07GHz -prosessorilla:
Koodi:
$ time ./test.py
1666733334
./test.py  29.80s user 0.51s system 97% cpu 31.055 total
$ ghc -O2 test.hs
[1 of 1] Compiling Main             ( test.hs, test.o )
Linking test ...
$ time ./test
1666733334
./test  51.84s user 0.86s system 96% cpu 54.471 total
Optimoinnit täysillä ja silti aikaa kuluu melkein tuplasti imperatiiviseen ratkaisuun verrattuna. Ongelmana on selvästi, että Haskell-ohjelma laskee kahteen kertaan tuon "silmukan". Löytyykö ketään Haskell-prota, joka osaisi selittää miten tuon voisi toteuttaa järkevämmin? :tup:
Tuo käyttämäsi testi2 funktio tekee tuosta python skriptistä tuhottoman hitaan koska se joutuu joka iteraatiolla käymään koko listan aina läpi.

Niin kuin Dalle tuossa mainitsikin, koko testi on turha ja sen voi jättää pois. Muokkasin noita skriptejä hieman ja tässä tuloksia:

Koodi:
#!/usr/bin/env python3

def testi1(n):
    if n % 2 == 0 and n % 3 != 0:
        return True
    return False

def main():
    lista = []
    summa = 0
    raja = 100000
    for i in range(raja + 1):
        if testi1(i):
            lista.append(i)
            summa += i
    print(summa)

if __name__ == "__main__":
    main()
ja haskell koodi

Koodi:
lista = [ x | x <- [0..100000], x `mod` 2 == 0 && x `mod` 3 /= 0 ]

main :: IO ()
main = putStrLn(show $ sum(lista))
Nyt kun testaat noita niin pitäisi kulkea paremmin, omat tulokset:

Koodi:
$ time python testi.py
1666733334

real    0m0.054s
user    0m0.044s
sys    0m0.012s
ja haskell versio:

Koodi:
$ ghc -O2 testi.hs
$ time ./testi
1666733334

real    0m0.011s
user    0m0.008s
sys    0m0.000s
Eli niin kuin olettaa voisi, haskell versio on tässä tapauksessa nopeampi.
 
Liittynyt
17.10.2016
Viestejä
390
Joo se esimerkki oli huono, piti aluksi kirjoittaa vaan pseudokoodina tuo oleellinen osa, mutta päätinkin tehdä tomivan dummy-version ja heitin hatusta nuo testi1() ja testi2() -metodit. Pointtina olikin tuo for-silmukka, jota en osaa muuttaa funktionaaliseen muotoon.
Itse varmaan lähtisin toteuttamaan tuota for looppia rekursiivisena funktiona tai vaihtoehtoisesti miettisin saako tuon koko ohjelman tehtyä näppärästi kokonaisuudessaan list comprehensioneilla.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Mites olis fiksu tapa lähettää webistä viesti käyttäjän syöttämään mailiin?
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Pystyykö käyttämässäsi webhotellissa ajamaan serveripuolella käyttäjän skriptejä?
Pystyy ja itseasiassa php:n mail() funktiota tässä nopsaaan googlailin, mutta mutta tarvii vissiin servulta jonku sähköposti palvelun? Ja tämä menee yli oman osaamisen.

Edit: alusta ubuntu 16.04
 
Liittynyt
01.02.2017
Viestejä
697
Tuolle mailaus-toiminnallehan löytyy varmasti myös kymmeniä mainioita valmiita paketteja, vaikkapa pearista: Mail :: PEAR Packages . Eli testailemaan vaan. Tein ammoin muutaman postituslistan php:llä. Ainakin muistan että silloin kannatti lähettää max 10 mailia per kerta, ettei joudu spammilistalle. Ja tuosta vaan esimerkkikoodia yksinkertaisimmillaan testiin: PHP mail() Function.. erillisestä sähköpostipalvelusta en muista juttua.
 
Liittynyt
01.01.2017
Viestejä
447
Mulla on muistikuva että php:n mail() olisi jotenkin paha juttu, sitä ei saisi/kannattaisi käyttää. Joku tcp/smtp -pohjainen kirjastojuttu olisi parempi. En sitten enempää muista kun en php:ta koskaan ole itse koodannut kun vähän katson sitä nenän vartta pitkin...
 
Liittynyt
01.02.2017
Viestejä
697
Mulla on muistikuva että php:n mail() olisi jotenkin paha juttu, sitä ei saisi/kannattaisi käyttää. Joku tcp/smtp -pohjainen kirjastojuttu olisi parempi. En sitten enempää muista kun en php:ta koskaan ole itse koodannut kun vähän katson sitä nenän vartta pitkin...
Tuossa jotain juttua: Why shouldn't I use PHP's mail() function?
Mutta juu kirjastot käytöön, niin ei tarvitse väsätä itse kaikkea mitä kuitenkin pitää pitää mielessä.
 
Liittynyt
17.10.2016
Viestejä
3 794

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Tässä askartele ensimmäistä REST API:a ja tulipahan mieleen, että millä noi urlit luetaan muuttujiksi esim: api/user/12345.
php slim freamework tekee tuon ihan "itsestään" niin alkoin vain kiinnostamaan, että mitenköhän tuo tehdään niiku "from scratch".
 

TheMeII

Übertaktungspotenzial
Liittynyt
13.11.2016
Viestejä
6 562
Tässä askartele ensimmäistä REST API:a ja tulipahan mieleen, että millä noi urlit luetaan muuttujiksi esim: api/user/12345.
php slim freamework tekee tuon ihan "itsestään" niin alkoin vain kiinnostamaan, että mitenköhän tuo tehdään niiku "from scratch".
palvelinsoftalta urli, tai sen loppuosa ilman Example Domain alkuosaa, pilkot taulukkomuuttujaan katkaisemalla '/' merkillä stringin.

Edit:
Eli muuttuja $_SERVER['REQUEST_URI']
PHP: $_SERVER - Manual

käytä explode funkkaria. Esim explode ( '/', $_SERVER['REQUEST_URI']);
 
Viimeksi muokattu:
Liittynyt
01.02.2017
Viestejä
697
Minun pitäisi saada tälläistä json lopputulosta eli arrayllinen objekteja: https://jsonplaceholder.typicode.com/todos
Itsellä on kuitenkin objekti, jonka sisällä on arrayllinen objekteja.
Eli mitens saan tuosta omasta muunnettua tuon objektin pois että tulis pelkkä array kuten esimerkissä.
Hyvin mennään alkeissa ja kämähti jo tähän. Dataa pitäisi siis $.ajaxin sisällä liikuttaa.

Edit: Koetin taas ajatella jotain monimutkaista, mutta hoitui objectName.property tavalla. Onhan näistä aikaa kun näitä on joutunut muistelmaan.
 
Viimeksi muokattu:
Liittynyt
17.10.2016
Viestejä
10 293
Minun pitäisi saada tälläistä json lopputulosta eli arrayllinen objekteja: https://jsonplaceholder.typicode.com/todos
Itsellä on kuitenkin objekti, jonka sisällä on arrayllinen objekteja.
Eli mitens saan tuosta omasta muunnettua tuon objektin pois että tulis pelkkä array kuten esimerkissä.
Hyvin mennään alkeissa ja kämähti jo tähän. Dataa pitäisi siis $.ajaxin sisällä liikuttaa.
Näytätkö koodin, miten se vääränlainen objekti muodostetaan?
 
Liittynyt
01.02.2017
Viestejä
697
Näytätkö koodin, miten se vääränlainen objekti muodostetaan?
Joo ehdinkin just löytää vastauksen eli objectName.property, kiitoksia. Tuo minulle vääränlainen oli siis objektin sisällä.

Koodi:
{
found: 120,
posts: [
{
ID: 2011,
title: "Löytyihän se jsoni"
},
{
ID: 1953,
title: "Tämä menee wp.comiin"
},
jne...
eli data.posts ja data on siis json joka tulee urlista

Laitetaan vielä lisäksi, että tämän avulla vedän wp.comista omat artikkelini:
Developer Resources ainakin näin aluksi. Tätä vois myöhemmin testata: A JavaScript Client for the WordPress REST API
 
Viimeksi muokattu:
Liittynyt
19.10.2016
Viestejä
1 454
Haskellissa ei ilmeisesti pysty ylikuormittamaan funktioita samalla tavalla kuin esimerkiksi Javassa? Eli esimerkiksi tämä ei ole mahdollista:

Koodi:
nimi :: Int -> Int
nimi :: Int -> Int -> Int
Ei ole mahdollista. Tyyppiluokista voi saada jossain määrin samankaltaista toiminnallisuutta irti.

Onko funktioiden ylikuormittaminen epätyypillistä funktionaaliselle ohjelmoinnille?
Varsinaista tietoa ei ole, mutta valistunut arvaukseni on, ettei ylikuormittamiselle pitäisi olla mitään esteitä. Syystä tai toisesta sitä ei vain ole nähty hyödylliseksi/tarpeelliseksi ominaisuudeksi. Pikaisella googlauksella ainakaan F# ei tue ylikuormittamista eikä muitakaan esimerkkejä ylikuormittamisesta vastaavissa kielissä tullut vastaan.
 
Liittynyt
19.10.2016
Viestejä
1 454
Mahtaako olla mitään järkevää tapaa sovittaa yhteen kehittäjäkohtaista testidataa ja versiohallintaa? Pulma on siis varsinaisesti se, että olemassaoleva testidata lienee tekijänoikeuksien alaista eivätkä tekijänoikeudet ole minulla, joten ei niitä oikein versiohallintaankaan voi pistää. Toisaalta oman testidatan tekeminen on turhan työlästä ja virhealtista, joten mieluusti silti käyttäisi olemassaolevaa dataa mutta pitäisi sen versiohallinnan ulkopuolella. Tarkemmin sanottuna tekaisin siis erään vanhan pelin kentille parserin ja testaisin mieluusti oikealla kenttädatalla, jota en kuitenkaan versiohallintaan voi pistää. Ratkaisuksi tulee mieleen lähinnä lisätä versiohallinnan ignore-listaan hakemisto/tiedostolistaus tekijänoikeuksien alaiselle testidatalle, mutta se tuntuu aika karkealle ratkaisulle, joten pakko silti kysyä, onko parempia ratkaisuja.
 
Liittynyt
01.01.2017
Viestejä
447
Jos ei vai tee git add testidata niin ei kai se sinne versiohallintaan väkisin mene. Itse kyllä laittaisin ignoreen vain nuo.
 

living_death

★ Still alive ™
Tukijäsen
Liittynyt
15.11.2016
Viestejä
6 147
Minkälaisella menetelmällä saisin haettua omalle nettisivulle tällä sivulla olevan nimipäivän?

En tarvitse päivämääriä tai seuraavan päivän nimipäivätietoja.

Julkaisujärjestelmänä Wordpress.
 
Liittynyt
19.10.2016
Viestejä
1 454
Symbolinen linkki versionhallinnan ulkopuolelle voisi olla myös ihan toimiva ratkaisu. Testailin tuossa, että ainakin Gitillä ja Mercurialilla näyttäisi toimivan ihan hyvin, tosin en tiedä miten versionhallintaan lisätyt symboliset linkit käyttäytyvät Windowsilla.
Ihan toimivan kuuloinen ratkaisu tuokin, ja ainakin luulisi toimivan Windowsillakin. Päädyin aiemmin tuohon ignore-ratkaisuun, mutta jatkoa ajatellen kiitos vinkistä!
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Minkälaisella menetelmällä saisin haettua omalle nettisivulle tällä sivulla olevan nimipäivän?

En tarvitse päivämääriä tai seuraavan päivän nimipäivätietoja.

Julkaisujärjestelmänä Wordpress.

Noita nimipäiviä lähtisin Helsingin yliopistolta hakemaan... esim näin

Koodi:
https://almanakka.helsinki.fi/nimipaiva/datesearch.php?z=PPKK
ja jos yhtään php pysyy hyppysissä niin äkkiä tuosta parsii halutut nimet. Sitten jollain snippet plugarilla tai puukottamalla koodi wplle.

Nimipäivien käytöstä peritään yleensä tekijänoikeusmaksu Almanakkatoimiston hinnaston mukaisesti. Nimipäivätietojen julkaiseminen on kuitenkin vapaata, jos kerralla ei julkaista enempää kuin kahden viikon nimipäivätietoja tai aakkosellisesta listasta yli 15 nimeä.
 
Viimeksi muokattu:
Liittynyt
02.05.2017
Viestejä
15
Moro,

aivan varmasti joku osaa auttaa mua täällä. Excelistä on kysymys. Tummalla on kysymys...



Sub comboBox1()

Dim curCombo As Object

// Tämä ei jostain syystä toimi
'Set curCombo = ActiveSheet.Shapes.AddFormControl(.Left, .Top, .Width, .Height)

// Haluaisin, että combobox menee juuri solun mittojen mukaan ilman mitään leveyden tai korkeuden määrittelyä.

Set curCombo = ActiveSheet.Shapes.AddFormControl(xlDropDown, Left:=Cells(ActiveCell.row, 3).Left, Top:=Cells(ActiveCell.row, 3).Top, Width:=100, Height:=20)
With curCombo
.ControlFormat.DropDownLines = 3
.ControlFormat.AddItem "1", 1
.ControlFormat.AddItem "2", 2
.ControlFormat.AddItem "3", 3
.Name = "myCombo" & ER.row
.OnAction = "myCombo_Change" & ER.row
End With
End Sub
 
Liittynyt
30.04.2017
Viestejä
8
Sellainen ohjelma pitäisi tehdä jossa jokaisella kirjaimella olisi oma numeroarvo ja sanan kirjoitettua ohjelma laskee numerot yhteen. Googlesta löysin ohjeet jotka muuttaa kirjaimet ASCII-arvoiksi mutta nyt olisi tarkoitus että kirjaimilla olisi erikseen määritetty arvo. C#-kielellä ohjelmoin.
 
Liittynyt
19.10.2016
Viestejä
1 454
Sellainen ohjelma pitäisi tehdä jossa jokaisella kirjaimella olisi oma numeroarvo ja sanan kirjoitettua ohjelma laskee numerot yhteen. Googlesta löysin ohjeet jotka muuttaa kirjaimet ASCII-arvoiksi mutta nyt olisi tarkoitus että kirjaimilla olisi erikseen määritetty arvo. C#-kielellä ohjelmoin.
Nappaat sanasta kunkin kirjaimen, muunnat sen numeroksi esim. switch-lausetta käyttäen, ja lopuksi teet numeroilla mitä ikinä haluatkin (eli tässä tapauksessa lasket ne yhteen). Googlaa switch-lause ja jos sen käyttö jää vielä senkin jälkeen epäselväksi, tule kysymään uudestaan. Suosittelen kirjoittamaan kirjaimien numeroiksi muuttamisen funktioksi, jotta pystyt välttämään hyyyyvin monen breakin kirjoittamisen käyttämällä suoraan returnia, mutta ei ole välttämätöntä eikä välttämättä edes vaivan arvoista, jos vaatii lisää uuden opettelua.
 
Liittynyt
23.10.2016
Viestejä
1 347
...tai sitten vaan switch-casen sijaan alustaa sopivilla numeroilla C# dictionaryn, jossa avaimet on kirjaimia ja arvot ovat numeroarvoja. Tulee kauniimpi kuin switch-case tai if-else häkkyrä, ja voipahan laajentaa generoimaan sen kirjain-numero -suhteen vaikka tiedostosta. ;)

Tällaisia kysymyksiä varten suosittelisin kuitenkin ensisijaisesti jonkun ohjelmoinnin perusteiden kurssin läpikäymistä C# tai esim. Java osalta (jonka jälkeen vaan googlaa mikä on vastaava tietorakenne/tapa C#:lla). Jos taas tämä on nimenomaan jokin kurssitehtävä, suosittelen vaihtamaan kurssiin jolla on parempi materiaali.
 
Liittynyt
30.04.2017
Viestejä
8
Tällaisia kysymyksiä varten suosittelisin kuitenkin ensisijaisesti jonkun ohjelmoinnin perusteiden kurssin läpikäymistä C# tai esim. Java osalta (jonka jälkeen vaan googlaa mikä on vastaava tietorakenne/tapa C#:lla). Jos taas tämä on nimenomaan jokin kurssitehtävä, suosittelen vaihtamaan kurssiin jolla on parempi materiaali.
Kiitos vastauksesta. Ihan henk.koht yritän pienen ohjelman itselleni tehdä. Muutaman beginners tutorialin olen käynyt läpi, mutta homma vasta alkutekijöissä joten työtä tällä saralla riittää. Laitanpa Googlen laulamaan tuon dictionaryn osalta.
 
Liittynyt
19.10.2016
Viestejä
1 454
...tai sitten vaan switch-casen sijaan alustaa sopivilla numeroilla C# dictionaryn, jossa avaimet on kirjaimia ja arvot ovat numeroarvoja. Tulee kauniimpi kuin switch-case tai if-else häkkyrä, ja voipahan laajentaa generoimaan sen kirjain-numero -suhteen vaikka tiedostosta. ;)
Selvästikin on kyse aloittelijasta, jolloin switch-lause lienee edelleen helpompi ratkaisu. Tosin dictionary on muuten ehdottomasti näppärämpi ratkaisu, jonka vain satuin tähän hätään unohtamaan kun on niin harvoin tullut käytettyä sitä. :D
 
Liittynyt
27.11.2016
Viestejä
822
Tarkoitus olisi luoda androidille appi, lyhyesti kuvattuna:
Käyttäjä voi lisätä omaan (joka siis alussa tyhjä) tietokantaan tietoja ihan kännykän kautta.
Yksilöivä tieto olisi vähän kuin hetu, sitten on tekstikenttiä noin parikymmentä. Lisäksi voi lisätä kuvan tai kuvia. Kuva voisi olla myös appin listalla yksilöivän tiedon lisäksi josta näpäyttämällä avautuisi loput tiedot. Osa tiedoista voisi myös olla päivämääriä, joista tarvittaessa tulisi hälytys, eli ihan vain ilmoituspalkkiin tieto.

Jotain olen koodannut aiemmin ja osaan myös lukea/soveltaa koodia, mutta andoidille en ole koskaan tehnyt mitään. Kysymykseni onkin siis, että löytyykö toivomani ominaisuudet jo valmiina moduuleina tms, että ei tarvitsi koodilla vääntää kaikkea, koska aika on rahaa.

Katselin, että netti on pullollaan erilaisia "create android app without coding", mutta ne eivät ilmeisesti yksikään antaneet mahdollisuutta käyttäjällä itsellään kuvaamallani tavalla lisätä sisältöä appiin.

Appin tarkoitus on siis toimia eräänlaisena muistiinpano/tietokanta-apuna johon itse kokoaa haluamansa tiedot ja ne kulkee aina mukana nettiyhteydestä riippumatta ja samalla saa muistutukset jos määritelty aika lähestyy.

En tiedä menikö tämä nyt edes pienet kysymykset luokkaan, mutta.....
 

TheMeII

Übertaktungspotenzial
Liittynyt
13.11.2016
Viestejä
6 562
Tarkoitus olisi luoda androidille appi, lyhyesti kuvattuna:
Käyttäjä voi lisätä omaan (joka siis alussa tyhjä) tietokantaan tietoja ihan kännykän kautta.
Yksilöivä tieto olisi vähän kuin hetu, sitten on tekstikenttiä noin parikymmentä. Lisäksi voi lisätä kuvan tai kuvia. Kuva voisi olla myös appin listalla yksilöivän tiedon lisäksi josta näpäyttämällä avautuisi loput tiedot. Osa tiedoista voisi myös olla päivämääriä, joista tarvittaessa tulisi hälytys, eli ihan vain ilmoituspalkkiin tieto.

Jotain olen koodannut aiemmin ja osaan myös lukea/soveltaa koodia, mutta andoidille en ole koskaan tehnyt mitään. Kysymykseni onkin siis, että löytyykö toivomani ominaisuudet jo valmiina moduuleina tms, että ei tarvitsi koodilla vääntää kaikkea, koska aika on rahaa.

Katselin, että netti on pullollaan erilaisia "create android app without coding", mutta ne eivät ilmeisesti yksikään antaneet mahdollisuutta käyttäjällä itsellään kuvaamallani tavalla lisätä sisältöä appiin.

Appin tarkoitus on siis toimia eräänlaisena muistiinpano/tietokanta-apuna johon itse kokoaa haluamansa tiedot ja ne kulkee aina mukana nettiyhteydestä riippumatta ja samalla saa muistutukset jos määritelty aika lähestyy.

En tiedä menikö tämä nyt edes pienet kysymykset luokkaan, mutta.....
Onko tämä tietokanta vain sillä puhelimella vai tarkoitus olla jossain keskitetyllä palvelimella? Jos käyttäjä vaihtaa puhelinta miten tietokanta siirtyy uuteen puhelimeen?
 
Liittynyt
27.11.2016
Viestejä
822
Onko tämä tietokanta vain sillä puhelimella vai tarkoitus olla jossain keskitetyllä palvelimella? Jos käyttäjä vaihtaa puhelinta miten tietokanta siirtyy uuteen puhelimeen?
Vain puhelimessa, mutta toimivuuden kannalta toki ois parasta, että tietokanta saisi exportattua tai sen saisi varmuuskopioitua palvelimelle. En tiedä miten tarjoaako google tms ilmaisia vaihtoehtoja tuohon, mutta jos ei, niin riittää tuo, että saa exportattua filen ulos.
 

TheMeII

Übertaktungspotenzial
Liittynyt
13.11.2016
Viestejä
6 562
katseles oliskos sqlite sopiva kanta ja onko sille sopivia code snippetteja olemassa.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Mikäs olis järkevä (turvallinen) tapa ajaa phpllä shell scriptiä joka vaatii sudo userin?

www-data sudo grouppiin ?? :confused:
Vai tallentaa passu/avain tiedostoon ja hakea luvat sitä kutta?
 

TheMeII

Übertaktungspotenzial
Liittynyt
13.11.2016
Viestejä
6 562
Mikäs olis järkevä (turvallinen) tapa ajaa phpllä shell scriptiä joka vaatii sudo userin?

www-data sudo grouppiin ?? :confused:
Vai tallentaa passu/avain tiedostoon ja hakea luvat sitä kutta?
Edit the sudoers file (with visudo) and add a rule that allows the web server user to run the command without a password. For example:

www-data ALL=NOPASSWD: /path/to/script
 
Liittynyt
18.03.2017
Viestejä
454
... ja sitten pitää varmistaa että www-data-käyttäjällä ei ole oikeuksia muokata skriptiä eikä hakemistoa jossa skripti sijaitsee.
(Jos on annettu lupa ajaa joku skripti paremmilla oikeuksilla + skriptin sisältöä on mahdollista muuttaa = pystyy tekemään mitä tahansa paremmilla oikeuksilla, kunhan näkee vähän vaivaa.)

Itse sudon kautta ajettava skripti kannattaa tehdä niin että se on mahdollisimman yksinkertainen palikka joka tekee tasan tarvittavan asian eikä mitään muuta. Jos on mahdollista tehdä se niin että skriptin ei tarvitse käsitellä mitään käyttäjän antamia parametreja, aina parempi. Jos on pakko käyttää skriptissä mitään käyttäjän antamaa dataa, varaudu siihen että datan paikalla voi olla roskaa tai huolellisesti mietitty ilkeä sisältö:

https://imgs.xkcd.com/comics/exploits_of_a_mom.png
 

Ryydike

BANNATTU
BANNED
Liittynyt
04.11.2016
Viestejä
974
chroottiin koko scripti tai parempi johonkin containeriin ala LXC.
 

Lassivv

Tukijäsen
Team H2O
Liittynyt
12.02.2017
Viestejä
2 329
Yksi iso ongelma Xpath haun kanssa Google spreadsheetissä. Kun teen uuden spreadsheet dokumentin kaikki näyttäisi toimivan ok ja saan haettua b[@class ja span class muotoista tavaraa ulos, div class en saanut vaan tulosti kaiken.

Noh tärkeimpän ongelmana on että kun teen uuden dokumentin laitan siihen pari sääntöä. se hakee ne kohde sivulta oikein. (esim sivu: Tässä koti nuorelle perheelle tai varttuneellekin väelle sopiva yksitasoisuutensa vuoksi. 1982 valmistunut talo 994m2:n vuokratontilla. Lämmitysmuotona sähkö ja varaava takka. Ajan saatossa keittiö uu)

Hetken kun täyttelen taulukkoa niin kaikkiin kenttiin tuleekin N/A ja taulukko sanoo "imported content is empty".

F5 tai dokumentin uudelleen avaaminen ei auta mitään. Joskus nuo voi mystisesti palata takaisin näkyviin tai sitten ainao vaihtoehto on tehdä uusi dokumentti millä ne yleensä taas lähtee pelaamaan muutamaksi minuutiksi. Onko vikana nyt jotenkin tuo oikotien sivu vai onko yksinkertaisesti jotan mitä en ole ottanut huomioon.

Nämä rivit esim toimii ok taulukossa, mutta sitten pimenevät 2min päästä eikä niitä meinaa saada toimimaan enää ollenkaan:
Koodi:
=IMPORTXML("https://asunnot.oikotie.fi/myytavat-asunnot/lahti/13788397", "//span[@class='listing-viewings__item__time']")

=IMPORTXML("https://asunnot.oikotie.fi/myytavat-asunnot/lahti/13788397", "//b[@class='listing-viewings__item__date']")
Toivottavasit joku osaisi auttaa amatööriä :)

Tuntui myös yhteen väliin siltä että jos haki samasta urlista monessa ei kentässä jotain eri tietoa niin ei toiminut sitäkään vähää, mutta voi toki olla että lopetti vaan toiminnan sillä hetkellä muutenkin.

Kokeiltu myös Xpath copy Chromen kautta:
/html/body/div[6]/div[3]/div[1]/div[2]/div/span

Eipä toimi tuokaan sen paremmin.





vanha asia
Eipä kehtaa ohjelmoinniksi väittää, mutta tämä topici taitaa osua lähimmäksi.

Tarkoituksena olisi seuloa taulukkoon tiettyjä tietoja oikotien sivulta. Linkkinä tässä heitetty esimerkin vuoksi vaan joku ilmoitus oikotien etusivulta, ei liity siis aiheeseen, mutta kaikki esittelyt on samalla pohjalla eli pystyisi hakemaan tiettyjä tietoja taulukkoon sieltä suoraan.

Tarkoituksena siis hakea kohde linkistä muutamia rivejä taulukkoon "Google Spreadsheet" taulukkoon.

Esimerkki linkki:
Tässä koti nuorelle perheelle tai varttuneellekin väelle sopiva yksitasoisuutensa vuoksi. 1982 valmistunut talo 994m2:n vuokratontilla. Lämmitysmuotona sähkö ja varaava takka. Ajan saatossa keittiö uu

Sieltä esimerkkinä koitetaan hakea seuraavan näytön päivää, jos sellainen löytyy. Aukaisin sivun lähdekoodin chromella ja etsin kentän josta tuo pitäisi löytyä ja koitin tälläisillä komennoilla hakea sitä:
=IMPORTXML(A2, "//b[@class='listing-viewings__item__date']")

A2 kentässä on URL josta tietoja haetaan.

Tämä toimi pari kertaa ok, mutta nyt jostain syystä Google taulukko kertoo N/A kenttiin ja errorin syyksi: Imported content is empty

Jos lähtekoodia katsoo niin sieltä löytyy kuitenkin tälläinen kohta mistä tieto pitäisi löytyä:
<div class="listing-viewings">
<h5 class="listing-viewings__title">Seuraavat esittelyt</h5>
<div class="listing-viewings__item customer-color-border">
<b class="listing-viewings__item__date">su 13.08.2017</b>
<span class="listing-viewings__item__time">klo 13:40 - 14:10</span>
</div>


----------------------

Kokeilin hakea myös muutamista muista paikoista tuolla samalla importxml jonolla tavaraa muuttane vaan tuota //b kohtaa esim //h3 ja //h5 kohdaksi riippuen mitä classia kohde oli.

Täysin amatöörinä lähdin hommaa kokeilemaan eli rautalangasta asian vääntö ei haittaa yhtään jopa parempi niin. Voi olla joku hyvin yksinkertainen asia syynä.

Tarkoitus oli tonkia siis vaan lähinnä yksittäisiä rivejä sieltä täältä tuosta esittely sivulta googlen taulukkoon. Iso kiitos jos joku pystyy asian suhteen auttamaan. Xpath ohjeitakin yritin metsästellä, mutta missään ei ollut samantapaista tapausta eikä mikään selitä sitä että tuo ylhäällä oleva "xpathin pätkä" toimi ok hetken ja nyt ei taas löydä mitään.

edit: Ilmeisesti liittynee jotenkin sellaiseenkin asiaan, että kun teen Google taulukon ja pistän sinne yhteen soluun esim tuon erimerkki pätkän niin se toimii, mutta jos teen toiseen soluun samasta urlista jonkun muun haun niin ei toimikkaan? Onko tosiaan niin ettei pysty tekemään kun yhdestä urlista yhteen soluun haku ohjeen ja jos pistää toisen niin rampauttaa toisen?
 
Viimeksi muokattu:

Kamsi

Team R&T
Liittynyt
17.10.2016
Viestejä
292
C-kieli on hieman hukassa mutta pitäisi pieni pätkä koodia saada tehtyä sillä.

E-ink näytölle on olemassa komento "Dis_String(0, 10, "teksti",16);", jolla saa tulostettua näytölle tekstiä. Miten tuohon "teksti" tilalle saisi syötettyä character arrayn? Eli siis about tälläisenä "printf("%s ", argv);" tarkoituksena on ottaa main metodiin argumentteja sisään ja tulostella niitä näytölle.
 
Toggle Sidebar

Statistiikka

Viestiketjut
178 541
Viestejä
3 291 889
Jäsenet
59 116
Uusin jäsen
Sampo55

Hinta.fi

Ylös Bottom