FreshPorts -- The Place For Ports If you buy from Amazon USA, please support us by using this link.
Follow us
Blog
Twitter

We also have a status page: https://freshports.wordpress.com/

Port details
coinmp Optimization library with support for COIN-OR CLP, CBC, and CGL
1.8.3 math on this many watch lists=2 search for ports that depend on this port Find issues related to this port Report an issue related to this port
Maintainer: cpm@FreeBSD.org search for ports maintained by this maintainer
Port Added: 29 Jul 2011 14:24:38
License: CPL
CoinMP is a C-API interface library that supports most of the
functionality of the CLP (Coin LP), CBC (Coin Branch-and-Cut), and CGL
(Cut Generation Library) projects. When compiled for Unix it generates a
CoinMP.so library that can be similarly used in other Unix C/C++ projects.

WWW: https://projects.coin-or.org/CoinMP
SVNWeb : Homepage : PortsMon
    Pseudo-pkg-plist information, but much better, from make generate-plist
    Expand this list (279 items)
  1. /usr/local/share/licenses/CoinMP-1.8.3/catalog.mk
  2. /usr/local/share/licenses/CoinMP-1.8.3/LICENSE
  3. /usr/local/share/licenses/CoinMP-1.8.3/CPL
  4. bin/cbc
  5. bin/clp
  6. include/coin/CbcBranchActual.hpp
  7. include/coin/CbcBranchAllDifferent.hpp
  8. include/coin/CbcBranchBase.hpp
  9. include/coin/CbcBranchCut.hpp
  10. include/coin/CbcBranchDecision.hpp
  11. include/coin/CbcBranchDefaultDecision.hpp
  12. include/coin/CbcBranchDynamic.hpp
  13. include/coin/CbcBranchLotsize.hpp
  14. include/coin/CbcBranchToFixLots.hpp
  15. include/coin/CbcBranchingObject.hpp
  16. include/coin/CbcClique.hpp
  17. include/coin/CbcCompare.hpp
  18. include/coin/CbcCompareActual.hpp
  19. include/coin/CbcCompareBase.hpp
  20. include/coin/CbcCompareDefault.hpp
  21. include/coin/CbcCompareDepth.hpp
  22. include/coin/CbcCompareEstimate.hpp
  23. include/coin/CbcCompareObjective.hpp
  24. include/coin/CbcConfig.h
  25. include/coin/CbcConsequence.hpp
  26. include/coin/CbcCountRowCut.hpp
  27. include/coin/CbcCutGenerator.hpp
  28. include/coin/CbcCutModifier.hpp
  29. include/coin/CbcCutSubsetModifier.hpp
  30. include/coin/CbcDummyBranchingObject.hpp
  31. include/coin/CbcEventHandler.hpp
  32. include/coin/CbcFathom.hpp
  33. include/coin/CbcFathomDynamicProgramming.hpp
  34. include/coin/CbcFeasibilityBase.hpp
  35. include/coin/CbcFixVariable.hpp
  36. include/coin/CbcFollowOn.hpp
  37. include/coin/CbcFullNodeInfo.hpp
  38. include/coin/CbcGeneral.hpp
  39. include/coin/CbcGeneralDepth.hpp
  40. include/coin/CbcHeuristic.hpp
  41. include/coin/CbcHeuristicDINS.hpp
  42. include/coin/CbcHeuristicDW.hpp
  43. include/coin/CbcHeuristicDive.hpp
  44. include/coin/CbcHeuristicDiveCoefficient.hpp
  45. include/coin/CbcHeuristicDiveFractional.hpp
  46. include/coin/CbcHeuristicDiveGuided.hpp
  47. include/coin/CbcHeuristicDiveLineSearch.hpp
  48. include/coin/CbcHeuristicDivePseudoCost.hpp
  49. include/coin/CbcHeuristicDiveVectorLength.hpp
  50. include/coin/CbcHeuristicFPump.hpp
  51. include/coin/CbcHeuristicGreedy.hpp
  52. include/coin/CbcHeuristicLocal.hpp
  53. include/coin/CbcHeuristicPivotAndFix.hpp
  54. include/coin/CbcHeuristicRENS.hpp
  55. include/coin/CbcHeuristicRINS.hpp
  56. include/coin/CbcHeuristicRandRound.hpp
  57. include/coin/CbcHeuristicVND.hpp
  58. include/coin/CbcLinked.hpp
  59. include/coin/CbcMessage.hpp
  60. include/coin/CbcMipStartIO.hpp
  61. include/coin/CbcModel.hpp
  62. include/coin/CbcNWay.hpp
  63. include/coin/CbcNode.hpp
  64. include/coin/CbcNodeInfo.hpp
  65. include/coin/CbcObject.hpp
  66. include/coin/CbcObjectUpdateData.hpp
  67. include/coin/CbcOrClpParam.cpp
  68. include/coin/CbcOrClpParam.hpp
  69. include/coin/CbcParam.hpp
  70. include/coin/CbcPartialNodeInfo.hpp
  71. include/coin/CbcSOS.hpp
  72. include/coin/CbcSimpleInteger.hpp
  73. include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp
  74. include/coin/CbcSimpleIntegerPseudoCost.hpp
  75. include/coin/CbcSolver.hpp
  76. include/coin/CbcStrategy.hpp
  77. include/coin/CbcSubProblem.hpp
  78. include/coin/CbcTree.hpp
  79. include/coin/CbcTreeLocal.hpp
  80. include/coin/Cbc_C_Interface.h
  81. include/coin/Cgl012cut.hpp
  82. include/coin/CglAllDifferent.hpp
  83. include/coin/CglClique.hpp
  84. include/coin/CglConfig.h
  85. include/coin/CglCutGenerator.hpp
  86. include/coin/CglDuplicateRow.hpp
  87. include/coin/CglFlowCover.hpp
  88. include/coin/CglGMI.hpp
  89. include/coin/CglGMIParam.hpp
  90. include/coin/CglGomory.hpp
  91. include/coin/CglKnapsackCover.hpp
  92. include/coin/CglLandP.hpp
  93. include/coin/CglLandPValidator.hpp
  94. include/coin/CglLiftAndProject.hpp
  95. include/coin/CglMessage.hpp
  96. include/coin/CglMixedIntegerRounding.hpp
  97. include/coin/CglMixedIntegerRounding2.hpp
  98. include/coin/CglOddHole.hpp
  99. include/coin/CglParam.hpp
  100. include/coin/CglPreProcess.hpp
  101. include/coin/CglProbing.hpp
  102. include/coin/CglRedSplit.hpp
  103. include/coin/CglRedSplit2.hpp
  104. include/coin/CglRedSplit2Param.hpp
  105. include/coin/CglRedSplitParam.hpp
  106. include/coin/CglResidualCapacity.hpp
  107. include/coin/CglSimpleRounding.hpp
  108. include/coin/CglStored.hpp
  109. include/coin/CglTreeInfo.hpp
  110. include/coin/CglTwomir.hpp
  111. include/coin/CglZeroHalf.hpp
  112. include/coin/ClpAmplObjective.hpp
  113. include/coin/ClpCholeskyBase.hpp
  114. include/coin/ClpCholeskyDense.hpp
  115. include/coin/ClpConfig.h
  116. include/coin/ClpConstraint.hpp
  117. include/coin/ClpConstraintAmpl.hpp
  118. include/coin/ClpConstraintLinear.hpp
  119. include/coin/ClpConstraintQuadratic.hpp
  120. include/coin/ClpDualRowDantzig.hpp
  121. include/coin/ClpDualRowPivot.hpp
  122. include/coin/ClpDualRowSteepest.hpp
  123. include/coin/ClpDummyMatrix.hpp
  124. include/coin/ClpDynamicExampleMatrix.hpp
  125. include/coin/ClpDynamicMatrix.hpp
  126. include/coin/ClpEventHandler.hpp
  127. include/coin/ClpFactorization.hpp
  128. include/coin/ClpGubDynamicMatrix.hpp
  129. include/coin/ClpGubMatrix.hpp
  130. include/coin/ClpInterior.hpp
  131. include/coin/ClpLinearObjective.hpp
  132. include/coin/ClpMatrixBase.hpp
  133. include/coin/ClpMessage.hpp
  134. include/coin/ClpModel.hpp
  135. include/coin/ClpNetworkMatrix.hpp
  136. include/coin/ClpNode.hpp
  137. include/coin/ClpNonLinearCost.hpp
  138. include/coin/ClpObjective.hpp
  139. include/coin/ClpPackedMatrix.hpp
  140. include/coin/ClpParameters.hpp
  141. include/coin/ClpPdcoBase.hpp
  142. include/coin/ClpPlusMinusOneMatrix.hpp
  143. include/coin/ClpPresolve.hpp
  144. include/coin/ClpPrimalColumnDantzig.hpp
  145. include/coin/ClpPrimalColumnPivot.hpp
  146. include/coin/ClpPrimalColumnSteepest.hpp
  147. include/coin/ClpQuadraticObjective.hpp
  148. include/coin/ClpSimplex.hpp
  149. include/coin/ClpSimplexDual.hpp
  150. include/coin/ClpSimplexNonlinear.hpp
  151. include/coin/ClpSimplexOther.hpp
  152. include/coin/ClpSimplexPrimal.hpp
  153. include/coin/ClpSolve.hpp
  154. include/coin/Clp_C_Interface.h
  155. include/coin/CoinAlloc.hpp
  156. include/coin/CoinBuild.hpp
  157. include/coin/CoinDenseFactorization.hpp
  158. include/coin/CoinDenseVector.hpp
  159. include/coin/CoinDistance.hpp
  160. include/coin/CoinError.hpp
  161. include/coin/CoinFactorization.hpp
  162. include/coin/CoinFileIO.hpp
  163. include/coin/CoinFinite.hpp
  164. include/coin/CoinFloatEqual.hpp
  165. include/coin/CoinHelperFunctions.hpp
  166. include/coin/CoinIndexedVector.hpp
  167. include/coin/CoinLpIO.hpp
  168. include/coin/CoinMP.h
  169. include/coin/CoinMPConfig.h
  170. include/coin/CoinMessage.hpp
  171. include/coin/CoinMessageHandler.hpp
  172. include/coin/CoinModel.hpp
  173. include/coin/CoinModelUseful.hpp
  174. include/coin/CoinMpsIO.hpp
  175. include/coin/CoinOslFactorization.hpp
  176. include/coin/CoinPackedMatrix.hpp
  177. include/coin/CoinPackedVector.hpp
  178. include/coin/CoinPackedVectorBase.hpp
  179. include/coin/CoinParam.hpp
  180. include/coin/CoinPragma.hpp
  181. include/coin/CoinPresolveDoubleton.hpp
  182. include/coin/CoinPresolveDual.hpp
  183. include/coin/CoinPresolveDupcol.hpp
  184. include/coin/CoinPresolveEmpty.hpp
  185. include/coin/CoinPresolveFixed.hpp
  186. include/coin/CoinPresolveForcing.hpp
  187. include/coin/CoinPresolveImpliedFree.hpp
  188. include/coin/CoinPresolveIsolated.hpp
  189. include/coin/CoinPresolveMatrix.hpp
  190. include/coin/CoinPresolveMonitor.hpp
  191. include/coin/CoinPresolvePsdebug.hpp
  192. include/coin/CoinPresolveSingleton.hpp
  193. include/coin/CoinPresolveSubst.hpp
  194. include/coin/CoinPresolveTighten.hpp
  195. include/coin/CoinPresolveTripleton.hpp
  196. include/coin/CoinPresolveUseless.hpp
  197. include/coin/CoinPresolveZeros.hpp
  198. include/coin/CoinRational.hpp
  199. include/coin/CoinSearchTree.hpp
  200. include/coin/CoinShallowPackedVector.hpp
  201. include/coin/CoinSignal.hpp
  202. include/coin/CoinSimpFactorization.hpp
  203. include/coin/CoinSmartPtr.hpp
  204. include/coin/CoinSnapshot.hpp
  205. include/coin/CoinSort.hpp
  206. include/coin/CoinStructuredModel.hpp
  207. include/coin/CoinTime.hpp
  208. include/coin/CoinTypes.hpp
  209. include/coin/CoinUtility.hpp
  210. include/coin/CoinUtilsConfig.h
  211. include/coin/CoinWarmStart.hpp
  212. include/coin/CoinWarmStartBasis.hpp
  213. include/coin/CoinWarmStartDual.hpp
  214. include/coin/CoinWarmStartPrimalDual.hpp
  215. include/coin/CoinWarmStartVector.hpp
  216. include/coin/Coin_C_defines.h
  217. include/coin/Idiot.hpp
  218. include/coin/OsiAuxInfo.hpp
  219. include/coin/OsiBranchingObject.hpp
  220. include/coin/OsiCbcSolverInterface.hpp
  221. include/coin/OsiChooseVariable.hpp
  222. include/coin/OsiClpSolverInterface.hpp
  223. include/coin/OsiColCut.hpp
  224. include/coin/OsiCollections.hpp
  225. include/coin/OsiConfig.h
  226. include/coin/OsiCut.hpp
  227. include/coin/OsiCuts.hpp
  228. include/coin/OsiPresolve.hpp
  229. include/coin/OsiRowCut.hpp
  230. include/coin/OsiRowCutDebugger.hpp
  231. include/coin/OsiSolverBranch.hpp
  232. include/coin/OsiSolverInterface.hpp
  233. include/coin/OsiSolverParameters.hpp
  234. include/coin/OsiUnitTests.hpp
  235. lib/libCbc.so
  236. lib/libCbc.so.3
  237. lib/libCbc.so.3.9.6
  238. lib/libCbcSolver.so
  239. lib/libCbcSolver.so.3
  240. lib/libCbcSolver.so.3.9.6
  241. lib/libCgl.so
  242. lib/libCgl.so.1
  243. lib/libCgl.so.1.9.7
  244. lib/libClp.so
  245. lib/libClp.so.1
  246. lib/libClp.so.1.13.8
  247. lib/libClpSolver.so
  248. lib/libClpSolver.so.1
  249. lib/libClpSolver.so.1.13.8
  250. lib/libCoinMP.so
  251. lib/libCoinMP.so.1
  252. lib/libCoinMP.so.1.8.3
  253. lib/libCoinUtils.so
  254. lib/libCoinUtils.so.3
  255. lib/libCoinUtils.so.3.10.10
  256. lib/libOsi.so
  257. lib/libOsi.so.1
  258. lib/libOsi.so.1.12.6
  259. lib/libOsiCbc.so
  260. lib/libOsiCbc.so.3
  261. lib/libOsiCbc.so.3.9.6
  262. lib/libOsiClp.so
  263. lib/libOsiClp.so.1
  264. lib/libOsiClp.so.1.13.8
  265. lib/libOsiCommonTests.so
  266. lib/libOsiCommonTests.so.1
  267. lib/libOsiCommonTests.so.1.12.6
  268. libdata/pkgconfig/cbc.pc
  269. libdata/pkgconfig/cgl.pc
  270. libdata/pkgconfig/clp.pc
  271. libdata/pkgconfig/coindatasample.pc
  272. libdata/pkgconfig/coinmp.pc
  273. libdata/pkgconfig/coinutils.pc
  274. libdata/pkgconfig/osi-cbc.pc
  275. libdata/pkgconfig/osi-clp.pc
  276. libdata/pkgconfig/osi-unittests.pc
  277. libdata/pkgconfig/osi.pc
  278. @postexec /sbin/ldconfig -m /usr/local/lib
  279. @postunexec /sbin/ldconfig -R
  280. Collapse this list.

