<commit_before>```
export FAY=~/Documents/repo/fayalite
alias app="cd $FAY/app-dynamic; sbt ~fastOptJS"
alias ws="cd $FAY; sbt run org.fayalite.MainServer"
```

Run org.fayalite.ui.ParseServer to handle state management / synchronization
Run org.fayalite.ui.ws.Server to handle websocket management / serving page ( in theory )
In practice right now Workbench (Haoyi Li) serves page.

Copy app-dynamic/index-fastopt.html to path below. Idk why workbench requires
this path, but it won't show up if it's not there.

http://localhost:12345/target/scala-2.11/classes/index-fastopt.html

to start additional servers to test other components.
Run org.fayalite.repl.SparkSupervisor to handle driver / repl requests
Not fully hooked up to UI yet.
<commit_msg>Updates.<commit_after>```
cat << EOF >> ~/.bash_profile
export FAY=~/Documents/repo/fayalite
alias app="cd $FAY/app-dynamic; sbt ~fastOptJS"
alias ws="cd $FAY; sbt run org.fayalite.MainServer"
EOF
```

MainServer will run org.fayalite.ui.ParseServer to handle state 
management / synchronization and org.fayalite.ui.ws.Server 
to handle websocket management / serving page ( in theory )
In practice right now Workbench (Haoyi Li) serves page.

Copy app-dynamic/index-fastopt.html to path below. Idk why workbench requires
this path, but it won't show up if it's not there.

http://localhost:12345/target/scala-2.11/classes/index-fastopt.html

To start additional servers to test other components.
Run org.fayalite.repl.SparkSupervisor to handle driver / repl requests
Not fully hooked up to UI yet.

{'fraction_non_alphanumeric': 0.09542230818826564, 'fraction_numerical': 0.010315925209542231, 'mean_word_length': 4.58273381294964, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5461587', 'n_tokens_mistral': 522, 'n_tokens_neox': 490, 'n_words': 172}