Computer Science




Computer Science - Summary

• 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
cd (folder) // change directory
cd- // previous directory
command K // clears screen
ctrl L // also: $ clear - scrolls screen - bottom line up
use also CS50 Terminal
gcc WP - GNU Compiler Collection (originally GNU C Compiler)
gcc --versionHomebrew (package management software) WP - brew.sh brew --versionhello 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;
int *p, *q, *r;

p = &i; // & is called the address operator
q = &i;
r = p;
avoid bugs through uninitialized pointers not pointing to a location
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

The C Programming Language 2nd Edition (ANSI C) - Brian W. Kernighan, Dennis M. Ritchie - 1988 (1st Edition 1978)

Content

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

Preface

p6 - 2nd Edition - Changes since creation of C 1978 - 1983 ANSI (American National Standards Institute) standard for C - this 2nd edition as defined by ANSI standard - ... - thanks - we use Bjarne Stroustoup's C++ translator extensively for local testing, and Dave Kristol's ANSI C compiler for final testing
p8 - 1st edition - C not very high level language nor a big one - but absence of restrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages - ... - book ment to teach reader how to program in C - contains tutorial introduction to get new users started as soon as possible, separate chapters on each major feature, and a reference manual - all examples tested - besides showing how to make effective use of the language, we have also tried where possible to illustrate useful algorithms and principles of good style and sound design - book is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions - nonetheless, a novice programmer should be able to read along and pick up the language, although access to more knowledgeable colleague will help - thoughtful criticisms and suggestions of many friends and colleagues have added greatly to this book and to our pleasure in writing it - thanks - Kernigham & Ritchie

Chapter 1 - A Tutorial Introduction

p9 - begin quick introduction in C - show essential elements of the language in real programs, without getting bogged down in details, rules, and exceptions - not trying to be complete or even precise (save that the examples are meant to be correct) - get reader as quickly as possible to the point where he can write useful programs, and to do that we have to concentrate on the basics: variables and constants, arithmetic, control flow, functions, and the rudiments of input and output - we are intentionally leaving out of this chapter features of C that are important for writing bigger programs - these include pointers, structures, most of C's rich set of operators, several control-flow statements, and the standard library - tutorial, by being brief, may also be misleading - more detailed descriptions ch 2

1.1 Getting Started

hello world ... better write: int main () - $ gcc helloworld.c -o samp --- $ ./helloworld --- terminal: Hello, world! - Wed 2015-2-25 3:58 First Hello, world! - cc hello.c - ./a.out - Hello, world!
p10 - any C program consists of functions and variables - function names free, main is special, every program must have a main -
<stdio> is standard C file input/output library - calls usually other functions
hello world explained:
#include <stdio.h>

main()
{
printf("hello, world\n");
}
/* int */ main () // function name, () includes list of values, called arguments, here no arguments, empty list
{ // function statements enlosed in curly braces    printf("hello, world\n");} // function printf
printf("hello, "); printf("world"); printf("\n"); p11 - identical output: hello, world - /n newline character, without > error, printf doesn't support newline character automatically - "..." character string or string constant
\t for tab - \b for backspace - \" double quote - \\ \ itself - complete list section 2.3
Exercise 1-1 run hello on system - experiment leaving parts, see error messages
Exercise 1-2 adding /c in "character string" shows only c -- to show /c we must write \\c

1.2 Variables and Arithmetic Expressions

formula °C = 5/9 (°F - 32) --> celsius = 5 * (fahr-32) / 9 --- °F = °C x 9/5 + 32 --- print table of Fahrenheit or Celsius
#include <stdio.h>

/* print Fahrenheit-Celsius table for fahr = 0, 20, ..., 300 */
main()
{
   int fahr, celsius;
   int lower, upper, step;

   lower = 0; /* lower limit of temperature scale */
   upper = 300; /* upper limit */
   step = 20; /* step size */

   fahr = lower;
   while (fahr <= upper) {
      celsius = 5 * (fahr-32) / 9;
      printf("%d\t%d\n", fahr, celsius);
      fahr = fahr + step;
   }
}
p12 - comments /* */ where a blank, tab or newline can -
in C all variables must be declared before used - data types: int float char short long double - they are part of arrays, structures, unions, pointers to them, functions that return them - will meet soon
start program with assignment statements: lower = 0; upper = 300; step = 20; sets variables to their initial values, terminated by semicolons.
while loop repeats once per output: while (fahr <= upper) {...} --- single statements don't need braces: while (i < j) i = 2 * i; ---
...

1.4 Symbolic Constants

...
#define ... // no semicolon at end of line
...

1.5 Character Input and Output

many programs prototypes of following:
c = getchar(); putchar(c); --- c !=EOF // not equal to end of line
#include <stdio.h>

/* copy input to output; 1st version */
main()
{
   int c;

   c = getchar();
   while (c != EOF) {
      putchar(c);
      c = getchar();
   }
}

Also can be written as:
#include <stdio.h>

/* copy input to output; 2nd version */
main()
{
   int c;

   while ((c = getchar()) != EOF) // () because precedence of != higher as =
      putchar(c);
}
...

1.5.2 Character Counting




Vocabulary

curb - zügeln, drosseln, einschränken, dämpfen, hämmen ... p19


Links

games.lovetheuniverse.com/c.html
Yann Dauphin, Researcher and Bass player - Khan Academy :-) ♡
Difference between CC, gcc and g++? - stackoverflow




