Code Monkey home page Code Monkey logo

webfundamentals's Introduction

Web Fundamentals

DOI

This repository contains the slides for the Web Fundamentals module of the Ghent University course Web Development.
View the slides online.

Questions, feedback and suggestions welcome!

Please read and accept the contributor agreement before contributing.

Finding your way around

This repository contains:

How to start

A typical starting point would be to open up any index.html file, either in the root folder or any of the subfolders. This allows you to edit the contents of the corresponding slidedeck.

The slides themselves are regular HTML files, brought to life with the Shower presentation engine. They use the Clear template with a few customizations in _shared/styles/web-fundamentals.css.

You can just open the slides in your browser. from the local filesystem while editing. Alternatively, you can install gulp and run the gulp command in the root folder, which will autorefresh your browser upon changes.

License

Except where otherwise noted, the content of these slides is licensed under a Creative Commons Attribution 4.0 International License.

webfundamentals's People

Contributors

abeforgit avatar autom3 avatar bertguillemyn avatar bramcomyn avatar ddieter avatar dieterdepaepe avatar iwijn avatar jan-pieterbaert avatar jotra04 avatar klaasg avatar lars-vc avatar laurensdeb avatar m1dgard avatar maartendesnouck avatar manudebuck avatar mathijsvn avatar nielsdos avatar nislim avatar pietercolpaert avatar robbe0x00 avatar rubensworks avatar rubenverborgh avatar ruvmello avatar smessie avatar stijndcl avatar sudo-rm-rf-star avatar themessik avatar thepieterdc avatar tibovanheule avatar tomayac avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

webfundamentals's Issues

Example SPARQL queries in The Semantic Web & Linked Data should return data

I am not 100% sure if it is a "bug" or desired behavior, but it seems strange that the example query would return no results (see screenshot):

image

Also, the previous two query examples return either no results or just the schema URIs. Seems strange, since examples should return something and also the query seems like there should be hits.

Although, "manually" checking
http://fragments.dbpedia.org/2016-04/en?subject=&predicate=&object=http%3A%2F%2Fdbpedia.org%2Fresource%2FPablo_Picaso
There is only one relation pointing to Pablo Picaso (and not being influencedBy), so I guess the results are as expected?

Anyway, I would suggest the examples be such, that they return data; that would be more informative for studying, IMO.

Niet-intuitieve structuur van de repo

De 'Finding your way around' sectie is handig maar ik vind het handiger als ik naar de bestanden kijk en het direct snap. Vb 'architecture' en 'scripts', welke map is inhoud en welke is functioneel? Mogelijk oplossing daarvoor is volgens mij de bestandsstructuur om te keren en bv in de root de mappen 'slideshtml', 'images', 'scripts', ... te hebben en dan in die mappen onderverdelingen te maken per hoofdstuk. Of... en dit is minder werk: een map 'slides' in de root directory met daarin 'architecture', 'birds-eye-view',...

Add table of contents

To quickly navigate to a specific chapter, this would be a massive help. Now you have to click through all “Next topic” links to get to the last chapter. It would also give a better feeling of where you are in the slides.

Related to #11.

Differentiate external and internal links

Many of the links in the slides refer to other slides, while a few refer to external pages.
As a learner, I'm more interested in external pages than internal pages (since I'll encounter those anyway, being the avid reader that I am). It would handy to easily see which links are external and which are not.

Suggestion why PUT and DELETE are not supported in HTML forms [practicum 1 - Web APIs]

