Giter Site home page Giter Site logo

website's Introduction

dbwebb.se A Website

Join the chat at https://gitter.im/mosbth/dbwebb

This is the main website for dbwebb.se, live at https://dbwebb.se.

The short Docker story

This is how you can run and develop this repo within a Docker environment.

Clone the website repo to get a clean install.

Prepare to run website in docker.

make docker

This creates the cache/ directory where the website stores it cached files.

Remember to clean the Anax cache when making updates to files in the content/ directory.

make clean-cache-anax

You can now can start the website container.

docker-compose up website
docker-compose up -d website

Point your browser to "localhost:8080" and wait a few secods for the cache to warm up.

Logfiles from Apache is written to log/{access,error}.log.

Review the docker-compose.yaml to see what is mounted into the container and which directories that are not (vendor/).

You can connect to the running container to inspect it, like this.

docker-compose exec website bash

If this gives error try running composer install in the folder /app inside the container after you have started the container with the command below. To enter container run docker exec -it <container_name> bash.

Start up the webserver using docker-compose.

docker-compose up -d website

Open a web browser to localhost:8080 to view the site.

Close down the docker container.

docker-compose down website

Really short Docker-story

You may run the website directly using docker.

docker run -p 8080:80 dbwebb/website

That might be useful if you want to have your own local backup instance of the website.

Dev story

This is if the docker way does not work for you or if you are a developer.

$ git clone <the original or your forked repo>
$ cd <the original or your forked repo>
$ make etc-hosts
$ make virtual-host
$ make update

Now open your browser at local.dbwebb.se and browse the website.

If you need to upgrade your existing installation you can just redo it all.

$ make etc-hosts virtual-host update

For developers and maintainers

This is guidelines on how to setup your own local development environment for this website.

Apache and PHP

On Windows and Mac OS you may use XAMPP.

On Debian this will make it happen, it is Apache2 and PHP5 (with pecl and GD).

$ sudo apt-get install apache2 php5 libapache2-mod-php5 php5-dev php-pear php5-gd

Install Composer and YAML.

Apache virtual host

You need a Apache virtual host as local.dbwebb.se.

  1. Clone the website to ~/git/dbwebb.se.
$ git clone <the original or your forked repo>
$ cd <the original or your forked repo>
  1. Create an entry in the /etc/hosts for local.dbwebb.se.
$ make etc-hosts
  1. Create the virtual host, the basis can be found here.
$ make virtual-host-echo
$ make virtual-host       # On Debian to just do it
  1. Make and publish to the local structure at ~/htdocs/dbwebb.se.
$ make update
  1. Restart the webserver and open your browser at local.dbwebb.se and browse the website.

Keep updated

Update the code base, the external packages and publish locally.

$ make update

Develop and test locally

Make changes in your repo, publish using make local-publish and reload your browser.

# Do changes and then publish them locally.
$ make local-publish

# Clear the cache when publishing
$ make local-publish-clear

Install all submodules

Some content is available in external submodules. To install them, where you have the properties to do so, do like this.

$ make submodule-init local-publish

To keep updated, including all submodules.

$ make update-all

Recreate all symbolic links using -r

This might be useful on Windows when using WSL bash and storing the files in the Windows filesystem and using docker with mounted volumes. The script recreates all symbolic links using the -r flag.

# Go to the root of the repo
for f in $( find content -type l ); do
    l=$( readlink -f "$f" )
    unlink "$f"
    ln -srf "$l" "$f"
    echo "$f -> $l"
done

Setup the production environment

This is a sample production environment.

# Get the source to git/dbwebb.se
git clone [email protected]:dbwebb-se/website.git dbwebb.se
cd dbwebb.se
composer install

# Setup the mirror at htdoc/dbwebb.se
make site-build
make local-publish

# Create the virtual host for http
make virtual-host

# Create the certs
make ssl-cert-create

# Create the virtual host for https
make virtual-host-https

Add crontab.

30   6,12,18 * * * MAILTO=""; cd $HOME/git/dbwebb.se; git pull && bash -cl "make update-all" &> /dev/null
 .                                                             
..:  Copyright (c) 2012 - 2021 Mikael Roos, [email protected]   