Memory as a Programming Concept in C and C++

Chapter 1 - Introduction

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 - ...

Chapter 2 - From Source File to Executable File

p16 - ... - high-level languages only invented for simpler programming -


Links

I need to learn C programming in 20 days. What online video, lectures, or dedicated websites should I follow?
C Tutorial - tutorialspoint
cprogramming.com




Start

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 -


Introduction to Computer Science

An introduction to the intellectual enterprises
of computer science and the art of programming.

Harvard University - David J. Malan

Week 0
David J. Malan, computer scientist and professor at Harvard University

Notes

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.

Week 0, continued

Notes

...

Week 1

Notes

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

int main(void)
{
   printf("hello, world\n");
} // printf is a function, takes input "hello world" and prints it
Cloud9 c9.io account, later connect Github or Bitbucket and sign in with those - Github github.com/Feroniba - Running Your Code in c9.io
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
while (true)
{ printf("%i\n", counter);
counter++; }
boolean expressions:
(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

Week 1, continued

Notes

./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>
#include <stdio.h>

int main(void)
{
   printf("state your name/n");
   string s = GetString();
   printf("hello, %\n", s);
}
C language understands types:
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 :-)

Week 2

Notes

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

Notes

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.

Week 3

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

Week 3, continued

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

Week 4

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)
{
   int tmp = a;
   a = b;
   b = tmp;
} // water swap with orange juice
example: swapping two cups, orange juice with milk - then water with oil, oil swims on water -
void swap(int a, int b)
{
   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
noswap.c -
#include <stdio.h>

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
}
Not swapping, still a is 1, b is 2 --- What is the flaw: add 2 lines for checking
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>
#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");
   }
}
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 -
conclusion: there is no such thing as string - we call it now char* instead of string - char* is called a pointer or an address -

Week 4, continued

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>

// structure representing a student
typedef struct
{
   string name;
   string dorm;
}
student;
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:
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)
{
   int tmp = a;
   a = b;
   b = tmp;
}
Not working because of copies are not having an impact - solution:
45:30
void swap(int* a, int* b)
{
   int tmp = *a;
   *a = *b;
   *b = tmp;
}
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
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)

Week 5

