I just bought a Canon 5D Mark IV. I had 5D Mark III before, here are new features that i like on Mark IV Touch screen More pixels (30.3 vs 24) 4K Videos vs HD Video GPS LCD seems a nicer Photos seems betterRead More →

We mostly care about the cpu/memory/storage metrics for mysql. I found another interesting metrics, it’s the aborted clients. What is it? It’s the number of the client is unable to authenticate to your servers. Why does it matter? There are a few reason why the client is unable to connect: your server is reaching the maximum connections, the user is using wrong password. If this value is showing, it means we are not fully operational. It’s good for proactive action on this.Read More →

We recently got a spike in the requests, all the requests are coming from Alibaba IP address space. We are not sure what the purpose of this request is, the user agent does not identify what tool it is. The request is also coming from many IP addresses, blocking individual IP is challenging as there are so many IPs. After checking some properties of the IP, we see it’s coming from the AS number. Luckily Cloudflare WAF supports the rule condition based on AS number, applying the new rule based on the AS number helped us mitigated the issue in a few minutes. Cloudflare hasRead More →

When you want to apply some policy, most of the articles on the internet will provide you this sample mkdir -p /etc/opt/chrome/policies/managed /etc/opt/chromium/policies/managed \ /etc/opt/chrome_for_testing/policies/managed \ && echo ‘{ “ExtensionManifestV2Availability”: 2 }’ | tee \ /etc/opt/chrome/policies/managed/policy.json \ /etc/opt/chromium/policies/managed/policy.json You do the same, put it seems that the rules where not applied. How can you identify it, create some new lines in your script to capture your current chrome info , open the following urls ( about://chrome , about://policy/logs, about://extensions) When you have the screenshot, you will see the actual chrome configuration, it will give you some hints to troubleshoot. In my case, i found thatRead More →

If you are writing some puppeteer script, i believe your biggest challenges are because it’s all headless, not easy to troubleshoot when some issues only happen with your puppeteer but it doesn’t happen with your own browser. I have been struggled in the last few days because our puppeteer can’t not do the authentication. After many days of trouble shooting, it turned out that when we install puppeteer (npm -i puppeteer) , it will installed its own version. Somehow this version does not work as expected. In normal situation, we don’t know this because we think it will run on the version we manually install.Read More →

### The Future of Bitcoins: A Glimpse Into the Digital Currency’s Next Chapter Bitcoin, the world’s first and most widely known cryptocurrency, has come a long way since its inception in 2009. Created by the mysterious figure Satoshi Nakamoto, Bitcoin was initially viewed by many as a niche technology or speculative asset. However, over the past decade, it has gained significant attention from investors, technologists, regulators, and even governments, sparking widespread discussions about its future. As the cryptocurrency ecosystem continues to evolve, questions about Bitcoin’s potential trajectory and role in the global economy persist. So, what does the future hold for Bitcoin? Let’s explore someRead More →

# History of Bitcoins: The Journey of the World’s First Cryptocurrency Bitcoin, the world’s first decentralized digital currency, has come a long way since its mysterious inception in 2008. From a niche technology, Bitcoin has grown into a global financial asset that has revolutionized how people think about money, investment, and finance. In this article, we’ll take a look at the fascinating history of Bitcoin, tracing its origins, milestones, challenges, and its rise to prominence as a financial tool used by millions of people worldwide. ### The Birth of Bitcoin: The Mysterious Creator The story of Bitcoin begins in 2008 with the release of aRead More →