= Denk Werk Zeug [E] = . Sven Guckes: "Denk Werk Zeug [E]" Elektronische Werkzeuge zur Informationspeicherung == talk == +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ datetime: 2013-02-04 Mon 16:45-18:30 title: Denk Werk Zeug E subtitle: Elektronische Werkzeuge zur Informationspeicherung . (und zur gemeinsamen Bearbeitung) author: sven guckes - denkwerkzeuge@guckes.net seminar: Denkwerkzeuge im Wissensmanagement (Seminar 32801) . at the Institute of Psychology, Humboldt Universitaet Berlin . http://tinyurl.com/hub-32801-denkwerkzeuge url: http://www.guckes.net/talks/denk_werk_zeug.txt . http://www.guckes.net/talks/denk_werk_zeug.html (in color) . http://iPir.at/eh7g (alternative) language: german. so why is all in english? bigger audience. ;-) size: ca 45KB Latest change: Mon Feb 11 18:16:54 CET 2013 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ == Idea == which electronic tools can aid our work (at the computer) and thus be helpful for our thinking and understanding? we now can share data easily over the internet enabling us to collaborate (work together) on the same data, by copying it to the local maschine, changing them locally, and copying it back to the shared location (repository). this knowledge is a key to our common progress. we can even *see* the others changing the same data. this can be very exciting! == Why? == so-why-is-this-useful? "data is the new oil" books -> libraries books are now directly accessible. great! will CD+DVDs die? will books die? no. but we will die. (finally something certain. :-P) the sheer amount of data is important enough that we have to think about managing it. Mitchell Kapor: getting off information from the internet is like taking a drink from a fire hydrant. businesses finally have gotten the word, they are looking for people to manage it - "knowledge management" (wissensmanagement) has been created and can be studied. great. == Information Age == i hesitate to use a phrase like "nowadays in information age". what *is* new about information in "information age", anyway? information? no - information has always been around. i mean, what age had *no* use for information? "srsly"? havent information always been useful to us? i claim that home sapiens has always lived in an "information age". what's the sapiens for, anyway? (okay, maybe that was a rant. ;-) why not say "Data Age"? (so much shorter, too.) after all we finally treat all kinds of information as "data" - and quantify it with "bits&bytes". == Data vs Information == mind you, data is NOT a synonym for information. data is simply a sequence of bits, zeros and ones. they can be counted, but "information" is something different. "information" is connected to the implied usefulness and worth. and that's different for everyone. == Background == so.. i am not from HUB (Humboldt University Berlin), but from FUB (Free University Berlin). i didnt study psychology, but maths and computer science. in CS we had to talk about code, of course, so it had to be visible to us, naturally. therefore "open source" was a requirement. how else can you talk and learn about it? so i came to Free Data and Free Software in a natural way. can't live without it. "free as in freedom, not as in free beer." i could probably make a living within a world of proprietary, closed source, keeping the source away from others, security by obscurity, while being subjected to restrictive licenses, only to be talked about after signing NDAs... but I DONT WANT TO. i choose freedom mainly because i believe that we must share our thoughts to enable as many people as possible to help each other in order to find solutions to problems as there have always been, mainly diseases, famine, and war. the solutions to these problems might be enclosed in the head of one of those kids who are threatened by just those problems. we need to give them all we know, and we must hope for the best that it will help. If you think education is expensive, try ignorance. we must set free our data, information, and knowledge. and we must talk about the tools we already have, and the ones we need. == Seminar == luckily, i do not have to give a talk on something that is completely new to me. i can show stuff which i have many years of experience with. there is nothing to grade here. i am here today to show what tools i have been using and talk about my personal experience. yay. in particular, i have no new info to look at and grade something i have no experience with yet. that's a really hard task to do. i want to show you some tools i use. they may be new to you, they might be interesting, they could be the alternatives you may rmember, but maybe they even change your world. we'll see. please take a look. spend some time to ask yourself this about the texts you get to read: do i agree with the conclusions of its author? what is it worth to me? please tell the others about it. it's actually what they would like to hear, too. so.. here goes: == Denk == denken (de) - to think (en) think! why? "oh, no - not again!" havent we created machines now to do that strenuous job for us? here's what a mathematician said: Norbert Wiener: http://de.wikipedia.org/wiki/Norbert_Wiener The future offers little hope that mechanical slaves will offer a rest from thinking. Die Zukunft zeigt wenig Hoffnung, dass mechanische Sklaven uns eine Erholungspause vom Denken geben werden. so - everyone think for himself. it (probably) cannot but done for you by machines. but tools may be able to assist you. == Werk == Werk (de): * some task or work to be done. * the place of work (building). which is the "werk" (place,task) you work in? what surrounds you? what do you think about? what is the goal of it all? can you reach it within the given time? what do you need? which brings us to the "tools": == Zeug == Zeug (de): stuff, tools, utilities. what are the zeug (tools) you work with? which tools do you need? do these already exist? i shall show some of my tools, my basic use of data saving&retrievel, and how they can be used to collaborate with others across this internet thing. hopefully they are interesting to you. decide for yourself. but please give them a real try. then again, when does one do that? and where? just for yourself - at home? i suggest asking some others to show them to you and use them together for a while. talk about the use and its implications. where? at co-working spaces and hackerspaces! in berlin: betahaus, cccb, c-base, co-up, in-berlin.. -> http://www.hackerspaces.org/wiki/ + http://hallenprojekt.de/?locale=de so.. go there, talk to people, bring your laptop, take a look over the shoulder of others, ask questions, talk about problems. exchange information! copy knowledge! learn! == E == the 'E' in "DenkWerkZeugE" can simply be seen as the suffix used for the plural of "tools" here - from "werkzeug" (singular) to "werkzeuge" (plural). but here the 'E' also nicely stands for "Electronics". when did this all start? well - here is a good outset: 1837: Samuel F. Morse -> wire + electricity + code http://de.wikipedia.org/wiki/Samuel_F._B._Morse Margit Knapp: Die Überwindung der Langsamkeit. Samuel Finley Morse - der Begründer der modernen Kommunikation. so the wire became the medium of transmission, the electricity in it provided an almost instant transmission of impulses, and a sequence of impulses (high/low) was used to create a code for information. the sad part of the story is that Finley (he wasnt called Samuel much, apparently) had missed the death and funeral of his wife due to the lag in information transmission which lay in the transport of letters. so today information need no longer be attached to atoms which need to be moved around the world. information became electronics. we even measure the data and bits&bytes. kilobytes became the new "many data". then it was megabytes, and gigabytes. today we can buy storage for a terabyte about the cost of 100euros. even 3 terabytes for 105euros [2013-02-03]: http://www.amazon.de/Intenso-externe-Festplatte-5400rpm-schwarz/dp/B007AG1V1Y (i mean - whoa!) and now the internet allows us to exchange information within seconds around the world. out communication has become blazingly fast! but do our projects become faster, too? somehow, the development of humans seems not to have been kept pace with it. we still need 10seconds to run 100m (i still need a minute to walk it), and new humans require a development time of 10 months as they did before. what could be the problem? our brains still work the same. it sure it a bottleneck. so how can we deal with data more efficiently? one way is changing our bodies and our DNA. but i'll leave this for the frankensteins out there. let's start with the simplest way of storing data: in files. == Files == taking notes, holding on to sudden ideas, writing articles and summaries, even books, creating slides.. it's all about letters, words, sentences, paragraphs. we need good tools for that. the technical term for such tools are "text editors". my choice: Vim. (why? that's another talk..) mind you, a compendium has been available in 1996.. and it listed literally *hundreds* of them. Roger Nelson: Text Editor Compendium (1996-08-01) http://groups.google.com/group/comp.editors/msg/74aa9ce24b41efe3?dmode=print http://www.cahe.wsu.edu/~bsyse/faculty/rnelson.html http://coopext.cahe.wsu.edu/~bsyse/faculty/rnelson/editors/editors.htm Orthodox Editors Page http://www.softpanorama.org/Tools/editors.shtml a good text editor has many commands to assist you in writing text, and moving bits of it around. it should be understand the line endings (EOLs on Macintosh, Unix and Windows), should be availabe for at least all of those platforms (cross platform), give you "undo" commands as well as "redo". a "community" around it with fast help to common problems and some documentation, too, this can definitely help. did i say it has to be free of charge? no! sure, i definitely like "free of cost", too. but mind you, i definitely prefer "freedom". the classical text editors are still emacs and vim. check them out *both*. you will see they are both monsters in what they have to offer, and their communities definitely are everywhere. the rest of the editors are somwhat similar, anyway. ;-) still.. you write texts. and the you save them.. where? you will probabaly give them a filename: filename: idea.txt and put them into a directory. some systems come with a basic structure for every user account: Bilder Documents Dropbox Music Pictures Screenshots Ubuntu One Desktop Downloads Misc People Public Templates Videos but i prefer short words with lowercase letters: bin etc include lib log man pics share txt my texts go into ~/txt. yeah. short. i like that. then again, whenever i looked back, i found that an initial date would have helped me to put the text into the context of the time. so i added the date to the filenames and even expanded on the filenames itself: 2013-02-04.cool_idea_to_save_the_world.txt for the snippet now and then when browsing the web or when watching a video, or listen to a talk, i simply put all of it into an eternal file. it started out as a list of signatures i might want to use in an online conversation, to be used at the end, with some pointers. i thought that maybe others might search for this data/information, so i moved this file into the ~/public_html directory and thus it became a "webpage" on its own: http://www.guckes.net/sig/SIGS now almost everything goes in there. == Hacking == 1988.. FUB has a scanner now. whoo! and they offered a seminar on optical character recognition (OCR), too. so - automatic recognition of letters.. simply *scan* the stuff - and out comes a text, simply in characters. from a picture to text/plain. great! but we would have to create these programs outselves. so simply get an account (huh?) on a minix machine (what?), log in (why?), run an editor (uh-huh) from the shell (excuse mee?), connect it to this new library from another university (this has been tested, right?), start the compiler (ah, yes, heard if that) to create the binary (you mean program, right?) and - bingo! we had never used this before, noone really told us how to use all those tools (google for it? ha!), the library was pre-alpha and pretty buggy, and we never found out which of the various data formats this TIFF output of the scanner really was. but we got an account on a machine which was connected to the internet! you could send messages to yourself (oh-kay), and to other people on the same machines (fun!), and to people on other machines anywhere in the world. DONG! you could even send files around with FTP (file transmission protocol/program). you could find files on anon/public FTP servers. complete file lists with.. stuff! you could also *telnet* to other machines and exchange data through some services. there were even games. and one of these games were Multi User Dungeons (MUDs), where many people could go about inside of it through "rooms". and when they met in the same room they could talk to each other. a "frontend" program to telnet (Padrone's MUD Frontend - PMF) helped to speed up tasks by creating *aliases* for sequences of commands (go to pub, drink beer..) and *actions* for automatic reactions to texts ("you feel very bad" -> run away!). http://www.freebsdsoftware.org/net/pmf.html ? http://en.wikipedia.org/wiki/LPMud http://en.wikipedia.org/wiki/Lars_Pensj%C3%B6 you would gain points by slaying orcs and dragons, and by solving quests (riddles), some of which can not be done without the help of others... you need to coordinate in time, and use all the communication available to solve them. and when you arrived at the last level then a congregation of wizards came together at a special room to make you a wizard, too. a wizard. yay! but what can a wizard do? well, he can extend the world with his own objects. - *during* the *running* game! no need to change the code and then restarting the compiler. you give commands within the game, and the objects is loaded into it, and *exists* - ready to be used. this was different. this was interesting. this did something. 1989: you could "talk" to another user directly on a split screen - a one-to-one communication. there was even a multi-talk which split the screen horizontally into several sub-screens. and "ytalk" even allowed to call on users on another computer for this. but then every user would occupy some part of the screen - even if he didnt say anything at all. this didnt scale very well. never talked to more than five people at the same time. through 'telnet' we got to use International Relay Chat (IRC). when i joined there were already "channels", so people would only talk to each other in groups. this communication was not just to a few others people - this was to *thousands* of people. channels were numbers then. the folks from finland would gather on channel #42.. 1989-11-09.. the Berlin wall falls.. we chat world-wide to people everywhere about it.. america, australia, europe (especially finland where IRC came from), korea.. "or wall is down!" sidenote: a friend who was in japan at the time didnt have any access to the internet then. so i gave him a call - and we talked for an hour. my mum had to pay the 250DM bill. she was not amused. more things got used.. with email you could join mailing lists, and with a newsreader you could read newsgroups from a newsserver. this HTTP thing came.. and with it came webservers. FUB probably had the first one in germany. they also had the first newsserver, too. it once was placed under our table in the tutors' room at the math department. i followed some newsgroups, espcially those where there was talk about the programs i used: comp.editors (on vi), comp.mail.elm (on elm), and news.software.readers (on nn). in the beginning there was "vi imitation". now by its many improvements it is "vi improved". and then the penny dropped: changing code means changing lives. not just that of gamers, but those any other kind of people. hacking into their "real lives". mind you, "hacking" was never meant nor even thought of in a bad or illegal way, but in the real sense of it, ie finding cool solutions to problems. adding neat features (command and options) which allow everyone to be more productive. i also learnt that "code is the law". asking for code is basically like asking both for time and money. it's probably easier to learn how to code yourself. then you learn how to adapt/change/modify things. it's a lot like learning to cook. anyway, during the course of years, "vi" (NOT open source) slowly gets replaced by "vim" (Free Software). now there are many thousand installations. google has a million linux machines. and they might all have a version of vim.. so maybe there are millions of installations now. its license is not GPL itself - but GPL compatible: Vim is Charityware. You can use and copy it as much as you like, but you are encouraged to make a donation for needy children in Uganda. so.. i work with vim. all the time. every day. == Work == how to work with information? seminar participants said: read texts, mark them (on paper) in colour, take notes, create slides, send files. -> Colour! a key feature is using color within text. you could add special characters in your file to choose the colour every time yourself, but for many reasons it is better to see texts through a program, like using special "glasses". and suddenly, text becomes colorful (bunt). some words are special because the contain special characters and they follow a structure: special words: * email addresses guckes@guckes.net * web addresses (URIs, URLs) http://www.guckes.net/ you can also "mark" words with characters to indicate them as special: just words: * /italic/ * *bold* * "citation" reminder: turn on color and then there are characters around words which mark them as special: * headlines (ueberschiften) * itemization (aufzaehlungen) syntax -> structure -> color example: /etc/passwd /etc/hosts files with structure: * code (code von programmiersprachen) * config (setupdateien) * commits + logs * scripts specials: mgp+tpp idea: text/plain as source for presentation http://www.guckes.net/talks/workshop.shell.tpp colors can make text more readable. but you also need some support for entering text. one of these features are abbreviations: == Abbreviations == basic idea: expansion short word -> long word but it could even be several words, even parts of sentences, complete sentences, or paragraphs. think of hellos&goodbys (salutations & closing lines), signatures in email, your ToS (Terms of Services), your phone number, your address (street address, email, website, facebook page), or your current favourite quotation. special cases: misspelled word -> correct word the -> the also -> also == Global Features == text is in almost every program. shouldnt every program have the feature to allow abbreviations? if so - why add all the code for it to every program? why not give the code to be used for all programs? this idea lead to libraries, ie files with code which can be "linked" to every program. libraries exist on almost every system. unix and macintoshs use files in /lib - and windows makes use of DLLs. as text editing is a central use of computers, the Macintosh computers had TeachText in ROM. but it was limited to text unto 32KB. so they came up with SimpleText... today, you might want word expansion everywhere and TextExpander seems to offer this for the iphone: https://itunes.apple.com/de/app/textexpander/id326180690?mt=8 but once you have edited your text, how do you find what you had written? == Lookup == finding data: using a command line interface (CLI) such as the shell (bash, ksh, zsh), the basic idea is to give the command first and add parameters such as the keyword and a list of files: $ search keyword files... within "files..." the dots indicate possible *list* of files, eg "file1 file2 file3 ... fileN". a single star (*) will be expanded to all filenames within the current directory by the shell: $ search keyword * so here the search command will use the keyword to search through all files in the current directory. the "search" command on Unix systems is called "grep" which stands for "global regular expression print", in short ":g/re/p" which is a command within vi (vim). so we have a utility which was taken from within a tool. $ grep finding ~/talks/*denk* TODO: sharing files across the accessible file systems TODO: restrictions through permissions and ACL lists TODO: mounted file systems from other computers, eg Andrew File System but what if you have distributed your texts to quite a few different directories on the system? or if you are the system administrator and a user has simply forgotten where they have put the files? here the sys admin definitely may use "indices". == Indices == indices can automatically be created from the contents of text files. the software usually runs once a night and updates whatever is 'interesting'. a special tool to create an overview for installed software is "updatedb" - and access to it is given through the program "locate". Glimpse (GLobal IMPlicit SEarch) looks into files on the complete system, and can be used on the files which reside on a webserver. webglimpse.net == Search Engines == search engines are services which use the internet to access other sites and indesx what they can see - and what they are allowed to see. search engines have to follow the directions given in the robots.txt file (yes, a *text* file). you can tell bing.com and google.com and basically every other spidering tool what they are allowed to see by editing that file. http://www.robotstxt.org/ once the search engines have an index of the directories on your webserver, a list of files, and their contents you can also use them to search for something on your site. try eg google with "site:mydomainname". you can make that info public - or ask services to spider your webserver, but only to make the index available for internal use. how to find stuff, anyway? searchlores.org! local code: ctags to create an index of special words within the code, eg identifiers of functions and variables. the index files created by ctags can be used by vim and other editors. i use a tags file as "bookmarks" for quick access to some files within my account. :tags cal -> calendar file :tags sig -> signature file aks "notes" :tags denk -> this file on DenkWerkZeugE vim then switches to the file and uses the command following it to access whatever line is necessary. once you have selected the right file, you are ready to go. but what do coders/developers usually do? == workflow == the usual workflow when dealing with source code is a cycle between editing, compiling, and running the code. most programmers do not write the code directly in the language that CPUs/processors understand them. they use a "higher language" to do that. this allows for higher flexibility and hopefully for easier maintenance, too. (of course you can write bad, and intelligible code in every language. ;-) the "compiler" turns the source code into a sequence of commands of the CPU so it can actually execute them. once the program runs again, it can be tested by people - or even with another program which pretends to be a user. (remember this if you should ever get into UI/UX..) mind you, you can run tests, but there can never be a program which determins what another program will ever do in every possible circumstances. this is simply not possible. not because noone has come up with that program yet, but because it is simply *not* possible. (mind you, there is a hard line between "really, really hard" and "impossible". if you cannot accept this, dont argue with either computer scientists or, worse, with mathematicians.) so this is "the cycle": edit, compile, run - repeat. it is argued that there is more to it, and it is quite true. but what have you expected? changes bring change. it is confusing. will you keep every diffenrent state of a software in your head? no! == Versions == whenever we change code and it seems to run, it is a good idea to make a snapshot. but keeping your own copies can be quite some business. it can be distracting, and you will make errors. automating this process results submitting a copy to a "code repository" which may be within your own account or online. sending a copy is called "checkin" and receiving a copy is called "checkout". this brings us to the "three Cs" for the use of a repository: * checkout * changes * checkin there are many revision systems: * rcs (revision control system) * cvs (control version system) * svn (subversion) * hg (mercurial) * git a little bit of history: http://de.wikipedia.org/wiki/Revision_Control_System for more see here: http://biz30.timedoctor.com/git-mecurial-and-cvs-comparison-of-svn-software/ SVN vs Git, Mecurial, and CVS - Compare version control software | Biz 3.0 nowadays, programmers very much like "github" which is used with the system "git": github - "social coding (for all)" http://en.wikipedia.org/wiki/GitHub there are many projects hosted on github - here is a "50 most popular projects" frm 2011: http://bostinno.com/2011/08/16/githubs-50-most-popular-projects/ one of these is diaspora*! (see below) as i personally prefer tools with text/plain, i definitely like "vim" and "zsh": janus - Vim for Macintosh https://github.com/carlhuda/janus oh-my-zsh - zsh configuration - plugins and themes https://github.com/robbyrussell/oh-my-zsh so now that we know about repositories we would still have to learn how to use such tools. it's all so confusing. isn't there an easier way? (yes, an "easier way" means use a mouse. even easier with only one button, right?) == Sharing == dropbox create an account and install some software - and, presto, you can share files with others. you can share with individuals, groups, or everyone. and the great thing: versioning is included. no need for you to worry about backups. you can access your files not only from your own computer, but from other devices, too. so you can also change the files from your smartphone, from a friend's computer, from work - or from a web cafe. think of it as an "external hard disk". and think even more of it as "accessible anywhere within the internet". all you need is a device with a connection. still.. whenever a files changes, it has suddenly happened. you do not see the changes happen. suppose you are in a meeting, and everyone wants to contribute something to the minutes (log, protokoll) right away. chaos! what now? well - pads! == Pads == Pads are also known are Collabrative Real-Time Editors (CRTEs). http://en.wikipedia.org/wiki/Collaborative_real-time_editor http://en.wikipedia.org/wiki/Etherpad Etherpad is a web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each author's text in their own color. There is also a chat box in the sidebar to allow meta communication. eg www.etherpad.org www.piratepad.net colorized multi-editing plus chat. try this: TODO == Pastebins == TODO http://www.bpaste.net http://paste.debian.net/ here you can paste your text. other than in HTML (eg wikis), the text is not reformatted in any way. it will keep the EOLs as they are. here's what to do: choose a name (ten characters at most, no spaces). (you may request to be recognized again by a cookie.) you then assign a *language*, so proper syntax colouring/highlighting can be applied. you can assign a *timeout* (1h, 24h, 3d, 90d, never), so the text will vanish after some time. and you can mark the text as "hidden", so it cannot be see within the "recent posts" sidebar/timeline. when pasting some code, the usual hints are to "keep your code lines under 80 characters long" and "include comments to indicate what you need feedback on." a "hidden paste" then results in somewhat the following: Information about your entry This entry is hidden. So don't lose your hidden id (1234CDEF) To link to your entry use: paste.debian.net/hidden/1234CDEF To download your entry use: paste.debian.net/download_h/1234CDEF To see your entry as plain text use: paste.debian.net/plain_h/1234CDEF To delete your entry use: paste.debian.net/delete/1234CDEF0123456789ABCDEF0123456789ABCDEF see also: http://www.titanpad.com http://www.okfnpad.org http://etherpad.tugraz.at/ == Doodle == create polls for making choices, esp for scheduling an event. example: http://www.doodle.com/t6mg9bn4zhy67835 == Presentations == every now and then you should share your knowledge in a broadcasting such as a presentation or talk. prezi slideshare.net slideboom.com wbvazlgnyx.pbz sharing stuff: * pictures: flickr.com instagram.com * sounds: soundcloud.com * videos: youtube.com magicpoint+ttp: input as text/plain - output as pics. LaTeX beamer class: input text/plain - output as PostScript, PDF.. == Events == practise your talk. practise it again. give the talk for a friend. give the talk to a colleague. record your talk. ask for feedback. (i didnt this time. so - dont do as i do - just do as i say, okay?!) university is a nice place to give a talk. everybody is nice. noone will kill you. everything is going to be fine. conferences are challenges, however. can you give your talk in front of a bigger audience? can you be loud enough to be heard and still be clear? can you use a microphone and the mouse of keyboard? can you still give the talk when technical problems occur? can you quickly answer questions in between? can you deal with hecklers? can you still finish on time? go out there and register yourself with your talk. try this! it's good experience. and you will need it. some day for sure. are your slides online? upload them! are others allowed to use this? licenses! can you be contacted? create a business card! but there is not always an event happening which can use your talk. not right now. sorry. == Online Universities == practised your talk? given it a few times? are you firm in presenting it? and people tell you that you should give that talk again at some event? again and again? getting a little bored with it already? then get it out there! upload your slides. eg prezi.com however, good slides usually do not contain all the text (as this page). people who can see and read will simply read text rather than listen. (believe me, i know.) so slides as such are not too helpful. it needs all the words from the speaker to make it come alive. and maybe also the gestures, mimics, and intonation. you may need to see the speaker to fully understand his views. then it is the time to *record* you talk - and be done with it. whoever wants to see it again might as well go see it online. examples: Khan's University MIT ... through talks at events and recordings you might eventually draw some attention. people will contact you about your stuff. dont hesitate to respond. you are back to a personal level with people. great! some people claim that this might only be possible through the use of social software. let's take a look at that: == Social Software == "no (wo)man is an island" (John Donne) No man is an island, entire of itself; every man is a piece of the continent, a part of the main. If a clod be washed away by the sea, Europe is the less, as well as if a promontory were, as well as if a manor of thy friend's or of thine own were. Any man's death diminishes me because I am involved in mankind; and therefore never send to know for whom the bell tolls; it tolls for thee. by the way: *three* book title creates from this quote alone! so.. what makes software *social*? user of a software -> member of a community instantly. no questions asked. jump right in! http://de.wikipedia.org/wiki/Datei:Tortilla_Concept_Map.png "Dateiverwendung: Keine Seite benutzt diese Datei." and still these data are stored - again and again. == mutt+vim == mutt - mail program (mail user agent) vim - text editor mutt color setup vim syntax file config/setup - text files! always readable, short, copyable take along your settings reguard them as "wisdom" == URL Shorteners == many URls are way too *long*. example: https://agnes.hu-berlin.de/lupo/rds?state=verpublish&status=init&vmfile=no&publishid=59556&moduleCall=webInfo&publishConfFile=webInfo&publishSubDir=veranstaltung use URL shorteners! example: http://tinyurl.com/hub-32801-denkwerkzeuge afraid of what it might turn out to be? example: http://preview.tinyurl.com/hub-32801-denkwerkzeuge caveat: those services/sites can *die*. URL team to the rescue! http://urlte.am/releases/2011-12-31/README.txt motto: "we are going to rescue your shit"! == The Cloud == "data are safer in the cloud". what? NO! what you are referring to is the "safety through redundancy". more copies raise the chance, that at least one copy survives. okay. repeat after me: redundacy is good! redundacy is good! redundacy is good! but what when you lose the connection to your copies? where exactly are those copies, anyway? where should you go and knock on which door? my point: for some safety you ought to know where the servers *physically* are. and you should know whom to talk to. otherwise those copies are lost, too. my advice is to choose a network where you know the source of the data and which is under your own control. beispiel: disapora http://en.wikipedia.org/wiki/Diaspora_(software) distributed social network free software, pods, share use your own server to set up a "pod". freely share your data between pods. -> meetup group for Diaspora at c-base http://www.meetup.com/Diaspora/ 150 groups http://www.meetup.com/Diaspora/Berlin-DE/ 2013-01-24 @in-berlin hint: www.in-berlin.de so your data is now stored somewhere else. and the usual question is: can we trust them? == Paranoia == will they look at our data? will they scan it for data? will they keep copies of it? will they sue us about it? remember: just because you're not paranoid doesn't mean they're not out there to get you. be safe! == Privacy == what is privacy? it's "copy control". not by companies, but by yourself. *you* control who receives a copy of your data. once a copy is out there, you lose control over it. that's how it is. get over it. however, companies and governments try to control their copies. this is called Digital Rights Management (DRM): http://en.wikipedia.org/wiki/Digital_rights_management Digital rights management (DRM) is a class of access control technologies that are used by hardware manufacturers, publishers, copyright holders, and individuals with the intent to limit the use of digital content and devices after sale. with DRM, digital content cannot be bought and owned, only rented. for a limited time. for a limited number of uses. the next time you go online with your ebook device, the owners just might delete ebooks from your device. this is legal. remember: an ebook is not property. you think this isnt possible? it already happened: http://betanews.com/2009/07/17/media-goes-crazy-over-amazon-deleting-1984-from-kindle-but-99-cent-ebook-was-illegal-copy/ so remember: your e-book is not yours. you do not own it. you cannot rent it. you cannot sell it. you cannot hand it on to someone else. you must not create copies, not even for backup. when you rent the software - do you own your creations? or are they owned by the owners of the software you *rent*? "Freedom does not constitute the freedom to copy works of others. Piracy is not simply illegal, it is first of all unfair." http://f4m8.soup.io/post/298753805/Image http://f4m8.soup.io/post/298753458/Image be excellent to each other - or else! == Security == Safety is protection against accidental events; security is protection against intentional damages. http://www.differencebetween.com/difference-between-safety-and-vs-security/ Difference Between Safety and Security "While safety is protection against hazards (accidents that are unintentional), security is a state of feeling protected against threats that are deliberate and intentional." when you give a copy of your data to someone then he will be able to look at at - out of curiosity or by force - legally or illegally. digital self-defense: encryption! encryption is not legal everywhere. china forbids it (of course). france forbids it (wtf??). usa: pgp is "ammunition". use encryption to keep others from "accidentally" snooping on your data. why? do you have anything to hide? "yes - my privacy." Phil Zimmermann (creator of PGP) in 1991: "If privacy is outlawed, only outlaws will have privacy." http://www.philzimmermann.com/EN/essays/WhyIWrotePGP.html megaupload.com -> mega.com before upload, data is automatically encrypted on the client side (ie with the data holder). mega stores only the encrypted data. the key is stored with the uploader. mega does not know the key - and cannot decrypt it, either. == Summary == text is fundamental for keeping a copy of our thoughts. now we can easily create texts with our computers. there is an abundance for tools deal with text. we can store them locally on our machines, but the internet is the medium to easily send our data to other machines - for storage. use it. create copies of your thoughts! we can share our texts and collaborate on them. versioning is automatically included. use it! but if you do not want others to look into our data - use encryption. have other sites store your *encrypted* data. == The End == Death of Culture: http://f4m8.soup.io/post/298755483/Saturday-Morning-Breakfast-Cereal make the best of the internet - while it is still allowed! thankyou for listening and thankyou for your questions. questions? == Events == some upcoming events at a place near you: World Usability Day 2012 http://2012.wud-berlin.de/ UXcamp Europe 2012 #uxce12 http://uxcampeurope.org 2012-05-26+27 Erwin-Schrödinger-Zentrum Adlershof Rudower Chaussee 26, 12489 Berlin http://www.esz.hu-berlin.de/ http://www.flickr.com/groups/uxcampeurope2012/ UXcamp Europe 2013 #uxce13 https://www.facebook.com/groups/196246871302/10151477369121303/ 2013-03-16+17 Sat+Sun CLT Chemnitzer Linux Tage chemnitzer.linux-tage.de 2013-05-22-25 Wed-Sat LT LinuxTag in Berlin www.linuxtag.org 2013-04-20 Sat GLT Grazer Linux-Tag (GLT) www.linuxtage.at FOSDEM (bruessel), FrOSCon (bonn), FSCONS (goeteborg) OHM2013.org Observe. Hack. Make. in summer, in NL. == Links == aka "Homework" ;-) == read == Why You Really Need to Learn to Code, Starting Now http://bostinno.com/2012/12/11/why-you-really-need-to-learn-to-code-starting-now/ http://c4lpt.co.uk/top100tools/ A summary of the Top 100 Tools 2012 and where the Top 100 Tools are mainly being used – ie for Personal/Professional learning/productivity, in Education and/or in the Enterprise (for training, performance support and/or team collaboration). http://www.rheingold.com/texts/tft/1.html Tools for Thought by Howard Rheingold especially chapter nine. == watch == Amy Cuddy: Your body language shapes who you are http://www.youtube.com/watch?v=Ks-_Mh1QhMc Aimee Mullins: How my legs give me super-powers http://blog.ted.com/2009/03/11/aimee_mullins_12/ Evelyn Glennie: How to truly listen http://www.ted.com/talks/evelyn_glennie_shows_how_to_listen.html Randy Pausch - Last Lecture (76:27min): http://www.youtube.com/watch?v=ji5_MqicxSoShare Randy Pausch - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Randy_Pausch The Last Lecture | Randy Pausch http://www.thelastlecture.com/ == Remember == Life can be fun! :-) == License == the license of this talk is cc-by-nc-sa explanation: cc it's a creative commons license by please mention the name of the author nc non-commercial. do NOT use commercial purposes. sa share-alike. whatever you make of it - the result MUST bear this license. see also: http://www.creativecommons.org/licenses/by-nc-sa/3.0/ == TODO == == licenses == "sharing is caring" but how? legally? * public domain * open source * free software * creative commons * GPL, LGPL, MIT, Apache, Mozilla.. special: www.wtfpl.net WTFPL - Do What the Fuck You Want to Public License http://en.wikipedia.org/wiki/WTFPL http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html Pick a License, Any License == Wikis == collaboration in wikis: one connection sends editing request and is granted this for some time. then "saving" the text actually sends it back to the webserver where it will be merged with the already existing text. conflicts may occur and have to be resolved by the connecting client. "one editor at a time".. that's it. really. "your call is important to us.. please hold..." drawback: you need an online connection during the time of your editing. you must adjust to editing within a browser window (no undo+redo) and within a given time frame. you should not lose the connection; different IP number means a different host, and then you have to login *again*. ikiwiki.info check out the text, edit it, check it in again. choose your favourite repository tool, choose your favourite wiki dialect, choose your favourite editor. freedom to choose! :-) == Show&Tell == examples for a wiki and a pad. == Screen == screen.. now GNU screen.. was created in 1987 - at the TUB (Technical Universitaet Berlin). it is like a window manager for the terminal. you would switch between full screen windows, each running one process/program/task. you can give names and numbers to windows, you can even split the screen into subwindows (regions). but it really gets interesting when you realize that your view on the windows can be *shared*. you can allow others to have their own view on all windows. they can watch what you are doing. this may sound scary, but relax, your view is *not* visible to anyone by default. you specifically have to turn this on. imagine talking to someone on the phone about a problem you have on your computer. instead of answering the question of "what are you seeing now?", you simply talk about what you *both* can see. you can also allow other viewers to give input to your processes (write access). now the other person may be able to show you how your problem can be solved. here you can definitely collaborate on the same processes. restriction: you both must have an account on the same machine. you can even log off and keep screen running - and it will keep your processes runnning, too. when you log on again, then you simply create a viewing process to the session with a command and continue working on it. there is another window manager for the terminal - tmux (terminal multiplexer). and the whole idea is not only available to processes running in a terminal - there are systems which allow access to a computer, running a desktop, too. == Perspektivendiagramm == was weiss ich bereits? was will ich wissen? was ist positiv bzw negativ an der sache? i have never seen software people creating such a diagram. ever. but it sure is worth asking yourself these questions. dont get discouraged. keep asking developers! some day they might get it. == Mindmaps == a note on mindmaps. mindmaps.. are trees. the topic is somewhere in the middle, as the root or stem of the tree. you add more words to the map, connecting it to the root - and thus creating twigs. adding more and more gives a tree with its root, twigs, and leaves at the ends. note: usually, no connection from the leaves ever go back to a previous one. you can add more and connect them to leaves, turning leaves into extended twigs. but there is no way back. no circles. so we have created a tree which has no circles. the nice thing about it: you can have that turned into an ordered list automatically. the software can do it for you. the problem with mindmap software: once you save such a structure and load it into the program again, it may look completely different. at least that was my experience with mindmap software some years ago. and i didnt like it at all. sorry. hopefully it is better now. mindmeister.com == Transmission == the model of a transmission seems pretty easy. the sender sends his message through a channel to the recipient. another name for channel is "medium". * Sender * Message * Channel * Recipient OSI Modell == Syncronization == once you got your copies of data elsewhere you may lose track of the versions of files. in that case you may to synchronize them. there are tools to do this - but also services which do that for you. == Schedule == * single maschine, single user * single maschine, multiple users (time sharing, Multics, Unix) * several maschines, local network * several maschines, wide area network * lots of maschines, internet * client+server service: * file storage * versioning asynchronous changing/editing: * repositories * wikis synchronous changing/editing: * pads ikiwiki: * free choice of revision access tool * free choice of wiki syntax * free choice of local editor * offline editing == ... == http://en.wikipedia.org/wiki/Collaborative_software http://en.wikipedia.org/wiki/Collaboration_tool http://en.wikipedia.org/wiki/Cloud_collaboration http://en.wikipedia.org/wiki/Document_collaboration Chat aside - either included, or as an extra - Circuspony, Notebook, Papers / Mendeley - Lyx, Tinderbox, Scrivener == Toolface == so many buttons around your text area.. do you really need to see them all the time? toggle command to full screen of text area (workspace). == TODO == Sharepoint Google Docs folders.io ge.tt tools let you be creative. you can create new data from scratch, you can change your created data, you can import data from others, and you can export it to others. great. there are sites to gather exported data, create groups and sets of people, let them converse in forums, and notify each other of updates. great. the difficult part is concerting the data between formats, and allowing people to change the same data at the same time. nobody wants to "backup", everyone wants "restore". automized versioning keeps your mind off the "save" command. special tools: create electrical circuits, floor plans for buildings, tools for creating text -> text editors! darkeditor, easynote, kustomnote, notepad and simple notepad, word flow, writebox. tools galore! tools which keep being re-invented: * bookmarks * calculators * calendars * clocks (world) * date+time (countdown, stop watch, timer) * diaries and notes * dictionaries and translators * password generators+briefcases * todo lists * unit converters * weather forecast the three big types if data: * pictures (visible) * sounds (audible) * texts (readable) * decrypt/encrypt * calculate hash sums * host lookup (IP) * nslookup+whois (DNS) * ping + traceroute * proxies (Tor) * show my ip * show open ports * speed test (download/upload) * ssh (telnet) interface changes: * vichrome * vimium * speech 2 text (input) * text 2 speech (output) * spell checker * translation * instapaper, readlater just upload your data.. DANGER, WILL ROBINSON! ask yourself: do you really want to give away a copy of your personal, private data to people behind a website you dont know? do you trust people enough to NOT blackmail or compromise you, your family and friends, your business and your LIFE? * different versions of software * different setup of fonts * collaborators cannot meet because they are apart * backups + restore * footnotes, formulas, glossaries, tables, lists (verzeichnisse), index pastebin.com end-to-end-encryption: https://plus.google.com/105160563500133624225 smartdroid.de owncloud.org apps fuer android+iphone: https://owncloud.com/overview/mobileapps https://github.com/haiwen/seafile Self-hosting dropbox for teams. www.hide.io www.kepard.com www.priv.ly