Posted by & filed under android.

meh kitchen timer

Jeg har lenge straffet meg selv for at jeg ikke var flinkere til å følge med i matte timene da vi gikk gjennom cosinus og sinus. Dette har lenge forblitt et mysterium frem til nå. Jeg har besluttet meg for å gå nærmere inn på hvordan jeg kan benytte meg av sirkelberegninger for å øke kvalitet og muligheter i prosjekter. Etter noen små prosjekter kom det en konkurranse på Enigma sitt forum som oppfordret til å lage en kjøkken klokke. “Chalange excepted” og her er resultatet.

Tidligere prosjekt som inspirasjon

Posted by & filed under Uncategorized.

Endelig har jeg klart det. Etter siste eksamen den 12. desember startet prosessen å lære Android programmering. Det startet som en forundersøkelse og “oppvarming” til hovedprosjektet hvor vi skal jobbe med Android FoxHunt. Mer informasjon om hovedprosjektet kommer på et senere tidspunkt. Etter en rekke youtube-videoer, e-bøker og dokumentasjon har jeg klart å lage et produkt på ca 2 uker. Dette var moro!

Har du planer om å lære deg utvikling på Android vil jeg sterkt anbefale at du sjekker ut denne siden. Jeg har foreløpig ikke sett alle videoene, men mange av de har hjulpet meg en masse ettersom jeg ikke er noe glad i å lese. Etter som man begynner å få en forståelse av hva man driver med anbefaler jegAndroid Apps Absolute Beginners og Pro Android Games som oppslagsverk. Man møter mange utfordringer ved å programmere på Android og man må kanskje tenke litt “outside the box”, det er greit å ha noe å bla gjennom og innholdsfortengnelsen er vel kanskje den siden som blir lest mest.

Videre legger jeg ved noen andre linker som har vært veldig nyttige for meg.

http://thenewboston.org/list.php?cat=6
http://obviam.net/index.php/table-of-contents/
http://developer.android.com/resources/faq/commontasks.html
http://developer.android.com/guide/
http://google.com og http://stackoverflow.com/ (Mange som har løst problemer du lurer på)

StudWeb Mini på android market: https://market.android.com/details?id=com.olavz.studwebmini

Her er en video som forteller litt om applikasjonen og hvordan den fungerer.

Posted by & filed under Uncategorized.

Etter noen lange dager med prøving og feiling har jeg endelig klart å logge på StudentWeb med CURL og PHP. Dette åpner for å hente ut informasjon knyttet til eksamen og andre meldinger relatert til studiet og gjennomføring.

