Tig och lid!

Tig och lid! header image 1

Nyinflyttade

posted on februari 19th, 2012 ·

Tja, som många av er vet så har vi köpt ett hus tillsammans, sambon och jag. Och nu, två veckor efter flytten, har jag en hel kväll ledig och kan därmed stilla skrivsuget genom att skriva en smula om huset. Förhoppningsvis kan det bli fler skrivsugsåtgärder framöver.

Huset befinner sig i Sollentuna och det tar oss sisådär 7 minuter att promenera till pendeltågsstationen i Sollentuna. Lägg på 1-2 minuter så är vi i Sollentuna Centrum. Promenerar vi åt ett annat håll så finns systern där, bara 10 minuter bort. Ganska fint optimerat alltså. Och sambon och jag har var för sig cirkum 30 minuter till jobbet. Centralt i förorten!

Kåkens säljare borde aldrig ha fått myndigheterna tillstånd att äga en villa. Turligt nog för oss bodde han bara i kåken i fyra år… hade han bott längre tid hade det nog sett lite sämre ut underhållsmässigt än vad det gör nu. Nu hann vi köpa i tid och börja underhålla huset som det behöver! Och det är ungefär det som vi ägnat de senaste två veckorna åt…

→ 3 CommentsTags: hus

Ny leksak

posted on maj 2nd, 2011 ·

Så har ytterligare en leksak letat sig in i hemmet och ytterligare förstärkt min status som apple-fanboi. En liten iPad har tagit plats här och kommer förmodligen bli min mest använda pryl. Lite som att iphonen blev internet i näven så har paddan tagit rollen som internet i soffan.
Nu är ju bara frågan vad jag ska döpa underverket till?

→ No CommentsTags: Uncategorized

Upgrading a web forms web appliction to mvc 3, evolution style

posted on april 17th, 2011 ·

Scenario: You’ve got an existing web application coded in web forms asp.net. You’ve seen the light and want to move over to asp.net mvc 3. Excellent! So, how do you do it? You have two options:

  1. Big Bang revolution. Stop all development on the old site until you have recoded everything in mvc3.
  2. Mvc 3 Evolution. Implement all new functionality in mvc 3. Convert old pages and user controls one by one to mvc3.

I guess it’s obvious that I like option number 2, and that is also how we’re doing it at the client where I work.

It’s easy to implement the first part of the Mvc3 Evolution; just follow the wisdom of Scott Hanselman and you’re set. Then you can write all new functionality in new controllers and views.

So, the hard part left. How can you call actions and views from your old web forms pages and user controls, ascx and aspx? Is it really possible?

Yes, it is possible. But it is a bit tricky and some-what hackish, but if you just ignore the few ugly lines, you can slowly reach mvc3 nirvana without having to go through a big bang release.

What I wanted to accomplish was to be able to call actions and views from my existing web forms pages and user controls, so that I could convert old user controls into views and actions one by one and be able to call them from the old, non-converted pages. The trick is to mimick the mvc3 and asp.net framework, so that we can write code in our pages and user controls like this:


<% WebFormMvcUtil.RenderPartial("Home", "Index", null); %>
<% WebFormMvcUtil.RenderPartial("Index", null); %>
<% WebFormMvcUtil.RenderAction("Home", "Index", null); %>
<% WebFormMvcUtil.RenderAction("Hone", "Index", new { id  = 25}); %>

which in razor views of course would look like this


@Html.Partial("Home", "Index")
@Html.Partial("Index")
@Html.Action("Home", "Index")
@Html.Action("Hone", "Index", new { id  = 25})

The code posted below does all of this for us, setting up the needed route data and contexts.

And these few lines of code is about what you need to be able to step-by-step take your web forms application to a modern mvc3 application. Enjoy!

 

using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace My.Namespace
{
// Code based upon http://stackoverflow.com/questions/702746/how-to-include-a-partial-view-inside-a-webform
// and extended by Jonas Lincoln, 2011

public class FakeController : Controller
{
}

public static class WebFormMvcUtil
{
private const string NameSpace = "My.Namespace";

public static void RenderPartial(string partialName, object model)
{
RenderPartial("Fake", partialName, model);
}

/// <summary>
/// Renders the partial view found in ~/Views/{controllerName}/{partialName}.cshtml
/// or ~/Views/Shared/{partialName}.cshtnk
/// </summary>
/// <param name="controllerName"></param>
/// <param name="partialName"></param>
/// <param name="model">Data passed on to the view as Model</param>
public static void RenderPartial(string controllerName, string partialName, object model)
{
// get the controller
var controller = GetController(controllerName);

//get a wrapper for the legacy WebForm context
var httpContext = new HttpContextWrapper(HttpContext.Current);

//create a mock route that points to the empty controller
var rt = new RouteData();
rt.Values.Add("controller", controllerName);

//create a controller context for the route and http context
var controllerContext = new ControllerContext(
new RequestContext(httpContext, rt), controller);

//find the partial view using the viewengine
var view = ViewEngines.Engines.FindPartialView(controllerContext, partialName).View;

//create a view context and assign the model
var viewContext = new ViewContext(controllerContext, view,
new ViewDataDictionary { Model = model },
new TempDataDictionary(), HttpContext.Current.Response.Output);

//render the partial view
view.Render(viewContext, HttpContext.Current.Response.Output);
}

public static void RenderAction(string controllerName, string actionName, object routeObject)
{
// get the controller
var controller = GetController(controllerName);

var httpContext = new HttpContextWrapper(HttpContext.Current);

// set up the route data
var routeData = new RouteData();

routeData.Values.Add("controller", controllerName);
routeData.Values.Add("action", actionName);

// add optional route information
foreach (var info in routeObject.GetType().GetProperties())
{
routeData.Values.Add(info.Name, info.GetValue(routeObject, null));
}

var cai = new ControllerActionInvoker();

var requestContext = new RequestContext(httpContext, routeData);

var controllerContext = new ControllerContext(requestContext, controller);

// Slightly hackish, but is needed to get everything to work
// This seems to be the way that MVC does it as well.
controllerContext.Controller.ControllerContext = controllerContext;

cai.InvokeAction(controllerContext, actionName);
}

private static Controller GetController(string controllerName)
{
var type = Type.GetType(string.Format("{0}.{1}Controller", NameSpace, controllerName));
if (type == null)
return null;

var controller = Activator.CreateInstance(type, false) as Controller;
return controller;
}
}
}

→ 1 CommentTags: hack

Bubbel-bobbel

posted on april 12th, 2011 ·

I lördags vankades det fest i det andra Solnaitiska residenset. Vi fick celebert besök från Malmö på fredagkvällen och lördag dag ägnades åt att preppa för kvällen. På väg ner till Solna Centrum råkade vi smitade in på en nyöppnad lågprisbutik och väl där föll vi pladask för ett par extremt kitschiga glas/vaser. Fantastiska.

Vi blev så fulla av energi av glasen att det inte gick att stoppa idéflödet. Första idén var förstås (förstås!) att skaffa fejkiskuber med belysning i, men det visade sig att Teknikmagasinet inte hade några. Däremot hade de fina ljuspinnar som man knäcker till och så lyser de i två timmar. Finemang!

Nästa fina idé var förstås att skaffa kolsyreis för att få den rätta bubblande känslan – sagt och gjort, vi ringde isjouren och kollade läget. Inga problem, de fanns i Bromma och vi kunde hämta fem kg torris direkt. Splendid.

Sen var det ju bara frågan om innehåll i glaset, men där ville vi inte överspänna oss så vi nöjde oss med vanlig grogg spetsad med karamellfärg. Underskatta inte karamellfärg.

Hursomhelst, när festen väl började hade Johan och jag släpat dit en skål med bokhyllebelysning i, en bålskål ovanpå för kolsyreis och färgat vatten och sedan ovanpå det en tillbringare med grogg. Great success.

Vi avslutar med en film på youtube med bara kolsyreis och vatten. Och bubbel. Och bobbel.

Jag känner att det enda problemet är att försöka toppa detta till hopflyttningsfesten…

→ 1 CommentTags: fest · hack · hemma

