• 1 byte = 8 bit (binary digit) = 28 = values 0-255 (octet, previous name, no longer in use) - ASCII WP
• memory - RAM (random access memory) (howstuffworks.com) - addresses and values at those addresses - virtual memory - dynamic data structures - stack - heap (available through the functions malloc and free, allowing to allocate memory exactly, instead of pre-allocating it with a specifically-sized array declaration (howstuffworks.com)
• Terminal commands - mac-cheatsheet excerpt:
cd // Home directory, rood of drive
use also CS50 Terminal
cd (folder) // change directory
cd- // previous directory
command K // clears screen
ctrl L // also: $ clear - scrolls screen - bottom line up
• gcc WP - GNU Compiler Collection (originally GNU C Compiler)
gcc --version
• Homebrew (package management software) WP - brew.sh
brew --version
• hello world - hello.c - $ make hello - $ ./hello - $ cc hello.c - $ ./a.out - notice that ./hello and ./a.out are different results of make hello and cc hello.c, change text and check the difference
• pointers (howstuffworks.com) - any number of pointers can point to the same address
int i;
avoid bugs through uninitialized pointers not pointing to a location
int *p, *q, *r;
p = &i; // & is called the address operator
q = &i;
r = p;
• C Reference Card (ANSI - American National Standards Institute) PDF
• keywords: cppreference.com
• German keyboard: ^ (shift) = ^ alt 6, / ^ 7, \ ^ alt 7, | alt 7, {} alt 8-9, []/ alt 5-6, bitwise exclusive OR operator (xor) = ^
• Mac show hidden files
defaults write com.apple.finder AppleShowAllFiles YES
killall Finder
• check status, lists, Grub etc. (not rEFInd?)
csrutil status
//> System Integrity Protection status: disabled.
diskutil list
//> shows all devices and harddisk partitions
The C Programming Language 2nd Edition (ANSI C) - Brian W. Kernighan, Dennis M. Ritchie - 1988 (1st Edition 1978)
Preface - 6
Chapter 1 - A Tutorial Introduction - 9
Chapter 2 - Types, Operators and Expressions - 35
Chapter 3 - Control Flow - 50
Chapter 4 - Functions and Program Structure - 59
Chapter 5 - Pointers and Arrays - 78
Chapter 6 - Structures - 105
Chapter 7 - Input and Output - 124
Chapter 8 - The UNIX System Interface - 138
Appendix A - Reference Manual - 154
Appendix B - Standard Library - 199
Appendix C - Summary of Changes - 214-217
read more at C
Computer Systems: A Programmer's Perspective - 3/E (CS:APP3e) Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University - Amazon - Code Examples - GitHub
3 years of Computer Science in 8 minutes - YT - devoncrawford.io
p9 - programs executed in computer memory - people lack understanding of intricate relationship between program and memory - book about all fields involved in topic: operating systems, computer architechture, compilers, principles of programming languages, C and C++ programming - reader should have intermediate level of programming skills in C or C++ - interest not in memory as such, but as a concept and it's role in programming and behaviour of C and C++ programs - readers results: understand differences between compile/run-time and index range checking between C/C++ and Pascal - recursive/nonrecursive prodedure calls in C/C++ and Fortran - appreciate why Java garbage-collection and C/C++ not - C/C++ can't be interpreted like Java - C/C++ has pointers, Java not - all these aspects are related to memory and its use
p11 - ... - chapters content - ...
p16 - ... - high-level languages only invented for simpler programming -
I need to learn C programming in 20 days. What online video, lectures, or dedicated websites should I follow?
C Tutorial - tutorialspoint
cprogramming.com
CS50 video Introduction to Computer Science I - Harvard College - David J. Malan - 8:30 not only learn how to program but how to think more efficiently, write software or create hardware to save time - instead of counting add two people, change value from 1 to 2, one sits down, etc. - 399 pupils - 20:00 algorithm 30:00 400 students of this course last year: 43.6% no programming experience, 46.3% a little, 10.1% a lot - guys are not better than girls, but last years students 71% male 29% female
Basics: Bits, binary system 0 and 1 - like light bulb on off etc. - 123 is 1x100, 2x10, 3x1 - binary 128 64 32 16 8 4 2 1, examples - write 02138 in 5x8 bits=5 bites - comic 100 is 4 in bits - 0:38 ASCII Table (American Standard Code for Information Interchange) - how harddrives save data - 0:44 book: Absolute Beginners Guide to C - more advanced:
Programming in C -
How Computers Work - Hacker's Delight - 0:48 virtual machines on our computer - cs50.harvard.edu -
13:00 ASCII Table (American Standard Code for Information Interchange) - numbers, letters, symbols, RGB colors etc., audio, video 16:00 algorithm - phonebook torn 1/2 1/2 etc. - 24:00 turned in if/else statements (Bill Gates video) 26: loops (Mark Zuckerberg video: send Happy Birthday mail) - first time 1 billion people in one day used Facebook - Mark giving CS50 at Harvard - student took CS50, CS 51, CS 61 etc. - Yale CS 50 - 36:00 more comfortable, less, inbetween - problem sets - ...
Week 0 continued - 4:33 inputs, algorithms, outputs - phonebook example remembered - stand up, count participants, 392 instead of 490 (bug will be discussed) - 12:00 It's peanut butter jelly time!!! - Must be precise instructions - 28:00 Hello world in C - 3 games - 37:00 Scratch - scratched.gse.harvard.edu create game with prepared commands - boolean expressions, 0 1, false true etc. - conditions if, else if, else, repeat - variables, arrays, functions, threads, events (videos and games online to download) - Scratch examples - 57:00 create functions in Scratch - cool game :-) end Week 0 cont.
...
CS 50 - 1:50 first computer bug - In Scratch: statement (say: hello world!) - loop (repeat 10x) - boolean expression true/false (mouse down?) - conditions (if ... else) --- course in 3 sections, advanced inbetween beginners - 5:45 9 problem sets, 9 late days -
6:55 source code in C - hello.c:
#include <stdio.h> // standard io
Cloud9 c9.io account, later connect Github or Bitbucket and sign in with those - Github github.com/Feroniba - Running Your Code in c9.io
int main(void)
{
printf("hello, world\n");
} // printf is a function, takes input "hello world" and prints it
run hello.c - make hello
./hello
>>> hello, world
7:40 compiler - takes source code > compiler > produces object code > outputs 0 and 1, 00101011 10100100 etc., saves 0 and 1 - loop it infinite via (while true) - loop 10 times: for (int = 0; i < 10; i++) - variables:
int counter = 0
boolean expressions:
while (true)
{
printf("%i\n", counter);
counter++;
}
(x < y)
((x < y) && (y < z))
11:00 conditions: ... -
15:00 Cloud9 ubuntu c9.io environment is for all computers the same - cloud means computer outside or server - ide.c9.io/feroniba/cs50
17:30 explained hello.c - main is equivalent with when green flag clipped in Scratch - make hello is compiling the file - terminal is able to do more than grafical layout of Mac or PC is allowing
terminal:
make hello >>>
make: 'hello' is up to date.
./hello >>>
hello, world
enter in terminal:
clang hello.c (for C language, used by compiler to compile the code) - nothing seems to happen, but this means in this Linux environment that something is happening without error
Now enter for first program which is compiled:
./a.out >>> hello, world
./hello program from earlier, reached with arrow up >>>
hello, world
commandline arguments:
clang -o hello hello.c (clang opens the program C like double-clicking on a program to open it, -o means output)
first do:
rm hello (remove) >>>
rm: remove regular file ‘hello’? - y (for yes) >>>
clang -o HELLO hello.c -
./hello >>>
bash: ./hello: No such file or directory -
./HELLO >>>
hello, world
easier is make hello
Now: rm hello etc.
Change program: hello, Feroniba (works only if saved! * at the beginning of the filename shows that it is not saved yet!)
make hello
./hello
hello, Feroniba
variables: we can store numbers, characters, words, phrases, names, images, sound files etc. - string is a sequence of characters, not numbers etc. - string s = "Hannah"; (; terminates the line) - printf("hello %s\n, s"); (, for multiple inputs) - errors: work top down through the errors, computers find many errors caused by other errors which are correctly written, no errors - 31:00 #include <cs50.h> - clear (terminal) - make hello - ./hello (. means the current directory)
GetString(); - then: FO >>> hello FO
33:30 load adder.c (from cs50 page)
38:00 // for one line comment --- /** for many lines, then start with * per line (obligatory) and end with */
more example files shown - conditions-0.c imprecision.c thadgavin.c
./imprecision why 1/10 is 0.1000005492... - because memory is limited - examples from rockets and war - 12:00 analyzing hello world - 13:00 #include <stdio.h> are functions etc. like printf - main is starting-function in many languages - {} encapsulate lines - printf prints formatted string of arguments in () - "hello, world\n" is a string - \n escape character - ; end of line or statement, not used on any line, only the end line etc., but after function or statement etc. - 17:00 used persons to demonstrate printf - new code:
#include <cs50.h>
C language understands types:
#include <stdio.h>
int main(void)
{
printf("state your name/n");
string s = GetString();
printf("hello, %\n", s);
}
bool (true/false)
char %c (letter or symbol of 8 bits)
double %f (%f as with a float - twice as big as a float)
float %f (floiting point value - 32 bit (= 4 bits, 8 bites = 1 bit) value, with decimal point - 2^32 = 4.294.967.296 (^ shift alt 6))
int %i (integer 32 bits = 4 bites - biggest ca. the number 4 billion)
long long %lld (long long decimal value - 64 bits - differs in different languages)
string %s (sequence of characters)
... (more types)
format codes:
24:30 escape sequences:
\n ( new line) \r \t (tab) \' \" (discriminates from ") \0 ...
functions:
GetChar GetDouble GetFloat GetInt GetLongLong GetString printf ... - all included in #include <cs50.h> cs50 library
conditions:
if (condition, is always a boolean expression) { // do this } - this is a sudo code or sudo (means: superuser do) - else if - else
27:00 boolean expressions:
if (condition || condition) {do this} -- (| = alt 7)
switches:
...
28:00 loops:
for (initializations; condition; updates)
{ // do this again and again }
for (int i = 0; i < 50; i++) /* int stands for initialization, jumps to printf before reading first i++, reads first i++ after printf and adds 1, then loops etc. without reading int again! */
{
printf("i\n", i); //
}
curly braces {} can be avoided if only one line of code command
35:00 - 8 bit means max. 255, if we add 1 it will be 1 0000 0000 - 1 will not be recognized, so instead it will be 0 - example Lego Star Wars - max. coins to collect are 4.000.000.000 - Civilization game: Gandhi agressiveness lowest, 1 out of 10, implementing democracy would put agr. levels down, Gandhi code was missing an if, so it became 0, then -1, could not be read, became 255 out of 10 - 38:00 Boeing 787 bug: ... 39:30 0/0 undefined - Apple Siri text: no coocies, no friends -
while loop:
while (condition)
{ // do this again and again }
do (condition)
{ // do this again and again }
while (condition);
Variables:
int counter;
counter = 0;
or:
int counter = 0;
functions:
string name = GetString();
printf("hello, %s\n", name);
42:30 PrintName - own written function included in cs50.h - abstaction or functional decomposition - lower level code (functions of a library etc.) and higher level code (using libraries)
44:30 GetPositiveInt(); - own written function - start with int instead of void - make function to compile it
example: return.c
49:30 Mario game - power shower :-)
Bugs - 1:30 better start counting from 0 than from 1 - examples of bugs, infinite loops, errors - study.cs50.net - 12:40 evaluation 1 poor 2 fair 3 good 4 better 5 best, scope x (correctness x 3 + design x 2 + style x 1) - more about CS50 students, percentages, schedules etc. - anti-stress rules and puppies etc.
20:00 functions - side effects, return values - design techniques if code gets more complicated - function-0.c from week 1 has 2 functions, main() and printName() - printName is composed, abstraction - 23:00 function-1.c GetPositiveInt() - in scope - 33:00 function cough() - string-0.c Zamyla - strlen (string length) - 42:00 override memory
45:30 typecasting - convert type into an other - ASCII (ascii) - ascii-0.c prints A-Z and a-z with ASCII numbers
48:30 header files: stdio.h cs50.h string.h ctype.h - reference.cs50.net shows functions of .h
Week 2, continued - Rob Bodin instead of Malan - memory - store 4 names - separate with \0 (takes only one bit?), distinct to 0
13:00 - arrays - string is array of characters - there are also other data formats - ages-0.c - always a better way instead copying pasting code inside the current code - array declaration: type name[size]; GetInt() from 4 people - each array-box has 4 bytes=32 bits ...
27:00 command-line arguments - int main(int argc, string argv[]) (argc argument count - argv[] argument vector, means array, [] shows it is an array) - cd pset1 (change directory) - make hello - mv mario.c .. (move) - clang -o hello hello.c - this are 4 arguments, 0-3 ...
36:30 - argv-1.c - ...
argv-2.c - ...
43:00 secret-key crypto - decrypt only with key - task: decrypt - end Week 2 cont.
Malan - not about code, but about ideas - algorythms - Find Mike Smith tearing phonebook in 1/2 etc. - 8:00 sort 26 letters A-Z with system - 7 doors to find number 50 in random numbers - order random 1-8 in the right order, switching every 2 next to another several times from left to right - bubble sort - selection sort - insertion sort
(n - 1) + (n - 2) + ... + 1
n(n - 1)/2
n2 - n)/2
n2/2 - n/2
If we want to sort 1,000,000 things:
1,000,0002/2 - 1,000,000/2
500,000,000,000 - 500,000
499,999,500,000
O(n2)
computer will care most about the biggest problem, n2 (big O for Order)
O(n log n)
O(n)
O(log n) - (dividing problem in halfs etc.)
O(1)
...
best case of insertion sort: 12345678 takes n steps O(n2)
Bubble sort also n2 steps - walk through n for n times is n*n=n2
Ω is the opposite of O - the lowest sort, while O is the highest
43:00 bubble sort demo - selection sort - insertion sort - merge sort - 45:00 then all in comparison - then gnome sort - end week 3
From the studio - Game of 15, solve by coding - O(n 2) - 3:15 code for dividing phonebook - change code into recursion
merge sort: 3 steps: sort left half, sort right half, merge - example - log n in computer science always means log2 n - log2 8 = 3 --- 8/2=4 4/2=2 2/2=1 makes 3 steps - running time of n log n - O(n log n) - better than n*n or n2 - 21:15 T(n) = O(1) (if n < 2 -- T stands for running time) - T(n) = T(n/2) + T(n/2) + O(n) if n >= 2 --- gives us O(n log n)
24:00 Obama and Google talk, answers with Bubble sort :-) - 25:00 clang, machine or object code, assembly code - assembly similar to C, main, printf, "hello, world\n" - source code > assembly code > object code - compiling source code > assembly code - assemble assembly code > object code - hello.c compile > hello.s assemble > hello.o - stdio.c compile > stdio.s assemble > stdio.o - linking object-code from hello.o and stdio.o - 30:00 everything is 0 and 1, written in 8 bits, didn't influence single bits yet - in C we can get access to individual bits
bitwise operators: & | ^ ˜ << >> 31:00 -
0 & 0 0 // & ampersand - and
0 & 1 0
1 & 0 0
1 & 1 1
0 | 0 0 // | or (alt 7)
0 | 1 1
1 | 0 1
1 | 1 1
0 ^ 0 0 // ^ carrot symbol (shift alt 6), exclusive or, ex or - means non different
0 ^ 1 1 // different
1 ^ 0 1 // different
1 ^ 1 0 // non different
˜0 1 // opposite
˜1 0
1 << 7 10000000 // left shift operator - shifts to left, fills with 0
Volkswagen VW in trouble because of software - 8:30 How can programs hack phones or computers - Ken Thompson won prize - 13:00 instead of go to say something else - recursion - function foo is recursive if foo calls foo itself
15:45 sigma-0.c - enter 3 - sigma adds + 2 + 1 + 0 and stops
24:00 Google search recursion - then: anagram - then: askew (schief) - then: do a barrel roll
26:30 swap variables:
void swap(int a, int b)
example: swapping two cups, orange juice with milk - then water with oil, oil swims on water -
{
int tmp = a;
a = b;
b = tmp;
} // water swap with orange juice
void swap(int a, int b)
noswap.c -
{
a = a ^ b; // ^ stands for ex or - exclusive or
b = a ^ b;
c = a ^ b;
} // water swap with oil - use 8 bit values for a and b, not 16 bit etc. not to get bored
#include <stdio.h>
Not swapping, still a is 1, b is 2 --- What is the flaw: add 2 lines for checking
void swap(int a, int b);
int main(void)
{
int x = 1;
int y = 2;
printf("x is %i\n", x);
printf("y is %i\n", y);
printf("Swapping...\n");
swap(x, y);
printf("Swapped!\n);
printf("x is %i\n", x);
printf("y is %i\n", y);
}
void swap(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
printf("a is %i\n", a); // after not swapping 2 lines added:
printf("b is %i\n", b); // 2nd line added
}
34:15 open Debugger tab: Debugger helps to find bugs without compiling and running etc. - See there Lokal Variables, Breakpoints (let program pause at a certain point to check results) and Call Stacks (shows what functions are currently called), main always first, then swap etc. on top like a tower of functions) - Line 5 click left, creates red dot, shows breakpoint - Debugger buttons: Play/Pause - Step Over (skip following) - Step Into - start line 5 red button, line 7 shows arrow and yellow line, step over shows x = 1 and then y = 2, temp 32767 because not initialized, Ram is always there in 0s and 1s, step over makes tmp to 1 - Call Stack changes between main and swap functions and shows different variables: a b or x y - because only a copy of swap is passed to main it doesn't effect main -
41:30 Scheme one on top of the other:
text
initialized data
uninitialized data
heap
stack
environment variables
explanation how memory is used for this scheme
compare-0.c
#include <cs50.h>
Typing same name shows: typed different names "mom" - explanation of bug: same name "mom" is stored twice under different byte-addresses as their starting nunber - these don't ==, therefore x and y in noswap.c don't swap or s t are not recognized as == --- \0 (as one character) ends mom as mom\0, computer knows by this way where name ends -
#include <stdio.h>
int main(void)
{
printf("Say something: ");
string s = GetString();
printf("Say something: ");
string t = GetString();
if (s == t) // == equality operator
{
printf("You typed the same thing!\n");
}
else
{
printf("You typed different things!\n");
}
}
conclusion: there is no such thing as string - we call it now char* instead of string - char* is called a pointer or an address -
In police-films etc. the word "enhance" - Hollywood demo - picture zoomed only shows pixels - 4:45 smiley face represented with a bit-map 8x8 pixels of black and white color - enhancement would be color, needs more bits or data - 6:00 JPEG includes algorythms for compression - jpg starts always with the first 3 bits 255 216 255, called the signature of a jpg, for computer .jpg - analysis technically: decimal 0-9, binary 0-1, hexadecimal 0-9 a-f -
255 =
1111 1111 or f f or written with prefix (means nothing) 0xff - instead of 8 bits 2x 4 bits
216 =
1101 1000 or d 8 or 0xd8
255 =
1111 1111 or f f or 0xff
hexadecimal 0 = 0000 -- 15 = 1111
10:40 - Vista picture, bit-map - similar codes for Excel etc.
12:15 struct - C is a small language, only a few things not mentioned yet - typical student values: name, age/birthday, ID or phone number (dorm house college)
13:00 student.c
#include <stdio.h>
18:00 structs-1.c explained - save inside the file - csv comma separated variables, like Excel file with rows and numbers - run structs-1 - created students.csv file with the 3 inserted names:
// structure representing a student
typedef struct
{
string name;
string dorm;
}
student;
Andi,Berkeley
Rob,Thayer
Maria,Mather
download students.csv and open in Excel, works - 25:30 Orga - string was created by cs50.h, instead of char* - compare-0.c asked for 2 inserts: mom mom should show "you typed same" but shows "you typed different things" - becaused first mom is stored in different location on computer and both have different memory bit-numbers - computer has to compare their first and second bit etc. until \0 - changed string to char* as a pointer in compare-1.c - s and t are now addresses, represented by * asterisks, technically pointers - 29:00 char* returns now the address of only the first character of the stored string - if (s != NULL && t != NULL) - Null makes shure that error is shown if something is wrong - strcmp is function: string compare - now compare-1.c working
31:00 copy-0.c draw pointers as arrows - have another copy, only change the copy - <ctype.h> - 42:50 square brackets [] do not really exist, they are just syntactic shugar
43:30 all this only explained because of
void swap(int s, int b)
Not working because of copies are not having an impact - solution:
{
int tmp = a;
a = b;
b = tmp;
}
45:30
void swap(int* a, int* b)
46:30 * needed to swap the content, not only the addresses - explaind with swapping milk and orange juice - 47:00 swap.c corrections: ... - pointers are the key to get all of C together
{
int tmp = *a;
*a = *b;
*b = tmp;
}
49:30 Pointers
... example + film
53::00 3 pointer rules:
1) Pointer and pointee are separate - don't forget to set up the pointee (that what is pointed at, programmers don't say pointee).
2) Dereference a pointer to access its pointee.
3) Assignment (=) between pointers makes them point to the same pointee. (also called sharing)
pointers continued - 8:00 CS50 library: GetChar GetDouble GetFloat GetInt GetLongLong GetString - scanf-0.c 9:00 &x (figure out address of x) is opposize of *x (go to address of x)
#include <stdio.h>
Repeat ./scanf-0 - enter: no - //> Thanks for the 0! etc. -
int main(void)
{
&int x; // int = 4 bites
printf("Number, please: ");
scanf("%i", &x); // takes format string like printf, i means int
// & means address of, value of x permanently changed
printf("Thanks for the %i!\n", x);
}
//> Number, please: 50 //< entered
//> Thanks for the 50!
11:51 scanf-1.c and scanf-2.c
#include <stdio.h>
int main(void)
{
char buffer[16]; // not: char* buffer; as in scanf-1.c
printf("String please: ");
scanf("%s", buffer);
printf("Thanks for the %s!\n", buffer); // not &buffer because char* is a pointer
}
Example SyntaxHighlighter - Test 1 - not a good result yet - will work it out later - flaws due to too many stylesheets, not synchronized :-)
#include <stdio.h> int main(void) { int x; // int = 4 bites printf("Number, please: "); scanf("%i", &x); // takes format string like printf, i means int - & means address of printf("Thanks for the %i!\n", x); }16:00 buffer explained - scanf-2.c enter: hello, world - answers: Thanks for the hello,! (why?) - enter: thisisalongsentence and /0=1bit for ending bit = 20 bit instead of 16 - answer: Segmentation fault (sometimes computer gives more bits, but not guaranteed) - could increase buffer, but wasteful, may cause slower performance of computer -
/* Adapted from
* http://valgrind.org/docs/manual/quick-start.html#quick-start.prepare.
*/
#include <stdlib.h>
void f(void)
{
int* x = malloc(10 * sizeof(int)); // points to x - 10*(4bytes)=40bytes
x[9] = 0; // // changed from previous x[10], should be 9, 10 is too big
free(x); // new line inserted
}
int main(void)
{
f();
return 0;
}
==1088== HEAP SUMMARY:
==1088== in use at exit: 0 bytes in 0 blocks
==1088== total heap usage: 1 allocs, 1 frees, 40 bytes allocated
==1088==
==1088== All heap blocks were freed -- no leaks are possible
36:00 arrays - let's solve a problem: - used in student.c etc. - bad about arrays: difficult to change the size of array - can move to another array and get more space, but not like Java or Python etc. where you could add to an array - here array size 6 (buffer of a certain size) - buffer too big wasts memory, too small can't store that data - 37:00 thanks to pointers we can start stitching together our own custom data structures - diagram for linked list, stitched together through pointers - int called n, pointer called next, stitched through a struct -
typedef struct
Now change it:
{
string name;
string house;
}
student;
typedef struct
Example with students on stage pointing and grounding 0 or null - 48:00 steck example with tablets - stacking numbers on top of another - cue not lifo (last in first out), but fifo (first in first out) - 52:00 Next lesson Week 5, continued: O(log n) and O(1) - end
{
int n;
struct node* next;
}
node;
From last lesson: How to dinamically resize memory - pointer is often 8 bytes instead of 4 bytes - operations like delete, insert, search -
...
53:00 Holy grale of running time - #
About graduates of this courese, more notes A B C than D etc. - SHA1 security, converts MBs or GBs into a few bits, now using SHA256 - 16:00 Internet Router Computers - everything in the internet needs a unique address, like we habe postal addresses - DHCP server (dynamic host configuration protocol), lets know the address of computer - IP address (internet protocol) #.#.#.# dotted decimal number, each between 0-255 (8bit - IP 32bit) - means 4 billion addresses in the world possible, 232 - limited, next is IPv6, 128bits, 300 billion billion billion billion possibilities - current is IPv4) - examples: Harvard IPs starts usually with 140.247.#.# or 128.103.#.# - Yale University IPs with 130.132.#.# or 128.36.#.# - 20:36 private IPs 10.#.#.#, 172.16.#.#, 172.31.#.#, 192.168.#.# - FO MacBook Pro System Preferences > Network > Advanced > TCP/IP: Using DHCP, IPv4 address: 192.168.0.4 - FO Router London 192.168.0.1 - Shows space for IPv6 - Internet sees router, not connected computers - 21:45 movie about how we can check what person is doing in real time on his computer - Now we wach online a code in Objective-C, successor to C-lang - 22:30 invalid IP 275.3.6.28 - DNS, we don't type IPs in browsers - ca. $10/year for renting a domain-name - DNS-server informs world what the IP for your domain is - see it in terminal entering nslookup "domain name":
$ nslookup yale.edu // ns for name server
Sometimes * * * for security reasons -
Enter http://130.132.35.53 (: colon) should open yale.edu - google.com shows many servers - how our data go back and forth: via routers - like a road or path - decides in which direction to send the data -
Server: 192.168.0.1
Address: 192.168.0.1#53
Non-authoritative answer:
Name: yale.edu
Address: 130.132.35.53
$ traceroute www.mit.edu - output explained
33:10 $ traceroute -q 1 www.cnn.co.jp - Japanese cnn website - 35:30 movie about cabeling around the world for data - Now 300 undersea cables around the world stretching 550.000 miles, ca. 885.000 km - length would circle earth 22 times - laying 1 cable takes months and costs hundreds of millions $ - 36:30 packets - example sending a picture, divides it in smaller pieces, including name of sender and reciever, example sending parts via audience shows that routers can send them on different ways to reciever, David Malan holds one part of 4 back - not only IP, but TCP IP is working, a combination of 2 protocols, IP and TCP - TCP guarantees delivery - TCP notices that one package is not delivered, asks reciever which is missing, and sender should retransmit it - both IPs are connected and communicating, sender and receiver, can do more than small data sending: emails, chat, file transfer etc. - how to know where to put the information, on Facebook, email program, chat etc.: via the port number, for service, not for the computer -
43:00 ports - 21 FTP (file transfer protocol), 25 SMTP (simple mail transfer protocol, sends mails out - POP or IMAP recieve mails), 53 DNS, 80 HTTP (web - can add :80 for the port, like www.yale.edu:80, changes immediately into yale.edu, as browswers are not showing http:// anymore etc. to not confuse users and make things simpler etc.), 443 HTTPS (web), ... - completely insecure, -
45:20 How Firewalls work:
Read Notes
PHP - read to 25:30 - pause
CS50 leads to other courses: Week 12 - final video 10:52
Introduction to Computer Science - CS50x - Verified Certificate $ 90
Terminal:
clear screen - command K
change directory - cd
kill current task - ctrl C
pause current task - ctrl Z
remove - rm
Terminal Cloud 9 - CS50
p9 - Hello world
#include <stdio.h>
main() {
printf("hello, world\n"); }
p10 - C program consists of functions (containing statements) and variables (storing values). The main () function is special, program begins to execute at beginning of main () - so every program must have a main () somewhere.
Hello world - explanation - functions provide list of arguments in parantheses () - here empty means no arguments - statements in {} - here printf("hello, world\n"); - \n means new line character - printf is a library function - "hello, world\n" is a string (character string or string constant) - without \n (newline character) we get an error
Other hard-to-type or invisible characters are \t for tab, \b for backspace, \" for the double quote and \\ for the backslash itself - complete list in Section 2.3
p11 - 2 exercises done
1.2 Variables and Arithmetic Expressions
Fahrenheit Celsius tables
x + y = z --- y = 2 --- ...
x+x*3=y --- x+(y-x)*3=z ---
1 3 7 15 31 63 - ca. *2 = 120 240=ca.250 500 1.000
In 10 weiteren Schritten ca. 1.000.000
In 10 weiteren Schritten ca. 1.000.000.000
In 3 weiteren Schritten ca. 8.000.000.000
Also Gesamt 33 Schritte von 1 durch einmalig *3, dann selbst Ausfall, auf 8 Milliarden Weltbevölkerung
• Session 1 • Thu 2016-5-12 London 8:15 start CS research - 9:20-10:45 CS50 video Introduction to Computer Science I - Harvard College - David J. Malan - 12:30 R C Language
How do I stop my Mac from ringing when I get a phone call on my iPhone?
This is CS50 - Harvard University
This is (will be) CS50 2016
This is CS50x 2016 -
cs50.edx.org -
edX (Electronic Data Exchange) WP
Warriors of the Net HD
What Programming Language Should a Beginner Learn in 2016?
Douglas Crockford – “The Better Parts” | .concat() 2015 - 25:00 How to recognize the ideal new language
Game by MDN
Intensive Introduction to Computer Science Open Learning Course - Harvard University
A Computer Science Book Reading List
prismjs.com -
HTML5 code element with line numbers and text coloring? -
SyntaxHighlighter ♡♡♡
PRE Tag with Line Numbers - JSFiddle
Alternative Style: Working With Alternate Style Sheet - A List Apart
GNU WP -
gnu.org
Free Software Foundation WP -
fsf.org - librePlanet.org - Group: LibrePlanet Ham
Richard (Matthew) Stallman WP - born March 16, 1953 -
stallman.org
For A Free Digital Society - Richard M. Stallman - University of Bern, 5 February 2016
29:49 Escape and come to the free world we have built: GNU history ♡♡♡ Started 1984 startet developing complete free OS - completed 1992 - 30:50 Linux kernel liberated 1992, rereleased as free software - GNU/Linux System ♡ - 32:00 please give equality with not using the Penguin (symbol for Linux) without a gnu (symbol for GNU) ♡ Ubunto not free, takes freedom 37:30 programs in JS protected through LibreJS, blocks nonfree programs and shows - automatically complain per mail - ... free software, open source etc. ... - 1:00:00
Richard Stallman: We're heading for a total disaster
Richard Stallman - "Freedom in your computer and in the net" (Speech 2014)
GNU LibreJS WP -
gnu.org/software/librejs - enable in IceCat or your browser -> Tools -> AddOns -> Extensions -> GNU LibreJS --- also enable HTTPS-Everywhere
Join GNU's FSF (Free Software Foundation) -
benefits - 20% discount in
Shop
GNU Operating System - Free GNU/Linux distributions - blag (Fedora) - Dragora (simplicity) - Dynebolic (audio video) - GuixSD ("geeks" System Distribution) - gNewSense (Debian, sponsored by FSF) - Musix (audio) - Parabola (Arch, simple) - Trisquel (Ubuntu) - Ututo XS (Gentoo, first fully free GNU system) - (libreCMC - ProteanOS)
Explaining Why We Don't Endorse Other Systems
Richard Stallman: Apple fanboys are foolish people 13:00 propriatary software - 18:00 Mac jail for users, so shiny that they beg to use it - fools - 19:30 open source 21:30 IBM Oracle Microsoft Apple talk open source, not free software - 24:00 mobile devices are even more controlling and limiting freedom of users - 55:15 Stallman nonacademic philosopher, pessimist by nature, can't see future - interested in "what should I do today" to help make the world a better place - always better to try than to give up 30:00 advice to everyone: reject nonfree software - get FSF recommended laptop
fsf.org/resources/hw which run with entirely free software - 30:45 reject mobile phones, because they are surveillance tools, can listen 24/7 and trasmit all, even if shut down, only really of if all batteries are removed! Can listen to all conversations in the room, not only if we make a call - Stallman calls it "Stalin's dream" - Edward Snowden revealed
NSA can tell people meeting together because phones are close together - 37:00 school perversion forcing children to use nonfree computers - 38:00 connect routers and providers through
Tor (anonymity network - WP) - ...
IceCat -
GNU IceCat WP - download GNU's Browser (not FireFox etc. :-) - for Mac: icecat-31.5.0.en-US.mac.dmg -
Mac OS X - set default browser or Mail -> System Preferences -> General -> Default Web Browser: IceCat ♡
GNU's Emacs Editor -
GNU Emacs manual - install with Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- check version:
//> ==> Installation successful!
//> ==> Next steps
//> Run `brew help` to get started
//> Further documentation: https://git.io/brew-docs
//> ==> Homebrew has enabled anonymous aggregate user behaviour analytics
//> Read the analytics documentation (and how to opt-out) here:
//> https://git.io/brew-analytics
$ brew --version
install with brew:
$ brew install emacs --with-cocoa
check version:
$ brew linkapps emacs // this line creates .app and puts it into the "Applications"-folder$ emacs --version
Installing Emacs on OS X Yosemite
Installing Emacs on OS X
GNU GRUB 2 -
WP
Libreboot WP -
GNU Libreboot libreboot.org -
install
Ministry of Freedom - GNU/Linux laptops with libreboot preinstalled -
minifree.org
Grub and Grub 2 - EFI ESP rEFIt rEFInd etc.
Managing EFI Boot Loaders for Linux - Extensible Firmware Interface (EFI) and Unified EFI (UEFI) computers - way of EFI computers boot is different to BIOS (Basic Input/Output System) -
Bootloaders: GRUB & GRUB2 - (2:10) Grub legacy /boot/grub/menu.lst - grub-install/dev/sda -
(2:40) GRUB 2 is more powerful - works across multiple platforms - boots iso files - very flexible and configurable - but adds a layer of complexity - 3:00 configuration file: etc/grub2/grub.cfg - also etc/grub/grub.cfg depending on distro - ending menu.lst runs legacy, grub.cfg runs Grub 2 -
have to enter command: grub2-mkconfig -o ... (grub.cfg or menu.lst - (4:18) /etc/default/grub (configure grub here) - other is /etc/grub.d/... (here configuration files to modify grub.cfg ) - 4:40 some systems: grub2-install or grub-install, runs only grub2-mkconfig -o ... - or etc/grub2... -
5:15 distros differences: What is true for Debian is mostly true for Ubuntu - using grub2 since 2009 - included backwards compatible scripts - if called grub-install it understands grub2-install etc. - ...
rEFIt - rEFInd - Grub2…what is the “right way” for Ubuntu 14.10 on a Mac:
Grub Rescue - Complete Re-install of GRUB 2 from Live USB
4 Free Browser Tools for Privacy on the Net - Properly Paranoid
Recurring funding for artists and creators - Creators receive millions of dollars each month in support from their patrons
Recovering the GRUB 2 Boot Loader
torproject.org - Whistleblower WP -
tails.boum.org - Tails, the amnestic incognito live system - Tails (operating system) WP
Installing Tails:
$ diskutil list
get USB stick name
6. remove USB stick:
$ diskutil unmountDisk /Volumes/FO_ST1_3GB
Shut down computer leaving USB stick 1 plugged in - Switch on computer, immediately press-and-hold option key (alt) - list appears -
//> Unmount of all volumes on disk2 was successful
$ dd if=/Users/Feroniba/Desktop/tails-i386-2.3.iso of=/dev/disk2 bs=16m && sync
//> Permission denied
$ sudo dd if=/Users/Feroniba/Desktop/tails-i386-2.3.iso of=/dev/disk2 bs=16m && sync
//> Password: // enter password
//> 68+1 records in
//> 68+1 records out
//> 1143314432 bytes transferred in 1823.918829 secs (626845 bytes/sec)
repairing broken USB stick and formatting
$ diskutil unmountDisk force /Volumes/KB
In-depth Guide to Tails + Persistence - Tails on HD via virtual machine
$ diskutil eraseDisk MS-DOS FO3 /dev/disk1 // format stick-name device
The Tor software ecosystem
Roger Dingledine "arma" (WP) - American computer scientist - president, director and co-founder of the Tor Project - studied Mathematics, Computer Science and Electrical Engineering at MIT
Jacob Appelbaum WP
- Tor Project - WikiLeaks - bitcoin.org - weusecoins.com
Signal (software) WP - download free at whispersystems.org - recommended by Edward Snowden: Edward Snowden, Glenn Greenwald & Noam Chomsky - A Conversation on Privacy ... - 1:02:00 Top secret means to hide what goverment is doing, so population is the enemy! 1:03:30 Cuba - ... 1:39:00 use Tor Project - 1:39:30 use signal.app - ...
Trisquel.info vs Gnewsense.org: Trisquel and GNewSense domains comparison
Trisquel v gNewSense trisquel.info
5 Best Linux Distribution With No Proprietary Components
Gnewsense and Blag - also Trisquel etc.
Brick Seeks Free Software Foundation Endorsement - very very funny ;-)))):::
Trisquel WP - R. Stallman used gNewSense since 2010 - switched to Trisquel since April 2014 on a Thinkpad X60 (WP)
R. Stallman - How I do my computing
Installed Trisquel, no Wifi Drivers
ThinkPenguin - Wireless Networking for GNU / Linux
Europe is going to kill free software! Have you contacted your state's rep?
trisquel.info
How to set your hostname and domain name correctly
Find hostname:
$ hostname -s
How do I find my Proxy server address on a MAC?
//> shows your hostname ...
Details of the proxy address which is being used by Mac
$ networksetup -listallnetworkservices
Mac OS X Network Proxy Settings in Terminal
$ scutil --proxy
//> shows list
Learn:
partition disk and format DOS
[drm] No driver support for vblank timestamp caching Rev 2 (21.10.2013).
[drm] No driver support for vblank timestamp query.
nouveau [ DRM] MM: using CRYPT for buffer copies
gnewsense.org - download - installation manual
Double boot - Mac OS X & Debian
Bootfähigen USB-Stick unter OS X erstellen
$ uname -m
//> x86_64 // FOs PC
rEFInd 0.10.3 - WP - Installing rEFInd Using refind-install under Linux or Mac OS X
Dual Boot Kali Linux With OS X El Capitan on MacBook Pro -
Kali Linux (Debian-derived) WP
1 - remove the Core Storage designation from your OSX partition - if disabled it shows:
$ diskutil cs list
If Core Storage is enabled and shows:
//> No CoreStorage logical volume groups found
CoreStorage logical volume groups (1 found)
follow instruction HOW TO: Disable CoreStorage on Mac OS X
Reboot Mac - hold down command + R (boots Mac Recovery) - open Disk Utility, select locked HD, File menu > Turn Off Encryption... enter password if asked - decryption of volume starts
From command line boot Mac, hold command + R (Recovery) > open terminal - get the UUID of the encrypted drive:
$ diskutil corestorage list
Now unlock drive:
//> ...
$ diskutil corestorage revert UUID -stdinpassphrase
You’ll be prompted for the password/passphrase of an account that’s authorized to unlock the encryption. Once provided, decryption of the encrypted volume should begin.
as a result of CoreStorage being in use on the system the following error will be displayed:
//> An Error Occured
Then, if you like, you can disable and re-enroll the Mac user here - thanks to symantec.com - About: Symantec sees more threats, and protects more customers from the next generation of attacks. Learn about the company, read what media and analysts have to say about Symantec, or find positions open in our team.
//> PGPError :-12000
2 - Restart Mac - hold command + option + R until Internet Recovery Screen appears - release, boots into Recovery - select > Disk Utility - create gNewSense partition (30 GB recommended, MS-DOS (FAT)) - restart from apple menu
Create partition gNewSense2 (recommended 30 GB, MS-DOS (FAT)) - restart from apple menu
3 - Create gNewSense installation USB stick (or disk)
4 - Disable SIP (see instruction 1 - or instruction 2 or 3)
rejects doing it - also from reboot with command + R - Utilities > terminal:
$ csrutil disable
Check SIP status:
//> csrutil: command not found // or:
//> csrutil: failed to modify system integrity configuration. This tool needs to be executed from the Recovery OS.
$ csrutil status
Hmm ...
//> System Integrity Protection status: enabled. // could also show: System Integrity Protection status: disabled.
csrutil: command not found - advice from @noob: Simply reinstall OS X El Capitan 10.11.1 after downloading it from the app store booted to your main volume. None of your documents or settings will be overwritten or use the tool in this answer
$ diskutil cs list
Try again status:
//> No CoreStorage logical volume groups found // means: CoreStorage was disabled
$ csrutil status
restart holding command + R, Recovery - Utilities > Terminal:
//> System Integrity Protection status: enabled. // Hmm... should be disabled!
$ csrutil disable
Worked! ♡♡♡ Restart - test:
//> Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
$ csrutil status
Yes!!! ♡ Now install rEFInd ♡♡♡
//> System Integrity Protection status: disabled.
5 - Install rEFInd - download refind-bin-0.10.3.zip - remove rEFIt if it is installed - if Mac OS X no longer starts read instruction - now step by step install rEFInd to disk's ESP (EFI system partition - WP)
Test:
$ diskutil list
EFI shows at /dev/disk0s1
Type:
$ mkdir /Volumes/ESP
Then type:
$ sudo mount -t msdos /dev/disk0s1 /Volumes/ESP
$ ./refind-install
if not found, put refind-bin-0.10.3 folder in root folder, write:
$ ./refind-bin-0.10.3/refind-install
Bless rEFInd boot loader:
//> Not running as root; attempting to elevate privileges via sudo....
//> Password: // enter password
//> ShimSource is none
//> Installing rEFInd on OS X....
//> Installing rEFInd to the partition mounted at /Volumes/ESP
//> Found rEFInd installation in /Volumes/ESP/EFI/refind; upgrading it.
//> Copied rEFInd binary files
//> Notice: Backed up existing icons directory as icons-backup.
//> Existing refind.conf file found; copying sample file as refind.conf-sample
//> to avoid overwriting your customizations.
//> Installation has completed successfully.
$ sudo bless –mount /Volumes/ESP –setBoot –file /Volumes/ESP/EFI/refind/refind_x64.efi –shortform
Noooo!!!!
//> No volume specified
...
Install gNewSense - failed:
“the ‘grub-pc’ package failed to install into /target/” gNewSense install error
An installation step failed. You can try to run the failing item again from the menu, or skip it and choose something else. The failing step is: Install the GRUB boot loader on a hard disk.
Skipped - No boot loader has been installed, either because you chose not to or because your specific architecture doesn't support a boot loader yet.
You will need to boot manually with the /vmlinuz kernel on partition /dev/sda3 and root=/install/initrd.gz passed as a kernel argument.
“Root file system not defined. Please correct this from partitioning menu” Ubuntu 14.04.2 installation on laptop with no OS
How To Add Swap Space on Ubuntu 16.04
SwapFaq
dyne:bolic WP - dyne.org
Dragora GNU/Linux Libre WP - dragora.org
parabola.nu - installation guide
Ubuntu (operating system) WP - ubuntu.com
How to get Ubuntu 16.04 (Linux) on Mac OS X (Dual Boot) - ETCG - Welcome to ETCG's Official Website!
Richard Stallman Talks About Ubuntu YT
The Joy of Ditching OSX for GNU/Linux -
Focus follows pointer WP - better usable desktop Xfce, Fluxbox, i3
“Root file system not defined. Please correct this from partitioning menu” Ubuntu 14.04.2 installation on laptop with no OS
How To Add Swap Space on Ubuntu 16.04 - SwapFaq
Installing Ubuntu on a MacBook Pro (MacBookPro11,3 is FOs Mac model ♡) - find out from Ubuntu terminal (Applications -> Accessories -> Terminal):
sudo dmidecode -s system-product-name
or Mac terminal:
$ sysctl hw.model
Don't install rEFIt -
WP -
install rEFInd (up to date) instead of rEFIt (old) - read later installing gNewSense -
(Installing rEFIt Documentation - reboot 2x - rEFIt boot menu should appear)
Create your Ubuntu One account
Backup Mac ♡
How to create a bootable USB stick on OS X -
download Ubuntu (Desktop) ubuntu-16.04-desktop-amd64.iso - don't install UNetbootin - reformatting USB stick to MS-DOS (FAT) -
How to Dual-Boot OS X and Ubuntu PDF (OS X El Capitan, version 10.11.1 - by Nailen Matschke)
download Ubuntu Desktop
Insert USB drive (at least 2 GB) - Disk Utility > step on USB name (that one which just appeared after insertion, there main drive on top, not sub-drive), press Erase > Name: Ubuntu, Format: MS_DOS (FAT), Scheme: GUID Partition Map, press button: Erase
Open terminal - to check USB device, write:
diskutil list // opens list, find USB-stick under:
now unmount USB stick:
//> /dev/disk2 (external, physical): // number may be different, disk1 or dis3 etc.
//> 2: Microsoft Basic Data UBUNTU 7.8 GB disk2s2 // may differ
diskutil unmountDisk /dev/disk2 // or disk3 etc., check your USB device name
OS X doesn’t play well with the ISO image format for Ubuntu etc. - therefore convert to
Apple disk image (.dmg) file instead - run command:
//> Unmount of all volumes on disk2 was successful
hdiutil convert -format UDRW -o /path/to/image.dmg /path/to/image.iso
now write .dmg to USB drive (I did .iso):
// path can be found by dragging .iso file to terminal, change .iso in .dmg, then again
// /path(put by dragging).iso
sudo dd if=/path/to/image.iso of=/dev/rdisk2 // enter your path, and your rdisk3 or other
wait a while (22:39-22:48), until message is shown:
2902112+0 records in
If you think it takes too long, check if dd is still working from while to with control + t - it shows:
2902112+0 records out
1485881344 bytes transferred in 496.638168 secs (2991879 bytes/sec)
//> load: 1.44 cmd: dd 968 uninterruptible 0.85u 25.75s
Repeat control + t and you will see most of the values increase - watch the bytes increasing: 123 456 789 bytes transferred - our .iso file or .dmg (if .iso doesn't work) is 1.2 GB, this is 1 234 567 890 bytes.
//> 257589+0 records in
//> 257588+0 records out
//> 131885056 bytes transferred in 467.160516 secs (282312 bytes/sec)
Now partition disk:
128 MB Ubuntu Boot Loader - and 50 GB Ubuntu
Reboot Mac, hold option key -
try with gNewSense (0:52-)
Debian WP
Microsoft has crafted a switch OS on Debian Linux. Repeat, a switch OS on Debian Linux
GitHub WP - github.com - GitHub Gist
You may also consider to disable Gatekeeper: How to Disable Gatekeeper from Command Line in Mac OS X - it is preventing third party apps from being used in OS X
$ sudo spctl --master-disable // enter password
If you want to see confirmed, enter:
spctl --status
Also read Recovery Partition Creator 3.7 – Updated for Mavericks
assessments disabled
Jitsi not Skype etc.
elilo 3.16-all - LILO (boot loader) WP
Binary large object (Binary Large OBject) WP -
Binary blob WP
coreboot
OpenBSD - supports Gnome, KDE and other desktop environments
Linux distribution WP
List of Linux distributions WP
Comparison of Linux distributions WP
Linux Distribution Timeline WP
Fedora (operating system) WP - fedora.org
Edward Snowden WP - TW 2.12M - An NSA mission statement titled "SIGINT Strategy 2012-2016" affirmed that the NSA plans for continued expansion of surveillance activities. Their stated goal was to "dramatically increase mastery of the global network" and "acquire the capabilities to gather intelligence on anyone, anytime, anywhere."[151] Leaked slides revealed in Greenwald's book No Place to Hide, released in May 2014, showed that the NSA's stated objective was to "Collect it All," "Process it All," "Exploit it All," "Partner it All," "Sniff it All" and "Know it All."[152]
... In March 2014, documents disclosed by Glenn Greenwald writing for The Intercept showed the NSA, in cooperation with the GCHQ, has plans to infect millions of computers with malware using a program called "Turbine."[156] Revelations included information about "QUANTUMHAND," a program through which the NSA set up a fake Facebook server to intercept connections.[156]
According to a report in The Washington Post in July 2014, relying on information furnished by Snowden, 90% of those placed under surveillance in the U.S. are ordinary Americans, and are not the intended targets. The newspaper said it had examined documents including emails, message texts, and online accounts, that support the claim.[157]
In an August 2014 interview, Snowden for the first time disclosed a cyberwarfare program in the works, codenamed MonsterMind. The program would "automate the process of hunting for the beginnings of a foreign cyberattack". The software would constantly look for traffic patterns indicating known or suspected attacks. What sets MonsterMind apart was that it would add a "unique new capability: instead of simply detecting and killing the malware at the point of entry, MonsterMind would automatically fire back, with no human involvement". Snowden expressed concern that often initial attacks are routed through computers in innocent third countries. "These attacks can be spoofed. You could have someone sitting in China, for example, making it appear that one of these attacks is originating in Russia. And then we end up shooting back at a Russian hospital. What happens next?"[16]
DOCUMENTARY: Edward Snowden - Terminal F (2015)
On March 19 of 2016, Snowden delivered the opening keynote address of the LibrePlanet conference, a meeting of international free software activists and developers presented by the Free Software Foundation. The conference was held at the Massachusetts Institute of Technology and was the first such time Snowden spoke via teleconference using a full free software stack, end-to-end.
The Last Lighthouse | Edward Snowden | Libreplanet 2016 - 20:00 bring every year 5 people in free software - it's not about privacy versus security, but about power - US government broke law 2776 times in ... - 23:00 free software, core boot, but how to make shure our devices like cars or laptops are not surveillance devices? - 20:50 first step: encrypt everything etc. - ... - 27:00 flexible chips -
Edward Snowden, Glenn Greenwald & Noam Chomsky - A Conversation on Privacy - 1:02:00 Top secret means to hide what goverment is doing, so population is the enemy! 1:03:30 Cuba - ... 1:39:00 use Tor Project - 1:39:30 use signal.app - Signal_(software) WP - download free at whispersystems.org
Official PlayStation Greatness Awaits Trailer - PlayStation - The Making of Greatness Awaits
IGN's Top 25 PlayStation 4 Games (Fall 2015)
“Magicians” Prove A Spiritual World Exists - crissangel.com
Why Do I Meditate? My Meditation Journey + More
Angelina Jordan "Back to Black" Cover, with KORK, improvised lyric.
Uow to find iPhone IPv4 Address - Settings -> Wi-Fi -> find connected router, press i button (information) -> read IP Address, Router, DNS
IPv4 and how it works.
Sergiu Celibidache "Overture" La Forza del Destino ♡♡♡ ♡ ♡♡♡
: - colon - Doppelpunkt
brevity - Kürze - C Preface
formalize - formalisieren, offiziell machen - C Preface
retain - behalten, sichern, beibehalten ... - C Preface
submit - einreichen, vorlegen, überreichen, unterbreiten ...
unambiguous - unzweideutig, eindeutig, unmissverständlich, widerspruchsfrei, eindeutig, unzweideutig - C Preface