Methods to find out if we are running bash in Windows subsystem for Linux

The first thing I did when I finally succeeded to get Windows subsystem for Linux in my hands, was to toy around with stuff I normally do. However, when I tried to run apt-get upgrade, the problems started for real, with apt-get. Errors occured and I was desperately trying to restore Ubuntu as it was before. I found a thread here that fixed the issue. It’s based on reinstalling the Ubuntu image with the commands

lxrun /uninstall /full /y and then lxrun /install

I have a few major install scripts, that actually builds Ubuntu in the way I want, when installing servers from scratch. Those scripts however contains a bunch of apt-get’s, including apt-get upgrade. So after this point I started to look for a solution to avoid running apt-get upgrade in the installer scripts. This is one example, that I will – at least for now – use in those scripts, to avoid parts of apt-get that actually breaks it.

#!/bin/bash

# Running uname -v and uname -r from "Ubuntu for Windows" (or what we may call Windows subsystem for Linux)
# normally gives you information that the kernel version is 3.4.0+ and kernel release PREEMPT. I don't consider this
# as enough information, so we should also check some other stuff. Like for example if btime exists
# in /proc/stat. You can not do a normal ps -aux if you reside in a Windows release without getting the error
# "missing btime in /proc/stat", but you will still be able to run them separately (ps -a, ps -u, etc). However, trying to
# list processes from a Windows release, will give you an empty list while trying to run the ps -a.

hasbtime=1
hasproclist=1
windowsconsidered=0

testwin=`cat /proc/stat|grep btime`
if [ "" = "$testps" ] ; then
	hasbtime=0
fi
if [ "`ps -a|wc -l`" = "1" ] ; then
	hasproclist=0
fi

if [ "$hasproclist" = "0" ] && [ "$hasbtime"  = "0" ] ; then
	windowsconsidered=1
fi

if [ "$windowsconsidered" = "1" ] ; then
	echo "I was running through a small checklist and I found things that made me consider this either a lite version of Ubuntu"
	echo "or a different Ubuntu that is missing important compontents (Like Windows)"
else
	echo "Everything seems fine"
fi
Publicerat i IT/Blandat, IT/Development | Etiketter , , , , , , , , , | 2 kommentarer

Hur IT-folk egentligen arbetar

Det som från början verkade vara så enkelt att genomföra var bara en fasad. Det fanns en checklista som skulle följas till punkt och pricka och en huvud-datamaskin skulle bytas ut.

Problemet var bara, att IT-personalen skulle genomföra arbetet, var inhyrd från en lågbudgetkonsult. Arbetet slutfördes visserligen på mellan 1 – 2 timmar men förskönades inför allmänheten för att alla skulle tro att det hade gått bra. Sanningen – var dock mycket värre.

Först skulle servern installeras
00-InstallCalm

Hur det verkligen såg ut
00-Install

Sedan skulle strömmen brytas
02-ShutDownPower
Hur det verkligen gjordes
02-ShutDownPowerForReal

Utrustningen skulle flyttas…
03-MoveTheGear
Vad som faktiskt flyttades…
03-MoveTheGearReal

Den nya utrustningen skulle kopplas in och startas upp
04-StartUp

Vad som verkligen hände…
20151220_172047_HDR

Publicerat i Fotograferat, Seriös Journalistik | Etiketter , , , , | 1 kommentar

object to object converting (__PHP_Incomplete_Class)

I’ve read a lot of suggestions on how to fix incomplete classobjects and I actually needed to fix those problems myself, in a ecommerce-project.

One suggestion I’ve found is to simply use json_decode/json_encode to convert incomplete classes without preloading anything. However, I didn’t want to take the risk using this, if there are older PHP versions that are dependent in for example PECL, that is described at http://php.net/manual/en/function.json-encode.php – so I finally succeeded to make my own solution.

However, the code is a way to get the data out of the object properly, so it may not fit all needs – and it will primarily, use the json-solution first, if it is available in the environment and fail over to manual handling if needed.

It also works recursively, which in my own case is required, to save the whole array.

    /**
     * Convert a object to a data object (used for repairing __PHP_Incomplete_Class objects)
     * @param array $d
     * @return array|mixed|object
     */
    function arrayObjectToStdClass($d = array())
    {
        /**
         * If json_decode and json_encode exists as function, do it the simple way.
         * http://php.net/manual/en/function.json-encode.php
         */
        if (function_exists('json_decode') && function_exists('json_encode')) {
            return json_decode(json_encode($d));
        }
        $newArray = array();
        if (is_array($d) || is_object($d)) {
            foreach ($d as $itemKey => $itemValue) {
                if (is_array($itemValue)) {
                    $newArray[$itemKey] = (array)$this->arrayObjectToStdClass($itemValue);
                } elseif (is_object($itemValue)) {
                    $newArray[$itemKey] = (object)(array)$this->arrayObjectToStdClass($itemValue);
                } else {
                    $newArray[$itemKey] = $itemValue;
                }
            }
        }
        return $newArray;
    }

