```
pub fn render_placeholder(&self, frame_id: FrameId) -> Result<FrameBuffer, String> {
let (width, height) = self.viewport_css;
let len = (width as usize)
.checked_mul(height as usize)
.and_then(|px| px.checked_mul(4))
.ok_or_else(|| "viewport size overflow".to_string())?;
if len > MAX_FRAME_BYTES {
return Err(format!(
"requested frame buffer too large: {width}x{height} => {len} bytes"
));
}
// Deterministic per-frame fill color to help catch cross-talk in tests/debugging.
let id = frame_id.0;
let url_hash = match self.navigation.as_ref() {
Some(IframeNavigation::Url(url)) => Self::url_hash(url),
Some(IframeNavigation::AboutBlank) => Self::url_hash("about:blank"),
Some(IframeNavigation::Srcdoc { content_hash }) => {
let folded = (*content_hash as u32) ^ ((*content_hash >> 32) as u32);
Self::url_hash("about:srcdoc") ^ folded
}
None => 0,
};
let r = (id as u8) ^ (url_hash as u8);
let g = ((id >> 8) as u8) ^ ((url_hash >> 8) as u8);
let b = ((id >> 16) as u8) ^ ((url_hash >> 16) as u8);
let a = 0xFF;
let mut rgba8 = vec![0u8; len];
for px in rgba8.chunks_exact_mut(4) {
px[0] = r;
px[1] = g;
px[2] = b;
px[3] = a;
}
Ok(FrameBuffer {
width,
height,
rgba8,
})
}
To be fair, that was always the case when working with external contractors. And if agentic AI companies can capture that market, then that's still a pretty massive opportunity.
I tried the app. I love that you’re tackling this and I’m rooting for you. I’ll tell you about myself, my experience, and my thoughts.
I’m currently learning French as a beginner and I’ve learned other languages in the past. I’ve trued Duolingo as well as italki and frantasic as well as just ChatGPT. I am very familiar with Anki and I think it’s critical to make your own flashcards by choosing images and sounds. I don’t want auto cards.
My experience with Issen:
* it’s frustrating when the conversation partner doesn’t remember what it just said - it means I can’t get a chance to ask que c’est que ça veut dire.
* it’s frustrating (just like with ChatGPT) that the conversation partner tends to interrupt and jump in while I’m thinking. I think many learners speak slowly and spend extra time thinking. ChatGPT allows you to hold the glowing circle and it won’t interrupt while you do.
I’d love to see the chat bubbles have more in depth features like:
* much clearer indicator of hover or click words for translation, and more features like example sentences or click to pronounce
* an option to ask for an explanation of some or all the text
* for my own text I’d love to see feedback with more UI native elements about how accurately I pronounced each word and any grammatical mistakes I made. The text summary is a great start
I found myself ignoring the features of the chat bubbles and only in writing this feedback did I notice them! They could maybe use more contrast and clear UI emphasis. Duolingo does a good job of making their UI very clear with this kind of feedback.
I think it’s important to build features that augment the app to work around LLM limitations. My guess is a lot of the settings change the prompt and that’s great but I think it leaves too much room for hallucinations to nosedive the experience.
I’d also love to see some way to have a hold to talk or something similar.
I’m very conscious at this point about the cost of these lessons and I have a hard time finding the price. Frantastic is absurdly expensive and it made me switch to italki where human conversation is literally cheaper. Without differentiating more from ChatGPT I would have a hard time justifying an additional subscription to my wife!
Edit: I found the pricing and it’s a tough sell! ChatGPT is cheaper.
I think you can both differentiate further from ChatGPT and keep cost down. I’d recommend to try to get more value out of each API call, so learners are more aligned with the cost per interaction- like make it so I’m enticed to spend a little longer reviewing the chat bubbles. My suggestions are mostly about how I want more engagement with each utterance anyway. Right now it’s very tempting to just keep making more and more utterances and IMHO that drives up costs while being frustrating for me.
Congrats! I'm happy to suggest some ideas. This is near and dear to me so I've got a lot to say lol.
I think when beginning French the most helpful services for beginners relate to pronunciation and language comprehension because that is the "secret trick". Seriously, I recommend giving pronunciation/comprehension a lot of attention at first. There are only like 10-20 new sounds (plenty of resources to find the list if you search IPA French https://www.frenchcourses-paris.com/french-lessons-in-paris/... find one that clicks for you) so don't worry that it's too much even though I know it's hard and looks cryptic at first. I think most people end up mis-learning to read French like it's funny English then they will never have a good experience and certainly won't be able to have a conversation. I had the same experience with Chinese where if you don't learn tones at the start then it will always be miserable. For example in Chinese you can ask for dumplings and people literally just hear you saying sleep unless you add the right inflection (like the way we make a statement a question vs a demand).
In terms of the exact resources for pronunciation - The Fluent Forever guy has a good anki deck for $12 (I bought it and I'd recommend it - just have patience and know he tends to over explain IMHO but the cards are linked in there and they're great) https://blog.fluent-forever.com/chapter3/ and I'd recommend finding your own favorite YouTube videos to explain how to pronounce the French R and nasal sounds. I would try watching some YouTube in French just to wet your beak. Know that it's frustrating to not yet have good comprehension but keep at pronunciation/comprehension and you'll get there.
I recommend making Anki cards for like the top 100 and then the top 500 words, and include images and sounds (Anki strengths).
I'd suggest to have a goal of understanding some rewarding things like children's T.V. (Bob l'éponge) or language learning YouTube (Easy French) - really fun. Then after you master some early words and feel like you have a "French ear" jump in and do some "early reader" kinds of book (https://www.barnesandnoble.com/w/short-stories-in-french-for...) because that will be really rewarding and reenforcing.
I also recommend jumping in to italki probably earlier than you feel comfortable (or this app, as it continues to improve!) and doing some community conversations in just an unstructured way. Just be ready to try a couple people and find someone you like. If you can travel to France I think that is probably best, too! You'll be very happy that you've got a good "R" at this point.
I think at that point you're ready to look at the A1/A2/B1/B2 test content and learn it on your own pretty easily or work with a structured tutor. It should be chill and not too challenging at that point.
IMHO the aesthetic cons will seem petty when you're waiting an hour for an ambulance because the EMTs are late to work because of their four hour commute.
We have no housing oversite on these councils and even in Sunnyvale where we're talking about voluntarily adding 7k housing units on El Camino, the council's primary concern is the impact on home owners' views. I sat in the council planning meeting and it was all about how to make the buildings tolerable to the council - who are home owners.
To my knowledge I was the only renter there. They want to add 400 units along a mostly empty 1 mile stretch (mostly car dealerships), to keep the appearance minimal. But, that means that mile can't support walkable restaurants and those 400 people will be getting in their car on crowded El Camino to do anything.
If they would just build dense enough to support walkability and to have enough riders for transit efficiency to improve! Their compromises pick the worst of both worlds.
And then in Cupertino, the mayor points at Palo Alto and says "why should we build if they aren't?" Darcy Paul literally said this to me at a vallco meeting.
From what I see, I think the city councils say one thing about sb 827 but really they'd love to have the responsibility be taken out of their hands. They just aren't capable of solving their prisoners dilemma.
The whole point is that city councils today have complete discretion over the allocation of building permits. Of course city councils won't like a rule that limits their power.
Software developers are rarely happy when security people make it harder to ssh into prod machines, but sometimes it's better for some powers to be restricted and more carefully applied.
Also I'm just curious, how many of the mtv city council are renters and how many are home owners?
I'm excited that you're thinking about solutions to the housing crisis :).
Unfortunately, prop 13 is basically untouchable - though it is a root cause of misaligned incentives for homeowners. Walk down my street in Sunnyvale, and 4/5 people are elderly and can't really afford their home without prop 13.
Regional government is just what sb 828, which adds teeth to the state housing planning (and sort of sb 827, which sets zoning state wide), will do!
I don't think breaking up CA would solve our jurisdictional issues (E.G. Sunnyvale can't get BART if Palo Alto won't accept it, or Cupertino can't get VTA investment if San Jose controls it) or change the local home owner politics in the Bay Area.
I think it's pretty likely that we'll see 827 and 828 whittled down to nothing in the senate, but it doesn't mean we should give up. The tide is turning. Whether that happens fast enough to keep our cities viable depends on our participation.
I would be against zoning state-wide. I can go with regional, but not state-wide. That's overreach and unnecessary in most of the surface area of the state.
It's important to distinguish primary infrastructure from the secondary infrastructure that is built on top of it. Housing, transit, energy, water & waste water, and communications are the primary infrastructures (made of networks like roads and pipes, and the services on top of the networks, like buses and water) on top of which we provide secondary services, like healthcare and schools.
In the bay area, we have good city planning for our primary infrastructure besides transit and housing. For instance, Sunnyvale owns its wastewater treatment plant and is prudently investing in it. Housing has no real planning, except for city councils (who benefit from a housing shortage) approving projects. Transit is a derived need that stems from our housing inbalance among other things.
If transit isn't working, ambulances can't get around and children can't get to school. If water isn't working, we can't operate hospitals. This is why we distinguish primary and secondary infrastructure as layers of abstraction.
Not to say that secondary infrastructure isn't important, but it doesn't have as much public sunk cost investment in things like the digging the networks of tunnels and such, so secondary infrastructure is easier to fix in a shorter time span.
I think this article is spot on.
I was struck when this Geneva city planner acknowledged that they have to fight the nimby movement to keep their city's infrastructure balanced: https://www.youtube.com/watch?v=IUfwIPzh_MM (from an urban infrastructure planning course on Coursera). We need someone this objective managing our housing infrastructure at least across the whole bay area.
If you listen to the Cupertino mayor, everything is fine as it is. According to a recent Better Cupertion Q&A with the mayor and with city councilman, Apple isn't really adding any new employees with their new headquarters. The cities are the ones who keep adding office space and turning away housing! Their denial is so upsetting, especially when you inevitably find that the people in charge are homeowners.
We need to stop letting the foxes run the hen house!
I've started going to city meetings in Cupertino and Sunnyvale, and I agree the only solution is top down.
I want the newly available Cupertion Vallco site to be full of housing, but I've resigned myself to the fact that Cupertino just isn't going to do it. The mayor doesn't want it, and the home owners don't want it. I wouldn't be surprised if it ends up with more office space than housing.
In Cupertino, Palo Alto, etc. housing is currently controlled by local nimby interests. We do have a state oversite process: https://abag.ca.gov/planning/housingneeds/. CA knows we're not doing the right thing, here and in the rest of the state. Check out the statewide housing assessment: http://www.hcd.ca.gov/policy-research/plans-reports/index.sh.... It shows the picture clearly. We're like a person driving a car with their feet - we're just doing something dumb. We need to get around the political inertia to change our current approach.
Looking around for what we can literally do as citizens, I found our state senator had an open house last week, but I missed it with a cold. So, show up and ask for more housing and ask him to get sb 827 and 828 passed! If you're local, follow his schedule at http://sd13.senate.ca.gov/sign-e-notices-and-email-updates and show up with me!
replying to myself: I just sat in a Sunnyvale El Camino Real planning meeting. Sunnyvale is adding substantial capacity on El Camino, about 7000 additional units in a much denser style, like what we need in the rest of the bay. So, We can do this in the bay! It's not a question when, but of how long. The sooner you get involved, the sooner more housing projects get started!
I had such a disappointing experience with Triplebyte. I take their automated test and everything is hunkydory. After that they gave me a very ambiguous technical interview live-coding session without an interviewer. It seemed like an unreleased feature or a trial a/b test variant. Even now I go back and they've removed every reference to a "programming challenge"!
Anyway, the problem involved writing a tree generation/traversal along with a little equation parser and a lot of string parsing (I think, at least). I was really uncomfortable because while it said "we will run this code" I didn't know what their expectations where (In what environment are they going to run the code? Is underscore ok? They said "you can't use built in eval" so do they really want me to write my own eval? Do they care if I look on stackoverflow for string parsing stuff?). I only had an hour for a difficult problem and I spent most of the time wondering what they really wanted and stressing out about little details that wouldn't consume ten seconds of thought on the job.
I've interviewed a lot and I'm pretty confident from a lot of experience whiteboarding code or typing up an answer on the spot in interviews, so this was very frustrating and I found it to be disrespectful of my time.
What is `FrameState::render_placeholder`?
``` pub fn render_placeholder(&self, frame_id: FrameId) -> Result<FrameBuffer, String> { let (width, height) = self.viewport_css; let len = (width as usize) .checked_mul(height as usize) .and_then(|px| px.checked_mul(4)) .ok_or_else(|| "viewport size overflow".to_string())?;
} ```What is it doing in these diffs?
https://github.com/wilsonzlin/fastrender/commit/f4a0974594e3...
I'd be really curious to see the amount of work/rework over time, and the token/time cost for each additional actual completed test case.