Archives 2005 - 2019    Search

First person view i radiostyrda flygplan

published Jun 26, 2012 06:06   by admin ( last modified Jun 26, 2012 06:06 )

Det blir mer och mer poppis med radiostyrda flygplan med inbyggd videokamera, med videolänk till marken och "piloten".

 

Här två svenska bloggar:

RCexplorer

FPVStockholm - RC and FPV

 

Hittat via DN.

 


Färgerna på klart.se:s regnkartor stämmer inte

published Jun 24, 2012 06:08   by admin ( last modified Jun 24, 2012 06:08 )

Läste om det myckna regnandet på SvD, och följde en länk till regnkartan på klart.se.

 

...men kunde inte riktigt lura ut vilken färg som stod för vilken millimetermängd i nederbörd. Jag bestämde mig för att se om det var mina ögon som lurade mig eller om något var fel på färgerna, genom att klippa ut färgförklaringen och lägga den direkt över nederbördszonerna:

Och då ser man att färgerna stämmer inte. Den enda färg som tycks stämma ungefär är 0,2mm (se bilden nedan), men den passar för zonen med 0,3 mm i kartan såvitt jag kan se.


Länk - Count the number of occurrences of items in a python sequence

published Jun 13, 2012 03:25   by admin ( last modified Jun 13, 2012 03:25 )

Found this on stackoverflow:

dict((i,a.count(i)) for i in a)



Read more: How to calculate the occurrences of a list item in Python? - Stack Overflow


Länk - Kompakt notation för Google Maps

published Jun 03, 2012 03:17   by admin ( last modified Jun 03, 2012 03:17 )

 

gmaps.js Google Maps API with less pain and more fun



Read more: gmaps.js — the easiest way to use Google Maps


How to reach mobile users with a standard web site

published May 29, 2012 02:15   by admin ( last modified May 29, 2012 02:15 )

Lots of people surf on devices with small screens, and it can be a chore to make a web site that scales well to work well on both small and large screens. Redesigning web sites can also be surprisingly expensive.

One way of getting around that hurdle, and possibly save some money in the process, is to have a mobile site that automatically tracks and translates the standard web site, but presents the information in a format that works on the smaller screens.

This is the idea behind mdotit.com, a service Webworks and Colliberty has started. mdotit takes a standard web site and adds a mobile site that automatically updates from the standard site. No installation needed. If this sounds good to you, take a look. If this text sounds a bit promotional, well I am one of the guys behind mdotit :-)


Sajt som redovisar vetenskapligt stöd för olika kosttillskott

published May 23, 2012 12:29   by admin ( last modified May 23, 2012 12:29 )

För en tio år sedan fanns det en liknande sajt som gav info om olika preparat. Kul att se att det kommit en igen.

Examine.com is a science-focused compendium on supplements, nutrition, fitness, and health.



Read more: A Compendium on Nutrition, Health, & Fitness | Examine.com


Make a dummy REQUEST object in Zope debugger

published May 23, 2012 11:42   by admin ( last modified May 23, 2012 11:42 )

It is listed on zope.org, but I'll just paste it in here from their pages in case it disappears:

from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManager import setSecurityPolicy
from Testing.makerequest import makerequest
from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy, OmnipotentUser
_policy=PermissiveSecurityPolicy()
_oldpolicy=setSecurityPolicy(_policy)
newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))
app=makerequest(app)

and then the request object is in app.REQUEST i noticed. I used the code snippet today to figure out why something did not work in portal_transforms in Plone.

Some things you may want to call in the debugger may require a real REQUEST object, as if they were being published on the web. This zopelabs recipe shows how to make one:



Read more: Zope 2 wiki How to fake REQUEST in debugger

 


Krisens konsekvenser förklarade

published May 16, 2012 04:35   by admin ( last modified May 16, 2012 04:35 )

Jag har tidigare försökt förklara den finansiella krisen. Nu när den ekonomiska krisen är över oss, så kan det vara bra att bena ut vad den beror på, och se varför man inte kan expandera sig ur den, med konstgjort låga räntor och andra åtgärder av det slaget.

Vad som hänt då är en stor snedvridning av ekonomin, där massor av människor arbetar med något som inte ger tillräckligt stort ekonomiskt värde för att vara till nytta för andra människor. 

Vad som då kommer att hända är att dessa människor måste sluta arbeta med dessa saker och försöka hitta något att göra som har ett större värde. Innan de hittar detta kommer de ut i arbetslöshet, eftersom det kommer att råda stor förvirring om vad som egentligen producerar ett större värde. Ekonomin går neråt och vi blir alla fattigare och måste arbeta mer, äta mindre, få mindre sjukvård och ta mindre semester osv.

Den ekonomiska kris vi går in i nu, kan bara lösas av att stora grupper människor börjar arbeta med andra saker än de gör idag. Sänkta räntor och stimulansåtgärder förvärrar bara problemet.

Hela länder kan i extremfall komma se sin ekonomi och valuta halveras.

 

