I used the creation of my newest website (rochester.run) as an excuse to explore a new platform and built the entire site using Cloudflare’s stack.
The site is primarily built upon Cloudflare Pages which allow you to include html and css files directly to create a static website, or to build something more complex such as the react app that I am using. This serves as the frontend of the website and is more or less the same as developing a website on any platform.
Cloudflare Workers exist to allow you to build out a backend for a website. I used TypeScript to create the workers, but a number of different languages are supported. This allowed me to intercept a number of endpoints to be run on the backend and also allows a worker to be schedule by a cron job.
D1 is Cloudflare’s database offering and is mostly a thin client around an SQLite database. For my website I am using a number of basic tables for storing data but coming nowhere close to pushing the platform to it’s max.
For quicker data retrieval on the site I am storing some data as a json file in Cloudflare’s R2 which is modeled after AWS’s S3 storage.
Additionally Cloudflare offers an email service, but I ended up opting out of that due to the cost.
Overall I found Cloudflare to be a great platform to work on, and it will probably be my first choice for my next project.
Finding a dependable place to wager online requires more than luck. Players across the country are increasingly selective, and which is entirely justified, since the digital gambling space has grown crowded with operators of wildly different standards.
A legitimate operator always operates under a recognized license. In Canada, one of the oldest regulatory bodies is the Kahnawake Gaming Commission, established in 1996 on Mohawk Territory in Quebec, which has issued licenses to online gambling operators for decades — a verifiable milestone in the industry’s history. At Clearfield Journal Canada, licensing transparency is treated as a foundation rather than a formality.
Provincial vs Offshore Licensing
Some platforms hold provincial approval, while others operate under international jurisdictions such as Malta or Curacao. Each approach has its own merits, provided the license is active and publicly verifiable.
Security and Fair Play Standards
Encryption and independent auditing separate reputable sites from questionable ones. Players should always check for SSL certification, as this protects personal and financial data during transmission.
Encryption Standards
Modern platforms typically use 128-bit or 256-bit encryption, matching standards used in online banking. Random number generators are also tested by third-party laboratories to confirm outcomes remain unbiased.
Security Feature
Purpose
SSL Encryption
Protects data transfers between user and server
RNG Certification
Confirms fairness of game outcomes
Two-Factor Authentication
Adds login protection layer
Payment Methods and Banking Options
Reliable banking infrastructure matters as much as game variety. It is common for reputable platforms to support various payment channels, including e-wallets, prepaid vouchers, and bank transfers.
Interac transfers, widely used across Canadian banking
E-wallet services with rapid processing times
Prepaid cards for players avoiding direct bank links
Cryptocurrency options on select platforms
Game Selection and Software Providers
Variety alone does not guarantee quality; the software developers behind the titles matter more. Reputable developers dedicate significant resources to certification, which reduces the chance of manipulated results.
Game Category
Typical Return-to-Player Range
Slot Machines
92% – 97%
Table Games
94% – 99%
Live Dealer Games
95% – 98%
Responsible Gambling Practices
Sustainable enjoyment depends on structured limits. Deposit caps, session timers, and self-exclusion tools are standard features on well-regulated sites. This functionality helps maintain healthy play patterns without removing the entertainment value of the experience.
Support Resources
Many platforms partner with independent counseling organizations, offering confidential assistance to anyone showing signs of problematic behavior.
Customer Support Quality
Round-the-clock assistance through live chat, email, and phone reflects operational maturity. Response speed often indicates overall reliability, so testing this channel before committing funds is a reasonable precaution.
Choosing the Right Platform
Ultimately, the decision comes down to matching personal priorities with verified credentials. Checking license numbers, reading independent audit reports, and reviewing payout histories all contribute to an informed choice. A platform that combines regulatory compliance, transparent banking, and responsible gaming tools typically earns long-term player confidence rather than short-lived attention.
I am excited to announce the launch of rochester.run a new website that lists out the available races for runners in the Rochester New York region.
This website intends to show all of the races between Batavia and Palmyra and make it easy for runners in the Rochester area to find their next race. I have always been a fan of buffalorunners.com and wished that there was a version for the Rochester area. Finally I have produced the site on my own with a fun url, and a much cleaner ui.
Unlike many technologies that claim to be revolutionary, there is a real case that Large Language Models (LLMs) like OpenAI’s GPT really will change the world.
When I first tried ChatGPT I found it impressive, but not useful. The ability to write an academic style essay was something software had never been previously capable of doing. However it wasn’t a tool I needed, and while sure to improve, was still a little rough around the edges.
As a replacement for a search engine, ChatGPT was less impressive. It was slightly worse, and a year and a half out of date.
What really blew me away with using a LLM was trying out GitHub Copilot. Copilot isn’t always correct, but it is incredible how often it is, and how often it can make sense of unique code. It has been genuinely useful for doing my job.
But the larger argument is for the things that LLMs are not yet good at, but may be better at in the future. For example consider language translations and chess. Currently an LLM will be happy to attempt either of these tasks, but will not do too great at either of them. If you want a computer to play chess you are much better off using a dedicated chess engine like Stockfish. If you want to preform a translation you are much better off using a program like DeepL.
But the catch is that Stockfish can not perform translations, and that DeepL can not play chess. If LLM tech improves rapidly due to receiving funding and attention due to some random thing that it is good at like image recognition or natural language recognition than the tech stack as a whole might get better much quicker than the efforts put into DeepL or Stockfish.
In many ways this could look like a repeat of how general purpose computing improved so quickly that eventually all computing became general purpose computing. If the LLMs can improve enough, perhaps in the future all AI will be a LLM based AI.
I think it is time to admit what has been obvious for a long while now, that my time as an independent mobile app developer is over. I have not released updates to any of my apps in over two years now, and given the state of the market, I don’t really have the motivation to work on any of these projects in the near future.
The apps for the BlackBerry, Nook, and Windows Phone stores have long been inaccessible. And this summer when I let my Apple developer license expire, the apps for iPhone will disappear as well. While I will not be aggressively purging any other app stores, there isn’t much left that is compatible with the latest operating systems.
This has been a really fun project, (and for a few years a fantastic full time job). I am sure that there will be future software projects (even if they are more likely to be on the web), but until then I am getting enough coding in as part of my day job.
Thank you to everyone who supported me over the years.
When the BlackBerry movie was first announced I assumed that I would have a professional obligation to go see it, but then it has a extremely limited release and played on zero screens where I live. However, the film has since made its way to hulu and I finally got to see it last week.
I enjoyed the film, but when you are such an expert it is easy to get distracted by the little details that the movie gets wrong. Still most of this doesn’t matter, and the one thing the movie really got right was showing how good Mike Lazaridis and BlackBerry were at network efficiency and squeezing a lot out of the limited wireless speeds available at the time.
The big thing that movie got wrong was the (widely accepted belief) that BlackBerry was doomed following the launch of the iPhone. BlackBerry’s executives were correct in that the iPhone would overwhelm the 2G networks, and BlackBerry would find itself capable of making a touch screen. (Issues with the first Storm phones were not with the hardware as the movie implied, but with the software that only got decent half a year after launch). What actually put BlackBerry in trouble was the later launch of Apple’s app store. BlackBerry responded with a store of their own but didn’t preinstall it on new devices and was too deferential to the carriers and corporate CTOs to make it front and center the way they should have. I know it doesn’t work for a biopic to spend too much time on a company’s short comings in the years after the founder left, but for those of us who were advocating for BlackBerry to make the right changes it can be frustrating to see everyone continue to learn the wrong lessons.
After quite a few years without attending a tech conference I will be at the LibertyJS conference in Philadelphia on October 12th and 13th. If anyone wants to talk about JavaScript or software development, I would love to see you there.
Hockey Scores for Android includes the same features as the iOS and BlackBerry versions of the app. Showing not just the score, but also team statistics and a list of the goal scorers.
About Hockey Scores
In addition to showing the scores of each game, the app also shows the game time, shot on goal, shot attempts, hits, faceoff percentages, and a full list of all of the game’s goal scorers.
A one time in-app purchase can be used to remove all advertising from the app.
A select few Android apps are now available to be downloaded from the Huawei app store. These apps include Weather Beautiful and three of the New York State Canal apps.
Coloring the Navigation Bar in an iOS app (including the sides of the tab) requires setting an appearance attribute within the init method. It actually only requires a few lines of code, but is a bit unintuitive.
The final line is for setting the text color of the back button. The color of the navigationBarItems can be set by directly setting the foreground color of the Images.
This new version fixes a bug with retrieving the wait time data, and also improves support for the newest iOS features and screensizes. Additionally the app is also now available to be downloaded on Macs with a M1 series processor.
About Niagara Border Crossing
This app shows the current wait times for all four of the border crossings over the Niagara River between the United States and Canada. These bridges between Western New York and Southern Ontario include the Lewiston-Queenston Bridge, the Whirlpool Rapids Bridge, the Rainbow Bridge, and the Peace Bridge. Separate times are shown for cars, trucks, and also for those using the Nexus lanes.
The Niagara Border Crossing app has been updated to version 2.1 for Android and Windows. This new version fixes a bug with retrieving the wait time data, and also improves support for the newest OS versions.
About Niagara Border Crossing
This app shows the current wait times for all four of the border crossings over the Niagara River between the United States and Canada. These bridges between Western New York and Southern Ontario include the Lewiston-Queenston Bridge, the Whirlpool Rapids Bridge, the Rainbow Bridge, and the Peace Bridge. Separate times are shown for cars, trucks, and also for those using the Nexus lanes.
The Projectile Physics Calculator has been updated to version 3.1 for Android phones. This update improves support for the newest versions of android, and also offers a new option on the settings page that lets you run the app in a dark mode independently from the system wide setting.
About Projectile Physics
This app is a projectile physics calculator designed to solve for all of the components of a typical projectile motion problem. The app solves for both the vertical and horizontal components of the distance traveled, the constant acceleration, the initial and final velocity, as well as the time. These factors are solved for in real time in order to help you get back the factors of the equation quicker.
The Hockey Scores app has been updated to version 5.1 for all iOS devices. This update improves dark mode support, minimizes data usage, improves landscape device support, as well as a few bug fixes.
The app’s options page now offers the opportunity to set the app in a dark mode or light mode independent of the rest of the device. Additionally some of the background and text colors have been optimized for when dark mode is active. This version also adds a new pink background option.
About Hockey Scores
In addition to showing the scores of each game, the app also shows the game time, shot on goal, shot attempts, hits, faceoff percentages, and a full list of all of the game’s goal scorers.
A one time in-app purchase can be used to remove all advertising from the app.
The Projectile Physics app has been updated to version 3.1 for iOS and Mac computers. This update greatly improves support for the iPad. Also there is a new option on the settings page that adds the option to run the app in a dark mode independently from the system wide setting.
About Projectile Physics
This app is a projectile physics calculator designed to solve for all of the components of a typical projectile motion problem. The app solves for both the vertical and horizontal components of the distance traveled, the constant acceleration, the initial and final velocity, as well as the time. These factors are solved for in real time in order to help you get back the factors of the equation quicker.