A lot of students are confused when they want to implement PUT/DELETE operations in their Web application, because they started with HTML forms for POST operations and expect the same thing for the other operations. Some get around this by using hidden fields or other work-arounds, which is not a proper solution. (https://softwareengineering.stackexchange.com/questions/114156/why-are-there-are-no-put-and-delete-methods-on-html-forms)

Solution: in the assignment a paragraph can be added to suggest they should use Javascript for this

Ctrl + C hides content of slides

When attempting to copy text to clipboard in the slides using Ctrl + C, all classes "no-next" are replace by "next", which has visibility : "hidden", not only preventing the copy, but also hiding all content on all slides.

Voldoet JSON aan REST constraints?

De vraag hoort voornamelijk bij deze slide:
http://rubenverborgh.github.io/WebFundamentals/web-apis/#web-hateoas

In het hoofdstuk over web api's worden de constraints besproken om aan een unfiforme interface te voldoen. O.a. verschillende representaties en hypermedia zijn er 2 van. Verschillende representaties kunnen dus JSON en html zijn. Verder wordt er ook gezegd dat hypermedia bestaat uit o.a. links en dan worden 2 voorbeelden gegeven van links:

<em>http://perdu.com/</em> (geen link)
<a href="http://perdu.com/">Perdu</a> (wel een link)

Nu maak ik hier uit op dat men dus enkel over links spreekt indien men er op kan klikken en dus niet indien ze bv in plaintext staan.

Mijn vraag is of er dan wel kan gezegd worden dat een resource in JSON voldoet aan de REST constraints, aangezien de links die hier worden meegestuurd altijd in string notatie zijn en ze dus ook niet clickable zijn waardoor er dus niet voldaan is aan de constraint van hypermedia.
Alvast bedankt.

SVG objects broken in Chrome

For #29, we switched to <object> embeddings of SVG images, given that external fonts are not loaded when SVGs are embedded as <img>. Unfortunately, this is now broken in Chrome.

Cross-site scripting examples should be explained better

I had the feeling that the cross-site scripting examples were too short to be understood. Perhaps after this introductory slide on cross-site scripting, each example deserves it own slide. Especially the reason why origin protection does not help, should be explained.

Students should be able to answer the question: why does origin protection not prevent cross-site scripting?

Confusing example

In the Linked Data Publishing Section, specifically following slides: 1 2 3 4 (Static blob).

The mapping from

{ "Performance" :
  { "Perf_ID": "567",
    "Venue": { "Name": "Vooruit", "Venue_ID": "78" },
    "Location": { "longitude": "3.725379", "latitude": "51.0477644" } },
}

to

<http://ex.com/venues/78>
    geo:long 3.725379;
    geo:lat 51.0477644.

<http://ex.com/venues/91>
    geo:long 3.728515;
    geo:lat 51.056008.

is made.

This is a decent example to demonstrate the flexibility and power of RML, but might be a bit confusing in demonstrating it's concepts and goals, since the original and new data model are different1. If this is intentional, a footnote might be in it's place.

1: The original data model seems 'wrong' as to not include the geolocation attributes as part of the venue; it includes them in the performance itself.

youtube videos don't stop

Youtube video kept running when going to different slide, since it had many windows open it was not clear which one I had to close to terminate the video.

Rethink “Linked Data on the Web”

Currently, the Linked Data on the Web section is rather technical. Perhaps it should make Linked Data more tangible by showing how the major players use it.

We should probably first focus on the content level before going to the structural level, i.e., first show the data out there and then explain the elementary buildling blocks of which it consists. Then, the link with RDF etc. should be explained; preferably without mentioning RDF too early on. (We could initially talk about “Linked Data as JSON-LD”, only to get to RDF later.)

Once RDF is introduced, we might point to examples such as Facebook, recipes, and Gmail's usage of JSON-LD. In addition, it should be detailed why different RDF formats are needed (see #20).

Use a different symbol for opinions

The current red 'warning sign' icon tends to give the impression that this item is a super important point, rather than an opinion. Assuming that wasn't intentional, it might be better to use a different icon (for example, a question mark).

Semantic Web: Add info about RDFa

Because RDFa is currently preferred by Google over JSON-LD as a way to add (schema.org) metadata to existing (X)HTML pages (source), I think it might be useful to add a (or a few) slides about RDFa and how to use it (for example how to get a rich snippet for a product page).

Canvas display bug in Firefox

Affected browser: Firefox
How to reproduce: In the Semantic Web presentation, start at outline mode and open any slide before the slides that have canvas graphics (these start from slide 13 onwards) and navigate to the slide with canvas graphics using the ↓ key. The canvas graphics are distorted and displayed in the top left corner of the slide, with only a small part being visible. Note: canvas is displayed correctly if I navigate directly to these slides by clicking them in outline mode.

screenshot

Semantic Web: add information about ontologies such as FOAF

One thing I found confusing while I was studying this course was that in the Semantic Web chapter prefixes such as 'foaf' are used quite a lot but it is (as far as I remember) never explained what they are referring to. Maybe this information could be added to the chapter?

Assign unique identifiers to all slides

Some slides are currently autonumbered. For persistent links, they should all have an id.
In other words, go from

<div class="slide">

to

<div class="slide" id="slide-topic">

I already did this for the architecture slides in 8f5aec3.

Make it easy to navigate

Due to the many links it could be possible that you accidently skip part of a lecture. Maybe it would be good to have a small window to mark your progress: page number, % explored,... (not always evident if people would explore the slides in a nonlinear way)

The Web includes non-Internet resources like files and local routers

<li>nothing—by definition</li>

I know this is a minor point, but the Web protocols were specifically designed to encompass the space of Internet resources (accessible to everyone) and private resources (auth required) and local resources (things that are only defined in relation to the local user, like local file URLs and local router identifiers). The Internet itself doesn't work without them, but the Web does, which is why all local wifi services start with a non-encrypted HTTP request to obtain the instructions necessary to use the local network for access to the larger Internet.

BTW, nice slides!

Add HTTP/3

Find better (door) picture to explain affordance.

When showing the slide with the doors, I ask students whether the door opens inward or outward. The purpose of this question is that they reason about affordance: does this handle afford pulling or pushing?

Funnily, all students answered “inward, because it is an outside door”, which kind of voided my point 😄 So we should find a better picture.

Can be something other than a door, too!

Disable builds by default.

Only when actually presenting the slides, it makes sense for items to appear one by one. For all other purposes (especially studying), it is easier to just see everything at once on a slide.

Build should be disabled by default; a button or keypress activates them.

FAIR Data

FAIR Data is a topic that needs to be touched I think. In Life Sciences this is more familiar than the term Linked Data although the definitions are quite close. It would be great to give some context on how they compare / differ!

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.