Gå til innhold

poande05

Medlemmer
  • Innlegg

    33
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av poande05

  1. http://nodejs.org/ http://expressjs.com/http://www.mongodb.org/ http://jade-lang.com/

     

    Jeg begynte med SQL og basic php og html, men beveger meg mot de ovenfornevnte (i form a lenker) teknologiene. Det er mye enklere å få ting til å henge sammen. Ellers finnes det massevis av rammeverk og CMSer som du kan bruke for å forenkle prosessen. Se på http://drupal.org/ - mitt for tiden favorittCMS.

     

    Skal du kode det selv i php er det lang vei å gå, men du lærer mye. Pass på sikkerheten knyttet til sesjoner (du kommer til dette senere). Jeg utviklet et eget CMS i et fag på studiet, og det viste seg at det var veldig lett å hacke dette CMSet. Så ikke gå i den fellen. Ellers lykke til :)

  2. Jeg driver og tenker på å utvikle et spill hvor man ser karakteren ovenfra, og kan bevege seg på et større område. Man kan rotere karakteren og bevege seg i den retningen som rotasjonen(vinkelen) tilsier - som i klassiske GTA.

     

    Jeg lurer på: Om jeg har vinkelen, hvordan finner jeg neste punkt? Jeg er interessert i rammeverk som forenkler dette, men en matematisk forklaring hadde også vært interessant. Det er sikkert kjempeenkelt, jeg bare klarer ikke holde tungen bent i munnen tror jeg.

  3. Håper det er noen som kan hjelpe meg. Vet at kodesnutten er lang, men se nederst for inngangen til scriptet, document ready fra jquery. Det som skal skje er at en bil (som tegnes helt fint, men er statisk på bildet) beveger seg nedover og forsvinner. Har prøvd å være så ryddig som mulig i koden, men forstår ikke hvorfor jeg ikke klarer få til å bevege bilen. Jeg er temmelig ny i javascript.

     

    //Objektorientert JavaScript
    //Per-Øivin Berg Andersen
    var HEIGHT = $("#canvas").height();
    var world;
    var context2d;
    //constructor for Car object
    function Car(imageURL, maxSpeed, acceleration, brakeSpeed, speed, posX, posY) {
    this.imageURL = imageURL;
    this.maxSpeed = maxSpeed;
    this.acceleration = acceleration;
    this.brakeSpeed = brakeSpeed;
    this.speed = speed;
    this.posX = posX;
    this.posY = posY;
    
    this.spinning = false;
    
    this.drawCar = function() {
    	var image = new Image();
    	image.posX = this.posX;
    	image.posY = this.posY;
    	image.onload = function() {
    		context2d.drawImage(image, image.posX,image.posY);
    	}
    	image.src = imageURL;
    }
    
    this.accelerate = function () {
    	if(speed < maxSpeed) {
    		speed = speed + acceleration;
    	}
    }
    
    this.spin = function() {
    	spinning = true;
    	var worker = new Worker("carSpinWorker.js");
    	worker.onMessage = function() {
    		spinning = false;
    	}
    }
    
    this.moveDown = function() {
    	this.posY = this.posY - 0.1;
    }
    
    this.brake = function() {
    	speed = speed - brakeSpeed;
    }
    }
    
    function World() {
    this.background = "back.jpg";
    this.roadBoundTop = 87;
    this.roadBoundBottom = 326;
    this.car = new Car("car.png", 180, 0.1, 1, 0, 20, 20);
    
    	this.drawBackground = function() {
    	var back = new Image();
    	back.src = this.background;
    	back.onload = function() {
    		var pattern = context2d.createPattern(back, "repeat");
    		context2d.fillStyle = pattern;
    		context2d.fillRect(0,0, 600, 400);
    	};
    }
    
    this.draw = function() {
    	this.drawBackground();
    	this.car.drawCar();
    }
    
    
    }
    
    function Obstacle(image, spin, locationX, locationY) {
    this.image = image;
    this.spin = spin;
    this.locationX = locationX;
    this.locationY = locationY;
    }
    
    function gameCycle() {
    draw();
    world.car.moveDown();
    }
    function draw() {
    context2d.clearRect(0, 0, 600, 400);
    world.draw();
    world.car.drawCar();
    
    }
    
    $(document).ready(function() {
    context2d = $("#canvas")[0].getContext("2d");
    world = new World();
    var timed = setTimeout("gameCycle()", 10);
    });
    

     

    forresten her er html filen så det skal være lettere å debugge:

     

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Objektorientert Javascript</title>
    	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    	<script src="objekter.js"></script>
    </head>
    <body>
    	<canvas id="canvas" width="600" height="400"></canvas>
    </body>
    </html>

     

    Fant ut av det. Svaret lå i å legge setTimeout i gameCycle og kalle gameCycle i document load.

  4. Håper det er noen som kan hjelpe meg. Vet at kodesnutten er lang, men se nederst for inngangen til scriptet, document ready fra jquery. Det som skal skje er at en bil (som tegnes helt fint, men er statisk på bildet) beveger seg nedover og forsvinner. Har prøvd å være så ryddig som mulig i koden, men forstår ikke hvorfor jeg ikke klarer få til å bevege bilen. Jeg er temmelig ny i javascript.

     

    //Objektorientert JavaScript
    //Per-Øivin Berg Andersen
    var HEIGHT = $("#canvas").height();
    var world;
    var context2d;
    //constructor for Car object
    function Car(imageURL, maxSpeed, acceleration, brakeSpeed, speed, posX, posY) {
    this.imageURL = imageURL;
    this.maxSpeed = maxSpeed;
    this.acceleration = acceleration;
    this.brakeSpeed = brakeSpeed;
    this.speed = speed;
    this.posX = posX;
    this.posY = posY;
    
    this.spinning = false;
    
    this.drawCar = function() {
    	var image = new Image();
    	image.posX = this.posX;
    	image.posY = this.posY;
    	image.onload = function() {
    		context2d.drawImage(image, image.posX,image.posY);
    	}
    	image.src = imageURL;
    }
    
    this.accelerate = function () {
    	if(speed < maxSpeed) {
    		speed = speed + acceleration;
    	}
    }
    
    this.spin = function() {
    	spinning = true;
    	var worker = new Worker("carSpinWorker.js");
    	worker.onMessage = function() {
    		spinning = false;
    	}
    }
    
    this.moveDown = function() {
    	this.posY = this.posY - 0.1;
    }
    
    this.brake = function() {
    	speed = speed - brakeSpeed;
    }
    }
    
    function World() {
    this.background = "back.jpg";
    this.roadBoundTop = 87;
    this.roadBoundBottom = 326;
    this.car = new Car("car.png", 180, 0.1, 1, 0, 20, 20);
    
    	this.drawBackground = function() {
    	var back = new Image();
    	back.src = this.background;
    	back.onload = function() {
    		var pattern = context2d.createPattern(back, "repeat");
    		context2d.fillStyle = pattern;
    		context2d.fillRect(0,0, 600, 400);
    	};
    }
    
    this.draw = function() {
    	this.drawBackground();
    	this.car.drawCar();
    }
    
    
    }
    
    function Obstacle(image, spin, locationX, locationY) {
    this.image = image;
    this.spin = spin;
    this.locationX = locationX;
    this.locationY = locationY;
    }
    
    function gameCycle() {
    draw();
    world.car.moveDown();
    }
    function draw() {
    context2d.clearRect(0, 0, 600, 400);
    world.draw();
    world.car.drawCar();
    
    }
    
    $(document).ready(function() {
    context2d = $("#canvas")[0].getContext("2d");
    world = new World();
    var timed = setTimeout("gameCycle()", 10);
    });
    

     

    forresten her er html filen så det skal være lettere å debugge:

     

    <!DOCTYPE html>
    <html>
    <head>
    	<title>Objektorientert Javascript</title>
    	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
    	<script src="objekter.js"></script>
    </head>
    <body>
    	<canvas id="canvas" width="600" height="400"></canvas>
    </body>
    </html>

  5. Finnes det en user group for webutviklere i Bergen? Jeg har hatt Java og PHP på studiet, men sliter med å lære meg f eks javascript uten input fra andre mennesker og kun lese på nettet. På studiet hadde vi jo labber og forelesninger, og jeg vet at i Kristiansand (hvor jeg har studert litt) så hadde de i hvert fall en user group for java og en for linux. Har veldig lyst til å bli en bedre utvikler...

  6. Det du gjør der er akkurat det samme som urlencode gjør.

     

    // Hvis 'æøå' er utf-8 encodet:
    var_dump(urlencode('æøå') == '%C3%A6%C3%B8%C3%A5%');
    

     

    Det funker bare hvis du lagrer filene dine i utf-8, hvis du lagrer filene dine i iso-8859-1 må du først bruke utf8_encode:

    // Hvis 'æøå' er iso-8859-1 encodet:
    var_dump(urlencode(utf8_encode('æøå')) == '%C3%A6%C3%B8%C3%A5%');
    

     

    Takk :)

  7. Jeg støtte bort i et problem hvor jeg skulle søke i bibliotekbasen etter ordet "brønn". ÆØÅ er ofte krevende for utviklere, og her hjalp hverken urlencode(), utf8_encode(), utf8_decode() eller noe annet. Jeg trengte hente inn dette xml-resultatet på et søk i DOMDocument load():

     

    http://sru.bibsys.no/search/biblio?version=1.2&operation=searchRetrieve&startRecord=1&maximumRecords=10&query=æøå%20sortby%20sortdate&recordSchema=dc

     

    Jeg fant tilfeldigvis ut at hvis jeg kopierte adressen fra Chrome sin adressebar, fikk jeg dette resultatet:

     

    http://sru.bibsys.no/search/biblio?version=1.2&operation=searchRetrieve&startRecord=1&maximumRecords=10&query=%C3%A6%C3%B8%C3%A5%20sortby%20sortdate&recordSchema=dc

     

    Her er noe kode for å fikse opp i problemet, lage søket og hente det inn i DOM:

     

     

    $searchTerm = "brønn";
    
    //sett tegn som jeg fikk i Chrome copy paste metoden min
    $liten_ae = "%C3%A6";
    $liten_oe = "%C3%B8";
    $liten_aa = "%C3%A5";
    $stor_ae = "%C3%86";
    $stor_oe = "%C3%98";
    $stor_aa = "%C3%85";
    
    
    //erstatt alle æøåÆØÅ
    $searchTermForScript = str_replace("æ", $liten_ae, $searchTermForScript);
    $searchTermForScript = str_replace("ø", $liten_oe, $searchTermForScript);
    $searchTermForScript = str_replace("å", $liten_aa, $searchTermForScript);
    $searchTermForScript = str_replace("Æ", $stor_ae, $searchTermForScript);
    $searchTermForScript = str_replace("Ø", $stor_oe, $searchTermForScript);
    $searchTermForScript = str_replace("Å", $stor_aa, $searchTermForScript);
    
    $queryString = "http://sru.bibsys.no/search/biblio?version=1.2&operation=searchRetrieve&startRecord=1&maximumRecords=10&query=" . $searchTermForScript . "%20sortby%20sortdate&recordSchema=dc";
    //last inn i dom 
    $dom = new DOMDocument();
    $dom->load($queryString);

  8. Heisann.

    Jeg har lastet ned og installert siste versjon av FreeBSD.

    Jeg har også lastet ned MySQL og de virker fra skallet.

    PHP virker også fra kommandolinja, men jeg får ikke konfigurert Apache til å akseptere PHP. Har nøye fulgt denne besrivelsen på http://www.freebsdmadeeasy.com/tutorials/web-server/install-php-5-for-web-hosting.php

     

    Noen som kan forklare meg veien til rett konfigurasjon av PHP og Apache?

     

    Mvh Karl-Arne

     

    Ser ut til at du kan bruke lamp men jeg har ikke testet det. Det kan jo være greit utgangspunkt å jobbe videre på?

  9. Ganske sikker på at barn, søsken og forelder er korrekt norsk terminologi når man snakker om noder i et tre.

     

    Kult at informasjonen blir gjort såpass tilgjengelige. Ligger dog allerede en del ferdige løsninger for lesing av CSV i PHP ute på nettet. Ville og kanskje lagt det rett inn i en database hvis jeg skulle brukt dataene videre i et prosjekt.

     

    Ja ligger nok ferdig. Fant også ut på data.norge.no at dataene finnes i XML.

     

    Om du legger det i en SQL base vil ikke dataene oppdatere seg om de endrer kommunalt da.

     

    Jeg fant ut at jeg heller ville se på BIBSYS sine åpne data. Sjekk bloggen min for mer om prosjektet :)

     

    Eller så har du funnet koden på nettet og oversatt dårlig.

     

    //legger til et barn i xml-dokumentet vårt
    

     

    Trur ikke child betyr barn i denne sammenhengen. :p

     

    jeg har skrevet dette selv, som en øvelse. Men ser på data.norge.no at dataene allerede finnes som XML.

  10. Setter denne som løst siden ingen er like nerd her :thumbdown::tease:

     

    Jeg laget i hvert fall et script som oversetter dataene til xml. Om noen skulle ville lage noe av det da.

     

    <?php
       //åpne dokumentet for driftsbudsjett 2012
      $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r");
      //XML dom
      $dom = new DOMDocument('1,0', 'UTF-8');
      $xmlRoot = $dom->createElement("xml");
      $xmlRoot = $dom->appendChild($xmlRoot);
    
      //array til feltnavn
      $fieldNames = array();
    
    
      //første linje inneholder felttitler, vi befinner oss i utgangspunktet på første linje, derfor setter vi en boolsk verdi her.
      $firstLineBool = true;
      //tar for seg hver linje i dokumentet
       while (($rows = fgetcsv($handle, 5000, ";")) !== FALSE) {
    
         //for første linje lagrer vi alle feltnavn i en array
         if($firstLineBool) {
    
    
           foreach($rows as $row) {
    
                //regex for å lage lovlige nodenavn
                $row = preg_replace('/[^0-9a-z ]+/i', "",  $row);
                //hvis den begynner med et tall legg til en "a" foran (for man kan ikke begynne navnet på et element med et tall)
                if(is_numeric(substr($row, 0, 1))) {
                    $row = "a" . $row;
                }
               $fieldNames[] = $row;       
           }
    
    
       }
    
       else {
         //legger til et barn i xml-dokumentet vårt
         $entity = $dom->createElement("Post");
         $entity = $xmlRoot->appendChild($entity);
    
         //for hver databit som nå ligger i $pieces lager vi et xml-element med dataene i, basert på feltnavnene vi fikk i første linje av dokumentet
         $whereInFieldNames = 0;
         foreach($rows as $row) {
             $element = $dom->createElement($fieldNames[$whereInFieldNames]);
             $element = $entity->appendChild($element);
    
             //konverter bokstaver til entities
    
             $content = $dom->createTextNode(utf8_encode($row));
             $element->appendChild($content);
             $whereInFieldNames++;
         }
       }
       $firstLineBool = false;
    
    }
    echo $dom->saveXML(); 
    
    ?>

  11. Hei. Jeg henter noe kommunale data og skal konvertere det til XML, for å øve meg litt i php. Men æøå blir ikke formatert skikkelig.

     

    <?php
       //åpne dokumentet for driftsbudsjett 2012
      $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r");
      //XML dom
      $dom = new DOMDocument('1,0', 'UTF-8');
      $xmlRoot = $dom->createElement("xml");
      $xmlRoot = $dom->appendChild($xmlRoot);
    
      //array til feltnavn
      $fieldNames = array();
    
    
      //første linje inneholder felttitler, vi befinner oss i utgangspunktet på første linje, derfor setter vi en boolsk verdi her.
      $firstLineBool = true;
      //tar for seg hver linje i dokumentet
       while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) {
    
         //for første linje lagrer vi alle feltnavn i en array
         if($firstLineBool) {
           //vi splitter linjen etter semikoloner
           $pieces = explode(";", $data[0]);
           //hver av delene fra linjen legger vi i feltnavn-arrayen vi definerte i begynnelsen.
    
    
           foreach($pieces as $piece) {
    
                //regex for å lage lovlige nodenavn
                $piece = preg_replace('/[^0-9a-z ]+/i', "",  $piece);
                //hvis den begynner med et tall legg til en "a" foran (for man kan ikke begynne navnet på et element med et tall)
                if(is_numeric(substr($piece, 0, 1))) {
                    $piece = "a" . $piece;
                }
               $fieldNames[] = $piece;       
           }
    
    
       }
    
       else {
         //vi splitter linjen etter semikoloner    
         $pieces = explode(";", $data[0]);
         //legger til et barn i xml-dokumentet vårt
         $entity = $dom->createElement("Post");
         $entity = $xmlRoot->appendChild($entity);
    
         //for hver databit som nå ligger i $pieces lager vi et xml-element med dataene i, basert på feltnavnene vi fikk i første linje av dokumentet
         $whereInFieldNames = 0;
         foreach($pieces as $piece) {
             $element = $dom->createElement($fieldNames[$whereInFieldNames]);
             $element = $entity->appendChild($element);
    
             $content = $dom->createTextNode($piece);
             $element->appendChild($content);
    
             $whereInFieldNames++;
         }
       }
       $firstLineBool = false;
    
    }
    echo $dom->saveXML(); 
    
    ?>

     

    Nå er utf-8 satt, om jeg setter ISO-8859-1, får jeg følgende output, det vil si det stopper på første "å":

     

    <br />
    <b>Warning</b>:  DOMDocument::saveXML() [<a href='domdocument.savexml'>domdocument.savexml</a>]: output conversion failed due to conv error, bytes 0xE5 0x64 0x73 0x6C in <b>C:\xampp\htdocs\test\kommbuds.php</b> on line <b>63</b><br />
    <?xml version="1,0" encoding="ISO-8859-1"?>
    <xml><Post><Avdeling>1</Avdeling><AvdelingT>Byr

     

    kan det være på serversiden hos meg at jeg har problemer, eller er dette noe som er kjent?

  12. Hei folkens. Jeg har sett litt på datagrunnlaget for budsjettet til Bergen Kommune. Tenkte jeg skulle se om jeg kom på en app eller noe, men har ikke kommet lenger enn til å parse dataene litt. Noen som har noen tanker? Uendelig med muligheter her.

     

    Nedenforstående kode er en begynnende enkel parsing av dataene i driftsbudsjettet. Håper noen er litt likesinnede meg her og liker å leke med datasamlinger. Jeg er temmelig nybegynner, kun student med noe arbeidserfaring.

     

    <?php
      $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r");
    
       while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) {
       $pieces = explode(";", $data[0]);
       print_r($pieces);
       echo "<br/>";
       echo "<br/>";
    }
    
    ?>

  13. ok fant ut av det. Det ser ut som at funksjonen navigator.geolocation.getCurrentPosition() jobber i bakgrunnen mens scriptet går videre eller noe. Løst ved å sette lasting av rute inne i if-klausulen. Syns uansett det var litt rart...

     

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
     html { height: 100% }
     body { height: 100%; margin: 0; padding: 0 }
     #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
       src="http://maps.googleapis.com/maps/api/js?sensor=false">
    </script>
    <script type="text/javascript">
    var directionsDisplay = new google.maps.DirectionsRenderer();
    var directionsService = new google.maps.DirectionsService();
    var fromWhere;
    var latlng = new google.maps.LatLng(60.3144318955972, 5.355277061462402);
    
     function initialize() {
    
          var myOptions = {
         zoom: 16,
         center: latlng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
       };
       var map = new google.maps.Map(document.getElementById("map_canvas"),
           myOptions);    
       var marker = new google.maps.Marker({
         position: latlng, 
         map: map, 
         title:"Hello World!" 
     });
    
         if(navigator.geolocation) {
       navigator.geolocation.getCurrentPosition(function(position) {
        fromWhere = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
          var request = {
       origin:fromWhere,
       destination:latlng,
       travelMode: google.maps.TravelMode.DRIVING
     };
         directionsDisplay.setMap(map);
     directionsService.route(request, function(result, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(result);
       }
     });
    
       }, function() {
         handleNoGeolocation();
       });
    
       }
    
       else {
         handleNoGeolocation();
       }
    
    
    
    
    
    }
    
       function handleNoGeolocation() {
         alert("fikk ikke din posisjon. Viser fra Bergen Sentrum");
         fromWhere = new google.maps.LatLng(60.388808310445015, 5.329720973968506);
           var request = {
       origin:fromWhere,
       destination:latlng,
       travelMode: google.maps.TravelMode.DRIVING
     };
         directionsDisplay.setMap(map);
     directionsService.route(request, function(result, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(result);
       }
     });
       }
    
    </script>
    </head>
    <body onload="initialize()">
     <div id="map_canvas" style="width:100%; height:100%"></div>
    </body>
    </html>

×
×
  • Opprett ny...