mandag 6. september 2010

Utregning av avgifter for privatimport av alkohol.

Tollvesenet har en guide om privatimport av alkohol med tre regneeksempler.

Tar jeg eksempelet med 12 flasker vin så får Toll.no 821 kroner i avgifter og 1621 som totalsum. Når jeg regner på dette selv ender jeg med 833.30 kroner i avgifter og 1633.30 kroner som totalsum. Det er jo ganske nært, men ikke helt likt. Og jeg skjønner ikke hva jeg gjør feil.

Toll.no oppgir at artikkelen har blitt oppdatert med nye satser for 2010 så man må vel anta at eksemplene er riktige.

Min fremgangsmåte er nå:
  1. Alkoholavgift, jeg tar satsen for vin(4,03 per volumprosent og liter) og regner ut 12 * 0,7 = 8,4 liter * 13 * 4,03 = 440,08 kroner.

  2. Emballasjeavgift er 4,97 kroner per glass/metall og 1,24 kroner for en pappkartong. 12 flasker vin * 4,97 = 59,64 + 1,24 = 60,88 kroner.

  3. Matproduksjonsavgift er på 0,71% av fakturasummen, så da regner jeg 0,71% av kostnad+frakt(600 + 200 i eksempelet) så 800/100 * 0,71 = 5,68 kroner.

  4. Merverdiavgift skal beregnes av kjøpesummen inkludert alle avgifter og frakt. MVA av 800 + 440,08 + 60,88 + 5,68 = 1306,64 / 100 * 25 = 326,66 kroner

  5. Totalt så skal dette bli 833,30 kroner(440,08 + 60,88 + 5,68 + 326,66) i avgifter og 1633,30 kroner(833,30 + 800) totalt. Det stemmer ikke med eksempelet til Toll.no

mandag 30. august 2010

nytimes.com

Grovt sett i denne rekkefølgen leser jeg nytimes.com. Hvorfor de ønsker at jeg må tilpasse meg 18 forskjellige formateringer og presentasjoner er for meg et mysterium.

torsdag 13. august 2009

Debugging pecl/memcache

Some background stuff; we have 14 servers running both Apache and Memcached on the same machines. Each is installed with 32GB RAM where memcached allocates 25GB.

The last days we've starting experiencing some problems with our webservers where they start using all the CPU and load average goes to 10-14(rarely above 2 in normal conditions). Debugging suggests is caused by pecl/memcache 3.0.4 or memcached itself.

Using strace on the httpd process it reveals an seemingly infinte loop using the syscall select(), waiting for activity on a socket. The socket is an connection to one of the memcached(1.2.6) servers.

The source for pecl/memcache 3.0.4 goes like this:

void mmc_pool_select(mmc_pool_t *pool TSRMLS_DC) /*
  runs one select() round on all scheduled requests {{{ */
{
  ...
    result = select(nfds + 1, &(pool->rfds), &(pool->wfds), NULL, &tv);
  ...
  [lots of code for sending and recieving data]
}


Nothing seems odd about the code in the mmc_pool_select() and there's no loops inside that can cause an infinite looping of select(). The most likely source of this loop lies in mmc_pool_run():

void mmc_pool_run(mmc_pool_t *pool TSRMLS_DC) /*
  runs all scheduled requests to completion {{{ */
{
  ...
  while (pool->reading->len || pool->sending->len) {
    mmc_pool_select(pool TSRMLS_CC);
  }
}


This simply seems like something triggers the socket so select() continues to run the mmc_pool_select() routine, but it never recieves or sends anything. In turn this never sets pool->reading->len or pool->sending->len to 0 and then you got an infinite loop.

What is the most likely source of the problem here? pecl/memcache or memcached itself? If it's the first we probably could solve it with switching to pecl/memcached.