Installera AmberTools18 (amber18) på Mac OS X 10.14 (Mojave) med eller utan Homebrew

Så efter en del velade tog jag beslutet att hoppa över från MacPorts till Homebrew. Detta har inte varit en smärtfri övergång och även om jag gillar Homebrew så är det vissa saker jag inte riktigt förstår motivationen till. Med det sagt, jag kör nu homebrew så instruktionerna för hur man kompilerar mjukvaror kommer att hänvisa till homebrew fortsättningsvis, lagt kort ligger.

Med uppdateringen från OS X 13.X High Sierra till OS X 14.X Mojave gick självklart en hel massa saker sönder, något jag nu för tiden har kommit att förvänta mig från uppdateringar av macOS. Detta includerade självklart möjligheten att kompilera amber på macOS. Det visade sig, bland annat, att Apple nu bestämt att ”libstdc++” tjänat ut sin roll och alla skall i stället använda ”libc++” utan att lämna någon bakåt kompabilitet eller sätt att lösa detta. Det har även försvunnits en del filer som brukade husera i /usr/include som man nu måste installera via en installer som ligger begravd i Xcode, dock kommer detta sluta fungera med nästa release av Xcode och garanterat orsaka en massa nya problem. Lång historia kort, detta är vad du måste göra för att kompilera amber på macOS Mojave med Homebrew GCC8 eller med macOS clang direkt. Resan fram till vad som fungerade är lång och innehåller en massa fel och problem, jag kommer inte att beskriva alla dessa problem då det skulle ta väldigt lång tid och potentiellt inte vara av generellt intresse.

Kompilera AmberTools18/amber18 med Homebrew GCC8

  1. Installera Xcode och Command Line Tools
    Xcode10 installerar du lämpligast via AppStore på din dator
    Du behöver installera Command Line Tools manuellt genom att köra följande i din Terminal.app
    sudo xcode-select --install

  2. Installera Homebrew och GCC
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew install gcc

  3. Installera saknade headder filer
    I Terminal.app, kör följande kommando för att öppna PKG installeraren och följ instruktionerna.
    open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

  4. Laddda ned AmberTools18/amber18 och extrahera där du vill installera
    tar xvf AmberTools18.tar.bz2

  5. Configurera och installera
    export AMBERHOME=/[PATH]/[TO]/amber18
    export PATH=${AMBERHOME}:$PATH
    cd $AMBERHOME
    export MACOSX_DEPLOYMENT_TARGET='10.14'
    Eliminerar ett fel med "cannot find <include> file".
    ln -s /usr/local/bin/gcc-8 /usr/local/bin/gcc
    ln -s /usr/local/bin/g++-8 /usr/local/bin/g++
    ln -s /usr/local/bin/c++-8 /usr/local/bin/c++
    ./configure -macAccelerate gnu
    make install

Detta producerar en fungerande version av AmberTools18/amber18 genom att använda Homebrew GCC men det finns fortfarande problem och det kommer garanterat att fortsätta uppstå mer problem innan allt går som det ska.

