Org Web Adapter

journals/2019_10_28.org

Monday, 10/28/2019

ID
35e3c3ad-edd5-4aaa-b49d-8a69c1c4ae1e

Tasks

DONE Set tasks for the day

@personaltasksdaily

CLOSED: SCHEDULED: <2019-10-28 Mon 8:00>

:LOGBOOK:

CLOCK: -- => 0:06

CLOCK: -- => 0:43

:END:

DONE Krystian / Colin fat model discussion

@15fivemeetingkrystianmodels

CLOSED: SCHEDULED: <2019-10-28 Mon 8:30-9:00>

There are arguments to be made in either case. This link from SO makes a

compelling argument as to why views are the wrong place for application

logic see:

- https://stackoverflow.com/questions/8590468/django-fat-models-and-skinny-controllers

- https://softwareengineering.stackexchange.com/questions/90808/are-django-forms-violating-mvc

At 15Five we tend to write a lot of utility functions for checks, and then

wrap them up in implementation functions which usually take a request and do

safety validation and such.

The problem with this is that there is still really easy access to the raw

data and if you don't wrap your data is data models, you wind up with data

in funky states and that's pretty much the root of all bugs.

I'm prepared to believe that thick models are not the absolute answer, but

at some point you have to enforce data integrity via relationships, and the

lower down you do it, the harder it is for data state to drift.

In our case, we either need to provide more consistent access to data model

conventions, or more strictly enforce data model integrity.

For example, our data design says no group type can have two groups that

share the same name. Right now, you have to remember to check that

constraint everytime you move a group around. It seems like that doesn't

happen often, but then you go to delete a group type and move groups to

the default group type and things blow up because the person writing the

delete logic forgot (or never knew) about that data design.

- Institutional knowledge

1. File size

Models files grow huge quickly. There are ways to manage that

2. How do you make your codebase maintainable?

Microservices?

Database as monolith, apps run on own servers?

Mods/apps but no hard rules on interfaces?

User model gains the most from feature creep

list of objetives for users? Throw it in as a model property

Prefer, functions inside of objecitves code that take a user as parameter

Makes for slightly more awkward code, esp. for OOO zealots

Storing data on user? Create FK with a new table? Put it on the user prefs

model?

Database constraints were historically limited

Very universal data constraints, should be on database

Sometimes a property is just a property on a model

Not limited by a status flag, okay to just change name directly

Other things are very connected, user.is_active, or status field

But logic needs to change based on constraints

Save method is okay, because you can get around it, but still enforce it

from time to time

Safe handler that can take parameter to do things fast without checking

from time to time

In PPP squad, start dates will live on User model, provide utility

functions for commonly used things

Publish an external interface to our code

OKR and goal settings should not live on the User model

DONE Maine 200 committee kick off

@townme200meeting

CLOSED: SCHEDULED: <2019-10-28 Mon 9:00-10:30>

:LOGBOOK:

CLOCK: -- => 1:31

:END:

Role of committee
Goal of event

-

Fundraising goals

- Are you inviting all? Or are you exlcuding some

- Do we build on Hermione, or treat it as a separate event?

- Didn't build on hermione as a local success

Where will money go?

- ME200?

DONE Write in daily journal

@personalhabitjournal

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 0:24

:END:

DONE Check email

@personalemailcomms

CLOSED: SCHEDULED: <2019-10-28 Mon 8:15>

:LOGBOOK:

CLOCK: -- => 0:14

:END:

DONE Parking work session

@townsboardworksession

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 1:10

:END:

- West Court - overnight restrictions off

- Overnight 11-6 to 12-8

- 25ft min v 10 ft on corners

- Not do painting but add extra signage

- 10-15 ft on hydrant on Battle & Main

- Changing time to 2hr on lower Main

- Changing time on dock to 4hr all spots

- Launch ramp goes to 1 hour parking + add parking curbs

- Pentagoet to Pleasent one-way will wait, but we're thinking about it

DONE Team Boost

@15fivemeetingboost

CLOSED: SCHEDULED:

ZOOM
https://zoom.us/j/647103643