Notes

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>

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!
Repeat ./scanf-0 - enter: no - //> Thanks for the 0! etc. -
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 -
...
27:30 memory leak - all codes up to now in CS50 are buggy - we asked GetString GetFloat etc., but never gave something back - like UngetString or GetStringBack etc. - like when MacOs clock symbol is turning while loading etc. slows system down - 29:30 valgrind - --leak-check=full ./program (name of program) - shows in which line of our code memory is lost -
memory.c
/* 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;
}

33:30 Because of the bug x[10] program may crash once in a while - corrected x[9] and free(x); - now it shows:
==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
{
   string name;
   string house;
} student;
Now change it:
typedef struct
{
   int n;
   struct node* next;
}
node;
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

Week 5, continued

Notes

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 - #

Week 6

Notes

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
Server: 192.168.0.1
Address: 192.168.0.1#53

Non-authoritative answer:
Name: yale.edu
Address: 130.132.35.53
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 -
$ 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:

Week 7

Notes

Read Notes

Week 7, continued

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




C

Codechef compiler

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




Links

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

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)"
//> ==> 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
- check version:
$ brew --version install with brew: $ brew install emacs --with-cocoa
$ brew linkapps emacs // this line creates .app and puts it into the "Applications"-folder
check version: $ 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

Boot loaders

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


GuixSD (Guix System Distribution) - OS1

Guix System Distribution WP - GuixSD - gnu.org/software/guix - GNU Guix 0.10.0 Reference Manual - System Installation


Security for privacy - Tails - Tor project - OS (?) - ThinkPenguin

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
//> 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)
Shut down computer leaving USB stick 1 plugged in - Switch on computer, immediately press-and-hold option key (alt) - list appears -

repairing broken USB stick and formatting
$ diskutil unmountDisk force /Volumes/KB
$ diskutil eraseDisk MS-DOS FO3 /dev/disk1 // format stick-name device
In-depth Guide to Tails + Persistence - Tails on HD via virtual machine
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 - OS2

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
//> shows your hostname ...
How do I find my Proxy server address on a MAC?
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

Installed Trisquel, no Wifi Drivers

Wireless Networking for GNU / Linux - ThinkPenguin

gNewSense (GNS) - OS3

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
//> No CoreStorage logical volume groups found
If Core Storage is enabled and shows:
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
//> PGPError :-12000
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.

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
//> csrutil: command not found // or:
//> csrutil: failed to modify system integrity configuration. This tool needs to be executed from the Recovery OS.
Check SIP status:
$ csrutil status
//> System Integrity Protection status: enabled. // could also show: System Integrity Protection status: disabled.
Hmm ...
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
//> No CoreStorage logical volume groups found // means: CoreStorage was disabled
Try again status:
$ csrutil status
//> System Integrity Protection status: enabled. // Hmm... should be disabled!
restart holding command + R, Recovery - Utilities > Terminal:
$ csrutil disable
//> Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
Worked! ♡♡♡ Restart - test:
$ csrutil status
//> System Integrity Protection status: disabled.
Yes!!! ♡ Now install rEFInd ♡♡♡

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
//> 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.
Bless rEFInd boot loader:
$ sudo bless –mount /Volumes/ESP –setBoot –file /Volumes/ESP/EFI/refind/refind_x64.efi –shortform
//> No volume specified
Noooo!!!!
...

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

dyne:bolic WP - dyne.org

Dragora - OS4

Dragora GNU/Linux Libre WP - dragora.org


Ututo - OS5

Ututo WP - ututo.org


Parabola - OS6

parabola.nu - installation guide


LibreCMC - OS7

LibreCMC


Musix - OS8 --- blag - OS9 ---



Non-GNU FSDG (Free System Distribution Guidlines)

Ubuntu

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:
//> /dev/disk2 (external, physical): // number may be different, disk1 or dis3 etc.
//>    2: Microsoft Basic Data UBUNTU 7.8 GB disk2s2 // may differ
now unmount USB stick:
diskutil unmountDisk /dev/disk2 // or disk3 etc., check your USB device name
//> Unmount of all volumes on disk2 was successful
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:
hdiutil convert -format UDRW -o /path/to/image.dmg /path/to/image.iso
// path can be found by dragging .iso file to terminal, change .iso in .dmg, then again
// /path(put by dragging).iso
now write .dmg to USB drive (I did .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
2902112+0 records out
1485881344 bytes transferred in 496.638168 secs (2991879 bytes/sec)
If you think it takes too long, check if dd is still working from while to with control + t - it shows:
//> load: 1.44 cmd: dd 968 uninterruptible 0.85u 25.75s
//> 257589+0 records in
//> 257588+0 records out
//> 131885056 bytes transferred in 467.160516 secs (282312 bytes/sec)
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.
Now partition disk:
128 MB Ubuntu Boot Loader - and 50 GB Ubuntu
Reboot Mac, hold option key -

try with gNewSense (0:52-)


Debian

Debian WP
Microsoft has crafted a switch OS on Debian Linux. Repeat, a switch OS on Debian Linux


GitHub

GitHub WP - github.com - GitHub Gist


Other

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
assessments disabled
Also read Recovery Partition Creator 3.7 – Updated for Mavericks

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

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


Games

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.


Music

Sergiu Celibidache "Overture" La Forza del Destino ♡♡♡ ♡ ♡♡♡



Vocabulary

: - 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




Sessions





         

web counter