Local and Remote forwarding connects ports on two machines over SSH connection (tunnel).
Local forwarding -L
creates a listener on the local machine (current shell) and forwards traffic to the remote host.
ssh -L 8001:localhost:80 remote.example.com
Remote forwarding -R
creates a listener on the remote machine (requested shell) and forwards traffic to the local host.
ssh -R 8004:localhost:8003 remote.example.com
The following examples a simple webserver serving the current directory. Only static files are supported. No server-side scripting languages are evaluated. Simple webserves may be useful for quick local network tests or local website development purposes.
As there is no in-built support for TLS/HTTPS, starting webservers this way should never be used for production purposes.
Read more on Python.org.
python3 -m http.server 80
Read more on Python.org.
python2 -m SimpleHTTPServer 80
Slightly lower than recent iPhone Pro series devices. But, it’s a phone. It’ll eventually crack just like your Apple device when dropped on concrete.
Usable? yes. Can it best iOS in 2022? Perhaps. Read on for more.
I was a professional photographer/videographer in a previous decade, and I still dust off my trusty Canon 5D4 from time to time. But, that beautiful full-frame sensor also requires hulling some serious heft and glass on trips. Like most people in 2022, my smartphone is my daily camera.
For Photos, the Pixel 7 (note NOT 7 Pro) matches the iPhone 13 Pro in my real-life testing. i.e. Pets, construction projects, document scanning, etc. The Google Pixel 7’s 50MP main sensor really captures an image with outstanding clarity, even at 2-3x (~50-77mm). There are many vloggers who have high-quality comparisons out there so I’ll leave the ultimate verdict up to the reader.
Seems equivalent to my iPhone 13 Pro. I use it for many hours of the day browsing the web, ordering food, and watching YouTube videos. So far, I can’t tell a difference. I charge once a day, usually in the evening. Both devices can also charge while driving via MagSafe holder.
Web browsing feels equivalent. If not better. Google has elected to use a slightly wider viewport 412x742 pts compared to iPhone 13’s 390x844 pts. That 5% more web page width can make a subtle but nice difference (The iPhone Pro Max is 428 x 926 pts, but is physically larger… and heavier.)
The in-screen fingerprint is fascinating. Google has re-introduced 2D Face Unlock, but it’s only used for unlocking the phone’s lock screen. Unlike the iPhone (and Pixel 4), the Pixel 7 series does not have a dot projector for 3D facial mapping, and is less secure than Face ID or Pixel 4’s Face Unlock. The in-screen fingerprint reader is used to unlock the phone’s secure features like password managers, work profiles, and identity verification.
The screen is not as bright as iPhone’s screen. But, I have yet to become offended by the difference.
Not quite. I still carry two phones. Everyone I communicate with regularly has an iPhone/iOS device and iMessage is king in the States. RCS… sure. Someday.
I might consider siwtching from iPhone 13 Pro to iPhone SE 2022 for maintaining iMessage conversations and using Pixel as my primary device. Will keep you posted there.
Now, for the backstory…
Let me start by saying I’ve been an Apple fanboy since before it was cool to be an Apple fanboy. Remember the excellent Performa 575 and substellar PowerMac 5260 that sometimes needed a reminder of where its single boot drive was located in the morning? I was that Apple guy.
As a long-time Apple fan, I’ve maintained and awareness of the Android ecosystem, mostly for testing work projects. Over the last decade I’ve owned a number of Google’s Nexus and Pixel phones. They tend to present the high-end Android experience for a reasonable price. With the Pixel 7, Google delivered once again, but this time, I find it makes my timeless iPhone experience feel… dated.
As my iPhone hardware version number increases with each passing year, so does its MSRP. But, selling last year’s phone and getting equivalent model year version remains doable for steep discount. As a yearly upgrader, I could justify this expense with statements like, “This year’s camera upgrade alone was worth the price.” Or, “The ProRes and ProRAW formats are worth it.” But, something happened with the iPhone 12-series. When the 12-series launched, it introduced 5G and returned to flat edge designs of years past. Was the 13-series worth it? Maybe, but only because I wanted a Mini. Which ended up freezing up, stalling, and failing to take a photo when I needed it. Ironically, despite all the hype online, I had zero problem with iPhone 13 mini battery life.
From the iPhone-like unboxing, to the lack of charger and ear buds, Google has learned from the greats and made it clear that the Pixel line of devices is ready to compete. In short, I can’t put the Pixel 7 down.
There are plenty of decent mobile device manufacturers out there, but where Pixel shines is really Google’s unique strengths. Google’s super power remains its unquestioned dominance over data. Privacy discussions aside, Google has captured and indexed, to the greatest extent of any single entity on the planet, all of the Internet. Google’s data graph represents a non-trivial percentage of human knowledge.
What does all this have to do with the Pixel? We’ve already seen that Google was at least 5 years ahead of any other company when Apple released it’s own Maps platform. This was due to Google’s high-quality map data. We know Google can build services, and connect them together to build bigger knowledge graphs. So, when it comes to combining on-device intelligence foundational services like email, calendars, chat, and contacts, I’m starting to believe that it might be time to look past Android’s short-comings in exchange for… well… reliable Exchange support.
If Apple has indeed perfected the iPhone’s hardware design, what does that leave? Software? iOS, like me, is aging. Many of the long-time frustrations with the platform have become public jokes, or known issues. Even as Apple insists (nearly forces) that SwiftUI is the best way to write an app, the merger
collision of iOS and macOS certainly leaves us long-time Macintosh users longing for our Cocoa apps. If Google can make hardware that rivals competitors it’s certainly time to pay attention.
So, you might ask, I thought this was supposed to be about Google’s Pixel 7? It is, I promise. My point is that I’ve now written over 1000 words trying to express that I can’t put this thing down. So what’s the problem?
The #1 problem with Google’s Pixel 7 is Apple’s ecosystem. I’m locked in.
In recent years, Apple has tightened its hold on my data. Everything from photos, personal calendar events and contacts, to my all important Notes library is seemlessly available across all of my Apple devices, backed by my iCloud+ subscription. In short, it just works. Mostly.
Let me be clear that I have no complaint
don’t have much to complain about iCloud services. 99% of the time, it works as expected. But, for that remaining 1%, it’s best just to give up and sleep on it. It’ll probably work tomorrow, right?
The fact is, it’s 2022. There are many services that work 99% of the time. The difference being, when that 1% edge case hits, there are ways to RETRY without “Restoring your device to factory defaults.” Since, who has time to restore a device these days? Especially since Apple devices seem to take longer to re-image blazing fast flash storage than imaging an old 5260 from a CD-ROM drive. (I’m still waiting for someone to explain that one.)
Like iPhone, Google’s Pixel devices deliver a smartphone experience that I trust. The Google Pixel 7 is a modern take on the smartphone that really makes me want to leave my iPhone at home.
I’ve kept a recent Android phone on my desk for the last decade. My Pixel 7 is actually the fourth Pixel phone I’ve owned. As a software developer, I continue to be impressed with Google’s data-driven features. As a former designer, I crave Apple’s Ive-inspired attention to detail that makes a device “feel” amazing. If Apple represents the “Intersection of Technology and Liberal Arts,” Google’s Pixel 7 represents at least one corner of the intersection of Maths and the Public. It’s precision design may not be enough to impress Sir Jony Ive, but it’s more than enough to impress me into carrying it with me all day.
What led me here today is two things– three really.
My Pixel 4 received its final “feature drop” update.
New Macbook at work
Apple Silicon.
Google’s Pixel 4 was proof that Google could answer Apple’s Face ID with similar precision. The addition of the Soli Radar sensor made for exquisitly simplistic features like turning off the “Always On” display overnight or when no one was around. This, so far, is the number one feature I miss when using the Pixel 7. I guess I’m looking for “Almost Always On” instead of “Always On” display. The Pixel 4 really pushed presence tech in a useful direction.
The Pixel 4’s battery was really the only drawback of the phone. Later, the lack of 5G radio became a disappointment.
I’m not even sad to give up my “Unlimited High-Quality” photo storage in Google Photos for this upgrade. I already pay for Google One for Drive storage, and I’d prefer to maintain original quality anyway.
I recently got a new Macbook at work. (Somehow another four years have passed.) This time, my Apple Notes library was stored “On my Mac” instead of Exchange. I wasn’t able to sync my 900+ notes, code snippets, and command line shortcuts using iCloud because my company prevents using iCloud data syncing. (Many companies prevent using third party services like iCloud for company data storage. Probably for good reason.) Have you tried getting stuff out of iCloud? The result was insane. I copied preferences, a 75MB container file, another container file, and another, only to find that my Notes were still missing. With no actual export option, I turned to Google to search what the influencers of the world had to offer. Turns out, some kid had a YouTube tutorial. (I have to say, I can’t stand video tutorials. Just write it so I can skim your content please. Who has time to watch a 7 minute video on Apple Notes data?) As it turned out, there’s a “Group Container” in addition to the “Container” that needs to be copied to glue all the non-iCloud data together. I guess I should write a tutorial for that.
Ultimately, this reminded me just how locked in I am to Apple’s “Digital Hub” and “iLife.” Maybe it’s time to poke my head outside the walls and make sure life hasn’t passed me by?
Apple Silicon’s refinement of the ARM architecture has certainly propelled computing into a far more sustainable product. By delivering software and hardware optimized for low-power usage, one can simply turn up the heat and make an incredible notebook or even desktop computer.
In only 2 years, aarch_64 adoption has made significant strides. But, still no plans for NVIDIA drivers. (Maybe in the next 30 days if an Apple Silicon Mac Pro is announced?) Sure, my 2020 M1 Macbook Pro smokes my 2018 i9 Macbook Pro when working in Blender, but what if I want more? I’m not a gamer, but I’ve recently re-discovered 3D modeling and animation during a remodeling project. I’d like to do more of this, so naturally, I’m looking for high-end graphics performance. Neither the M1 or M2 series provide raytracing abilities similar to high-end graphics cards. And, with the transition to Apple Silicon, eGPU support was left behind to the PC industry.
So now what? Okay, buy an Mac Studio with M1 Ultra, or Macbook Pro with M1 Max. But, these SoCs are built on designs originally destined for low-power devices. I don’t need my Blender machine to run 15 hours on a 45wh battery. I can plug it into the wall. So where’s the PRO in graphics?
By the way, M1 Ultra starts at $4000 USD.
All of this, and more, leads me to Google’s Pixel eco-system. Is it possible Google can offer a more open vision with Apple-like experience? Let’s hope so.
Stay tuned for more updates on my Google Pixel 7 experience.
Created on: Oct 15, 2022, 10:02 AM
Edited on: Oct 16, 2022, 9:30 PM
]]>Site building software like WordPress have greatly reduced the level of effort required to create an online presence. I've been making websites for over 20 years and when people ask me today, I send them to WordPress. It's cheap and easy, and with hundreds of customizable themes available, it works for nearly any use case. The simplicity makes it well worth the cost of a "Venti Non-fat Double-shot Caramel Macchiato."
What about "static" websites? Sure, of course, static websites may be faster and cheaper once "built" and "deployed," but ask yourself, "Do I want the added effort and want to learn to code, just to write a post?" I highly recommend challenging yourself to learn new skills, but the fact is, for most people, WordPress is excellent.
A website really needs 3 things:
For the purposes of this comparison, I focus on hosted WordPress.
Complexity: Low
Price: ~$4/mo per website. ($8/mo if you want revenue.)
Speed: Good - Pages load quickly.
Management Overhead: Low.
Custom Email: Available.
Link: WordPress.com
Complexity: Medium-High
Price: ~$3/mo for 1 or more websites. (Wordpress is typically a free install.)
Speed: OK - Good enough for most sites.
Management Overhead: Low-Medium
Custom Email: Available
Examples: DreamHost, BlueHost, GoDaddy
There's no shortcut here. Providing decent content is 97.6% of the effort behind maintaining an online presence. Notice how this is the shortest section? Good Luck!
Domain names are the original "online real-estate." Some names trade hands for millions of dollars and most "useful" names are now available only through auction or for sale by owner. Selecting a domain name for a website is an important piece of any branding exercise and the price to usefulness ratio should be carefully weighed when starting out. If you end up making millions of dollars per year (or month), go ahead and spurge. But, while you're just getting off the ground, maybe take it easy. Remember that you can pay for a .io domain (about $35/year) for over 10 years before a $350 .com domain breaks even.
Due to the shift in domain real-estate over the last 10 years, there's arguably no difference in search engine priority (SEO) between any of the available top-level domains (TLDs).
When you're ready to buy, remember that your domain name is the foundation of your online presence and should be purchased at a reputable registrar. Be sure to enable two-factor authentication at your registrar AND use a unique and strong password to secure your digital assets.
For simplicity and security, I recommend Google Domains. If you're looking for something less "Big Tech-y," consider Namecheap or Uniregistry (now owned by GoDaddy.)
Some hosting providers provide built-in support for purchasing and managing domain names. This may be a great way to reduce the complexity of your setup, and speed through to the finish line.
The hard part is content really. Keep an eye on which providers have the best documentation to help guide you through their individual administrative and management tools. The setup guides should also clearly define how to point your custom domain at your new website with relative ease.
Liked what you saw here? Checkout Nate’s other ramblings at nsviews.com.
]]>At a high level, you'll export a CSV (Comma Separate Values) file from 1Password and import that same file into macOS Password Manager.
Open 1Password on your Mac.
Select File > Export > All Items...
In the Export window, select File Format: iCloud Keychain (.csv)
Name it and save the file.
Important: Pay close attention to this file and keep it safe. YOUR PASSWORDS ARE NOT ENCRYPTED AND ARE STORED AS CLEAR TEXT AT THIS POINT.
Take careful note of where you save this file. Notice I use iCloud Desktop and Documents... this will save my password in clear text in iCloud. While not a question of whether iCloud is secure, there's no need for clear text passwords to leave my Macbook. Ever.
I recommend saving locally, or creating a new folder with ".nosync" suffix that will prevent iCloud from syncing the folder.
Open System Preferences and select Passwords.
Here, you'll be able to select "Import Passwords..." from the list view overflow menu.
Select Choose File.
Navigate to the location you saved your exported CSV file and select Import.
Again, please pay special attention to where you saved this file. DO NOT keep this file as is. All of your passwords are stored in plain/clear text at this point. You should delete this file immediately after import is complete.
That's it! At this point, all of your stored logins should be available in iCloud Keychain across all your devices.
Remember to delete any CSV or other format that stores passwords as clear text. This includes .1pif, .json, etc.
I also highly recommend backing up your passwords using an encrypted Disk Image and storing on a Flash Drive. NEVER store your passwords in clear/plain text.
Liked what you saw here? Checkout Nate’s other ramblings at nsviews.com.
]]>Your iPhone has a built-in wi-fi access point that allows you to connect your laptop, iPad, or other wi-fi devices to the Internet using your 5G or LTE connection. Most mobile carriers include some amount of hotspot data in their data plans.
See for yourself how simple it is to use.
First, make sure the Personal Hotspot feature is enabled. If your mobile carrier allows the hotspot feature, it will automatically appear in your Settings list beneath "Cellular" option.
While most carriers allow some amount of Hotspot data today, you'll need to ask your mobile carrier about enabling the hotspot feature if you don't see the option in Settings.
The most common way to connect to a Wi-Fi hotspot is with a password. You'll find a randomly generated, unique password by default. You're free to edit this as you please. To protect your mobile data, I recommend using the random password or other strong password.
As of iOS 15, the Personal Hotspot feature secures wi-fi traffic using the latest WPA3 standard. The feature is also backward compatible with WPA2 devices.
If your laptop and phone are both signed in to the same iCloud account, this process is mostly automagically handled for you. However, if you keep personal and work computers, you may have to type the password manually. Remember your hotspot password can be found on the Personal Hotspot options screen in Settings.
Checkout Nate's other ramblings at nsviews.com.
]]>Extracts an audio track from a fully muxed input file.
ffmpeg -i stream_file.m2ts -map 0:a:0 audio.wav
Extracts a video track from a muxed input file.
ffmpeg -i stream_file.m2ts -c copy -an vid_only.mp4
]]>sudo killall -HUP mDNSResponder
Sometimes you just have to flush your cache.
]]>{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"features": {
"buildkit": true
},
"experimental": false
}
Follow instructions on the install page.
Follow instructions on the Windows install page.
]]>This modern dependence on Internet services reveals the problem that many identity systems and associated infrastructure have not yet caught up to the criticality of the services and functionality they're used to protect. The old email address and pass phrase is too cumbersome for most, and too simple to extract either from the individual (phishing) or service provider (data breach).
Most websites today offer some form of two-factor or at least two-step sign-in. Use it! Providers implement this feature for your protection.
Stay alert and ask yourself a few questions:
Creating an account with a website often makes sense if you plan to place an order or plan to visit repeatedly. Just keep in mind that you're likely signing yourself up for marketing emails and providing your personal information to a service provider. Online accounts are protected by various authentication techniques. It's likely that you'll be asked to provide your email and create a unique password in order to create an account with a provider.
Simplest answer? Authentication allows us to delegate our online identity to others who are quite good at managing them for us.
E-mail is a great example of delegation. While email itself is open and designed to be distributed, it’s often impractical for all of us to run our own email server in our home. Consider receiving a paper letter at your home. You retrieve this letter at your convenience, but it was delivered by a postal worker who left it in your mailbox that exists indefinitely in physical space. If maintaining a physical mailbox at your home is unpractical, you have the option to rent a mailbox at a post office. A P.O. Box is a delegated mailbox because you allow someone else to accept your letters. You can then retrieve letters from the mailbox with a physical key, provided by the Post Office at time of rental.
In order to receive a letter in “online” space, you must also maintain a mailbox, just like the physical mailbox. Receiving email requires a computer to be “online” and available every day in order to receive a message. To receive that message in a timely manner, that computer must be listening 24 hours a day for new mail.
For reasons ranging from technical effort to cost of electricity, most of us delegate the maintenance of our virtual mailboxes to a mailbox-provider like Google or Microsoft. In order to restrict access to a delegated mailbox, we must be able to prove to our mailbox provider that we should be allowed to view the messages in the mailbox. Authentication is the digital replacement for the physical mailbox key.
I refer to Authentication here as any workflow where one party makes an identity claim to another party, and then proves they are who they say they are.
Traditionally, most websites and Internet services have relied on a username as an identity claim, and password or shared secret to prove that identity claim. In the last decade or so, email addresses have become the standard replacement for username mostly because they’re easy for users to remember, and guaranteed to be unique. (Only one user can sign up per email address.)
This traditional email/password combination serves as the most basic identification challenge. The purpose of adding a second step to this authentication workflow is to supplement something you know with something you have.
For example, a thief may know the exact make and model of your car, but they don’t physically possess the key. Therefore, they cannot steal your car. If that same thief were to steal your car key, but your car required a pass phrase in addition to physical key, your car would remain safe. The same is true when accessing your email online. You must enter your secret pass phrase (something you know), and prove that you’re in possession of some physical key (something you have). This is the general design concept behind two-factor authentication.
Many of today’s online services have elected to implement a second factor of identification through a mobile phone via SMS. The purpose of the 6-digit code is to confirm the "something you have," your phone. While this provides a two-factor solution to nearly 100% of today's users, it relies on a decades old transport layer that was never intended to be secure (sms). SMS is not necessarily insecure, but there are still ways to hijack or steal your phone number and therefore your SMS codes. For this reason, your mobile phone carrier must be trustworthy and also enforce two-factor authentication.
While there are many reasons why two-factor over SMS is not ideal, it does greatly improve the user’s security and provider’s confidence that it is, in fact, that user signing in.
Check out the 2fa directory maintained by 2factorauth.