Vad som hänt är att människor förletts, eller förlett sig själva, att arbeta med saker och att köpa saker, som till syvende och sist inte haft något stort ekonomiskt värde.

Detta har har lett tlll något som närmast liknar ett fiasko i någon gammal planekonomi.

Om man ser alla lånefinansierade projekt, vare sig det är företagsprojekt eller lån till ett hus, som små rallybilar, så har följande hänt:

- Alla projekten sätter iväg mot framtiden i varsin rallybil. Fast problemet är att kartläsaren inte har koll på var vägarna till framtiden finns, antingen för att han har fått en felaktig karta eller för att han helt enkelt saknar omdöme. Men, det är i all fall massor av bensin i tanken, för den som lånat ut bensinen tror ordentligt på projektet.

Men, så kommer en kris, när man börjar ifrågasätta om man verkligen kör rätt. Bilarna får inte mer bensin. Men då går staten in och häller i mer bensin, och vips så är det fart på rallybilarna igen och de fortsätter att köra efter kartan och eget omdöme. Men till slut får man erkänna att man kört så långt ut i skogen att man får överge bilen.

Mycket förenklat så är det vad som händer just nu. Massor av projekt, företagsprojekt och lån till hus har fått lån fast det visar sig att de som lånat till hus inte kan betala tillbaka, och de som lånat till projekt inte lyckades skapa något värdefullt i sina projekt. Staten går då in och fortsätter ge låga räntor, så att de dåliga projekten kan fortsätta. Men till slut har de som arbetar i projekten kommit till vägs ände och man måste acceptera att det de gjort inte har något större ekonomiskt värde.

Vi har levt i en bubbla, ekonomin har varit överhettad. Jag har inte tidigare förstått vad ordet överhettad betyder när man talar om ekonomi, men det tycks som om att det har att göra med en överoptimism om att i stort sett allt man företar sig kommer att ge stor ekonomisk vinning. Dvs en manisk period i det ekonomiska livet. En viktig komponent i detta kan vara låga räntor: Långivarna är så säkra på att det de lånar ut till kommer att gå bra och ge vinst, så de sätter en låg ränta.

Vad som nu hänt är att räntan satts artificiellt lågt, för att "hålla hjulen igång". Det innebär att manin fortsätter. Men det som behövs är en rejäl höjning av räntorna, så att långivare kan försäkra sig mot dåliga lån. Räntorna kommer alltså att gå kraftigt upp. Dessutom måste många, många människor sluta arbeta med det de gör idag, och göra något annat, eftersom det de gör idag inte uppskattas ekonomiskt tillräckligt mycket av andra. Stora friställningar alltså, följt av en period av smärtsam omställning.

Oron i framför allt euroområdet pressar ned räntorna i Sverige så några kommande räntehöjningar är inte sannolika, säger ekonomijournalisten och privatekonomiska experten Annika Creutzer



Read more: Så påverkas du av nyvalet i Grekland - DN.SE

 

 

Uttalandena från ledande europeiska politiker om Greklands roll i euron spretar rejält.



Read more: EU splittrat om ”Grexit” | Världen | SvD

 


Orbit tower and Tatlin's tower

published May 11, 2012 09:17   by admin ( last modified May 11, 2012 09:17 )

A new tower sculpture has been unveiled in London. In a Guardian Article the designers liken it to the Tower of Babel in the Bible, but I am reminded of Tatlin's tower, a tower sculpture that was proposed in the Soviet Union, but never built.

Tatlin's idea was to create a monument to the Bolshevik revolution, by way of a 400m tower consisting of four suspended geometric structures designed to make full revolutions over different periods of time.


Read more: Bartlett Year 1 Architecture Diary: Tatlin's Tower - Vladimir Tatlin

 

Doing a search and again ending up on the Guardian web site, I realised the designers were indeed inspired by Tatlin's Tower:

Kapoor and Balmond sat down with a sketch pad and thought what the reference points might be. As well as Eiffel, they thought of Tatlin's Tower (the vast constructivist monument conceived for Petrograd in the year of the Russian Revolution, but never built)



Read more: Anish Kapoor's Orbit tower: the mother of all helter-skelters | Art and design | The Observer

 


Link - A wrapper around python's subprocess

published Apr 30, 2012 12:16   by admin ( last modified Apr 30, 2012 12:16 )

 

Envoy: Python Subprocesses for Humans. Note: Work in progress. This is a convenience wrapper around the subprocess module.



Read more: kennethreitz/envoy · GitHub


How to remove all tickets from a Trac instance

published Apr 24, 2012 03:26   by admin ( last modified Apr 24, 2012 03:26 )

Note that this is if you use bash as your shell. Tested on Debian 5. Please note that this is on a strictly "worked for me" basis. Please test it in a safe environment first.

for f in {4..150} ; do trac-admin /path/to/trac-instance ticket remove "$f" ; done

...will delete tickets numbered from 4 to 150 and their associated data. It's ok to overshoot with numbers, the script will chug on.


