New project of my son
Today my son launched his first project sidejob.ch - as a student you can register and then you will see matching sidejobs for your profile.
Super proud of him! He’s 17 years and he’s building it with a friend from school.
Today my son launched his first project sidejob.ch - as a student you can register and then you will see matching sidejobs for your profile.
Super proud of him! He’s 17 years and he’s building it with a friend from school.
Every time I change my wifi at home my HP color laser 150nw stops working and I need to spend more than 1 hour finding the right docs on the internet.
Here’s what I found is working:
12345678
is tha password or that it prints the password when pressing the green down button for 20s - both were not true for me) - you need to do the reset againYes, it seems like HP did a real quality product here.
Not!
Early 2022 I started weegee - the biggest flat search in Switzerland. I’m still operating it but shifted my focus to a new startup:
backl.io - a backlink builder for startups
I’m having two products which build upon eachother:
My wife Irene started an offer “Hilfe im Alltag”, where she focusses on people overwhelmed with their household who need help and support in certain areas of everyday life:
Her region is restricted to the area of Bülach/Rafzerfeld.
She helps people to get back into a well working household where everything is tidy and clean and to regain confidence in their own abilities.
Link: irenehilft.ch
ChatGPT’s UI (and most of the 3rd party tools) have streaming output. This is not just a gimmick but follows the way LLMs generate the output: word for word.
So you usually also want to output to the user: word for word.
Turns out this is very simple to achieve.
My first attempt was using web sockets - which turned out to be unstable and needs lots of overhead. In came Ilias, who created a ChatGPT to Telegram Bot that streams responses to users. He was like: »man, why are you using sockets for this!?« And enlightened me that the same thing is possible with good ol’ http requests.
Plus: This method uses zero additional dependencies.
Hope that I’ve wet your appetite.
So enough of those introductory bubbles, let’s talk tech.
The whole idea is that the frontend (react) POST
s a JSON to backend (flask) which then “streams” the data back by outputting line by line, leaving the HTTP connection open until all is done.
ChatGPT is great, no question. But when I tried using the API, I found the speed of the response lacking.
When using OpenAIs web frontend I saw that the answer is appearing word for word.
I thought: »I might be able to stream the chatGPT api response in realtime. This way the user has immediate feedback without needing to wait for 20 seconds«.
And - lo and behold - this is possible!
Update 2023-10: Turns out there is a much simpler way to achieve the same without websockets, without needing to run gunicorn with only one worker, patching openai etc: read here.
What we’re building today:
This howto covers:
<input type="file" multiple />
componentI’m migrating my frontend away from Flask to next.js, reducing my flask app to only backend apis.
This blogpost explains how a next.js app authenticates against flask backend using flask-login.
It assumes that you have in your flask backend:
auth/sign-in
which…login_user
With weegee.ch I run a handful crawlers. At the beginning I didn’t have problems with crawling protection but over time my little project got more successful (I’m on the first page of Google for the relevant search queries since a few weeks) so I see more and more websites blocking me.
I went for Brightdata as they offer a good “pay as you use” model which works well for smaller sites like mine (and don’t require to pay a minimal price per month).
I couldn’t find a documentation which covers the whole install process, that’s why I’m writing this post.
During the past few months I’ve been busy creating my first side project. This week, I’ve reached a milestone - both Web and mobile apps are now available, may I present to you:
weegee.ch - the biggest shared flat search in Switzerland. In Switzerland, shared flats are called WGs (for WohnGemeinschaft), pronounced “weegee”, that’s where the domain name comes from.
It’s available for web, iOS and android.
The data is coming from crawling shared flats from wgzimmer, flatfox, urbanhome, ronorp and tutti - creating a shared flat search which is twice as big as any of the other portals!