MaGetzUb wrote:Tutkiskelimpas tässä huvikseni wanhan CoolBasicin tyyppien toimintaa. Huomasin että ConvertToIntegerillä saatua osoitetta voi ofc käyttää muistipalana. Noh tulikin tutkittua melko perusteellisesti. Okei siis, Ensimmäiset 4 tavua näyttävät tyypin jäsenessä olevan viite edelliseen tyypin jäseneen, ja neljä seuraavaa tavua näyttävät olevan viite seuraavaan jäseneen. Ja tavusta 12 eteenpäin alkaa käyttäjän oma määrittelemä data.
Tämähän on hieno löytö. Katselin että tuo kumma ykkönen osoitteessa 8 on tyyppikokoelman järjestysnumero, joka kertoo monennenko tyyppikokoelman jäsen kyseessa oleva muistipala on. Tätä voi sitten hyödyntää vaikka siten että funktio tunnistaa muistipalan tyyppikokoelman id numeron perusteella miten sen kanssa tulee toimia. Näin voidaan käyttää samaa funktiota eri tyyppikokoelmien jäsenille kunkin tyyppikokoelmalle ominaisella tavalla. Tässä pieni esimerkki joka tulostaa tyyppikokoelman jäsenen sisällön.
SCREEN 900, 600
Dim formats(4) As String
Type IntType
Field a
End Type
formats(1) = "i"
Type StringType
Field b$
End Type
formats(2) = "s"
Type MultType
Field h As Short
Field i
Field s As String
End Type
formats(3) = "his"
Type Triangle
Field p1 As Float
Field p2 As Float
Field p3 As Float
End Type
formats(4) = "fff"
For i=0 To 3
in.IntType = New (IntType)
in\a = Rand(255)
st.StringType = New (StringType)
st\b = "StringType instance number "+i
mu.MultType = New (MultType)
mu\h = Rand(64)
mu\i = Timer()
mu\s = "MultType instance number "+i
tr.Triangle = New (Triangle)
tr\p1 = Rnd(0.0,1.0)
tr\p2 = Rnd(0.0,1.0)
tr\p3 = Rnd(0.0,1.0)
Next i
Print "Printing out IntType instances"
For m1.IntType = Each IntType
printTypeContents(ConvertToInteger(m1))
Next m1
WaitKey
Cls
Locate 0,0
Print "Printing out StringType instances"
For m2.StringType = Each StringType
printTypeContents(ConvertToInteger(m2))
Next m2
WaitKey
Cls
Locate 0,0
Print "Printing out MultType instances"
For m3.MultType = Each MultType
printTypeContents(ConvertToInteger(m3))
Next m3
WaitKey
Cls
Locate 0,0
Print "Printing out Triangle instances"
For m4.Triangle = Each Triangle
printTypeContents(ConvertToInteger(m4))
Next m4
WaitKey
Function printTypeContents(mem)
pointer = 12
size = MEMBlockSize(mem)
typeID = PeekInt(mem,8)
format$ = formats(typeID)
Print "Memblock("+size+") @ "+mem+" of Type: "+typeID
Print "Prev: "+PeekInt(mem,0)+" Next: "+PeekInt(mem,4)
For i=1 To Len(format$)
c$ = Mid(format$,i,1)
Select c$
Case "s"
strPntr = PeekInt(mem,pointer)
strLen = MEMBlockSize(strPntr)
s$ = ""
For o=0 To strLen-1
s$ = s$ + Chr(PeekByte(strPntr,o))
Next o
Print "String("+strLen+") @ "+pointer+": "+s$
pointer = pointer +4
Case "i"
Print "Integer @ "+pointer+": "+PeekInt(mem,pointer)
pointer = pointer +4
Case "h"
Print "Short @ "+pointer+": "+PeekShort(mem,pointer)
pointer = pointer +2
Case "b"
Print "Short @ "+pointer+": "+PeekByte(mem,pointer)
pointer = pointer +1
Case "f"
Print "Float @ "+pointer+": "+PeekFloat(mem,pointer)
pointer = pointer +4
End Select
Next i
Print ""
End Function
Tavu 8 taitaakin olla 4 tavuinen, kun rupeaa ajattelemaan että käyttäjän määrittämä data alkaa tavusta 12... Eli siis se on 32bittinen kokonaisluku...
EDIT:
Oho, olitkin huomioinut että se on 32bittinen kokonaisluku.
Solar Eclipse
Meneillä olevat Projektit:
Solar Engine - Modernin OpenGL rajapinnan päällä toimiva 3D ja 2D pelimoottori.
Laurenzo wrote:Toimiiko Flightgear joystickilla?
jos ei oisko muita (ilmasia) lentosimuja jotka toimii joystickilla?
En oikein jaksa uskoa, että olisi kovinkaan montaa lentosimulaattoria jonka kanssa ei joystick toimisi eli eiköhän se toimi tuonkin kanssa.
Microsoftilta taisi kanssa tulla joku lentosimulaattori joka on "ilmainen". Muutama kone ja maasto tulee ilmaiseksi ja sitten lisää voi ostaa.
En tiedä miten täällä suhtaudutaan tähän, mutta tein tämmösen:
- pettis kävi täällä saksien kans - (kinda NSWF)
Datanomikoulutukseen sisältyy Flashiä jota en tietenkään lainkaan osannut, mutta jotain oli pakko rakentaa. Kahteen tai kolmeen viikkoon en saanut mitään aikaiseksi kun en osannut valita aihetta enkä halunnut opetella jo valmiiksi kuollutta alustaa. Lopulta ryhdistäydyin ja toteutin tämän virityksen - ja pääsin samalla hyödyntämään eräältä aikuisviihdesivustolta löytämääni ammottavan suurta ja ilmiselvää aukkoa.
Tarjolla olevat 70 000 klippiä noudetaan suoraan sivuston palvelimilta. Siihen ei edes vaadita mitään erityistä "hakkerointia", kunhan kutsuu tiettyä URLia ja ottaa dataa vastaan. Flash tekee kaiken ajattelun itse, eli ottaa sivuun yhteyttä ja selvittää mitä kategorioita siellä on tarjolla, lataa sivullisen videoita ja sitten niiden thumbnailit jne jne. Opettaja oli hyvin mielissään teknisestä toteutuksesta, vaikka vähän kulmakarva kohosikin.
Ai niin ja tossa on semmonen bugi että jos URLin perään kirjoittaa vahingossa "?noblur" niin sensurointi ei enää toimi. Ongelma on tiedossa ja sitä ollaan korjaamatta parhaillaan.
Joku osaa varmaan kertoa onko tämä laiton tai liikutaanko ehkä jollakin harmaalla alueella. Vakuutan että mitään kunnon suojauksia en ole murtanut - sivusto luottaa menetelmään "ei kukaan osaa arvata tätä osoitetta".
Last edited by Pettis on Thu Jun 21, 2012 12:39 am, edited 1 time in total.
Reason:Jätetäänpäs se aikuisviihde pois täältä
Ruuttu wrote:En tiedä miten täällä suhtaudutaan tähän, mutta tein tämmösen:
- snip - (kinda NSWF)
Datanomikoulutukseen sisältyy Flashiä jota en tietenkään lainkaan osannut, mutta jotain oli pakko rakentaa. Kahteen tai kolmeen viikkoon en saanut mitään aikaiseksi kun en osannut valita aihetta enkä halunnut opetella jo valmiiksi kuollutta alustaa. Lopulta ryhdistäydyin ja toteutin tämän virityksen - ja pääsin samalla hyödyntämään eräältä aikuisviihdesivustolta löytämääni ammottavan suurta ja ilmiselvää aukkoa.
Tarjolla olevat 70 000 klippiä noudetaan suoraan sivuston palvelimilta. Siihen ei edes vaadita mitään erityistä "hakkerointia", kunhan kutsuu tiettyä URLia ja ottaa dataa vastaan. Flash tekee kaiken ajattelun itse, eli ottaa sivuun yhteyttä ja selvittää mitä kategorioita siellä on tarjolla, lataa sivullisen videoita ja sitten niiden thumbnailit jne jne. Opettaja oli hyvin mielissään teknisestä toteutuksesta, vaikka vähän kulmakarva kohosikin.
Ai niin ja tossa on semmonen bugi että jos URLin perään kirjoittaa vahingossa "?noblur" niin sensurointi ei enää toimi. Ongelma on tiedossa ja sitä ollaan korjaamatta parhaillaan.
Joku osaa varmaan kertoa onko tämä laiton tai liikutaanko ehkä jollakin harmaalla alueella. Vakuutan että mitään kunnon suojauksia en ole murtanut - sivusto luottaa menetelmään "ei kukaan osaa arvata tätä osoitetta".
Miten sivu tarkistaa tuetaanko videota? Linuxilla Firefoxissa mm. Facebookin youtube-embedit eivät toimi lainkaan vaan herjaavat että Flashista on liian vanha versio, onko "Can't play" vastaava tilanne?
esa94 wrote:Miten sivu tarkistaa tuetaanko videota? Linuxilla Firefoxissa mm. Facebookin youtube-embedit eivät toimi lainkaan vaan herjaavat että Flashista on liian vanha versio, onko "Can't play" vastaava tilanne?
Ihan kokeilumielessä tietenkin.
Sivu käyttää HTML5 video-tagia ja klipit ovat mp4-tiedostoja. En tiedä onko firefoxin linux-versiossa tukea tälle formaatille, tai onko firefoxissa ylipäätään. Siinä on vielä semmonenkin juttu että nuo mp4-tiedostot on ilmeisesti pilkottu tai convertoitu huonosti, eli jotain headereita puuttuu ja siksi klipin käyntiin lähteminen kestää joskus kauan; ja jotkut playerit eivät tiedostoja yksinkertaisesti huoli. Suosittelen Chromea videoiden toistamiseen, tai sitten vain suosiolla lataat sen videon. Tai kopioit latauslinkin VLChen.
Tuumailin tässä juuri, voisikohan videoiden hitaan latautumisen korjata kun muuttaisi tagia niin että videot alkavat vaikka 20 sekunnin kohdalta - jos se skippaisi ne huonot headerit ja löytäisi keyframen nopeammin? Pitänee kokeilla.
esa94 wrote:Miten sivu tarkistaa tuetaanko videota? Linuxilla Firefoxissa mm. Facebookin youtube-embedit eivät toimi lainkaan vaan herjaavat että Flashista on liian vanha versio, onko "Can't play" vastaava tilanne?
Ihan kokeilumielessä tietenkin.
Sivu käyttää HTML5 video-tagia ja klipit ovat mp4-tiedostoja. En tiedä onko firefoxin linux-versiossa tukea tälle formaatille, tai onko firefoxissa ylipäätään. Siinä on vielä semmonenkin juttu että nuo mp4-tiedostot on ilmeisesti pilkottu tai convertoitu huonosti, eli jotain headereita puuttuu ja siksi klipin käyntiin lähteminen kestää joskus kauan; ja jotkut playerit eivät tiedostoja yksinkertaisesti huoli. Suosittelen Chromea videoiden toistamiseen, tai sitten vain suosiolla lataat sen videon. Tai kopioit latauslinkin VLChen.
Tuumailin tässä juuri, voisikohan videoiden hitaan latautumisen korjata kun muuttaisi tagia niin että videot alkavat vaikka 20 sekunnin kohdalta - jos se skippaisi ne huonot headerit ja löytäisi keyframen nopeammin? Pitänee kokeilla.
Jaa, voi olla ettei Firefox tue MPEGiä video-tageissa. Tarkistetaanpa.
Pelasimpa juuri Diablo III läpi normaalilla vaikeustasolla . Oli kyllä paljon helpompi kuin sarjan aiemmat pelit. Jospa Nightmare tasossa olisikin enemmän haastetta...
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Konstaduck wrote:On se jännä, MySQL lagaa taas jotain....
CoolB::MySQL::ConnectionError
Etusivulla. Menin jo luulemaan, että kännykkäni lagii jotain, mutta koneellahan tuo myös näkyi...
Johtuu siitä, että foorumit on siirretty uuteen paikkaan nyt viikonlopun aikana. Sen vuoksi myös foorumit olivat vähän aikaa poissa käytöstä. Zerppa tehnee asialle jotain jossain vaiheessa.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Konstaduck wrote:
(Ihan vain sen takia, että tulee tuo Javascript opetella ensin)
Miksi ihmeessä? IMO mysli (tai mikä tahansa tietokanta) on melko tärkeä osa toiminnallisuuden kannalta, mutta JS:llä saa aikaiseksi lähinnä karkkia ja toiminnallisuuden siloittelua (kuten formilogiikan muuttamista ajaxilla toimivaksi). Minulla ainakin tietokannat tulivat mukaan paljon ennen javascriptia, mutta toisaalta, enpä ole koskaan oppinut aitoa javascriptia. Kun lopulta aloin pitää kielestä, joku ohjasi minut käyttämään jQueryä, ja paluuta paljaaseen JS:ään ei ollut.
Vastaus on hyvinkin yksinkertainen. Olen pitänyt pienestä asti periaatteena sen, että jos teen jotain, teen sen kunnolla. Nyt on se javascriptin opettelu kesken, enkä todellakaan aio tähän heti perään opetella enää MySQLiä... Arvatenkin tuo MySQLin opettelu vaatii myös PHP osaamista, ja sekin kieli tulisi sitten opetella. Palikka kerrallaan, niin hyvä tulee
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
MySQL ei suoranaisesti riipu mistään muusta ohjelmointikielestä. Sen ideahan onkin se, että se toimii itsenäisesti tietokantana ja sitä pystyy käyttämään eri ohjelmointikielillä tehdyillä ohjelmilla.