background preloader

Intro to cs, continued

Facebook Twitter

11oli.extension.harvard.edu. 12.extension.harvard.edu. Linked Lists in 10 minutes - I. 13.extension.harvard.edu. Valgrind. Valgrind was originally designed to be a free memory debugging tool for Linux on x86, but has since evolved to become a generic framework for creating dynamic analysis tools such as checkers and profilers.

Valgrind

It is used by a number of Linux-based projects.[4] Since version 3.5, Valgrind also works on Mac OS X. The original author of Valgrind is Julian Seward, who in 2006 won a Google-O'Reilly Open Source Award for his work on Valgrind.[5][6] Several others have also made significant contributions, including Cerion Armour-Brown, Jeremy Fitzhardinge, Tom Hughes, Nicholas Nethercote, Paul Mackerras, Dirk Mueller, Bart Van Assche, Josef Weidendorfer and Robert Walsh.[7] Overview[edit] Valgrind is in essence a virtual machine using just-in-time (JIT) compilation techniques, including dynamic recompilation.

Nothing from the original program ever gets run directly on the host processor. Tools[edit] Memcheck[edit] The price of this is lost performance. Other tools[edit] Linked list. A linked list whose nodes contain two fields: an integer value and a link to the next node.

Linked list

The last node is linked to a terminator used to signify the end of the list. The principal benefit of a linked list over a conventional array is that the list elements can easily be inserted or removed without reallocation or reorganization of the entire structure because the data items need not be stored contiguously in memory or on disk, while an array has to be declared in the source code, before compiling and running the program. Linked lists allow insertion and removal of nodes at any point in the list, and can do so with a constant number of operations if the link previous to the link being added or removed is maintained during list traversal.

On the other hand, simple linked lists by themselves do not allow random access to the data, or any form of efficient indexing. Advantages[edit] Disadvantages[edit] History[edit] Basic concepts and nomenclature[edit] Bitwise operation. In digital computer programming, a bitwise operation operates on one or more bit patterns or binary numerals at the level of their individual bits.

Bitwise operation

It is a fast, primitive action directly supported by the processor, and is used to manipulate values for comparisons and calculations. On simple low-cost processors, typically, bitwise operations are substantially faster than division, several times faster than multiplication, and sometimes significantly faster than addition. While modern processors usually perform addition and multiplication just as fast as bitwise operations due to their longer instruction pipelines and other architectural design choices, bitwise operations do commonly use less power because of the reduced use of resources. Bitwise operators[edit] Hash table. A small phone book as a hash table Hashing[edit] The idea of hashing is to distribute the entries (key/value pairs) across an array of buckets.

Hash table

Given a key, the algorithm computes an index that suggests where the entry can be found: index = f(key, array_size) Binary search tree. A binary search tree of size 9 and depth 3, with root 8 and leaves 1, 4, 7 and 13 Generally, the information represented by each node is a record rather than a single data element.

Binary search tree

However, for sequencing purposes, nodes are compared according to their keys rather than any part of their associated records. The major advantage of binary search trees over other data structures is that the related sorting algorithms and search algorithms such as in-order traversal can be very efficient. The other advantages are: Binary Search Tree is fast in insertion and deletion etc when balanced.Very efficient and its code is easier than other data structures.Stores keys in the nodes in a way that searching, insertion and deletion can be done efficiently.Implementation is very simple in Binary Search Trees.Nodes in tree are dynamic in nature.

Animation of a binary tree in Java. Heapsort audibilization. Heap Sort. Heapsort. Huffman coding. Huffman tree generated from the exact frequencies of the text "this is an example of a huffman tree".

Huffman coding

The frequencies and codes of each character are below. Encoding the sentence with this code requires 135 bits, as opposed to 288 bits if 36 characters of 8 bits were used. (This assumes that the code tree structure is known to the decoder and thus does not need to be counted as part of the transmitted information.) In computer science and information theory, Huffman coding is an entropy encoding algorithm used for lossless data compression. 14.extension.harvard.edu. 15.extension.harvard.edu. Angry C Is Angry « Worldgnat. Angry C is angry.

Angry C Is Angry « Worldgnat

I drew this a few days ago. Drawing is one of my hobbies, and I’ve developed a love for web comics, so I might post one of these every once in a while. Segmentation fault. Overview[edit] Example of human generated signal A segmentation fault occurs when a program attempts to access a memory location that it is not allowed to access, or attempts to access a memory location in a way that is not allowed (for example, attempting to write to a read-only location, or to overwrite part of the operating system).

Segmentation fault

The term "segmentation" has various uses in computing; in the context of "segmentation fault", a term used since the 1950s, it refers to the address space of a program. Huffman Encoding Compression Algorithm Tutorial. The Huffman encoding algorithm is an optimal compression algorithm when only the frequency of individual letters are used to compress the data.

Huffman Encoding Compression Algorithm Tutorial

(There are better algorithms that can use more structure of the file than just letter frequencies.) The idea behind the algorithm is that if you have some letters that are more frequent than others, it makes sense to use fewer bits to encode those letters than to encode the less frequent letters. For instance, take the following phrase: "ADA ATE APPLE". There are 4 As, 1 D, 1 T, 2 Es, 2 Ps, 1 L, and 2 spaces.

