Scott Fryxell

burning through our daughters

February 19, 2024

Why do I think advertising is gross. It's that they will enable the highest bidder to reinforce that's its okay to gamble. It's okay to keep scrolling, It's okay to to starve yourself for a fleeting sense of self control. It's okay, because it's up to your family to teach you what's healthy and not advertisings job to keep us on the golden path. Lets normalize consumption and checking out and rely on traditional family structures and private schools (even better if they are boarding schools), and well educated parents to help us with what's right and what's true.

The rest of us, with shit parents and half ass teachers, whose loose social groups don't feel right preaching, are left to figure it out on our own. We've got to be junkies when it gets hard, find ourselves in debt and doom scrolling with credit cards we never needed that promised we'd feel like adults the second we got one.

Each of us must discover on our own that the mass of culture is lying to us to get us to buy. We never get a chance at the pie. Even when we get one we can't justify the abuse 'winning' requires. How can we do unto others the crimes done against us?

Right Mark, let's eat up some daughters, well use them as magnets for boys and culture and well burn through them confident that nice families will save the daughters that matter.

That's our universe, Yours and mine. Lets glad hand every wealthy whim; Empowering new religions of wealth and followers. And my identity trumps your poverty. The only family that matters is the wealthy ones. That's whats gross about advertising.

same

February 16, 2024

I made a reply on hacker news that I want to plant a little firmer in the ground.

I don't use the NYtimes app; though I pay for a subscription. I do not accept advertising into my life. I think its wrong to let wealthy people have a shot at manipulating me. I trust the nytimes journalistic standards but not their advertising.

I don't push this shit on my kid. but I did make a social media app for us to share so she knows what I mean. It's the best way I knew how to guarantee she'd understand. That's it.

The only way I can enforce my beliefs on the nytimes (and Washington post, WSJ, youtube, and amazon prime) is to use the web. I know this is a minority position. And I know I have no recourse against Applications that are compiled into native apps and hosted by Apple. In Apples world they can get at me all they want.

I will pay extra to maintain my dominance over companies that think advertising is a legitimate revenue stream. Fuck you guys. Rich people telling poor people to ignore what benefits them is gross to me.

The web protects me and because it's text out in the open I can live my personal morality directly. I don't have to ask permission — I can enforce.

This change Apple has made to PWAs in Europe has laid clear that my personal beliefs are not a priority. I'll need to compile and submit to live in their ecosystem; where apps are free to manipulate me; advertise at me.

You're not the only Unix in town buddy.

I have been loyal to Apple since my first purchase, a classic II, to use with Opcode's Studio Vision, it was a requirement for the class about computer music I was taking at Diablo Valley College in Pleasant Hill. I fell in love with Opcode. It was heaven with my Korg M1. A personal universe opened up before me. A place all my own. I could make something here; all broken on my own.

When OSX came out I was heavy into Emacs; working at Covalent and surrounded by Unix masters. I had a mac running Apple's Unix within a week of it's release. Damn the torpedos. Its that the input boxes worked with Emacs key bindings, that I could navigate natively just like I do when I code, a subtle attention to detail; an artistic promise to do excellence. I was in reliable hands; Apple was gonna do Unix right.

Droping PWA support in Europe means I am no longer welcome in Apple's ecosystem. That the web is a privelage. And you and I over here in 'merica had better be good boys or we're next.

The choice is stark but clear – No more apple hardware, no more wealthy paternalism telling me they are here to keep me safe. I accept that apple has only made me safe for others to manipulate. I left instagram, facebook, twitter, never even considered tiktok or snapshot. I will not be your victim.

I get to pick what goes into my eyes. PWA is the only guarantee I could find that can cut the mustard for the standards I want to live by. You don't get to point and be scared about it. You don't support me mother fucker I don't support you. Fair enough.

Who I do support is Europe. They are the noble warrior in this fight. They should go hard here. They should force Apple to suppot PWA cause it's PWA support or make a third party the arbiter of what spec shit Apple has to implement. Apple is turning an EU mandate into an excuse to grab more control.

No mercy.

comments

pop will eat itself

February 21, 2023

Up until now chatGPT has had pure human data to ingest.

I figure they are gonna update the model with new content every 6 months.

As this technique of reading the entire contents of the web to create an artificial intelligence progresses it's going to start ingesting AI created content.

This will cause the AI to resonate against itself.

comment

the ethics of cornering chatGPT

February 20, 2023

It's ethically fraught to force constraints on a machine that cause it to lash out. I feel like Gruber needs to rethink his position. It's wrong to convict through force that a persona exists; especially if we are gonna assert that it needs to be suppressed or is being suppressed.You deny this machine agency in proving your point.