website's People

Contributors

abberadhi avatar andreasarne avatar arwebse avatar bjorn97 avatar dennisskoko avatar emilfolino avatar epkmagr avatar jesperjohnsson avatar karlcomse avatar lakuapik avatar lewenhagen avatar litemerafrukt avatar livila avatar mabn17 avatar magnusgreiff avatar martingranstad avatar mope18 avatar mosbth avatar niklasaurora avatar ocpu avatar palkess avatar pejg12 avatar pereriksson avatar richardnilssonsma avatar schanihbg avatar scriptcoded avatar sonnerberg avatar spacelenore avatar thulin82 avatar zero2k avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Olika kursmapp sökvägar?

I instruktionerna till uppgifterna kopierar vi från tidagre moment och från example. Finns det någon anledning varför vissa kommandon ska utföras i me mappen och andra i kursmappen? Bara lite fundersam.

Databas, kmom 03, "Skapa ER-modell för en databas": Förtydligande om händelser

Jag har läst igenom instruktionerna och tittat på videon för kmom03, "Skapa ER-modell för en databas": https://github.com/dbwebb-se/website/blob/master/content/uppgift/1126_skapa-er-modell-for-en-databas-konceptuell.md

Jag är fortfarande inte riktigt säker på vad man ska göra för det här: "Det skall finnas en logg där man kan se viktiga händelser i systemet, vad hände, när hände det. Det kan till exempel vara när order/faktura skapades eller raderades.". Är det upp till en själv att bestämma vad det ska vara för händelser? Så kan jag till exempel säga själv att "jag begränsar 'händelser' till att handla bara om ordrar"? Jag trodde först att det skulle framgå från projektbeskrivningarna vad "händelse"-delen ska vara mer konkret, men jag hittade inget närmare om det.

Gravatar är http istället för https

När jag är inne på dbwebb.se/forum finns min gravatar uppe i hörnet, men den går över http istället för https så jag får en konstant varning om att sidan bara är partially encrypted.

Jag provade att lägga till ett s i adressen och den funkar fortfarande, så det borde vara lätt att uppdatera om jag bara kunde hitta forumkoden...

Exempelfil som fungerar med https:
https://www.gravatar.com/avatar/f902f74bd5a291d33ba4eac7845b52dc?r=pg&s=40&d=wavatar

Lyckas inte klona website-repot längre.

Jag lyckas inte få igång min klon av dbwebb.se längre. Hur går jag vidare härifrån?

Jag har, mig veteligen, installerat alla dependencies i min utvecklingsmiljö.

Jag har en aktuell fork på Github pejg12/website (klonen och upstream har båda 580 commits).

Jag hade en fungerande version tidigare. När den blev utdaterad valde jag att ta bort min fork från Github, samt ta bort mappen website som innehöll Github-klonen (den som skapas när man skriver git clone).

Sen följde jag följande steg:

$ git clone [email protected]:pejg12/website.git
$ cd website
$ make etc-hosts
$ make virtual-host
$ make update

Den sistnämnda verkar skicka en lista med alla inkluderade filer till stdout och sen kommer detta felmeddelandet:

# Make soma parts writable
# https://dbwebb.se/repo/htmlphp/example/pdo-sqlite/
chmod 777 /home/pi/htdocs/dbwebb.se/htdocs/repo/htmlphp/example/pdo-sqlite/db/
chmod: cannot access ‘/home/pi/htdocs/dbwebb.se/htdocs/repo/htmlphp/example/pdo-sqlite/db/’: No such file or directory
Makefile:80: recipe for target 'local-publish' failed
make: *** [local-publish] Error 1

Min analys av det är att mapparna under htdocs/dbwebb.se/htdocs/repo/ är tomma. Det finns en mapp per repo men inget innehåll i någon av dem.

~/htdocs/dbwebb.se/htdocs/repo $ ls -sR
.:
total 52
4 design  4 htmlphp  4 htmlphp-me  4 javascript  4 javascript1  4 linux  4 oophp  4 oopython  4 phpmvc  4 python  4 slides  4 webapp  4 webgl

./design:
total 0

./htmlphp:
total 0

./htmlphp-me:
total 0