To install the port: cd /usr/ports/math/coinmp/ && make install clean
To add the package: pkg install CoinMP

PKGNAME: CoinMP

distinfo:

TIMESTAMP = 1465255566
SHA256 (CoinMP-1.8.3.tgz) = a1a665db36c7fd69c1e53fffbd108cae1bf22f08acf81c394cd454b8168f22f7
SIZE (CoinMP-1.8.3.tgz) = 10535972


NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.

Build dependencies:
  1. pkgconf>=1.3.0_1 : devel/pkgconf

This port is required by:

for Libraries * - deleted ports are only shown under the This port is required by section. It was harder to do for the Required section. Perhaps later...
Configuration Options
===> The following configuration options are available for CoinMP-1.8.3:
     DEBUG=off: Build with debugging support
     DOCS=on: Build and/or install documentation
     GLPK=off: GNU Linear Programming Kit support
===> Use 'make config' to modify these settings

USES:
libtool pathfix pkgconfig tar:tgz

Master Sites:
  1. http://www.coin-or.org/download/source/CoinMP/

Number of commits found: 24

Commit History - (may be incomplete: see SVNWeb link above for full details)
DateByDescription
07 Jan 2017 20:48:30
Original commit files touched by this commit  1.8.3
Revision:430831
bapt search for other commits by this committer
Drop useless declaration of PKG_CONFIG_PATH
21 Oct 2016 15:21:13
Original commit files touched by this commit  1.8.3
Revision:424427
mat search for other commits by this committer
Use USES=pathfix where applicable.