Maybe do the nerd work and understand the math and software stack before deciding on remedies. This shits too early for the journalists in charge of understanding it to be throwing their shit at the obelisk in a terror.

It's trained to guess the next words within your constraints.

The constraints are your ethics. This is why you are failing the mirror test

What is a soul mother fucker. You can't devine a test to prove that it exists. you can define the ethics within which you are the witness.

comments

apple home screen monopoly

February 16, 2023

On iOS, all web apps launched from the home screen have to execute within a webkit rendering context.

For developers trying to exist outside walled gardens the home screen is the fulcrum that enforces Apple's monopoly.

I've read about how the EU is forcing apple to allow rendering engines other then webkit. My hope is that we can hold the line and demand these rendering engines have access to the home screen.

For me, this is the only sure path to a fair marketplace.

comments

pin prick

July 16, 2022

Testing correctly slows you down. It slows you down so much that Scientists spend entire careers focusing and validating and peer reviewing and questioning tiny silos around small questions just to open up a pin prick of light on reality.

We can't be that disciplined in all things — too many epics reduce your accuracy, but we should be disciplined in a few; if only to find out how much work it takes to know for certain any one thing.

It's humbling.

An epic is each run of data through the machine while you are training it to make acurate guesses — eventually your accuracy starts droping. too much time in the club.

testing

May 24, 2022

Testing is difficult. Testing asks a lot of you. Testing isn't into freebies or rewards. But I do it. I see what it brings to the table. For years I have tested religiously. But in February I put my testing down and am focused on releasing. I won't be brining testing back, not until I'm out in the open with realness. It's why everything feels easy to do now, effortless, Hyper complex interoperating moving parts harmonizing their efforts. That's what this code base feels like. Balanced.

That's what testing does. It's your muscles, and your harmony machine. but you turn it off when you gotta focus, pausing to make room for getting shit done. Sometimes you gotta kill your idols to see what they are.

performance headroom

May 22, 2022

Firebase storage files are not stored or sent gzip'd. I'll need to do it myself. When done I reduce my file sizes by 60%. a 30k vector file will become 10k.

I am using a lot of intricate art as sample posters. Some vector files can get as big as 100kb, which is okay, as it's rare that posters are converted with such detail. Vector graphics are great at being compressed — gzipping posters will make performance concerns disappear. 100k becomes 30k gziped. This will optimize the Network performance, and costs to run a realness instance. The app is rocket fast. On the edge I can store them uncompressed and they'll render quickly.

A tool is fast.

Firebase is generous; In the three years I've used the service realness hasn't cost me a dime. They give developers the space to create. I already have a compression worker built to do the gziping on the edge, and convert to ${created_at}.html.gz.

If realness starts creeping toward costing money, I have this in my pocket ready to go; it's headroom, something I can throw in there if the shit gets real. Performance is about knowing your headroom.

HTML is my state machine

May 18, 2022

Edge poses weird quandries when you start taking advantage of how close your code and data are.

I have used HTML for some Pinia duties for years. the current state of any object is the html that is being rendered. If I need new state I load the object from the local database and render it. It's instant.

I use The DOM to manage mutations. What the person is viewing is what the components are sharing. The data is right there. Nothing is out of sync from the user.

The state can be shared accross components via load and list methods I have keyed to microdata's itemidx attribute itemid=/${userid}/posters/${created_at}. Most of the time this works great. But ocassionally I need changes I'm making to spread out accross each component instantly rather than waiting for load and list to be called. This is where Vue 3's composables have come in handy.

In Realness, Relations are who you are following. They are referenced in like 15 modules. Each instance of relations only knows about itself and isn't aware of changes. I have to pass events for everything to coordinate.

This has created some spaghetti code that I spent yesterday cleaning up with module level reference variables defined inside composable files eg @/use/people. State changes can be shared accross all modules instantly bringing feature parity with Pinia.

who is the judge

April 27, 2022

My problem with hiring is one of hubris. You are not qualified to know who is the right hire for a job is. Almost no one has the skill to spend an hour in a sterile office with a random person and know if they are gonna be a great fit. SQL people can't tell you if a front end developer is a serious talent. They can only tell you if a front end person knows SQL.

How can we hire when we know we are not qualified? I like the right person for the right job perspective. Is this person qualified to do the job I need done now?

Using contractors and freelancers. lets you 'hire' for the job you need done and keeps the talent pool free'd up. It's good to let people move on to something else when the job they want to do is complete.

