1.
Why the lucky stiff
–
Jonathan Gillette, known by the pseudonym why the lucky stiff, is a writer, cartoonist, artist, and programmer notable for his work with the Ruby programming language. Annie Lowrey described him as one of the most unusual, and beloved, 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, and it explored how to teach programming and make the subject more appealing to adolescents. _why gave a presentation and performed with his band, the Thirsty Cups, on 19 August 2009, whys accounts on Twitter and GitHub and his personally 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, _whys colleagues have assembled collections of his writings and projects. On 5 January 2013, _whys site was online, although, as of October 2013. In March 2014, the site re-launched as the blog of an anonymous individual from Australia with no apparent connection to _why. His best known work is Whys 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, Selected and 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, 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. _why is the author of several libraries and applications, most of them written in or for Ruby, camping, a microframework inspired by Ruby on Rails and based on Markaby that is less than 4 kilobytes. Park Place, a complete clone of the Amazon S3 web service. Hobix, a YAML-based weblog application written in Ruby Hpricot, an HTML parser Markaby, syck has been a part of standard Ruby libraries since Ruby version 1.8.0. He also dedicates his illustration every year to RubyKaigi, the biggest Ruby conference in Japan, in March 2009, he was a speaker at the Art and Code conference at Carnegie Mellon University. _why never publicly revealed his own identity while he was active as why the lucky stiff, at the time, he did not make any statement on his being outed
2.
Creative Commons
–
Creative Commons is an American non-profit organization devoted to expanding the range of creative works available for others to build upon legally and to share. The organization has released several copyright-licenses known as Creative Commons licenses free of charge to the public and 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, Creative Commons licenses do not replace copyright, but are based upon it. The result is an agile, low-overhead and low-cost copyright-management regime, Wikipedia uses one of these licenses. The organization was founded in 2001 by Lawrence Lessig, Hal Abelson, the first article in a general interest publication about Creative Commons, written by Hal Plotkin, was published in February 2002. The first set of licenses was released in December 2002. In 2003 the Open Content Project, a 1998 precursor project by David A. Wiley, announced the Creative Commons as successor project, matthew Haughey and Aaron Swartz also played a role in the early stages of the project. As of January 2016 there were an estimated 1.1 billion works licensed under the various Creative Commons licenses, as of March 2015, Flickr alone hosts over 306 million Creative Commons licensed photos. Creative Commons is governed by a board of directors and their licenses have been embraced by many as a way for creators to take control of how they choose to share their copyrighted works. Beyond that, Creative Commons has provided institutional, practical and legal support for individuals and groups wishing to experiment, Creative Commons attempts to counter what Lawrence Lessig, founder of Creative Commons, considers to be a dominant and increasingly restrictive permission culture. Lessig describes this as a culture in which creators get to create only with the permission of the powerful, as of 2017, they are Paul Keller, Jonathan Nightingale, Chris Thorne. As of 2015, there are more than 100 affiliates working in over 75 jurisdictions to support, Creative Commons Korea is the affiliated network of Creative Commons in South Korea. In March 2005, CC Korea was initiated by Jongsoo Yoon, 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 consequently founded as an incorporated association. Since then, CC Korea has been promoting the liberal. Since March 15,2012 he has been detained by the Syrian government in Damascus at Adra Prison, on October 17,2015 Creative Commons Board of Directors approved a resolution calling for Bassel Khartabil release. All current CC licenses require attribution, which can be inconvenient for works based on other works. Critics also worried that the lack of rewards for content producers will dissuade artists from publishing their work, Creative Commons founder Lawrence Lessig countered that copyright laws have not always offered the strong and seemingly indefinite protection that todays law provides
3.
Fox
–
Foxes are small-to-medium-sized, omnivorous mammals belonging to several genera of the family Canidae. Foxes are slightly smaller than a domestic dog, with a flattened skull, upright triangular ears, a pointed, slightly upturned snout. Twelve species belong to the group of Vulpes genus of true 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 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, the word fox comes from Old English, which derived from Proto-Germanic *fuhsaz. This in turn derives from Proto-Indo-European *puḱ-, meaning ’thick-haired, tail’. Male foxes are known as dogs, tods or reynards, females as vixens, a group of foxes is referred to as a skulk, leash, or earth. Foxes are generally smaller than members of the family Canidae such as wolves, jackals. For example, 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 typically include a face, pointed ears, an elongated rostrum. Foxes are digitigrade, and thus, walk on their toes, unlike their dog relatives, foxes have partially retractable claws. Fox vibrissae, or whiskers, are black, the whiskers on the muzzle, mystaciae vibrissae, average 100-110mm long, while the whiskers everywhere else on the head average to be shorter in length. Whiskers are also on the forelimbs and average 40mm long, pointing downward and backward, other physical characteristics vary according to habitat and adaptive significance. Fox species differ in fur color, length, 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 ears and short fur to aid in keeping the body cool. Arctic foxes, on the hand, have tiny ears and short limbs as well as thick, insulating fur. Red foxes, by contrast, have a typical auburn pelt, a foxs coat color and texture may vary due to the change in seasons, fox pelts are richer and denser in the colder months and lighter in the warmer months
4.
HTML
–
Hypertext Markup Language is the standard markup language for creating web pages and web applications. With Cascading Style Sheets and JavaScript it forms a triad of cornerstone technologies for the World Wide Web, Web browsers receive HTML documents from a webserver or from local storage and render them into multimedia web pages. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document, HTML elements are the building blocks of HTML pages. With HTML constructs, images and other objects, such as interactive forms and it provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags, written using angle brackets, tags such as <img /> and <input /> introduce content into the page directly. Include explicit close tags for elements that permit content but are left empty, by carefully following the W3Cs compatibility guidelines, a user agent should be able to interpret the document equally as HTML or XHTML. For documents that are XHTML1.0 and have made compatible in this way. When delivered as XHTML, browsers should use an XML parser, HTML4 defined three different versions of the language, Strict, Transitional and Frameset. The Transitional and Frameset versions allow for presentational markup, which is omitted in the Strict version, instead, cascading style sheets are encouraged to improve the presentation of HTML documents. Because XHTML1 only defines an XML syntax for the language defined by HTML4, as this list demonstrates, the loose versions of the specification are maintained for legacy support. However, contrary to popular misconceptions, the move to XHTML does not imply a removal of this legacy support, rather the X in XML stands for extensible and the W3C is modularizing the entire specification and opening it up to independent extensions. The primary achievement in the move from XHTML1.0 to XHTML1.1 is the modularization of the entire specification, the strict version of HTML is deployed in XHTML1.1 through a set of modular extensions to the base XHTML1.1 specification. Likewise, someone looking for the loose or frameset specifications will find similar extended XHTML1.1 support, the modularization also allows for separate features to develop on their own timetable. So for example, XHTML1.1 will allow quicker migration to emerging XML standards such as MathML, in summary, the HTML4 specification primarily reined in all the various HTML implementations into a single clearly written specification based on SGML. XHTML1.0, ported this specification, as is, next, XHTML1.1 takes advantage of the extensible nature of XML and modularizes the whole specification. XHTML2.0 was intended to be the first step in adding new features to the specification in a standards-body-based approach. The WHATWG considers their work as living standard HTML for what constitutes the state of the art in major browser implementations by Apple, Google, Mozilla, Opera, hTML5 is specified by the HTML Working Group of the W3C following the W3C process. HTML lacks some of the found in earlier hypertext systems, such as source tracking, fat links
5.
Portable Document Format
–
The Portable Document Format is a file format used to present documents in a manner independent of application software, hardware, and operating systems. Each PDF file encapsulates a complete description of a fixed-layout flat document, including the text, fonts, graphics, PDF was developed in the early 1990s as a way to share computer documents, including text formatting and inline images. It was among a number of competing formats such as DjVu, Envoy, Common Ground Digital Paper, Farallon Replica, in those early years before the rise of the World Wide Web and HTML documents, PDF was popular mainly in desktop publishing workflows. Adobe Systems made the PDF specification available free of charge in 1993 and these proprietary technologies are not standardized and their specification is published only on Adobe’s website. Many of them are not supported by popular third-party implementations of PDF. So when organizations publish PDFs which use proprietary technologies, they present accessibility issues for some users. In 2014, ISO TC171 voted to deprecate XFA for ISO 32000-2, on January 9,2017, the final draft for ISO 32000-2 was published, thus reaching the approval stage. The PDF combines three technologies, A subset of the PostScript page description programming language, for generating the layout, a font-embedding/replacement system to allow fonts to travel with the documents. A structured storage system to bundle these elements and any associated content into a single file, PostScript is a page description language run in an interpreter to generate an image, a process requiring many resources. It can handle graphics and standard features of programming such as if. PDF is largely based on PostScript but simplified to remove flow control features like these, often, the PostScript-like PDF code is generated from a source PostScript file. The graphics commands that are output by the PostScript code are collected and tokenized, any files, graphics, or fonts to which the document refers also are collected. Then, everything is compressed to a single file, therefore, the entire PostScript world remains intact. PDF supports graphic transparency, PostScript does not, PostScript is an interpreted programming language with an implicit global state, so instructions accompanying the description of one page can affect the appearance of any following page. Therefore, all preceding pages in a PostScript document must be processed to determine the appearance of a given page. A PDF file is a 7-bit ASCII file, except for elements that may have binary content. A PDF file starts with a header containing the magic number, the format is a subset of a COS format. A COS tree file consists primarily of objects, of which there are eight types, Boolean values, representing true or false Numbers Strings, enclosed within parentheses, objects may be either direct or indirect
6.
Joel Spolsky
–
Avram Joel Spolsky is a software engineer and writer. He is the author of Joel on Software, a blog on software development, and he was a Program Manager on the Microsoft Excel team between 1991 and 1994. He later 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 100 Q&A sites, Spolsky grew up in Albuquerque, New Mexico, and lived there until he was 15. He then moved with his family to Israel, where he attended high school and he was one of the founders of the kibbutz Hanaton in Lower Galilee. In 1987, he returned to the United States to attend college, Spolsky started working at Microsoft in 1991 as a Program Manager on the Microsoft Excel team, where he designed Excel Basic and drove Microsofts Visual Basic for Applications strategy. He moved to New York City in 1995 where he worked for Viacom, in 2000, he founded Fog Creek Software and 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 Aardvarkd,12 Weeks with Geeks, a documentary documenting Fog Creeks development of Project Aardvark, a remote assistance tool. Spolsky also co-founded Stack Overflow, a question and answer community website for software developers and he is now CEO of the resulting Stack Overflow and the Stack Exchange Network. In 2011, Spolsky launched Trello, a project management tool inspired by Kanban methodology. In 2016, Spolsky announced the appointment of Anil Dash as Fog Creek Softwares new CEO, with Spolsky continuing as Stack Overflows CEO and he is the author of five books, including User Interface Design for Programmers and Smart and Gets Things Done. He is also 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, Spolsky announced his marriage to his husband, Jared, on social media and his blog. He lives on the Upper West Side of Manhattan, in software development, a Shlemiel the painters algorithm is a method that is inefficient because the programmer has overlooked some fundamental issues at the very lowest levels of software design. The term was coined in 2001 by Spolsky, the term is not to be confused with the Painters algorithm, as the two are entirely unrelated. Spolsky used a Yiddish joke to illustrate a certain poor programming practice, in the joke, Schlemiel has a job painting the dotted lines down the middle of a road. Each day, Schlemiel paints less than he painted the day before, when he is asked why, Schlemiel complains that it is because each day he gets farther away from the paint can. The programming practice that Spolsky used to make his point was repeated concatenation of null-terminated character arrays, next, the second string is copied to the end of the first, effectively concatenating the two
7.
Regular expression
–
A regular expression, regex or regexp is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern. Usually this pattern is used by string searching algorithms for find or find. The concept arose in the 1950s when the American mathematician Stephen Cole Kleene formalized the description of a regular language, the concept came into common use with Unix text-processing utilities. Today, different syntaxes for writing regular expressions exist, one being the POSIX standard and another, widely used, being the Perl syntax. Regular expressions are used in engines, search and replace dialogs of word processors and text editors, in text processing utilities such as sed and AWK. Many programming languages provide regex capabilities, built-in, or via libraries, the phrase regular expressions is often used to mean the specific, standard textual syntax for representing patterns that matching text need to conform to. Each character in an expression is understood to be a metacharacter. For example, in the regex a, a is a literal character which matches just a and. is a meta character which matches every character except a newline. Therefore, this regex would match for example a or ax or a0, together, metacharacters and literal characters can be used to identify textual material of a given pattern, or process a number of instances of it. Pattern-matches can vary from a precise equality to a general similarity. Is a very general pattern, is general and a is a precise pattern. Wildcards could also achieve this, but are limited in what they can pattern. The usual context of wildcard characters is in globbing similar names in a list of files, for example, the regex ^+|+$ matches excess whitespace at the beginning or end of a line. An advanced regex used to match any numeral is ^. $, see the Examples section for more examples. A regex processor translates a regular expression in the above syntax into a representation which can be executed and matched against a string representing the text being searched in. The picture shows the NFA scheme N obtained from the regular expression s*, where s denotes a simpler regular expression in turn, Regular expressions originated in 1956, when mathematician Stephen Cole Kleene described regular languages using his mathematical notation called regular sets. These arose in theoretical science, in the subfields of automata theory. Other early implementations of pattern matching include the SNOBOL language, which did not use regular expressions, Regular expressions entered popular use from 1968 in two uses, pattern matching in a text editor and lexical analysis in a compiler
8.
Ruby (programming language)
–
Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro Matz Matsumoto in Japan, according to its creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp. It supports multiple programming paradigms, including functional, object-oriented, and it also has a dynamic type system and automatic memory management. Ruby was conceived on February 24,1993, I knew Perl, but I didnt like it really, because it had the smell of a toy language. The object-oriented language seemed very promising, but I didnt like it, because I didnt think it was a true object-oriented language — OO features appeared to be add-on to the language. As a language maniac and OO fan for 15 years, I really wanted a genuine object-oriented, I looked for but couldnt find one. The name Ruby originated during a chat session between Matsumoto and Keiju Ishitsuka on February 24,1993, before any code had been written for the language. Initially two names were proposed, Coral and Ruby, Matsumoto chose the latter in a later e-mail to Ishitsuka. Matsumoto later noted a factor in choosing the name Ruby – it was the birthstone of one of his colleagues, the first public release of Ruby 0.95 was announced on Japanese domestic newsgroups on December 21,1995. Subsequently, three versions of Ruby were released in two days. The release coincided with the launch of the Japanese-language ruby-list mailing list, in the same year, Matsumoto was hired by netlab. jp to work on Ruby as a full-time developer. In 1998, the Ruby Application Archive was launched by Matsumoto, in 1999, the first English language mailing list ruby-talk began, which signaled a growing interest in the language outside Japan. In this same year, Matsumoto and Keiju Ishitsuka wrote the first book on Ruby, The Object-oriented Scripting Language Ruby and it would be followed in the early 2000s by around 20 books on Ruby published in Japanese. By 2000, Ruby was more popular than Python in Japan, in September 2000, the first English language book Programming Ruby was printed, which was later freely released to the public, further widening the adoption of Ruby amongst English speakers. In early 2002, the English-language ruby-talk mailing list was receiving more messages than the Japanese-language ruby-list, Ruby 1.8 was initially released in August 2003, was stable for a long time, and was retired June 2013. Although deprecated, there is still based on it. Ruby 1.8 is only compatible with Ruby 1.9. Ruby 1.8 has been the subject of industry standards
9.
Ruby MRI
–
Matzs Ruby Interpreter or Ruby MRI is 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, the latest stable version is Ruby 2.4.0. Yukihiro Matsumoto started working on Ruby on February 24,1993, Ruby was named as a gemstone because of a joke within Matsumotos circle of friends alluding to the name of the Perl programming language. The 1.8 branch has maintained until June 2013. This version provides bug fixes, but also 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 MRI1.9.2 passed over 99% of RubySpec, MRI Ruby 2.2 crashed on one of the tests. As a result of the uptake by the MRI developers. 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, Rubys License has been changed from a dual license with GPLv2 to a license with the 2-clause BSD license. Ruby MRI is available for the operating systems, This list may not be exhaustive. PowerPC64 performance Since version 2.2.1, Ruby MRI performance on PowerPC64 was improved, commonly 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
10.
YARV
–
YARV is a bytecode interpreter that was developed for the Ruby programming language by Koichi Sasada. The goal of the project was to reduce the execution time of Ruby programs. Since YARV has become the official Ruby interpreter for Ruby 1.9, it is also named KRI, in the vein as the original Ruby MRI. Benchmarks by rubychan. de showed significant increases in performance, benchmarks by Antonio Cangiano showed an average four times speed improvement over the original interpreter. Both evaluations comprised a mix of mostly synthetic benchmarks, YARV was merged into the Ruby Subversion repository on January 1,2007. It was released as part of Ruby 1.9.0 on December 26,2007, parrot virtual machine Ruby Rubinius YARV home page Note, obsolete now that YARV is merged into Ruby YARV, Yet Another RubyVM. on Rails
11.
JRuby
–
JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/GPL/LGPL license, JRuby is tightly integrated with Java to allow the embedding of the interpreter into any Java application with full two-way access between the Java and the Ruby code. JRubys lead developers are Charles Oliver Nutter and Thomas Enebo, with current and past contributors including Ola Bini. In September 2006, Sun Microsystems hired Enebo and Nutter to work on JRuby full-time, in June 2007, ThoughtWorks hired Ola Bini to work on Ruby and JRuby. In July 2009, the JRuby developers left Sun to continue JRuby development at Engine Yard, in May 2012, Nutter and Enebo left Engine Yard to work on JRuby at Red Hat. JRuby was originally created by Jan Arne Petersen, in 2001, at that time and for several years following, the code was a direct port of the Ruby 1.6 C code. With the release of Ruby 1.8.6, an effort began to update JRuby to 1.8.6 features, since 2001, several contributors have assisted the project, leading to the current core team of around six members. JRuby 1.1 added Just-in-time compilation and Ahead-of-time compilation modes to JRuby and was faster in most cases than the then-current Ruby 1.8.7 reference implementation. JRuby packages are available for most platforms, Fedora 9 was among the first to include it as a package at JRuby 1.1.1. In July 2009, the core JRuby developers at Sun Microsystems, Charles Oliver Nutter, Thomas Enebo and Nick Sieger, in May 2012, Nutter and Enebo left Engine Yard to work on JRuby at Red Hat. JRuby has supported compatibility with Ruby MRI versions 1.6 through 1.9.3, JRuby 1.0 supported Ruby 1.8.6, with JRuby 1.4.0 updating that compatibility to Ruby 1.8.7. JRuby 1.6.0 added simultaneous support for Ruby 1.9.2, JRuby 9.0.0.0 added support for Ruby 2.2. JRuby has been able to run the Ruby on Rails web framework since version 0.9, with the ability to execute RubyGems, since the hiring of the two lead developers by Sun, Rails compatibility and speed have improved greatly. JRuby version 1.0 successfully passed all of Railss own test cases. Since then, developers have begun to use JRuby for Rails applications in production environments, JSR292 proposes, adding a new invokedynamic instruction at the JVM level, allowing method invocation using dynamic type checking, dynamically changing classes and methods at runtime. The Sun Open source project Multi Language Virtual Machine aims to prototype this JSR, the first working prototype, developed as a patch on OpenJDK, was announced and made available on end of August 2008. The JRuby team has implemented dynamic invocation into their codebase, dynamic invocation initially shipped with the 1.1.5 release in a primitive form. Version 1.7.0 enabled it by default on Java 8 builds and this table presents only releases that present significant steps in JRuby history, aside from versions that mainly fixed bugs and improved performance
12.
Rubinius
–
Rubinius is an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius seeks to provide a rich, Rubinius follows in the Lisp and Smalltalk traditions, by natively implementing as much of Ruby as possible in Ruby code. It also has a goal of being thread-safe in order to be able to embed more than one interpreter in a single application, from 2007 to 2013, Engine Yard funded one full-time engineer to work exclusively on Rubinius. Evan Phoenix is now CEO of Vektra, - Community-powered gem compatibility for Rubinius
13.
MagLev (software)
–
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems. Maglev runs inside an image like Smalltalk, offering transparent object persistence to Ruby objects, object persistence is based on ACID transactions that allow multiple running instances to see a shared object graph. Maglev uses a process-based concurrency model, mapping Ruby threads to Smalltalk Processes, maglev targets Ruby 1.8.7 and runs a significant number of RubySpec. It supports several C extensions including Nokogiri, JSON and bcrypt
14.
RubyMotion
–
RubyMotion is an implementation of the Ruby programming language that runs on iOS, OS X and Android. 3rd-party Objective-C libraries can be included in a RubyMotion project, either manually or by using a package manager such as CocoaPods, programs are statically compiled into machine code by use of Rake as its build and execution tool. RubyMotion projects can be developed with any text editor, the RubyMine IDE provides support for the RubyMotion toolchain, such as code-completion and visual debugging. As of version 2.0, RubyMotion now supports the development of applications for OS X in addition to iOS, Android support was added in version 3.0. Examples of applications built in RubyMotion include 37signalss Basecamp for iPhone, the Bandcamp iPhone app, mruby - another minimal Ruby implementation, targeted at mobile devices RubyMotion website HipByte website
15.
MacRuby
–
MacRuby was an implementation of the Ruby language that ran on the Objective-C runtime and CoreFoundation framework under development by Apple Inc. which was supposed to replace RubyCocoa. It targeted Ruby 1.9 and used the high performance LLVM compiler infrastructure starting with version 0.5 and it supports both ahead-of-time and just-in-time compilation. MacRuby supported Interface Builder and shipped with a library called HotCocoa to simplify Cocoa programming. MacRuby was also used as a scripting language for Objective-C applications. In May 2012, Laurent Sansonetti announced RubyMotion, a port of MacRuby for iOS, development on MacRuby effectively ended in late 2011, coinciding with the principal authors departure from Apple Inc. MacRuby was originally called ruby+objc and was developed by Laurent Sansonetti, in March 2008, the first publicly available version, MacRuby 0.1, was announced on the official RubyTalk forum. Version 0.2 was released in June 2008, and implemented Ruby strings, arrays, in September 2008, MacRuby 0.3 was released and included the HotCocoa library as well as several HotCocoa example programs. In October 2008, Apple created its first MacRuby page on its Developer Connection website, MacRuby 0.4 was released in March 2009, MacRuby 0.5,0.6,0.7 in January, May and October 2010 respectively. MacRuby 0.8, was released on December 13,2010,0.9 on February 25,20110.10 on March 23,2011,0.11 on October 17,2011,0.12 on June 11,2012
16.
IronRuby
–
IronRuby is an implementation of the Ruby programming language targeting Microsoft. NET framework. The project is inactive, with the last release of IronRuby being in March 2011. On April 30,2007, at MIX2007, Microsoft announced IronRuby and it was planned to be released to the public at OSCON2007. On July 23,2007, as promised, John Lam and he also announced a quick timeline for further integration of IronRuby into the open source community. On August 31,2007, John Lam and the DLR Design Team released the code in its stage on RubyForge. The source code has continued to be updated regularly by the core Microsoft team, the team also does not accept community contributions for the core Dynamic Language Runtime library, at least for now. On July 24,2008, the IronRuby team released the first binary alpha version, on November 19,2008, they released a second Alpha version. The team actively worked to support Rails on IronRuby, some Rails functional tests started to run, but a lot of work still needed to be done to be able to run Rails in a production environment. On May 21,2009, they released 0.5 version in conjunction with RailsConf 2009, with this version, IronRuby could run some Rails applications, but still not on a production environment. Version 0.9 was announced as OSCON2009, version 1.0 RC1 became available on 20 November 2009. Version 1.0 became available on 12 April 2010, in two different versions, The preferred one, which runs on top of. NET4.0, a version with more limited features, which ran on top of. NET2.0. In July 2010, Microsoft let go Jimmy Schementi, one of two remaining members of the IronRuby core team and stopped funding the project, the last published release of IronRuby was on 13 March 2011 as version 1.1.3. IronRuby may run as well on Mono as it does on Microsoft Common Language Runtime and it may not build on Mono depending on the build. The interoperability between IronRuby classes and regular. NET Framework classes is limited because many Ruby classes are not. NET classes. However, better support for languages in. NET4.0 may increase interoperability in the future. It can be used as an engine in the browser just like the JavaScript engine. IronRuby scripts are passed like simple client-side JavaScript-scripts in <script>-tags and it is then also possible to modify embedded XAML markup. The technology behind this is called Gestalt, IronRuby is integrating RubySpec, which is a project to write a complete, executable specification for the Ruby programming language
17.
Integrated development environment
–
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a code editor, build automation tools. Most modern IDEs have intelligent code completion, some IDEs, such as NetBeans and Eclipse, contain a compiler, interpreter, or both, others, such as SharpDevelop and Lazarus, do not. The boundary between an integrated development environment and other parts of the software development environment is not well-defined. Sometimes a version control system, or various tools to simplify the construction of a Graphical User Interface, are integrated, many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development. Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces, IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software and this contrasts with software development using unrelated tools, such as vi, GCC or make. One aim of the IDE is to reduce the necessary to piece together multiple development utilities. Reducing that setup time can increase productivity, in cases where learning to use the IDE is faster than manually integrating all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks, for example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. That can speed learning a new programming language and its associated libraries, some IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs, while most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the widespread availability of windowing systems like Microsoft Windows and the X Window System. They commonly use function keys or hotkeys to execute frequently used commands or macros, IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were prepared using flowcharts, dartmouth BASIC was the first language to be created with an IDE. Its IDE was command-based, and therefore did not look much like the menu-driven, however it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE. Maestro I is a product from Softlab Munich and was the worlds first integrated development environment for software, Maestro I was installed for 22,000 programmers worldwide. Until 1989,6,000 installations existed in the Federal Republic of Germany, Maestro was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington, one of the first IDEs with a plug-in concept was Softbench
18.
Komodo Edit
–
Komodo Edit is a free text editor for dynamic programming languages. It was introduced in January 2007 to complement ActiveStates commercial Komodo IDE, as of version 4.3, Komodo Edit is built atop the Open Komodo project. Many of Komodos features are derived from an embedded Python interpreter, Open Komodo uses the Mozilla and Scintilla code base to provide its features, including support for many popular languages, across all common operating systems. Both Komodo Edit and IDE support user customizing via plug-ins and macros, Komodo plug-ins are based on Mozilla Add-ons and extensions can be searched for, downloaded, configured, installed and updated from within the application. Available extensions include a functions list, pipe features, additional language support, the commercial version also adds code browsing, a database explorer, collaboration, support for many popular source code control systems, and more. Independent implementations of some of features, such as the database editor, git support
19.
NetBeans
–
NetBeans is a software development platform written in Java. The NetBeans Platform allows applications to be developed from a set of software components called modules. Applications based on the NetBeans Platform, including the NetBeans integrated development environment, the NetBeans IDE is primarily intended for development in Java, but also supports other languages, in particular PHP, C/C++ and HTML5. NetBeans is cross-platform and runs on Microsoft Windows, Mac OS X, Linux, Solaris, the NetBeans Team actively support the product and seek feature suggestions from the wider community. In 1997, Roman Staněk formed a company around the project, Sun open-sourced the NetBeans IDE in June of the following year. Since then, the NetBeans community has continued to grow, in 2010, Sun was acquired by Oracle Corporation. Under Oracle, NetBeans competed with JDeveloper, a freeware IDE that has historically been a product of the company, the move was endorsed by Java creator James Gosling. NetBeans 6 is available in official repositories of major Linux distributions, NetBeans IDE6.5, released in November 2008, extended the existing Java EE features. The NetBeans IDE Bundle for C/C++ supports C/C++ and FORTRAN development, NetBeans IDE6.8 is the first IDE to provide complete support of Java EE6 and the GlassFish Enterprise Server v3. NetBeans IDE7.0 was released in April 2011, on August 1,2011, the NetBeans Team released NetBeans IDE7.0.1, which has full support for the official release of the Java SE7 platform. NetBeans IDE7.3 was released in February 2013 which added support for HTML5, NetBeans IDE7.4 was released on October 15,2013. NetBeans IDE8.0 was released on March 18,2014, NetBeans IDE8.1 was released on November 4,2015. NetBeans IDE8.2 was released on October 3,2016, NetBeans has a roadmap document for release plans. The NetBeans Platform is a framework for simplifying the development of Java Swing desktop applications, the NetBeans IDE bundle for Java SE contains what is needed to start developing NetBeans plugins and NetBeans Platform based applications, no additional SDK is required. Any application can include the Update Center module to allow users of the application to download digitally signed upgrades, reinstalling an upgrade or a new release does not force users to download the entire application again. NetBeans IDE supports development of all Java application types out of the box, among other features are an Ant-based project system, Maven support, refactorings, version control. Modularity, All the functions of the IDE are provided by modules, each module provides a well-defined function, such as support for the Java language, editing, or support for the CVS versioning system, and SVN. NetBeans contains all the modules needed for Java development in a single download, modules also allow NetBeans to be extended
20.
RadRails
–
RadRails is a Rapid Application Development IDE for the Ruby on Rails framework. The goal of RadRails is to provide Ruby on Rails developers with everything they need to develop, manage, test, features include source control, code assist, refactoring, debugging, WEBrick servers, generator wizards, syntax highlighting, data tools, and much more. The RadRails IDE is built on the Eclipse RCP, and includes the RDT, the RadRails tools are also available as Eclipse +plug-ins. At EclipseCon 2006 RadRails won the Community Award for Best Open-Source Eclipse-based tool, syntax highlighting, auto completion, code assist, error reporting, outlining, etc. During that time, the three worked as co-ops from the Rochester Institute of Technology at IBM Rational in Raleigh. Development continued through 2006, including contributions from Andy Gianfagna. Ryan Lowe joined the team in mid-2006 to deploy and maintain an automated system for the project. In November 2006, Kyle Shank and Matt Kent began working on an idea for a startup company, by March 2007, Kyle and Matt were devoting most of their spare time to Persai and had little time left to maintain RadRails. Kyle met with Aptana founder Paul Colton at EclipseCon 2007, on March 8,2007 Aptana took over the project and renamed it to Aptana RadRails. Although RadRails is still an open project, most work is now done by an Aptana employee, Christopher Williams. On May 2008, the book Aptana RadRails, An IDE for Rails Development and this book covers all the features of the Community Edition 1.0
21.
JetBrains
–
JetBrains is a software development company whose tools are targeted towards software developers and project managers. As of 2015, the company has over 500 employees in its six offices, in Prague, Saint Petersburg, Moscow, Munich, Boston and Novosibirsk. The company offers a family of integrated development environments for the programming languages Java, Ruby, Python, PHP, SQL, Objective-C, C++. The company is currently developing IDEs for languages including C# and GO. In 2011 the company entered a new area by introducing Kotlin, infoWorld magazine awarded the firm Technology of the Year Award in 2015 and 2011. JetBrains, initially called IntelliJ, was founded in 2000 in Prague by three software developers, Sergey Dmitriev, Valentin Kipiatkov and Eugene Belyaev, the companys first product was IntelliJ Renamer, a tool for code refactoring in Java. In addition to aforementioned products, JetBrains are also the makers of tools for, AppCode is an IDE primarily targeting development for Apple platforms like macOS, iOS, watchOS and tvOS. It supports programming in C, C++, Objective-C and Swift, unlike most JetBrains that are cross-platform AppCode is only available for macOS. CLion is a cross-platform C and C++ IDE for Linux, OS X, the initial version supports GNU Compiler Collection and Clang compilers and GDB debugger, LLDB and Google Test. Forrester Research analyst Michael Facemire expressed doubts about the products potential, dataGrip is a cross-platform IDE that is aimed at DBAs and developers working with SQL databases. It has built-in drivers that support DB2, Derby, H2, HSQLDB, MySQL, Oracle, PostgreSQL, SQL Server, Sqlite, Hub is a free JetBrains Team Tools connector. It enables advanced integration between JetBrains team collaboration tools, YouTrack, Upsource, Teamcity, a user can log in once in Hub and stay authenticated in all JetBrains tools throughout. Hub also manages a database of users, groups, roles, permissions, projects. It provides a Dashboard to track issues, commits, build status and more data from YouTrack, TeamCity, IntelliJ IDEA was JetBrains first IDE. It is cross-platform and is aimed at Java, Java EE. An open-source version is available under the name IntelliJ IDEA Community Edition, IntelliJ IDEA Ultimate Edition can be made to include the feature set of PhpStorm, PyCharm and RubyMine via plugins. Kotlin is a programming language that runs on the Java Virtual Machine. The name comes from the Kotlin Island, near St. Petersburg, MPS is an open-source language workbench that focuses on Domain-specific Languages
22.
Capistrano (software)
–
Capistrano is an open source tool for running scripts on multiple servers, its main use is deploying web applications. It automates the process of making a new version of an available on one or more web servers. Capistrano is written in the Ruby language and is distributed using the RubyGems distribution channel and it is an outgrowth of the Ruby on Rails web application framework, but it is also used to deploy web applications written using other languages, for example, PHP. Capistrano is implemented primarily for use on the UNIX shell command line, a user may choose from many Capistrano recipes, e. g. to deploy current changes to the web application or roll back to the previous deployment state. Originally called SwitchTower, the name was changed to Capistrano in March 2006 due to a trademark conflict, the original author, Jamis Buck, announced on February 24,2009 that he is no longer the maintainer of the project. Capistrano is a utility and framework for executing commands in parallel on multiple remote machines and it uses a simple domain-specific language borrowed in part from the tool Rake. It also supports tunnelling connections via some gateway machine to allow operations to be performed behind VPNs, the deployment tasks are now opt-in and require clients to explicitly put load deploy in their recipes. This defines a single task, called xml_libs, and says that it should be executed only on the www. capify. org host, when executed, it will display all files and subdirectories in /usr/lib that include the text xml in their name. Deploying Rails Applications, A Step-by-Step Guide
23.
Chef (software)
–
Chef is both the name of a company and the name of a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language for writing system configuration recipes, Chef contains solutions for both small and large scale systems, with features and pricing for the respective ranges. The user writes recipes that describe how Chef manages server applications and utilities and these recipes describe a series of resources that should be in a particular state, packages that should be installed, services that should be running, or files that should be written. These various resources can be configured to specific versions of software to run, Chef makes sure each resource is properly configured and corrects any resources that are not in the desired state. Chef can run in client/server mode, or in a standalone configuration named chef-solo, in client/server mode, the Chef client sends various attributes about the node to the Chef server. The server uses Solr to index these attributes and provides an API for clients to query this information, Chef recipes can query these attributes and use the resulting data to help configure the node. Traditionally, Chef was used to manage Linux but later versions support Microsoft Windows as well and it is one of the four major configuration management systems on Linux, along with CFEngine, Bcfg2, and Puppet. More than a configuration management tool, Chef, along with Puppet, Ansible, Chef was created by Adam Jacob as a tool for his consulting company, whose business model was to build end-to-end server/deployment tools. Jacob showed Chef to Jesse Robbins, who saw its potential after running operations at Amazon and they founded a new company with Barry Steinglass, Nathen Haneysmith, and Joshua Timberman to turn Chef into a product. The project, was originally named marionette, but the word was too long and cumbersome to type, in February 2013, Opscode released version 11 of Chef. Changes in this included a complete rewrite of the core API server in Erlang. Chef is supported on multiple platforms according to a supported platforms matrix for client, major platform support for clients includes AIX, RHEL/CentOS, FreeBSD, OS X, Solaris, Microsoft Windows and Ubuntu. Additional client platforms include Arch Linux, Debian and Fedora, Chef Server is supported on RHEL/CentOS, Oracle Linux, and Ubuntu. Chef is used by Facebook, the HP Public Cloud and Prezi, comparison of open source configuration management software Official website Chef on GitHub
24.
Hackety Hack
–
Hackety Hack is an open source application that teaches individuals how to create software. It combines an IDE with an extensive Lessons system, the cross-platform desktop application also has integration with the website, where Hackers can share what theyve learned, ask questions, and submit feedback. Hackety Hack was originally created by _why in order to solve The Little Coders Predicament, that learning modern software development is complicated, why eventually developed The Bylaws of Hackety in the Hackety Manifesto which lay down the guidelines for the project. Why enlisted the help of a group of 25 parents and their children to get early feedback, the earliest iterations of Hackety Hack were based on an embedded Gecko browser, but this eventually transformed into the Shoes GUI toolkit. Why intended to release Hackety Hack 1.0 at the Art, in his talk, he showed off a build thats known as version 0. L, with promises of a 1.0 soon to follow. This never came to pass, as Why mysteriously disappeared in August 2009, because they were stored in git, the Ruby community was able to revive them. A small team kept working, releasing v0.9 on Christmas of 2009, Hackety Hack was chosen as a project for the Ruby Summer of Code in 2010. Fela Winkelmolen was the student chosen to work on the project, chris Redinger, Jeff Casimir, Sarah Mei, and Steve Klabnik are mentoring. The two largest similar projects are Scratch and Alice, there are two major differences, Both of these projects use a graphical programming language based on the concept of blocks, but Hackety Hack teaches Ruby. Both Scratch and Alice are university projects out of MIT and CMU, respectively, the difference of blocks vs. Ruby stems from a shared belief, most programming languages require a lot of effort and knowledge before one can build more than the simplest of programs. The solution that Hackety Hack pursues is by teaching with a more traditional programming language, but adding libraries that make it easy to do complicated tasks in one line. For example, in a traditional software library, making a background with a gradient would take five or six lines of code using a toolkit like QT. This is achieved by choosing simple defaults and dropping support for lesser-used options, the university affiliation that Scratch and Alice enjoy gives them more resources to bring to bear. Both projects have teams of people, the credibility of their institutions. Hackety Hack is a more nimble project, since the team is much smaller and its also truly an open-source project, whereas the Alice project, for example, only releases dumps of the project source every so often. Hackety Hacks development is entirely open
25.
Homebrew (package management software)
–
Homebrew is a free and open-source software package management system that simplifies the installation of software on Apples macOS operating system. Originally written by Max Howell, the manager has gained popularity in the Ruby on Rails community. Homebrew has been recommended for its ease of use as well as its integration into the command line, Homebrew has made extensive use of GitHub in order to expand the support of several packages through user contributions. In 2010, Homebrew was the repository on GitHub. In 2012, Homebrew had the largest number of new contributors on GitHub, in 2013, Homebrew had both the largest number of contributors and issues closed of any project on GitHub. Homebrew was written by Max Howell in 2009, in March 2013, Homebrew successfully completed a Kickstarter campaign to raise funds for servers to test and build formulae and managed to raise £14,859. On December 13,2013, the Homebrew repository migrated from Howells GitHub account to its own project account, in February 2015, due to downtime at SourceForge which resulted in binaries being unavailable, Homebrew moved their hosting to bintray. As of July 2016, Homebrew is maintained by a team of 12 developers, Homebrew is written in the Ruby programming language and targets the version of Ruby that comes installed with the macOS operating system. It is by default installed into /usr/local and consists of a git repository, binary packages called bottles provide pre-built formulae with default options. In 2016, Homebrew migrated the git repository to /usr/local/Homebrew and changed the ownership of the sub-directories instead, such as /usr/local/bin, /usr/local/include, Homebrew collects user behaviour data and reports it to Google Analytics. It is possible to opt out, list of software package management systems Official website Homebrew on GitHub The Changelog #223, Homebrew and Package Management with Mike McQuaid
26.
Pry (software)
–
Pry is an interactive shell for the Ruby programming language. It is notable for its Smalltalk-inspired ability to start a REPL within a running program and this lets programmers debug and modify the current state of a system. Pry exposes most of its introspective capabilities using a filesystem metaphor, for example, it has a cd command to start interacting with a particular object, and uses ls to list methods and variables. It is possible to start Pry at any point inside a running program, due to the reflective nature of Ruby, this lets the programmer inspect the program, change its current state, or correct the source code without restarting the process. A number of third party plugins are available for Pry, these add tighter integration with other Ruby projects, enhance the abilities of Pry itself, the main competitor to Pry is IRB, a standalone interactive shell that is packaged with releases of the Ruby programming language. There are a number of third-party plugins that add features to make IRB behave more like Pry. There are other projects to bring a better-than-IRB REPL to Ruby, such as ripl, but they are yet to see widespread adoption
27.
Puppet (software)
–
In computing, Puppet is an open-source software configuration management tool. It runs on many Unix-like systems as well as on Microsoft Windows, Puppet is produced by Puppet, founded by Luke Kanies in 2005. It is written in Ruby and released as software under the GNU General Public License until version 2.7.0. Puppet is designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively, the user describes system resources and their state, either using Puppets declarative language or a Ruby DSL. This information is stored in files called Puppet manifests, any actions taken by Puppet are then reported. The resource abstraction layer enables administrators to describe the configuration in terms, such as users. Puppet is model-driven, requiring limited programming knowledge to use, Puppet comes in two flavors, Puppet Enterprise and Open Source Puppet. In addition to providing functionalities of Open Source Puppet, Puppet Enterprise also provides GUI, API, the client is known as agent and the server is known as master. It can also be used as a stand-alone application, Puppet Master is installed on one or more servers and the systems that need to be configured install Puppet Agent. Puppet Agents communicate with the server and fetch configuration instructions, the Agent then applies the configuration on the system and sends the status report to the server. Devices can run Puppet Agent as a daemon, that can be triggered periodically as a job or can be run manually whenever needed. Puppet architecture consists of, Configuration Language, In Puppet, items to be configured are termed as ‘resources’, since Puppet follows declarative language, it just needs to specify ‘what’ action needs to be performed on the resources. The action is implemented by declaring three things for every resource, its type, title and a list of attributes whose state needs to be configured, Puppet code is written into files called Manifests. These are stored on the server and contain instructions for each client. Format for writing manifest files is stated below, example, Resource Abstraction, Puppet provides resource abstraction by providing the ability to configure resources on different platforms without worrying about the platform dependencies. Facter is the piece of information which agents provide to the server describing what kind of operating system is being used, their IP, hostname, etc. Indirectly, it is a way of informing Puppet as to what needs to be followed for software configuration in its case. For any given type of resource, there are a number of providers, providers have packet management tools corresponding to different platforms/operating systems
28.
Redmine
–
Redmine is a free and open source, web-based project management and issue tracking tool. It allows users to manage projects and associated subprojects. It features per project wikis and forums, time tracking, and flexible and it includes a calendar and Gantt charts to aid visual representation of projects and their deadlines. Redmine integrates with various control systems and includes a repository browser. The design of Redmine is significantly influenced by Trac, a package with some similar features. Redmine is written using the Ruby on Rails framework and it is cross-platform and cross-database and supports 34 languages. Among the users of Redmine is Ruby, Redmine is the most popular open source project planning tool. Following concerns with the way the feedback and patches from the Redmine community were being handled a group of Redmine developers created a fork of the project in February 2011, the fork was initially named Bluemine, but changed to ChiliProject. After the leader of the fork moved on from ChiliProject in 2012 and development got stuck, another fork of ChiliProject called OpenProject is being actively worked on. Comparison of project management software Software configuration management Comparison of issue-tracking systems Lesyuk, Andriy
29.
RSpec
–
RSpec is a Domain Specific Language testing tool written in Ruby to test Ruby code. It is a development framework which is extensively used in the production applications. It contains its own mocking framework that is integrated into the framework based upon JMock. The simplicity in the RSpec syntax makes it one of the testing tools for Ruby applications. The RSpec tool can be used by installing the rspec gem which consists of 3 other gems namely rspec-core, rspec-expectation, RSpec was started as an experiment by Steven Baker in 2005 along with his team members Dave Astels, Aslak Hellesøy and David Chelimsky. David Chelimsky was responsible for developing the RSpec-Rails which facilitated the integration with Ruby on Rails, the initial release i. e. RSpec 1.0 came out in May 2007 which contained many prime features of RSpec which are being included in the latest releases also. However, due to technical issues such as testing speed. The third version of RSpec i. e. the RSpec 3 was released in July 2014 which had new features like verify doubles, composable matchers. The latest version of the RSpec currently available is RSpec 3.5, as mentioned above, RSpec provides a domain-specific language to describe the behavior of objects. The keywords used in RSpec are similar to the used in other languages and/or TDD frameworks. The syntax of RSpec provides the ease of readability and describes the behavior of the code thereby providing freedom to the programmer, every testing framework works in the following flow - given some context, when some event occurs, what outcome is expected. The methods like describe, context and it form the analogy, the describe method is used to describe a class, method or an example group. This is the block which actually contains the test code. This method takes a number of arguments and an optional block. However, normally one or two arguments are used to describe the behavior of the example group, the first argument represents the reference to the class or module whereas the second argument is optional whose datatype would be String. The example groups can be nested as well, an example of using the describe method is as follows, The context block is used to describe the context in which the class or method mentioned in the describe block is being used. This can be considered as an alias to the word describe in this scenario, generally, describe is used for things and context is used for contexts. It helps to venture out different outcomes in different scenarios, the example mentioned above can be described using the context method as follows, Using context makes it easier to scan a spec file and makes it clear what it relates to
30.
Ruby Version Manager
–
Ruby Version Manager, often abbreviated as RVM, is a unix-like software platform designed to manage multiple installations of Ruby on the same device. The entire ruby environment including the Ruby interpreter, installed RubyGems, the different versions can then be switched between to enable a developer to work on several projects with different version requirements. In addition to MRI, the standard Ruby interpreter, RVM functions as an installer for various implementations of Ruby. These include JRuby, mruby, MacRuby, IronRuby, Maglev, Rubinius, Ruby Enterprise Edition, Topaz, in addition, RVM supports the installation of patched versions of MRI. RVM provides features for organization of Ruby gems through gemsets, collections of gems separated by a namespace, gemsets can be associated with directories/projects through the use of the RVM-exclusive. rvmrc file. An alternative to using the. rvmrc file and its format is use of the. ruby-version and. ruby-gemset files, additionally, using. rvmrc requires trusting to prevent execution of unauthorized code, while. ruby-version does not
31.
Library (computing)
–
In computer science, a library is a collection of non-volatile resources used by computer programs, often to develop software. These may include data, documentation, help data, message templates, pre-written code. In IBMs OS/360 and its successors they are referred to as partitioned data sets, a library is also a collection of implementations of behavior, written in terms of a language, that has a well-defined interface by which the behavior is invoked. For instance, people who want to write a higher level program can use a library to make system calls instead of implementing those system calls over and over again, in addition, the behavior is provided for reuse by multiple independent programs. A program invokes the library-provided behavior via a mechanism of the language, for example, in a simple imperative language such as C, the behavior in a library is invoked by using Cs normal function-call. What distinguishes the call as being to a library, versus being to function in the same program, is the way that the code is organized in the system. This distinction can gain a hierarchical notion when a program grows large, in that case, there may be internal libraries that are reused by independent sub-portions of the large program. The value of a lies in the reuse of the behavior. When a program invokes a library, it gains the behavior implemented inside that library without having to implement that behavior itself, libraries encourage the sharing of code in a modular fashion, and ease the distribution of the code. The behavior implemented by a library can be connected to the program at different program lifecycle phases. If the code of the library is accessed during the build of the invoking program, an alternative is to build the executable of the invoking program and distribute that, independently of the library implementation. The library behavior is connected after the executable has been invoked to be executed, either as part of the process of starting the execution, in this case the library is called a dynamic library. A dynamic library can be loaded and linked when preparing a program for execution, alternatively, in the middle of execution, an application may explicitly request that a module be loaded. Most compiled languages have a library although programmers can also create their own custom libraries. Most modern software systems provide libraries that implement the majority of the system services, such libraries have commoditized the services which a modern application requires. As such, most code used by modern applications is provided in these system libraries, the earliest programming concepts analogous to libraries were intended to separate data definitions from the program implementation. JOVIAL brought the COMPOOL concept to popular attention in 1959, although it adopted the idea from the large-system SAGE software, COBOL also included primitive capabilities for a library system in 1959, but Jean Sammet described them as inadequate library facilities in retrospect. Another major contributor to the library concept came in the form of the subprogram innovation of FORTRAN
32.
Adhearsion
–
Adhearsion is an open source voice development framework for the Ruby programming language. It is intended to be used to create rich voice applications integrated with other technologies, such as web applications, databases, Adhearsion was created in 2006 and released by Jay Phillips in December of that year as an open source project. In August 2007 OReilly Media published the Asterisk The Future of Telephony book that included Adhearsion, the latest major version,2.0.0, was released in April 2012 and includes many substantial improvements over 1. x. The current development target is 3.0.0, Adhearsion is an entirely independent framework, including application and code generators and a plugin system. Today Adhearsion works with the Asterisk telephony engine, as well as with Tropos PRISM and FreeSWITCH through the open source Rayo protocol, Adhearsion provides a set of classes and facilities that enables a developer to work with voice with little knowledge of the voice development domain. The current members that make up the team are Ben Klang
33.
Camping (microframework)
–
Camping is a web application microframework written in Ruby which consistently stays under 4 KB - the complete source code can be viewed on a single A4 sheet. It was created and updated by the known as Why the lucky stiff until version 1.5. Around that time Whys focus shifted towards Hackety Hack and related project Shoes, why provided Judofyr with admin access on rubyforge. org and other sites. Judofyr took over as de facto head of the project, since then Camping has been a community driven framework with contributions from many people and a small but helpful community. While Judofyr is sometimes seen as a leader, hes insisted camping be governed by consensus on the very active mailing list. Whys eventual departure solidified the project as being run, and is notable for being one of the few former Why projects to be taken over by the community before Whys disappearance. Current editions of Camping are available from GitHub and are distributed as a RubyGem, Camping stores a complete fledgling web application in a single file, like a bundle of many small CGI scripts, but organizes it as a model–view–controller application as Ruby on Rails does. Camping applications can stand alone, meet niche requirements as the wheels that serve larger setups. For a basic installation, Camping only requires Rack and Markaby, further details can be found on the Camping wiki. To use a database youll also need the ActiveRecord and Sqlite3-ruby Rubygems, run camping yourappname. rb to launch the application on port 3301. The introductory tutorial builds a minimal unstyled wiki, and the Camping examples contains a tiny, earlier Camping 1.5 examples will either run without modification or require only slight adjustments to run under Camping 2.0
34.
ERuby
–
ERuby is a templating system that embeds Ruby into a text document. It is often used to embed Ruby code in an HTML document, similar to ASP, JSP, the templating system of eRuby combines the ruby code and the plain text to provide flow control and variable substitution, thus making it easy to maintain. The View module of the rails is responsible to display the response or output on a browser, in its simplest form, a view can be a piece of HTML code which has some static content. For most applications, just having static content may not be enough, many Rails applications will require dynamic content created by the controller to be displayed in their view. This is made possible by using Embedded Ruby to generate templates which can contain dynamic content, Embedded Ruby allows ruby code to be embedded in a view document. This code gets replaced with proper value resulted from the execution of the code at run time, but, by having the ability to embed code in a view document, we risk bridging the clear separation present in the MVC frame. It is thus the responsibility of the developer to make sure there is a clear separation of responsibility among the model, view. ERuby allows Ruby code to be embedded within a pair of <% and these embedded code blocks are then evaluated in-place. Apart from creating web pages, eRuby can also be used to create XML Documents, RSS feeds, eRuby dynamically generates static files based on templates. These functionalities of eRuby can be found in the ERB Library, different types of tag markers used in ERB templates are, Expression tags Execution tags Comment tags <%= %>, This indicates that the tag encloses an expression. Such a tag starts with an opening tag delimiter followed by an equal to symbol, during the rendering of the template, this piece of code gets substituted with the result of the code. If the evaluated result is not a string, it converted to a string before it is rendered. For example, The resulting text looks like this, The value of x is,500 <% %>, the code in such a tag gets executed and its result gets replaced in place of the scriptlet. Such tags must have a matching <% end %> tag to denote the end of a functional block, for example, In the above example, the text list item gets printed four times. The scriptlet produces no text on its own, it makes the enclosed statement to run multiple times. The output of above code, list item list item list item list item <%# %>, such tags start with an open tag delimiter followed by a hash symbol and end with an end tag delimiter. Example of a comment tag is shown below, <%# ruby code %> This is the same as a comment in Ruby, all Ruby code after the # is ignored and generates nothing. Other things common in eRuby are simply common in Ruby, such as string substitution with #, newlines in eRuby can be suppressed by adding a hyphen at the beginning of the end tag delimiter
35.
Merb
–
Merb was a model–view–controller web framework in Ruby, notable as a precursor to Rails 3. It brought increased focus on speed and modularity to Rails 3, the name Merb is a contraction of “Mongrel” and “Erb. It was developed by Ezra Zygmuntowicz & Yehuda Katz, most of these capabilities were added to Rails during the Rails 3/Merb merger. Merb was first released at the 2008 RubyConf and development has since stopped, the primary integration points were the web server interface, the model layer, the view layer, and controller extensions and add-ons. Merbs default application stack incorporated Datamapper for models, ERB for views, before the Merb / Rails 3 merge, Rails lacked a well-defined, documented, public API for extensions and plug-ins, leading to issues when Rails changes broke monkey-patches performed by plug-ins. Some early versions of Rails received bad publicity for lack of performance, frequently due to developer confusion about ActiveRecord queries. ”
36.
Padrino (web framework)
–
Padrino is a free and open-source web framework, written in Ruby and based on Sinatra. It is an alternative to other Ruby web frameworks such as Ruby on Rails, Merb, Nitro and it is dependent on the Rack web server interface. Padrino was created and open-sourced in 2010, the framework was created by Nathan Esquenazi, Davide DAgostino and Arthur Chiu based on the prior sinatra_more gem. The framework was created in order to extend Sinatra to more easily support rich web applications and this is a list of major functionality Padrino provides on top of Sinatra, Agnostic, Full support for many popular testing, templating, mocking, and database libraries. Generators, Create Padrino applications, models, controllers i. e. padrino g project, mountable, Unlike other Ruby frameworks, principally designed for mounting multiple apps. Routing, Full url named routes, named params, respond_to support, tag Helpers, View helpers such as, tag, content_tag, input_tag. Asset Helpers, View helpers such as, link_to, image_tag, javascript_include_tag, form Helpers, Builder support such as, form_tag, form_for, field_set_tag, text_field. Text Helpers, Useful formatting like, relative_time_ago, js_escape_html, sanitize_html, mailer, Fast and simple delivery support for sending emails. Logging, Provide a unified logger that can interact with your ORM or any library, reloading, Automatically reloads server code during development. Ruby on Rails Official website Padrino Core Team
37.
RubyCocoa
–
RubyCocoa is a Mac OS X framework that provides a bridge between the Ruby and the Objective-C programming languages, allowing the user to manipulate Objective-C objects from Ruby, and vice versa. It makes it possible to write a Cocoa application completely in Ruby as well as to write an application that mixes Ruby, an Apple project called MacRuby was under development to replace RubyCocoa in 2008. A proprietary spin-off called RubyMotion was subsequently released in 2012, available for iOS, OS X, RubyCocoa is free software, released under both the Ruby License and the LGPL. RubyCocoa was started in 2001 by Hisakuni Fujimoto when he implemented a Ruby extension module to wrap NSObject, later it was integrated with Project Builder. In 2002 the project was registered on SourceForge and the development team began to grow, in 2006 the committers list was first joined by a developer from Apple, Laurent Sansonetti, and then a RubyCocoa presentation was made during WWDC. Apple stated that RubyCocoa will be included and supported in Mac OS X v10.5 “Leopard”, in August 2008, Sansonetti confirmed that MacRuby is supposed to replace RubyCocoa. in the future. RubyCocoa is sometimes interpreted as a set of bindings to the Cocoa frameworks, RubyCocoa is a real bridge between the Objective-C and Ruby programming languages. RubyCocoa will import the Objective-C classes into the Ruby world on demand and it will also import in the same way all the inherited classes. As stated earlier, RubyCocoa creates special proxy objects, if an exception is raised from the Objective-C world, RubyCocoa will convert it to a Ruby exception and forward it to you. RubyCocoa uses the library to call the Objective-C methods implementations. RubyCocoa makes it easy to override an Objective-C method from Ruby, to accomplish this, RubyCocoa uses the libffi library to dynamically create a closure that will call the Ruby method, and just passes a pointer to that new closure to the Objective-C runtime. Due to the nature of the Objective-C language, you can freely use C from Objective-C code, in order to bridge the relevant C parts of an Objective-C framework, such as C structures, functions, enumerations, constants and more, RubyCocoa relies on the BridgeSupport project. RubyCocoa will interpret at runtime the BridgeSupport files and accordingly handle their content and it will for instance construct the Ruby proxy classes for the C structures and also create the functions. Note that the operations, such as localizing the symbols, are done on demand. RubyCocoa is able to detect APIs that use format strings, like NSLog or NSString. stringWithFormat, RubyCocoa allows you to pass Ruby Proc objects as function pointer arguments. It will then use the library to dynamically create a closure. When you install RubyCocoa, the corresponding Xcode templates are installed automatically, so when you start a new project, select Cocoa-Ruby Application project type and all necessary files will be generated. To invoke an Objective-C method, you replace each colon in the name except the last with an underscore
38.
Ruby on Rails
–
Ruby on Rails, or simply Rails, is a server-side web application framework written in Ruby under the MIT License. Rails is a framework, providing default structures for a database, a web service. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, David Heinemeier Hansson extracted Ruby on Rails from his work on the project management tool Basecamp at the web application company also called Basecamp. Hansson first released Rails as open source in July 2004, in August 2006, the framework reached a milestone when Apple announced that it would ship Ruby on Rails with Mac OS X v10.5 Leopard, which was released in October 2007. Rails version 2.3 was released on March 15,2009 with major new developments in templates, engines, Rack, templates enable the developer to generate a skeleton application with custom gems and configurations. Engines give developers the ability to reuse application pieces complete with routes, view paths, the Rack web server interface and Metal allow one to write optimized pieces of code that route around Action Controller. Merb was merged with Rails as part of the Rails 3.0 release, Rails 3.2 was released on January 20,2012 with a faster development mode and routing engine, Automatic Query Explain and Tagged Logging. Rails 3.2. x is the last version that supports Ruby 1.8.7, Rails 4.1 was released on April 8,2014, introducing Spring, Variants, Enums, Mailer previews, and secrets. yml. Rails 4.2 was released on December 19,2014, introducing Active Job, asynchronous emails, Adequate Record, Web Console, Rails 5.0 was released on June 30,2016, introducing Action Cable, API mode, and Turbolinks 5. Like many web frameworks, Ruby on Rails uses the pattern to organize application programming. In a default configuration, a model in the Ruby on Rails framework maps to a table in a database and to a Ruby file. For example, a model class User will usually be defined in the file user. rb in the app/models directory, a controller is a server-side component of Rails that responds to external requests from the web server to the application, by determining which view file to render. The controller may also have to one or more models directly for information. A controller may provide one or more actions, in Ruby on Rails, an action is typically a basic unit that describes how to respond to a specific external web-browser request. Also, note that the controller/action will be accessible for external web requests only if a route is mapped to it. Rails encourages developers to use RESTful routes, which include such as create, new, edit, update, destroy, show. These mappings of incoming requests/routes to controller actions can be set up in the routes. rb configuration file. A view in the configuration of Rails is an erb file