Alla inlägg av Waffe

Make BulSEx resdagbok #1: Prolog

Disclaimer: denna resdagbok baserar sig på mitt perspektiv, och det fattas möjligtvis en del crazy shit som har hänt åt andra.

Den 14:e augusti 2019 tog 27 spektrumiter för sig att packa sina väskor och pass samt injicera sig med hepatitvaccin. Det var dags för XQRR igen! Denna gång blev det ett flyg till Sofia, Bulgarien (via Istanbul) vartefter vi åkte buss till Skopje fram och tillbaka. Tillsammans var det fråga om 9 nätter, först en i Sofia, sedan fyra i Skopje och de sista fyra igen i Sofia.

Vi byholmare tog en gemensam buss (56:an) till Kottby station, varifrån vi skulle fortsätta med tåg. Det var bara redaktionschefen själv som var sen till samlingen och klarade sig knappt till bussen. Fiilis: HAJP!

På flygfältet delades det ut t-skjortor och xqlusiva halarmärken. Vi checkade oss in och klarade oss oskatt genom säkerthetschecken. Första dödsfällan var den automatiska passkortsläsaren, vart flera spektrumiter (mig inkluderat) blev tillfälligt fångetagna.

Resenärerna från vänster till höger: Sami, Joni, Robert H, Emma, Emil, Waffe, Eva, Mackan, Otto, Sara, Nisse, Oliver, Markus (bak), Aslak, Victor, Robert P (bak), Kalle, Daniel, Stubb, Frans, Åland, Simon, Meri, Hugo, Tobias och Amanda O. Fotograferat av Amanda P.

Efter en dryga 3.5 timmar anlände vi till Istanbul Airport där alla yrade runt sina egna vägar. Jag var själv på pide och tog en titt på bisse. För att hedra tradition lärde de äldre spektrumiterna pidro åt gulisar och fjolisar.

Kort recension på Turkish Airlines: bra mat, dryck och service 👍

Flyget till Bulgarien var betydligt kortare, 1.5 timmar. Det var så kort att vissa hann inte äta sin in-flight måltid förrän vi sku landa. Jappen som satt mellan mig och Markus såg ganska förstörd ut hela resan, men han visade tummen upp när vi frågade om hans tillstånd.

Vi hade plats för 23 personer i bilarna som skulle föra oss till Hostel Mostel. Fyra modiga gamyler/mörkön valde att stanna kvar, och fick njuta av distant fyverkeri under en full måne.

Första natten på hostellet var för vissa ganska tuff. Mitt rum var enligt eget estimat kring 27 grader varmt, med unken luft därpå. Det öppna fönstret var den enda räddningen, men den tillät stadens alla tänkbara oljud tränga in i vårt lilla sovrum. ”Som tur kan man sova på bussen”, tänkte vi alltför optimistiskt.

Parentesfrågan

Läsaren har högst antagligen en uppfattning om vad parenteser är och vad deras roll är i en mening. Parenteser (trots namnet) är alltså inte teser, utan de ”… förtydligar, kommenterar, förklarar eller innebär ett sidospår från den övriga texten” (copy paste från Wikipedia). Med ”parenteser” menar jag förstås rundparenteser och inte hak-, klammer-, vinkel- eller piggparenteser, fastän samma grundprincip gäller också för dem.

Inom matematikens teoretiska drömvärld, till skillnad från naturliga språk, används parenteser för att ”ange grupper av termer […] för ordningen av räkneoperationer” (Wikipedia). Vi kan därmed säga att i matematiken har parenteserna olik semantik, vilket leder oss till en fråga: Vilken roll borde parenteser ha inom programmering?

Programmering är till stor del matematik. De första programmeringsstrukturerna härstammade från rena matematiska modeller som förverkligades med hjälp av elektronrör och senare mikroelektronik. Vi tar två konkreta exempel för att illustrera hur parenteser vanligtvis används inom programmering.

(defn kvadrat-summa [n]; summerar n första kvadraterna
(loop [i 0 resultat 0]; sätter variablerna 'i' och 'resultat' som 0
(if (<= i n)
(recur (inc i) (+ resultat (* i i)))
resultat
)))

(print (kvadrat-summa 5))

Ovan är Clojure kod som spottar ut summan på de fem första kvadrattalen. Clojure tillhör LISP familjen av programmeringsspråk där parenteser strukturerar programmet. Notera att all kod är omringad av parenteser som skapar en hierarki av funktioner och värden. Förklarningar och kommentarer placeras inte inom parenteser, utan inleds med semikolon. Koden kan köras här för de intresserade.

!gfortran, gcc version 5.4.0 20160609
!Summerar n första kvadraterna
integer function kvadrat_summa(n) result(summa)
real :: lista(n)

lista = (/(i, i=1,n, 1)/)
lista = lista*lista
summa = sum(lista)
end function kvadrat_summa

program P
print *, kvadrat_summa(5)
end program P

Som ett mindre extremt exempel på parenteser inom programmering kan vi betrakta ett bekant språk för fysiker, Fortran! Du kan köra koden här. Se hur parenteser används för att:

  • generera listor,
  • definiera funktionens resultat samt listans storlek, och
  • för att gruppera parametrar givna till funktioner.

Vi ser att parenteser behandlas liknande som inom matematiken, men varför så? Borde inte kod sträva efter att vara så naturligt läsbart som möjligt?

Svaret på första frågan är simpel; programmeringsspråk skapas av datanördar och inte lingvister. Men för att exemplifiera att naturliga parenteser är möjliga (och kanske även vettiga) inom programmering skrev jag nedan ett exempel på ett påhittat Python-liknande språk. Parenteserna fungerar som kommentarer eller tillägger extra detaljer.

(heltals) funktion kvadrat_summan på n (ett heltal):
(summerar n första kvadraterna)
i = 0
resultat = 0
medan i <= n:
resultat += i * i
i += 1
resultat

visa kvadrat_summan på 5

Mycket snyggare och klarare kod, inte sant? Bara om nån skulle hitta på ett liknande språk som också är körbart…

Fortsättning följer!

😘😉➡️📰📝

📰📝🏃‍♂️🏠💎⤵😱. 📰💻📊📋⤵🍺🏠🧙‍♂️🌊. 👦👦🍺🍻🍻👦👦👦. 🚶‍♂️➡🚾❌💡🆘. 🕖🚶‍♂️🚶‍♂️🚶‍♂️🚶‍♂️🚶‍♂️➡(✖➕👁➕🍵). 🚶‍♂️🚶‍♂️🚶‍♂️🚶‍♂️🚶‍♂️🔫🐱‍👤🐱‍👤💎. 👦🔗👦🔗👦🔗👦🔗👦. 🔑🔒➡🔓👌👌💯🔥🔥. 🎮😎👍.

👀👆🆕📄!