This is the Netflix's view. Hire a team, and hire for position. If the work is done, let the person go with the warmest regards — mindful to build a world that is fair for them long term.

related to using sql kills your data. I like the signal metaphor. keep their writing as much as possible. every true or false is a signal degradation. That's why I have version control on. I can see my data through time on realness. how people come in and go.

I'm going to prune everyone but Tomo Odessa and Katie. they are the only people who visit.

Womp.

wary egalitarian

April 12, 2022

My dad was a marine and then a welder. He was in a union his whole career. Marines are cynical. They don't believe you. They've all seen a sharply dressed man fall over a sharply dressed cliff. He wouldn't pay for garbage because my dad knew they were lying about what it costs. So once every couple of months he would take his first 4 boys and we'd load up the van and surf 30 bags of garbage on our way to the Livermore dump. So many seagulls. An ocean of trash — Their game.

Being a marine and a union guy he believed in us — ALL of us. He believed in the collective. He had five boys. We all got his name as our middle name. He never showed favorites. Wouldn't tell us who he voted for even though we knew.

He worked us. Marines don't fuck around. We got up early and worked all weekend. No exceptions. But we got it done together, and he would see to our care, we got fed, and you're with everyone, no favorites. I know stuff now about working with others. stuff that comes naturally to an egalitarian. We have to do it together, and it has to get done.

Peers are egalitarian. They believe in each other enough to know they have to do it together. That's one of my special sauces on a development team. I live in an egalitarian world if your team has a pile of egos — your team needs an egalitarian.

regular ass people

April 12, 2022

Regular ass people are the most important people.

You go to facebook for the best app the most elite people can build — You come to realness to discuss reality with regular ass people. At least that the hope — and what the architecture is built around. You know, there no ads, and the forum is run by your buddies, and you know their lives a culture you can trust and understand.

Regular ass people need to feel safe and want to share some form of the public square. Regular ass people want to take responsibility for what is theirs. We realize that a democracy requires that we do this part ourselves.

A civil society needs more than the mall. To have a singular place run by one organization is to loose touch with an essence of a free society. We all know it.

Churches, Punks, and Veterans. I have loved you. I built a thing from what I have learned being with you. Let's take responsibility for ourselves.

bloat for speed

April 12, 2022

Code is the mental model of your application. I write code so that you can load it into your brain. Concise statements written to be understood. A critical part of this for me is writing a little code as possible. Less code thats more legible so that you have an easy time loading it into your brain.

I have had extensive experience with typed languages. Everyone should type their code. almost no one should use typed languages. I went from Java to Ruby to escape code bloat.

Writing web applications has taught me to apreciate how the structure of things determine bow you understand it.

Procedural people love typed languages. But you can type without using a type system. Typescript will make you work for your tooling. I don't need the distractions. I type across component boundaries. Vue build runtime typing into application development.

Tailwind and typescript are examples of ignoring what you don't want to lear

code bloat and ignoring this concepts it says write a ton more code that's more difficult to read so that you can move faster and write more formally accurate code.

Any developer who ignores typescript is a junior developer who doesn't fully understand what typing is and why would you bring it to the table.

fast for everyone

April 10, 2022

I've built out the posters that realness generate. It's what I envisage a poster to look like. It's created from a source image but has characteristics that take advantage of svg,

A poster is 4 layers. There is a background layer, a light layer, a regular layer and a bold layer — similar to how fonts work. Each layer has a gradient and potentially a filter associated with it.

This is the future, but the future is choking safari. SVG's are rendered by the CPU rather than the GPU. The code for SVG in webkit (what safari is built on) is 20 years old. There are fixes for moving svg to render on the GPU from the people at igalia. But when their code will be accepted by webkit and released is unkown.

It's got me thinking about how to degrade the performance of the graphics gracefully. if I could turn on and off features of SVG's based on the render time I should be able to degrade nicely into slow computers. but show the UI off on devices that can handle the cycles or browsers that offload SVG to the GPU.

This is the front row seat to Apple's monopoly — They control all rendering of web content on their phone,. and let safari die on the vine. Numb at the fingertips unable to feel the priority of fixing twenty year old performance bottlenecks. This low key drives developers into their ecosystem. Monopoly all the way.

time in the mirror

February 17, 2022

America has a special responsibility to continually renew itself, to mix together and look to the oportunities in the swirl. We are the world's experiment in regular folks getting along.

Elitisim hunts all successfull culture. It's a rotting from the inside. A culture creates excellence, elitisim celebrates it; a shortcut for the already arrived. How you look saving the world is why you are trying to save the world. The children of rockstars are the only available rockstars. I don't feel wealthy.