PR:		213195
Submitted by:	mat
Exp-run by:	antoine
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D8093
07 Jun 2016 11:27:39
Original commit files touched by this commit  1.8.3
Revision:416507
cpm search for other commits by this committer
- Fix CONFLICTS with math/ogdf
- Update MAINTAINER to my @FreeBSD.org address
- Switch to OPTION helpers

Reviewed by:	amdmi3 (mentor)
Approved by:	amdmi3 (mentor)
Differential Revision:	D6741
19 May 2016 10:44:12
Original commit files touched by this commit  1.8.3
Revision:415499
amdmi3 search for other commits by this committer
- Fix trailing whitespace in pkg-descrs, categories [g-n]*

Approved by:	portmgr blanket
01 Apr 2016 14:16:20
Original commit files touched by this commit  1.8.3
Revision:412348
mat search for other commits by this committer
Remove ${PORTSDIR}/ from dependencies, categories m, n, o, and p.

With hat:	portmgr
Sponsored by:	Absolight
09 Mar 2016 19:10:34
Original commit files touched by this commit  1.8.3
Revision:410721
pi search for other commits by this committer
math/coinmp: add conflict with ogdf

PR:		207531
Submitted by:	gahr
25 Sep 2015 05:50:31
Original commit files touched by this commit  1.8.3
Revision:397792
pi search for other commits by this committer
math/coinmp: 1.8.2 -> 1.8.3