There are a few ways that might be reasonable ways of encoding this phrase using letter frequencies. TCP/IP model. The Internet protocol suite is the computer networking model and set of communications protocols used on the Internet and similar computer networks.

TCP/IP model

It is commonly known as TCP/IP, because its most important protocols, the Transmission Control Protocol (TCP) and the Internet Protocol (IP), were the first networking protocols defined in this standard. Often also called the Internet model, it was originally also known as the DoD model, because the development of the networking model was funded by DARPA, an agency of the United States Department of Defense.

TCP/IP provides end-to-end connectivity specifying how data should be packetized, addressed, transmitted, routed and received at the destination. The TCP/IP model and related protocol models are maintained by the Internet Engineering Task Force (IETF). History[edit] Early research[edit] HTML Tutorial. PHP Tutorial. What is HTTP. How to view the code behind a website. If you would like to take a look behind the scenes and view the code behind a website, then by far the quickest and easiest ways to do this are listed below.

You will need to check which browser you are using. If you are unsure then it is probably Explorer ;). Internet Explorer Shortcut keys. List of Internet top-level domains. This is a list of Internet top-level domains (TLDs). A top-level domain is a domain name in the Domain Name System that is a direct subdomain of the DNS root zone. The official list of all top-level domains is maintained by the Internet Assigned Numbers Authority (IANA).[1] In an initiative to expand the domain name space, IANA is considering approval of several proposed top-level domains. Original top-level domains[edit] HTTP 404. The 404 or Not Found error message is a HTTP standard response code indicating that the client was able to communicate with the server, but the server could not find what was requested.

The web site hosting server will typically generate a "404 Not Found" web page when a user attempts to follow a broken or dead link; hence the 404 error is one of the most recognizable errors users can find on the web.[1] A 404 error should not be confused with "server not found" or similar errors, in which a connection to the destination server could not be made at all. A 404 error indicates that the requested resource may be available again in the future; however, the fact does not guarantee the same content. Overview[edit] When communicating via HTTP, a server is required to respond to a request, such as a web browser's request for a web page, with a numeric response code and an optional, mandatory, or disallowed (based upon the status code) message.

Custom error pages[edit] The Wikimedia 404 message. Chmod. History[edit] A chmod command first appeared in AT&T Unix version 1. As systems grew in number and types of users, access control lists[2] were added to many file systems in addition to these most basic modes to increase flexibility. Command syntax[edit] chmod [options] mode[,mode] file1 [file2 ...][3] Usual implemented options include: Tutorial for chmod. CatCode.com. Hexadecimal. Representation[edit] Written representation[edit] Octal. Cascading Style Sheets. CSS is designed primarily to enable the separation of document content from document presentation, including elements such as the layout, colors, and fonts.[1] This separation can improve content accessibility, provide more flexibility and control in the specification of presentation characteristics, enable multiple pages to share formatting, and reduce complexity and repetition in the structural content (such as by allowing for tableless web design).

CSS Tutorial. 16.extension.harvard.edu. The world's most popular open source database. MySQL. MySQL (/maɪ ˌɛskjuːˈɛl/ "My S-Q-L",[6] officially, but also called /maɪ ˈsiːkwəl/ "My Sequel") is (as of March 2014[update]) the world's second most[nb 1] widely used[9][10] open-source relational database management system (RDBMS).[11] It is named after co-founder Michael Widenius's daughter, My.[12] The SQL phrase stands for Structured Query Language.[6] PHP: Hypertext Preprocessor.

PHP. Server-side scripting language PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development. 17oli.extension.harvard.edu. Seminars - CS50 Manual. 18oli.extension.harvard.edu. Ajax (programming) AJAX Tutorial. Asynchronous I/O. JavaScript. XML. Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable. The Dawn of the Net - animation 1. The Dawn of the Net - animation 2. 19oli.extension.harvard.edu. 20oli.extension.harvard.edu. HTTP cookie. Programming Languages - Strengths and Weaknesses. Interpreted Language - What is Interpreted Language. Load balancing (computing) Software GmbH - Articles: Free and Open Source Load-Balancing Software and Projects.

Cache. Computer cluster. MySQL Cluster CGE. Database engine. 25+ Alternative & Open Source Database Engines. What cloud computing really means. Virtualization. Server (computing) Understanding Load Average, ‘top’ Command « Varinder Singh. Domain name. Web hosting service. Web Hosting Search – Find the best website hosting plans and web hosts. Free Webspace and Free Web Hosting Services.

How Domain Name Servers Work" Free Domain Names - How To Information. Register Domain Names at Register.com - Business Web Hosting Services and Domain Name Registration Provider. Memcached. Os notes. Numwebsvrs. TLDs. Loadbalancers. Why Oracle Won't Kill MySQL - Forbes.com. Oracle Owns MySQL, But.... This Is Open Source Code - Software - Enterprise Software. Master/slave (technology) Leonard Cohen, 'Show Me The Place': New Song Takes Us Back To 'Hallelujah' (AUDIO)

Introduction. PHP MySQL Introduction. MySQL Downloads. GNU Debugger. Gdb Tutorial. GDB: The GNU Project Debugger.

Cs, cont.

How to inherit from the DOM element class. Javascript Inheritance. Document Object Model. Introduction to the DOM of IE/ Firefox. XML DOM Methods. HTML DOM Event Object. Introduction to Events.