From webpage to Kindle e-book

11. mars 2011

Actually, this little post should have been called «How to create e-pubs from web-pages, convert them to .mobi, and read them on your Kindle». But that was too long. I am short on time so I am just going to sum it up for you:

Forget about the content below: just use SendToReader – it is the easiest, most hassle-free solution by far 🙂 (Thanks go to Sergey!)

  1. Add the little bookmarklet from dotEPUB. This will enable you to convert any webpage to the epub format instantly. Pretty much like the pdf-printers most people are accustomed to.
  2. Download Calibre – a free-for-all e-book management system that can convert from/to any format. Available for all operating systems
  3. Go to any web page you would like to have converted and press the dotEPUB bookmarklet to get a epub version.
  4. Add the epub books you now have created to Calibre
  5. You can now mass-convert the titles to mobi or do this per title.
  6. Use Calibre to add them to your e-book reader. It can even send books using e-mail (for instance using Amazon Whispersync to deliver books to your Kindle).

There you go. Any web page is now downloadable as an e-book for your reading device of choice!


Lessons learned in JavaScript, Part 1: Cross domain JSON and Firebug logging

19. november 2010

Firebug has a little utility feature where you can log messages in your Javascript code to Firebugs console. This works a lot better than using a heap of alert() calls, but only works if you have Firebug running. Of course I found out the hard way when showing my work with Firebug turned off, at which time the code broke due to this undefined (actually undeclared) «console» variable.

Lesson learned: if you want to produce logs to see in Firebug, check to see if the console variable is declared. Now of course, you could check this before every call like this

if( typeof(console) != "undefined" )
  {console.log("graphBuilder(): success");}

The stupid with this approach is that you cannot move this bit into a function since the undeclared variable would throw a runtime error the moment you tried to pass it as an argument. What does work (for me), is that I define my own log() method and do the check within this. If console is not defined (e.g. Firebug is not loaded), I define both the console and the log function so they don’t throw a runtime error. The code looks like this:

function log(log_message) {
  /* check to see if Firebug is loaded. */
  if( typeof(console) == "undefined" ) {
    /* Avoid runtime errors by defining 
        the console object and its associated functions 
    */
    console = {}
    console.log = function(arg){;}
  }
  else console.log(log_message);
}

BTW, to those new to Javascript, variables have function scope, not block scope, so declaring a variable in the if statement works 😉

The other tidbit of knowledge I recently learned concerns JSON and the same origin policy. In theory, most modern browsers should not allow a script to call a service residing on a domain different from the page. So why does the following call work?

service = 'http://ws.geonames.org/postalCodeLookupJSON?'
parameters = {
postalcode:1540,
country:'NO'
}
$.getJSON(service, parameters, function(data) {
  alert(data.postalcodes[0].adminName2);
});

After posting the question on StackOverflow I found about a new header that is supported by newer browsers (for instance Firefox 3.5+) called  «Access-Control-Allow-Origin». If this header is set to allow * (meaning all domains), the request is let through by the browser to the calling script. You can also use this to whitelist specific domains. AFAI can tell, this could be a way of avoiding JSONP if your site has public, non-sensitive information.


<title /> bug in Internet Explorer

19. april 2008

Just thought I would bring along my experience on this little known bug in Internet Explorer. Les resten av dette innlegget »


Når Dilbert bare ikke er nok.

19. april 2007

Min nye favoritttegneserie
Min nye favoritttegneserie. For en gangs skyld føler jeg faktisk at jeg får bruk for utdanningen min i en kulturell sammenheng. Hurra.


Klassisk Ystenes m.m.

16. januar 2007

«Det var en anakreontisk ode med en så transcendental verbalisering at jeg er stolt av den selv.» Fant et klassisk leserinnlegg fra kjemiprofessor Martin Ystenes der han bit for bit renplukker dr.philos Stein Erik Johansen for enhver rest av akademisk ære. Høres dødtrøtt ut, men det fikk meg til å holde meg våken helt til slutten kl. ett på natten. Anbefalt!

Og vi har også: Magnekyl-brennstoff! Verdens energi- og miljøproblemer er løst!


Looks, Body, Service, BJ, Recommendation

27. desember 2006