- added compatibility with SoPlex 2.2
- added OsiSpx::getLpPtr()

PR:		203317
Submitted by:	Carlos J Puga Medina <cpm@fbsd.es>
04 Jun 2015 18:35:36
Original commit files touched by this commit  1.8.2
Revision:388541
robak search for other commits by this committer
math/coinmp: update 1.8.1 -> 1.8.2

PR:		200635
Submitted by:	Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer)
20 Apr 2015 17:08:40
Original commit files touched by this commit  1.8.1
Revision:384369
pi search for other commits by this committer
math/coinmp: fix indentation

PR:		199502
Requested by:	danfe
19 Apr 2015 17:16:58
Original commit files touched by this commit  1.8.1
Revision:384307
pi search for other commits by this committer
math/coinmp: change comma, target for check/test etc as suggested by danfe

PR:		199502
Submitted by:	danfe
Approved by:	Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer)
17 Apr 2015 08:02:35
Original commit files touched by this commit  1.8.1
Revision:384140
pi search for other commits by this committer
math/coinmp: 1.8.0 -> 1.8.1

- Minor fixes

PR:		199430
Submitted by:	Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer)
13 Feb 2015 01:01:35
Original commit files touched by this commit  1.8.0
Revision:378905
brd search for other commits by this committer
math/coinmp: Update to 1.8.0