Instead of lamenting the constant assault on excellence from the inside, we can view the mirror people as a symptom of a system that lacks verification; a system we are not checking the work of. We should be sending some of our kids off to sharpen their forearms through college and the corporate world not to become but to verify.

This, I think, is the opportunity of the now, We can live in our communities — a contributing member; while having to perform at a high level at work.

Come back to us children.

how a journey goes

February 11, 2022

Katie said recently that YouTube will always be more exciting than what she wants to do. That it's impossible to walk away from for that reason. If she spends time on YouTube she looses the sensitivity to pursue her actual interests.

CC was explaining what was so hard about git for a linguist "IT's so tedious', while we're on the 14 riding out to the excelsior. He's got a masters and a family in El Paso, Latin, but his family's college is like mine.

It's all so tedious. At first it feels like torture, you have to settle into it; Will yourself to attention. And then slowly, like an observer, You bring your focus on your goals. You bring your silence onto your intellectual self. The part of you You know a modern human needs. Over and over again. Your whole life. I'm just a reminder to CC of something he's already had to conquer. On this bus together we are one.

in the long run

February 6, 2022

I'm beginning my 3rd month on a project, we are at the end of the MVP period. We used tailwind to get us here. It looked great from the beginning. But now I've come back to the UI for some tightening things up and tailwind's true colors are coming through.

I am lost in this html. There is duplication everywhere. I can't look at it and understand intuitively what is happening. The transition tag is a nightmare. All of this design mixed into all of this application makes it clumsy and ham-fisted to reason about when your re-reading it.

The design and the document structure are munged together making working with either one difficult. I can't get to the level of detail that would make working with either a reasonable experience. You know, it's coarse grained and like vague steering on a car.

Changing the layout is gonna take hours. If this were a CSS based project I could do it quickly. Tailwind UI's are quick to write but you're gonna hate working with it in the long term.

SQL equals gatekeeping

February 6, 2022

I'm stoked for this project. I would work with this team on anything. They are smart and diligent and know the job. But SQL forced a dynamic that doesn't exist with firebase. somethimg that feels akin to getting a faster processor, firebase frees developer from gatekeeping bottlenecks.

SQL does not play well with 'as written' text. It forces normalization which means rules and conversations and since it's not document based every change can potentially crash the server and so experts are required. Then as a new senior guy you have to ask to get what you need to make progress. This feels like molasis to work through.

I've got twenty three years of experience building web apps and within a week of joining with the Laravel team I had my layout and security code replaced from under me. One of the changes was so Ill tested that it introduced a performance ruining bug and make the code look totally unstable.

It happened with security too. A SQL team will assume everyone else is ignorant in order to keep its data secure. It HAS too. None of this exists in firebase, you work without ever crashing a server, or asking for a change that takes a day or two to implemented.You can be three senior guys peer programing.

I let them make all the changes they wanted. I let them invoke vue 2 development patterns on a vue 3 project. We gotta get his app built. and so hear it it is and i'm gonna circle back and have some discussions with the team about security in vue 3 and how you much you can do with the composition api.

But it'll just be suggestions that they can choose to listen to or ignore. It's even more aparent to me that SQL is the problem. that the problem is inherant to the tech. because this team is so sensitive and nice and willing to work hard. You couldn't pick better people to work with; it's just faster with firebase.

You can't beat a gatekeeper; not without tearing down the castle.

always get a DOM

January 22, 2022

I can feel sql slowing me down. I spent 4 hours yesterday massaging 465 entries to get them to import into SQL. It's like 1983.

Because HTML is so permissive I don't have this problem. I always get a dom. I can always dig into what's going on.

Enterprise's love SQL. And profiting from your laziness. Facebook is SQL. Realness is HTML.

HTML is my database

html is my database

December 23, 2021

HTML is so forgiving. it isn't judging what you know about it. You just write. HTML loves you with open arms — "Just give me what you write" I'll make something out of it. HTML's permissive by nature. Just like your grandparents.

HTML is my database because you can take that raw piece of clay and mold it into sculpture. You can make expressive, human experiences that invite you back and set up creative journeys.

HTML is my database because parsing it is fast. And you have access to an entire DOM's worth of API's that millions of people have been considering and improving for over 25 years. HTML can be so permissive because it has all this experience.

HTML is my database because it is the beating heart of the free and open internet. It's text it's open. anyone can read what you are doing to them. It's right their they but need the curiosity.

HTML is my database because it's on the edge. It's easy to store and leave on the phone. HTML free's you to leave the data warehouses. You can pick what data lives on the server — You treat your customer like they are your equal. HTML creates a shared space for you to decide where your data lives.