Kompilera AmberTools18/amber18 med macOS clang

  1. Installera Xcode och Command Line Tools
    Xcode10 installerar du lämpligast via AppStore på din dator
    Du behöver installera Command Line Tools manuellt genom att köra följande i din Terminal.app
    sudo xcode-select --install

  2. Installera saknade headder filer
    I Terminal.app, kör följande kommando för att öppna PKG installeraren och följ instruktionerna.
    open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

  3. Laddda ned AmberTools18/amber18 och extrahera där du vill installera
    tar xvf AmberTools18.tar.bz2

  4. Configurera och installera
    export AMBERHOME=/[PATH]/[TO]/amber18
    export PATH=${AMBERHOME}:$PATH
    cd $AMBERHOME
    export MACOSX_DEPLOYMENT_TARGET='10.14'
    Eliminerar ett fel med "cannot find <include> file".
    vi $AMBERHOME/AmberTools/src/configure2
    Kommentera ut raderna 2237-2241
    # if [ "$intelmpi" = 'yes' ]; then
    # echo "Intel MPI must be used with the Intel compilers."
    # exit 1
    # fi
    #


    vi $AMBERHOME/AmberTools/src/pytraj/setup.py
    Ändra libstdc++ till libc++ på rad 142
    142 extra_compile_args.append('-stdlib=libstdc++’)
    --->
    142 extra_compile_args.append('-stdlib=libc++’)


    Och ändra samma sak på radeta 2289-2293
    2289 # mac/clang
    2290 if [ "$skippython" = "no" ]; then
    2291 cpptrajcxxflags="-stdlib=libstdc++ $cpptrajcxxflags"
    2292 cpptrajldflags="-stdlib=libstdc++ -L/usr/lib/"
    2293 fi
    --->
    2289 # mac/clang
    2290 if [ "$skippython" = "no" ]; then
    2291 cpptrajcxxflags="-stdlib=libc++ $cpptrajcxxflags"
    2292 cpptrajldflags="-stdlib=libc++ -L/usr/lib/"
    2293 fi


    ./configure -macAccelerate clang
    make install

Detta producerar en fungerande version av AmberTools18/amber18 genom att använda macOS clang men det finns fortfarande problem och det kommer garanterat att fortsätta uppstå mer problem innan allt går som det ska.

Läsplattor med papperskänsla

Det finns vissa saker som jag ibland kan sakna med den analoga eran, att föra anteckningar i ett block med penna och papper, att öppna en bok och bläddra igenom den, läsa texten på fysiska sidor och bläddra. Det är kanske egentligen inte så mycket boken och blocket jag egentligen saknar utan snarare en känsla och ett intryck. En iPad eller en mobiltelefon är fantastiska verktyg med vilka man kan läsa böcker och anteckna med ”handstil” med både finger och stylus men det är något som saknas, det är svårt att sätta fingret på exakt vad men det är en viss känsla. Under en ledig stund började jag därför titta runt på något som jag tidigare valt att ignorera, läsplattor. Det visar sig självklart att sedan jag sist tittade på en Amazon Kindle och insåg att det inte går att anteckna, spela spel o.s.v. så har utvecklingen gått vidare. Detta ledde till en tur på nätet för att se vad som nu fanns tillgängligt och jag tänkte lämna lite reflektioner kring detta här och nu.

Sony eInk plattor marknadsförs som deras ”digitala papperssystem”. DPTS1 som säljs för $799 enligt deras hemsida men som självklart inte finns tillgänglig i den svenska butiken. Om man sedan klickar sig vidare till Amazon hittar jag bara begagnade S1 modeller som ligger på $1056 och är begagnade. DPT-RP1 13″ som verkar vara en annan modell som har bättre tillgänglighet ligger på $600

När jag tittar på reklamen för denna blir jag riktigt imponerad, om den fungerar så bra som det ser ut på film är detta helt fantastiskt. De har lyckats fånga upp känslan av papper på ett riktigt imponerande sätt och det verkar vara en relativt lätt och mobil enhet som jag gladeligen skulle släpa med mig närhelst jag misstänker att jag skulle få några minuter över att läsa något. Något som dock sätter en rejäl vägspärr i detta fall är att den ännu inte verkar finns tillgänglig i Sverige och att jag för mitt liv inte kan motivera denna utgift just nu.

Andra modeller inkluderar reMarkable som också ser riktigt intressant ut, finns tillgänglig för köp i Sverige men landar på €599, så en saftig prislapp även på denna.

Bara baserat på vad jag kan se (eftersom jag inte har tillgång till någon av dessa produkter) så är även detta en riktigt imponerande produkt som ser ut att vara lätt och portabel med en fantastisk papperskänsla och möjlighet att föra naturliga anteckningar på ett effektivt sätt.

Sist ut på listan över produkter jag tronade över är Amazon Kindle Oasis 2 (32 GB) som landar på 3490:- och finns i Sverige men är självklart något billigare i USA $280 men med frakt och tullavgifter blir priset nästan detsamma.

Även här har det uppenbarligen hänt saker, det finns möjlighet att lyssna på talböcker, formatet är något annorlunda och från vad jag har förstått så är denna produkt även vattentät (om man vill läsa i poolen?). Vad jag fortfarande saknar med denna produkt är möjligheten att föra anteckningar, både generellt men även i de böcker jag läser. Bortsett från detta verkar detta vara den prismässigt mest tillgängliga produkten, även om den saknar några av de funktioner jag skulle vilja ha, det verkar även vara en av de minsta alternativen jag tittat på, vilket är ett plus (även om jag inte är helt övertygad av den nya formen) och papperskänslan ser ut att vara helt fantastisk.

Så, jag är fruktansvärt sugen på att ha en läs/skrivplatta med papperskänsla och de se alla riktigt intressanta ut men jag kan just nu inte motivera ett inköp på 3500-9500:- för ett digitalt anteckningsblock som endast fyller funktionen av digital bok och anteckningsblock, vilket är fruktansvärt synd. Så om något från Sony, reMarkable eller Amazon skulle råka snubbla över detta lilla tiggarbrev och skulle vara intresserade av en grundlig utvärdering av deras produkter på en sida som uppskattningsvis har en återkommande besökare, då är ni självklart mer än välkomna att skicka över era produkter. Om någon som snubblar över detta och läser detta samt har en av dessa produkter, lämna gärna någon liten kommentar om ert intryck av dessa.

Disenchantment

Äntligen är det dags, idag den 17:e Augusti 2018 är det premiär för Disenchantment på Netflix, det senaste alstret skapat av Matt Groening. För en man som växt upp med och antagligen sett vartenda avsnitt av The Simpsons (Wiki) och som med ännu större glädje tog del av den fantastiska serien Futurama (Wiki) för vilken den gamla VHS spelaren slaviskt programmerades och vartenda avsnitt spelades in är detta en stor dag och förväntningarna är skyhöga. Om detta är en bra eller dålig sak, ja det beror helt enkelt på kvaliteten på serien så klart, något som dock är klart är att denna serie troligtvis kommer bemötas av både brutal kritik och fantastiska lovord över internet av likasinnade fans i samma ålder som en annan.

För mig, jag tänker spara den fantastiska premiären tills i kväll och avnjuta det första avsnittet ”A Princess, an Elf, and a Demon Walked Into a Bar”. Jag vet ännu inte hur många som finns tillgängliga eftersom Netflix verkar ha ett visst problem att tillhandahålla denna serie på premiärdagen (se Figur 1), finns det fler så blir det antagligen så många jag orkar innan jag stupar.

Figur 1. Felmeddelande från Netflix när man försöker läsa om serien via mobiltelefonen

Om du som jag är ett fan, orkar/hinner titta på avsnittet och vill dela dina åsikter, gör gärna det. Det är alltid kul att höra vad andra människor tycker.

CTFR – Underdomäner hos HTTPS sidor

Hittade nyligen detta intressanta lilla skript som kan användas för att på några få sekunder lista upp tillgängliga underdomäner till HTTPS adress.

Det som är trevligt med detta skript är att det inte använder ”ordlistor”/”uttömmande nyckelprövning” för att identifiera sidorna utan certifikat loggarna.

Detta skript har gjorts tillgängligt av UnaPibaGeek och du hittar det på dennes Github sida.

Använd inte detta script på domäner/sidor du inte själv äger eller har tillstånd från ägaren att undersöka för att undvika eventuella problem (legala problem inkluderade) eller upprörda känslor.

Cybersecurity 2.0 by Wiley

Nu är det dags för en favorit i repris, via Humble Bundle har du nu chansen att införskaffa 14 stycken trevliga böcker som på ett eller annat sätt berör IT säkerhet för omkring 150:- vilket är ett svårslaget pris, eller det belopp du känner att du kan avvara.

Detta erbjudande innehåller följande titlar:

  • Secrets and Lies: Digital Security in a Networked World
  • The Shellcoder’s Handbook: Discovering and Exploiting Security Holes
  • Reversing: Secrets of Reverse Engineering
  • Threat Modeling: Designing for Security
  • Engineering: A Guide to Building Dependable Distributed Systems
  • Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
  • Cryptography Engineering: Design Principles and Practical Applications
  • Wireshark for Security Professionals
  • Malware Analyst’s Cookbook: Tools and Techniques for Fighting Malicious Code
  • The Art of Memory Forensics: Detecting Malware and Threats in Windows, Linux, and Mac Memory
  • Advanced Penetration Testing
  • Investigating Cryptocurrencies
  • The Web Application Hacker’s Handbook: Finding and Exploiting Security Flaws
  • Applied Cryptography: Protocols, Algorithms and Source Code in C

Du kan ta dig direkt till erbjudandet via denna länk och välja att till exempel donera en del av din betalning till EFF för att behålla ett fritt internet.

International Conference on Molecular Imprinting 2018 (MIP2018)

Denna vecka pågår MIP2018 i Jerusalem (Israel)

Resan startade redan i lördags med tåg mot Kastrup klockan 07:00, mot alla odds lyckades SJ hålla tiden och anlände i tid till Kastrup. Detta innebar nästan fyra timmar buffert på flygplatsen, marginaler jag sällan upplevt under arbetsresor. Av någon spännande anledning lyckades jag bli ärad med en ”random check” och fick erhålla min första ”full body scan”. Flyget blev sedan försenat från Kastrup i vanlig ordning, med nästan en timme, detta till trots lyckades Lufthansa landa i Frankfurt endast cirka 20 minuter sent, detta lämnade helt plötsligt 50 minuter att ta oss tvärs över flygplatsen. Något mindre än de 85 minuter vi skulle haft men fortfarande förvånansvärt mycket tid jämfört med vad som förväntades när flyget var nästan en timme försenat.

Vi hann ta oss över flygplatsen, vi hann springa förbi taxfree butiken, vi klarade oss igenom den extra säkerhetskontrollen vi inte hade räknat med och hann med flyget. Det var den mest grundliga säkerhetskontroll jag påträffat, bagaget röntgades en extra gång, vilket inte är en speciellt konstig sak. Däremot förvånades jag när jag försökte ta av mig skärpen och damen vid disken talade om för mig att ”det inte spelar någon roll, vi kontrollerar alla i alla fall”. Detta gjorde dem, person nummer två kliver fram med trollstaven och börjar skanna. Denna metalldetektor var uppenbarligen satt på ”sinnessjukt känslig” eftersom hela min kropp tjöt som ett larm. Detta ledde till en grundlig kroppsvisitation där området runt gylfen fick en grundlig behandling med klämmande och kupande eftersom (till en enorm förvåning) området kring bältspänne och dragkedja konstigt nog lös upp som ett tomtebloss under avsökningen.

Suddigt nattfoto genom rutan under inflygningen

Efter ett par svettiga minuter, ”hold you belt like this”, ”do not remove the belt though do not let it interfere”, ”pull you pants up”, ”put you shirt down”, ”DO NOT MOVE YOUR HANDS SIR”, ”turn around”, ”lift your feet”, ”lift your shirt BUT DO NOT MAKE ME LOOSE SIGHT OF YOUR HANDS” och så vidare tog vi oss igenom kontrollen. Efter fyra timmar på ett överbokat plan senare landade vi på flygplatsen i Tel Avivs. Den sena timmen och de 15 timmarna på resande fot var inte tillräckligt för att hindra en förundran över flygplatsen. Den ”regnande” takfontänen, stendetaljerna o.s.v. Med en klump i magen närmade vi oss passkontrollen och efter en stund var det dags att kliva fram till båset. Efter ett par frågor angående var jag bodde, hur länge jag bott där och en stunds häcklande över Sveriges förlust i World Cup fick jag mitt blåa passerkort och välkomnades in i landet.

Taxifärden genomfördes i en luxuös minibuss med fungerande AC, tonade rutor ovh lädersäten där chauffören undvek att sätta igång någon slags 2011 års diskotek mix som stod på paus. Strax efter midnatt anlände vi till hotellet och efter en del strul gällande antalet rum lyckades vi alla checka in och lyckades trilla i säng strax innan klockan två.

Detta kan vara den minst problematiska konferensresa jag någonsin varit på hittills men mycket vecka återstår innan veckan är slut och hemresan väntar.  På torsdag är det min tur att presentera, nu återstår bara att färdigställa presentationen. Förhoppningsvis kan det kanske bli en eller annan uppdatering under konferensen som troligtvis väldigt få bryr sig om.

Installera AmberTools17 (amber16) på Mac OS X 10.13.3 med MacPorts

Detta kommer bli en opolerad snabb genomgång av hur du får in en version av AmberTools17 och på samma sätt Amber16 om du har en licens med hjälp av pakethanteraren MacPorts. Jag kommer gå igenom Homebrew vid ett senare tillfälle och ska försöka putsa till detta senare och göra en mer utförlig och trevligare guide.

Jag har bytt dator på min arbetsplats relativt nyligen och av ren rutin körde jag in MacPorts som pakethanterare och började fylla i luckorna. Dock kom jag på att jag hittat en väldig massa information som jämför MacPorts mot Homebrew där det antingen är ett fåtal väldigt engagerade eldsjälar eller en växande majoritet av användare som rekommenderar Homebrew över MacPorts av olika anledningar. Jag kommer inte gå in på detaljerna kring detta här, det kommer dock komma en reflektion kring skiftet.

Jag sitter som sagt på en relativt ny Mac på jobbet men processen borde vara densamma för de flesta versioner av OS X (kan bekräfta detta nämligen) från  på en 2009 års modell MacBook Pro med 10.11 upp till 10.13.

Du måste vara en administratör på datorn du försöker göra detta på, oavsett vilken metod du väljer senare eftersom även Homebrew behöver installeras och i något skede kräver ett administratörslösenord. 

För att installera med hjälp av MacPorts, gör följande

  1. Installera Xcode från AppStore
  2. Öppna en terminal och kör följande kommandon för att installera extra komponenter du behöver och godkänna licensen.
    xcode-select --install
    xcodebuild -license
  3. Starta Xcode och installera eventuella updateringar
  4. Gå till MacPorts hemsida, ladda ned och installera enligt instruktion
  5. Gå till XQuartz hemsida för att ladda ned och installera XQuartz (ersättaren för Apples X11 som inte längre finns)
  6. Starta en ny terminal session (cmd+space, skriv terminal och öppna Terminal.app)
  7. Kör följande kommandon
    sudo port selfupdate
    sudo port upgrade outdated
    sudo port install gcc6
    sudo port install mpich-gcc6
    sudo port select --set gcc mp-gcc6
    sudo port select --set mpi mpich-gcc6-fortran
    exit
  8. Registrera dig och ladda ned AmberTools från nedladdningssidan
  9. Du kommer få hem en fil som heter något i stil med AmberToolsXX.tar.bz2, hitta den i finder (glöm inte att byta ut XX mot de siffror du faktiskt har). Placera detta arkiv i en mapp där du har läs/skriv rättigheter och där du vill installera programmet. Jag tänker skapa en mapp i min hemkatalog som heter ”Software” där jag installerar AmberTools så jag flyttar dit arkivet. Gör detta med musen och finder eller kör något liknande nedan i terminalen
    mkdir ~/Software/
    mv ~/Downloads/AmberToolsXX.tar.bz2 ~/Software/
    cd ~/Software/
  10. Om du vet hur terminalen fungerar använd ”cd” för att placera dig i samma ”mapp” som arkivet, alternativt om du tagit dig hit med mus/trackpad och finder. Öppna en terminalsession, skriv ”cd ” (glöm inte ett litet mellanslag) och ta sedan ”tag i mappen” där arkivet ligger med muspekaren och släpa till terminalfönstret där du ”släpper”, tryck sedan ”enter”.
  11. Väl i terminalfönstret i samma mapp som arkivet, kör detta kommando
    tar xvf AmberToolsXX.tar.bz2
    för att extrahera arkivet.
  12. Kör sedan detta kommando
    export AMBERHOME=~/Software/amberXX/
    (igen, byt ut XX mot korrekta siffror)
  13. Kör sedan detta för att hamna i rätt mapp
    cd $AMBERHOME
  14. Kör sedan detta kommando
    ./configure -macAccelerate gnu
    Kompilera sedan seriella versionen
    make install
  15. När detta är klart kommer lite info och att du skall göra något, det blir på enklast sätt detta (stäng inte terminalen ännu)
    vi ~/.profile
    Tryck på ”i” på tangentbordet för att aktivera skrivläget, markera i terminalfönstret detta och klistra in på en egen rad
    test -f ~/Software/amberXX//amber.sh && source ~/Software/amberXX//amber.sh
    Tryck på ”esc” tangenten, håll ned ”shift” och tryck två gånger på ”z” (shift+z+z) för att spara och gå ur editorn.
    exit
  16. Starta en ny terminalsession
    cd $AMBERHOME
    make test
  17. Om testen ser OK ut har du nu en installerad seriell version av Amber/AmberTools. Det som nu återstår är parallell versionen. Kör följande kommandon
    ./configure -macAccelerate -mpi gnu
    make install
    export DO_PARALLEL='mpirun -np 2'
    make test.parallel
    export DO-PARALLEL='mpirun -np 4'
    make test.parallel
  18. Om testerna fungerar och inget större problem inträffar är du nu klar.

Den här posten ser hemsk ut, jag ska försöka hinna gå loss på CSS och ändra bakgrundsfärgen och indenteringen för kod vid tillfälle.

Lost in Space

Netflix har haft en ganska bra höst i år, jag har lyckats hitta en hel del att låta rulla i bakgrunder och att titta lite mer aktivt på. Nu har det dock dykt upp något jag verkligen ser fram emot, en reboot på den gamla klassikern ”Lost in Space”.

Det här är något jag ser fram emot med glädje, verkar vara 13:e April som är release datum.

Det är en funktion, inte en bugg

Jag hittade en intressant liten historia som helt plötsligt gör att man inte behöver ”hacka” användare för att skaffa personlig information, det räcker att skriva en framgångsrik App till Mac.

Det finns tydligen ett litet ”kryphål” som gör att utvecklare kan göra så att appar på din Mac kan komma åt alla skärmar som datorn är ansluten till och ta skärmdumpar med jämna mellanrum och skicka hem. Detta är självklart ett stort problem, eller en ”helt normal funktion”.

Jag har inte grävt ned mig i detta, det var mer en underhållande observation. Läs mer på Felix Krauses sida.

Prata som ett ”proffs”

Jag hittade häromdagen en sida jag tyckte var lite rolig, den genererar IT-strategier:

http://whatthefuckismyinformationsecuritystrategy.com/

Vad sägs om underbara exempel som:

Protect the organization’s security posture by participating in business continuity planning, data loss, and fraud prevention by emphasizing risk of data loss”, Remediate SOX and PCI gaps by locating PII and driving compliance practices towards regulations by reducing incidents caused by data loss” och ”Facilitate and demonstrate ROI through ongoing monitoring and correlation of access control frameworks and standards

I samband med detta råkade jag även snubbla över en sida som tillhandahåller en liknande lösning för sociala medier:

http://whatthefuckismysocialmediastrategy.com/

Med exempel som:

Amplify word of mouth by motivating influencers”, Target influencers with engaging assets to act as platforms for conversation” och Amplify word of mouth by motivating influencers

Jag kan inte riktigt sluta gå tillbaka och titta på dessa, det är riktigt underhållande.