Länk - A very simple tree implementation in python

published Apr 24, 2012 01:29   by admin ( last modified Apr 24, 2012 01:29 )

 

Using Python's built-in defaultdict we can easily define a tree data structure: def tree(): return defaultdict(tree)



Read more: one-line tree in python — Gist


Länk - Python to Redis to IRC to PasteBin

published Apr 20, 2012 12:05   by admin ( last modified Apr 20, 2012 12:05 )

 

I wrote a custom logging handler that pushes JSON-encoded log record data to a redis pub/sub channel. I then have an IRC bot that subscribes to this channel and when it receives a message generates a paste of the traceback and pings me with a link to the traceback.



Read more: charles leifer | Using Redis Pub/Sub and IRC for Error Logging with Python


Hantera fuskare i spel

published Apr 03, 2012 01:35   by admin ( last modified Apr 03, 2012 01:35 )

I dataspel kan man ibland låta datorn hjälpa en på ett otillbörligt sätt med t ex en aimbot. Man kan då försöka detektera vem som fuskar och straffa/avstänga dom.

Men en intressant strategi är att inte på ett uppenbart avslöja att fusk detekteras, genom att ge ett straff som är svårt att detektera för fuskaren. Då fördröjer man motmedelsutvecklingen på fuskarsidan. Två sätt som nämns i en tråd på reddit är:

  • Att belöna icke-fuskare med poäng, Det blir som att införa inflation i spelet där detekterade fuskares poäng inte är inflationssäkrade och därmed inte räknas upp
  • Att sätta alla detekterade fuskare i samma divison el dyl så att de tävlar bara mot varandra



It's worth calling out how Valve handled this in Team Fortress 2. They secretly recorded everyone who used a cheat program, then gave everyone else a hat.


Read more: Extravagant Cheating via Direct X : programming


Correct mp3s to show correct playing time on Linux

published Mar 26, 2012 01:28   by admin ( last modified Mar 26, 2012 01:28 )

Install the "MP3 Diags" application, and apply the "Repair VBR Data" action.

 

When encoding mp3s with variable bit rate, teh resulting file will sometimes confuse media players such as Rhythmbox. In my case the problem was solved by installing the MP3 Diags program and applying the "Repair VBR Data" transformation (see screenshot below).

 


Kivy - develop for Android and IOS with Python

published Mar 13, 2012 01:10   by admin ( last modified Mar 13, 2012 01:10 )

 

Kivy is an open source software library for rapid development of applications equipped with novel user interfaces, such as multi-touch apps. You are probably wondering why you’d be interested in using Kivy. There is a document outlining our Philosophy that we encourage you to read.



Read more: Welcome to Kivy — Kivy 1.1.2-dev documentation


Two useful perl one-liners for searching and replacing

published Mar 11, 2012 03:15   by admin ( last modified May 04, 2015 05:05 )

 

To change a string in all files in the current directory and below

find |xargs perl -pi -e 's/searchpat/replacepat/g'

 

Examples:

find -name "*.py"|xargs perl -pi -e 's/searchpat/replacepat/g'


find -name "*.pt"|xargs perl -pi -e 's/searchpat/replacepat/g'

 

To change the names of files in current directory and below

find|perl -nl -e '$o= $_;rename($o,$_) if s/searchpat/replacepat/'

A site for testing the performance of your web pages

published Mar 08, 2012 04:14   by admin ( last modified Mar 08, 2012 04:14 )

I am in the process of testing it right now:

Run a free website speed test from multiple locations around the globe using real browsers (IE and Chrome) and at real consumer connection speeds. You can run simple tests or perform advanced testing including multi-step transactions, video capture, content blocking and much more. Your results will provide rich diagnostic information including resource loading waterfall charts, Page Speed optimization checks and suggestions for improvements.



Read more: WebPagetest - Website Performance and Optimization Test

 

 

There is also a sister site, blaze.io, that seems to do about the same thing for mobile devices:


unidecode - stripping down text to ASCII in a sane way

published Feb 27, 2012 01:29   by admin ( last modified Feb 27, 2012 01:29 )


A module that makes "Jörgen" into "Jorgen" and "mañana" into "manana". And so on.

Note that this module generally produces better results than simply stripping accents from characters (which can be done in Python with built-in functions). It is based on hand-tuned character mappings that for example also contain ASCII approximations for symbols and non-Latin alphabets.



Read more: Unidecode 0.04.9 : Python Package Index


Move back the Firefox reload button to its proper place

published Feb 23, 2012 07:47   by admin ( last modified Feb 23, 2012 07:47 )

Right-click the menu bar, select "Customize...", and then when the dialog comes up, you can drag and drop the existing reload button on the bar to go to the left of the url field.

That is, you are not limited to the selction of buttons shown in the dialog, you are free to move the already placed out buttons in the browser as well.

I moved mine .. I think it was right click on the navigation bar, click customize .. then drag and drop it where you want.


Read more: Firefox 7.0 question: how do I move reload button?