├── features ├── support │ └── aruba.rb ├── steps.rb └── rules.feature ├── Gemfile ├── fixtures ├── Usage │ ├── test.md │ └── .vale.ini ├── Latin │ ├── .vale.ini │ └── test.md ├── Terms │ ├── .vale.ini │ └── test.md ├── Structure │ ├── .vale.ini │ └── test.md ├── Capitalization │ ├── .vale.ini │ └── test.md └── Punctuation │ ├── .vale.ini │ └── test.md ├── IBM ├── OxfordComma.yml ├── SentenceLength.yml ├── Abbreviations.yml ├── Ellipses.yml ├── Headings.yml ├── DashSpacing.yml ├── Latin.yml ├── Definitions.yml ├── Usage.yml └── Terms.yml ├── .yamllint.yml ├── .travis.yml ├── LICENSE ├── .gitignore └── README.md /features/support/aruba.rb: -------------------------------------------------------------------------------- 1 | require 'aruba/cucumber' 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'aruba', '~> 0.14.3' 4 | -------------------------------------------------------------------------------- /fixtures/Usage/test.md: -------------------------------------------------------------------------------- 1 | # Word usage guidelines for IBM 2 | 3 | We are ready to deploy the style. 4 | -------------------------------------------------------------------------------- /fixtures/Latin/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.Latin = YES 7 | -------------------------------------------------------------------------------- /fixtures/Terms/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.Terms = YES 7 | -------------------------------------------------------------------------------- /fixtures/Usage/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.Usage = YES 7 | -------------------------------------------------------------------------------- /fixtures/Structure/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.SentenceLength = YES 7 | -------------------------------------------------------------------------------- /fixtures/Terms/test.md: -------------------------------------------------------------------------------- 1 | # Terminology tests for IBM 2 | 3 | Look at the bottom-left of your screen. 4 | 5 | There are a number of options. 6 | -------------------------------------------------------------------------------- /fixtures/Capitalization/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.Headings = YES 7 | IBM.Definitions = YES 8 | -------------------------------------------------------------------------------- /fixtures/Latin/test.md: -------------------------------------------------------------------------------- 1 | # Use of Latin abbreviations 2 | 3 | 1, 2, 3, etc. 4 | 5 | Here's an example sentence -- i.e., one that should raise an alert. 6 | 7 | This vs. that. 8 | -------------------------------------------------------------------------------- /features/steps.rb: -------------------------------------------------------------------------------- 1 | cmd = 'vale --output=line --sort --normalize --relative' 2 | 3 | When(/^I test "(.*)"$/) do |rule| 4 | step %(I cd to "../../fixtures/#{rule}") 5 | step %(I run `#{cmd} .`) 6 | end 7 | -------------------------------------------------------------------------------- /fixtures/Punctuation/.vale.ini: -------------------------------------------------------------------------------- 1 | StylesPath = ../../ 2 | 3 | MinAlertLevel = suggestion 4 | 5 | [*.md] 6 | IBM.Ellipses = YES 7 | IBM.Abbreviations = YES 8 | IBM.OxfordComma = YES 9 | IBM.DashSpacing = YES 10 | -------------------------------------------------------------------------------- /IBM/OxfordComma.yml: -------------------------------------------------------------------------------- 1 | extends: existence 2 | message: "Use the Oxford comma in '%s'." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N106BF' 4 | level: suggestion 5 | tokens: 6 | - '(?:[^,]+,){1,}\s\w+\sand' 7 | -------------------------------------------------------------------------------- /IBM/SentenceLength.yml: -------------------------------------------------------------------------------- 1 | extends: occurrence 2 | message: "Try to keep sentences less than 25 words." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N106FB' 4 | scope: sentence 5 | level: suggestion 6 | max: 25 7 | token: \b(\w+)\b 8 | -------------------------------------------------------------------------------- /IBM/Abbreviations.yml: -------------------------------------------------------------------------------- 1 | extends: existence 2 | message: "Do not use periods in all-uppercase abbreviations such as '%s'." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N100DC' 4 | level: error 5 | nonword: true 6 | tokens: 7 | - '\b(?:[A-Z]\.){3,5}' 8 | -------------------------------------------------------------------------------- /IBM/Ellipses.yml: -------------------------------------------------------------------------------- 1 | extends: existence 2 | message: "Avoid the ellipsis (...) except to indicate omitted words." 3 | link: https://www.ibm.com/developerworks/library/styleguidelines/index.html 4 | nonword: true 5 | level: warning 6 | action: 7 | name: remove 8 | tokens: 9 | - '\.\.\.' 10 | - '…' 11 | -------------------------------------------------------------------------------- /.yamllint.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | # We only include a single document (without directives) in our rules, so 3 | # the extra markup is unnecessary. 4 | document-start: disable 5 | # Many rules include a `link` key that can be relatively long. 6 | # 7 | # TODO: Should we change this? 8 | line-length: disable 9 | -------------------------------------------------------------------------------- /IBM/Headings.yml: -------------------------------------------------------------------------------- 1 | extends: capitalization 2 | message: "'%s' should use sentence-style capitalization." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N1030C' 4 | level: suggestion 5 | scope: heading 6 | match: $sentence 7 | indicators: 8 | - ':' 9 | exceptions: 10 | - IBM 11 | -------------------------------------------------------------------------------- /IBM/DashSpacing.yml: -------------------------------------------------------------------------------- 1 | extends: existence 2 | message: "Add spaces around the dash in '%s'." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N106BF' 4 | ignorecase: true 5 | nonword: true 6 | level: error 7 | action: 8 | name: edit 9 | params: 10 | - remove 11 | - ' ' 12 | tokens: 13 | - '[^\s][—–][^\s]' 14 | -------------------------------------------------------------------------------- /fixtures/Structure/test.md: -------------------------------------------------------------------------------- 1 | # Structure 2 | 3 | Keep sentences short, 25 words or fewer. Emphasize important points with the occasional short sentence (fewer than 10 words). 4 | 5 | If your docs are aimed at helping `people` code, then probably that "previous developer experience" is a good way to go, preferably with details on the specific languages/environments they'll be writing about. 6 | -------------------------------------------------------------------------------- /IBM/Latin.yml: -------------------------------------------------------------------------------- 1 | extends: substitution 2 | message: "Use '%s' instead of '%s'." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#wordlist' 4 | ignorecase: true 5 | level: error 6 | nonword: true 7 | action: 8 | name: replace 9 | swap: 10 | '\b(?:eg|e\.g\.)[\s,]': for example 11 | '\b(?:ie|i\.e\.)[\s,]': that is 12 | '\betc\.': and so on 13 | '\bvs\.': versus 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | cache: bundler 3 | python: 4 | - "3.6" 5 | install: 6 | # Install the latest release of Vale: 7 | - curl -sL https://install.goreleaser.com/github.com/ValeLint/vale.sh | bash 8 | - export PATH=./bin:"$PATH" 9 | 10 | - bundle install --jobs=3 11 | 12 | - pip install yamllint 13 | - pip install markdata 14 | - pip install pyyaml 15 | before_script: 16 | - yamllint -c '.yamllint.yml' IBM 17 | script: 18 | - cucumber 19 | - zip -r IBM.zip IBM -x "*.DS_Store" 20 | deploy: 21 | provider: releases 22 | api_key: $GITHUB_TOKEN 23 | file: IBM.zip 24 | skip_cleanup: true 25 | on: 26 | tags: true 27 | -------------------------------------------------------------------------------- /fixtures/Punctuation/test.md: -------------------------------------------------------------------------------- 1 | # Ellipses tests for IBM 2 | 3 | That was ... strange. And that … was also strange. 4 | 5 | ## Abbreviation style 6 | 7 | Do not use periods in all-uppercase abbreviations, such as SWAT or IBM. 8 | 9 | I.B.M. 10 | 11 | S.W.A.T. 12 | 13 | ## Commas 14 | 15 | In a series of items connected by "and" or "or," retain the comma before the "and" and "or." 16 | 17 | It comes in red, blue and green. 18 | 19 | ## Dashes 20 | 21 | Use the mdash (``) to signal a brief and relevant detour in thought. Keep spaces on both sides of the dash. 22 | 23 | Here's an idea—we should use spaces around dashes. 24 | 25 | Here's an idea — we should use spaces around dashes. 26 | -------------------------------------------------------------------------------- /fixtures/Capitalization/test.md: -------------------------------------------------------------------------------- 1 | # Capitalization 2 | 3 | > Use sentence-style capitalization for headings and captions; that is, capitalize only the first letter of the first word and any proper nouns or acronyms. 4 | 5 | ## Lambda expressions: Higher-order functions at last 6 | 7 | > In text, capitalize the first word after a colon only if it starts a complete sentence. But always capitalize the first word after a colon in headings and captions. 8 | 9 | ### Lambda Expressions 10 | 11 | ## Define technical terms and avoid jargon 12 | 13 | You can make use of MDBs to do that. 14 | 15 | You can make use of message-driven beans (MDBs) to do that. 16 | 17 | You can make use of MDBs to do that. 18 | 19 | According to Wikipedia, the World Health Organization (WHO) is a specialized agency of the United Nations that is concerned with international public health. We can now use WHO because it has been defined, but we can't use DAFB because people may not know what it represents. We can use `DAFB` when it's presented as code, though. 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 errata.ai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /IBM/Definitions.yml: -------------------------------------------------------------------------------- 1 | extends: conditional 2 | message: "Define acronyms and abbreviations (such as '%s') on first occurrence if they're likely to be unfamiliar." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#N100DC' 4 | level: suggestion 5 | ignorecase: false 6 | # Ensures that the existence of 'first' implies the existence of 'second'. 7 | first: '\b([A-Z]{3,5}s?)\b' 8 | second: '\(([A-Z]{3,5}s?)\)' 9 | # ... with the exception of these: 10 | exceptions: 11 | - API 12 | - ASP 13 | - CLI 14 | - CPU 15 | - CSS 16 | - CSV 17 | - DEBUG 18 | - DOM 19 | - DPI 20 | - FAQ 21 | - GCC 22 | - GDB 23 | - GET 24 | - GPU 25 | - GTK 26 | - GUI 27 | - HTML 28 | - HTTP 29 | - HTTPS 30 | - IDE 31 | - JAR 32 | - JSON 33 | - JSX 34 | - LESS 35 | - LLDB 36 | - NET 37 | - NOTE 38 | - NVDA 39 | - OSS 40 | - PATH 41 | - PDF 42 | - PHP 43 | - POST 44 | - RAM 45 | - REPL 46 | - RSA 47 | - SCM 48 | - SCSS 49 | - SDK 50 | - SQL 51 | - SSH 52 | - SSL 53 | - SVG 54 | - SWAT 55 | - TBD 56 | - TCP 57 | - TODO 58 | - URI 59 | - URL 60 | - USB 61 | - UTF 62 | - XML 63 | - XSS 64 | - YAML 65 | - ZIP 66 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | /.config 4 | /coverage/ 5 | /InstalledFiles 6 | /pkg/ 7 | /spec/reports/ 8 | /spec/examples.txt 9 | /test/tmp/ 10 | /test/version_tmp/ 11 | /tmp/ 12 | 13 | # Used by dotenv library to load environment variables. 14 | # .env 15 | 16 | ## Specific to RubyMotion: 17 | .dat* 18 | .repl_history 19 | build/ 20 | *.bridgesupport 21 | build-iPhoneOS/ 22 | build-iPhoneSimulator/ 23 | 24 | ## Specific to RubyMotion (use of CocoaPods): 25 | # 26 | # We recommend against adding the Pods directory to your .gitignore. However 27 | # you should judge for yourself, the pros and cons are mentioned at: 28 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 29 | # 30 | # vendor/Pods/ 31 | 32 | ## Documentation cache and generated files: 33 | /.yardoc/ 34 | /_yardoc/ 35 | /doc/ 36 | /rdoc/ 37 | 38 | ## Environment normalization: 39 | /.bundle/ 40 | /vendor/bundle 41 | /lib/bundler/man/ 42 | 43 | # for a library or gem, you might want to ignore these files since the code is 44 | # intended to run in multiple environments; otherwise, check them in: 45 | # Gemfile.lock 46 | # .ruby-version 47 | # .ruby-gemset 48 | 49 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: 50 | .rvmrc 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IBM 2 | A [Vale-compatible](https://github.com/errata-ai/vale) linter style that replicates the [IBM's Developer Editorial Style Guide](https://web.archive.org/web/20210126213122/https://www.ibm.com/developerworks/library/styleguidelines/index.html). 3 | 4 | ## Getting Started 5 | 6 | > :exclamation: IBM requires Vale >= **1.7.0**. :exclamation: 7 | 8 | Download the [latest release](https://github.com/errata-ai/IBM/releases), copy the "IBM" directory to your `StylesPath`, and include it in your configuration file: 9 | 10 | ```ini 11 | # This goes in a file named either `.vale.ini` or `_vale.ini`. 12 | StylesPath = path/to/some/directory 13 | MinAlertLevel = warning # suggestion, warning or error 14 | 15 | # Only Markdown and .txt files; change to whatever you're using. 16 | [*.{md,txt}] 17 | # List of styles to load. 18 | BasedOnStyles = IBM 19 | ``` 20 | 21 | See the [documentation](https://vale.sh/) for more information. 22 | 23 | ## Repository Structure 24 | 25 |
26 |
/IBM
27 |
The YAML-based rule implementations that make up our style.
28 | 29 |
/fixtures
30 |
The individual unit tests. Each directory should be named after a rule found in /Microsoft and include its own .vale.ini file that isolates its target rule.
31 | 32 |
/features
33 |
The Cucumber Step Definitions we use to test our fixtures. Essentially, we use the aruba framework to test Vale's output after running it on each of our fixture directories.
34 |
35 | 36 | ## Extension Points 37 | 38 | | Check | Implementation(s) | 39 | |:------------:|:---------------------------------------------------:| 40 | | [`existence`](https://vale.sh/docs/checks/existence) | [`Terms.yml`](https://github.com/errata-ai/IBM/blob/master/IBM/Terms.yml) | 41 | | [`substitution`](https://vale.sh/docs/checks/substitution) | [`Checkusage.yml`](https://github.com/errata-ai/Microsoft/blob/master/Microsoft/Checkusage.yml) | 42 | -------------------------------------------------------------------------------- /features/rules.feature: -------------------------------------------------------------------------------- 1 | Feature: Rules 2 | 3 | Scenario: Incorrect Terminology 4 | When I test "Terms" 5 | Then the output should contain exactly: 6 | """ 7 | test.md:3:13:IBM.Terms:Consider using 'lower left or lower-left' instead of 'bottom-left' 8 | test.md:5:11:IBM.Terms:Consider using 'several' instead of 'a number of' 9 | """ 10 | 11 | Scenario: Word Usage 12 | When I test "Usage" 13 | Then the output should contain exactly: 14 | """ 15 | test.md:3:1:IBM.Usage:Verify your use of 'We' with the word usage guidelines. 16 | test.md:3:17:IBM.Usage:Verify your use of 'deploy' with the word usage guidelines. 17 | """ 18 | 19 | Scenario: Use of punctuation 20 | When I test "Punctuation" 21 | Then the output should contain exactly: 22 | """ 23 | test.md:3:10:IBM.Ellipses:Avoid the ellipsis (...) except to indicate omitted words. 24 | test.md:3:32:IBM.Ellipses:Avoid the ellipsis (...) except to indicate omitted words. 25 | test.md:9:1:IBM.Abbreviations:Do not use periods in all-uppercase abbreviations such as 'I.B.M.'. 26 | test.md:11:1:IBM.Abbreviations:Do not use periods in all-uppercase abbreviations such as 'S.W.A.T.'. 27 | test.md:17:1:IBM.OxfordComma:Use the Oxford comma in 'It comes in red, blue and'. 28 | test.md:23:14:IBM.DashSpacing:Add spaces around the dash in 'a—w'. 29 | """ 30 | 31 | Scenario: Use of Latin abbreviations 32 | When I test "Latin" 33 | Then the output should contain exactly: 34 | """ 35 | test.md:3:10:IBM.Latin:Use 'and so on' instead of 'etc.'. 36 | test.md:5:31:IBM.Latin:Use 'that is' instead of 'i.e.,'. 37 | test.md:7:6:IBM.Latin:Use 'versus' instead of 'vs.'. 38 | """ 39 | 40 | Scenario: Capitalization 41 | When I test "Capitalization" 42 | Then the output should contain exactly: 43 | """ 44 | test.md:9:5:IBM.Headings:'Lambda Expressions' should use sentence-style capitalization. 45 | test.md:13:21:IBM.Definitions:Define acronyms and abbreviations (such as 'MDBs') on first occurrence if they're likely to be unfamiliar. 46 | test.md:19:224:IBM.Definitions:Define acronyms and abbreviations (such as 'DAFB') on first occurrence if they're likely to be unfamiliar. 47 | """ 48 | 49 | Scenario: Content Structure 50 | When I test "Structure" 51 | Then the output should contain exactly: 52 | """ 53 | test.md:5:1:IBM.SentenceLength:Try to keep sentences less than 25 words. 54 | """ 55 | -------------------------------------------------------------------------------- /IBM/Usage.yml: -------------------------------------------------------------------------------- 1 | extends: existence 2 | message: "Verify your use of '%s' with the word usage guidelines." 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#wordlist' 4 | ignorecase: true 5 | level: warning 6 | tokens: 7 | # This need its own rule since it doesn't have a left-hand word boundary. 8 | # - (s) 9 | 10 | # These also need their own rule: 11 | # - neither ... nor 12 | # - if...then 13 | 14 | - 'pop-up (?:help|menu)' 15 | - 'redbook(:s)?' 16 | - about 17 | - above 18 | - across 19 | - actionable 20 | - allow 21 | - alpha 22 | - alphabetic 23 | - alphabetical 24 | - and so on 25 | - architect 26 | - architected 27 | - as 28 | - as well as 29 | - assembler 30 | - attach 31 | - below 32 | - best-of-breed 33 | - between 34 | - billion 35 | - bitness 36 | - black box 37 | - board 38 | - both 39 | - bring up 40 | - business partner 41 | - cache 42 | - camel case 43 | - carry out 44 | - catch 45 | - central processing unit 46 | - check 47 | - choose 48 | - combination box 49 | - combo box 50 | - command console 51 | - Common Base Event 52 | - complete 53 | - congratulations 54 | - connect 55 | - consumability 56 | - consume 57 | - could 58 | - CPU 59 | - customers 60 | - daughterboard 61 | - decompress 62 | - decompressed 63 | - deploy 64 | - designed to 65 | - display 66 | - domestic 67 | - done 68 | - due to 69 | - either 70 | - EPUB 71 | - execute 72 | - fatal 73 | - foo 74 | - foobar 75 | - foreign 76 | - free 77 | - freeze 78 | - fubar 79 | - functionality 80 | - geography 81 | - green screen 82 | - guarantee 83 | - hard boot 84 | - hash 85 | - hash sign 86 | - higher 87 | - hit 88 | - hover help 89 | - illegal 90 | - impact 91 | - info center 92 | - infocenter 93 | - information center 94 | - ingest 95 | - internationalize 96 | - invoke 97 | - itself 98 | - Java Development Kit \(JDK\) 99 | - kill 100 | - latest 101 | - legacy 102 | - let 103 | - like 104 | - lite 105 | - localize 106 | - look and feel 107 | - look-and-feel 108 | - machine 109 | - master and slave 110 | - migrate 111 | - native 112 | - new 113 | - once 114 | - out-of-the-box 115 | - overhead 116 | - panel 117 | - partner 118 | - permit 119 | - please 120 | - pound sign 121 | - program temporary fix 122 | - proper 123 | - pull-down 124 | - quote 125 | - quoted 126 | - refer to 127 | - repair 128 | - reside 129 | - respective 130 | - respectively 131 | - select 132 | - selected 133 | - should 134 | - simply 135 | - since 136 | - slave 137 | - so 138 | - soft boot 139 | - Solution Partnership Centers 140 | - some 141 | - store 142 | - system 143 | - tab 144 | - text entry field 145 | - text field 146 | - that 147 | - themselves 148 | - then 149 | - there are 150 | - there is 151 | - this means 152 | - through 153 | - throw 154 | - throwable 155 | - time to value 156 | - time-tested 157 | - translate 158 | - trillion 159 | - twistie 160 | - twisty 161 | - uncompressed 162 | - unmount 163 | - updatable 164 | - upgrade 165 | - users 166 | - using 167 | - very 168 | - we 169 | - where 170 | - whether or not 171 | - which 172 | - while 173 | - would 174 | -------------------------------------------------------------------------------- /IBM/Terms.yml: -------------------------------------------------------------------------------- 1 | extends: substitution 2 | message: Consider using '%s' instead of '%s' 3 | link: 'https://www.ibm.com/developerworks/library/styleguidelines/index.html#wordlist' 4 | level: error 5 | ignorecase: true 6 | action: 7 | name: replace 8 | # swap maps tokens in form of bad: good 9 | swap: 10 | '(?:Ctrl|control)-click': press Ctrl and click 11 | 'a lot(?: of)?': many|much 12 | 'backward(?:-)?compatible': compatible with earlier versions 13 | 'bottom(?:-)?left': lower left|lower-left 14 | 'bottom(?:-)?right': lower right|lower-right 15 | 'down(?:-)?level': earlier|previous|not at the latest level 16 | 'mash(?: )?up': create 17 | 'pop-up (?:blocker|killer)': software to block pop-up ad windows 18 | 're(?:-)?occur': recur 19 | 'sort(?:-|/)?merge': sort|merge 20 | 'top(?:-)?left': upper left|upper right|upper-left|upper-right 21 | 'top(?:-)?right': upper left|upper right|upper-left|upper-right 22 | 23 | # These are currenly invalid patterns. 24 | # 25 | # dismiss (a window, a dialog box): close 26 | # position (a cursor): move 27 | # spawn (a process): create 28 | # strike (a key): press|type 29 | # touch (a key): press|type 30 | 31 | a number of: several 32 | abort: cancel|stop 33 | administrate: administer 34 | all caps: uppercase 35 | and/or: a or b|a, b, or both 36 | as long as: if|provided that 37 | as per: according to|as|as in 38 | back-level: earlier|previous|not at the latest level 39 | Big Blue: IBM 40 | blink: flash 41 | blue screen of death: stop error 42 | breadcrumbing: breadcrumb trail 43 | canned: preplanned|preconfigured|predefined 44 | case insensitive: not case-sensitive 45 | catastrophic error: unrecoverable error 46 | CBE: Common Base Event 47 | CBTS: CICS BTS|BTS 48 | cold boot: hardware restart 49 | cold start: hardware restart 50 | comes with: includes 51 | componentization: component-based development|component model|component architecture|shared components 52 | componentize: develop components 53 | comprised of: consist of 54 | connect with: connect to 55 | context menu: menu|pop-up menu 56 | contextual help: help|context-sensitive help 57 | crash: fail|lock up|stop|stop responding 58 | CRUD: create retrieve update and delete 59 | customer: client 60 | datum: data 61 | debuggable: debug 62 | deconfigure: unconfigure 63 | deinstall: uninstall 64 | deinstallation: uninstallation 65 | demilitarized zone: DMZ 66 | demo: demonstration 67 | depress: press|type 68 | deregister: unregister 69 | desire: want|required 70 | destroy: delete from the database 71 | dismount: demount|unmount|remove 72 | do: complete|perform 73 | downgrade: upgrade|fallback|fall back|rollback|roll back 74 | downward compatible: compatible with earlier versions 75 | drag and drop: drag 76 | drill up: navigate 77 | e-fix: fix|interim fix 78 | eFix: fix|interim fix 79 | end user: user 80 | end-user interface: graphical interface|interface 81 | EUI: graphical user interface|interface 82 | expose: display|show|make available 83 | fill in: complete|enter|specify 84 | fixed disk drive: hard disk drive 85 | flavor: version|method 86 | floppy disk: diskette|diskette drive 87 | floppy drive: diskette|diskette drive 88 | floppy: diskette|diskette drive 89 | forward compatible: compatible with later versions 90 | gzip: compress 91 | gzipped: archive|compressed file 92 | hard drive: hard disk|hard disk drive 93 | hard file: hard disk|hard disk drive 94 | hence: therefore 95 | i-fix: interim fix 96 | i-Fix: interim fix 97 | IBM's: IBM's|IBM's AIX 98 | ifix: interim fix 99 | iFix: interim fix 100 | in order to: to 101 | in other words: for example|that is 102 | in spite of: regardless of|despite 103 | in the event: in case|if|when 104 | inactivate: deactivate 105 | information on: information about 106 | information technology: IT 107 | instead of: rather than 108 | insure: ensure 109 | Internet address: IP address|URL|Internet email address|web address 110 | irrecoverable: unrecoverable 111 | jar: compress|archive 112 | keep in mind: remember 113 | key: type|press 114 | laptop: notebook 115 | launch: start|open 116 | left-hand: left 117 | let's: let us 118 | leverage: use 119 | line cord: power cable|power cord 120 | main directory: root directory 121 | memory stick: USB flash drive 122 | microcomputer: PC 123 | motherboard: system board 124 | mouse over: point to|move the mouse pointer over|Mouse|mouse over 125 | network-centric computing: network computing 126 | non-English: in languages other than English|non-English-language 127 | nonrecoverable: unrecoverable 128 | notion: concept 129 | off-premise: on-premises|off-premises|onsite|offsite 130 | offline storage: auxiliary storage 131 | okay: OK 132 | on ramp: access method 133 | on the fly: dynamically|as needed|in real time|immediately 134 | on the other hand: however|alternatively|conversely 135 | on-premise: on-premises|off-premises|onsite|offsite 136 | on-ramp: access method 137 | pain point: challenge|concern|difficulty|issue 138 | parent task: parent process 139 | patch: fix|test fix|interim fix|fix pack|program temporary fix 140 | perimeter network: DMZ 141 | phone: telephone|cell phone|mobile phone 142 | power down: turn on|turn off 143 | power off: turn on|turn off 144 | power on: turn on|turn off 145 | preload: preinstall|preinstalled 146 | preloaded: preinstall|preinstalled 147 | prepend: add a prefix to 148 | prior to: before 149 | recommend: suggest 150 | retry: retry|try again 151 | right double-click: double right-click 152 | right-hand: right 153 | rule of thumb: rule 154 | sanity check: test|evaluate 155 | secondary storage: auxiliary storage 156 | selection button: left mouse button 157 | serial database: nonpartitioned database environment 158 | shift-click: press Shift and click 159 | ship: include|included 160 | Simple Object Access Protocol: SOAP 161 | single quote mark: single quotation mark 162 | single quote: single quotation mark 163 | SME routine: session management exit routine 164 | start up: start 165 | sunset: withdraw from service|withdraw from marketing|discontinue|no longer support 166 | switch off: power on|turn on|power off|turn off 167 | switch on: power on|turn on|power off|turn off 168 | tar: compress|archive 169 | tarball: tar file 170 | terminate: end|stop 171 | thru: through 172 | thumbstick: USB flash drive 173 | thus: therefore 174 | toggle off: toggle 175 | tooling: tools 176 | touchscreen: touch-sensitive screen 177 | transition: make the transition|move|migrate|change 178 | transparent: indiscernible|not visible 179 | typo: typing error|typographical error 180 | uncheck: clear 181 | uncompress: decompress 182 | undeploy: remove|withdraw 183 | unjar: extract 184 | unselect: clear|deselect 185 | untar: extract 186 | unzip: unzip 187 | upward compatible: compatible with later versions 188 | utilize: use 189 | version: create a version|assign a version number 190 | versus: compared to 191 | via: through 192 | warning notice: attention notice 193 | web-enable: enable for the web 194 | webinar: webinar|webcast|web seminar|web-based event 195 | wish: want 196 | zero out: zero 197 | zip: zip|compress 198 | --------------------------------------------------------------------------------