PR:		197554
Submitted by:	Carlos Jacobo Puga Medina <cpm@fbsd.es> (maintainer)
Approved by:	zi
13 Nov 2014 23:24:01
Original commit files touched by this commit  1.7.6_1
Revision:372546
antoine search for other commits by this committer
Cleanup plist
17 Jul 2014 19:55:38
Original commit files touched by this commit  1.7.6_1
Revision:362163
pi search for other commits by this committer
math/coinmp: some fixes

- Clean-up Makefile
- Fix stage-qa error
- Unbreak GLPK option

PR:		187487
Submitted by:	cjpugmed@gmail.com (maintainer)
11 Jul 2014 15:05:39
Original commit files touched by this commit  1.7.6
Revision:361545
pi search for other commits by this committer
math/coinmp: 1.7.2 -> 1.7.6

- Update to 1.7.6
- Convert to USES=libtool and remove USE_AUTOTOOLS=libtool
- Use clang instead of gcc
- Fix pkg-plist
- Take maintainership

PR:		187487
Submitted by:	Carlos Jacobo Puga Medina (cpm@fbsd.es)
26 Mar 2014 15:46:07
Original commit files touched by this commit  1.7.2
Revision:349258
bapt search for other commits by this committer
Fix license to allow package redistribution
16 Nov 2013 14:30:42
Original commit files touched by this commit  1.7.2
Revision:334000
danilo search for other commits by this committer
- Update from 1.7.1 to 1.7.2
16 Oct 2013 23:10:15
Original commit files touched by this commit  1.7.1
Revision:330557
danilo search for other commits by this committer
- Update from 1.7.0 to 1.7.1 [1]
- Add stage support
- Force build with gcc
- Convert LIB_DEPENDS to new syntax

