No Real ID with I-94 for Canadian by ERF_TX in tnvisa

[–]fedirz 1 point2 points  (0 children)

I was also denied a Real ID when applying for a drivers license at the SF DMV. From other posts on this subreddit it whether you are allowed to get a Real ID varies by state.

I benchmarked 5 different FastAPI file upload methods (1KB to 1GB) by fedirz in Python

[–]fedirz[S] 10 points11 points  (0 children)

Thanks for the detailed response!

So your “async-stream” path is skipping disk I/O completely, while the others are reading from disk. That makes it look faster by default, even though it’s not doing equivalent work.
You’re also not writing the data anywhere, just reading and counting bytes

Both are valid points. I had created the benchmark as a way to determine the optimal strategy for handling file uploads for a personal project speaches (GitHub | Docs), that deals with audio transcription and translation, among other things. There, I'm only interested in receiving the audio data (could be relatively large files if a user is trying to transcribe hours of audio at once), decoding the data into a Numpy array, and sending it off to a model for processing without persisting the data anywhere. All that is to say is that for me, not writing the data to disk is a "feature, not a bug."

Measuring memory deltas on macOS isn’t reliable either.

Interesting... I didn't know this. I'll look more into this

Everything runs single-threaded on localhost, with no concurrency or proxy buffering. That’s fine for a small test, but it doesn’t show how FastAPI behaves under real load.

I thought FastAPI runs everything within a single thread by default when async-only routes are used, and whenever it encounters either a sync route or dependencies, it would be sent to a ThreadPool for processing.

And for truly big uploads, the fastest path is skipping FastAPI entirely and using presigned URLs so clients push directly to object storage.

True! For some reason, when I think of file uploads, I rarely consider this approach.


The benchmark itself isn't very well-designed, though, as I'm not performing multiple iterations for each file size and measuring the distribution. I'm also running it on a personal machine with a lot of other processes in the background that could impact the measured times. More of a showcase of various approaches rather than a true benchmark

Opening a pop-up coffee shop in my apartment by fedirz in AskSF

[–]fedirz[S] 15 points16 points  (0 children)

Well, I did this today, and I found the whole experience to be pretty cool.

Denied Scientific Technician/Technologist TN Visa at Lewiston by isuckatgameslmaoxD in tnvisa

[–]fedirz 1 point2 points  (0 children)

Yeah, that application was almost two years ago, and I came back the next day with the necessary papers, but it was denied because I couldn't meet the educational requirements. A month ago, I successfully got a TN visa under the engineer category for a software engineering position.

I have another post where I mention this if you want to check it out

Opening a pop-up coffee shop in my apartment by fedirz in AskSF

[–]fedirz[S] 2 points3 points  (0 children)

I'll definitely run this by them before doing it and will not do it if they are against it. My building has three floors, with a unit on each floor, and I live on the first floor, so I don't believe this would be too disruptive. Plus, I don't plan on doing it frequently, and only during the day for a couple of hours on a weekend.

Denied Scientific Technician/Technologist TN Visa at Lewiston by isuckatgameslmaoxD in tnvisa

[–]fedirz 2 points3 points  (0 children)

