Index, index och åter index.

november 20th, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Som jag varit inne tidigare, ett av sätten att få upp sin prestanda på är att analysera och skapa rätt index.

Men… index ska ligga i minnet, och stora index tar mer plats…

Ser man t.ex. ett index-förslag som ser ut som

CREATE INDEX [missing_index_18057_18056_SALESTABLE] ON [DynamicsAX].[dbo].[SALESTABLE] ([DATAAREAID],[RETURNSTATUS]) INCLUDE
([SALESID], [SALESNAME], [RESERVATION], [CUSTACCOUNT], [INVOICEACCOUNT], [DELIVERYDATE], [DELIVERYADDRESS], [URL], [PURCHORDERFORMNUM],
[SALESTAKER], [SALESGROUP], [FREIGHTSLIPTYPE], [DOCUMENTSTATUS], [CURRENCYCODE], [PAYMENT], [CASHDISC], [TAXGROUP], [LINEDISC], [CUSTGROUP],
[DISCPERCENT], [DIMENSION], [DIMENSION2_], [DIMENSION3_], [PRICEGROUPID], [MULTILINEDISC], [ENDDISC], [CUSTOMERREF], [LISTCODE], [DLVTERM], [DLVMODE],
[PURCHID], [SALESSTATUS], [MARKUPGROUP], [SALESTYPE], [SALESPOOLID], [POSTINGPROFILE], [TRANSACTIONCODE], [DELIVERYZIPCODE], [DELIVERYCOUNTY],
[DELIVERYCOUNTRYREGIONID], [SETTLEVOUCHER], [DELIVERYSTATE], [DELIVERYNAME], [ONETIMECUSTOMER], [COVSTATUS], [COMMISSIONGROUP], [PAYMENTSCHED],
[EMAIL], [FREIGHTZONE], [RETURNITEMNUM], [CONTACTPERSONID], [DEADLINE], [INVENTLOCATIONID], [VATNUM], [PORT], [INCLTAX], [NUMBERSEQUENCEGROUP],
[FIXEDEXCHRATE], [LANGUAGEID], [AUTOSUMMARYMODULETYPE], [GIROTYPE], [SALESORIGINID], [ESTIMATE], [TRANSPORT], [PAYMMODE], [PAYMSPEC], [FIXEDDUEDATE],
[DELIVERYCITY], [DELIVERYSTREET], [EXPORTREASON], [STATPROCID], [INTERCOMPANYCOMPANYID], [INTERCOMPANYPURCHID], [INTERCOMPANYORDER], [SALESRESPONSIBLE])

Då ska man börja fundera lite, skapar jag detta index, hur mycket plats kommer det ta diskmässigt, kommer indexet om det körs ofta kunna ligga i minnet, behövs verkligen alla dom där fälten som är med i det som utförs när frågan ställs?

Nu är vi inne på det som är viktigt, ställ krav på er leverantör att inte använda while select from salestable, plocka ut dom fälten som man faktiskt behöver när man gör saker, det gör det möjligt att justera prestandan på ett helt annat sätt. Det är som att skjuta med ett hagelgevär i en tunna tills man träffar rätt, vi vill ju gå in med en knappnål och sätta den direkt där vi vill ha den. Exakta frågor med matchande index. Många är rädda för stora tabeller för att systemen ska börja gå långsamt, det är en sanning med modifikation, är frågorna bra ställda och det finns bra index kan tabellerna nästan vara hur stora som helst. Problemet är att det är vanligt att man tar ett större scoop, sedan gör man filtreringar efter med massa if-satser. Ibland måste man göra så, men ofta är det också saknad av kunskap (dock har man inte riktigt samma möjligheter i AX-Querys som man har i T-SQL).

Sedan är det ovanligt att det är en ren bekvämlighetsfråga, man börjar med att välja allt för man vet inte vad man behöver senare, sedan går man inte tillbaka och smalnar av sitt urval, eller tänker att någon kanske vill utöka denna funktionen senare så det är bättre att välja 10mb data än 0,5mb ;)

Ju större system det är, desto viktigare är det.

På vissa ställen kan det vara bra att ha med lite extra fält, t.ex. i formulär, men jag skulle säga att även där kan man gå in och strippa i många fall, för det hämtas väldigt mycket information för det mesta som aldrig använts. När använde du fältet ”Företaget är minoritets-ägt” eller ”Företaget drivs av en kvinna”?