http://stackoverflow.com/questions/965611/forcing-access-to-php-incomplete-class-object-properties/35863054#35863054

Publicerat i Ingen kategori | Lämna en kommentar

Pärleporten

”Himmelen öppnade sig och ut steg en liten herre, som kallade sig själv för Harald. Han påstods vikariera för Per under den här säsongen och att det skulle finnas ytterligare anställda för att ta emot den ökande strömmen så här års.

– Hjärtligt ihjälkommen, sade Harald och utbrast i ett kraftigt rossligt, nästan spöklikt, vrålskratt. Rudolf förstod direkt att det var från helvetet man hade skickat personalen.”

Publicerat i Fotograferat | Etiketter , , , | 2 kommentarer

Angry birds

In action.

angryBirds[1]

sparrows[1]

Publicerat i Ingen kategori | Etiketter , , , , , | 3 kommentarer

Det är inte bara vi som väntar på bättre väder

Detta galleri innehåller 2 bilder.

Fler gallerier | 3 kommentarer

Billiga skämt i Aftonbladet ”kan bli problem”

Aftonbladets ständiga ordvit(s)ar befinner sig under internutredning av självaste Stefan Löfven, då han nyligen ansett att skämten som deras redaktion – och många andra dagstidningar sysslar med – är skrivna bortom all rimlig humor. ”Det går inte att skratta åt dom”, säger han.

”Vi måste även passa på att ta oss an svenska folkets oförmåga att vara källkritiska innan de sprider sin dynga på Facebook”. Vad detta har med saken att göra i sakfrågan kan Stefan Löfven dock inte förklara utan hänvisar i stället till att ”det bara är så”.

Ett specialteam har deltagit i Socialde(m)okraternas utredning och lyckats översätta Stefan Löfvens reaktion, vilken tyder på att han fatalt kommer att misslyckas med den uppgift han åtagit sig. Nu och framöver.

lofven_tolkning

Artikelinspiration

Publicerat i Fotograferat | Etiketter , , , , , , , | 2 kommentarer

Skånsk solförmörkelse 2015

Unika bilder från Helsingborg, under solförmörkelsen.

sol01sol02

Publicerat i Fotograferat | Etiketter , , , , | Lämna en kommentar

Mannen med den oväntade trissvinsten: ”Vad i helvete är det här?!”

Den otursamma Yngve Thordehammar, 44 år, från Västerås blev under Melodifestival-helgen minst sagt förvånad när han för första gången i sitt liv vann högvinsten – på Triss. Vad han inte lyckades begripa, var vad vinsten egentligen består av.

– Att vinna en livsförbrukning långfinger månde vara intressant, men vad skall jag ha dom till?

Svenska Spel förklarar vinsten med att man vill ”krydda” nitlotterna lite extra och ge köparna ”vad de verkligen förtjänat”.

triss

Publicerat i Fotograferat, Seriös Journalistik | Etiketter , , , | 2 kommentarer

De felexponerade bilderna du trodde var förstörda

För fyra år sedan lät jag rätt många bilder ligga orörda, eftersom jag kände att bilderna var förstörda på grund av i synnerhet gräset som var helt felexponerat. Det behöver dock inte vara så att man kasserar en hel uppsättning bilder bara för att man själv inte varit kapabel att ta bättre bilder än så här. Man får bara se till att dom rättas till!

Alla bilderna är tagna med en Canon EOS 450D på full automatik – något som jag också varit helt oförmögen att hantera. Det bör alltså tilläggas att, sedan jag gick över till helmanuellt, varit väldigt nöjd med hur bilderna blivit.

450D-O-02450D-F-02450D-O-03450D-F-03

Skulle man råka bära på en kompaktkamera så är inte heller det hela världen. Kameran som används för nedanstående bilder heter Olympus SP590UZ

OLYMPUS DIGITAL CAMERAOLYMPUS DIGITAL CAMERAOLYMPUS DIGITAL CAMERAOLYMPUS DIGITAL CAMERA

 

Publicerat i Fotograferat | 1 kommentar