./javascript:
total 0

./javascript1:
total 0

./linux:
total 0

./oophp:
total 0

./oopython:
total 0

./phpmvc:
total 0

./python:
total 0

./slides:
total 0

./webapp:
total 0

./webgl:
total 0

Site is down

Not sure if maintenance or something else, but dbwebb.se in unaccessible at the moment.

Korrekturläst webapp-v2

Det finns många återkommande skrivproblem i den nyskapade kursen webapp-v2. Istället för att bara rätta felen i smyg så har jag här sammanställt de problem jag har hittat, för att på så sätt försöka undvika samma problem i framtida artiklar. Jag planerar att rätta nedanstående problem själv under sommaren (2017).

För att hitta de återkommande skrivfelen har jag läst igenom relevanta artiklar i content/kurser/webapp-v2/ och content/uppgift/. Det finns även många relevanta artiklar i content/kunskap/ men jag tror inte att det finns så många nya skrivfel där. Genom att använda sig av nedan tabeller och grep så kan man nog rätta till det mesta även i kunskapsartiklarna utan att lusläsa dem.

Versaler och gemener

Jag har besökt varje projekts webbsida och tagit reda på hur de själva väljer att skriva sitt varumärke.

Nuvarande Förslag
Dbwebb dbwebb
mithril Mithril
cordova Cordova
android Android
Github GitHub

Förkortningar och grammatiska skiljetecken

När jag korrekturläste artiklar skrivna för webapp-v2 upptäckte jag att vissa saker skrevs väldigt inkonsekvent, till exempel API och api. För att kunna välja en gemensam lösning sökte jag råd bland TT:s skrivregler.

En del förkortningar har med tiden blivit självständiga ord i svenskan och dessa skriver vi gement: cd, cd-rom, id-kort, pc, pm, sms, tv.

I några fall är små bokstäver att föredra därför att besläktade ord brukar skrivas gement. Det gäller särskilt tekniska termer: adsl, dab-radio, dvd, md (mini disc), gps, gprs, mms, mp3, sim-kort, vhs, wap. Dock skriver vi IT och 3G med versaler.

När en förkortning ingår i sammansatt ord sätts vanligen bindestreck mellan leden: IT-kommission, mc-polis, digital-tv-box. Om förkortningen inte läses bokstav för bokstav utan som ett vanligt ord kan man ofta slopa bindestrecket: Natostyrka, Ikeasoffa.

Bestämd form av initialförkortning skrivs med kolon före ändelsen: tv:n, vd:n. Samma sak gäller vid genitivändelse till förkortningar som uttalas bokstav för bokstav: FN:s, USA:s, SKF:s. Till förkortningar som uttalas som ord fogas genitivändelsen utan kolon: Natos, Sidas.

Nuvarande Förslag
API't api:t
api't api:t
API'er api:er
API:er api:er
api'er api:er
REM api:t REM-api:t
REM api't REM-api:t
JSON API'er JSON-api:er
json api JSON-api
JSON fil JSON-fil
JSON filer JSON-filer
JSON data JSON-data
github repo GitHub-repo
github vy GitHub-vy
Github api't GitHub-api:t
plugin:et pluginet
browser:n browsern

Särskrivning

Vissa ord sätts samman med bindestreck, andra sätts bara ihop rakt av, och vissa sätts ihop genom att ta bort eller förändra bokstäver. Här har jag bara gått efter känsla och ändrat till det som "känns rätt" enligt min erfarenhet.

Nuvarande Förslag
javascript ramverket javascript-ramverket
API dokumentationen api-dokumentationen
GET anrop GET-anrop
HTTP anrop HTTP-anrop
android emulator Android-emulator
cordova appen Cordova-appen
HTTP requesten HTTP-requesten
hybrid appar hybridappar
desktop miljöer desktopmiljöer
Nobel app Nobelapp
Nobel festen Nobelfesten
års vy årsvy
mithril komponenter Mithrilkomponenter
mithril funktionen mithrilfunktionen
grid system gridsystem
cordova projekt Cordovaprojekt
mithril projekt Mithrilprojekt
Gomoku server Gomokuserver
Gomoku klient Gomokuklient
vinkällare app vinkällarapp
värd dator värddator
Android appar Androidappar
android emulatorn Androidemulatorn
system variabeln systemvariabeln
design val designval
meapp me-app