Noen av utfordringene jeg møtte i første runde er alle omplasseringene av sidene. Se HTTP 302 (http://en.wikipedia.org/wiki/HTTP_302), i et annet tilfelle var det en HTTP 303. Jeg antar at dette er gjort for å gjøre vedlikehold enklere og organisering for større prosjekter. En av ulempene ved dette er at CURL stopper ved første etterspørsel. Etter noen runder på hvordan HTTP 302 fungerer kom jeg fram til følgende innstilling for CURL.

 

View source
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

 

Nå som det er avklart kan vi starte påloggingsprosessen.

1. Vi starter ved å etablere cookie informasjon for valg institutt sin portal. Det gjør vi ved å besøke følgende link: https://www.studweb.no/as/WebObjects/studentweb2?inst=hiof hvor hiof byttes ut med ønsket instituttkode for universitet eller høgskole.

2. På denne siden er den en knapp for logg inn med Feide. Denne knappen sender ved informasjon relatert til innloggingen. Under testing valgte jeg å skru av JavaScript i nettleseren for å se det samme som CURL. Legg merke til at JavaScript er satt til null i skjema.

 

View source
<form action="/as/WebObjects/studentweb2.woa/wa/feideLogin" name="feideForm" method="post">
  <input type="hidden" name="fnromgjor">
  <input type="hidden" name="javascript" value="0">
  <input type="submit" name="feideLogin" value="Logg inn">
  <input type="hidden" value="feideLogin" name="WOSubmitAction">
  <input type="hidden" value="hiof" name="inst">
</form>

 

3. På den påfølgende siden logger vi på med brukernavn og passord. Ved feil brukernavn og passord forekommer den en ny HTTP 302 hvor feilmelding spesifiseres i URL.

4. Ved riktig brukernavn og passord kommer vi til en ny side. Legg merke til at vi befinner oss på Feide sitt domene. Denne siden er et skjema med en nøkkel gitt av Feide som vi trenger for å logge inn på StudentWeb. Nøkkelen ligger i et skjema og dersom du ikke har skrudd av JavaScript kommer du ikke til å se dette skjemaet.

 

View source
<body onload="document.forms[0].submit()">

    <noscript>
        <p><strong>Note:</strong> Since your browser does not support JavaScript, you must press the button below once to proceed.</p> 
    </noscript> 

    <form method="post" action="https://www.studweb.no/as/WebObjects/studentweb2.woa/wa/feideMoria">
<input type="hidden" name="SAMLResponse" value="{din nøkkel}" /><input type="hidden" name="RelayState" value="hiof&amp;javascript=0&amp;fnromgjor=" />
        <noscript>
            <input type="submit" value="Submit" />
        </noscript>

    </form>

</body>

 

Nå er du forhåpentligvis logget inn på StudentWeb ved bruk av CURL. Et lite tips videre for navigering av et bruk av regulære uttrykk. Linken endrer seg for hver session og hver gang man klikker på en link så endrer de påfølgende lenkene seg.

Konklusjon: Det skal ikke være lett å logge på ved bruk av CURL på StudentWeb. Nå starter utvikling av applikasjon for innhenting og presentering av eksamensresultater på en forenklet måte.

Posted by & filed under Uncategorized.

Created on Sunday, 18 December 2011 12:28

For noen uker siden fikk jeg for meg at et lysskilt ville vært utrolig kult å ha. Et som kan vise en melding, eller en digital klokke. Dessverre viser det seg at et slik skilt koster omlag 4000kr, ikke akkurat billig moro. Løsningen ville være å lage et eget skilt, dessverre er jeg ikke flink nok med elektronikk så jeg fikk for meg at dette også kan gjennomføres som en Android applikasjon.

Programmet et veldig enkelt, det opprettes 30*50 punkter på skjermen som representerer 1500 potensielle lyskilder. Deretter er det bare å finne ut hvilke lys man ønsker skal lyse for å lage illustrasjoner og tekster. Prosjektet er fortsatt under utvikling og kanskje kommer det på Market en gang? Nå fortsetter jobben med algoritmer for å lage noen kule lyseffekter. Her er en smakebitt på hvordan en liten tekststnutt presenteres:

Posted by & filed under Uncategorized.

I forbindelse med kurset Dokumenter og Web fikk jeg et behov for å legge til QRCode i prosjektet. Ettersom jeg alt hadde en god fungerende teksteditor nicEdit valgte jeg å se på hvordan man kan lage og implementere en knapp til verktøylinjen. Hjemmesidene til nicEdit har man mulighet til å lastened et utviklermiljø for å utvikle egne moduler, allikevel valgte jeg å se på struktur å lage min egen hack for nicEdit.

I dette eksemplet skal vi gå gjennom hvordan vi kan legge til QRCode i nicEdit.

Vi starter med å modifisere ikonsettet nicEditorIcons.gif. Et ikon er 18×18 piksler, utvid derfor bilde med 18px så vi får 504x18px. Husk at det siste bildet er på plass 28 fra venstre.

Deretter modifiserer vi nicEdit og legger til en ny knapp i koden. Den nye knappen får navnet qrcode, tallet bak navnet sier noe om hvor ikonet befinner seg i bilde (plassnummer fra venstre).

 

View source
  1. iconList : {“xhtml”:1,”bgcolor”:2,”forecolor”:3,”bold”:4,”center”:5,
  2. “hr”:6,”indent”:7,”italic”:8,”justify”:9,”left”:10,”ol”:11,
  3. “outdent”:12,”removeformat”:13,”right”:14,”save”:25,
  4. “strikethrough”:16,”subscript”:17,”superscript”:18,
  5. “ul”:19,”underline”:20,”image”:21,”link”:22,
  6. “unlink”:23,”close”:24,”arrow”:26,”upload”:27,”qrcode”:28}

 

Opprett et informasjonsobjekt for knappen og dens funksjonalitet. Funksjonaliteten knyttes opp mot qrcode som vi definerte i ikon listen over.

 

View source
  1. var nicQRCodeOptions = {
  2.     buttons : {
  3.         ‘qrcode’ : {name : ‘Insert QR Code’, type : ‘nicQRCodeButton’, tags : [‘img’] }
  4.     }
  5. };

 

Når vi trykker på knappen må vi spesifisere hva som skal skje. Dette gjør vi ved å lage et nytt button objekt.

 

View source
  1. var nicQRCodeButton = nicEditorAdvancedButton.extend({
  2.     width : ‘350px’,
  3.     addPane : function() {
  4.         this.im = this.ne.selectedInstance.selElm().parentTag(‘IMG’);
  5.         this.addForm({
  6.             ” : {type : ‘title’, txt : ‘Insert QRCode’},
  7.             ‘txt’ : {type : ‘content’, txt : ‘Tekst’, ‘value’ : ”,
  8. style : {width: ‘150px’}},
  9. ‘size’ : {type : ‘select’, txt : ‘Size’, ‘value’ : ”,
  10. style : {width: ‘150px’}, options :
  11. {‘150×150′:’150px’,
  12. ‘200×200’ : ‘200px’,
  13. ‘250×250’ : ‘250px’,
  14. ‘300×300’ : ‘300px’,
  15. ‘350×350’ : ‘350px’}}
  16.         },this.im);
  17.     },

 
Objektet forteller nicEdit å lage et nytt skjema med mulighet for å skrive inn tekst og velge en størrelse. Valgmulighetene for størrelse er formatert etter hvordan Google Graph behandler størrelser. For å slippe konverteringer er det valgt å bruke det samme formatet.

Nå har vi et skjema som ser slikt ut:

Etter addPane lager vi en siste funksjon submit som behadler dataene vi mottar fra skjema. Her tester vi teksten for en makslengde på 300 tegn etter som QRCode ikke større flere tegn. Deretter legger vi til et bildeobjekt og bygger url for bildet.

 

View source
  1. submit : function(e) {
  2.         this.removePane();
  3. var text = this.inputs[‘txt’].value;
  4. var size = this.inputs[‘size’].value;
  5. if(text.length > 300) {
  6. alert(‘Maks lengde på tekst 300 tegn!’);
  7. return;
  8. }
  9. if(!this.im) {
  10.             var tmp = ‘javascript:nicImTemp();’;
  11.             this.ne.nicCommand(“insertImage”,tmp);
  12.             this.im = this.findElm(‘IMG’,’src’,tmp);
  13.         }
  14.         if(this.im) {
  15.             this.im.setAttributes({
  16.                 src : ‘https://chart.googleapis.com/chart?chs=’ +
  17. size + ‘&cht=qr&chld=L|1&chl=’+text
  18.             });
  19.         }
  20.     }
  21. });
  22. nicEditors.registerPlugin(nicPlugin,nicQRCodeOptions);

 

Den siste linjen registrerer modulen til nicEdit og den er klar til bruk.

Last ned modifisert nicEdit.js her.

Les mer om Google graph QRCode her.