Github Page vs Vercel vs Cloudflare Page: Which is best for static blog hosting
TL;DR: I chose Cloudflare Pages to host my blog because of unlimited bandwidth and easy and error free deployment. Candidates There are lots of place can host a blog. Today I鈥檓 comparing the these three platforms because Github Pages is oldest way I used before, Vercel is hot on Twitter, and Cloudflare is trending on Twitter as well. Requirement Compatible to Hugo Easy to use Free Custom Domain Github Pages Guide https://gohugo....
Introducing Green2US: Your Ultimate USCIS Case Tracker
Are you tired of constantly refreshing your USCIS case status page, waiting anxiously for updates? Say goodbye to endless checking and hello to peace of mind with Green2.US, your ultimate USCIS case tracker solution. Green2US is revolutionizing the way you monitor your immigration case by offering a seamless, hassle-free experience that puts you in control. Here鈥檚 why Green2US stands out from the rest: Real-Time Email Notifications: With Green2US, you鈥檒l never miss a beat....
Save money and improve UX by using CDN and browser cache - Typee Design
Situation A custom Typee deployment generates app configuration by a AWS Lambda. But there are some drawbacks: AWS Lambda has high delay when code start is required. Each refresh of a custom Typee deployment costs a AWS Lambda call and DynamoDB call. But the configuration actually changes less frequently. Solution I told myself as MVP I shouldn鈥檛 keep it simple and brutal, but I failed to convinced myself. First version I firstly put the Lambda behind Cloudfront(CDN)....
Deploy Your Own ChatGPT UI in Minutes
Benefit of Your Own ChatGPT UI for Your Team/Organization Increased Convenience Setting up your own ChatGPT UI eliminates the need for individual API keys for your team members. This saves time and effort as users can easily access and utilize the software without the hassle of managing and distributing API keys. Enhanced Security With your own ChatGPT UI, you have control over user access and authorization. Only authorized users can access the software, ensuring that sensitive information and conversations remain secure within your team or organization....
AI Chat API Design - Typee Design
Overview This article describes how to implement a AI Chat API, in AWS. It will discuss use cases, requirements, architectures and detail designs. Use Case In SaaS version of Typee, An authorized user can use a preset model without setting up any configuration. Admin first needs to setup an model which include a model name, a backing model, API Key for the backing model, and if use training data. Once Admin finish setup and published the model, Authorized users can see the new model in front end and are ready to use....
Complete Guide to Auto Publish Kotlin Package to Maven Central Repository
In this blog post, we will guide you through the process of automatically publishing your Kotlin package to the Maven Central Repository. Follow the steps below to ensure a seamless setup. 1. Obtain a Sonatype OSSRH Account To start, you need a Sonatype OSSRH (OSS Repository Hosting) account. Sign up for one by following this publish guide. 2. Meet Maven Central Publishing Requirements Before you can publish a package to Maven Central, you must satisfy certain requirements....
How to Easily Publish a Multi-Platform Docker Image
Create A Dockerfile supporting multiple arch The key point is ARG TARGETARCH You have to declare it before using it as variable FROM python:3 ARG TARGETARCH WORKDIR /app RUN git clone https://github.com/MurmursDev/easyblogger.git RUN cd easyblogger && pip install . RUN rm -rf easyblogger RUN wget https://github.com/jgm/pandoc/releases/download/3.1.1/pandoc-3.1.1-1-$TARGETARCH.deb RUN dpkg -i pandoc-3.1.1-1-$TARGETARCH.deb RUN rm pandoc-3.1.1-1-$TARGETARCH.deb ENTRYPOINT ["/usr/local/bin/easyblogger"] Create a Github Workflow name: ci on: push: branches: - "main" jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets....
Kapper, A New Kotlin Model Mapper
Kapper Kapper is a code generator for Kotlin that simplifies mapping between data classes. It was designed to map one class to a interface which has multiple implementations. Usage Installation Add the following to your build.gradle.kts file: dependencies { implementation("dev.murmurs.kapper:kapper:0.0.1") } Example Given the following data classes: data class User( val id: Int, val name: String, val email: String, val address: Address, ) data class UserDto( val id: Int, val name: String, val email: String, ) Kapper can generate a mapper that converts a User to a UserDto:...
Simplest Way to Send Your Markdown Files To Blogger
Overview One of the biggest concerns I had with using Blogger was the lack of a good client for dealing with markdown files. Fortunately, EasyBlogger solved this issue. However, since the last valid commit for EasyBlogger was 5 years ago, I encountered some issues while using it and decided to dockerize it. Authorization Generating the authorization URL To use Blogger, the first step is to fetch your credentials. You can find your blog ID once you log in to Blogger - it鈥檚 the last part of the URL path....
Choosing the Best Blogging Platform for My Personal Blog
As a software developer, I鈥檓 always looking for ways to create software solutions for myself. However, when it came to setting up my personal blog, I realized that building a blog from scratch might not be the best use of my time. So, I decided to use an existing blogging platform that met my requirements. In this post, I鈥檒l share my journey of choosing the best blogging platform for my personal blog, and the factors I considered before making my final decision....