Avram Joel Spolsky is a software engineer and writer. He is the author of Joel on Software, a blog on software development, the creator of the project management software Trello, he was a Program Manager on the Microsoft Excel team between 1991 and 1994. He founded Fog Creek Software in 2000 and launched the Joel on Software blog. In 2008, he launched the Stack Overflow programmer Q&A site in collaboration with Jeff Atwood. Using the Stack Exchange software product which powers Stack Overflow, the Stack Exchange Network now hosts over 170 Q&A sites. Spolsky was born to Jewish parents and grew up in Albuquerque, New Mexico, lived there until he was 15, he moved with his family to Israel, where he attended high school and completed his military service in the Paratroopers Brigade. He was one of the founders of the kibbutz Hanaton in Lower Galilee. In 1987, he returned to the United States to attend college, he studied at the University of Pennsylvania for a year before transferring to Yale University, where he was a member of Pierson College and graduated in 1991 with a BS summa cum laude in Computer Science.
Spolsky started working at Microsoft in 1991 as a Program Manager on the Microsoft Excel team, where he designed Excel Basic and drove Microsoft's Visual Basic for Applications strategy. He moved to New York City in 1995 where he worked for Juno Online Services. In 2000, he created the Joel on Software blog. Joel on Software was "one of the first blogs set up by a business owner". In 2005, Spolsky co-produced and appeared in Aardvark'd: 12 Weeks with Geeks, a documentary documenting Fog Creek's development of Project Aardvark, a remote assistance tool. Spolsky co-founded Stack Overflow, a question and answer community website for software developers, with Jeff Atwood, he is now CEO of the Stack Exchange Network. In 2011, Spolsky launched an online project management tool inspired by Kanban methodology. In 2016, Spolsky announced the appointment of Anil Dash as Fog Creek Software's new CEO, with Spolsky continuing as Stack Overflow's CEO and as a Fog Creek Software board member, he is the author of five books, including User Interface Design for Programmers and Smart and Gets Things Done.
He is the creator of "The Joel Test". Spolsky coined the term fix it twice for a process improvement method, it implies a quick, immediate solution for fixing an incident and a second, slower fix for preventing the same problem from occurring again by targeting the root cause. His use of the term Shlemiel the painter's algorithm, referring to an algorithm, not scalable due to performing too many redundant actions, was described by salon.com's Scott Rosenberg as an example of good writing "about their insular world in a way that wins the respect of their colleagues and the attention of outsiders."Spolsky made an appearance at the WeAreDevelopers Conference 2017, stating how developers are writing the script for the future. In his speech, Spolsky talks about how software is eating the world, how it is becoming more evident in everyday life as people interact with more software on a day-to-day basis, how developers are helping to shape how the world will work as technology keeps evolving, he uses the metaphor "we are just little vegetables floating in software soup", referring to our constant use of software for the most mundane activities, including work, social networking, taking a cab.
Spolsky announced his marriage to Jared, on social media and his blog. He lives on the Upper West Side of Manhattan. In software development, a Shlemiel the painter's algorithm is a method, inefficient because the programmer has overlooked some fundamental issues at the lowest levels of software design; the term was coined in 2001 by Spolsky, who used a Yiddish joke to illustrate a certain poor programming practice: Schlemiel is to paint the dotted lines down the middle of a road. Each day, Schlemiel paints less than he painted the day before, complains that it is because each day he gets farther away from the paint can, it takes him longer to go back and put paint on his brush; the inefficiency to which Spolsky was drawing an analogy was the poor programming practice of repeated concatenation of C-style null-terminated strings. The first step in every implementation of the C standard library function for concatenating strings is determining the length of the first string by checking each character to see if it is the terminating null character.
Next, the second string is copied to the end of the first. In Spolsky's example, the "Schlemiels" occur when multiple strings are concatenated together: After "Paul" has been appended to "John", the length of "JohnPaul" is known within the scope of strcat but is discarded upon the end of function. Afterwards, when strcat is told to append "George" to "JohnPaul", strcat starts at the first character of "JohnPaul" all over again just to find the terminating null character; each subsequent call to strcat has to compute the length again before concatenating another name to the buffer. Analogous to Schlemiel not carrying the paint bucket with him, all the subsequent strcats have to "walk" the length of the string again to determine where the second string should be copied; as more data is added to buffer with each call to strcat, that terminating null character gets farther away from the beginning, meaning subsequent calls are slower. The problems illustrated by Spolsky's example are not noticed by a programmer, using a high-level language and has
It describes 18 elements comprising the initial simple design of HTML. Except for the hyperlink tag, these were influenced by SGMLguid, an in-house Standard Generalized Markup Language -based documentation format at CERN. Eleven of these elements still exist in HTML 4. HTML is a markup language that web browsers use to interpret and compose text and other material into visual or audible web pages. Default characteristics for every item of HTML markup are defined in the browser, these characteristics can be altered or enhanced by the web page designer's additional use of CSS. Many of the text elements are found in the 1988 ISO technical report TR 9537 Techniques for using SGML, which in turn covers the features of early text formatting languages such as that used by the RUNOFF command developed in the early 1960s for the CTSS operating system: these formatting commands were derived from the commands used by typesetters to manually format documents. However, the SGML concept of generalized markup is based on elements rather than print effects, with the separation of structure and markup.
Berners-Lee considered HTML to be an application of SGML. It was formally defined as such by the Internet Engineering Task Force with the mid-1993 publication of the first proposal for an HTML specification, the "Hypertext Markup Language" Internet Draft by Berners-Lee and Dan Connolly, which included an SGML Document type definition to define the grammar; the draft expired after six months, but was notable for its acknowledgment of the NCSA Mosaic browser's custom tag for embedding in-line images, reflecting the IETF's philosophy of basing standards on successful prototypes. Dave Raggett's competing Internet-Draft, "HTML+", from late 1993, suggested standardizing already-implemented features like tables and fill-out forms. After the HTML and HTML+ drafts expired in early 1994, the IETF created an HTML Working Group, which in 1995 completed "HTML 2.0", the first HTML specification intended to be treated as a standard against which future implementations should be based. Further development under the auspices of the IETF was stalled by competing interests.
Since 1996, the HTML specifications have been maintained, with input from commercial software vendors, by the World Wide Web Consortium. However, in 2000, HTML became an international standard. HTML 4.01 was published in late 1999, with further errata published through 2001. In 2004, development began on HTML5 in the Web Hypertext Application Technology Working Group, which became a joint deliverable with the W3C in 2008, completed and standardized on 28 October 2014. November 24, 1995 HTML 2.0 was published as RFC 1866. Supplemental RFCs added capabilities: November 25, 1995: RFC 1867 May 1996: RFC 1942 August 1996: RFC 1980 January 1997: RFC 2070 January 14, 1997 HTML 3.2 was published as a W3C Recommendation. It was the first version developed and standardized by the W3C, as the IETF had closed its HTML Working Group on September 12, 1996. Code-named "Wilbur", HTML 3.2 dropped math formulas reconciled overlap among various proprietary extensions and adopted most of Netscape's visual markup tags.
Netscape's blink element and Microsoft's marquee element were omitted due to a mutual agreement between the two companies. A markup for mathematical formu
In computer science, an associative array, symbol table, or dictionary is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection. Operations associated with this data type allow: the addition of a pair to the collection the removal of a pair from the collection the modification of an existing pair the lookup of a value associated with a particular keyThe dictionary problem is a classic computer science problem: the task of designing a data structure that maintains a set of data during'search','delete', and'insert' operations; the two major solutions to the dictionary problem are a search tree. In some cases it is possible to solve the problem using directly addressed arrays, binary search trees, or other more specialized structures. Many programming languages include associative arrays as primitive data types, they are available in software libraries for many others. Content-addressable memory is a form of direct hardware-level support for associative arrays.
Associative arrays have many applications including such fundamental programming patterns as memoization and the decorator pattern. The name does not come from the associative property known in mathematics. Rather, it arises from the fact. In an associative array, the association between a key and a value is known as a "binding", the same word "binding" may be used to refer to the process of creating a new association; the operations that are defined for an associative array are: Add or insert: add a new pair to the collection, binding the new key to its new value. The arguments to this operation are the value. Reassign: replace the value in one of the pairs that are in the collection, binding an old key to a new value; as with an insertion, the arguments to this operation are the value. Remove or delete: remove a pair from the collection, unbinding a given key from its value; the argument to this operation is the key. Lookup: find the value, bound to a given key; the argument to this operation is the key, the value is returned from the operation.
If no value is found, some associative array implementations raise an exception, while others create a pair with the given key and the default value of the value type. Instead of add or reassign there is a single set operation that adds a new pair if one does not exist, otherwise reassigns it. In addition, associative arrays may include other operations such as determining the number of bindings or constructing an iterator to loop over all the bindings. For such an operation, the order in which the bindings are returned may be arbitrary. A multimap generalizes an associative array by allowing multiple values to be associated with a single key. A bidirectional map is a related abstract data type in which the bindings operate in both directions: each value must be associated with a unique key, a second lookup operation takes a value as argument and looks up the key associated with that value. Suppose that the set of loans made by a library is represented in a data structure; each book in a library may be checked out only by a single library patron at a time.
However, a single patron may be able to check out multiple books. Therefore, the information about which books are checked out to which patrons may be represented by an associative array, in which the books are the keys and the patrons are the values. Using notation from Python or JSON, the data structure would be: A lookup operation on the key "Great Expectations" would return "John". If John returns his book, that would cause a deletion operation, if Pat checks out a book, that would cause an insertion operation, leading to a different state: For dictionaries with small numbers of bindings, it may make sense to implement the dictionary using an association list, a linked list of bindings. With this implementation, the time to perform the basic dictionary operations is linear in the total number of bindings. Another simple implementation technique, usable when the keys are restricted to a narrow range of integers, is direct addressing into an array: the value for a given key k is stored at the array cell A, or if there is no binding for k the cell stores a special sentinel value that indicates the absence of a binding.
As well as being simple, this technique is fast: each dictionary operation takes constant time. However, the space requirement for this structure is the size of the entire keyspace, making it impractical unless the keyspace is small; the two major approaches to implementing dictionaries are a search tree. The most used general purpose implementation of an associative array is with a hash table: an array combined with a hash function that separates each key into a separate "bucket" of the array; the basic idea behind a hash table is that accessing an element of an array via its index is a simple, constant-time operation. Therefore, the average overhead of an operation for a hash table is only the computation of the key's hash
Matz's Ruby Interpreter or Ruby MRI was the reference implementation of the Ruby programming language named after Ruby creator Yukihiro Matsumoto. Until the specification of the Ruby language in 2011, the MRI implementation was considered the de facto reference since an independent attempt to create the specification had failed. Starting with Ruby 1.9, continuing with Ruby 2.x and above, the official Ruby interpreter has been YARV. The latest stable version is Ruby 2.5.0 Yukihiro Matsumoto started working on Ruby on February 24, 1993, released it to the public in 1995. "Ruby" was named as a gemstone because of a joke within Matsumoto's circle of friends alluding to the name of the Perl programming language. The 1.8 branch has been maintained until June 2013, 1.8.7 releases have been released since April 2008. This version provides bug fixes, but many Ruby feature enhancements; the RubySpec project has independently created a large test suite that captures 1.8.6/1.8.7/1.9 behavior as a reference conformance tool.
Ruby MRI 1.9.2 passed over 99% of RubySpec. MRI Ruby 2.2 crashed on one of the tests. As a result of the limited uptake by the MRI developers, RubySpec project has been discontinued as of end of 2014. Prior to release 1.9.3, the Ruby interpreter and libraries were distributed as dual-licensed free and open source software, under the GNU General Public License or the Ruby License. In release 1.9.3, Ruby's License has been changed from a dual license with GPLv2 to a dual license with the 2-clause BSD license. Ruby MRI is available for the following operating systems: This list may not be exhaustive. PowerPC64 performance Since version 2.2.1, Ruby MRI performance on PowerPC64 was improved. Noted limitations include: Backward compatibility Version 1.9 and 1.8 have slight semantic differences. The release of Ruby 2.0 sought to avoid such a conflict between different versions. YARV Official website
Creative Commons is an American non-profit organization devoted to expanding the range of creative works available for others to build upon and to share. The organization has released several copyright-licenses, known as Creative Commons licenses, free of charge to the public; these licenses allow creators to communicate which rights they reserve and which rights they waive for the benefit of recipients or other creators. An easy-to-understand one-page explanation of rights, with associated visual symbols, explains the specifics of each Creative Commons license. Creative Commons licenses are based upon it, they replace individual negotiations for specific rights between copyright owner and licensee, which are necessary under an "all rights reserved" copyright management, with a "some rights reserved" management employing standardized licenses for re-use cases where no commercial compensation is sought by the copyright owner. The result is an agile, low-overhead and low-cost copyright-management regime, benefiting both copyright owners and licensees.
The organization was founded in 2001 by Lawrence Lessig, Hal Abelson, Eric Eldred with the support of Center for the Public Domain. The first article in a general interest publication about Creative Commons, written by Hal Plotkin, was published in February 2002; the first set of copyright licenses was released in December 2002. The founding management team that developed the licenses and built the Creative Commons infrastructure as we know it today included Molly Shaffer Van Houweling, Glenn Otis Brown, Neeru Paharia, Ben Adida. In 2002 the Open Content Project, a 1998 precursor project by David A. Wiley, announced the Creative Commons as successor project and Wiley joined as CC director. Aaron Swartz played a role in the early stages of Creative Commons; as of May 2018 there were an estimated 1.4 billion works licensed under the various Creative Commons licenses. Wikipedia uses one of these licenses; as of May 2018, Flickr alone hosts over 415 million Creative Commons licensed photos. Creative Commons is governed by a board of directors.
Their licenses have been embraced by many as a way for creators to take control of how they choose to share their copyrighted works. Creative Commons has been described as being at the forefront of the copyleft movement, which seeks to support the building of a richer public domain by providing an alternative to the automatic "all rights reserved" copyright, has been dubbed "some rights reserved". David Berry and Giles Moss have credited Creative Commons with generating interest in the issue of intellectual property and contributing to the re-thinking of the role of the "commons" in the "information age". Beyond that, Creative Commons has provided "institutional and legal support for individuals and groups wishing to experiment and communicate with culture more freely."Creative Commons attempts to counter what Lawrence Lessig, founder of Creative Commons, considers to be a dominant and restrictive permission culture. Lessig describes this as "a culture in which creators get to create only with the permission of the powerful, or of creators from the past."
Lessig maintains that modern culture is dominated by traditional content distributors in order to maintain and strengthen their monopolies on cultural products such as popular music and popular cinema, that Creative Commons can provide alternatives to these restrictions. Until April 2018 Creative Commons had over 100 affiliates working in over 75 jurisdictions to support and promote CC activities around the world. In 2018 this affiliate network has been restructured into a network organisation; the network no longer relies on affiliate organisation but on individual membership organised in Chapter. Creative Commons Japan is the affiliated network of Creative Commons in Japan. In 2003, the International University GLOCOM hold a meeting for the CC Japan preparing. In March 2004, CC Japan was initiated by that University, that, the second CC created among the world. In March 2006, the CC Japan be in motion. In the same year of March, the CC founder Lawrence Lessig came to Japan to be one of the main holder of the open ceremony.
Within same year of May to June, different international events hold in Japan which include iSummit 06 and the first to third round CCJP held. In 2007 of February, ICC x ClipLife 15 sec CM open. In June, iSummit 07 held on. After that month, the fourth CCJP held on. In the 25/7/2007, Tokyo approve Nobuhiro Nakayamato become the NGO chairman of CCJP. In 2008, Taipie ACIA join CCJP; the main theme music which chose by CCJP announced. In 2009, INTO INFINITY shown in Sapporo. I-phone held the shows with Audio Visual Mixer for INTO INFINITY. 2012, the 10 anniversary ceremony held on Japan. 2015, the renew version of CCJP overt. Creative Commons Japan Zero overt. Creative Commons Korea is the affiliated network of Creative Commons in South Korea. In March 2005, CC Korea was initiated by Jongsoo Yoon, a Presiding Judge of Incheon District Court, as a project of Korea Association for Infomedia Law; the major Korean portal sites, including Daum and Naver, have been participating in the use of Creative Commons licences.
In January 2009, the Creative Commons Korea Association was founded as a non-profit incorporated association. Since CC Korea has been promoting the liberal and open culture of creation as well as leading the diffusion of Creative Common in the country. Creative Commons Korea Creative Commons Asia Conference 2010
Foxes are small-to-medium-sized, omnivorous mammals belonging to several genera of the family Canidae. Foxes have a flattened skull, upright triangular ears, a pointed upturned snout, a long bushy tail. Twelve species belong to the monophyletic "true foxes" group of genus Vulpes. Another 25 current or extinct species are always or sometimes called foxes. Foxes live on every continent except Antarctica. By far the most common and widespread species of fox is the red fox with about 47 recognized subspecies; the global distribution of foxes, together with their widespread reputation for cunning, has contributed to their prominence in popular culture and folklore in many societies around the world. The hunting of foxes with packs of hounds, long an established pursuit in Europe in the British Isles, was exported by European settlers to various parts of the New World; the word fox comes from Old English. This in turn derives from Proto-Indo-European *puḱ-, meaning ’thick-haired. Male foxes are known as dogs, tods or reynards, females as vixens, young as cubs, pups, or kits, though the latter name is not to be confused with a distinct species called kit foxes.
Vixen is one of few words in modern English that retains the Middle English southern dialect "v" pronunciation instead of "f". A group of foxes is referred to leash, or earth. Within the Canidae, the results of DNA analysis shows several phylogenetic divisions: The fox-like canids, which include the kit fox, red fox, Cape fox, Arctic fox, fennec fox; the wolf-like canids, including the dog, gray wolf, red wolf, eastern wolf, golden jackal, Ethiopian wolf, black-backed jackal, side-striped jackal and African wild dog. The South American canids, including hoary fox, crab-eating fox and maned wolf. Various monotypic taxa, including the bat-eared fox, gray fox, raccoon dog. Foxes are smaller than some other members of the family Canidae such as wolves and jackals, while they may be larger than some within the family, such as Raccoon dogs. In the largest species, the red fox, males weigh on average between 4.1 and 8.7 kg, while the smallest species, the fennec fox, weighs just 0.7 to 1.6 kg. Fox-like features include a triangular face, pointed ears, an elongated rostrum, a bushy tail.
Foxes are digitigrade, thus, walk on their toes. Unlike most members of the family Canidae, foxes have retractable claws. Fox vibrissae, or whiskers, are black; the whiskers on the muzzle, mystaciae vibrissae, average 100–110 mm long, while the whiskers everywhere else on the head average to be shorter in length. Whiskers are on the forelimbs and average 40 mm long, pointing downward and backward. Other physical characteristics vary according to adaptive significance. Fox species differ in fur color and density. Coat colors range from pearly white to black and white to black flecked with white or grey on the underside. Fennec foxes, for example, have short fur to aid in keeping the body cool. Arctic foxes, on the other hand, have tiny ears and short limbs as well as thick, insulating fur, which aid in keeping the body warm. Red foxes, by contrast, have a typical auburn pelt, the tail ending with white marking. A fox's coat color and texture may vary due to the change in seasons. To get rid of the dense winter coat, foxes moult once a year around April.
Coat color may change as the individual ages. A fox's dentition, like all other canids, is I 3/3, C 1/1, PM 4/4, M 3/2 = 42. Foxes have pronounced carnassial pairs, characteristic of a carnivore; these pairs consist of the upper premolar and the lower first molar, work together to shear tough material like flesh. Foxes' canines are pronounced characteristic of a carnivore, are excellent in gripping prey. In the wild, the typical lifespan of a fox is one to three years, although individuals may live up to ten years. Unlike many canids, foxes are not always pack animals, they live in small family groups, but some are known to be solitary. Foxes are omnivores; the diet of foxes is made up of invertebrates such as insects, small vertebrates such as reptiles and birds, can include eggs and plants. Many species are generalist predators. Most species of fox consume around 1 kg of food every day. Foxes cache excess food, burying it for consumption under leaves, snow, or soil. Foxes tend to use a pouncing technique where they crouch down to camouflage themselves in the terrain using their hind legs, leap up with great force to land on top of their targeted prey.
Using their pronounced canine te
Why the lucky stiff
Jonathan Gillette, known by the pseudonym why the lucky stiff, is a writer, cartoonist and programmer notable for his work with the Ruby programming language. Annie Lowrey described him as "one of the most unusual, beloved, computer programmers" in the world. Along with Yukihiro Matsumoto and David Heinemeier Hansson, he was seen as one of the key figures in the Ruby community._why made a presentation enigmatically titled "A Starry Afternoon, a Sinking Symphony, the Polo Champ Who Gave It All Up for No Reason Whatsoever" at the 2005 O'Reilly Open Source Convention. It explored how to make the subject more appealing to adolescents. _why gave a presentation and performed with his band, the Thirsty Cups, at RailsConf in 2006. On 19 August 2009, _why's accounts on Twitter and GitHub and his maintained websites went offline. Shortly before he disappeared, why the lucky stiff tweeted, "programming is rather thankless. U see your works become replaced by superior ones in a year. Unable to run at all in a few more."
_ why's colleagues have assembled collections of his projects. His best known work is Why's Guide to Ruby, which "teaches Ruby with stories." Paul Adams of Webmonkey describes its eclectic style as resembling a "collaboration between Stan Lem and Ed Lear". Chapter three was published in The Best Software Writing I: Introduced by Joel Spolsky. In April 2013, a complete book attributed to Jonathan Gillette was digitally released via the website whytheluckystiff.net and the GitHub repository cwales. It was presented as individual files of PCL without any instruction on how to assemble the print outs into a book. Based on timestamps from the git repository, Steve Klabnik compiled the pages in the order in which they were released into a PDF file which he titled CLOSURE since the book provides some resolution to the story. Although no authorship is claimed in either the book or the git repository, the writing style and content are remarkably comparable to that of Jonathan Gillette and the storyline references certain events and the text includes the names Jonathan Gillette and _why.
Try Ruby is an online interactive learning tool that provided a browser-based Ruby shell and an instructor that guided beginners through their first steps in Ruby. Since Why's disappearance, the project has been continued in spirit at Try Ruby revision 4, his final project before his internet retirement, Hackety Hack, is a Ruby- and Shoes-based environment intended to bring the power and simplicity of BASIC programming to the current generation, with a particular focus on being accessible to children. _ why is the author of several libraries and applications, most of them written for Ruby. Camping, a microframework inspired by Ruby on Rails and based on Markaby, less than 4 kilobytes. Park Place, a "nearly complete clone of the Amazon S3 web service." Hobix, a YAML-based weblog application written in Ruby Hpricot, an HTML parser Markaby, a DSL to generate valid HTML using Ruby blocks and methods instead of tags. MouseHole, a personal web proxy that can rewrite the web à la Greasemonkey the RedCloth library, which implements the Textile markup language the Sandbox, a library for managing several Ruby environments in a single process Syck, a YAML library for C, several other languages.
Syck has been a part of standard Ruby libraries since Ruby version 1.8.0. Shoes, a UI toolkit "for Making Web-like Desktop Apps" unHoly, A Ruby bytecode to Python bytecode converter, for running Ruby applications on the Google Application Engine potion, a tiny, fast programming language with a JIT compiler, closure support and an object model built around mixins bloopsaphone, a crossplatform chiptune-like synth, based on PortAudio with a Ruby frontend He has illustrated The Ruby Programming Language, authored by David Flanagan and Yukihiro Matsumoto, he dedicates his illustration every year to RubyKaigi, the biggest Ruby conference in Japan, similar to RubyConf. In March 2009, he was a speaker at the Code conference at Carnegie Mellon University. _why never publicly revealed his own identity while he was active as "why the lucky stiff". Shortly before he left the public eye, an anonymous blog was posted, identifying him as Jonathan Gillette, offering detailed information about his identity, including his schooling, his address, his membership in the band The Child Who Was a Keyhole, the identity of his spouse.
At the time, he did not make any statement on his being outed. While his offline identity was considered common knowledge in the Ruby coding community, it remained unconfirmed until a 2012 article in Slate magazine quoted a statement from a fellow programmer saying, "Jonathan is _why, he is fine, he just wants to be left alone." A video of _why's public lecture at the Art and Code Conference, March 2009 Episode of the Ruby on Rails Podcast about Camping Shoes Roundup: Ruby GUI App Development Goodness, lists a few resources for Ruby/Shoes development Soundtrack for the book, Why's Guide to Ruby RedHanded, a defunct blog dedicated to Ruby culture RubyKaigi2008 Goodies, _why's illustration used in RubyKaigi2008 RubyKaigi2007 Goodies, _why's illustration used in RubyKaigi2007 _why's estate WhyDay 19 August 2010 Internet Archive of _Why's Complete Printer Spool Why The Lucky Stiff short documentary film released in 2019