Söndagsfilosofi

posted on mars 13th, 2011 ·

Ligger i soffan (den magnifika) och fluktar på BBC-dvd om Wild Africa, avsnittet om berg. Jag fluktar med tudelad känsla, dels ett enormt ressug och dels en besvikelse över att bildkvaliteten är så risig. Jag måste på safari igen. Det är ett löfte. I väntan på safari så lär jag och Anna boka resa till pinkåterträffen i Tiveden i veckan – det lär i och för sig inte minska ressuget … Just nu ser jag rävliknande etiopiska vargar krypsmyga sig på söta råttor.
Idag ägnade vi oss åt att vara trötta efter en trevlig inflyttningsfest, putsat fönster och planterat om krukväxter, fipplat med belysning och spelat spel. Ganska skönt måste jag säga.
Snart kommer ett halvårs arbete på jobbet att bli produktionssatt – och det kommer att bli fruktansvärt bra. Releasen tror jag kommer att kvala in på topp-tre-listan över produktioner som jag är mest stolt över att ha jobbat med. Vill man prova betan är det bara att höra av sig. Jag ser fram mot att få till jobbet i morgon och fortsätta jobbet med att fixa några irriterande buggar. Gött!

→ No CommentsTags: Uncategorized

Ett steg framåt, ett steg bakåt

posted on februari 13th, 2011 ·

Fredagen bjöd på ett steg framåt och ett steg bakåt i mitt upplevda åldrande. Först på jobbet, i ett litet konferensrum där åtta utvecklare och åtta datorer stängt in sig så var det somliga som led av en trafo som påstods tjuta högfrekevent. Jag hörde naturligtvis inte ett smack, och jag är fortfarande inte helt övertygad om att det faktiskt lät nåt överhuvudtaget. Jag tror att den yngre generationen måste se över sin tinitus. Därefter, på systemet, fick jag visa körkortet. Och det är oerhört tillfredsställande. Eller ett tecken på att jag måste skaffa dyrare smak på mina ölmärken. Oklart vilket. Jag väljer att tolka det som att jag fortfarande ser ut som en tjugoåring. Eller kanske till och med artonåring. Dock med något nedsatt hörsel.

Annars har jag satt igång mitt nya samlingsprojekt, som är nån slags del två av ett tidigare projekt. För några år sen köpte jag alla nyöversättningarna av Tintin-albumen på ett bräde – fantastisk läsning. Nu fortsätter jag trippen med att försöka samla på mig alla Asterix & Obelix-album. Jag hittade tre oanvända på ett serietek igår, och njuter storligen över serierna. De har inte tappat ett spår sen jag plöjde dem för 15-20 år sen utan har snarare vunnit ytterligare i takt med att jag blivit äldre och visare och fått mer skruvad humor. Å andra sidan, hur kan man gå fel med karaktärsnamn som Comix, Seriella och Prefix. Fantastiskt.

”Han har en mörk uppsyn” – från ”Romarnas skräck”, ett uttryck som levt kvar i min hjärna i tjugo år. Det här med indoktrinering av barn, det verkar fungera.

→ 3 CommentsTags: Uncategorized

SVT Play på Plex 9

posted on januari 23rd, 2011 ·

Installerade Plex på iMacen hemma i helgen. Allt rullade igång utan problem, så när som på när jag försökte kolla på SVT Play. Jag installerade video-pluginet men fick bara ljud och ingen video. Efter lite googlande så hittade jag tips på plex-forumet om att nedgradera flash från 10.1 till 10.0. Så jag avinstallerade flash (måste avsluta browsers och plex först) och letade reda på en äldre version av flash, 10.0.45.2. Sen var det bara att installera den och presto! så fick jag igång SVT Play.

Kontrollerar sedan Plex med min mac-remote. Wonderful.

→ 1 CommentTags: Uncategorized

Ett vykort förpliktigar

posted on januari 11th, 2011 ·

Det ramlade in ett vykort från Nya Zeeland idag, komplett med ett australienskt koala-frimärke. Jag har tidigare lovat avsändaren att jag skulle blogga i helgen, vilket jag inte gjorde. Köpte till och med geléhallon för att muta mig själv. Nu påminner vykortet mig om mitt löfte. Så nu kör vi. En liten årsretrospektiv. Och mumsiga geléhallon.

