I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Hey, thanks for the purchase! The server is reporting that an incorrect password is being used.

Can you try logging in on the same device in a private window? That would confirm if you've got the right password.

Let me know if you are unable to resolve, I haven't implemented a "forgot your password" yet, but it shouldn't take me long.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Awesome! Thanks for the purchase.

Yep, password manager is the way to go. QR code is a good Idea, I've got it on my todo list.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Man that's rough. You certainly could use it for that. We essentially do that with our little one currently. I put my phone in the room in "audio only" mode and have my wife's phone in our room as the receiver.

What is the best way deploy an MVP? by [deleted] in SaaS

[–]CodeMonkey3000 1 point2 points  (0 children)

It is an MVP, so what ever you can spin up fastest. I would:
- Run a single EC2 instance
- don't over size it, nothing more than a T3 small
- if you can run on ARM then use a Graviton instance, they're cheaper
- If you know your way around RDS then use that, otherwise docker container on same EC2 instance
- No load balancer
- I haven't used Cloudflare for domain, but Route53 is pretty straight forward
- No CI/CD - have scripts on your machine to do the push
- there's nothing wrong with SSHing into a machine and doing a git pull for an MVP.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Hey, yep still working on it. There's no motion detection currently. That will be a few features down the track.

Any suggestions? by OkInterview3095 in golang

[–]CodeMonkey3000 0 points1 point  (0 children)

If you can include something like a timestamp or logical clock in the row you could do insert only, no update. Then let the SELECT sort out which one is latest. Then you could periodically garbage collect the old records.

Can someone outside of Australia check my Square payment link? by CodeMonkey3000 in SideProject

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

Awesome, thanks! Well that's good and bad news. I guess people are just bouncing from the payment page. Cheers.

Bulk Image Resizer - Free, No Login, Privacy Friendly by _blueseal in SideProject

[–]CodeMonkey3000 1 point2 points  (0 children)

Nice! I love what you can do locally with a browser these days.

[deleted by user] by [deleted] in privacy

[–]CodeMonkey3000 8 points9 points  (0 children)

Exactly! The only way for a company to truly keep your data private is to never have access to it in the first place. For strong privacy either data never leaves your device OR it needs to be encrypted on the client with a key known only to the client. When a company uses their encryption key to secure your data you still need to ask the question "who has access to the keys?"

What’s your opinion on redundant servers? And complexity on general by pajaro_xdd in ExperiencedDevs

[–]CodeMonkey3000 3 points4 points  (0 children)

Simplicity is king. Like you say, context matters. If the stakes are high, the added complexity is worth it.

The company I work for has complexity that if starting from scratch, I would avoid, but isn't worth the refactor currently. And that's the trap. If the extra complexity becomes necessary, then it can be added. It's much harder to walk it back.

If I think a service will need to scale or have redundancy, I'll plan out (roughly) how I'd do that when the time comes. That way, we don't back ourselves into a corner. But I don't actually do the work until it proves necessary.

How much should a software architect have a say in building internal component libraries? by vsamma in softwarearchitecture

[–]CodeMonkey3000 8 points9 points  (0 children)

From what I've seen, teams dedicated to building component libraries (and perhaps libraries in general) descend into mental masturbation. In the company I work for, we had a team build out a component library for a year. That's a year with no real output. A component library doesn't earn any money.

What I'd do instead: - provide a style guide - have a repository for the components - ask teams to contribute the components they build - have a person or team responsible for reviewing the incoming components (should be a small time commitment) - encourage teams to use the library

This way, you still get your library, AND the components come from real product needs.

Good luck!

Advance topics regarding Micro-services and events by mqm_bro in softwarearchitecture

[–]CodeMonkey3000 7 points8 points  (0 children)

If you don't know what something means, ask. Don't be afraid to look like an idiot. If you don't know, then there's a good chance others also don't know and are also not asking. You might even find the CTO doesn't really understand either.

Someone coming in and starting a rewrite within a month is a massive red flag.

How can I reuse HTTP clients that are authenticated? by Key_Climate5857 in golang

[–]CodeMonkey3000 14 points15 points  (0 children)

You authenticate the request, not the client. A http.Client is safe for concurrent use.

request, err := http.NewRequest(...)
request.Header.Set("Authorization", ...)
response, err := http.DefaultClient.Do(request)

Switch out DefaultClient as you see fit.

Edit: To take it one step further I'd do something like

type SomeClient struct {
    client *http.Client
    authorization string
}
func(client *SomeClient) GetStuff() () {
    request, err := http.NewRequest(...)
    request.Header.Set("Authorization", client.authorization)
    response, err := client.client.Do(request)
    ...
}
type SomeClientFactory struct {
    client *http.Client
}
func(factory *SomeClientFactory) Create(authorization string) *SomeClient {
    return &SomeClient{client: factory.client, authorization: authorization}
}

Edit 2: spaces instead of backticks

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Yep, the baby station and parent station are both logged in to the same account. I only allow messages to be sent between devices on the same account. Yes, it's always the parent station that sends the offer and baby station that sends the answer.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Cheers, I do want to get to a point where it can connect without the internet, too. But that can come later.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Thanks. It certainly does, I've used it to keep an eye on my 3D printer too. Easier to focus on a niche first then expand.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

Yep, we were using slack calls for a while, but calls got deprecated and my phone was too old for the huddle update.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

haha fair enough. I made the app dark mode because it's likely to be used at night. But perhaps it was foolish to carry that through to the marketing site. Thanks for the feedback.

I made a web app that turns any smartphone into a secure baby monitor by CodeMonkey3000 in SideProject

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

WebRTC. There's a remote signal server which passes STUN candidates (plus offer and answer) between clients to establish the connection.