102 Commits

Author SHA1 Message Date
bspeice 361e476ede Review draft 2025-03-10 21:13:28 -04:00
bspeice ced7827d0c Finish first draft. 2025-03-09 16:56:49 -04:00
bspeice 59a3e455f0 Start writing the post 2025-03-08 18:14:00 -05:00
bspeice 2d810fe20f Code for 2D camera system 2025-03-08 12:26:20 -05:00
bspeice 7fb5a22cdf Remove babel loader 2025-01-04 11:24:10 -05:00
bspeice b4dd65f216 Enable trailing slash 2025-01-04 11:23:41 -05:00
bspeice 21d42607a3 Fix dependencies 2025-01-04 11:22:17 -05:00
bspeice df81833d2c Fix broken anchors 2025-01-04 11:18:47 -05:00
bspeice 544d60c702 Fix list keys, div height units 2025-01-04 11:13:14 -05:00
bspeice e49ba23e3f Merge pull request #17 from bspeice/flam3
Flam3 - Blog post
2024-12-16 18:34:10 -08:00
bspeice 34cc4bca1c Vendor katex 2024-12-16 21:32:08 -05:00
bspeice daf78b3368 Update timestamps 2024-12-16 21:30:05 -05:00
bspeice 37e2992865 Proofreading 2024-12-16 21:29:03 -05:00
bspeice a6194763d1 Wording tweaks 2024-12-15 21:35:03 -05:00
bspeice 456c3a66e5 Mass formatting, fix mobile display, fix issues with image wrap-around 2024-12-15 21:19:09 -05:00
bspeice 1ce6137c17 First pass proof-reading 2024-12-15 15:55:27 -05:00
bspeice a05acf6748 Finish a first draft 2024-12-14 16:55:54 -05:00
bspeice 9b1a3895d0 More writing. Hopefully can finish the first draft soon 2024-12-13 23:28:35 -05:00
bspeice b526b02e7b More writing 2024-12-13 20:03:53 -05:00
bspeice a5e620f603 More writing for the math 2024-12-12 17:14:08 -05:00
bspeice 538cc2eb47 More writing for the math and browser APIs 2024-12-11 19:56:39 -05:00
bspeice 192286a86a Formatting tweak 2024-12-11 17:31:34 -05:00
bspeice f643996128 Use a sizing ref to avoid resizing the canvas 2024-12-11 17:28:04 -05:00
bspeice c3c3c65614 Don't track IDE folders 2024-12-11 08:12:19 -05:00
bspeice 6c32f0c249 Remove plotly dependency 2024-12-11 08:10:07 -05:00
bspeice 0983558659 More writing for the main posts 2024-12-09 22:18:13 -05:00
bspeice b608a25146 Actually doing some writing 2024-12-08 22:50:46 -05:00
bspeice 5ae6b82d26 Auto-sizing canvas, starting cleanup for display on mobile browsers 2024-12-08 19:53:06 -05:00
bspeice 78d71cbc7b View detection 2024-12-08 16:17:21 -05:00
bspeice 3c583705f8 Fix final transform modifying coordinates 2024-12-08 15:35:27 -05:00
bspeice 845e7fb4f7 Palette bar implementation 2024-12-07 15:18:12 -05:00
bspeice 137dcc675d Fix color swatch paint area
Still hate the code, but at least it's sized correctly now
2024-12-04 22:45:48 -05:00
bspeice 30e1619175 Color mixing is working
...even though I kinda hate the code for it
2024-12-04 22:38:53 -05:00
bspeice a79341271b Implement color sliders 2024-12-03 22:22:40 -05:00
bspeice 2a44421487 New color palette 2024-12-03 21:21:26 -05:00
bspeice ce1873147c Color render working 2024-12-02 22:36:25 -05:00
bspeice 2bee6142be Revert "Attempt to migrate to a class for handling renders."
This reverts commit ac99ee6dd8.
2024-12-02 20:01:39 -05:00
bspeice ac99ee6dd8 Attempt to migrate to a class for handling renders.
It didn't work.
2024-12-02 20:01:29 -05:00
bspeice 2e8a6d1ce7 Log density visualization 2024-12-01 21:57:10 -05:00
bspeice 79b66337e8 Checkpoint for histogram
It takes a lot of render time to get a usable result, and it's not that interesting. Committing so I can save the work if I want to revisit it, but abandoning the idea for now.
2024-12-01 18:17:36 -05:00
bspeice 06069fdcea Update documentation 2024-12-01 15:16:30 -05:00
bspeice b7eed2297a Add a reset button
Probably overkill, but I kinda like it.
2024-11-30 18:01:29 -05:00
bspeice 6c4d73f081 Post/final transform implementation 2024-11-30 17:35:42 -05:00
bspeice 1aa45e3f59 Split paint/render image to handle callback depth
Iterator state still uses the same pattern, not sure how problematic that is.
2024-11-30 12:39:54 -05:00
bspeice 12c88ef8e3 Build works again 2024-11-29 23:22:31 -05:00
bspeice f327b53863 Fix initial posts to use the new painter API 2024-11-29 23:19:19 -05:00
bspeice 112470ce5a Rewrite canvas to use React state management properly 2024-11-29 23:08:47 -05:00
bspeice ce5a28b7bd Flame blending example 2024-11-29 19:25:29 -05:00
bspeice 137bd74d4d Get npm run build going again 2024-11-24 22:41:19 -05:00
bspeice 7759b58dbe Basic function weights 2024-11-24 22:37:53 -05:00
bspeice 4c3f4246a4 Incremental rendering 2024-11-24 18:59:11 -05:00
bspeice 22a4ffff7c Move image painting to a context component 2024-11-24 00:06:22 -05:00
bspeice 0a45267ea1 Revert "Attempt to generalize"
This reverts commit e2a0ee1d72.
2024-11-23 15:27:02 -05:00
bspeice e2a0ee1d72 Attempt to generalize 2024-11-23 15:26:48 -05:00
bspeice aba3c9f988 Reorganize a bit, write some more 2024-11-19 21:42:03 -05:00
bspeice 431ba2d0f4 Tweaks 2024-11-18 22:08:23 -05:00
bspeice e1735404ae Start on the transforms post 2024-11-18 22:01:31 -05:00
bspeice b46993bd51 Fix for facebook/docusaurus#6032 2024-11-17 21:34:32 -05:00
bspeice f26afcccf9 Updated gasket, fixed charts 2024-11-17 20:42:42 -05:00
bspeice 3a41d5c81a Render the gasket
Need to get rid of Plotly, unfortuantely - causes issues with hydration. Seems like Victory is better able to handle what I need.
2024-11-17 17:30:07 -05:00
bspeice 1b4d190906 Start actually writing a post 2024-11-16 18:21:06 -05:00
bspeice 582e03cff3 Merge pull request #16 from bspeice/docusaurus
Docusaurus
2024-11-10 13:44:05 -08:00
bspeice 3bd6550c34 Fix link 2024-11-10 16:43:14 -05:00
bspeice 6dcbc1a72c Re-enable rspack 2024-11-10 16:42:03 -05:00
bspeice ea90aa0cb3 Truncate marker 2024-11-10 16:41:38 -05:00
bspeice 62a82c9b17 Add CNAME file for pages publishing 2024-11-10 16:40:52 -05:00
bspeice 4a060ddbe2 Finish converting blog posts 2024-11-09 22:06:23 -05:00
bspeice 8b3c967b2c 2019-09-28-binary-format-shootout 2024-11-09 22:00:25 -05:00
bspeice 8501da2f81 2019-06-31-high-performance-systems 2024-11-09 21:54:39 -05:00
bspeice d9baae0a5e 2019-05-03-making-bread 2024-11-09 21:49:32 -05:00
bspeice 97f997dc99 Allocations in Rust series 2024-11-09 21:05:00 -05:00
bspeice 7426890685 Handle blog series 2024-11-09 20:23:31 -05:00
bspeice 7580df1dd4 2018-12-04-what-small-business-really-means 2024-11-09 17:08:29 -05:00
bspeice 5c212fb3b3 Remove extraneous links 2024-11-09 17:02:57 -05:00
bspeice 65d31a44ca 2018-10-08-case-study-optimization 2024-11-09 17:02:02 -05:00
bspeice 2b159b1158 2018-09-15-isomorphic-apps 2024-11-09 16:40:50 -05:00
bspeice f562c9ff7c Border style 2024-11-09 16:33:45 -05:00
bspeice 853bf5ebd0 First posts from speice.io 2024-11-09 16:26:36 -05:00
bspeice 835d79f294 Docusaurus upgrade 2024-11-06 21:13:28 -05:00
bspeice a5b338431d Finish up bspeice.github.com conversions 2024-11-06 03:32:56 +00:00
bspeice e7babcd8a1 2016-01-23-cloudy-in-seattle 2024-11-04 01:26:47 +00:00
bspeice c688796709 Code formatting fix 2024-11-04 00:41:49 +00:00
bspeice 8845ae5ba9 2016-04-06-tick-tock 2024-11-04 00:25:47 +00:00
bspeice d2b3231a30 2016-05-15-the-unfair-casino 2024-11-04 00:16:00 +00:00
bspeice 462dfb1f5e 2016-02-26-profitability-using-the-investment-formula 2024-11-03 23:57:32 +00:00
bspeice 666e5415e3 More heading fixes 2024-11-03 23:38:10 +00:00
bspeice 3d04ca8482 Fix heading markers 2024-11-03 23:37:18 +00:00
bspeice 8d0b058809 2016-02-03-guaranteed-money-maker 2024-11-03 23:29:07 +00:00
bspeice 4576390117 2016-03-28-tweet-like-me 2024-11-01 01:28:43 +00:00
bspeice 39245c86da 2015-12-26-testing-cramer 2024-10-30 22:28:29 +00:00
bspeice 60e46ac8f0 2016-01-01 Complaining about the weather 2024-10-30 01:23:30 +00:00
bspeice b5bc90781c Final conversion for 2015-11-27-autocallable 2024-10-22 01:55:59 +00:00
bspeice 35a91cd6d3 Final conversion for 2015-11-14-welcome 2024-10-22 01:29:11 +00:00
bspeice 212d213359 Another conversion 2024-10-14 01:17:09 +00:00
bspeice be9cb0e9c3 Show all posts 2024-10-14 00:53:32 +00:00
bspeice 0b346fea5e Work on converting old blog posts 2024-10-14 00:48:31 +00:00
bspeice 1697556bbb Footer/nav cleanup 2024-10-13 21:54:54 +00:00
bspeice efd6ea4fe8 Reclaim some space 2024-10-13 20:42:07 +00:00
bspeice ceca877bb5 Fix favicon 2024-10-13 20:23:01 +00:00
bspeice d9e374096d New icon 2024-10-13 20:20:36 +00:00
bspeice 111b6e9e1e Style changes 2024-10-01 02:17:41 +00:00
bspeice 338600605a Initial docusaurus 2024-10-01 01:01:59 +00:00
488 changed files with 55619 additions and 57476 deletions
+19
View File
@@ -0,0 +1,19 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
"name": "Node.js & TypeScript",
"image": "mcr.microsoft.com/devcontainers/typescript-node:1-22-bookworm",
"runArgs": ["--userns=keep-id"],
"containerUser": "node",
"containerEnv": {
"HOME": "/home/node"
},
"customizations": {
"vscode": {
"extensions": [
"ChrisChinchilla.vale-vscode"
]
}
},
"onCreateCommand": "bash -c 'mkdir -p ~/.local/bin && wget -qO- https://github.com/errata-ai/vale/releases/download/v2.21.0/vale_2.21.0_Linux_64-bit.tar.gz | tar xz -C ~/.local/bin'"
}
+23
View File
@@ -0,0 +1,23 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.idea
.env.local
.env.development.local
.env.test.local
.env.production.local
.styles
.vscode
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+7
View File
@@ -0,0 +1,7 @@
StylesPath = .styles
MinAlertLevel = suggestion
Packages = Microsoft, write-good
[*.{md,mdx}]
BasedOnStyles = Vale, Microsoft, write-good
write-good.E-Prime = NO
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
+41
View File
@@ -0,0 +1,41 @@
# Website
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
### Installation
```
$ yarn
```
### Local Development
```
$ yarn start
```
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
### Build
```
$ yarn build
```
This command generates static content into the `build` directory and can be served using any static contents hosting service.
### Deployment
Using SSH:
```
$ USE_SSH=true yarn deploy
```
Not using SSH:
```
$ GIT_USER=<Your GitHub username> yarn deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["9763"],{70829:function(e){e.exports=JSON.parse('{"metadata":{"permalink":"/","page":1,"postsPerPage":10,"totalPages":4,"totalCount":38,"nextPage":"/page/2","blogDescription":"Blog","blogTitle":"Blog"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5229"],{52556:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return o},default:function(){return l},frontMatter:function(){return a},metadata:function(){return i},toc:function(){return c}});var i=n(80414),r=n(85893),s=n(50065);let a={slug:"2016/03/predicting-santander-customer-happiness",title:"Predicting Santander customer happiness",date:new Date("2016-03-05T12:00:00.000Z"),authors:["bspeice"],tags:[]},o=void 0,u={authorsImageUrls:[void 0]},c=[];function p(e){let t={p:"p",...(0,s.a)(),...e.components};return(0,r.jsx)(t.p,{children:"My first Kaggle competition."})}function l(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return a}});var i=n(67294);let r={},s=i.createContext(r);function a(e){let t=i.useContext(s);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}},80414:function(e){e.exports=JSON.parse('{"permalink":"/2016/03/predicting-santander-customer-happiness","source":"@site/blog/2016-03-05-predicting-santander-customer-happiness/index.mdx","title":"Predicting Santander customer happiness","description":"My first Kaggle competition.","date":"2016-03-05T12:00:00.000Z","tags":[],"readingTime":6.95,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2016/03/predicting-santander-customer-happiness","title":"Predicting Santander customer happiness","date":"2016-03-05T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730863976000,"prevItem":{"title":"Tweet like me","permalink":"/2016/03/tweet-like-me"},"nextItem":{"title":"Profitability using the investment formula","permalink":"/2016/02/profitability-using-the-investment-formula"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5373"],{65172:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return u},default:function(){return p},frontMatter:function(){return o},metadata:function(){return a},toc:function(){return l}});var a=n(63628),i=n(85893),r=n(50065);let o={slug:"2016/01/cloudy-in-seattle",title:"Cloudy in Seattle",date:new Date("2016-01-23T12:00:00.000Z"),authors:["bspeice"],tags:[]},u=void 0,s={authorsImageUrls:[void 0]},l=[];function c(e){let t={p:"p",...(0,r.a)(),...e.components};return(0,i.jsx)(t.p,{children:"Building on prior analysis, is Seattle's reputation as a depressing city actually well-earned?"})}function p(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return u},a:function(){return o}});var a=n(67294);let i={},r=a.createContext(i);function o(e){let t=a.useContext(r);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),a.createElement(r.Provider,{value:t},e.children)}},63628:function(e){e.exports=JSON.parse('{"permalink":"/2016/01/cloudy-in-seattle","source":"@site/blog/2016-01-23-cloudy-in-seattle/index.mdx","title":"Cloudy in Seattle","description":"Building on prior analysis, is Seattle\'s reputation as a depressing city actually well-earned?","date":"2016-01-23T12:00:00.000Z","tags":[],"readingTime":3.965,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2016/01/cloudy-in-seattle","title":"Cloudy in Seattle","date":"2016-01-23T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730683607000,"prevItem":{"title":"Guaranteed money maker","permalink":"/2016/02/guaranteed-money-maker"},"nextItem":{"title":"Complaining about the weather","permalink":"/2016/01/complaining-about-the-weather"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["2410"],{53239:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return s},default:function(){return p},frontMatter:function(){return o},metadata:function(){return r},toc:function(){return c}});var r=n(13303),i=n(85893),a=n(50065);let o={slug:"2019/09/binary-format-shootout",title:"Binary format shootout",date:new Date("2019-09-28T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function l(e){let t={a:"a",del:"del",p:"p",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["I've found that in many personal projects,\n",(0,i.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Analysis_paralysis",children:"analysis paralysis"})," is particularly deadly.\nMaking good decisions in the beginning avoids pain and suffering later; if extra research prevents\nfuture problems, I'm happy to continue ",(0,i.jsx)(t.del,{children:"procrastinating"})," researching indefinitely."]}),"\n",(0,i.jsx)(t.p,{children:"So let's say you're in need of a binary serialization format. Data will be going over the network,\nnot just in memory, so having a schema document and code generation is a must. Performance is\ncrucial, so formats that support zero-copy de/serialization are given priority. And the more\nlanguages supported, the better; I use Rust, but can't predict what other languages this could\ninteract with."}),"\n",(0,i.jsx)(t.p,{children:"Given these requirements, the candidates I could find were:"})]})}function p(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return o}});var r=n(67294);let i={},a=r.createContext(i);function o(e){let t=r.useContext(a);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(a.Provider,{value:t},e.children)}},13303:function(e){e.exports=JSON.parse('{"permalink":"/2019/09/binary-format-shootout","source":"@site/blog/2019-09-28-binary-format-shootout/index.mdx","title":"Binary format shootout","description":"I\'ve found that in many personal projects,","date":"2019-09-28T12:00:00.000Z","tags":[],"readingTime":8.37,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2019/09/binary-format-shootout","title":"Binary format shootout","date":"2019-09-28T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731207983000,"prevItem":{"title":"Release the GIL","permalink":"/2019/12/release-the-gil"},"nextItem":{"title":"On building high performance systems","permalink":"/2019/06/high-performance-systems"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["3837"],{74406:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return u},default:function(){return d},frontMatter:function(){return i},metadata:function(){return o},toc:function(){return c}});var o=n(41915),a=n(85893),r=n(50065);let i={slug:"2015/11/welcome",title:"Welcome, and an algorithm",date:new Date("2015-11-19T12:00:00.000Z"),last_update:{date:new Date("2015-12-05T12:00:00.000Z")},authors:["bspeice"],tags:[]},u=void 0,l={authorsImageUrls:[void 0]},c=[];function s(e){let t={p:"p",...(0,r.a)(),...e.components};return(0,a.jsx)(t.p,{children:"Hello! Glad to meet you. I'm currently a student at Columbia University studying Financial Engineering, and want to give an overview of the projects I'm working on!"})}function d(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(s,{...e})}):s(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return u},a:function(){return i}});var o=n(67294);let a={},r=o.createContext(a);function i(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),o.createElement(r.Provider,{value:t},e.children)}},41915:function(e){e.exports=JSON.parse('{"permalink":"/2015/11/welcome","source":"@site/blog/2015-11-14-welcome/index.mdx","title":"Welcome, and an algorithm","description":"Hello! Glad to meet you. I\'m currently a student at Columbia University studying Financial Engineering, and want to give an overview of the projects I\'m working on!","date":"2015-11-19T12:00:00.000Z","tags":[],"readingTime":4.175,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2015/11/welcome","title":"Welcome, and an algorithm","date":"2015-11-19T12:00:00.000Z","last_update":{"date":"2015-12-05T12:00:00.000Z"},"authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1449316800000,"prevItem":{"title":"Autocallable Bonds","permalink":"/2015/11/autocallable"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["8770"],{98476:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return s},default:function(){return l},frontMatter:function(){return i},metadata:function(){return r},toc:function(){return c}});var r=n(1403),a=n(85893),o=n(50065);let i={slug:"2019/06/high-performance-systems",title:"On building high performance systems",date:new Date("2019-07-01T12:00:00.000Z"),last_updated:{date:new Date("2019-09-21T12:00:00.000Z")},authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function p(e){let t={p:"p",...(0,o.a)(),...e.components};return(0,a.jsx)(t.p,{children:"Prior to working in the trading industry, my assumption was that High Frequency Trading (HFT) is\nmade up of people who have access to secret techniques mortal developers could only dream of. There\nhad to be some secret art that could only be learned if one had an appropriately tragic backstory."})}function l(e={}){let{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return i}});var r=n(67294);let a={},o=r.createContext(a);function i(e){let t=r.useContext(o);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),r.createElement(o.Provider,{value:t},e.children)}},1403:function(e){e.exports=JSON.parse('{"permalink":"/2019/06/high-performance-systems","source":"@site/blog/2019-06-31-high-performance-systems/index.mdx","title":"On building high performance systems","description":"Prior to working in the trading industry, my assumption was that High Frequency Trading (HFT) is","date":"2019-07-01T12:00:00.000Z","tags":[],"readingTime":12.175,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2019/06/high-performance-systems","title":"On building high performance systems","date":"2019-07-01T12:00:00.000Z","last_updated":{"date":"2019-09-21T12:00:00.000Z"},"authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731274994000,"prevItem":{"title":"Binary format shootout","permalink":"/2019/09/binary-format-shootout"},"nextItem":{"title":"Making bread","permalink":"/2019/05/making-bread"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["284"],{39265:function(e,t,i){i.r(t),i.d(t,{default:()=>d});var n=i("85893");i("67294");var o=i("7670"),s=i("50357"),r=i("90749"),a=i("67026"),l=i("46055");function h(e){let{className:t}=e;return(0,n.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,n.jsx)("div",{className:"row",children:(0,n.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,n.jsx)(l.Z,{as:"h1",className:"hero__title",children:(0,n.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,n.jsx)("p",{children:(0,n.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,n.jsx)("p",{children:(0,n.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}function d(){let e=(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.d,{title:e}),(0,n.jsx)(r.Z,{children:(0,n.jsx)(h,{})})]})}}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["4809"],{56909:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return u},default:function(){return m},frontMatter:function(){return o},metadata:function(){return r},toc:function(){return c}});var r=n(82353),a=n(85893),i=n(50065);let o={slug:"2016/02/guaranteed-money-maker",title:"Guaranteed money maker",date:new Date("2016-02-03T12:00:00.000Z"),authors:["bspeice"],tags:[]},u=void 0,s={authorsImageUrls:[void 0]},c=[];function l(e){let t={p:"p",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"Developing an investment strategy based on the Martingale betting strategy"}),"\n",(0,a.jsx)(t.p,{children:"If you can see into the future, that is."})]})}function m(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return u},a:function(){return o}});var r=n(67294);let a={},i=r.createContext(a);function o(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:t},e.children)}},82353:function(e){e.exports=JSON.parse('{"permalink":"/2016/02/guaranteed-money-maker","source":"@site/blog/2016-02-03-guaranteed-money-maker/index.mdx","title":"Guaranteed money maker","description":"Developing an investment strategy based on the Martingale betting strategy","date":"2016-02-03T12:00:00.000Z","tags":[],"readingTime":7.695,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2016/02/guaranteed-money-maker","title":"Guaranteed money maker","date":"2016-02-03T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730678252000,"prevItem":{"title":"Profitability using the investment formula","permalink":"/2016/02/profitability-using-the-investment-formula"},"nextItem":{"title":"Cloudy in Seattle","permalink":"/2016/01/cloudy-in-seattle"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["2792"],{17934:function(e){e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["4002"],{74307:function(e){e.exports=JSON.parse('{"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null,"count":37}]}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["4844"],{75563:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return i},default:function(){return p},frontMatter:function(){return r},metadata:function(){return a},toc:function(){return u}});var a=n(75288),o=n(85893),s=n(50065);let r={slug:"2018/12/what-small-business-really-means",title:'More "what companies really mean"',date:new Date("2018-12-04T12:00:00.000Z"),authors:["bspeice"],tags:[]},i=void 0,l={authorsImageUrls:[void 0]},u=[{value:"How do you feel about production support?",id:"how-do-you-feel-about-production-support",level:2}];function c(e){let t={a:"a",em:"em",h2:"h2",p:"p",strong:"strong",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["I recently stumbled across a phenomenal small article entitled\n",(0,o.jsx)(t.a,{href:"https://angel.co/blog/what-startups-really-mean-by-why-should-we-hire-you",children:'What Startups Really Mean By "Why Should We Hire You?"'}),".\nHaving been interviewed by smaller companies (though not exactly startups), the questions and\nsubtexts are the same. There's often a question behind the question that you're actually trying to\nanswer, and I wish I spotted the nuance earlier in my career."]}),"\n",(0,o.jsx)(t.p,{children:"Let me also make note of one more question/euphemism I've come across:"}),"\n",(0,o.jsx)(t.h2,{id:"how-do-you-feel-about-production-support",children:"How do you feel about production support?"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Translation"}),": ",(0,o.jsx)(t.em,{children:"We're a fairly small team, and when things break on an evening/weekend/Christmas\nDay, can we call on you to be there?"})]}),"\n",(0,o.jsx)(t.p,{children:'I\'ve met decidedly few people in my life who truly enjoy the "ops" side of "devops". They\'re\nincredibly good at taking an impossible problem, pre-existing knowledge of arcane arts, and turning\nthat into a functioning system at the end. And if they all left for lunch, we probably wouldn\'t make\nit out the door before the zombie apocalypse.'}),"\n",(0,o.jsx)(t.p,{children:"Larger organizations (in my experience, 500+ person organizations) have the luxury of hiring people\nwho either enjoy that, or play along nicely enough that our systems keep working."}),"\n",(0,o.jsx)(t.p,{children:'Small teams have no such luck. If you\'re interviewing at a small company, especially as a "data\nscientist" or other somesuch position, be aware that systems can and do spontaneously combust at the\nmost inopportune moments.'}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.strong,{children:"Terrible-but-popular answers include"}),": ",(0,o.jsx)(t.em,{children:"It's a part of the job, and I'm happy to contribute."})]})]})}function p(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return i},a:function(){return r}});var a=n(67294);let o={},s=a.createContext(o);function r(e){let t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),a.createElement(s.Provider,{value:t},e.children)}},75288:function(e){e.exports=JSON.parse('{"permalink":"/2018/12/what-small-business-really-means","source":"@site/blog/2018-12-04-what-small-business-really-means/index.mdx","title":"More \\"what companies really mean\\"","description":"I recently stumbled across a phenomenal small article entitled","date":"2018-12-04T12:00:00.000Z","tags":[],"readingTime":1.205,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/12/what-small-business-really-means","title":"More \\"what companies really mean\\"","date":"2018-12-04T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731190109000,"prevItem":{"title":"QADAPT - debug_assert! for allocations","permalink":"/2018/12/allocation-safety"},"nextItem":{"title":"A case study in heaptrack","permalink":"/2018/10/case-study-optimization"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["9339"],{39502:function(t,e,n){n.r(e),n.d(e,{assets:function(){return u},contentTitle:function(){return s},default:function(){return f},frontMatter:function(){return o},metadata:function(){return i},toc:function(){return c}});var i=n(86131),a=n(85893),r=n(50065);let o={slug:"2024/11/playing-with-fire-transforms",title:"Playing with fire: Transforms and variations",date:new Date("2024-12-16T21:31:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function l(t){let e={p:"p",...(0,r.a)(),...t.components};return(0,a.jsx)(e.p,{children:"Now that we've learned about the chaos game, it's time to spice things up. Variations create the\nshapes and patterns that fractal flames are known for."})}function f(t={}){let{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,a.jsx)(e,{...t,children:(0,a.jsx)(l,{...t})}):l(t)}},50065:function(t,e,n){n.d(e,{Z:function(){return s},a:function(){return o}});var i=n(67294);let a={},r=i.createContext(a);function o(t){let e=i.useContext(r);return i.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:o(t.components),i.createElement(r.Provider,{value:e},t.children)}},86131:function(t){t.exports=JSON.parse('{"permalink":"/2024/11/playing-with-fire-transforms","source":"@site/blog/2024-11-15-playing-with-fire/2-transforms/index.mdx","title":"Playing with fire: Transforms and variations","description":"Now that we\'ve learned about the chaos game, it\'s time to spice things up. Variations create the","date":"2024-12-16T21:31:00.000Z","tags":[],"readingTime":4.64,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2024/11/playing-with-fire-transforms","title":"Playing with fire: Transforms and variations","date":"2024-12-16T21:31:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1734402605000,"prevItem":{"title":"Playing with fire: Tone mapping and color","permalink":"/2024/11/playing-with-fire-log-density"},"nextItem":{"title":"Playing with fire: The fractal flame algorithm","permalink":"/2024/11/playing-with-fire"}}')}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["7073"],{36578:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return s},default:function(){return l},frontMatter:function(){return a},metadata:function(){return o},toc:function(){return c}});var o=n(82231),i=n(85893),r=n(50065);let a={slug:"2015/12/testing-cramer",title:"Testing Cramer",date:new Date("2015-12-26T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},c=[];function h(e){let t={p:"p",...(0,r.a)(),...e.components};return(0,i.jsx)(t.p,{children:"Pursuant to attending a graduate school studying Financial Engineering, I've been a fan of the [Mad Money][1] TV show featuring the bombastic Jim Cramer. One of the things that he's said is that you shouldn't use the futures to predict where the stock market is going to go. But he says it often enough, I've begun to wonder - who is he trying to convince?"})}function l(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return a}});var o=n(67294);let i={},r=o.createContext(i);function a(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(r.Provider,{value:t},e.children)}},82231:function(e){e.exports=JSON.parse('{"permalink":"/2015/12/testing-cramer","source":"@site/blog/2015-12-26-testing-cramer/index.mdx","title":"Testing Cramer","description":"Pursuant to attending a graduate school studying Financial Engineering, I\'ve been a fan of the Mad Money TV show featuring the bombastic Jim Cramer. One of the things that he\'s said is that you shouldn\'t use the futures to predict where the stock market is going to go. But he says it often enough, I\'ve begun to wonder - who is he trying to convince?","date":"2015-12-26T12:00:00.000Z","tags":[],"readingTime":8.23,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2015/12/testing-cramer","title":"Testing Cramer","date":"2015-12-26T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730678252000,"prevItem":{"title":"Complaining about the weather","permalink":"/2016/01/complaining-about-the-weather"},"nextItem":{"title":"Autocallable Bonds","permalink":"/2015/11/autocallable"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["1446"],{19499:function(e,t,n){n.r(t),n.d(t,{assets:function(){return c},contentTitle:function(){return s},default:function(){return p},frontMatter:function(){return o},metadata:function(){return r},toc:function(){return u}});var r=n(13184),a=n(85893),i=n(50065);let o={slug:"2019/05/making-bread",title:"Making bread",date:new Date("2019-05-03T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,c={authorsImageUrls:[void 0]},u=[];function l(e){let t={a:"a",p:"p",...(0,i.a)(),...e.components};return(0,a.jsxs)(t.p,{children:['Having recently started my "gardening leave" between positions, I have some more personal time\navailable. I\'m planning to stay productive, contributing to some open-source projects, but it also\noccurred to me that despite ',(0,a.jsx)(t.a,{href:"https://speice.io/2018/05/hello.html",children:"talking about"}),' bread pics, this\nblog has been purely technical. Maybe I\'ll change the site title from "The Old Speice Guy" to "Bites\nand Bytes"?']})}function p(e={}){let{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return o}});var r=n(67294);let a={},i=r.createContext(a);function o(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:t},e.children)}},13184:function(e){e.exports=JSON.parse('{"permalink":"/2019/05/making-bread","source":"@site/blog/2019-05-03-making-bread/index.mdx","title":"Making bread","description":"Having recently started my \\"gardening leave\\" between positions, I have some more personal time","date":"2019-05-03T12:00:00.000Z","tags":[],"readingTime":1.61,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2019/05/making-bread","title":"Making bread","date":"2019-05-03T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731207625000,"prevItem":{"title":"On building high performance systems","permalink":"/2019/06/high-performance-systems"},"nextItem":{"title":"Allocations in Rust: Summary","permalink":"/2019/02/summary"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["7953"],{46902:function(t,e,o){o.r(e),o.d(e,{assets:function(){return s},contentTitle:function(){return c},default:function(){return l},frontMatter:function(){return i},metadata:function(){return n},toc:function(){return u}});var n=o(9098),a=o(85893),r=o(50065);let i={slug:"2018/01/captains-cookbook-part-2",title:"Captain's Cookbook: Practical usage",date:new Date("2018-01-16T13:00:00.000Z"),authors:["bspeice"],tags:[]},c=void 0,s={authorsImageUrls:[void 0]},u=[];function p(t){let e={p:"p",...(0,r.a)(),...t.components};return(0,a.jsx)(e.p,{children:"A look at more practical usages of Cap'N Proto"})}function l(t={}){let{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,a.jsx)(e,{...t,children:(0,a.jsx)(p,{...t})}):p(t)}},50065:function(t,e,o){o.d(e,{Z:function(){return c},a:function(){return i}});var n=o(67294);let a={},r=n.createContext(a);function i(t){let e=n.useContext(r);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:i(t.components),n.createElement(r.Provider,{value:e},t.children)}},9098:function(t){t.exports=JSON.parse('{"permalink":"/2018/01/captains-cookbook-part-2","source":"@site/blog/2018-01-16-captains-cookbook-part-2/index.mdx","title":"Captain\'s Cookbook: Practical usage","description":"A look at more practical usages of Cap\'N Proto","date":"2018-01-16T13:00:00.000Z","tags":[],"readingTime":6.51,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/01/captains-cookbook-part-2","title":"Captain\'s Cookbook: Practical usage","date":"2018-01-16T13:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731201811000,"prevItem":{"title":"Hello!","permalink":"/2018/05/hello"},"nextItem":{"title":"Captain\'s Cookbook: Project setup","permalink":"/2018/01/captains-cookbook-part-1"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5810"],{35823:function(t,e,s){s.r(e),s.d(e,{assets:function(){return p},contentTitle:function(){return a},default:function(){return l},frontMatter:function(){return r},metadata:function(){return n},toc:function(){return c}});var n=s(58595),i=s(85893),o=s(50065);let r={slug:"2018/09/isomorphic-apps",title:"Isomorphic desktop apps with Rust",date:new Date("2018-09-15T12:00:00.000Z"),authors:["bspeice"],tags:[]},a=void 0,p={authorsImageUrls:[void 0]},c=[];function u(t){let e={a:"a",p:"p",...(0,o.a)(),...t.components};return(0,i.jsxs)(e.p,{children:["I both despise Javascript and am stunned by its success doing some really cool things. It's\n",(0,i.jsx)(e.a,{href:"https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript",children:"this duality"})," that's\nled me to a couple of (very) late nights over the past weeks trying to reconcile myself as I\nbootstrap a simple desktop application."]})}function l(t={}){let{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(u,{...t})}):u(t)}},50065:function(t,e,s){s.d(e,{Z:function(){return a},a:function(){return r}});var n=s(67294);let i={},o=n.createContext(i);function r(t){let e=n.useContext(o);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:r(t.components),n.createElement(o.Provider,{value:e},t.children)}},58595:function(t){t.exports=JSON.parse('{"permalink":"/2018/09/isomorphic-apps","source":"@site/blog/2018-09-15-isomorphic-apps/index.mdx","title":"Isomorphic desktop apps with Rust","description":"I both despise Javascript and am stunned by its success doing some really cool things. It\'s","date":"2018-09-15T12:00:00.000Z","tags":[],"readingTime":9.905,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/09/isomorphic-apps","title":"Isomorphic desktop apps with Rust","date":"2018-09-15T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731188450000,"prevItem":{"title":"A case study in heaptrack","permalink":"/2018/10/case-study-optimization"},"nextItem":{"title":"Primitives in Rust are weird (and cool)","permalink":"/2018/09/primitives-in-rust-are-weird"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5759"],{30172:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return l},default:function(){return d},frontMatter:function(){return c},metadata:function(){return i},toc:function(){return f}});var i=n(37144),r=n(85893),a=n(50065),s=n(41119),o=n(13772);let c={slug:"2024/11/playing-with-fire",title:"Playing with fire: The fractal flame algorithm",date:new Date("2024-12-16T21:30:00.000Z"),authors:["bspeice"],tags:[]},l=void 0,u={authorsImageUrls:[void 0]},f=[];function p(e){let t={a:"a",blockquote:"blockquote",p:"p",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Wikipedia describes ",(0,r.jsx)(t.a,{href:"https://en.wikipedia.org/wiki/Fractal_flame",children:"fractal flames"})," as:"]}),"\n",(0,r.jsxs)(t.blockquote,{children:["\n",(0,r.jsx)(t.p,{children:"a member of the iterated function system class of fractals"}),"\n"]}),"\n",(0,r.jsx)(t.p,{children:"It's tedious, but technically correct. I choose to think of them a different way: beauty in mathematics."}),"\n","\n",(0,r.jsx)("center",{children:(0,r.jsx)("img",{src:o.Z,style:{filter:(0,s.Z)()?"":"invert(1)"}})})]})}function d(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},13772:function(e,t,n){n.d(t,{Z:function(){return i}});let i=n.p+"assets/images/banner-506be1e2d2e720d32f10924e117435d5.png"},41119:function(e,t,n){n.d(t,{Z:function(){return r}});var i=n(79207);function r(){let{colorMode:e}=(0,i.I)();return"dark"===e}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return s}});var i=n(67294);let r={},a=i.createContext(r);function s(e){let t=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(a.Provider,{value:t},e.children)}},37144:function(e){e.exports=JSON.parse('{"permalink":"/2024/11/playing-with-fire","source":"@site/blog/2024-11-15-playing-with-fire/1-introduction/index.mdx","title":"Playing with fire: The fractal flame algorithm","description":"Wikipedia describes fractal flames as:","date":"2024-12-16T21:30:00.000Z","tags":[],"readingTime":7.595,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2024/11/playing-with-fire","title":"Playing with fire: The fractal flame algorithm","date":"2024-12-16T21:30:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1734402605000,"prevItem":{"title":"Playing with fire: Transforms and variations","permalink":"/2024/11/playing-with-fire-transforms"},"nextItem":{"title":"The webpack industrial complex","permalink":"/2011/11/webpack-industrial-complex"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5616"],{75270:function(e,s,c){c.r(s)}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["9854"],{10889:function(e,t,i){i.r(t),i.d(t,{default:()=>j});var n=i("85893");i("67294");var r=i("67026"),s=i("50357"),l=i("66171"),u=i("7670");let a=()=>(0,u.I)({id:"theme.blog.authorsList.pageTitle",message:"Authors",description:"The title of the authors page"});var o=i("69890"),h=i("2901"),c=i("46055"),d=i("76230");let p={authorListItem:"authorListItem_n3yI"};function g(e){let{author:t}=e;return(0,n.jsx)("li",{className:p.authorListItem,children:(0,n.jsx)(d.Z,{as:"h2",author:t,count:t.count})})}function f(e){let{authors:t}=e;return(0,n.jsx)("section",{className:(0,r.Z)("margin-vert--lg",p.authorsListSection),children:(0,n.jsx)("ul",{children:t.map(e=>(0,n.jsx)(g,{author:e},e.key))})})}function j(e){let{authors:t,sidebar:i}=e,u=a();return(0,n.jsxs)(s.FG,{className:(0,r.Z)(l.k.wrapper.blogPages,l.k.page.blogAuthorsListPage),children:[(0,n.jsx)(s.d,{title:u}),(0,n.jsx)(h.Z,{tag:"blog_authors_list"}),(0,n.jsxs)(o.Z,{sidebar:i,children:[(0,n.jsx)(c.Z,{as:"h1",children:u}),(0,n.jsx)(f,{authors:t})]})]})}},41889:function(e,t,i){i.d(t,{Z:function(){return u}});var n=i(85893),r=i(67294),s=i(46055);function l(e){let{title:t,headingType:i,children:r}=e;return(0,n.jsxs)("div",{role:"group",children:[(0,n.jsx)(s.Z,{as:i,children:t}),r]})}let u=(0,r.memo)(function(e){let{items:t,ListComponent:i}=e;return function(e,t){let i=[],r=[];function s(){if(0===r.length)return;let e=new Date(r[0].date).getFullYear(),s=function(e,t){let i=[],r=[];function s(){if(0===r.length)return;let e=r[0].title.split(":")[0];r=(r=r.map(e=>({...e,title:e.title.split(":")[1].trim()}))).reverse(),i.push((0,n.jsx)(l,{title:e,headingType:"h4",children:(0,n.jsx)("div",{role:"group",style:{paddingInlineStart:"1.5em"},children:(0,n.jsx)(t,{items:r})})},e)),r=[]}for(let l of e){if(l.title.includes(":")){r.push(l);continue}s(),i.push((0,n.jsx)(t,{items:[l]},l.permalink))}return s(),i}(r,t);i.push((0,n.jsx)(l,{title:String(e),headingType:"h3",children:s},e)),r=[]}for(let t of e){if(0===r.length){r.push(t);continue}new Date(t.date).getFullYear()!==new Date(r[0].date).getFullYear()&&s(),r.push(t)}return s(),i}(t,i)})}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["1511"],{40808:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return o},default:function(){return p},frontMatter:function(){return a},metadata:function(){return r},toc:function(){return c}});var r=n(47497),i=n(85893),s=n(50065);let a={slug:"2018/09/primitives-in-rust-are-weird",title:"Primitives in Rust are weird (and cool)",date:new Date("2018-09-01T12:00:00.000Z"),authors:["bspeice"],tags:[]},o=void 0,u={authorsImageUrls:[void 0]},c=[];function l(e){let t={code:"code",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"I wrote a really small Rust program a while back because I was curious. I was 100% convinced it\ncouldn't possibly run:"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-rust",children:'fn main() {\n println!("{}", 8.to_string())\n}\n'})}),"\n",(0,i.jsx)(t.p,{children:"And to my complete befuddlement, it compiled, ran, and produced a completely sensible output."})]})}function p(e={}){let{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return o},a:function(){return a}});var r=n(67294);let i={},s=r.createContext(i);function a(e){let t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),r.createElement(s.Provider,{value:t},e.children)}},47497:function(e){e.exports=JSON.parse('{"permalink":"/2018/09/primitives-in-rust-are-weird","source":"@site/blog/2018-09-01-primitives-in-rust-are-weird/index.mdx","title":"Primitives in Rust are weird (and cool)","description":"I wrote a really small Rust program a while back because I was curious. I was 100% convinced it","date":"2018-09-01T12:00:00.000Z","tags":[],"readingTime":6.945,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/09/primitives-in-rust-are-weird","title":"Primitives in Rust are weird (and cool)","date":"2018-09-01T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731187596000,"prevItem":{"title":"Isomorphic desktop apps with Rust","permalink":"/2018/09/isomorphic-apps"},"nextItem":{"title":"What I learned porting dateutil to Rust","permalink":"/2018/06/dateutil-parser-to-rust"}}')}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5747"],{99844:function(t,e,n){n.r(e),n.d(e,{assets:function(){return l},contentTitle:function(){return s},default:function(){return p},frontMatter:function(){return a},metadata:function(){return o},toc:function(){return u}});var o=n(44024),r=n(85893),i=n(50065);let a={slug:"2018/05/hello",title:"Hello!",date:new Date("2018-05-28T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,l={authorsImageUrls:[void 0]},u=[];function c(t){let e={p:"p",...(0,i.a)(),...t.components};return(0,r.jsx)(e.p,{children:"I'll do what I can to keep this short, there's plenty of other things we both should be doing right\nnow."})}function p(t={}){let{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(c,{...t})}):c(t)}},50065:function(t,e,n){n.d(e,{Z:function(){return s},a:function(){return a}});var o=n(67294);let r={},i=o.createContext(r);function a(t){let e=o.useContext(i);return o.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:a(t.components),o.createElement(i.Provider,{value:e},t.children)}},44024:function(t){t.exports=JSON.parse('{"permalink":"/2018/05/hello","source":"@site/blog/2018-05-28-hello/index.mdx","title":"Hello!","description":"I\'ll do what I can to keep this short, there\'s plenty of other things we both should be doing right","date":"2018-05-28T12:00:00.000Z","tags":[],"readingTime":0.375,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/05/hello","title":"Hello!","date":"2018-05-28T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731187596000,"prevItem":{"title":"What I learned porting dateutil to Rust","permalink":"/2018/06/dateutil-parser-to-rust"},"nextItem":{"title":"Captain\'s Cookbook: Practical usage","permalink":"/2018/01/captains-cookbook-part-2"}}')}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["8987"],{10877:function(e,t,n){n.r(t),n.d(t,{assets:function(){return l},contentTitle:function(){return s},default:function(){return d},frontMatter:function(){return i},metadata:function(){return o},toc:function(){return c}});var o=n(16954),a=n(85893),r=n(50065);let i={slug:"2018/12/allocation-safety",title:"QADAPT - debug_assert! for allocations",date:new Date("2018-12-15T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,l={authorsImageUrls:[void 0]},c=[];function u(e){let t={a:"a",blockquote:"blockquote",p:"p",strong:"strong",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.p,{children:"I think it's part of the human condition to ignore perfectly good advice when it comes our way. A\nbit over a month ago, I was dispensing sage wisdom for the ages:"}),"\n",(0,a.jsxs)(t.blockquote,{children:["\n",(0,a.jsxs)(t.p,{children:["I had a really great idea: build a custom allocator that allows you to track your own allocations.\nI gave it a shot, but learned very quickly: ",(0,a.jsx)(t.strong,{children:"never write your own allocator."})]}),"\n",(0,a.jsxs)(t.p,{children:["-- ",(0,a.jsx)(t.a,{href:"/2018/10/case-study-optimization",children:"me"})]}),"\n"]}),"\n",(0,a.jsx)(t.p,{children:"I proceeded to ignore it, because we never really learn from our mistakes."})]})}function d(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(u,{...e})}):u(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return i}});var o=n(67294);let a={},r=o.createContext(a);function i(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),o.createElement(r.Provider,{value:t},e.children)}},16954:function(e){e.exports=JSON.parse('{"permalink":"/2018/12/allocation-safety","source":"@site/blog/2018-12-15-allocation-safety/index.mdx","title":"QADAPT - debug_assert! for allocations","description":"I think it\'s part of the human condition to ignore perfectly good advice when it comes our way. A","date":"2018-12-15T12:00:00.000Z","tags":[],"readingTime":4.775,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/12/allocation-safety","title":"QADAPT - debug_assert! for allocations","date":"2018-12-15T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731204300000,"prevItem":{"title":"Allocations in Rust: Foreword","permalink":"/2019/02/understanding-allocations-in-rust"},"nextItem":{"title":"More \\"what companies really mean\\"","permalink":"/2018/12/what-small-business-really-means"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["8977"],{31555:function(t,e,n){n.r(e),n.d(e,{assets:function(){return u},contentTitle:function(){return s},default:function(){return p},frontMatter:function(){return a},metadata:function(){return r},toc:function(){return l}});var r=n(50745),i=n(85893),o=n(50065);let a={slug:"2018/06/dateutil-parser-to-rust",title:"What I learned porting dateutil to Rust",date:new Date("2018-06-25T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},l=[];function c(t){let e={a:"a",p:"p",...(0,o.a)(),...t.components};return(0,i.jsxs)(e.p,{children:["I've mostly been a lurker in Rust for a while, making a couple small contributions here and there.\nSo launching ",(0,i.jsx)(e.a,{href:"https://github.com/bspeice/dtparse",children:"dtparse"})," feels like nice step towards becoming a\nfunctioning member of society. But not too much, because then you know people start asking you to\npay bills, and ain't nobody got time for that."]})}function p(t={}){let{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(c,{...t})}):c(t)}},50065:function(t,e,n){n.d(e,{Z:function(){return s},a:function(){return a}});var r=n(67294);let i={},o=r.createContext(i);function a(t){let e=r.useContext(o);return r.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),r.createElement(o.Provider,{value:e},t.children)}},50745:function(t){t.exports=JSON.parse('{"permalink":"/2018/06/dateutil-parser-to-rust","source":"@site/blog/2018-06-25-dateutil-parser-to-rust/index.mdx","title":"What I learned porting dateutil to Rust","description":"I\'ve mostly been a lurker in Rust for a while, making a couple small contributions here and there.","date":"2018-06-25T12:00:00.000Z","tags":[],"readingTime":6.99,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2018/06/dateutil-parser-to-rust","title":"What I learned porting dateutil to Rust","date":"2018-06-25T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731201811000,"prevItem":{"title":"Primitives in Rust are weird (and cool)","permalink":"/2018/09/primitives-in-rust-are-weird"},"nextItem":{"title":"Hello!","permalink":"/2018/05/hello"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["7702"],{81616:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return u},default:function(){return f},frontMatter:function(){return o},metadata:function(){return i},toc:function(){return l}});var i=n(93071),r=n(85893),a=n(50065);let o={slug:"2016/02/profitability-using-the-investment-formula",title:"Profitability using the investment formula",date:new Date("2016-02-26T12:00:00.000Z"),authors:["bspeice"],tags:[]},u=void 0,s={authorsImageUrls:[void 0]},l=[];function c(e){let t={p:"p",...(0,a.a)(),...e.components};return(0,r.jsx)(t.p,{children:"After developing a formula to guide our investing, how do we actually evaluate its performance in the real world?"})}function f(e={}){let{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return u},a:function(){return o}});var i=n(67294);let r={},a=i.createContext(r);function o(e){let t=i.useContext(a);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(a.Provider,{value:t},e.children)}},93071:function(e){e.exports=JSON.parse('{"permalink":"/2016/02/profitability-using-the-investment-formula","source":"@site/blog/2016-02-26-profitability-using-the-investment-formula/index.mdx","title":"Profitability using the investment formula","description":"After developing a formula to guide our investing, how do we actually evaluate its performance in the real world?","date":"2016-02-26T12:00:00.000Z","tags":[],"readingTime":7.675,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2016/02/profitability-using-the-investment-formula","title":"Profitability using the investment formula","date":"2016-02-26T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730678252000,"prevItem":{"title":"Predicting Santander customer happiness","permalink":"/2016/03/predicting-santander-customer-happiness"},"nextItem":{"title":"Guaranteed money maker","permalink":"/2016/02/guaranteed-money-maker"}}')}}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["2433"],{6805:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return s},default:function(){return m},frontMatter:function(){return a},metadata:function(){return o},toc:function(){return l}});var o=n(50610),i=n(85893),r=n(50065);let a={slug:"2019/02/summary",title:"Allocations in Rust: Summary",date:new Date("2019-02-09T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,u={authorsImageUrls:[void 0]},l=[];function c(e){let t={code:"code",p:"p",...(0,r.a)(),...e.components};return(0,i.jsxs)(t.p,{children:["While there's a lot of interesting detail captured in this series, it's often helpful to have a\ndocument that answers some \"yes/no\" questions. You may not care about what an ",(0,i.jsx)(t.code,{children:"Iterator"})," looks like\nin assembly, you just need to know whether it allocates an object on the heap or not. And while Rust\nwill prioritize the fastest behavior it can, here are the rules for each memory type:"]})}function m(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return a}});var o=n(67294);let i={},r=o.createContext(i);function a(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(r.Provider,{value:t},e.children)}},50610:function(e){e.exports=JSON.parse('{"permalink":"/2019/02/summary","source":"@site/blog/2019-02-09-summary/index.mdx","title":"Allocations in Rust: Summary","description":"While there\'s a lot of interesting detail captured in this series, it\'s often helpful to have a","date":"2019-02-09T12:00:00.000Z","tags":[],"readingTime":1.095,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2019/02/summary","title":"Allocations in Rust: Summary","date":"2019-02-09T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1731204300000,"prevItem":{"title":"Making bread","permalink":"/2019/05/making-bread"},"nextItem":{"title":"Allocations in Rust: Compiler optimizations","permalink":"/2019/02/08/compiler-optimizations"}}')}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5168"],{75703:function(e,t,n){n.r(t),n.d(t,{assets:function(){return c},contentTitle:function(){return s},default:function(){return l},frontMatter:function(){return a},metadata:function(){return o},toc:function(){return u}});var o=n(99810),i=n(85893),r=n(50065);let a={slug:"2016/11/pca-audio-compression",title:"PCA audio compression",date:new Date("2016-11-01T12:00:00.000Z"),authors:["bspeice"],tags:[]},s=void 0,c={authorsImageUrls:[void 0]},u=[];function p(e){let t={p:"p",...(0,r.a)(),...e.components};return(0,i.jsx)(t.p,{children:"In which I apply Machine Learning techniques to Digital Signal Processing to astounding failure."})}function l(e={}){let{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},50065:function(e,t,n){n.d(t,{Z:function(){return s},a:function(){return a}});var o=n(67294);let i={},r=o.createContext(i);function a(e){let t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(r.Provider,{value:t},e.children)}},99810:function(e){e.exports=JSON.parse('{"permalink":"/2016/11/pca-audio-compression","source":"@site/blog/2016-11-01-PCA-audio-compression/index.mdx","title":"PCA audio compression","description":"In which I apply Machine Learning techniques to Digital Signal Processing to astounding failure.","date":"2016-11-01T12:00:00.000Z","tags":[],"readingTime":10.39,"hasTruncateMarker":true,"authors":[{"name":"Bradlee Speice","socials":{"github":"https://github.com/bspeice"},"key":"bspeice","page":null}],"frontMatter":{"slug":"2016/11/pca-audio-compression","title":"PCA audio compression","date":"2016-11-01T12:00:00.000Z","authors":["bspeice"],"tags":[]},"unlisted":false,"lastUpdatedAt":1730863976000,"prevItem":{"title":"Captain\'s Cookbook: Project setup","permalink":"/2018/01/captains-cookbook-part-1"},"nextItem":{"title":"A Rustic re-podcasting server","permalink":"/2016/10/rustic-repodcasting"}}')}}]);
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["5969"],{24066:function(e,t,n){n.r(t),n.d(t,{default:function(){return c}});var s=n(85893),u=n(11199);let c=()=>(0,s.jsx)(u.Z,{children:(0,s.jsx)("meta",{httpEquiv:"Refresh",content:"0; url='/atom.xml'"})})}}]);
-1
View File
@@ -1 +0,0 @@
"use strict";(self.webpackChunkspeice_io=self.webpackChunkspeice_io||[]).push([["8730"],{60522:function(e,n,c){c.d(n,{Z:function(){return i}});let i=c(31336)},47936:function(){}}]);

Some files were not shown because too many files have changed in this diff Show More