:LOGBOOK:

CLOCK: -- => 0:20

:END:

DONE Talk to Shawn about clearing leaves on Water Street

@townrequestmaintence

CLOSED:

:LOGBOOK:

CLOCK: -- => 0:01

:END:

Note

Tip MacDonald came in to request that the town make sure to clear leaves out of

the gutter and drain on Water Street by the bank BEFORE things start freezing

over. Last year the ice came up near to the door because water couldn't drain properly.

DONE Write in work journal

@15fiveworkdevjournal

CLOSED: SCHEDULED:

LINK
https://15five.quip.com/bqoiAdg7Dhx8

:LOGBOOK:

CLOCK: -- => 0:26

CLOCK: -- => 0:04

:END:

DONE Lunch

@personallunchmeal

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 0:45

:END:

DONE Cleaning the house

@homechorescleaning

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 1:08

:END:

DONE Dishes

@homechoresdishes

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 0:47

:END:

DONE Document how permissions works in 15Five app currently

@15fiveeng5015taskperms

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 0:30

CLOCK: -- => 1:00

CLOCK: -- => 0:48

CLOCK: - => 2:03

:END:

DONE Prepare short presentation about the virtues of emacs

@15fivebiweeklypresentation

CLOSED: SCHEDULED:

DONE Bedtime

@familykidsbedtime

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 0:38

:END:

DONE Watch Poldark

@familytvpoldark

CLOSED: SCHEDULED:

:LOGBOOK:

CLOCK: -- => 1:31

:END:

Journal

After a successful ferry beach weekend, today has been quite busy. My day began

with Emma sleeping in and not having the kids awake until after 7. I was

probably more worked up about that than I either had a right to be, or than was

necessary. The kids ended up getting to school before 8, and I was at town

office for my slate of meetings in fine time as well.

My conversation about thick models with Krystian went well. I'm always impressed

with how reasonable and approachable Krystian is when it comes to talking

through ideas. The one thing that felt a little off is that I may have been

conflating thick models and standard interfaces a little bit. Though they may

also just be inter-related.

My next meeting was the kick-off for the ME200 steering committee. Marsha Mason,

Bill and Bobby Vagt were on the committee along with Shawn. Helen Miller had

called in to sort of pitch her services. I'm not sure how that's all going to go

down, but I felt pretty good with the direction so far.

Report

#+BEGIN: clocktable :scope file :maxlevel 3 :formula % :compact t :tags t

#+CAPTION: Clock summary at

| Tags | Headline | Time | % |

|-------------------------------+----------------------------------------------+---------+-------|

| | *Total time* | *14:06* | 100.0 |

|-------------------------------+----------------------------------------------+---------+-------|

| | Monday, 10/28/2019 | 14:06 | 100.0 |

| | \_ Tasks | 14:06 | 100.0 |

| @personal, tasks, daily | \_ Set tasks for the day | 0:49 | 5.8 |

| @town, me200, meeting | \_ Maine 200 committee kick off | 1:31 | 10.8 |

| @personal, habit, journal | \_ Write in daily journal | 0:24 | 2.8 |

| @personal, email, comms | \_ Check email | 0:14 | 1.7 |

| @town, sboard, worksession | \_ Parking work session | 1:07 | 7.9 |

| @15five, meeting, boost | \_ Team Boost | 0:20 | 2.4 |

| @town, request, maintence | \_ Talk to Shawn about clearing leaves... | 0:01 | 0.1 |

| @15five, work, dev, journal | \_ Write in work journal | 0:30 | 3.5 |

| @personal, lunch, meal | \_ Lunch | 0:45 | 5.3 |

| @home, chores, cleaning | \_ Cleaning the house | 1:08 | 8.0 |

| @home, chores, dishes | \_ Dishes | 0:47 | 5.6 |

| @15five, eng5015, task, perms | \_ Document how permissions works in... | 4:21 | 30.9 |

| @family, kids, bedtime | \_ Bedtime | 0:38 | 4.5 |

| @family, tv, poldark | \_ Watch Poldark | 1:31 | 10.8 |

#+END: