Wednesday, July 25, 2012

Notes from "Javascript: The Good Parts"

Some time ago I read JavaScript: The Good Parts, a nice book on Javascript, the lingua franca of the web. Book concentrates on the nice features of Javascript and warns of the not-so-nice features.

My experience with web frontend technologies isn't too strong so I was pretty happy with the book.


This post is a short summary of things that I wasn't too familiar with, mostly in order I encountered them:

Misc things:

  • Javascript has only one numeric type, the same as Java's Double
    • Which means that 1 ends up being 1.0, no separate integers
    • Floating point with computers effects checking of equality, 0.1+0.2==0.3 ends up as false 
  • Javascript has function scope (no block scope)
  • Javascript objects are class-free mutable keyed collections
  • Inheritance : Javascript is a prototypal language
    • Objects inherit straight from other objects
    • prototype objects (e.g. Cat.prototype)
    • Note that this prototype relationship is dynamic.
  • Important widely used convention : constructions functions with capital letter, others with minor
  • A bonus one (not from the book) : For some time I wondered why some variables are started with $ and some not. Seems to be convention to name variables holding jQuery objects to start with a $. See for example Why would a javascript variable start with a dollar sign (at Stack overflow)

The invocation patterns (a.k.a what is 'this')

Method invocation pattern

  • When the function is a property of an object, it is called a method. When the function is called as a method of an object, this points to the object.