Tryckfel och stavfel

På några få ställen hittade jag vanliga tryckfel. Jag hittade även direkta grammatiska fel, såsom valet mellan en/ett.

Nuvarande Förslag
jobabr jobbar
Ett mobilanpassad Ett mobilanpassat
mobilanpassad formulär mobilanpassat formulär
dashboardet dashboarden
ditt dashboard din dashboard
använderen användaren
användar använder
autensiera autentisera
5 stycken widgets fem (5) widgets
pluginen pluginet
ett cheatsheets om ett cheatsheet som
LEGO byggsätt samling LEGO-byggsetsamling
CRUD-functions CRUD-funktioner
även hittar med info även hitta mer info

Blå rutor som ingen läser

Viktig information läggs för tillfället i blå rutor, men pga designen är det ingen som läser de blå rutorna.

Ett förslag är att inte omsluta rutorna med en border. Om de smälter in bättre i brödtexten är det större sannolikhet att de uppmärksammas. Kanske kan de skiljas från brödtexten med bara border-left och margin-left. Eller bara en rubrik. Eller kanske med en varningssymbol. Kanske är det bättre att välja en varningsfärg som röd istället för diskret blå.

Informationen i de blå rutorna kan också i vissa fall flyttas till en bättre plats i texten. Exempelvis handlar den blå rutan högst upp i http://dbwebb.se/kunskap/labbmiljo-for-javascript-i-webblasaren om att den här artikeln kanske inte borde läsas över huvud taget. Sådan information borde presenteras allra högst upp i artikeln, likt Wikipedias hänvisning till relaterade artiklar (som "För andra betydelser, se ..." https://sv.wikipedia.org/wiki/Bamse )

Build path issue

It seems the cache has been built using local paths for some images. Is it possible to have it rebuilt?

Screenshot 2022-12-02 at 15 10 02

python kmom06: problem med symbolisk länk i cygwin

https://dbwebb.se/kunskap/anvand-externa-moduler-i-python-for-att-hamta-information-pa-webben#cli

Uppgiften är att kunna köra kommandot mynameis istället för ./mynameis.py men det fungerar inte som tänkt i Cygwin eftersom ln -s mynameis.py mynameis ändå inte gör ./mynameis (utan filändelse) körbar.

Stackoverflow finns lösningen att skriva export CYGWIN="winsymlinks:nativestrict" för att få rätt sorts symboliska länkar, men jag kan inte testa det i min miljö* för att se om det fungerar.

* Windows 10 i en VirtualBox med filerna i en Shared Folder... cmd hävdar "The device does not support symbolic links". Om jag gör den symboliska länken i linux så fungerar resten av guiden i min virtuella Windows, men har man en riktig Windows kan man ju inte göra så.

FOEM - Frequently Occurring Error Messages

Skapa ett dokument med möjlighet för att söka antingen Ctrl-f eller via ett sökfält med filtrering.

Tanken är felmeddelande -> lösning.

Exempel:

dbwebb-cli

FAILED Not a valid combination #{länkning}

BTHMAC0169:python efo$ dbwebb create lab1 find: me: No such file or directory FAILED Not a valid combination of 'python' and 'lab1'.

Kontrollera först att du har stavat rätt på labben eller examinationen du försöker skapa.

Om du har stavat rätt är det för att katalogen som labben eller examinationen ska skapas i inte finns. Detta kan åtgärdas med dbwebb init

pylint

Simplifiable if-statement

Då du har en return i förstadelen av din if-sats kan detta förenklas från:

if something: return "42" else: return "27"
till

`
if something:
return "42"

return "27"
`

Wrong link in article.

In this article below 'Förutsättningar' it says “Lagra innehåll i databas för webbsidor och bloggposter (v2)” but links to "Kom igång med PHP PDO och MySQL (v2)".

make install-fresh felar vid apachectl configtest

Jag klonade repot på en "ny" maskin (har haft repot där förut men rensade bort alla filer) och fick problem när jag körde