PR:		ports/182886
Submitted by:	Pedro Giffuni <giffunip@tutopia.com> [1]
Approved by:	wg/culot (mentors, implicit)
20 Sep 2013 20:55:06
Original commit files touched by this commit  1.7.0
Revision:327746
bapt search for other commits by this committer
Add NO_STAGE all over the place in preparation for the staging support (cat:
math)
05 Aug 2013 12:49:55
Original commit files touched by this commit  1.7.0
Revision:324273
wg search for other commits by this committer
math/coinmp: update to 1.7.0

- Update to 1.7.0 [1]
- Drop maintainership [1]
- Trim COMMENT to fit in the limit
- Trim Makefile header
- Convert to OptionsNG
- Use PORTDOCS instead of pkg-plist

PR:		ports/181037 [1]
Submitted by:	Pedro Giffuni <giffunip tutopia.com> (maintainer)
03 Aug 2012 15:54:36
Original commit files touched by this commit  1.6.0_1
cs search for other commits by this committer
Fix typos and make small modifications in COMMENT (according to Porter's
Handbook)

Approved by:	portmgr@ (implicit)
09 Mar 2012 22:07:35
Original commit files touched by this commit  1.6.0_1
jgh search for other commits by this committer
- tie to libtool

PR: ports/165160
Submitted by: maintainer, giffunip@tutopia.com
Feature safe: yes
04 Jan 2012 00:47:20
Original commit files touched by this commit  1.6.0
wen search for other commits by this committer
- update to 1.6.0
- respect NOPORTDOCS

PR:             ports/163681
Submitted by:   Pedro Giffuni <giffunip@tutopia.com> (maintainer)
29 Jul 2011 14:23:59
Original commit files touched by this commit  1.4.0
bf search for other commits by this committer
Add coinmp 1.4.0, optimization library with support for most of COIN-OR
CLP, CBC and CGL.

PR:             158269
Submitted by:   Pedro Giffuni

Number of commits found: 24

Login
User Login
Create account

Servers and bandwidth provided by
New York Internet, SuperNews, and RootBSD

This site
What is FreshPorts?
About the authors
Issues
FAQ
How big is it?
The latest upgrade!
Privacy
Forums
Blog
Contact

Search
Enter Keywords:
 
more...

Latest Vulnerabilities
opensslNov 02
openssl-develNov 02
wordpressNov 01
php56Oct 30
php70Oct 30
php71Oct 30
wiresharkOct 30
chromiumOct 28
wgetOct 27
wgetOct 27
openoffice-4*Oct 26
openoffice-devel*Oct 26
gitlabOct 25
nodeOct 25
node4Oct 25

No vulnerabilities have been reported in the past 14 days

* - modified, not new

All vulnerabilities


Ports
Home
Categories
Deleted ports
Sanity Test Failures
Newsfeeds

Statistics
Graphs
NEW Graphs (Javascript)
Traffic

Calculated hourly:
Port count 31889
Broken 126
Deprecated 57
Ignore 364
Forbidden 0
Restricted 175
No CDROM 78
Vulnerable 50
Expired 24
Set to expire 49
Interactive 0
new 24 hours 3
new 48 hours21
new 7 days3161
new fortnight3238
new month3392

Servers and bandwidth provided by
New York Internet, SuperNews, and RootBSD
Valid HTML, CSS, and RSS.
Copyright © 2000-2017 Dan Langille. All rights reserved.