Computing
to very much further sort.
General
- A program is many things. It is a piece of text typed by a programmer, it is the directing force that makes the computer do what it does, it is data in the computer's memory, yet it controls the actions performed on this same memory. Analogies that try to compare programs to objects we are familiar with tend to fall short, but a superficially fitting one is that of a machine. The gears of a mechanical watch fit together ingeniously, and if the watchmaker was any good, it will accurately show the time for many years. The elements of a program fit together in a similar way, and if the programmer knows what he is doing, the program will run without crashing.
- A computer is a machine built to act as a host for these immaterial machines. Computers themselves can only do stupidly straightforward things. The reason they are so useful is that they do these things at an incredibly high speed. A program can, by ingeniously combining many of these simple actions, do very complicated things. ... When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.
-- http://eloquentjavascript.net/chapter1.html
Basics
Eric Steven Raymond;
- Pipe Logic - "In this model, a UNIX pipe acts like a wire, that is, a conductor with parasitic capacitance."
- Programmer Competency Matrix
- Six languages to master.
- Learning C, reducing fear.
- Programming is Hard, Let's Go Scripting...
- A Scripter at Heart
- http://vislab-ccom.unh.edu/~schwehr/Classes/2011/esci895-researchtools/
- Simple Made Easy - Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path. ]
- Self-Taught Developers: Are You Missing Your Foundation?
- Torvalds' quote about good programmer - "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
- Stack Exchange: I've inherited 200K lines of spaghetti code — what now?
- Become a Programmer, Motherfucker
- Teach Yourself Programming in Ten Years
- Learnable Programming - Bret Victor - Designing a programming system for understanding programs
- The 5 Hardest Parts of Programming - Optimization, Networking, Security, Reliability, Scalability
Reference
- http://stackoverflow.com/
- StackMonthly - A monthly digest of the best questions on StackOverflow
- Hyperpolyglot - a programming language side-by-side reference sheet
- http://rosettacode.org/wiki/Rosetta_Code
- A Very Quick Comparison of Popular Languages for Teaching Computer Programming
- syntax across languages
- http://helloworldquiz.com/
- How do we tell truths that might hurt? - E.W. Dijkstra
- YourLanguageSucks
- A Brief, Incomplete, and Mostly Wrong History of Programming Languages
- The Evolution of a Programmer
- Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
- Websites like projecteuler.net
- JavaScript solutions to the Project Euler problems.
- OSDev.org - wiki that provides information about the creation of operating systems and serves as a community for those people interested in OS creation
- wikipedia:Backus%E2%80%93Naur_Form notation, for context-free syntax grammar
- The Packrat Parsing and Parsing Expression Grammars Page
- School of Data works to empower civil society organizations, journalists and citizens with the skills they need to use data effectively in their efforts to create more equitable and effective societies.
- A List of Data Science and Machine Learning Resources
- Great Ideas in Theoretical Computer Science - OCW
- Quine Relay is a Ruby program that generates Scala program that generates Scheme program that generates ...(through 50 languages)... REXX program that generates the original Ruby code again.
- http://mamememo.blogspot.ca/2010/09/qlobe.html
Books
- http://en.wikibooks.org/wiki/Computer_Programming
- WikiBooks: A-level Computing/AQA/Problem Solving, Programming, Operating Systems, Databases and Networking/Programming Concepts
- http://hackershelf.com/
- http://eric.themoritzfamily.com/books-every-self-taught-computer-scientist-should-read.html
- http://nlpwp.org/book/
- http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books/392926#392926
- http://citizen428.net/blog/2010/08/12/30-free-programming-ebooks/
News and Blogs
People
- http://www.catb.org/esr/
- http://jwz.org/
- http://blogs.msdn.com/b/oldnewthing/
- http://paulirish.com/
- http://codinghorror.com/blog/ - Jeff Atwood
- http://braythwayt.com/ - Reginald Braithwaite
- http://bradfitz.com/
- http://evan.status.net/
- http://rachelbythebay.com/
Tools
Coding techniques
see also agile, xp, etc
Concepts
- http://en.wikipedia.org/wiki/Computer
- http://en.wikipedia.org/wiki/Computing
- http://en.wikipedia.org/wiki/Digital_computer
Computation
See also Maths
- http://en.wikipedia.org/wiki/Theory_of_computation
- http://en.wikipedia.org/wiki/Model_of_computation
- http://c2.com/cgi/wiki?ModelsOfComputation
- http://en.wikipedia.org/wiki/Computability_theory
- http://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis
- http://en.wikipedia.org/wiki/Church_encoding
- http://en.wikipedia.org/wiki/Higher-order_function
- http://en.wikipedia.org/wiki/Fixed_point_combinator
- http://en.wikipedia.org/wiki/Lambda_calculus
- http://en.wikipedia.org/wiki/Untyped_lambda_calculus
- http://en.wikipedia.org/wiki/Typed_lambda_calculus
- http://en.wikipedia.org/wiki/Simply_typed_lambda_calculus
- http://en.wikipedia.org/wiki/SKI_combinator_calculus
- http://en.wikipedia.org/wiki/Binary_lambda_calculus
- http://en.wikipedia.org/wiki/%CE%BC-recursive%20function
- http://en.wikipedia.org/wiki/Lambda-mu_calculus
- http://en.wikipedia.org/wiki/System_F
- http://en.wikipedia.org/wiki/Alan_Turing
- http://en.wikipedia.org/wiki/Alonzo_Church
- http://en.wikipedia.org/wiki/Alfred_Tarski
- http://en.wikipedia.org/wiki/Kurt_G%C3%B6del
- http://en.wikipedia.org/wiki/Emil_Post
- http://en.wikipedia.org/wiki/Stephen_Kleene
- http://en.wikipedia.org/wiki/Computer_science
- http://en.wikipedia.org/wiki/Theoretical_computer_science
- http://en.wikipedia.org/wiki/Semantics_(computer_science)
- http://en.wikipedia.org/wiki/Denotational_semantics
- http://en.wikipedia.org/wiki/Operational_semantics
- http://en.wikipedia.org/wiki/Axiomatic_semantics
- http://en.wikipedia.org/wiki/Algebraic_semantics_(computer_science)
- http://en.wikipedia.org/wiki/Symbolic_computation
- http://en.wikipedia.org/wiki/Computational_complexity_theory
- http://en.wikipedia.org/wiki/Decision_problem
- http://en.wikipedia.org/wiki/Complexity_class
- http://en.wikipedia.org/wiki/Big_O_notation
- SO: Plain English explanation of Big O
- http://en.wikipedia.org/wiki/Time_complexity
- http://en.wikipedia.org/wiki/Polynomial_expression
- http://en.wikipedia.org/wiki/NP_(complexity)
- http://en.wikipedia.org/wiki/Programming_language_theory
- http://en.wikipedia.org/wiki/Automatic_programming
Processing
- http://en.wikipedia.org/wiki/Computer_architecture
- http://en.wikipedia.org/wiki/Von_Neumann_architecture
- http://en.wikipedia.org/wiki/Harvard_architecture
- http://en.wikipedia.org/wiki/Modified_Harvard_architecture
- http://en.wikipedia.org/wiki/Processor_(computing)#Computing
- http://en.wikipedia.org/wiki/List_of_CPU_architectures
- https://code.google.com/p/corkami/wiki/x86oddities
- http://www.cl.cam.ac.uk/~sd601/papers/mov.pdf [2]
- http://en.wikipedia.org/wiki/Reduced_instruction_set_computing
- http://en.wikipedia.org/wiki/Complex_instruction_set_computing
- http://en.wikipedia.org/wiki/Opcode
- http://en.wikipedia.org/wiki/Machine_code
- http://en.wikipedia.org/wiki/Assembly_language
- https://en.wikipedia.org/wiki/Computer_memory
- https://en.wikipedia.org/wiki/Memory_management
- https://en.wikipedia.org/wiki/Virtual_memory
- https://en.wikipedia.org/wiki/Memory_management_unit
- http://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units
- http://gpgpu.org/
- https://en.wikipedia.org/wiki/Field-programmable_gate_array
- http://forums.xilinx.com/t5/Embedded-Development-Tools/GPUs-vs-FPGAs/td-p/60112
- https://news.ycombinator.com/item?id=6305113
Threads
- http://en.wikipedia.org/wiki/Thread_(computing)
- http://en.wikipedia.org/wiki/Critical_section
- http://en.wikipedia.org/wiki/Deadlock
Engineering
- http://en.wikipedia.org/wiki/Software_engineering
- http://en.wikipedia.org/wiki/Software_development_methodology
- http://en.wikipedia.org/wiki/Software_development_process
- http://en.wikipedia.org/wiki/Computer_engineering
- http://www.amazon.com/Bebop-Bytes-Back-Unconventional-Computers/dp/0965193403
Evaluation
- http://en.wikipedia.org/wiki/Expression_(mathematics)
- http://en.wikipedia.org/wiki/Expression_(computer_science)
An expression evaluates to a value. A statement does something.
x = 1 y = x + 1 # an expression print y # a statement, prints 2
- http://en.wikipedia.org/wiki/Evaluation_strategy
- http://en.wikipedia.org/wiki/Expression-oriented_programming_language
- http://en.wikipedia.org/wiki/Referential_transparency_(computer_science)
- http://en.wikipedia.org/wiki/Side_effect_(computer_science)
- http://en.wikipedia.org/wiki/Information_hiding
- http://en.wikipedia.org/wiki/Control_flow
- http://en.wikipedia.org/wiki/Conditional_(computer_programming)
- http://en.wikipedia.org/wiki/Call_stack
- http://en.wikipedia.org/wiki/First-class_citizen
- http://en.wikipedia.org/wiki/Non-strict_programming_language
- http://en.wikipedia.org/wiki/Rewriting
- http://en.wikipedia.org/wiki/Recursion_(computer_science)
- http://en.wikipedia.org/wiki/Modulo_operation
- Vimeo: Impossible Programs - Scottish Ruby Conf
Syntax
- https://en.wikipedia.org/wiki/Automata_theory
- https://en.wikipedia.org/wiki/Linear_bounded_automaton
- https://en.wikipedia.org/wiki/Chomsky_hierarchy
- https://en.wikipedia.org/wiki/Context-sensitive_language
- https://en.wikipedia.org/wiki/Context-free_grammar
- https://en.wikipedia.org/wiki/Context-free_language
- http://en.wikipedia.org/wiki/Syntax_(programming_languages)
- http://en.wikipedia.org/wiki/Syntactic_sugar
- http://en.wikipedia.org/wiki/Syntax_analysis#Programming_languages
- http://en.wikipedia.org/wiki/Abstract_syntax_tree
Operators
Algorithms
See also Maths
- http://www.algosort.com/
- https://en.wikipedia.org/wiki/List_of_algorithms
- http://www.jjj.de/fxt/fxtpage.html#fxtbook [4]
- Dictionary of Algorithms and Data Structures
- http://news.ycombinator.com/item?id=4961357
- http://graphics.stanford.edu/~seander/bithacks.html
- http://rosettacode.org/wiki/Category:Programming_Tasks
- http://www.hackersdelight.org/
- http://blog.notdot.net/tag/damn-cool-algorithms
- http://aima.cs.berkeley.edu/
- http://www.cleveralgorithms.com/
- https://news.ycombinator.com/item?id=6093777 - bloom filters
Functions
- subroutine is a sequence of program instructions that perform a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Subprograms may be defined within programs, or separately in libraries that can be used by multiple programs. In different programming languages a subroutine may be called a procedure, a function, a routine, a method, or a subprogram. The generic term callable unit is sometimes used.
- http://en.wikipedia.org/wiki/Anonymous_function
- http://en.wikipedia.org/wiki/Function_type
- http://en.wikipedia.org/wiki/Function_objects
- http://en.wikipedia.org/wiki/Closure_(computer_science)
- http://en.wikipedia.org/wiki/Callback_(computer_science)
- http://en.wikipedia.org/wiki/Call_site
- http://en.wikipedia.org/wiki/Tail_call
- http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence
- http://en.wikipedia.org/wiki/Currying
etc
- https://en.wikipedia.org/wiki/Declaration_(computer_programming)
- https://en.wikipedia.org/wiki/Identifier#In_computer_languages
- http://en.wikipedia.org/wiki/Literal_(computer_programming)
- http://en.wikipedia.org/wiki/String_literal
- http://en.wikipedia.org/wiki/Variable_(programming)
- http://en.wikipedia.org/wiki/Constant_(computer_science)
- http://en.wikipedia.org/wiki/Scope_(computer_science)
- http://en.wikipedia.org/wiki/Side_effect_(computer_science)
Data types
- http://en.wikipedia.org/wiki/Strong_and_weak_typing
- http://en.wikipedia.org/wiki/Strong_typing
- http://en.wikipedia.org/wiki/Weak_typing
- http://en.wikipedia.org/wiki/Type_inference
- http://en.wikipedia.org/wiki/Structural_type_system
- http://en.wikipedia.org/wiki/Nominative_type_system
- http://en.wikipedia.org/wiki/Primitive_data_type
- http://en.wikipedia.org/wiki/Composite_data_type
- http://en.wikipedia.org/wiki/Abstract_data_type
- http://en.wikipedia.org/wiki/Algebraic_data_type
- http://en.wikipedia.org/wiki/Product_type
- http://en.wikipedia.org/wiki/Record_(computer_science)
- http://en.wikipedia.org/wiki/Tuple
- http://en.wikipedia.org/wiki/Tagged_union
- http://en.wikipedia.org/wiki/Recursive_data_type
Data structures
- http://en.wikipedia.org/wiki/Continuation
- http://en.wikipedia.org/wiki/Continuation-passing_style
- http://en.wikipedia.org/wiki/Stack_(abstract_data_type)
- http://en.wikipedia.org/wiki/Call_stack
- http://en.wikipedia.org/wiki/Symbol_table
- http://en.wikipedia.org/wiki/Hash_table
- http://en.wikipedia.org/wiki/Array_data_structure
- http://en.wikipedia.org/wiki/Array_data_type
- http://en.wikipedia.org/wiki/Associative_array
- http://en.wikipedia.org/wiki/Set_data_structure
- http://en.wikipedia.org/wiki/Abstract_semantic_graph
- http://en.wikipedia.org/wiki/Bit_string
- http://en.wikipedia.org/wiki/Tree_(data_structure)
- http://en.wikipedia.org/wiki/Binary_tree
- http://en.wikipedia.org/wiki/Binary_search_tree
- http://en.wikipedia.org/wiki/B-tree
- http://en.wikipedia.org/wiki/Rope_%28data_structure%29
The difference between arrays and linked lists are:
- Arrays are linear data structures. Linked lists are linear and non-linear data structures. - Linked lists are linear for accessing, and non-linear for storing in memory - Array has homogenous values. And each element is independent of each other positions. Each node in the linked list is connected with its previous node which is a pointer to the node. - Array elements can be modified easily by identifying the index value. It is a complex process for modifying the node in a linked list. - Array elements can not be added, deleted once it is declared. The nodes in the linked list can be added and deleted from the list.
- http://www.xanadu.com/zigzag/
- YouTube: Ted Nelson on Zigzag data structures - relationship vector, hyperthoginal
Mutability
Functional
- http://en.wikipedia.org/wiki/Functional_programming
- http://en.wikipedia.org/wiki/Functional_reactive_programming
- http://stackoverflow.com/questions/327955/does-functional-programming-replace-gof-design-patterns
- http://www.dev.gd/20121224-understanding-map-filter-and-fold.html
- http://loup-vaillant.fr/tutorials/from-imperative-to-functional
- http://www.harukizaemon.com/blog/2010/03/01/functional-programming-in-object-oriented-languages/
- DrupalCon Munich 2012: Functional PHP
- http://en.wikipedia.org/wiki/Applicative_programming_language
- http://en.wikipedia.org/wiki/Typed_lambda_calculus
- http://en.wikipedia.org/wiki/First-class_function
- http://technicae.cogitat.io/2012/12/the-secret-history-of-lambda.html
- https://gist.github.com/e000/1023982
- http://stevelosh.com/blog/2013/03/list-out-of-lambda/
- Functional Languages 101: What’s All the Fuss About?
- Functional Programming for the Object-Oriented Programmer
- Functional and Object-Oriented Programming
- Functional programming: A step backward
- Functional Programming is Dead, Long Live Expression-Oriented Programming
- Monads in Pictures - Aug 20th, 2012
- Google Video: Type-driven testing in Haskell - Simon Peyton Jones
Object Orientated
- http://en.wikipedia.org/wiki/Object_(computer_science)
- http://en.wikipedia.org/wiki/Class_(computer_science)
- http://en.wikipedia.org/wiki/Instance_(computer_science)
- http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
- http://en.wikipedia.org/wiki/Multiple_inheritance
- http://en.wikipedia.org/wiki/Prototype-based_programming
- http://en.wikipedia.org/wiki/Differential_inheritance
- http://en.wikipedia.org/wiki/Object_composition
- http://en.wikipedia.org/wiki/Composition_over_inheritance
- http://en.wikipedia.org/wiki/Late_binding
- http://en.wikipedia.org/wiki/Duck_typing
- http://en.wikipedia.org/wiki/Method_(computer_programming)
- http://en.wikipedia.org/wiki/Mutator_method
- https://en.wikipedia.org/wiki/Protocol_(object-oriented_programming)
- https://en.wikipedia.org/wiki/Delegation_(programming)
- https://en.wikipedia.org/wiki/Delegation_pattern
- http://en.wikipedia.org/wiki/Observer_pattern
- http://en.wikipedia.org/wiki/Template_method_pattern
- http://en.wikipedia.org/wiki/Factory_method_pattern
- http://en.wikipedia.org/wiki/Composite_pattern
- http://en.wikipedia.org/wiki/Decorator_pattern
- http://en.wikipedia.org/wiki/Mediator_pattern
- http://en.wikipedia.org/wiki/Adapter_pattern
- http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
- http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
- https://plus.google.com/101960720994009339267/posts/hoJdanihKwb - rob pike on oo
- http://wcook.blogspot.co.uk/2012/07/proposal-for-simplified-modern.html
- http://blog.codeclimate.com/blog/2012/11/28/your-objects-the-unix-way/
Polymorphism
- http://en.wikipedia.org/wiki/Polymorphism_(computer_science)
- http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming
- http://en.wikipedia.org/wiki/Subtyping
Macros
MV*
- http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
- http://c2.com/cgi/wiki?ModelViewController
- http://puremvc.org/content/view/67/178/
- https://news.ycombinator.com/item?id=6370343
"create your views, express your models or develop a controller"
- http://martinfowler.com/eaaDev/PresentationModel.html
- http://en.wikipedia.org/wiki/Model_View_ViewModel
- http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/
- http://programmers.stackexchange.com/questions/114409/did-concept-of-viewmodel-exist-before-mvvm
Paradigms
- http://en.wikipedia.org/wiki/Structured_programming
- http://en.wikipedia.org/wiki/Procedural_programming
- http://en.wikipedia.org/wiki/Imperative_programming
Patterns
- WikiWikiWeb, aka Portland Pattern Repository's Wiki, aka Ward's Wiki
- http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
- http://en.wikipedia.org/wiki/Singleton_pattern - restrict the instantiation of a class to one object.
- http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29
- http://en.wikipedia.org/wiki/Common_layers_in_an_information_system_logical_architecture
Compilation and interpretation
- http://en.wikipedia.org/wiki/Compiler
- http://en.wikipedia.org/wiki/History_of_compiler_construction
- http://matt.might.net/articles/cps-conversion/
- http://en.wikipedia.org/wiki/Interpreted_language
- http://en.wikipedia.org/wiki/Dynamic_programming_language
- http://en.wikipedia.org/wiki/Interpreter_(computing)
- GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, Ada, and Go, as well as libraries for these languages (libstdc++, libgcj,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom.
- LLVM is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them. The name "LLVM" itself is not an acronym; it is the full name of the project.
- Emscripten is an LLVM to JavaScript compiler. It takes LLVM bitcode (which can be generated from C/C++ using Clang, or any other language that can be converted into LLVM bitcode) and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).
- Parrot is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator. Parrot is not about parrots, though we are rather fond of them for obvious reasons.
Garbage collection
Cleaning up saved things that are created and only needed at the time of a particular process, i think. Managed in some languages, seen as possibly bad by some.
Metaprogramming
Monads
Aspect of functional. See Haskell, etc. for related.
Concurrency
- http://en.wikipedia.org/wiki/Concurrent_computing
- http://en.wikipedia.org/wiki/Concurrency_(computer_science)
Events
Messaging
- http://en.wikipedia.org/wiki/Messaging_pattern
- http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
- message queues and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process.
- ØMQ \zeromq\
- The socket library that acts as a concurrency framework.
- Faster than TCP, for clustered products and supercomputing.
<tef> but glyph is the serialization format really :-)
- MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it's faster and smaller. For example, small integers (like flags or error code) are encoded into a single byte, and typical short strings only require an extra byte in addition to the strings themselves.
Futures and promises
Command-line
GUI
NLP
Debugging
DTrace
Other
Source control
VCS
See Git
GNU
Regular expressions
Guides
- http://regex.learncodethehardway.org/book/
- http://net.tutsplus.com/tutorials/javascript-ajax/you-dont-know-anything-about-regular-expressions/
- http://swtch.com/~rsc/regexp/regexp1.html
- http://stackoverflow.com/questions/16621738/d-less-efficient-than-0-9
- http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags?lq=1
Web tools
- http://buildregex.com/
- http://myregextester.com/
- http://regexpal.com/
- http://regex.inginf.units.it/
- http://www.debuggex.com/
- http://www.regexper.com/ -js
- http://www.spaweditor.com/scripts/regex/ - php
- http://www.regextester.com/index2.html
- http://www.pcreck.com/ - pcre
GUI
Text encoding
ASCII / ANSI
Unicode
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) by Joel Spolsky
- Codepoint, n. the position of a character in an encoding system.
- Charbase - A visual unicode database
- http://www.charset.org/
- http://unicode.org/charts/
- http://sheet.shiar.nl/unicode
- http://en.wikipedia.org/wiki/List_of_Unicode_characters
- http://en.wikipedia.org/wiki/Unicode_control_characters
mirroring char in brackets: (test (
Serialization and markup
See also HTML/CSS#Markup, JavaScript#JSON
- http://en.wikipedia.org/wiki/Serialization
- http://en.wikipedia.org/wiki/Marshalling_(computer_science)
- http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats
- http://en.wikipedia.org/wiki/Category:Data_serialization_formats
- http://www.drdobbs.com/web-development/after-xml-json-then-what/240151851
- http://en.wikipedia.org/wiki/Runoff_(program)
- http://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language
- http://en.wikipedia.org/wiki/TeX - 1978
- http://en.wikipedia.org/wiki/Scribe_(markup_language) - 1980
- http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language
- http://en.wikipedia.org/wiki/HTML
- http://en.wikipedia.org/wiki/XML
- http://en.wikipedia.org/wiki/XQuery
- Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.
- http://kentonv.github.io/ - from proto buf dev [8]
Graphics
3D
UML
XUL
- XUL (/ˈzuːl/ zool), which stands for XML User Interface Language, is a user interface markup language that is developed by the Mozilla Project. XUL is implemented as an XML dialect; it allows for graphical user interfaces to be written in a similar manner to Web pages.
Compression
Network
- Beej's Guide to Network Programming - Using Internet Sockets
Stats and big data
- http://cacm.acm.org/blogs/blog-cacm/155468-what-does-big-data-mean/fulltext
- http://www.evanmiller.org/statistical-formulas-for-programmers.html
- Kaggle - Service - From Big Data to Big Analytics.
Games
- https://github.com/DaRaFF/jsgamewiki
- https://github.com/hughsk/game-modules/wiki/Modules
- http://html5gameengine.com/
Documentation
to sort
- The language of languages - explains grammars and common notations for grammars, such as Backus-Naur Form (BNF), Extended Backus-Naur Form (EBNF) and regular extensions to BNF.
- Stackoverflow: Absolute Beginner's Guide to Bit Shifting?
- RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. RRDtool can be easily integrated in shell scripts, perl, python, ruby, lua or tcl applications.
- XMLVM is to offer a flexible and extensible cross-compiler toolchain. Instead of cross-compiling on a source code level, XMLVM cross-compiles byte code instructions from Sun Microsystem's virtual machine and Microsoft's Common Language Runtime. The benefit of this approach is that byte code instructions are easier to cross-compile and the difficult parsing of a high-level programming language is left to a regular compiler. In XMLVM, byte code-based programs are represented as XML documents. This allows manipulation and translation of XMLVM-based programs using advanced XML technologies such as XSLT, XQuery, and XPath.
- YouTube: Extracting Energy from the Turing Tarpit - Alan C. Kay during the ACM A.M. Turing Centenary Celebration, June, 2012.
modelling;
- QEforge is a web portal offering support to researchers active in the field of computer simulation and numerical modeling of matter and materials at the atomic scale. The most popular source code management (CVS, SVN or Git ) systems, mailing lists, public forums, download space, wiki pages, and much more are provided through the Gforge engine.
- Gource is a software version control visualization tool.
- UbiGraph is a tool for visualizing dynamic graphs. The basic version is free, and talks to Python, Ruby, PHP, Java, C, C++, C#, Haskell, and OCaml.
- Hunspell is the spell checker of LibreOffice, OpenOffice.org, Mozilla Firefox 3 & Thunderbird, Google Chrome, and it is also used by proprietary software packages, like Mac OS X, InDesign, memoQ, Opera and SDL Trados.
GROK
- https://code.google.com/p/semicomplete/wiki/Grok
- YouTube: Stanford Seminar - Google's Steve Yegge on GROK
For kids
- http://squeak.org/ - smalltalk
Social
Aesthetics
perl
- http://code-poems.com/
- http://www.wired.co.uk/news/archive/2012-10/12/code-poems-book
- http://en.wikipedia.org/wiki/Just_another_Perl_hacker
- http://www.ibm.com/developerworks/linux/library/l-japh/index.html
- http://ruben.verborgh.org/blog/2013/02/21/programming-is-an-art/
- https://blooki.st/BlookElement/ShowTextPhoto?blookElementId=1962
Humour
- http://www.reddit.com/r/programmerhumor
- http://www.reddit.com/r/programminghorror
- http://www.reddit.com/r/ProgrammerCringe
- http://www.reddit.com/r/shittyprogramming/
- What is your best programmer joke?
- http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered
to sort
from old
- YouTube: The Mother of All Demos, presented by Douglas Engelbart (1968)
- http://en.wikipedia.org/wiki/NLS_(computer_system)
- Ask HN: What unknown technical blogs or sites do you read?
- Ask HN: What are your daily must-read sites?