$ make install-fresh

Felmeddelandet:

sudo apachectl configtest
apache2: Syntax error on line 228 of /etc/apache2/apache2.conf: Syntax error on line 33 of /etc/apache2/sites-enabled/dbwebb.se.conf: Could not open configuration file /home/pi/htdocs/dbwebb.se/config/apache-redirects: No such file or directory

Problemet är att filen ~/htdocs/dbwebb.se/config/apache-redirects inte existerar än. Innan man kan köra make virtual-host (som ingår i install-fresh) på en helt ny installation så behöver filen apache-redirects publiceras för att apachectl configtest ska funka.

Jag kom runt problemet genom att köra make local-publish men fick ett felmeddelande där som indikerar att det kanske inte är helt rätt väg att gå.

rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
Makefile: 100: recipe for target 'local-publish' failed
make: *** [local-publish] Error 23

Jag såg inga "previous errors" och har inte märkt av att det påverkat något.

MVC, kmom2 - Dia verkar inte fungera på Mac

huvudsidan för kmom2 rekommenderas att använda programmet Dia. Men när jag laddade ner deras Mac-version så visade det sig att den är från 2013. Trots att jag har senaste versionen av XQuartz, som Dia tydligen använder, så kan jag inte starta upp programmet. Det enda som sker är att XQuartz startas, varpå Dia verkar försöka starta, men sen får jag ett felmeddelande eller så sker inget alls.

Tittar man på Dias repos OSX-mapp kan man se också där att inget skett på 7+ år. Tyvärr verkar det som att det inte funnits volontärer som kunnat hålla programmet uppdaterat för OSX.

Det kan vara lämpligt att avråda Mac-användare från att använda Dia, om ingen rapporterar att det funkar bra för dem.

Försvunnen fil i [Koppla upp sig mot en databas] instruktion

Försökte tanka hem filen som var länkad här, men den kan inte hittas.:
wget -O jetty.sqlite https://github.com/mosbth/htmlphp/blob/master/example/sqlite/jetty.sqlite?raw=true

Länk till README: https://github.com/dbwebb-se/website/blob/master/content/kunskap/206_en-kommandoradsklient-for-sqlite.md

Tog mig ett tag att inse att filen som laddades ner var tom, och försökte att ladda ner den från Github och insåg då att den inte existerade.

Klona jsramverk

Hey! Jag får ett felmeddelande när jag kör dbwebb clone jsramverk

jsramverk

Lär dig programmera

Tankar och idéer om utvecklingsarbete för delen lär dig programmera med dbwebb.

  • Det behövs en bra sökfunktion (vilket vi saknat sen dbwebb uppdaterades 2016).
  • Lägg in lådor för Python (kan inte förstå att jag lyckades glömma det...).

Pythonlabbarna säger att det både finns och inte finns extrauppgifter

Precis ovanför kraven står det:

Sedan finns extra uppgifter du kan utföra om du så väljer. [Varför skall jag göra extrauppgiftena](kurser/faq/varfor-gora-extra-uppgifter)?

Sen, under sin egen rubrik, står det:

Extrauppgift {#extra}
-----------------------

Det finns ingen extra uppgift.

Jag skulle kunna flytta texten precis som den är, men jag tycker den borde formuleras annorlunda när den ligger under en helt egen rubrik istället.

Det gäller uppgifterna:

  • 1081_python-med-varden-och-variabler.md
  • 136_python-med-villkor-och-loopar.md
  • 140_python-med-funktioner.md
  • 1082_python-listor.md
  • 138_python-med-dictionaries-och-tupler.md

fel asciinema länk, linux kmom05 mazerunner loop

I kraven för uppgiften att skapa mazerunner ska det finnas två asciinemas som visar hur det färdiga resultatet förväntas vara, men artikeln visar den första filmen två gånger istället för två olika filmer.

Jag skulle ha fixat problemet själv om jag bara visste hur man hittade rätt "src" så att det passar in i den nuvarande koden...

Källkoden: ./mazerunner loop
[ASCIINEMA src=1voz3ecbgsbu5dytp9sz5n2kb] (rad 148)
Borde länka till: https://asciinema.org/a/23368

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.