SixthSense on TED from MIT

Free virtual appliance

http://www.turnkeylinux.org/

Turnkey Linux is an open source project developing a free virtual appliance library that features the very best server-oriented open source software. Each virtual appliance is optimized for ease of use and can be deployed in just a few minutes on bare metal, a virtual machine and in the cloud.

Visual diff and merge tool

Gnome:
http://meld.sourceforge.net/

sudo apt-get install meld

Meld is a visual diff and merge tool. You can compare two or three files and edit them in place (diffs update dynamically). You can compare two or three folders and launch file comparisons. You can browse and view a working copy from popular version control systems such such as CVS, Subversion, Bazaar-ng and Mercurial. Look at the screenshots page for more detailed features.

KDE:
http://www.caffeinated.me.uk/kompare/

sudo apt-get install kompare

Kompare is a graphical difference viewer that allows you to visualize changes to a file. Whether you’re a developer comparing source code, or you just want to see the difference between that research paper draft and the final document.

Windows:

http://winmerge.org/

http://sourceforge.net/projects/winmerge/files/

WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.

Free DNS Servers

Google
- 8.8.8.8
- 8.8.4.4

ScrubIt (http://www.scrubit.com/)

- 67.138.54.100
- 207.225.209.66

Dnsadvantage (http://www.dnsadvantage.com/)

- 156.154.70.1
- 156.154.71.1

OpenDNS (http://www.opendns.com/)

- 208.67.222.222
- 208.67.220.220

FreeNAS

http://freenas.org/

FreeNAS is an embedded open source NAS (Network-Attached Storage) distribution based on FreeBSD, supporting the following protocols: CIFS (samba), FTP, NFS, TFTP, AFP, RSYNC, Unison, iSCSI (initiator and target) and UPnP.

It supports Software RAID (0,1,5), ZFS, disk encryption, S.M.A.R.T/email monitoring with a WEB configuration interface (fromm0n0wall).

FreeNAS can be installed on Compact Flash/USB key, hard drive or booted from LiveCD.

Trust Linux! OpenSuse

A team of researchers has implemented support for ‘trusted computing’ in a commercially available version of the open source operating system Linux, breaking new ground in the global drive toward more secure computing environments.

The latest release of openSUSE, a Linux version sponsored by software maker Novell, comes packaged with software that allows users to set up a trusted computing (TC) environment on their computer, enhancing security beyond the antivirus programs and firewalls that frequently prove inadequate at keeping bugs, viruses and spyware at bay.

Promoted and developed by major chipmakers and software companies in the international Trusted Computing Group, trusted computing uses both hardware and software to create a trusted and secure environment, whether on a home PC, a web server, in a data centre or over a corporate network. At the core of the technology is the trusted platform module (TPM), which is a chip that, among other security-boosting features, generates and manages cryptographic keys, verifies the identity of the computer on a network and protects software and data from malicious changes.
Awakening the dormant chip

Many new laptops and increasing numbers of desktop PCs and servers already have TPM chips as standard, while chipmakers such as Intel and AMD have started incorporating the technology directly into their latest generation of processors. However, most TPM chips are currently lying dormant, awaiting activation with the arrival of software that can make use of their enhanced security features.

“The hardware is there… what is needed are operating systems and software to exploit it,” says Herbert Petautschnig, a researcher at Austrian technology group Technikon.

Technikon led a consortium of 23 research and business partners, including AMD, IBM, HP, Infineon and Novell, in developing open source software and applications for TC environments as part of the EU-funded OpenTC project. The group’s implementation of TC support in openSUSE version 11.2 involved building a trusted software stack (TSS) for Linux, developing universal virtualisation layers (including improvements to the Xen hypervisor virtual machine monitor) and creating TC and TPM management software. It constitutes a pioneering implementation of TC technology.

“openSUSE is now the first operating system to offer full TC support,” Petautschnig notes. “Until now, TC had been implemented for specific applications, such as Microsoft’s BitLocker hard drive encryption in Windows Vista and Windows 7 or the fingerprint reader on some HP laptops… With the OpenTC platform we are extending the TC environment to the full operating system and beyond,” the project manager adds.

Unlike traditional security technology that operates only at the software level and only starts protecting a computer after it is loaded, TC technology provides security from the moment the power button is pressed. As the system boots and runs, the OpenTC platform continually monitors the computer for changes and ensures that only trusted, verified software is functioning. In a networked environment, it verifies the identity and integrity of the computer. And it allows different pieces of software and data to be “compartmentalised” so there is no exchange between them even as they share the same computing and/or network resources.
Safer online transactions, trusted corporate networking

OpenTC developed several proof-of-concept applications for the technology. In one, called private electronic transaction (PET), the team showed how it can verify and secure online transactions, such as accessing a bank account. In another, they showed how TC compartments can provide secure remote access to corporate networks, both keeping company information safe on an employee’s home PC and ensuring that the employee’s personal information, photos and games are not visible to their employer.

The ability of TC technology to keep data and processes safely isolated from each other can be extended to enable virtual data centres. As demonstrated by IBM in the OpenTC project, TC software could be used by data centre operators to provide virtualised resources to different clients while sharing the underlying physical infrastructure, thereby ensuring different companies’ data remain separate and secure.

The logical next step, which members of the OpenTC consortium plan to explore in a new project, is to extend TC to cloud computing to enhance the security of services and computational resources provided over the internet. Another project, TECOM, a follow-up initiative to OpenTC that has also received EU funding, will aim to develop TC solutions for embedded platforms, focusing particularly on smart phones and mobile computing applications.

Several of the project partners are commercially exploiting the results of the OpenTC project internally. Petautschnig says they are also open to investor interest to support further development of TC technology. Consortium members are also active in standardisation efforts, helping to extend trusted computing to mobile platforms and the Java programming language, for example.
Despite controversy, a bright future

In the past, TC technology has stirred controversy, not least over its potential for abuse by software and hardware makers to restrict what computer users can do and its applications for digital rights management. However, Petautschnig believes the future for trusted computing systems is bright as the technology starts to be seen as an essential tool in the fight against an intensifying onslaught of hack attacks, viruses and spyware bombarding the world’s computer users.

“Most people will not know that TC components are running on their computers keeping them safe. Conversely, at present most do not know what information is being leaked and stolen by spyware and viruses running on their machines,” Petautschnig notes.

OpenTC project
OpenTC fact sheet on CORDIS

From: Cordis – ICT Results

The Zen of Scrum

100 Computer Open Courses

Computer Science and Engineering

These courses offer you a chance to learn about everything from electrical engineering to the basics of computer science.

  1. Data and Processing in Computers: Learn just how computers and software work in this free course. [OpenLearn]
  2. Theory of Computation: This course will help you learn some of the more advanced theories behind how computers operate. [MIT]
  3. Introduction to Computer Science and Programming: Start from the beginning in your computer science education with this course. [MIT]
  4. Structure and Interpretation of Computer Programs: Take this course to learn some basic programming skills and how to work within computer systems. [MIT]
  5. Signals and Systems: Here you can learn about the basics of systems and signals analysis. [MIT]
  6. Topics in Theoretical Computer Science: Internet Research Problems:With so much being based around the web these days, this course will help you learn to develop systems and solve problems using the internet. [MIT]
  7. Great Ideas in Theoretical Computer Science: This course offers a great introduction to the theories of computer science, from the beginnings of computer systems to the present day. [MIT]
  8. Pervasive Human Centric Computing: Try out this course to learn about all kinds of computing devices in addition to the personal computer. [MIT]
  9. Circuits and Electronics: Through this course, students will learn the essentials of electrical engineering. [MIT]
  10. Computation Structures: Learn about engineering digital computer systems from this course. [MIT]
  11. Computer System Engineering: Check out this course to get an education on the engineering of computer software and hardware systems. [MIT]
  12. Microelectronic Devices and Circuits: This course offers learners the chance to expand their knowledge of modeling of microelectronic devices, basic microelectronic circuit analysis and design, physical electronics of semiconductor junction and more.
  13. Videogame Theory and Analysis: Study the social and educational implications of video games in this course. [MIT]
  14. Artificial Intelligence: This course will introduce students to the representation, problem solving, and learning methods of artificial intelligence.[MIT]

Computer Security

There isn’t much point in having an awesome tech setup if it’s at risk of being destroyed by hackers or digital ne’er-do-wells. These courses will help you learn to keep information and systems secure.

  1. Cryptography and Cryptanalysis: This course will introduce students to public-key encryption, digital signatures, pseudo-random number generation, and basic protocols. [MIT]
  2. Advanced Topics in Cryptography: Expand on your knowledge of cryptographic topics with this great free course. [MIT]
  3. Network Security: Learn how to secure your networks at home and at work with this course. [OpenLearn]
  4. An introduction to information security: Try out this course to learn the basics of information security. [OpenLearn]
  5. Selected Topics in Cryptography: Examine special topics in cryptography in this course, like cryptographic protocols and secure voting systems. [MIT]
  6. Network and Computer Security: Through this course you can learn everything from risk assessment to protecting software. [MIT]

Programming

Check out these courses to learn the basics of several different programming languages.

  1. Introduction to Software Engineering in Java: Take this course to learn how to use Java to build computer programs. [MIT]
  2. Building Programming Experience: If you want to expand on your existing programming knowledge, consider going through the resources offered in this course. [MIT]
  3. Java Preparation: If you know little to nothing about Java, take this course to get a good foundation. [MIT]
  4. Essential Coding Theory: Learn about the past and present of the theory of error-correcting codes. [MIT]
  5. Programming Languages: While this course uses the Scheme + programming language, you’ll learn the fundamentals that apply to many other languages as well. [MIT]
  6. Nonlinear Programming: Address some of the less straightforward problems with programming in this course. [MIT]
  7. Dynamic Programming and Stochastic Control: Learn how to make decisions under uncertain conditions when programming through this course. [MIT]
  8. A Gentle Introduction to Programming Using Python: This course will make learning Python painless and useful. [MIT]
  9. Program Analysis: Here you’ll learn how to turn a critical eye towards several major programming issues in this course. [MIT]
  10. Computer Language Engineering: Through this course you’ll learn how to implement advanced programming languages. [MIT]
  11. Introduction to C++: Go through the materials offered by this course to learn how to use C ++. [MIT]

The Web

From building a website to understanding how the web works, these courses offer a great variety of learning opportunities.

  1. Ethics and the Law on the Electronic Frontier: Examine the legal issues that face working on the web and protecting copyrights in the digital era. [MIT]
  2. Social Visualization: This course will take you through learning how to create a visual representation of the visitors to any given websites. [MIT]
  3. People-centered Design: From amusement park rides to elevators, this course will help you learn more about creating products that work for users. [OpenLearn]
  4. Designing Sociable Media: Learn how the design of a website influences how people use it to interact and get a chance to build your own social media in this course. [MIT]
  5. Flash: If you’ve never learned how to use Flash, this course offers a great introduction. [USU]
  6. Learn and Apply HTML: Most of the web is still based around an HTML framework, so learning how to use the programming language through this course can be a big help. [USU]
  7. Fundamentals of Computational Media Design: Take this course to learn about the history of 20th century art and design from the perspective of the technologist. [MIT]
  8. Interactive Multimedia Production: Through this course you’ll use Flash to build online programs that users can interact with. [USU]
  9. Writing on Contemporary Issues: Culture Shock! Writing, Editing, and Publishing in Cyberspace: This English course teaches students some of the challenges and advantages to publishing work online. [MIT]

Software

Learn more about the world of software engineering and design from these courses.

  1. Computer Graphics: Learn how to build computer graphics in this course that teaches students about the computer graphics hardware, algorithms, and software needed. [MIT]
  2. User Interface Design and Implementation: A great program isn’t particularly useful if it isn’t user friendly, and this course will focus on teaching how to build great, easy-to-navigate interfaces. [MIT]
  3. The Software Business: If you’ve got a great idea for a software product, you can use this course to learn about the business side of things and how you can get your product on the market. [MIT]
  4. Laboratory in Software Engineering: Through this course students will be able to learn how to build software from the ground up. [MIT]
  5. Structure and Interpretation of Computer Programs: Take this course to learn how to apply computer programming methods to solve computational problems. [MIT]
  6. Foundations of Software Engineering: This introductory course is a great place to get started learning more about software engineering. [MIT]
  7. Common Sense Reasoning for Interactive Applications: Take advantage of the knowledge users already process when designing user interfaces in this course. [MIT]
  8. Program Analysis: Learn how to look critically at the way programs are working with a little help from this course. [MIT]
  9. Designing the user interface: text, colour, images, moving images and sound: Learn about the important role all of these aspects play in engaging users. [OpenLearn]

Information Technology

Whether you want to be an IT professional or just get a better understanding of the field, these courses can help.

  1. Database Systems: Here you can learn about the foundations of database systems. [MIT]
  2. Information Technology I: Take this introductory course to learn about some of the essentials in information technology. [MIT]
  3. Global Issues in Information Technology: Learn how culture influences how technologies are used in this course. [TWB]
  4. Database, Internet, and Systems Integration Technologies: This course is billed as an intensive review of information technology topics, including software development, databases and web development. [MIT]
  5. Data Structures and Programming Methodology: This course will teach you about the math used in information technology and the multiple ways information and data can be organized. [UC Berkeley]
  6. Computer Networks: Through this course you’ll learn more about global networks and the principles on which they are organized. [MIT]
  7. Networks: Theory and Application: Here you can learn about a variety of networking topics from social networks to applications in information networks such as the Internet. [U of Michigan]
  8. Information Technology and the Labor Market: Learn how the prevalence of IT is reshaping the American labor market. [MIT]
  9. Information Technology Essentials: Make sure you’ve got down the basics of what it takes to understand information technology with some guidance from this course. [MIT]
  10. Practical Information Technology Management: Take this course to learn how to make sound business decisions when it comes to IT. [MIT]

Communication Technology

These courses address everything from cell phones to communication systems.

  1. High Speed Communication Circuits and Systems: This course will address the important issues in circuit design in communication devices. [MIT]
  2. Data Communication Networks: Learn why networks are structured the way they are and how they might change in the future in this course. [MIT]
  3. Communicating in Cyberspace: Here students will learn to think critically about developing communications systems for use on the internet. [MIT]
  4. Digital Communications: Take a closer look at optical fiber links in this course. [MIT]
  5. Principles of Wireless Communications: This course will cover the design, analysis, and fundamental limits of wireless transmission systems.[MIT]
  6. Intro to Tech Communication: While having technical knowledge is great, this course addresses how to improve communication so you can get your ideas out there. [MIT]
  7. Communication Systems Engineering: Learn what goes into designing and building communications systems for aerospace, satellites, and deep space devices. [MIT]
  8. Transmission of Information: This course will help you learn more about the quantitative theory of information. [MIT]
  9. Communication Systems I: Split into two parts, this first course will teach students about basic analog systems. [USU]
  10. Principles of Digital Communications: This course will help students gain a better understanding of how modern communication devices work. [MIT]

Technology in Education

Use these courses to get an idea of how technology is changing education.

  1. Technologies for Creative Learning: Take a look at this course to consider how technology can help people learn new things in exciting ways. [MIT]
  2. Computer Games and Simulations for Investigation and Education: This course will teach you how people learn from interactive computer environments and encourage students to develop their own learning systems. [MIT]
  3. Educational Technologies in Learning Theories: Through this course you can learn about several different learning theories and the role technology can play in each of them. [TWB]
  4. Producing Distance Education Resources: Learn how to build better resources for distance learning through this course. [USU]
  5. Networks for Learning: Here you can take a course that focuses on the problem of supervised learning within the framework of Statistical Learning Theory. [MIT]
  6. How to Learn (Almost) Anything: Check out this course to learn how digital technologies can be used to teach just about anything. [MIT]
  7. Digital Libraries: Learn more about the future of the library through this course. [U of Michigan]
  8. Technological Tools for School Reform: From cheap laptops to schools better using technology, this course offers ideas for change through a technological lens. [MIT]
  9. Information and Communication Technology in Education: In this course you’ll learn why it’s so important to teach students how to use computers. [TWB]
  10. Blogs, Wikis, New Media for Learning: Take a look at this course to discover what role these new technologies might play in the classroom. [USU]
  11. Autism Theory and Technology: In this course you’ll learn not only about autism, but also about the role technology can play in making it easier for these kids to learn and interact with others. [MIT]

Tech Math

Make sure you understand the principles behind the technology you’re using with these great courses.

  1. Introduction to Algorithms: Take a look at this course material to get a handle on the basics of algorithms. [MIT]
  2. Introduction to Mathematical Programming: This course will take you through the numbers behind all the programming. [MIT]
  3. Distributed Algorithms: Learn about the latest research in this field through this informative and cutting-edge course. [MIT]
  4. Automata, Computability, and Complexity: Take this course to learn more about topics like finite automata and regular languages, context-free languages, Turing machines, partial recursive functions and more. [MIT]
  5. Mathematics for Computer Science: Math is important to computer science, so learn how to do everything from the basics to more complex problems in this course. [MIT]
  6. Probabilistic Systems Analysis and Applied Probability: We live in an uncertain world, and this course offers a chance to understand the math behind probability. [MIT]
  7. Advanced Calculus for Engineers: If you’re more focused on the design side of things, this course can give you the math background you need. [MIT]
  8. Topics in Theoretical Computer Science: An Algorithmist’s Toolkit: Take this course to learn about some of the geometric tools used in defining algorithms. [MIT]
  9. Quantum Computation: In this course you’ll get a chance to learn about the physics of information processing, quantum logic, and quantum algorithms. [MIT]
  10. Principles in Applied Mathematics: Here you’ll learn about the role math plays in coding, engineering and more. [MIT]

Technology and Society

Take these courses to learn about the cultural and social implications of technology.

  1. Technology in American History: Going back to colonial times, this course will address the role in which technology has played in shaping American history. [MIT]
  2. The History of Computing: Learn about computers from their infancy to the present day in this course. [MIT]
  3. Technology and Nature in American History: Take this course to learn how the term “nature” has been shaped by industrial practices. [MIT]
  4. Technology and Gender in American History: Technology is often considered a man’s world, but this course addresses the myriad of roles women have played and the changing relationship between the sexes and new technology. [MIT]
  5. Technology in a Dangerous World: Check out this course to better understand the relationship between terrorism and technology. [MIT]
  6. Technology and Culture: Here you’ll learn about the effects technology has had on culture around the world and whether or not it has changed things for the better. [MIT]
  7. The Anthropology of Computing: Look at computers and their role in human society from an anthropological standpoint in this course. [MIT]
  8. Introduction to the History of Technology: While you might be more interested in modern technology, understanding the roots of the gadgets you use could be useful, and this course will educate you on just that. [MIT]
  9. Social and Political Implications of Technology: Take a look at how technology influences how society is organized and how people behave in this course. [MIT]
  10. Cultural History of Technology: This course explains that the idea of technology is relatively new and explores the effect it has had on how people define themselves and their world. [MIT]From: onlinecourses.org