Ställ krav på er partner, er själva och interna utvecklare!

(Hittade lite gammal kod av mig själv och blev frustrerad, fick skriva av mig lite)

Categories: Affärssystem, Kåserier, Mjukvara, Utveckling Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Tiden går…

november 9th, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Vad ska man säga, tiden går. Mitt förra inlägg var i Maj. Vad är då anledningen till att jag inte skrivit något? Har jag inte snubblat över något intressant? Inte lärt mig något nytt? Inte haft några problem?`

Jag har hittat massor av intressanta saker.

Jag har lärt mig tonvis av nya saker,

och jag har haft tonvis av problem.

Först det mest uppenbara. MS börjar lyfta på skynket för AX 7 på allvar. Dom har haft klämma på dagar för intresserade i Redmond. MS varnade partners inför AX 7, och nu ser det faktiskt ut som att det inte bara var på låtsas. Är man inte insatt i AX 2012 R3 så kommer det bli en tuff övergång att både hämta in allt som R3 innebär och nytt gränssnitt och nya utvecklar-rutiner. Jag ser lite framför mig att det kan finnas mindre partners som kommer bli tvingade till samarbeten eller att helt enkelt övergå till en förvaltningsfas.

Men vi i Sverige kan sitta lugnt i båten ett tag till då varken Svenska eller svensk funktionalitet är med på banan i första släppet utan ligger en bit fram i tiden. Jag säger inga tider även om MS har skrivit det i sin tidslinje så brukar det vid ett såhär stort släpp komma till en del.

I övrigt så är vi i mjukstarts-fas på att rekrytera nya medarbetare här på kontoret. Drivna seniora systemutvecklare med fallenhet för .net och MVC som klarar frihet under ansvar. Jag har redan knackat några på axeln, vem vet, plötsligt kanske jag knackar på din axel ;)

Som jag skrivit tidigare så är det intressant att sitta direkt ute i verkligheten till skillnad från att vara konsult. Det är så ofta som det är sådana småsaker som aldrig hade utvecklats annars som gör riktigt stor skillnad för många. Det behöver inte vara att installera ett handdator-system som tar månader och månader att få på plats, att göra en samlingsplocklista kan vara skillnad på natt och dag, att göra en ssrs-rapport som sammanställer en artikels försäljning under en kampanj. Går man runt i huset så hittar man så mycket saker som görs gång på gång som är helt onödigt att någon lägger massa arbetstid på, bara för att ingen har tittat på vad folk gör på sitt arbete. Hade jag av någon anledning gått tillbaka till att jobba som konsult så hade man gjort det med helt andra ögon kan jag säga.

Har jag helt släppt mina guider då? Faktum är att jag har 6-7 st påbörjade utkast till guider, allt från prestanda i ax till grovstart till hur man kommer igång med ett Data Warehouse och varför/om man ska ha det. Ska försöka få ut något. Ser ut att få en riktig höst-förkylning nu, då kanske det blir :)

/Oscar

Categories: Kåserier Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Maj är här

maj 2nd, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Ytterligare en månad har gått, har redan varit 2 månader på mitt nya jobb och det känns bra. Omvandlandet av teori till praktik tillför något. Precis som med kunder som konsult är det mycket som ska läras in när man börjar på en ny plats. Vem ska man lita på, vem låter det som man kan ge lite längre tyglar och vem ska man absolut inte ge några tyglar alls.

Vad har hänt annars? Häromdagen så kom en preview på Windows 10 IoT. dvs att en av alla raspberry som ligger här hemma kör nu windows 10. Nu pratar vi inte om windows 10 som en dator, utan mer som ett ardunio-kort som man kan skicka ut instruktioner till så gör den sedan dom. Raspberry PI med rasbian var ju faktiskt en fungerande dator, så det är lite skillnad. Så här framöver så kommer jag labba lite för att se vad man kan hitta på med en Windows 10 raspberry. Några saker har redan fallerat då det ändå är arm och inte x86, det är en hel del bibliotek som inte fungerar. Vi kan t.ex. inte låta den använda business-connectorn, utan vi får gå via någon form av webservice eller liknande om vi vill in i AX. Däremot har den ganska bra kräm, stöd för ui och nodejs bland annat. Så det ska nog gå att bygga något AX-relaterat av detta. Utan tvivel.

Har ni några planer på att labba med detta för AX? Släng gärna en kommentar isåfall.

För mig så blir det lite Hello World och blinkande lampor. Jag måste säga att Hello World gör mig glad. Det är starten på något nytt, något som ännu inte är superkomplicerat och föråldrat innan man lärt sig goto 20. Denna ständiga paradox för oss i ITbranschen. Man sliter som ett djur på både arbetstid och fritid, men är ändå hopplöst efter.

När det kommer till SQL-fronten så har jag såklart fortsatt att laborera på jobbet. Ett tips är att inte vara trött och stoppa in nytt index på Inventsum mitt under dagen. Håller på att filar lite på ett inlägg om hur du kan komma en bit på väg med ditt AX-System för att se om det är här det flaskar.
Sitter även och tittar på baseline, och baseline analys vilket börjar bli ett måste när man gjort dom grova fixarna och ska fortsätta att komma längre. Det är lätt att tänka att när man fått en huvudplanering från 3 timmar till 25 minuter, eller en sökning från 30 sekunder till <1 sekund att man ska nöja sig. Men för oss som vet hur transaktions-intensivt och tjattrig Ax är så förstår man att 200ms här och där blir en hel del när det ställs några många miljoner frågor om dagen mot databasen som är hjärtat i allt. Precis som att underlätta för lagret med smidiga handdator-system, så borde vi underlätta för ax med tydliga vägskyltar.

Nej, nu är det fransk potatis-sallad som väntar, väntar på att tillagas.

Categories: Kåserier Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Ute i verkligheten

april 26th, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Nytt jobb, nya utmaningar. Jag har lämnat konsult-livet bakom mig. Satt mig på andra sidan. Jag är numera beställare, och in-house guru.

Jag har alltid haft ganska många strängar på min lyra. Lite dator-ADHD. Lite Linux där, lite OSX där, lite failovercluster där, lite programmering där och lite onödiga sql-script där. Som konsult kom erfarenheten bra tillrätta. Jag kunde argumentera och ha en bredare syn på vad som ska göras och hur man borde göra det. Dessvärre så när man jobbar på en firma som säljer licenser och representerar vissa mjukvaror, så kanske inte bästa alternativet står att erbjuda. Då får man rannsaka sig själv, se hur långt ifrån det bästa kommer man, och kan man se sig själv i spegeln om man inte är ärlig. Här arbetar olika firmor lite olika. TyDAB som jag tidigare jobbade hos var duktiga på detta. En mindre firma är ofta mån om sitt rykte och kan inte ha dussin sönderskruvade system ute på vift.

Hur skiljer sig detta då när man sitter på andra sidan?
Även om jag bygger mycket själv så finns det ändå saker som inte är i mitt område, eller helt enkelt tråkigt.
Ibland är en sämre lösning den bättre lösningen. För man ska inte underskatta mängden av komplikationer när 2 olika partner ska samarbetaför att komma fram till 1 resultat. Detta hade jag givetvis redan stött på tidigare 2 individer som representerar varsin mjukvara som är inkörda på den, som ser den andra mjukvaran som en potentiell fiende. Och vilket företags fel är det när allt inte går enligt planerna?

Jag kommer på mig själv ibland när jag sitter och pular med min html5 offside-lösning för lagerplock, eller google charts-driven Bi, att jag gör något jag inte får. Att det är smutsigt, att denna enkla, billiga och smidiga lösningen inte är rätt. Det är nu jag får nypa mig i armen för att inse att jag får göra precis vad jag vill. Kan ingen motbevisa mig, så är det rätt.

Det ska bli intressant att se hur min bild av branschen kommer att ändras med denna erfarenheten som kommer komma den närmaste tiden.

Framöver så blir det lite blandat med små script, kåserier om att vara på kundsidan och vad jag nu råkar snubbla över. Nya tider, nya möjligheter :)

Categories: Affärssystem, Data, Kåserier, Mjukvara Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Technical Conference 2015

februari 23rd, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Nu finns sessionerna och presentationsmaterial ute på Customersource, eller partnersource. Så hugg in bänka dig vid datorn.

Länk HÄR

Categories: Affärssystem Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Jobba med programmering

februari 8th, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Det är många som vill jobba med programmering. Men det är ungefär som att säga att man vill jobba med trä. Vill man sköta skog? Vill man såga ned skog? Vill man kapa brädor, snickra hus eller kanske flisa trä?

Många unga tänker sig nog coola häftiga jobb där dom bygger nästa generations spel och coola program som ska bli vardag i allas telefoner. Många missar ERP-världen, vet nog för det mesta inte ens vad det är.
Vilket kanske inte är så konstigt, på pappret är den extremt osexig.

”Ok, jag ska lägga till ett fält i en rapport?”

Men faktum är att arbeta med ERP-system är väldigt omväxlande. Man vet verkligen aldrig vad nästa dag för med sig. Småjusteringar i ett formulär en dag, till BI nästa dag och dagen efter det ska man kontrollera extern hårdvara efter värden i tabeller.

Men det finns fler viktiga faktorer som gör detta till en bra bransch. I alla fall för oss som pysslar med Dynamics AX. Det är en tillväxt-bransch. Affärskedjor slår ihop sina pos-system med affärssystemet, företagen blir större och globala mer nu än någonsin tidigare. Man tittar på lösningar med flera tusen användare spridda på alla kontinenter. Det är komplext och intressant.

Det var först efter jag sade upp mig som jag insåg vilken bristvara AX-konsulter verkligen är. Jag har nog bara sökt något enstaka jobb, och då alltid blivit uppringd för intervju, men däremellan så har telefonen ringt vid flertalet gånger i veckan med erbjudanden. Det är knappt så att en intervju är nödvändig. Det var någon som var glad, för att dom hade letat efter en AX-utvecklare i ett halvår, och jag var en av de få tillgängliga på arbetsförmedlingen. Och jag är varken speciell eller omtalad. Detta ger lite hybris, men också en insikt om hur mycket det finns att hämta för många. Är man lite driftig så är det verkligen ett öppet mål.

Microsoft har ett program där dom samarbetar med vissa högskolor och universitet, där dom hjälper till att se till att man har certifikat och träning, och sedan kontakt-förmedlar med olika företag. (länk?)

Som jag skrev tidigare, det kanske inte är det sexigaste på pappret, men varje dag jobbar man med verkliga problem med mjukvara som är ute i verkligheten och tillför något produktivt. Så kolla upp det är mitt tips.

Categories: Affärssystem, Data, Mjukvara, Utveckling Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Hjälp, mitt AX går långsamt!

februari 6th, 2015 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

När jag skriver mina inlägg som är riktade mot affärssystem så vänder jag mig mot en bred publik. Tanken är att både utvecklare och kunder ska få något att ta med sig. Utvecklare kanske hittar något roligt, och kunder får något köttigt att fråga sin partner om. Så blir även dagens inlägg. Diskutera med er partner. Dom får gärna tycka att jag har fel, men vad tycker ni? Huvudsak är att ni och er partner kommer överens och bägge är nöjda.

Det händer ibland att det kommer en kund och säger, mitt ax går så långsamt, vad är fel?

Det är ungefär som att säga, jag tappade min nål i den här höstacken, hitta den, men med skillnaden att som partner är man skyldig att hitta den där nålen.
Vad är då de vanligaste orsakerna?
Min lista skulle se ut såhär

  • Användar-uppfostran: Trycka igång flera tunga jobb, inte orka vänta och trycka igång ännu fler av samma, vilket orsakar låsningar i databasen och långa köer på alla håll och kanter.
  • Hårdvara: Har hårdvaran ni köpte i början växt med era behov? Har ni plötsligt 8-9 ny integrationer, 50 extra lagerplockare och mer produktion?
  • Inte optimerad installation: Det finns många parametrar att skruva på på alla komponenter, allt från att gå igenom vilka flaggor sql:en startas med, att uppdatera de index som behövs, till att kolla igenom hur tunga anpassningar är byggda (och för den delen, original-kod)

Jag tänkte gå igenom lite mer genomgående här nedan hur mina tankar ser ut.

1. Användaruppfostran : Det här skriver jag inte så mycket om, det är egentligen ganska enkelt, tålamod och planering. Kan man batch-lägga huvudplaneringen att rulla på natten istället för att 2-3 olika personer trycker igång varsin kl 11.13 på förmiddagen? Inte en perfekt lösning, men ett sätt att hantera det. Gås såklart igenom med er partner som ska hjälpa er arbeta ut hur ni ska jobba, eller om ni själva känner att ni vill kolla över detta. Här gäller även batch-jobb. Många användare skapar batch-jobb till höger och vänster, och helt plötsligt ser inte den ursprungliga batch-planeringen ut någonting som den som vi började med.

2. Hårdvara : Också enkelt, behövs det mer körningar, mer användare, mår hårdvaran bra, behöver vi en batch-server till? Klarar SQL:en av mängden jobb? Det kan vara bra att gå över ibland. Många maskiner kan man uppdatera utan allt för dyr peng. Dyrast brukar vara SQL-servern då snabb lagring och större mängd minne kostar. Fungerar nätverket som det ska?

3. Ej optimerad kod. Här kommer lite mer text, här kan utvecklare göra mer och kunder kräva mer, huvudsaken gäller att man vill komma undan att gå många rundor till sql:en i onödan, hämta rätt data tidigt. Där hittar vi prestanda. SQL:en i sig är snabb, AX aos:erna är snabba i sig, men varje frågeställning tar extra tid. Säg t.ex. att en kund har 100.000 artiklar. Ska man lista dessa i ett formulär så ställs en fråga, och man får tillbaka 100.000 rader som resultat. Smidigt. Kort tid på bägge sidor. Säg nu att man vill ha 1 fält från en annan tabell. Då finns det två vägar att gå. Antingen så hämtar vi hela den tabellen tillsammans med artiklarna, 1 fråga, 100.000 rader, men mer kolumner, alltså större datamängd. Eller så bygger man en display-metod. Då påverkar man inte urpsrungliga frågan, och får bara lite extra-kod på ett ställe. Dock hämtas plötsligt en rad från den andra tabellen för varje rad. Och istället för 1 fråga, så har vi plötsligt 100.001 frågor, men oftast samma datamängd eftersom de flesta utvecklare alltid hämtar hela tabellen, för det är så det är gjort i gamla Axapta. Och det är inte ovanligt att se 4-5 display-metoder i formulär ute hos kunder.
Så vad hade man helst sett? I den urpsrungliga frågan, så väljer vi verkligen bara de fält vi vill ha. Det är inte ovanligt att en tabell i ax innehåller 40-50 kolumner, och oftast visar man 10 av dessa, resten är bara dö-data som skickas fram och tillbaka sql och aos.
Så optimalt hade man gjort en fråga som frågar 1 gång och hämtar 100.000 rader, men bara de 10 kolumnerna som är de vi vill ha i formuläret. Notera att hämtar man hela tabellen så kan slutanvändaren välja att plocka fram andra fält på sin personliga variant av formuläret. Den möjligheten försvinner på detta sättet. Men man kan ju alltid ta med lite jokrar. Detta gäller även i klasser. Många ställen görs det vida while select, och sedan 5-6 find-metoder på olika tabeller. Varför?

Nästa steg är index. AX kommer med en viss uppsättning index, men ser vi till t.ex. AX 2012 så ingår varken bolags-id eller partitions-id i de flesta index, men ändå innehåller i princip alla frågor detta. Detta innebär att så fort som det finns mer än ett bolag eller partition, så börjar du tappa prestanda. Microsoft har uppsättning av index och optimering som ett steg av den rekommenderade installations-processen numera, detta är dock något som man aldrig riktigt behövt göra i äldre versioner, och många partners hoppar därför över detta. Men även äldre installationer kan vinna mycket på detta när databaserna börjar växa. Det handlar inte om att gå igenom varje millimeter, men index ska ingå i utvecklingen av anpassningar. Och det finns enkla frågor i sql:en som ger förslag på saknade index, eller index som behöver ändras för att man ska vinna tid.

Det här är ju ett område som man kan nörda sig ner i hur mycket som helst, med siffror, grafer och ännu mera tekniska termer. Men då är det specifikt, och bättre att ni tar mer er partner, eller fristående opartiske externa konsult ;) (mer om det kommer senare)

Categories: Affärssystem, Data, Utveckling Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Gamers, spel och kvinnor.

december 29th, 2014 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Det pågår något som kallas #gamergate. ”Officiellt” så är det en kampanj för press-etik inom spelbranschen. Grunden påstås vara att en kvinnlig spel-utvecklare skulle haft sex med en journalist för att hennes spel skulle få bättre omdömen. Detta är såklart inte sant, eller det är möjligt att dom hade sex, men det är inte vad detta handlar om. I alla branscher idag så ser det ut så. Biltidningar får olika betalt av biltillverkare beroende på vad dom nämner om deras bilar och vad dom inte nämner om konkurrenternas bilar osv. Mode-bloggar får betalt för att dom ska ta en bild med dagens outfit med det märkets kläder. Det är så det ser ut, och därför är vi extra sårbara när många idag helt saknar källkritiskt tänkande. Lägger någon upp en bild på Facebook på en kattunge och skriver att dom hittat den med en spik genom huvudet fastnaglat i ett barns arm. Så tror folk på det utan vidare.

Men åter till #gamergate. Vad det i själva verket har slutat i är ett ökat förtryck av kvinnor i spelbranschen. Utvecklare, journalister och alla runtomkring. Råkar dom dessutom nämna att dom tycker många spel, och branschen i sig är lite sexistisk så är det klippt. Det kommer hot och andra otrevligheter på löpande band. Det blir inte heller bättre av att i kommentars-fälten så skriver tjejer som klassar sig som gamers att dom aldrig råkat ut för något, och därför är det skitsnack.
Tyvärr är det så att det är många duktiga skribenter och andra i spelbranschen som inte orkar mer och hänger upp handduken.

Vad händer med världen när folk börjar tryckas ned för att dom har en åsikt? Vad hände med demokrati? Det är inte ens en diskussion, åsikter möts upp med hot. Privatliv invaderas och personer mår dåligt på riktigt. Det är inte några internet-profiler som drabbas som kopplas från när man stänger ned webbläsaren.

Man kan väl inte blunda för att spelbranschen är snedvriden, och drabbas av alla dom saker som alla branscher med sned könsfördelning drabbas av. En ofta lite lätt ociviliserad jargong.

I likhet med mitt föregående blogg-inlägg så skäms jag för mitt kön och hur dom beter sig. Och jag önskar att vi kan se en lite neutralare, stereotyp-friare framtid i spel-branschen. För vi kommer inte ifrån att vid det här laget så har det spelat ut sin roll och tillför inget.

Jag har spelat spel vid dator och tv så länge jag kan komma ihåg. C64, Amiga 500, Civilization I, Jazz Jackrabbit, speedruns i Quake I. Jag har varit del av den stora delen av utvecklingen. Men den här delen vill jag inte vara del av.

Sedan kan vi väl till 2015 komma ihåg följande enkla regel.
Har man inget snällt att säga, säg inget.

Så kan vi väl till 2015 alla samarbeta för att skapa ett inkluderande samhälle, istället för att fortsätta på den inslagna banan till ett exkluderande. Det låter ju lätt som att alla pojkar/män som kallar sig gamers är svin. Vi får komma ihåg att så är inte fallet. Men tyvärr hörs ju dom som skriker högst mycket mer än dom som pratar med normalt röstläge.

Sedan vill jag tacka alla tjejer/kvinnor i spel-branschen för att ni är kvar, och att ni fortsätter. Gör det, för ni behövs för att det ska bli civiliserat på längre sikt. Otur bara att just ni hamnar i skottlinjen. Men för varje som hamnar i skottlinjen så uppmuntrar ni förhoppningsvis 2-3 nya att ge sig in i kampen.

Gott Nytt År!

Categories: Kåserier Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

Året närmar sig sitt slut.

december 15th, 2014 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Idag blir det inte så mycket affärssystem. Idag blir det mer en trött samhällsåskådning. Även om jag har jobbat i snart 8 år som utvecklare och system-tekniker så har jag ju fortfarande en utbildning inom folkhälsa och psykologi i ryggen.

Vi bor i ett samhälle där fler och fler mår psykiskt dåligt, men det är fortfarande tabu att må psykiskt dåligt. Man kan åka till akuten för en stukad tumme, men om man mår dåligt och sitter och vaggar i ett hörn så vågar man fortfarande inte prata om det. Vi går och tränar för att kompensera att vår moderna livsstil inte är bra för kroppen, men att vår livsstil är ännu sämre anpassat för knoppen ska man helst inte göra något åt, framförallt är det fortfarande, år 2014, skamfullt att må psykiskt dåligt.

Förra veckan var det Musikhjälpen. Jag älskar musikhjälpen, det är en av årets skönaste veckor, medmänsklighet som lyser igenom. Men då och då slås jag av att det är ett jippo för att få fram medmänsklighet. Dom andra 51 veckorna om året då? Problemen här hemma då? Dom problemen som man inte vågar se ordentligt för att dom är för nära sitt eget hus. Att inte skapa en facebook-grupp för att förbjuda tiggeri, utan att faktiskt kolla på varför det sitter folk och tigger. Varken ett roligt eller värdigt liv. Hur många pratar någon gång med någon av dom lite halvfulla herrarna som sitter på parkbänkarna runt om i Sverige? Självklart drar man sig för det, för dom symboliserar kroppsligen något av det vi är mest rädda för. Att hamna utanför samhället.

Många borstar bort detta från sitt samvete med att dom har valt fel banor hela livet. ”Jag bor i villa och har jobb, jag kommer aldrig att hamna där.” Jag säger inte emot, väldigt många har nog haft en tuff uppväxt, väldigt många har nog valt lite fel ibland. Men dom visar samtidigt att även i ett land som Sverige där vi köper platt-tv’s på löpande band, bilar för 300.000 i var och vartannat hushåll, om man inte har två, så har vi ändå ett grovmaskigt skyddsnät som går att falla rakt igenom om man inte har kraften att fånga någon av trådarna som man ramlar förbi på vägen. Händerna som är utsträckta och försöker fånga dig när du börjar falla är skrämmande få om man ser till de resurser vi har. 8 år av borgerlig politik har dock gjort skyddsnätet påtagligare genom att byta tråden till taggtråd. Inte sämre kanske, men hårdare. Behöver vi vara hårda?

Jag hymlar inte med att jag är social-liberal. Jag tycker staten ska hålla sig ifrån företagande, det ska finnas valmöjligheter, men jag är inte för sänkta skatter, snarare höjda skatter. I ett land som är så rikt som vårt så måste vi kunna ta hand om våra medmänniskor som faktiskt inte kan ta hand om sig själva, vare sig det är för stunden, eller överhuvud-taget. Och det finns inget i liberal eller konservativ politik som inte säger att vi ska ta hand om våra medmänniskor, så jag förstår inte hur inte detta kan prioriteras mer. Jag är för att man ska jobba hårt för att alla ska vilja och kunna ha ett jobb. Men man måste acceptera att det inte alltid fungerar och att det måste få ta sin tid för att alla våra medmänniskor ska få ut så mycket livskvalitet som möjligt under dom få åren vi är här.

Jag satt och pratade med en hemlös för något år sedan. En man som gjorde intryck på mig, men som kanske inte representerar den större delen, men ännu mer den delen som många är så rädda för. Han var utbildad ingenjör, hade jobbat på ett av våra större företag inom byggsektorn. Hans fru hade gått bort i cancer och han hade hamnat i en djup depression. Det hade börjat med att han inte hade haft orken att gå till jobbet. Men han orkade inte heller söka hjälp, han gick runt hemma i en dvala. Efter ett tag fick han sparken. Han hade inte heller betalat sina räkningar vilket ledde till att han hamnade hos kronofogden, vilket bara spädde på hur han mådde. När vännerna frågade hur det gick så log han och sade ”det går bra”. Plötsligt var han i personlig konkurs. Huset utmättes och gick på auktion. Han hade betalningsanmärkningar och mådde inte bra. Efter ha hoppat runt hos vänners soffor ett tag var han plötsligt på gatan. Där kom han i kontakt med socialen, och sedan med kurator och psykolog. Nu var han utanför och det var omöjligt att komma in. Är man hemlös och har betalningsanmärkningar så spelar det ingen roll om man har ett utmärkt cv.

Jag skäms. Jag skäms för att jag själv känner obehag ibland när jag ser uteliggare istället för att känna sympati. Jag skäms för att främlingsfientliga krafter i Sverige försöker stoppa folk från att komma hit som flyr från krig och förföljelse, vi har plats och vi har pengar, kom hit i stora lass så att ni kan få lika bra liv som vi har här. Jag skäms att jag som person med mycket medel inte gör mer. Jag skäms för att vi som samhälle fortfarande har så många som mår dåligt och är utanför för att vi själva vill ha mer saker bakom våra låsta dörrar.

Jag vill sluta skämmas. Jag vill sluta skämmas för mig själv och jag vill sluta skämmas för vårt samhälle som har allt att erbjuda men inte vill erbjuda det. Är det inte värt att man får det lite, lite sämre för att många ska få det bättre?

Jag ska jobba mer för det under 2015. Jag har alltid skänkt pengar till Unicef osv, köpt Faktum när det står en säljare och säljer den, men jag kan göra mer utan att anstränga mig speciellt mycket, och ännu mer om jag anstränger mig lite. Även om det bara är att prata lite med en hemlös som om dom är en vanlig människa.

I mars är det nytt val. Rösta medmänskligt och inte på vad som gynnar dig, utan vad som skapar ett samhälle som du kan stå rakryggad inför.

/Oscar

Categories: Kåserier Taggar: ,
1 Star2 Stars3 Stars4 Stars5 Stars (1 röster, snitt: 5,00 av 5)
Loading...Loading...

Integration – Business Connectorn…

november 28th, 2014 rejser Inga kommentarer
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...

I Ax så finns sedan version 4.0 en komponent som heter BusinessConnector.net. Det är en vidareutveckling av den lite äldre com-connectorn och är helt enkelt ett program-bibliotek med instruktioner för att komma åt AX-objekt utifrån. Kortfattat, en dll-fil som du kan plocka in i ditt .net-projekt, och på så sätt komma åt Ax.

Business Connectorn har stått på AX Deprecated Feature-listan sedan AX 2009 med råden att ”använd inte denna för den kommer att försvinna inom kort”. I början av AX 2012 fanns den inte ens att installera i menyn, utan man fick smyga in den bakvägen. Ändå så var replikering i retail-delarna ändra fram till R2 baserade på business-connectorn, för dom fick inte upp tillräcklig prestanda i service-tjänsterna som är tänkt att ersätta denna som integrations-motor.

Hur ska man då använda en sådan här funktion? Ska man bygga hela WPF-program som har massa anrop, snurrar runt på inventtable och skapar försäljningsordrar direkt i programmet?

Jag säger, hantera med varsamhet. Även om man kan så kanske man inte ska göra det. Jag föredrar att kod som gör saker i AX ska vara i AX. Risken är att man har 3-4 småprogram som ligger och gör saker som utför ax-logik, så implementerar man en förändring i AX. Kanske en metod som kräver en ny parameter, så stannar programmen där ute, eller värre dom skapar fel.

Jag brukar förespråka att man gör en klass som man kommunicerar med i AX som sedan skickar informationen i rätt riktning. Säg att man har en klass som t.ex. tar ett xml-meddelande. Då kan man slaska in WPF-applikationer mot den, man kan bygga en web-service som går mot den osv. Och ändrar man i AX så vet man med största sannolikhet att det kommer att funka då Ax går att kompilera.
Business-connectorn ger valmöjligheter vad det gäller säkerhet. Man kan t.ex. om man kör den i en soap-tjänst, välja att alltid gå på poolens identitet, eller så kan låta webservicen fiska upp en identitet som den loggar in med, och då med den användarens säkerhet.
Vi gör inget mer komplicerat än att göra en vanlig console-applikation som listar 10 artiklar, precis som alla andra guider som går igenom hur business-connectorn funkar. 

Console.WriteLine("Starting application...");

Random waitTime = new Random();
int seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);
Console.WriteLine("3");

waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);
Console.WriteLine("2");

waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);
Console.WriteLine("1");

Axapta ax = new Axapta();

Console.WriteLine("Connecting to AX...");
ax.Logon(null,null,null,null);

waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);
Console.WriteLine("Connection established.");

waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);
Console.WriteLine("Ax session id is :" + ax.Session().ToString());

Console.WriteLine("Accessing table InventTable...");
AxaptaRecord axRecord;
string axTable = "InventTable";
int i = 0;
axRecord = ax.CreateAxaptaRecord(axTable);
axRecord.ExecuteStmt("select * from %1");

object itemId;

while (axRecord.Found && i < 10)
{
i++;
itemId = axRecord.get_Field("ItemId");
Console.WriteLine("Item : "+itemId);
axRecord.Next();
}

Console.WriteLine("Sending logoff to Ax");
ax.Logoff();

waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);

Console.WriteLine("Logged off");
waitTime = new Random();
seconds = waitTime.Next(1 * 300, 4 * 400);
System.Threading.Thread.Sleep(seconds);

Console.WriteLine("Disposing of unwanted stuff");
ax.Dispose();

Console.WriteLine("Press the anykey to exit");
Console.ReadKey();

Business-connectorn står som sagt på avvecklings-listan och kommer att försvinna. Men tittar man på integrationer med en tidigare version kan det ändå vara bra att ha i åtanke. Prestandan är över lag tämligen bra. Möjligheterna blir oändliga 

Categories: Affärssystem, Data, Mjukvara Taggar:
1 Star2 Stars3 Stars4 Stars5 Stars (Inga röster än)
Loading...Loading...