Akash Manohar

Akash Manohar

@definerun.com

I build apps with Ruby on Rails, AWS, Python and pretty much anything to get the job done πŸ˜€ https://define.run

62 followers102 following117 posts

Cheap and supafast html-to-png !!! The template is HTML + tailwindcss + liquid variables Create template and input liquid variables via url. New graph. BOOM! More demos coming.

Akash Manohar reposted

What is the smallest and most simple Ruby program you can think of which has these properties? 1) It must not write to any I/O streams (including stdout) 2) It must have two possible end states and randomly choose between them on each run. 3) The end state of each run must be externally observable.

View full thread

Update: App was approved on 7th Jan 2025. I spent a week on some improvements and submitted an update to the AppStore again. This time it's paywall improvements and some analytics.

Months ago, I setup some monitoring cron jobs for our #RubyOnRails app. They help me catch unexpected issues that occur due to third-party API failures, and retry them automatically before reporting them as failures that need my attention. These cron jobs help me do other things with my time πŸ˜€

I spent most of my career at places that have a huge dependency on a lot of third-party APIs (75+ API at one workplace). So I know how valuable monitoring can be πŸ˜€

The resubmission has been in-review for an hour. It’s 1am. I was hoping they would approve it fast - because it is a reasonably easy app to test. Going to sleep now 🀞

The time waiting for iOS app to be reviewed feels like the longest wait ever. First submission was end of the holidays and they got back to me on a Friday. And now I have to wait through a weekend 🀞

PSA: When submitting new iOS app for review with subscription pricing - add a note about it for App Review team to review subscription pricing also. Else they WILL miss it (Murphy's law). Lots of Reddit threads with complaints, but extra note is the only known solution. #iosdev

rejected because App Review team didn't review subscriptions first and hence saw no options to subscribe :D submitted again, because I cancelled the submission thinking something was wrong with my app.

Found out how to get caching working with cloudflare R2 private objects. Use cloudflare workers with auth to respond to requests with r2 objects. * When worker reads R2 object, the bandwidth is free. Only charge for Class B operation * When worker responds to user, the egress is free.

Akash Manohar@definerun.com

Anyone know how/if caching works with Cloudflare R2 private buckets? I am using presigned urls to access private objects in an R2 bucket. I would like those objects to be cached. I do have a domain assigned to the (private) R2 bucket too. What I do to tell Cloudflare to cache these objects?

A+ for introspection and some deep insight πŸ˜€ Summarizes my time at the computer so far really well. Thanks for sharing!

Susan Potter@susanpotter.net

As someone who spent decades using tens of hours each week to explore new tools & ideas (computer and maths stuff, mostly), it took me a long time to move myself away from exploring mode to leverage exploiting mode (applying the knowledge and understanding I built over decades). Still working on it.

Anyone know how/if caching works with Cloudflare R2 private buckets? I am using presigned urls to access private objects in an R2 bucket. I would like those objects to be cached. I do have a domain assigned to the (private) R2 bucket too. What I do to tell Cloudflare to cache these objects?

Docs seem sparse on this topic. And they all mention about assigning a domain to a public bucket to be able to cache is using cache rules. But nothing about caching in the context of presigned urls to access private R2 objects.

Released app on testflight to test and fixing bugs forever today. I'll have to fix one (hopefully) last bug tomorrow before I submit the app for review.

The list of β€œone last thing” to do are long: * Add seed data to the web app * Release on TestFlight for testing * Filled up the form and screenshots etc. Just have to release a build and submit. * Website content Next up: Analytics integration

setup fastlane for screenshots. very nifty. not using the full thing. Just screenshots that I took manually. fastlane only does the framing in my setup. #swiftui #iosdev

Presumed Innocent πŸ”₯πŸ”₯πŸ”₯πŸ”₯ (Apple TV) I watched the first two episodes bit by bit over 2 months πŸ˜‚ Then finished the rest last night.

I learnt about LUFS today. TLDR: ensured audio sound the same at a volume-level across songs. Music streaming services maintain the same LUFS for all their audio. In contrast, a movie on Netflix might be audible at lower volume level on your TV, but another movie might require higher volume

I mentioned Netflix because they don’t seem to make it mandatory for content to adhere to any LUFS levels. Maybe they do across episodes of the same TV show. Definitely not for movies.

If you use this to dismiss your sheet or fullScreenCover in the iOS app, watch out if parent view is being re-rendered constantly. @Environment(\.dismiss) private var dismiss It did for me. I switched to simply using the binding var that controls isPresented, by setting it to false #iosdev #swift

I had an ObservableObject with a few Published properties, being injected as an EnvironmentObject. TIL that even if an observable object's published property is not used in a view, the view will still be re-rendered constantly if the environment object is imported. #SwiftUI #iosdev

The solution to resolve constant rerendering was to move the @published properties into separate EnvironmentObjects that could be imported when needed. And also size up the views into the smallest unit that needs an EnvironmentObject that is constantly updated. #SwiftUI #iosdev

I just found out that the concert that happened at our apartment last night was Imagine Dragons. I could walk to the venue, but chose to go to the gym instead because I didn’t see the right posters πŸ€¦β€β™‚οΈπŸ˜­ How was your day?

The path to getting unstuck in Ruby starts with running this command: bundle show <gem-name> I got myself out of a Kamal issue today by starting there. If you don’t know - run it and you will know πŸ˜€ #RubyOnRails #Ruby

So I spent all of my working hours today going from one error to another just to get my app running on a server 😞 Thought it would be a 1 hour thing having used Kamal before.

Here is the full setup to get kamal secrets to use 1Password. This is kamal 2.3 with Rails 8. I have a destination for production. My secrets go into .kamal/secrets.production file. #RubyOnRails #Ruby

Don't attempt to execute the commands in kamal secrets file in your shell and expect to match the output. You will go into a rabbit hole and I did. bsky.app/profile/hash...

Akash Manohar@definerun.com

Watch what you put in your .kamal/secrets file it uses dotenv rubygem - which parses the file. So if you put stuff like multi-line bash commands, they won't work in the kamal secrets file. #rubyonrails #rails

Watch what you put in your .kamal/secrets file it uses dotenv rubygem - which parses the file. So if you put stuff like multi-line bash commands, they won't work in the kamal secrets file. #rubyonrails #rails

If you get this error with kamal building the docker image. Try running "docker build -t myimage ." If that works, then most likely that your Docker Desktop needs a restart. If you cannot do that, then force quit on MacOS activity manager.

When companies collect carbon offset fees, or additional donations from customers, my assumption is that this offsets the (loss of) 2% or whatever mandatory CSR spend specified by the govt, how wrong am I?

Akash Manohar reposted

I don’t understand how people new to the workforce learn their trade in a remote environment. Especially of software dev, design, sales, and marketing. You learn these by osmosis from peers and mentors. (1/3)

So if xcode is "Building..." forever, then the best way to resolve it is to slowly comment out snippets of code until it builds. And then ask AI what could be wrong with that particular snippet πŸ˜‘ #Swift #iosdev