vault backup: 2026-02-20 13:07:16
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
---
|
||||
id: 2025-06-13T00:00:00-04:00
|
||||
aliases: []
|
||||
title: 2025-06-13 ??:??:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-06-13 ??:??:??
|
||||
|
||||
## Automating Estimating Project Creation
|
||||
|
||||
### Extract from Bid Boards
|
||||
|
||||
```sh
|
||||
> jobHandler --new project --from-web https://app.buildingconnected.com/opportunities/66fab32654ef4e1affd178e0/info
|
||||
...
|
||||
```
|
||||
|
||||
```sh
|
||||
> jobHandler --select project freezpak
|
||||
jobHandler\FreezPak Cold Storage> --add-details --from-web https://app.buildingconnected.com/opportunities/66fab32654ef4e1affd178e0/info
|
||||
...
|
||||
```
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
id: 2025-07-18T00:00:00-04:00
|
||||
aliases: []
|
||||
title: 2025-07-18
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/incomplete
|
||||
- topic/construction
|
||||
- topic/estimating
|
||||
- type/anecdote
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-07-18 ??:??:??
|
||||
|
||||
## Estimating Isn't Engineering
|
||||
|
||||
#topic/estimating
|
||||
|
||||
A peer recently expressed frustration to me
|
||||
about the declining quality of construction drawings,
|
||||
specifically how systems are often missing details
|
||||
necessary to price the scope definitively.
|
||||
Specifically, they took issue with having to
|
||||
"be both the estimator and the engineer".
|
||||
This puzzled me because the examples they gave
|
||||
sounded like stereotypical estimation problems.
|
||||
|
||||
%% TODO: Include example %%
|
||||
|
||||
%%
|
||||
TODO: discussion based on the difference between engineering,
|
||||
(which requires knowledge of subject matter)
|
||||
and estimation
|
||||
(which requires knowledge of ~~impact~~).
|
||||
%%
|
||||
|
||||
It's not engineering to budget for the most likely case.
|
||||
|
||||
Estimators need not know _why_ there tends to be ~~example~~,
|
||||
they need need only have basis for applying that generalization to another project.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
id: 2025-08-22T00:00:00-04:00
|
||||
aliases: []
|
||||
title: 2025-08-22 ??:??:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-08-22 ??:??:??
|
||||
|
||||
## Getting Historical Material Pricing
|
||||
|
||||
Aggregate SupplierLink.xml files from Accubid job folders.
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
id: 2025-08-26T00:00:00-04:00
|
||||
aliases: []
|
||||
title: 2025-08-26
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-08-26 ??:??:??
|
||||
|
||||
## Pathfinding
|
||||
|
||||
```c
|
||||
struct point {
|
||||
double x
|
||||
double y
|
||||
}
|
||||
|
||||
struct point p1;
|
||||
p1.x = 1.0d;
|
||||
p1.y = 3.0d;
|
||||
|
||||
struct point p2;
|
||||
p1.x = 4.0d;
|
||||
p1.y = 6.0d;
|
||||
|
||||
// ??? = Pathfinder.Taxicab(p1, p2)
|
||||
|
||||
```
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
id: 2025-10-20T00:00:00-05:00
|
||||
aliases: []
|
||||
title: 2025-10-20
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-10-20 ??:??:??
|
||||
|
||||
"Rogue AI" is a common trope,
|
||||
but the reality of hallucination
|
||||
can be far more horrifying.
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: 2025-10-26T18:36:00-05:00
|
||||
aliases: []
|
||||
title: 2025-10-26
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- original-format/typewritten-print
|
||||
- status/complete
|
||||
- topic/hobbies/reading
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-10-26 18:36:??
|
||||
|
||||
_Sunday evening_
|
||||
|
||||
I read Harlan Ellison's _I Have No Mouth, and I Must Scream_ this morning.
|
||||
It took me about two hours. What may be curious about that is the story is
|
||||
less than six thousand words. What I did for _IHNMAIMS_, though---and what I've
|
||||
made a habit of doing with all short-form literature I read recently---
|
||||
is only half reading. Here's my process:
|
||||
|
||||
1. Google or DuckDuckGo (Google's cooler but less studious cousin)for
|
||||
"(title).epub", or "(title).pdf" if the first doesn't get any good
|
||||
hits.
|
||||
|
||||
2. Convert the ripped doc to markdown using one of several tools as
|
||||
most appropriate and no small amount of manual effort.
|
||||
|
||||
3. Convert the new markdown file to epub and upload it to my calibre
|
||||
library.
|
||||
|
||||
It's during step 2 that I read the piece, and I really get in there.
|
||||
Because markdown ignores single line breaks you can put them where ever you
|
||||
want in a paragraph without changing the output. Some standards recommend on
|
||||
sentence per line, but that's often to long to be practical, and, more
|
||||
importantly, misses out on the ability to punctuate another author's writing
|
||||
the way they goddamn well should've in the first place. Again I stress, this
|
||||
doesn't affect the output.
|
||||
|
||||
I do this so often that reading any other way---
|
||||
web articles, where line breaks are meaningless, or worse print, where the
|
||||
the same is true and text is broken up arbitrarily into pages---has become
|
||||
noticeably more straining. Equally straining is writing in this wall-of-text
|
||||
format. I've done it so far simply because I like hearing the margin bell ahhhh
|
||||
We're too advanced as a species to be treating books
|
||||
as anything but an imperfect medium for the pure expression of text.
|
||||
|
||||
I have what some might consider a liberal view of artistic ownership.
|
||||
Suppose you were conversing with a coworker and they said something poignant,
|
||||
later you speak with another and share the first's anecdote as your own.
|
||||
Is this theft? No. Immoral? Unethical? Perhaps.
|
||||
Your coworker has not lost anything.
|
||||
Not the idea, and not the certainty that _they_ came up with it.
|
||||
It is possible to believe that something should not be done
|
||||
without believing those who do should be imprisoned.
|
||||
Personally, I cite my sources because I respect _information_ not authors.
|
||||
I _would_ "steal", but I really get a kick out of paying.
|
||||
|
||||
To value the profit of one's ideas above their inherent worth is shameful.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
id: 2025-10-31T18:26:00-05:00
|
||||
aliases: []
|
||||
title: 2025-10-31 18:26:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- original-format/typewritten-print
|
||||
- status/complete
|
||||
- topic/hobbies/birding
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-10-31 18:26:??
|
||||
|
||||
_Friday Evening_
|
||||
|
||||
This morning as I was leaving for work I saw a massive congregation
|
||||
of all the walky water birds I love so much. A hundred and more, milling about
|
||||
in-the early sunrise. The banks were covered in ibises picking at the grass
|
||||
around the feet of egrets standing proudly and spaced just so. A dozen anhingas
|
||||
splashed messily in the center of the pond while a lone stork looked on with
|
||||
the mix of judgement and reservation typical of the species.
|
||||
It was the first time I had left so late. I'll visit again tomorrow,
|
||||
hopefully I'll be able to get better pictures.
|
||||
|
||||
I saw a few more around 17:00 walking around the pond after work. Some regulars:
|
||||
an anhinga drying her wings after a swim; a flock of mallard hens following
|
||||
in case I had food; a tricolor heron, as flighty as if I were standing over it,
|
||||
and pointing a gun instead of my phone's camera; but I also saw a beautiful
|
||||
great blue heron (_Ardea herodias_)---which, despite the wide berth I gave it,
|
||||
fled like its little cousin at my interest---and a common gallinule
|
||||
(_Gallinula galeata_), the latter I positively identified for the first time
|
||||
today. They have absurdly large feet, moorso[^1] the juveniles.
|
||||
|
||||
[^1]: The common gallinule was formerly known as the common moorhen, only split from
|
||||
the Old World species (_Gallinula chloropus_) in July 2011. It may still be more
|
||||
widely known as "moorhen", thus the pun.
|
||||
|
||||
Today was a good day---I've been at this for a while, one second...
|
||||
|
||||
**2025-10-31 19:48:?? --- Late Friday Evening, Halloween btw**
|
||||
|
||||
Today was a good day. If I could see so many gorgeous creatures every day
|
||||
as I have this one I might never shed another tear. I love birds.
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
id: 2025-11-04T14:52:05-05:00
|
||||
aliases: []
|
||||
title: 2025-11-04 14:52:05
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/complete
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-04 14:52:05
|
||||
|
||||
#occupational #type/minutes
|
||||
|
||||
### Belle Meade Director Review
|
||||
|
||||
#### Takeoff Review
|
||||
|
||||
Reviewed takeoff by system.
|
||||
|
||||
##### Retail Village Temporary Power
|
||||
|
||||
Joel changed square foot budgets to temporary pole budgets only
|
||||
due to minimal scope (warm shell).
|
||||
|
||||
##### Generator Scope
|
||||
|
||||
Confirmed generator quotes include furnishing docking station.
|
||||
|
||||
##### Feeder Lengths
|
||||
|
||||
Confirmed validity of longer feeder lengths:
|
||||
Generator to Tower B
|
||||
|
||||
##### Grounding
|
||||
|
||||
Takeoff appears to be missing some or all grounding.
|
||||
To be added if necessary.
|
||||
|
||||
##### Subfeed Sizing
|
||||
|
||||
Based on ampacity, subfeeds are oversized.
|
||||
Sizing was per feeder schedule.
|
||||
Takeoff approved unchanged.
|
||||
|
||||
##### Undercabinet Wiremold
|
||||
|
||||
Multi-outlet assemblies above unit kitchen countertops were not taken off,
|
||||
nor was branch wiring for the same.
|
||||
Joel to confirm takeoff requirement with bid.
|
||||
|
||||
##### Amenity Homeruns
|
||||
|
||||
No homeruns for amenity lighting or electrical were taken off.
|
||||
Joel to add these.
|
||||
|
||||
> [!info] Circuits per Raceway
|
||||
> Corwin stated that---assuming no overriding specification---
|
||||
> up to 6 circuits in a raceway are permissible.
|
||||
|
||||
##### Lighting Control
|
||||
|
||||
Lighting control takeoff was reviewed,
|
||||
no changes were recommended.
|
||||
|
||||
> [!info] Lighting Control Pre-Work
|
||||
> Corwin stated that with the imminent changes to lighting control takeoff,
|
||||
> it will be necessary for estimators to more intently consider the design:
|
||||
> noting quantities of lighting zones and controllers,
|
||||
> even where not explicitly shown.
|
||||
|
||||
##### Telecom
|
||||
|
||||
Confirmed unit telecom requirements.
|
||||
|
||||
Backbone was mistakenly taken off in Telecom.
|
||||
|
||||
##### Retail Fire Alarm
|
||||
|
||||
Retail village fire alarm devices were taken off free-air,
|
||||
Joel to substitute for EMT.
|
||||
|
||||
#### Extension Review
|
||||
|
||||
Reviewed extension quantities and costs.
|
||||
Of particular note were:
|
||||
|
||||
* conduit
|
||||
* wire
|
||||
* cable
|
||||
* wiring devices
|
||||
|
||||
#### Labor Plan Review
|
||||
|
||||
Hours per square foot was lower than expected,
|
||||
this was rationalized as being due
|
||||
to the relatively high portion of garage and shell retail space.
|
||||
|
||||
%%
|
||||
"Openings per unit" was another metric considered---
|
||||
higher than expected in this case---
|
||||
however I didn't catch the significance of this.
|
||||
%%
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
id: 2025-11-05T00:00:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-05 ??:??:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- original-format/typewritten-print
|
||||
- status/complete
|
||||
- topic/morality
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-05 ??:??:??
|
||||
|
||||
Conservatives claim to care about
|
||||
family values, but a purely merit-based system
|
||||
incentivizes degenerate lifestyles.
|
||||
To build merit requires _time_ and nothing else.
|
||||
"What of effort? What of willpower?" Yes, for those
|
||||
of non-negotiable responsibility, (read: familial
|
||||
obligation) carving out time for professional
|
||||
improvement does require effort, a tremendous amount
|
||||
in fact, where bachelors like myself struggle to
|
||||
fill a day with activity. It would not be absurd
|
||||
to say that it is easier for me to pursue
|
||||
professional development than not. I don't believe
|
||||
that love can be put off a decade, and I find the
|
||||
idea bitter cynical.
|
||||
|
||||
I don't deserve a better life than my wedded
|
||||
peers because I'm compulsively socially avoidant.
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
id: 2025-11-06T18:12:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-06 18:12:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- original-format/digital-text
|
||||
- status/complete
|
||||
- topic/estimating
|
||||
- topic/transparency
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-06 18:12:??
|
||||
|
||||
## "Bad Bid Practice"
|
||||
|
||||
I might be reprimanded for the things I've said about deceptive bid practices
|
||||
were I to repeat them to the wrong person,
|
||||
but I can't, in good conscience, take them back.
|
||||
|
||||
In my previous position,
|
||||
I regularly saw good opportunities lost,
|
||||
perfect jobs turned into absurd overruns,
|
||||
and historied relationships with good customers soured
|
||||
by people trying to play poker instead of just selling a service.
|
||||
|
||||
Now I feel _myself_ sour when I see the same warning signs.
|
||||
|
||||
> [!quote] Proverbs 21:6, New International Version
|
||||
> A fortune made by a lying tongue
|
||||
> is a fleeting vapor and a deadly snare
|
||||
|
||||
> [!quote] Robert Palmer, "Every Kinda People"
|
||||
> There is no profit in deceit \
|
||||
> Honest men know that \
|
||||
> Revenge does not taste sweet
|
||||
|
||||
When you bill your customer to provide scope
|
||||
that they thought they already paid for,
|
||||
they don't say "Touché" and move on,
|
||||
they ask themselves what they've done for you,
|
||||
what they're doing, and if you still deserve it.
|
||||
**You are cashing out on good will.**
|
||||
|
||||
> How upset would you be paying fifty dollars for an oil change,
|
||||
> just to be billed another fifty for the cost of the oil and filter?
|
||||
> Would you ever go back to that shop?
|
||||
|
||||
When you take from a contractors profits,
|
||||
they _will_ make sure you don't keep all of it,
|
||||
whether intentionally or not.
|
||||
|
||||
Harsh words of lost profits reach the field immediately,
|
||||
and they only get harsher on the way down.
|
||||
Your superintendent _was_ golf buddies with the contractor's.
|
||||
Now yours is buried in QA and safety paperwork
|
||||
that they used to get away with pencil-whipping.
|
||||
|
||||
Estimators may account themselves clever
|
||||
when they sell toggle switches as lighting control
|
||||
or conduit as equipment grounding
|
||||
but they're only playing at law.
|
||||
|
||||
It is... _inadvisable_ to get into a dispute over contract terminology
|
||||
with an organization that---necessarily---has a larger legal department than you.
|
||||
Much more so when your basis for complaint is a typo-ridden checklist
|
||||
written by estimators with degrees in anything but law,
|
||||
rarely construction management,
|
||||
or even nothing at all.
|
||||
|
||||
I don't mean to disparage my well-meaning peers,
|
||||
(that last category includes myself)
|
||||
I only mean to say that we don't seem to be asking
|
||||
the first question that should come to mind
|
||||
when writing a document that could end up in court:
|
||||
"How would I look explaining this to a lawyer?"
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: 2025-11-14T13:41:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-14 13:41:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- topic/meta
|
||||
- topic/hobbies/music/banjo
|
||||
- topic/hobbies/shorthand
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-14 13:41:??
|
||||
|
||||
I added two new long term tasks to the notebook.
|
||||
|
||||
* [[learn-banjo]]
|
||||
* [[learn-shorthand]]
|
||||
|
||||
I know I have a few more I've been thinking about
|
||||
that I should add as well.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
id: 2025-11-16T08:09:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-16 08:09:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- topic/hobbies/shorthand
|
||||
- topic/hobbies/writing
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-16 08:09:??
|
||||
|
||||
Yesterday evening,
|
||||
while I was reading [[leslie-et-al_1968_gregg-notehand]],
|
||||
for the first time practicing its lessons,
|
||||
trying to [[learn-shorthand]],
|
||||
I was growing frustrated with the terminology the text uses
|
||||
to express English phonology.
|
||||
|
||||
I found a great article:
|
||||
[Guess What? They're ALL Silent Letters!](https://mbsteven.edublogs.org/2018/05/05/guess-what-theyre-all-silent-letters/)
|
||||
that effectively expresses the pain I feel
|
||||
every time someone says "silent e".
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
id: 2025-11-18T16:33:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-18 16:33:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-18 16:33:??
|
||||
|
||||
## Elliot St. ConEst Senior Review
|
||||
|
||||
#occupational
|
||||
|
||||
%%
|
||||
Transcription of notes
|
||||
taken while reviewing Elliot St. with Joel Jansen.
|
||||
%%
|
||||
|
||||
Adorne USB Heating Designation was built with standard device.
|
||||
Subbed for Adorne.
|
||||
|
||||
Subbed standard duplex receptacles in guestrooms for Adorne.
|
||||
|
||||
Confirmed fixture branch length changes
|
||||
including Garage
|
||||
|
||||
Note: It is not usually necessary to count emergency fixtures separately.
|
||||
|
||||
Use minimum 1 hour for tape lights, except in units (minimum 0.5hr).
|
||||
|
||||
Final Pricing adjustments:
|
||||
* Warranty,
|
||||
* CIP (see proposal)
|
||||
|
||||
Added putty pads.
|
||||
|
||||
Fire stopping budget = $25-35 per Unit.
|
||||
|
||||
Robotic Total Station hours: match Structural Foreman.
|
||||
|
||||
For contracts 5--15 million dollars:
|
||||
|
||||
$$
|
||||
\text{Equipment Cost} \approx 1\%
|
||||
$$
|
||||
|
||||
Mid Atlantic: 1 trip per month
|
||||
|
||||
Offsite Parking: see bid sheet
|
||||
|
||||
Project Executive time same as Oversight.
|
||||
|
||||
When calculating durations for indirect labor, round down.
|
||||
|
||||
* Rough Foreman
|
||||
* Trim Foreman
|
||||
* Amenity Foreman
|
||||
|
||||
LV/FA Foreman: get hours from systems quote.
|
||||
|
||||
Fire Alarm, Two-Way Communication, DAS: `Phase` = "Fire Alarm"
|
||||
|
||||
Erroneously used WP GFI's in bathrooms, subbed for Kitchen/Bath assembly.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
id: 2025-11-24T00:00:00-05:00
|
||||
aliases: []
|
||||
title: 2025-11-24 ??:??:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-11-24 ??:??:??
|
||||
|
||||
## Extracting PDF Panel Schedules
|
||||
|
||||
Extract relevant pages
|
||||
|
||||
Crop Sheet Titles
|
||||
|
||||
Reduce File Size > Crop Content
|
||||
|
||||
Export to HTML
|
||||
|
||||
Edit HTML
|
||||
|
||||
Open HTML in Excel
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
id: 2025-12-03T15:54:22-05:00
|
||||
aliases: []
|
||||
title: 2025-12-03 15:54:22
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-03 15:54:22
|
||||
|
||||
## Excluding Vs. Ignoring Project Requirements
|
||||
|
||||
#topic/estimating #topic/transparency
|
||||
|
||||
There is a distinct difference between _excluding_ and _ignoring_ requirements.
|
||||
|
||||
If, before award, you communicate to the customer
|
||||
that your cost does not include respect for a requirement,
|
||||
_and they understand the implications of the omission,_
|
||||
you have _excluded_ that requirement.
|
||||
|
||||
If your cost does not include respect for a requirement,
|
||||
but you have not
|
||||
(1) communicated the omission to the customer, _and_
|
||||
(2) made a reasonable effort to inform the customer
|
||||
of the implications of the requirement's omission,
|
||||
you are _ignoring_ that requirement.
|
||||
|
||||
_Excluding_ requirements is common practice.
|
||||
_Ignoring_ requirements is unprofessional and irresponsible.
|
||||
|
||||
Sometimes requirements are ignored out of convenience.
|
||||
If an estimator is confident a requirement won't be enforced,
|
||||
they may ignore it to lower the estimate and save time in closeout.
|
||||
|
||||
More ethical estimators may have no desire to ignore requirements,
|
||||
but may nonetheless feel obligated to.
|
||||
If a contractor is confident their competitors will ignore a requirement,
|
||||
they may feel that the moral high road offers two losing options:
|
||||
|
||||
* include it and appear overpriced
|
||||
* exclude it and appear to present coverage concerns
|
||||
|
||||
The winning strategy, as always, is open communication with the customer.
|
||||
|
||||
> [!important]
|
||||
> Given the same project documents and your proposal,
|
||||
> a reasonably experienced estimator employed by your customer
|
||||
> should be able to replicate your takeoff with confidence.
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: 2025-12-04T09:51:17-05:00
|
||||
aliases: []
|
||||
title: 2025-12-04 09:51:17
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- topic/automation
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-04 09:51:17
|
||||
|
||||
* [x] TODO: Build test case estimating helper html app ➕ 2026-12-04
|
||||
|
||||
It may be possible
|
||||
to replicate the behavior of my takeoff workbooks
|
||||
in a static .html file using JavaScript.
|
||||
|
||||
This would be preferable since it would allow
|
||||
* version control,
|
||||
* comments,
|
||||
* hidden by default complexity[^1]
|
||||
|
||||
[^1]: user only sees forms/fields relevant to the problem they're trying to solve,
|
||||
or as necessary for the complexity of the job.
|
||||
`Add Output > Conductor Supports`
|
||||
`Add Complication > Multiple Buildings`
|
||||
|
||||
A good test case would be a simple 3 variable equation solver.
|
||||
|
||||
* speed
|
||||
* distance
|
||||
* time
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
id: 2025-12-09T10:52:00-05:00
|
||||
aliases: []
|
||||
title: 2025-12-09 10:52:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-09 10:52:??
|
||||
|
||||
In residential construction area classification,
|
||||
what is the relationship between these two dichotomies?
|
||||
|
||||
* Owner vs. Tenant
|
||||
* Finished vs. Unfinished
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
id: 2025-12-10T10:45:19-05:00
|
||||
aliases: []
|
||||
title: 2025-12-10 10:45:19
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-10 10:45:19
|
||||
|
||||
## ConEst Lighting Controls Meeting Notes
|
||||
|
||||
#occupational/takeoff #topic/ambiguity #topic/transparency
|
||||
|
||||
Related: [[lighting-controls-takeoff]]
|
||||
|
||||
### Minutes
|
||||
|
||||
2025-12-10 08:30--10:00
|
||||
|
||||
Objective: Discuss lighting control systems
|
||||
|
||||
***
|
||||
|
||||
A primary reason for the discussion was presented:
|
||||
|
||||
> [!example] ^ex
|
||||
> While putting together a large garden style project
|
||||
> Bid received a quote for lighting control at over one million dollars.
|
||||
> Believing it [[gold-plating|overengineered]],
|
||||
> Bid proposed ~$150,000 for lighting control "per code".
|
||||
> The contract was awarded on those terms.
|
||||
> When the project team received a quote for a "per code" system,
|
||||
> the total was ~$600,000.
|
||||
|
||||
***
|
||||
|
||||
Ultimately the responsibility is ConEst's
|
||||
to resolve discrepancies between:
|
||||
* applicable code
|
||||
* design intent
|
||||
* Bid proposal intent
|
||||
* PDR quote intent
|
||||
|
||||
***
|
||||
|
||||
It was erroneously suggested that lighting control conductors
|
||||
may be run with their circuit conductors if both are 600V insulated.[^1]
|
||||
|
||||
[^1]: This is a violation of [[nfpa-70_725_control-circuits#725.136(I) Other Applications.|NEC 725.136(I)(1)]].
|
||||
See [[lighting-controls#0-10V Dimming|0-10V Dimming]].
|
||||
|
||||
### My Thoughts
|
||||
|
||||
The lighting control problem is misunderstood.
|
||||
It's true that some technical training would be beneficial to ConEst estimators,
|
||||
but root of the problem has nothing to do with lighting control.
|
||||
|
||||
When I heard [[#^ex]], where lighting control went wrong
|
||||
and costed a job half a million in profit,
|
||||
what I took away was that we sold high-risk scope
|
||||
without knowing what was required _and without qualification_.
|
||||
|
||||
***
|
||||
|
||||
Others have suggested creating new assemblies grouped by manufacturer,
|
||||
which I'm not a fan of.
|
||||
While it's true that similar implementations
|
||||
_are_ different between manufacturers,
|
||||
the differences are trivial for our purposes.
|
||||
More to the problem,
|
||||
such an arrangement would inevitably lead to confusion
|
||||
(i.e. taking off the wrong brand
|
||||
because its contents happen to match better in a specific instance).
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
id: 2025-12-12T09:38:52-05:00
|
||||
aliases: []
|
||||
title: 2025-12-12 09:38:52
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-12 09:38:52
|
||||
|
||||
A humorous exchange between a peer in estimating and myself:
|
||||
|
||||
> **Peer:** "Your research will one day cure estimator's brain,
|
||||
> a disease sweeping across \[our\] floor"
|
||||
>
|
||||
> **Me:** "if you ask me---I mean my friend---it's quite rare actually"
|
||||
>
|
||||
> **Peer:** "more data will be needed before a strong conclusion can be made"
|
||||
>
|
||||
> **Me:** "damn it's got you too"
|
||||
|
||||
My response was meant to imply that,
|
||||
among those employed as estimators,
|
||||
knowledge of and application of scientific methods are rare.
|
||||
I wonder though if it would have been more apt
|
||||
to reply "you're in the clear" or something to that effect,
|
||||
implying that one with estimator brain
|
||||
would make decisions based on limited data.
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
id: 2025-12-13T08:45:00-05:00
|
||||
aliases: []
|
||||
title: 2025-12-13 08:45:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-13 08:45:??
|
||||
|
||||
I am interested in [[actuarial-science]] and [[risk-management]]
|
||||
for their ability to quantify what is generally viewed subjective,
|
||||
and as frameworks for general decision-making.
|
||||
|
||||
The idea that one could devote significant thought
|
||||
into making a decision aligned with their [[personal-values]]
|
||||
and fail to pick the best option to that end is intriguing to me,
|
||||
more so that an accurate quantization of ones values
|
||||
and that the appropriate framework could trivialize all such decisions.
|
||||
|
||||
Personal decision-making is often described
|
||||
like calculating the result of a formula with hundreds of terms by hand.
|
||||
People mess it up for the reasons you would expect for such a problem,
|
||||
but then today you wouldn't expect them to do it by hand.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
id: 2025-12-14T09:52:00-05:00
|
||||
aliases: []
|
||||
title: 2025-12-14 09:52:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-14 09:52:??
|
||||
|
||||
```
|
||||
# hard wrap text
|
||||
$newText = $text -replace '^(.{60,80})\s', "`$1`n"
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
id: 2025-12-20T19:28:00-05:00
|
||||
aliases: []
|
||||
title: 2025-12-20 19:28:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-20 19:28:??
|
||||
|
||||
**Typesetting** is arranging type on the page for print.
|
||||
**Imposition** is arranging pages for binding.
|
||||
|
||||
[Bookbinder JS](https://momijizukamori.github.io/bookbinder-js/)
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
id: 2025-12-30T10:08:30-05:00
|
||||
aliases: []
|
||||
title: 2025-12-30 10:08:30
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2025-12-30 10:08:30
|
||||
|
||||
```
|
||||
3.ApplyThisSequence([-1,0,1,2,3])
|
||||
# returns [2,3,4,5,6]
|
||||
|
||||
3.ApplyThatSequence([-1,0,1,2,3])
|
||||
# returns [2,2,3,5,8]
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
id: 2026-01-04T00:00:00-05:00
|
||||
aliases: []
|
||||
title: 2026-01-04 ??:??:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-04 ??:??:??
|
||||
|
||||
Horror is usually made more horrifying by the inclusion of one or more persons who do not find the situation horrifying.
|
||||
|
||||
One cannibal is bad, a society of cannibals is worse than the sum.
|
||||
|
||||
Book of the New Sun Severian
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: 2026-01-05T15:44:50-05:00
|
||||
aliases: []
|
||||
title: 2026-01-05 15:44:50
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-05 15:44:50
|
||||
|
||||
## Bluebeam Scripting
|
||||
|
||||
### Built-In
|
||||
|
||||
C:\Program Files\Bluebeam Software\Bluebeam Revu\21\Help\Bluebeam Script Reference.pdf
|
||||
|
||||
```markdown
|
||||
## Search
|
||||
|
||||
### Description
|
||||
|
||||
Searches the text in the underyling PDF content and optionally applies text based markups to the results. Returns a list of markup IDs.
|
||||
|
||||
### Parameters
|
||||
|
||||
pTerm [String]: Term to search for
|
||||
pCaseSensitive [Bool, Optional]: Boolean value specifiying whether to match case
|
||||
pWholeWordOnly [Bool, Optional]: Boolean value specifiying whether to only return whole word matches
|
||||
pMarkup [String, Optional]: Markup properties as string dictionary. An empty string signifies that no markup will be created
|
||||
pAddTextToComment [Bool, Optional]: If a markup is created, specifies that the search term will be placed in the comment field
|
||||
pPageRange [String, Optional]: List or range of pages to be searched, -1 will search all pages, exp: 1,2,10-20
|
||||
|
||||
### Example
|
||||
|
||||
Search("electrical")
|
||||
```
|
||||
|
||||
This would have been a godsend if I was still at Ace,
|
||||
it will still be useful for coloring circuits.
|
||||
|
||||
```bci
|
||||
% script.bci
|
||||
Open("H:\zmeyers\jobs\2100 Crystal Drive - VA, HR\Schedules from Electrical.pdf")
|
||||
Search("schedule",false,false,"{'comment':'The color is red','color':'#FF0000'}")
|
||||
Close(true)
|
||||
```
|
||||
|
||||
```bash
|
||||
C:\Program Files\Bluebeam Software\Bluebeam Revu\21\Revu\ScriptEngine.exe script.bci
|
||||
```
|
||||
|
||||
### Model Context Protocol
|
||||
|
||||
C:\Program Files\Bluebeam Software\Bluebeam Revu\21\Revu\mcp\Bluebeam MCP Server.exe
|
||||
|
||||
There must be a way to get the CLI return its syntax
|
||||
|
||||
JetBrains DotPeek
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: 2026-01-10T08:42:00-05:00
|
||||
aliases: []
|
||||
title: 2026-01-10 08:42:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-10 08:42:??
|
||||
|
||||
I've been writing a C# library based on the specifications of [[music-theory-as-code]],
|
||||
but the problem of parsing overwhelms me whenever I think about implementation.
|
||||
|
||||
I'd like to try to get [ANTLR](https://github.com/antlr/antlr4) working,
|
||||
first a simple template solution,
|
||||
then a music notation parser for [[music-theory-as-code]],
|
||||
and ultimately experimenting with use for [[estimating-as-code]].
|
||||
|
||||
[vanilla C# target](https://github.com/antlr/antlr4/blob/master/doc/csharp-target.md)
|
||||
[alt C# target](https://github.com/tunnelvisionlabs/antlr4cs)
|
||||
@@ -0,0 +1,61 @@
|
||||
---
|
||||
id: 2026-01-13T11:28:14-05:00
|
||||
aliases: []
|
||||
title: 2026-01-13 11:28:14
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-13 11:28:14
|
||||
|
||||
#occupational
|
||||
|
||||
### 2100 Crystal Drive ConEst Manager Review
|
||||
|
||||
#### Josh's Review Order
|
||||
|
||||
1. Backwards from Final Pricing through rest of closeout,
|
||||
1. Equipment: Cost = 1% of total cost - systems quotes?
|
||||
2. briefly check Extension,
|
||||
3. Takeoff:
|
||||
1. Feeders
|
||||
2. Subfeeds
|
||||
3. Units
|
||||
|
||||
> [!failure]
|
||||
> Quad USB's in Units were taken off as standard receptacles.
|
||||
|
||||
#### Lighting Control
|
||||
|
||||
Follow up to [[2026-01-09#Lighting Control]]
|
||||
|
||||
Josh stated my takeoff was correct per drawings,
|
||||
but that concessions would need to be made for the scope
|
||||
as sold by [[pdi-estimating#Bid Estimating|Bid]].
|
||||
At his direction I've removed dimming from BOH and corridor spaces.
|
||||
The remaining takeoff will remain,
|
||||
a $4/sf budget for a lighting control system for those areas was added.
|
||||
|
||||
I stated that our proposal was deceptive
|
||||
for stating lighting control was included
|
||||
to which Josh agreed.
|
||||
|
||||
2021 IECC applies.
|
||||
|
||||
Josh wants [[pdi-pre-takeoff-confirmation]]
|
||||
to ask if lighting control is "as shown" or "to code",
|
||||
I objected that "to code" as interpreted by Bid
|
||||
is not necessarily _to code_ in truth.
|
||||
Truly, they need to just tell us what they included.
|
||||
The customer would appreciate it too, I'm sure.
|
||||
|
||||
#### Bonus Incentivized Inter-Departmental Conflict
|
||||
|
||||
During the review a ~~project manager~~ came to Josh
|
||||
to ask for a revision to a WBS
|
||||
|
||||
> [!aside]
|
||||
> Sunset WBS: Engineer did not approve aluminum EMT
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: 2026-01-14T13:27:20-05:00
|
||||
aliases: []
|
||||
title: 2026-01-14 13:27:20
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-14 13:27:20
|
||||
|
||||
#occupational
|
||||
|
||||
Follow-up to [[2026-01-13#Lighting Control]]
|
||||
|
||||
Conversation between Joel Jansen and Christian Pereiro
|
||||
regarding lighting control for 2100 Crystal Drive:
|
||||
|
||||
Joel: "It was sold as local."
|
||||
|
||||
Christian: "Yeah, but you can't do that."
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
id: 2026-01-26T06:48:00-05:00
|
||||
aliases: []
|
||||
title: 2026-01-26 06:48:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-26 06:48:??
|
||||
|
||||
## BLAME! Coelacanth
|
||||
|
||||
BLAME! Master Edition, Volume 4
|
||||
|
||||
After being separated from Kyrii,
|
||||
and just before meeting Dhomochevsky and Iko,
|
||||
Cibo sees a coelacanth, which she looks at longingly.
|
||||
|
||||
![[blame-vol4_coelacanth.png|300]]
|
||||
|
||||
The fish appears again
|
||||
just before Dhomochevsky finds Iko trapped
|
||||
and Cibo attacks him to take her things
|
||||
and flee to find Kyrii.
|
||||
|
||||
Coelacanth are called "living fossils"
|
||||
on account of their evolutionary conservatism,
|
||||
and are individually long-lived at around a century.
|
||||
They are ugly if not frightening creatures,
|
||||
but they are not known for being aggressive or dangerous.
|
||||
|
||||
The coelacanth is probably Kyrii
|
||||
since he fits old and scary,
|
||||
but it's a unexpected symbol:
|
||||
|
||||
* for Kyrii because coelacanth aren't known for being aggressive or dangerous,
|
||||
which he is shown to be in spades just before their separation,
|
||||
|
||||
* and for Cibo's condition because there's no time pressure.
|
||||
She is determined to get back to him as soon as possible,
|
||||
so you'd expect a bear in a trap or a rat in a cage sort of symbol.
|
||||
|
||||
The symbol shows Cibo's feelings about Kyrii:
|
||||
|
||||
* She does not believe that he is dangerous to her.
|
||||
* She does not believe he is in danger.
|
||||
* She regrets being apart from him, or maybe only that he is alone.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
id: 2026-01-27T17:31:00-05:00
|
||||
aliases: []
|
||||
title: 2026-01-27 17:31:??
|
||||
tags:
|
||||
- authorship/original
|
||||
- destiny/permanent
|
||||
- status/draft
|
||||
- type/timestamped
|
||||
dg-publish: true
|
||||
---
|
||||
# 2026-01-27 17:31:??
|
||||
|
||||
#topic/hobbies/reading
|
||||
|
||||
### BLAME! Coelacanth
|
||||
|
||||
Follow-up to [[2026-01-26#BLAME! Coelacanth]]
|
||||
|
||||
BLAME! Master Edition, Volume 5
|
||||
|
||||
The coelacanth appears again
|
||||
with more ambiguous context.
|
||||
Reference in New Issue
Block a user