I have an interview requesting experience in deck.gl on Monday- so I built a sample project using React and deck.gl to show coffee shops in Philadelphia using downloaded osm data. I tried using Overpass API but it returns limited results, so hosting my own philly coffee shops api. Deck.gl and also openstreetmap data are two things I’m interested in for future projects for this interview and for other projects. Happy 4th of July.
I decided to convert an app I’m working on, a react native project, to supabase because firebase doesn’t work on macos. I got it done with Augment Code in about a day’s worth of work. Augment creates a task list for itself to follow along, it’s cool. Google login is working on macos now! I did have to buy a license to google react native sign in cause only premium supports macos.
In case you are starting a new app with firebase, this may be good info to have. I recommend supabase if you want react native macos support.
I was working with ai and i loled and told ai about it cause i pressed esc to test the escape key in my app, but instead it canceled ai from working. ai laughed back.
that made me think of my chemistry teacher at college. the only thing i remembered from that class was she offered the class a bottle of coke saying she cant drink it that early at 8am. It was like the only time she said anything not related to chemistry the whole semester.
try to have some fun every day
build things that make people laugh all the time, not just once in a blue moon
After struggling with unreliable keyboard event handling in React Native macOS, I discovered the solution: handle key events at the native macOS level instead of trying to make JavaScript event handling work reliably.
The Problem
Standard React Native keyboard handling approaches often fail on macOS:
onKeyDown props don’t capture events consistently
document.addEventListener doesn’t exist in React Native
Focus management interferes with text editing
Chirping sounds when events aren’t properly consumed
Events get lost when focus changes between UI elements
The Solution: Native + React Native Bridge
The key insight is to handle keyboard events at the native macOS level using Objective-C, then bridge them to React Native when needed.
Step 1: Native Keyboard Handling (AppDelegate.mm)
Add native keyboard monitoring to your AppDelegate.mm:
#import "AppDelegate.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTEventEmitter.h>
#import <React/RCTBridge.h>
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)notification
{
self.moduleName = @"YourAppName";
self.initialProps = @{};
[super applicationDidFinishLaunching:notification];
// Set up native keyboard handling
[self setupNativeKeyboardHandling];
}
- (void)setupNativeKeyboardHandling
{
// Add local monitor for key events (equivalent to SwiftUI's onKeyPress)
[NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskKeyDown handler:^NSEvent * _Nullable(NSEvent * _Nonnull event) {
NSLog(@"🔑 NATIVE: Key event - keyCode: %d, characters: %@", (int)event.keyCode, event.characters);
// Handle Escape key (keyCode 53)
if (event.keyCode == 53) {
NSLog(@"🔑 NATIVE: Escape key detected, sending to React Native");
[self sendEscapeKeyToReactNative];
// Return nil to consume the event (equivalent to SwiftUI's .handled)
return nil;
}
// Return the event for other keys to continue normal processing
return event;
}];
NSLog(@"🔑 NATIVE: Native keyboard handling setup complete");
}
- (void)sendEscapeKeyToReactNative
{
// Send event to React Native via DeviceEventEmitter
[[NSNotificationCenter defaultCenter] postNotificationName:@"NativeEscapeKeyPressed" object:nil];
if (self.bridge) {
[self.bridge.eventDispatcher sendAppEventWithName:@"NativeEscapeKeyPressed" body:@{}];
}
}
@end
Step 2: React Native Event Listener (App.tsx)
Listen for native events in your React Native app:
import React from 'react';
import { Platform, View, DeviceEventEmitter } from 'react-native';
const GlobalKeyboardWrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const { isVisible, closePanel } = useTaskDetailPanel();
// Listen for native keyboard events from AppDelegate
React.useEffect(() => {
if (Platform.OS !== 'macos') return;
console.log('🔑 NATIVE: Setting up native keyboard event listener');
// Listen for native escape key events
const subscription = DeviceEventEmitter.addListener('NativeEscapeKeyPressed', () => {
console.log('🔑 NATIVE: Escape key received from native AppDelegate');
if (isVisible) {
console.log('🔑 NATIVE: Closing TaskDetailPanel via native event');
closePanel();
}
});
return () => {
subscription.remove();
console.log('🔑 NATIVE: Native keyboard event listener removed');
};
}, [isVisible, closePanel]);
return (
<View style={{ flex: 1 }}>
{children}
</View>
);
};
// Wrap your app with the keyboard wrapper
function App() {
return (
<GlobalKeyboardWrapper>
{/* Your app content */}
</GlobalKeyboardWrapper>
);
}
I’ve been working on this search engine site for robot designs for a couple months. It’s now deployed and I will soon launch it on ProductHunt. I used Coolify and Linode for this Python Flask app.
Hello, I am still seeking employment. I am an expert developer in many different languages and platforms. If you know anyone looking for a developer, let me know.
I’ve tried to make my WordPress Dreamhost blogs faster, but I want to migrate everything over to Linode with new blogging software I created that uses SQLite and is easier to set up than WordPress. It’s still a work in progress:
I assert the gov is spying on me under a branch of the Secret Service. Trump goes along with almost anything SS suggests. Why wouldn’t they just hire me instead of hacking my Pixel 6 phone with Pegasus? These days, just monitoring, I think. I think because I inadvertently predict the future, with the post linked being some PG-rated examples.
Hey Facebook, Mark Zuckerberg, thanks for suing the NSO group for hacking!
How do I get an acknowledgement that my phone was hacked, Pixel 6, and other phones I tried during that time, 2020-2022? And a list of the hacked texts sent.
Please, Please, Please. I want it so bad. They were horrific and threatening texts sent from my phone, which I didn’t write or send.
I got $250 from a Google settlement. I wish there was a settlement for people who’ve had Pegasus trojan send texts that weren’t written by me, sent cashapp to a person not authorized by me, and even more annoying stuff. Like interrupting a call to my mom with audio she only heard. Weird death threat involving Thursdays from a voicemail transcription with the voice not saying the death stuff. Sending a bumble message not by me to a bizz connection. Rewriting text sms history. Sending tweets not in my name. Offensive and terrible Facebook posts not written by me. Once on a friend’s page. Rewriting at least 1 instagram comment on someone else’s page. Android keyboard grammar checker messing with posts as I wrote them, perfectly spelled words replaced. While I was sleeping sometimes with this stuff. My Mom will vouch she got a disturbing text while I was asleep. With my Pixel 6 a few years ago. Since Pixel 7 and on, no issues.
I heard Pegasus costs 500K per user!
Do you think people employed by the government/secret service are forced to go to mental institutions to evaluate/pick on people? I assert they do. Can we do anything about it?
Edit: My zoom was also hacked around 2022. I had a job as an interviewer at arc.dev and my zoom became hacked. I couldn’t paste text into the box. I signed up for zoom pro, got support to fix it, and the next time I had an interview to get paid for being the interviewer on my mac I still couldn’t paste the prompts. I had to tell them and lost the job opportunity.
Previous to this, my Mac had been hacked, something happened with opening Trump’s tweets while I was visiting the white house tweets. I wrote about this in a blog entry but couldn’t find it. Darn. I have no proof, but it was very annoying. During Trump’s first term or shortly after, I think. I did find these related posts. If you know a good lawyer, send them my way.