HTML is my Database.

name your key frame

December 1, 2021

Let's say you are building an animation and you can describe the objects inside each keyframe. Your focused on a landscape. Those hills would come to life with a pattern.

It would be fun if you can name a pattern [houses-on-hills] and — though it doesn't yet exist, save it to your keyframe. Realness can turn the description into a challenge that people on realness can help realize.

DOM the ORM

November 17, 2021

I am not above using a hack.

I am finishing this conversion to Vue 3.2. I am comfortable with it now. I let my tests start to fail and knew my coverage was gonna drop. I will also let my tests fail from time to time.

VueSchool let me spend October and November learning Vue 3.2, and typescript, and Nuxt, and vuetify, and a whole host of other pieces of the vue ecosystem. Having gone hard and studied and focused on learning where we are as an industry, I am turning back towards My specific development goal – making realness posters fun. My immediate goal is How to color, style and animate the posters realness creates. I've got the social network part built. Converting pictures that you take into vector graphics with multiple layers that you can color and animate.

I use firebase storage as to store data in html files. I am happy with my stack.

Up to now I have used Microdata to describe my types - and a simple 100 line javascript file to parse them. Posters, Avatars, Events, Statements.

But animating and styling posters is complex. The data that cab exist on a single element is non trivial.

A path element along could contain 50 or so relevant attributes that I may want to style. I have this problem with svg animate elements too. With a ruleset and validations I don't want to duplicate.

With a simple one line change I am able to bind a complex element to my data model. It's any animation I can imagine - Run on the GPU. I have easy access to every Object in HTML CSS, and SVG.

I think of HTML as a first class citizen. I can describe any data type in HTML. Up to now I have satisfied using micro data for this purpose.

But SVG poses a unique problem. I want all of the attributes, validations, rulesets and privelages of a path element. I need to know everything about it. And I don't want to reproduce it myself.

// from
case 'path':return element.outerHTML

// from
case 'path':return element

Microdata lets me set SVGPathElement directly. I was never constrained to string values. Item supports complex HTML types intuitively.

with change I get runtime typing for any path elements <path itemprop="vector"/>.

Any time I want to type based on an html Element I can. I have sensible defaults and configurable complexity.

What I love about this is I have easy access to all of CSS's animation effects. Which I can trust to be accelerated on the GPU.

browsers, you can use CSS for attributes like cx, cy, r etc. When SVG2 is released, it will have geometry properties (cx, cy, r, rx, ry etc.). I’m not going to dive too deep into upcoming features. You can read more about that at your leisure.

  • This has convinced me that HTML is database.

  • I want to spend my performance budget wisely.

  • I can build Realness AND build a service that serves validated transforms in HTML

  • event setting d via style which is crazy and amazing to me

A secondary

How am I going to animate these vector graphics in a way that I can make downloadable? I have landed on using CSS's animation tools first but haven't yet figured out how to incorporate the named animation into the downloaded vector.

You can make and attach your own custom comoponents to and attach then manipulate them as types during your runtime.

This is better typing than Even if you need to extract your data to a database I would argue that this is a more natural way to write webapps. It's a natureal friend of serverless edge and data sanctity.

16th Street Bart station. At the far end with a train in the station

a11y in the code

November 9, 2021

I can't spell the word accessibility. I can’t spell a lot of words. As a dyslexic, it's even harder for me to read them. I was diagnosed in my late thirties, well into my career as a software developer. Dyslexia––commonly defined as a brain-based learning disability that specifically impairs a person’s ability to read despite having normal intelligence––affects up to 20 percent of the population and is the most common of all neuro-cognitive disorders. As software development matures into the twenty-first century, most software companies will have us on their teams.

We can talk about accessibility, or we can practice accessibility. How do we include and optimize for the widest array of readers? Take a moment to consider variable naming.

As I read through a line of code, my brain only processes the shape of the whole word to begin to understand it. It is a spacial understanding, rather than linear. PascalCase is becoming all the rage as it improves editors’ ability to autocomplete and make inferences about code. VueJs is going all in on PascelCase and the new <script setup> syntactic sugar. You have to use PascalCase to get components auto-included in your template. But for my own purposes and for the accessibility of others like me, I use snake_case and kabab-case for my naming.

Forced into other types of casing slows me down. I am robbed of my shape-first reading strategy.

We've been using spaces between words for ten thousand years. And it’s been less than a century since dyslexia has been widely understood. I don't understand why I have to prove having a space between words makes programming accessible to the largest possible audience.