Function invocation pattern

  • When the function isn't called as an method, it is invoked as a function -> this points to the global object
  • A mistake in the language design.
  • Causes problems with inner function inside an outer function (inner function doesn't share this of the outer function
    • A common workaround is to save this of outer function to a variable named that.

Constructor invocation pattern

  • According to the writer of the book, "worst of two world" (classical vs. prototypal inheritance)
  • If a function is invoked with the new prefix, a new object will be created with a prototype link and this points to that new object.
  • Functions intended to be called with new are called constructors. They should be given a capitalized name!

Apply invocation pattern

  • Functions can have methods; apply method of a function lets us to choose the value of this, before the arguments.
For those interested, Yehuda Katz has a good summary of these : Understanding Javascript function invocation.

Monday, December 19, 2011

Problems with iMac sleep mode & Spotify

I've had problems with my iMac's sleep mode for some time : Sometimes it takes pretty long (like 10-20 sec or something) to get the computer to sleep mode. More annoying, sometimes the computer wakes up itself after a couple of seconds. But, the problems seem to occur only every now and then, not all the time.

Now I got fed up enough with this and examined things a bit. Short googling didn't help straight but I ended up checking out logs from Console. Spotify seemed to have pretty many log entries there so I ended up closing it. That makes sense, since Spotify's P2P architecture is probably sharing music from it's cache on my computer every now and then.

After that, I haven't had any sleep mode issues at least so far... (went to sleep mode only a couple of times so far). But thought to share it in case somebody ends up googling with similar problems.

Wednesday, December 14, 2011

Minun Kiinani - Isän aika

Kirjastosta tarttui mukaan Minun Kiinani osa 1 - Isän aika, Li Kunwun kolmiosaisen sarjakuvaromaanin 1. osa. Jostain syystä sarjakuvaromaanit ovat viime aikoina olleet suosiossa, varsinaisten lukemiseen ei aika oikein meinaa riittää.

Tarina kuvaa omaelämänkerrallisesti pojan varttumista Maon johtamassa Kiinassa. Elävä kuvaus siitä, mitä kulttuurivallankumous merkitsi käytännössä. Jännä peilata nyky-Kiinaan (vaikken siitä juuri mitään tiedäkään).

Täytyy joka tapauksessa jäädä odottamaan loppujenkin osien ilmestymistä kirjastoon.

Monday, September 5, 2011

Samsung ML-1610 ja iMac

Sattumalta saatiin käyttöön tulostin, Samsung ML-1610. Suoraan ei nähtävästi valmistajalta löytynyt Mac OS X -ajureita (iMac ja Snow Leopard käytössä) mutta SpliX asentui sukkana sisään ja ainakin testisivu tuli moitteettomasti. Pistetäänpä ylös jos joku asiaa joskus googlettaa.

Monday, May 23, 2011

At-merkki kuntoon Aquamacs -asetuksissa

Hankinpa uuden koneen ja pitihän Emacs tuohon saada. Pienen googlettamisen ja miettimisen jälkeen päädyin jatkamaan vanhallakin koneella olleen Aquamacs-version käyttöä.

Vastaan tuli, jotta at-merkki (at sign eli @) ei toiminutkaan. Ratkaisu löytyi melko nopeasti mutta kun "at-merkki" aquamacs -googletus ei tuottanut tulosta, pistetään blogiinkin ylös:

at-merkinhän saa alt+2 -yhdistelmällä. Oletusasetuksilla Aquamacs tulkitsee tämän meta+2 -painallukseksi. Onneksi valikosta löytyy Options -> Option, Command, Meta keys -> ..Meta and Finnish joka on juuri suomalaisen näppäimistö-layoutin erikoisuuksia varten. Tämän jälkeen Options -> Save options tallettaa asetuksen myöhempääkin käyttöä varten.

Kiinnostuneille vielä mainittakoon, että asetus on muuttujassa emulate-mac-finnish-keyboard-mode ja asetustiedostoon customizations.el tämä tulee seuraavan näköisenä (muut muuttujat siivottu pois)
(custom-set-variables
'(emulate-mac-finnish-keyboard-mode t))




Thursday, April 8, 2010

Kalastus-huumoria

Sähköpostisalasanojen kalastajien yritykset käyvät välillä ihan huumorista, pari hyvää pätkää:

Hyvä TKK WebMail Käyttäjä:

Subject: Hyvä TKK WebMail Käyttäjä

From: Helsinki University Webmail

Reply-to: aochi@9.cn

..


Hyvä TKK WebMail Käyttäjä


DGTFX virus on havaittu postilaatikkoon kansioita. Sähköpostitilisi on

päivitetty uuden Secured DGTFX anti-virus 2010 versio estää vaurioiden

webmail sisään ja tärkeät tiedostot.


Napsauta vastaus-välilehti Täytä sarakkeet alla ja lähettää takaisin

meille tai sähköpostitilisi puretaan, jotta viruksen leviäminen.


TKK USERNAME:

TKK SALASANA:

TKK vahvista salasanasi:

Syntymäaika:.


Johtaja TÜBÝTAK WebMail teknistä tiimiä. Huomaa, että salasana salataan

1024-bittinen RSA-avaimen salasanaa turvallisuus


Kiitos yhteistyöstä.

Helsingin yliopisto Webmail


Toinen pätevä setti:

Webmail Käyttäjien,


Pahoittelemme ilmoittaa teille, että teemme joitakin elintärkeitä huolto

meidän webmail. Tämän prosessin aikana sinulla voi olla kirjautunut

ongelmia kirjautua online huomioon, mutta tämän estämiseksi sinun on

vahvistettava tilisi heti, kun olet saanut tämän ilmoituksen.


Vahvistaa ja tili pysyisi aktiivisena aikana ja sen jälkeen tätä

prosessia, vastaa tähän viestiin alle tilitiedot, Jos näin ei tehdä

saattaa aiheuttaa pysyviä ampumakelvottomaksi käyttäjätilisi meidän

tietokanta, jonka avulla voimme luoda lisää tilaa uusille käyttäjille .


Tilin Vahvistus


Nimi:

Käyttäjätunnus:

Salasana:

Syntymäaika:


Tilisi on edelleen aktiivinen, kun olet vahvistanut tilin tiedot.


Kiitos


Helsinki School of Economics

Webmail Support Team

Saturday, February 13, 2010

How to Make a Million Before 30 - Kuinka tienata miljoona alle puolessa vuodessa


Törmäsin vanhan puolitutun projektiin tienata miljoona (USD) ennen 30-vuotispäiväänsä. Joka tulee 30.6.2010. Projektista voipi lukea blogista How to Make a Million Before 30.