Kategoriarkiv: Okategoriserade

Devday 2016

Vi har haft vår årliga Devday, en dag i kunskapens tecken där syftet är att testa nya tekniker under ett paraply av vägledande och smått märkliga teman. Filosofin bakom Devday är att praktisera den pågående interna kunskapsspridningen, exempelvis i form av teknikkvällar, genom att erbjuda en dag för att förverkliga idéer och skapa lagkänsla. Då vi alla är kodfantaster är det ytterligare en bonus att kunna ha lite friare tyglar kring vilka tekniker man kan använda i utvecklandet. Årets övergripande tema var ”MasterDev” där varje lag med givna grundrecept, ett skafferi fyllt av ramverk och sin egen personliga kryddning fick en dag på sig att implementera något ur kategorierna:

– Intranet of things
– Adventures in the shell
– George Booles matkasse-webappar

Lagen tävlade mot varandra i två priskategorier: folkets val-priset, samt teknikpriset. Det sistnämnda gick till laget som plockade flest poäng från en lista med bonusobjektiv, där det fanns allt från dokumentation till unit-tester och användandet av specifika ramverk.

Så vad kunde våra lag koka ihop under en dag?

– En konsolbaserat tinder som använder SharePoints user profile service och visar ASCII art av dina potentiella matchningar. Högerpil för like!

– Recept-appar i varierande utformning som gav menyförslag baserat på valda kategorier och/eller sökord, förslag till restauranger som serverar maten, en ingredienslista om man föredrar att laga den själv, samt passande middagsmusik.

– En flic-integration som triggar text-to-speech över ett Sonos-system.

devday_1

devday_2

devday_3

devday_4

The great ”Sites I’m following” battle

Spoiler: It’s a draw.

The problem

A customer has a server setup where the URL for the default zone is not accessible at all for users (has something to do with ADFS). This is working out somewhat fine, except in a few places. Some links are rendered with urls point to the default zone, meaning that they redirect the users to the wrong domain. Some of these links are located on *queue horror music* the ”sites I’m following” page.

sites I'm following

The circled link leads to the default URL, in this solution only accessible from inside the server. So every user using this page will get redirected to a page that doesn’t work.

Solution

It started out with a good solution of an HTTP handler, but because of circumstances, that was not a viable solution. Instead I had to resort to fixing it on the client side with JavaScript.

Attempt one

I wanted something that wasn’t too problematic performance, so I added a click handler to all the anchor tags in question. When a user clicked a links, the href attribute was replaced to contain the correct hostname.

This uses a configuration object where a specific hostname was matched to another. I will not publish it here, since it contains the actual domains, but it looks something like this:

Does it work? No.

Why? Well, it works on all links except the ones on the ”Sites I’m following” page. The hrefs are replaced, but just before the users is redirected (visible in the next image, circled in blue), it is changed back to the original URL. Makes me pull my hair. SharePoint runs some kind of magic (probably something to do with mquery) after my click handler.

Solution 2

So then I started looking at the visible url, can I somehow change it? Turns out it’s an input field with a value. Circled in red here:

sites I'm following-htmlI can easily enough change the value, and I did. But when run on page load it didn’t happen. However, when I ran the exact same code in the browser directly, it worked. Until I resized the window. I’m not even kidding. Every time I resize the window, the value of each input field is reset back to its original value. I have no idea why someone put that in there from the beginning.

Solution 3

In the end I just replaced the anchor tag and input field with my own. Stupid.

Androidapp som pratar med SharePoint

Idag har vi kompetensdag på Bool: #booldevday. I min grupp ska vi utveckla en mobilapp för Android. Vi har hittat på ett följande case:

Case

Ett fiktivt företag Takana är oberoende bostadsinspektörer. De inspekterar bostäder när någon flyttar ut… Varje inspektion är kopplad till en bostadsadress. Den stämplas med dagens datum och inloggade användaren (från Azure AD).  En inspektion innehåller en bedömning (kommentar) och kan innehålla anmärkningar. Varje anmärkning har en beskrivning och en bild (ej obligatoriskt). En anmärkning kräver en åtgärd. En inspektion utan anmärkningar innebär en godkänd överlämning och behöver inga åtgärder.

En inspektion godkänns av administratörer i SharePoint Online i desktop-versionen.

Takana använder SharePoint Online. Det finns en dedikerad site för inspektioner och en lista just för inspektioner och en lista för anmärkningar.

Anställda har androidtelefoner. Det är inte sällan man har inte tillgång till nätet på byggarbetsplatser. Det är ett krav att det ska fungera offline och synkroniseras när man får uppkoppling med mobilt internet.

Vårt team

Vi är passionerade med att jobba med SharePoint och SharePoint Online, men vi är nya i mobilapputveckling. Det blir skoj att testa SharePoint APIer i Androidprojekt. I mitt team ingår Dan Saedén (https://github.com/rlv-dan) och Mattias R.

Våra verktyg

Vi använder Android Studio, en Nexus 9 för att debugga och Github for Windows

Statusuppdateringar

Vi uppdaterar om status i vår grupp på Yammer och Twitter med hashtaggen #booldevday02 (vår grupp) och #booldevday (vår komptetensdag). Den här bloggposten kommer också med största sannolikhet uppdateras under dagen.

Fakta och endpoints

Vår repo på Github ligger under https://github.com/mirontoli/andpoint

SharePoint Online-instansen är under https://takana14.sharepoint.com

We’re having our first Bool DevDay!

Bool is filled to brim with talented and knowledgeable people. This is a force that can do great good and we try to do just that! We want to constantly keep learning and exploring new ideas. This is why we will host our first Bool DevDay at the beginning of June.

A whole day of free learning. Come up with a project and create something. Try something you never have the time for during regular hours. That technology no customer asks for, but we know will help in the future, or a powershell script to watch farms from misbehaving, or a new Minecraft plugin.

I am very proud to be in charge of this new initiative here at Bool, and also proud to see my colleagues rise to the occasion and come up with great ideas. I’m very excited for 4th of June!