Nettets veier er uransakelige… Lette etter sangen «Rock the Catbah» og endte opp på et forum for horekunder i Singapore. Sangen heter forresten «Rock the Casbah» og ikke «.. Catbah», fant jeg ut… Er det forresten noen som kan fortelle meg hva «The Clash» synger om i denne sangen?


Smak av kjendislivet

4. juni 2006

Gigolo Joe, what do you know? Ved en tilfeldighet fant jeg ut jeg har fått litt kudos på CasioNova . Wow, tenk… nå er jeg nesten kjendis på bloggen til en nerdete elektronikafyr fra Brisbane som utelukkende spiller på gamle Casio-keyboard fra åttitallet. Hvem skulle trodd at jeg noensinne skulle komme så langt i livet…
CasioNova


Truffet

15. mai 2006

If these words were people, I would embrace their genocide. Jeg antar jeg bør føle meg truffet, men jeg fortsetter som den glade amateur jeg er :p


TuckerMax.com

15. mai 2006

«My name is Tucker Max, and I am an asshole.» Når dette er den første setningen på hjemmesiden vet man at man har funnet en godbit.Tucker Max har gitt ut boka «I hope they serve beer in hell». Den har kommet på bestselgerlistene og fått gode kritikker i samme slengen – ingen naturlig ting om man tar innholdet i betraktning. Torstein, you have met your match.

Og som en bonus gir jeg deg churchsigngenerator.com


Tidsfordriv.

26. april 2006

Leste akkurat en artikkel fra verdensvevens barndom (oktober 94) på Wired Magazine. Artikkelen handlet om verdens mest populære nettleser, Mosaic (husk, dette var 1994), og det miljøet som kom til å utgjøre Netscape. I slutten av artikkelen skriver journalisten om et fenomen som de fleste skulle få et forhold til 10 år senere. Surfing på nettet, der det opprinnelige målet til slutt forsvinner i en endeløs informasjons- og assosioasjonsstrøm Og da skjønte jeg jo hva jeg selv har holdt på med de siste 9 timene… Whoops.
Hva var det jeg har gjort i dag? Jeg våknet opp, fant ut at jeg ikke kom til å rekke forelesningen 1015, sov litt til, dusjet, kommer ut av dusjen bare for å finne ut at jeg ikke rekker 1415 forelesningen, leser Teknisk Ukeblad og skrur på maskinen. For å finne fasiten på ukens nøtt. Og her er jeg. 9 timer senere. Riktignok med vissheten om at jeg klarte mattenøtten, men også med vissheten om at innleveringen jeg fikk to dagers utsettelse fremdeles ikke er påbegynt. Og antagelsen om at jeg ikke kom til å bruke Blink har falt i fisk..

Det eneste jeg kan egentlig si at jeg har fått ut av denne dagen er at om du er en oppegående programmerer så ender du enten som lobotomert zenbuddhist (Nat Friedman), eller så bestemmer man seg for å hoppe ut av hele bransjen, kjøpe en dritfet nattklubb, og selge øl (Jamie Zawinski).

Sistnevnte har forsåvidt en fascinerende bakgrunn bl.a. fra oppstarten av Netscape (se over), og hjemmesiden hans har en del fascinerende tekno-historisk info som her, fra de første månedene i Mosaic:

I saw Ian today, for the first time in months. His first words were, «Wow, you look like shit.» He says I seem really strung-out and twitchy. I thought I had been doing ok! I got a full night’s sleep last night and everything. I have no life. I never see any of my non-work friends, and I’m wasting away my one and only youth. I ought to be out doing fun things and active things, the kind of things I won’t be able to do when my mind and body finally decay. But instead I’m stuck inside under fluorescent lights, pushing bits around inside a computer in ways that are only interesting to other nerds. I glanced at a movie listing and there are movies out that I haven’t even heard of. How did that happen? That freaks me out.

I bought some wrist braces at a drug store, and I’ve been typing with them for a couple of days. I don’t think it’s helping much; my middle finger doesn’t hurt quite as much, but my ring finger is just as bad. This job is destroying my body. This can’t be worth it.

Hmm. Er det slik suksess smaker? Tror jeg holder meg til middelmådighetens tinder.