Tutorial by Examples: g

An unsigned JWT has the header value alg: none and an empty JWS (signature) component: eyJhbGciOiJub25lIn0 .eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ . The trailing dot indicates that the signature is empty. Header { "alg": &q...
A signed JWT includes a Base64 Url Safe encoded signature as the third component. The algorithm used to generate the signature is indicated in the header. eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 .eyJzdWIiOiJKb2huIERvZSIsImFkbWluIjp0cnVlLCJpYXQiOjE0NzAzNTM5OTQsImV4cCI6MTQ3MDM1NzYyNywianRpIjoiNmU0MDRiY...
Using the Package Manager JDK and/or JRE releases for OpenJDK or Oracle can be installed using the package manager on most mainstream Linux distribution. (The choices that are available to you will depend on the distro.) As a general rule, the procedure is to open terminal window and run the comm...
The term responsive web design was first coined by Ethan Marcotte in his famous article Responsive Web Design, published in 2010 in A List Apart. This Smashing Magazine article by Kayla Knight describes it as follows: Responsive Web design is the approach that suggests that design and developme...
Let's assume you have a file lyrics.txt which contains the following data: summer has come and passed the innocent can never last wake me up when september ends Read the entire file at a time By using file:read_file(File), you can read the entire file. It's an atomic operation: 1> file:re...
Write one line at a time Open a file with write mode and use io:format/2: 1> {ok, S} = file:open("fruit_count.txt", [write]). {ok,<0.57.0>} 2> io:format(S, "~s~n", ["Mango 5"]). ok 3> io:format(S, "~s~n", ["Olive 12"]). ok 4&gt...
Only Oracle JDKs and JREs are available for Windows platforms. The installation procedure is straight-forward: Visit the Oracle Java Downloads page: Click on either the JDK button, the JRE button or the Server JRE button. Note that to develop using Java you need JDK. To know the difference betw...
Oracle Java 7 and Java 8 Java 7 and Java 8 for macOS are available from Oracle. This Oracle page answers a lot of questions about Java for Mac. Note that Java 7 prior to 7u25 have been disabled by Apple for security reasons. In general, Oracle Java (Version 7 and later) requires an Intel-based Mac...
Sometimes you may need to convert a Set to an array, for example to be able to use Array.prototype methods like .filter(). In order to do so, use Array.from() or destructuring-assignment: var mySet = new Set([1, 2, 3, 4]); //use Array.from const myArray = Array.from(mySet); //use destructuring-a...
You can use a simple for-of loop to iterate a Set: const mySet = new Set([1, 2, 3]); for (const value of mySet) { console.log(value); // logs 1, 2 and 3 } When iterating over a set, it will always return values in the order they were first added to the set. For example: const set = new S...
Suppose you have a pojo class Person public class Person { public String name; public Person(String name) { this.name = name; } } And you want to parse it into a JSON array or a map of Person objects. Due to type erasure you cannot construct classes of List<Person&g...
If we have a file called Business.hs, we can define a Business module that can be import-ed, like so: module Business ( Person (..), -- ^ Export the Person type and all its constructors and field names employees -- ^ Export the employees function ) where -- begin types, function defin...
To export the type and all its constructors, one must use the following syntax: module X (Person (..)) where So, for the following top-level definitions in a file called People.hs: data Person = Friend String | Foe deriving (Show, Eq, Ord) isFoe Foe = True isFoe _ = False This module d...
Haskell supports importing a subset of items from a module. import qualified Data.Stream (map) as D would only import map from Data.Stream, and calls to this function would require D.: D.map odd [1..] otherwise the compiler will try to use Prelude's map function.
Prelude often defines functions whose names are used elsewhere. Not hiding such imports (or using qualified imports where clashes occur) will cause compilation errors. Data.Stream defines functions named map, head and tail which normally clashes with those defined in Prelude. We can hide those impo...
When multiple modules define the same functions by name, the compiler will complain. In such cases (or to improve readability), we can use a qualified import: import qualified Data.Stream as D Now we can prevent ambiguity compiler errors when we use map, which is defined in Prelude and Data.Stre...
zip takes two lists and returns a list of corresponding pairs: zip [] _ = [] zip _ [] = [] zip (a:as) (b:bs) = (a,b) : zip as bs > zip [1,3,5] [2,4,6] > [(1,2),(3,4),(5,6)] Zipping two lists with a function: zipWith f [] _ = [] zipWith f _ [] =...
C99 Macros with variadic args: Let's say you want to create some print-macro for debugging your code, let's take this macro as an example: #define debug_print(msg) printf("%s:%d %s", __FILE__, __LINE__, msg) Some examples of usage: The function somefunc() returns -1 if failed and 0 ...
debug() and debugonce() won't work well in the context of most Shiny debugging. However, browser() statements inserted in critical places can give you a lot of insight into how your Shiny code is (not) working. See also: Debugging using browser() Showcase mode Showcase mode displays your app alo...
Drawing to canvas isn't just limited to shapes and images. You can also draw text to the canvas. To draw text on the canvas, get a reference to the canvas and then call the fillText method on the context. var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.fill...

Page 382 of 693