For many, these past few weeks were their first time discovering the vast number of grants the federal government offers to nonprofits, researchers, businesses, and individuals. If you explored Grants.gov, you likely found that sifting through thousands of listings to find relevant funding can be overwhelming.
AspireMatch is an AI-driven tool that simplifies this process. Whether you’re exploring grants for the first time or apply for them regularly, just provide a brief description of your organization—or simply paste a link to your website—and AspireMatch will match you with grants that align with your mission.
Built-in AI in Google Chrome is a game changer for web apps. On my laptop inference was fast and the API was easy to use. I built a fun project called WordProblem Weaver, linked in the comments, which uses built-in AI in Chrome to generate word problems entirely offline. It targets students who may not have access to internet at home or attend a school where internet access is intermittent. As long as they’ve accessed WordProblem Weaver once while online, they can load their assignments (baked into an easy QR code) and print or download PDF proof that they completed their assignment. Teachers can select from many different problem types. The AI will also provide hints. While you can’t try it until built-in AI rolls out more generally for Google Chrome, I hope you’ll take a look at my writeup below!
Introducing ScamSense: Protecting Seniors from Scams with Alexa
In an increasingly connected world, scams and fraud have become more sophisticated, targeting vulnerable individuals with alarming frequency. Seniors, often less familiar with digital tactics, are particularly at risk. That’s why I created ScamSense — an Alexa skill designed to educate, inform, and empower seniors to recognize and avoid scams.
But what if there was a simple, accessible tool to help?
What is ScamSense?
ScamSense turns your Alexa-enabled device into a personal scam prevention assistant. It’s easy to use and provides:
Daily Scam Alerts: Stay informed about the latest fraud tactics, such as phishing, fake charity schemes, and tech support scams.
Identity Protection Tips: Get actionable advice on how to safeguard your personal information.
How It Works
ScamSense draws from reputable resources to deliver accurate and timely information. Every day (at 6AM Central time), it produces a new report of concise updates about recent scams and tips to protect yourself. It integrates with The News API, fetching relevant top stories and then summarizes them using advanced AI (using Llama hosted on SambaNova Cloud).
For example, you might hear:
Empowering Seniors Through Technology
One of the key challenges with senior-focused technology is ensuring it’s user-friendly. Alexa’s voice-first interface makes ScamSense accessible to anyone, even those unfamiliar with smartphones or computers.
ScamSense isn’t just about providing information; it’s about creating peace of mind for seniors and their families.
Try ScamSense Today
ScamSense is available now for Alexa devices. Setting it up is simple:
Enable the skill from the Alexa Skill Store.
Say, “Alexa, open ScamSense,” to start receiving scam alerts and tips.
Learn how to build your own map of MTA E-ZPass retailers and color-code them based on wheelchair accessibility using Python, Folium, and Netlify! This was my submission for the 2024 MTA Open Data Challenge which announced their winners this week! Link: https://github.com/kevinl95/ez-accessible-map
My latest project was recently featured on Instructables! In this guide I will show you how to build a low-power credit card skimmer detecting keychain. These skimmers, often found in gas pumps and ATMs, emit a Bluetooth signal that this keychain can detect but that many modern smart phones cannot. There is no need to understand programming and there is no soldering – this guide is suitable for beginners!
I am excited to share that my project, CarbonComponent, was recently selected as a winner of GitLab’s Innovation Pitch Competition! CarbonComponent is a continuous integration/continuous deployment component for GitLab pipelines that allows developers to estimate the carbon emissions caused by visiting their web projects. Using data from The Green Web Foundation it can tell if your web host uses green energy, and will provide you with a Green Webhost badge for your project repository if it does. When a pull request is created, metrics are displayed allowing you to tell at a glance if a change will make your project more carbon intensive. Additionally, it allows developers to offset the emissions from their project through Wren. Check it out! https://devpost.com/software/carboncomponent
What’s great about using them is you avoid the auto-playing video, image carousels, comment sections, and other clutter that not only make the article difficult to read- it makes the page load time go through the roof! Knowing these text-only, or “lite”, versions exist is great, but I get sent a lot of articles via social media and messages. Remembering how to convert the URL for many of these sites is a hassle.
I wrote an open-source and free browser extension called LiteNews! It automatically will redirect you to the lite version of articles for the above news outlets when you click a link. It’s available for Chrome, Firefox, and Edge. It’s the first time I’ve written a cross-platform browser extension, and I can thank the Plasmo Framework for making it easy. I wrote my extension once and published in stores for all three browsers without needing to change a line of code!
I’ve spent the last few days learning about my new favorite serverless app development platform, Atlassian Forge. It lets you easily develop apps for Confluence, JIRA, and more using JavaScript, and even comes with some really nice UI widgets you can use in their UI kit. While not the main subject of this article, one of my favorite things about their tools is that they make it very simple to store credentials encrypted for use with your Forge app – it’s built into the Forge CLI and is a breath of fresh air for those familiar with more complicated solutions like Amazon’s Key Management Service. Anything to make it easier for folks not to accidentally commit their tokens to GitHub!
Those snazzy UI elements may start to feel a bit constricting if you’re looking to display the results from your favorite REST API. Take for example the Table widget. The docs are very helpful explaining all the features, but what if you don’t know how many elements you’re going to have? What if you have a key that stores a list with a variable number of objects, and maybe you don’t know what their attributes are going to be yet? Maybe there’s a computation you need to do with the data and display the result? What if you don’t want to have any degree of repetition, defining each row yourself? We need a way to programmatically create a table (or similar container- doing this for a button set or tag group is left as an exercise to the reader!).
This is where the humble map comes in. Maps are common in JavaScript- they hold key value pairs. You can build a map that then lets you iterate over all the objects you want to display- even if you don’t know how many there are going to be! The UI kit markdown can look static but you can actually use JavaScript like maps inside your UI kit responses from Forge! You can also compute new results not in your data source right in line. If you didn’t know this, you may be tempted to do something like the following. Let’s say you have an API that returns some team group members for a given project. It has a list of team members under the key ‘members’. You may be tempted to write a return like this in your Forge app to put them in a table inside an inline dialogue:
And so on, and so forth, until you’re writing markup all day, your boss is mad, and you still haven’t solved the issue that you don’t know how long the ‘members’ list is. You also are just putting the number of tasks completed- no the percentage score your API doesn’t return and you need to find a way to compute within Forge.
Well it turns out the following will work just fine, and is far shorter:
We now accommodate however many members there are (even 0!) and do the math for our score right in line. Forge will evaluate all of this JavaScript and programmatically create as many lines as you want.
Why am I sharing this? It’s a key part of the UI of my new Forge app PriorWise! As part of my submission to the 2023 Codegeist Unleashed Hackathon I use this trick to list as many patents and papers as I can based on a user’s query. It lets you highlight some text or even search a full page for relevant patents and research papers, known as prior art. This helps innovators find out if they are infringing on an existing idea, or inform new avenues of research and collaboration. It uses AI to find results that are similar in terms of meaning and topic. While I don’t always know how many results I’ll get back, if they will have images or not, and I still need to compute a similarity score for the user, I know Forge and UI kit will take care of all of this and display an organized result for my users. This stumped me for a bit, don’t let it stump you!
Example of a programmatically generated list of patents returned in an inline modal from PriorWise
What if you could help journalists and activists in places like Iran and Russia with a few clicks? Tor is an anonymity network run by volunteers that protects the location and identity of users while they use the internet for research, messaging, and organizing. Unfortunately oppressive regimes block the access points to Tor. My project, Bridge Buttons, lets you deploy a Tor bridge for free to Amazon’s cloud. A bridge helps users connect to Tor by first connecting to an innocuous looking server, making it hard to block! I’ve preconfigured these bridges so that it can run for free for up to a year, making this the cheapest and easiest way to get started.