The Year Without Pants: Wordpress.com and the Future of Work
by
Scott Berkun
Published 9 Sep 2013
Kelling, “Broken Windows,” Atlantic Monthly (March 1982). 2 Just as a broken leg will take more time to fix than a scratch, a simple incoming-versus-fix chart discounts possibly important details such as the scope of each issue. 3 A good summary of the problems with evaluating programming work based on lines of code is at http://en.wikipedia.org/wiki/Source_lines_of_code#Disadvantages. Chapter 11 Real Artists Ship In September 1983, the Apple Macintosh project was far behind schedule. The team was burning out but still had significant work left to do. Steve Jobs, CEO of Apple and visionary leader of the project, walked by the team's main hallway and wrote on a nearby easel what would become one of his best-known sayings: “Real Artists Ship.”
Advanced Software Testing—Vol. 3, 2nd Edition
by
Jamie L. Mitchell
and
Rex Black
Published 15 Feb 2015
This clearly involves a capability for statistical analysis that is far beyond the capabilities of most organizations (due to lack of resources and skills). Metrics that NASA collects and evaluates can be split into two categories: static and dynamic. The following measures are static measures: 1. Line count, including lines of code (LOC) and source lines of code (SLOC) 2. Complexity and structure, including cyclomatic complexity, number of modules and number of GOTO statements 3. Object-oriented metrics, including number of classes, weighted methods per class, coupling between objects, response for a class, number of child classes, and depth of inheritance tree Dynamic measures include failure rate data and the number of problem reports.
The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution
by
Walter Isaacson
Published 6 Oct 2014
Microsoft later was involved in a protracted antitrust suit brought by the Justice Department, which charged that it had improperly leveraged its dominance of the operating system market to seek advantage in browsers and other products. The case was eventually settled after Microsoft agreed to modify some of its practices. 36. By 2009 the Debian version 5.0 of GNU/Linux had 324 million source lines of code, and one study estimated that it would have cost about $8 billion to develop by conventional means (http://gsyc.es/~frivas/paper.pdf). 37. An Ethernet or WiFi today can transmit data at a billion bps, which is more than 3 million times faster. 38. Western Union later bought the business and turned it into its Mailgram service. 39.
Haskell Programming: From First Principles
by
Christopher Allen
and
Julie Moronuki
Published 1 Jan 2015
There is almost never a good reason to indent all your declarations in this way, but noting this gives us some idea of how the compiler is reading the code. It is better, when confronted with an error message like this, to make sure that your first declaration is at the leftmost margin and proceed from there. Another possible mistake is that you might’ve missed the second - in the -- used to comment out source lines of code. So this code: - learn.hs module Learn where -- First declare the name of our module so it -- can be imported by name in a project. -- We won't do this for a while yet. x = 10 * 5 + y myResult = x * 5 y = 10 will cause this error: Prelude> :r [1 of 1] Compiling Main code/learn.hs:7:1: parse error on input ‘module’ Failed, modules loaded: none.
Programming Python
by
Mark Lutz
Published 5 Jan 2011
The effect is much like calling the visitfile method of this class for each filename returned by the find tool we wrote earlier in this chapter, but the OO structure here is arguably more flexible and extensible. Example 6-21. PP4E\Tools\visitor_sloc.py """ Count lines among all program source files in a tree named on the command line, and report totals grouped by file types (extension). A simple SLOC (source lines of code) metric: skip blank and comment lines if desired. """ import sys, pprint, os from visitor import FileVisitor class LinesByType(FileVisitor): srcExts = [] # define in subclass def __init__(self, trace=1): FileVisitor.__init__(self, trace=trace) self.srcLines = self.srcFiles = 0 self.extSums = {ext: dict(files=0, lines=0) for ext in self.srcExts} def visitsource(self, fpath, ext): if self.trace > 0: print(os.path.basename(fpath)) lines = len(open(fpath, 'rb').readlines()) self.srcFiles += 1 self.srcLines += lines self.extSums[ext]['files'] += 1 self.extSums[ext]['lines'] += lines def visitfile(self, filepath): FileVisitor.visitfile(self, filepath) for ext in self.srcExts: if filepath.endswith(ext): self.visitsource(filepath, ext) break class PyLines(LinesByType): srcExts = ['.py', '.pyw'] # just python files class SourceLines(LinesByType): srcExts = ['.py', '.pyw', '.cgi', '.html', '.c', '.cxx', '.h', '.i'] if __name__ == '__main__': walker = SourceLines() walker.run(sys.argv[1]) print('Visited %d files and %d dirs' % (walker.fcount, walker.dcount)) print('-'*80) print('Source files=>%d, lines=>%d' % (walker.srcFiles, walker.srcLines)) print('By Types:') pprint.pprint(walker.extSums) print('\nCheck sums:', end=' ') print(sum(x['lines'] for x in walker.extSums.values()), end=' ') print(sum(x['files'] for x in walker.extSums.values())) print('\nPython only walk:') walker = PyLines(trace=0) walker.run(sys.argv[1]) pprint.pprint(walker.extSums) When run as a script, we get trace messages during the walk (omitted here to save space), and a report with line counts grouped by file type.