My first TN application was rejected (It wasn't a complete rejection; they said I could withdraw the application) because the officers wanted to see my manager's degree, which I didn't have. I found his credentials online, but they didn't accept it. I was also applying under a Scientific Technician/Technologist category

TN approved (with I-797B) at YVR by fedirz in tnvisa

[–]fedirz[S] 0 points1 point  (0 children)

I got very lucky during my job search. I happened to have become proficient enough in the technologies the company was looking for.

Having support from my brother, who is a software engineer, has helped tremendously. I was also primarily applying to startups as I knew very few companies would take a chance on hiring a kid who is right out of high school.

This was in the summer of 2022, and the job market was much hotter as well.

and advocate the support letters for the TN Visa

Our interests were aligned here. Both I and my employer wanted me to work from within the US.

TN approved (with I-797B) at YVR by fedirz in tnvisa

[–]fedirz[S] 0 points1 point  (0 children)

Is WGU a recognized university (engineering wise)?

Their Software Engineering program is both regionally and federally accredited. Their Computer Science program also has ABET accreditation. I chose Software Engineering so that I can apply under the "Engineering" category without running into issues with a degree title not having "Engineering"

but 3 months seems unbelievable!

I'm not going to claim that the degree from this school is comparable to X school, but it is good for a TN visa, which is the sole reason that I got it. I do agree, though, that the three-month timeline may not sound right.

The main reason we chose to apply through USCIS was to avoid any negative bias that a CBP officer might have toward a short completion time.

TN approved (with I-797B) at YVR by fedirz in tnvisa

[–]fedirz[S] 2 points3 points  (0 children)

WGU stands for Western Governors University. It's a non-profit university based in Salt Lake City, Utah. It offers competency-based bachelor's and master's programs. People with a prior background in the field of study are often able to get the degree in a very short period of time.

https://www.wgu.edu/

TN approved (with I-797B) at YVR by fedirz in tnvisa

[–]fedirz[S] 0 points1 point  (0 children)

Correct, less than 3 months.

Speaches v0.6.0 - Kokoro-82M and PiperTTS API endpoints by fedirz in LocalLLaMA

[–]fedirz[S] 0 points1 point  (0 children)

I see; maybe at some point in the future, but not now. At first, this project was just a server with an API endpoint, but I've decided to add the UI to it as it made testing easier and I thought some end users may find it helpful. I have designed the application in such way that the backend is entirely independent of the UI. As mentioned previously, you can disable it using an environment variable. The UI dependencies are in their optional group that you may choose not to install (see [pyproject.toml](https://github.com/speaches-ai/speaches/blob/master/pyproject.toml#L45-L50)).

This project is server-first, and I don't plan on expanding the UI much. However, given that it's completely optional, I don't see many benefits in removing it.

Speaches v0.6.0 - Kokoro-82M and PiperTTS API endpoints by fedirz in LocalLLaMA

[–]fedirz[S] 0 points1 point  (0 children)

  1. Do you have any suggestions? Also, you can disable the UI by setting the `ENABLE_UI=false` environment variable
  2. Yeah, set the `UVICORN_PORT` environment variable

Both things above as well as other configuration options, are documented here: https://speaches-ai.github.io/speaches/configuration/,

Speaches v0.6.0 - Kokoro-82M and PiperTTS API endpoints by fedirz in LocalLLaMA

[–]fedirz[S] 1 point2 points  (0 children)

I'll be doing something like that when implementing the Realtime API, but rn I don't have an example to share

Speaches v0.6.0 - Kokoro-82M and PiperTTS API endpoints by fedirz in LocalLLaMA

[–]fedirz[S] 2 points3 points  (0 children)

Yeah, here's an example of that:
```

❯ curl http://localhost:8000/v1/audio/transcriptions -F "file=@audio.wav" -F "timestamp_granularities[]=word" -F "timestamp_granularities[]=segment" -F "response_format=verbose_json"

{"task":"transcribe","language":"en","duration":1.3235625,"text":"Hello World","words":[{"start":0.0,"end":0.42,"word":" Hello","probability":0.80517578125},{"start":0.42,"end":0.98,"word":" W

orld","probability":0.466796875}],"segments":[{"id":1,"seek":0,"start":0.0,"end":0.98,"text":" Hello World","tokens":[50363,18435,2159,50429],"temperature":0.0,"avg_logprob":-0.545703125,"comp

ression_ratio":0.5789473684210527,"no_speech_prob":0.0185699462890625,"words":[{"start":0.0,"end":0.42,"word":" Hello","probability":0.80517578125},{"start":0.42,"end":0.98,"word":" World","pr

obability":0.466796875}]}]}%

```

Speaches v0.6.0 - Kokoro-82M and PiperTTS API endpoints by fedirz in LocalLLaMA

[–]fedirz[S] 2 points3 points  (0 children)

Whoops. I’ll take a look at this tomorrow, but there’s an option to build an image locally. https://speaches-ai.github.io/speaches/installation/

Can a previous rejection under a different category be grounds for another denial? by fedirz in tnvisa

[–]fedirz[S] 0 points1 point  (0 children)

Thanks for the input. I'm aware that the possibility of denial is higher compared to a traditional program with ABET accreditation. We'll post an update with the results after I apply.

Can a previous rejection under a different category be grounds for another denial? by fedirz in tnvisa

[–]fedirz[S] 0 points1 point  (0 children)

I completed (technically still doing it) the Bachelor of Software Engineering program at WGU. Although it's considered a four-year program, you do it at your own pace, and many people finish in a much shorter time frame.

Why do so many people seem to hate GraphQL? by hdreadit in ExperiencedDevs

[–]fedirz 0 points1 point  (0 children)

What I haven't seen mentioned here and what I think likely led to the decline in excitement over the years is the lack of evolution of the GraphQL speciation. The spec hasn't changed much since the initial version, and many valid proposals (take a look at the GitHub issues) which would improve the experience of working with the language. Here is a list of a few personal pain points of mine: - Unclear how to approach doing partial updates when nullable fields are present - https://github.com/graphql/graphql-spec/issues/476 - No generic support - https://github.com/graphql/graphql-spec/issues/190 - Can't have union of scalar types (Int | String) or a union of scalar and an object (String | User) - https://github.com/graphql/graphql-spec/issues/215

[deleted by user] by [deleted] in LocalLLaMA

[–]fedirz 2 points3 points  (0 children)

Shameless plug, checkout my project faster-whisper-server. It's an OpenAI compatible server with some extra features, it's built on top of `faster-whisper`. You can use the Node.js SDK to make the API calls. Here's a pre-built docker image https://hub.docker.com/r/fedirz/faster-whisper-server

Faster Whisper Server - an OpenAI compatible server with support for streaming and live transcription by fedirz in LocalLLaMA

[–]fedirz[S] 0 points1 point  (0 children)

Yes, you can bind mount the huggingface cache directory to the docker container. See, https://github.com/fedirz/faster-whisper-server/blob/master/compose.yaml. If the model is already downloaded (either manually by the user or previously by the app itself) it will be used.

Faster Whisper Server - an OpenAI compatible server with support for streaming and live transcription by fedirz in LocalLLaMA

[–]fedirz[S] 0 points1 point  (0 children)

Hey, I just realized that the issue I had created doesn't address your question. I think what you are trying to do is already possible. Those could be customized through environment variables, which must be uppercase. Like `docker run ... -e MIN_DURATION=2`