Om vi börjar med att titta på förra årets decennie-retrospekt så ser jag omedelbart att det finns några uppdateringar att göra. Det har tillkommit ett syskonbarn, så skaran är numera 5 (respekt, ett five-a-side-lag). Jag har hittat kärleken. Det har blivit fler resor under året, varav hälften gått till Gävle. Märkligt. Och det associerar förstås vidare till en av årets stora upplevelser – Peru-resan i juni-juli. Topp-tre upplevelser Peru: vandra inkaleden, hänga i Amazonas, flukta på kondorer.

Tittar vi vidare bland resorna så utmärker sig jobbresorna till Storhogna och Mallorca, givetvis. Vidare traditionellt besök på  Malmöfestivalen, fest i Linköping, vårweekend i Alicante, Novemberhelg i Köping och skidåkning/nyårsfirande i Sälen.

Under året hann jag bocka av ett av de fyra decenniemålen: miljonär innan 30. Tre kvar.

På jobbet har jag gått runt lite på radion, pysslar med det mesta och är fortfarande kvar. Hos min arbetsgivare har jag levlat en nivå och är chef för en liten grupp konsulter. Vi skapade en fantastiskt rolig teknikkonferens (Edge 2010) med grymma talare.

Jag flyttade från Kungsholmen till Filmstaden och är sjukt nöjd med detta. Diskmaskinen är, som alltid, värd minst en miljon. Minus en halvmiljon för den talande hissen. Men lägenheten ligger ändå på plus, utan tvekan. Jajustja, vi hade en fantastisk 2×30-årsfest och inflyttningsfest, jag och M tillsammans. Fruktansvärt roligt. Jag blev av med min tobaksoskuld men fick å andra sidan en otroligt pondusskapande pipa i stället. Jag tycker inte heller om Mintu längre.

Och nu inser jag att det är roligt att blogga. Det borde jag göra oftare.

→ 3 CommentsTags: Uncategorized

Playlists för slappa

posted on oktober 20th, 2010 ·

Jag har hittat receptet på att få en enkel playlist i spotify:

  1. Skapa en ny playlist-katalog, döp den till radiofy
  2. Gå till radiofy.se, prenumerera på tex P3 Star 400 senaste låtarna.
  3. Välj några till, tex P3 Rockster och P3 Svea.
  4. Lägg alla nya playlists i radiofy-katalogen
  5. Markera radiofy-katalogen, shuffla. Nu spelas musiken från alla olika playlists från radiofy som du valt, och dessutom uppdateras playlistorna automatiskt. Väldigt smutt sätt att få lite blandning av olika radiostationer.
  6. Profit!

→ 1 CommentTags: Uncategorized

Till havs!

posted on juni 14th, 2010 ·

Till haaaaaaaaaaavs! Inte riktigt, men det passar så bra med ett rejält utrop på kvällskvisten. Och jag är inte på väg mot badkaret, nej, utan mot Peru! Nu är (nästan) allt färdigpackat och jag kan konstatera att årets packlista är snarlik förrförra årets packlista. Det som skiljer är att jag packat mössa, handskar och något varmare kläder den här gången, annars är allt som vanligt. Ett MacGyver-kit, musikintrotävling, en trave böcker, shorts, solhatten, en löjlig mängd elektronik och batterier, en analog resedagbok och lite tråkiga kläder.

Just det ja, det är några som undrat om uppdateringar längs med resan. Från mitt håll blir det inga uppdateringar därför att jag tänkte köra en helt ned-/avkopplad resa utan internetaccess. Däremot såg jag igår att RB hoppas att några skickar statusuppdateringar till fejan, så det är möjligt att det kommer uppdateringar på RBs sida på fejan. Jag lovar att fota mycket och kanske kommer det en digitaliserad resedagbok efteråt.

I morrn vid lunchtid bär det av, jag kommer tillbaka i mitten av Juli.

→ 1 CommentTags: resor