Google Cloud's Secure Web Proxy
Google Cloud Secure Web Proxy (SWP) provides a simple, cloud-first web proxy for cloud workload protection. With scalable security for your cloud workloads, SWP enables content inspection with granular policy control of web traffic between Google Cloud hosted workloads and hosted workloads to internet destinations. Watch along and learn about this out-of-the-box solution with no virtual machine setup, no manual software updates, and the utmost flexibility and control.
Obviously, I did VO for this video. I also wrote the script and did rough designs for the visuals (real artists made them a reality). I see that one of the comments already says that this is a game changer.
Find out more about Google Cloud Access & Policy Controls → https://goo.gle/AccessAndPolicyControls
And don't forget to Subscribe to Google Cloud Tech → https://goo.gle/GoogleCloudTech
When we hit 1 million subscribers, we've got some special videos for you.
Cybersecurity and customer success - This Week In Cloud
On this week's episode of of This Week in Cloud, I point you to blog stories about Cybersecurity, customer success stories, and Document AI 1-Click model training.
On this week's episode of of This Week in Cloud, I point you to blog stories about Cybersecurity, customer success stories, and Document AI 1-Click model training.
All this while wearing my favorite color, purple. I think that's why I was smiling so much in the thumbnail for the video ;)
The Cardist and the Cloud
In my last post I mentioned that I was going to be recording another video last week. Well, it got uploaded today so here it is.
In the video I discuss...
- The Multicloud Mindset series on Twitter Spaces
- Cloud training specifically for Ukrainians
- Org Policy Service
For the shoot I wore my card connoisseur shirt that really stole the show. Also, I need to get a haircut so I don't have to pull my hair back like that.
In my last post I mentioned that I was going to be recording another video last week. Well, it got uploaded today so here it is.
In the video I discuss...
- The Multicloud Mindset series on Twitter Spaces
- Cloud training specifically for Ukrainians
- Org Policy Service
For the shoot I wore my card connoisseur shirt that really stole the show. Also, I need to get a haircut so I don't have to pull my hair back like that.
When I gave 20% and did my first TWIC
Before I joined the DMN/S team full time, I worked with them as a 20% project. 20% projects are when you get to put 20% of your time into some other project, that may have nothing to do with the team you are working with. It wasn't writing code, per se, but it was talking tech - or being a developer advocate, something I have been trying to do before I even joined google.
In a recent post, I mentioned that I started to work for a new team at Google. That team is the Developer Media Network/Studios (DMN/S) team. It is tasked with creating engaging, digital content at scale.
Before I joined the team full time, I worked with them (then named the Online Content & Experiments, or OC&E, team) as a 20% project. 20% projects are when you get to put 20% of your time into some other project, that may have nothing to do with the team you are working on. It wasn't writing code, per se, but it was talking tech - or being a developer advocate, something I have been trying to do before I even joined google.
The June 20th, 2022 episode of This Week In Cloud (TWIC) was the first piece of work I got to help with by being that week's host. TWIC is a show where we, "serve you the lowest latency news." Or, rather we tell you the news of Goggle Cloud over the past few weeks.
In that episode, I discussed:
- Calculating trillions of digits of pi
- Web-GL Maps
- Machine Learning acceleration
Have a watch and let me know what you think of my first go and maybe my swank Google accessibility shirt.
I'll be recording another episode of TWIC this week so keep an eye out on my twitter and other socials for it in a week or so (video productions takes time).
Google Cloud Armor, New Red Pin on Maps, & more!
I've been putting in 20% of my time at work with a team that creates content to teach and discuss [Google Cloud Tech](https://cloud.google.com). For that reason you can hear me on previous episodes of the [Google Cloud Reader podcast](https://cloud.google.com/podcasts/cloud-reader) and see me in an earlier episode of [This Week in Cloud](https://www.youtube.com/playlist?list=PLIivdWyY5sqIxUCyOq0-FPNn5GZ2-XR45). However, last week I've changed teams and am now on the Developer Media Network team 100%. This is my first video since I started.
I've been putting in 20% of my time at work with a team that creates content to teach and discuss Google Cloud Tech. For that reason you can hear me on previous episodes of the Google Cloud Reader podcast and see me in an earlier episode of This Week in Cloud. However, last week I've changed teams and am now on the Developer Media Network team 100%. This is my first video since I started. I figure that I out to start posting them here.
Minecraft + Francophile = Outrageous Accents
As a francophile, I thought it would be funny to make the villagers make stereotypical french sounds. Someone I play with cheered the idea on when I mentioned it. And thus, the Outrageous accent pack was born.
At the beginning of the pandemic I started playing Minecraft. In fact, I play it a whole lot now. The cool thing about the game is that there is a whole world to be creative in. In fact, you can be creative outside of the world as well. I've done a few YouTube videos and will probably do more at some point. I've been streaming Minecraft on Twitch, almost exclusively. However, only recently did I decide to try my hand at making a resource pack for the game.
As a francophile, I thought it would be funny to make the villagers make stereotypical french sounds. Someone I play with cheered the idea on when I mentioned it. And thus, the Outrageous accent pack was born.
But how should I share this lark with the world. The player who cheered me on loved it when I sent it directly to her. She even shared it with some of the other people we play with. As a software engineer who is looking to make toy projects to learn different things, I decided to take it to Github.
At work, we use a specialized version of the build tool Bazel. I thought, it would be fun to overengineer a solution to package this add-on. As I thought about it, it seemed it would make it easy to package it for both the Bedrock and Java editions of Minecraft that way. In fact, it did.
So, today I have put out my initial (and maybe only) release for this add on on GitHub.
Outrageous Accents 0.0.2 Release
I have a few ideas of things I could do for this add-on. Or maybe, I’ll make other packs. I did like making a sound pack. My audio background and my desire to do silly voices had fun with this. Perhaps there are other areas of the game I could change the sounds for. I’m open to ideas.
Clean vimrc with plugin files
If you start to work in Vim, you start to edit your .vimrc file. Or, in the case of a Neovim user you might be editing your init.vim file. Either way it can quickly grow unwieldy. By unwieldy, I mean a bunch of lines of Vim script that don't necessarily connect contextually with the lines around them. If this doesn't bother you, you can stop reading now. Come back to this article when it does.
If you start to work in Vim, you start to edit your .vimrc file. Or, in the case of a Neovim user you might be editing your init.vim file. Either way it can quickly grow unwieldy. By unwieldy, I mean a bunch of lines of Vim script that don't necessarily connect contextually with the lines around them. If this doesn't bother you, you can stop reading now. Come back to this article when it does.
An Example
I just started using Neovim on my computer and I've been configuring it the way I want it. It hasn't grown very large, so it is still a good example for a blog post.
filetype plugin indent on
syntax on
color industry
set nu
set encoding=utf-8 "need for YCM
set splitright
set tabstop=2 shiftwidth=2 expandtab
set statusline=2
let mapleader = ","
" Window navigation with Alt
inoremap <A-h> <C-\><C-N><C-w>h
inoremap <A-j> <C-\><C-N><C-w>j
inoremap <A-k> <C-\><C-N><C-w>k
inoremap <A-l> <C-\><C-N><C-w>l
nnoremap <A-h> <C-w>h
nnoremap <A-j> <C-w>j
nnoremap <A-k> <C-w>k
nnoremap <A-l> <C-w>l
" Terminal Mode mappings
tnoremap <F12> <C-\><C-n>
tnoremap <A-h> <C-\><C-N><C-w>h
tnoremap <A-j> <C-\><C-N><C-w>j
tnoremap <A-k> <C-\><C-N><C-w>k
tnoremap <A-l> <C-\><C-N><C-w>l
tnoremap <expr> <C-R> '<C-\><C-N>"'.nr2char(getchar()).'pi'
let g:python_host_prog='C:\Python27\python'
let g:python3_host_prog='C:\Python37\python'
noremap <leader>emu :!START /MIN E:\AppData\AndroidSDK\emulator\emulator -avd Pixel_2_API_27<cr>
function! Writing()
setlocal nonumber " no linenumbers
setlocal guioptions-=r
setlocal guioptions-=L
setlocal wrap
setlocal linebreak
setlocal display+=lastline
setlocal spell
" Work with wrapped lines
nnoremap <buffer> j gj
nnoremap <buffer> k gk
nnoremap <buffer> 0 g0
nnoremap <buffer> $ g$
endfunction
let wiki_1 = {}
let wiki_1.ext = ".md"
let wiki_1.syntax = "markdown"
let g:vimwiki_list = [wiki_1]
" Move this to the appropriate ftplugin
augroup RunWritingProgramForWritingFiles
autocmd!
autocmd BufNewFile,BufRead {*.txt,*.markdown} call Writing()
augroup END
What's in there right now?
- Basic Vim configurations to make my workspace feel the way I like
- A commented section that deals with window navigation
- A few lines related to development. Only 1 I'm sure I need
- A function called Writing
- Configuration for the vimwiki plug-in
- An auto command block that uses the Writing function
- And notice it has a comment about ftplugin
So how should we approach cleanup of this file? You could start by moving the Writing function and the auto command block next to each other. That might be enough for a file this small, but let's go further.
We have 3 (probably 4) sections that could be pulled out into their own files
- Window Navigation: move to winnav.vim
- Writing: move to writing.vim
- Include the auto command block
- Wiki configuration: move to wiki_setup.vim
If you've moved the sections then restarted your (Neo)Vim session you've suddenly lost your configurations. What to do? What to do?
(Don't) Use the source Luke
You could add source lines to your .vimrc file so it looks like this
filetype plugin indent on
syntax on
color industry
set nu
set encoding=utf-8 "need for YCM
set splitright
set tabstop=2 shiftwidth=2 expandtab
set statusline=2
let mapleader = ","
let g:python_host_prog='C:\Python27\python'
let g:python3_host_prog='C:\Python37\python'
noremap <leader>emu :!START /MIN E:\AppData\AndroidSDK\emulator\emulator -avd Pixel_2_API_27<cr>
source winnav.vim
source writing.vim
source wiki_setup.vim
That would be fine. It does have the benefit of giving you easy breadcrumbs to follow. We could do that. Fun tip, you could change source to runtime if you want. However, it still seems a little messy and it isn't the point of this article anyway ;)
Plug it in, plug it in
There are lots of special folder names in Vim configurations. I hope to get to others in future articles. For now, let us discuss the plugin folder. More information can be found from :help standard-plugin, but basically this folder is where you put stuff you want automatically loaded on startup. These are the simplest plug-ins and that is what we are doing. Creating simple plug-ins.
A possible downside you might see to this (other than the afore mentioned lack of breadcrumbs) is turning it off if you don't want it. This is actually easier now. Before, these multi-line sections would require a surrounding if block or commenting out of each line. You can still comment out out each line as you'd like but you could also just put the command finish at the top of the file. This also makes it easy to wrap control commands to stop it from getting loaded in certain situations.
Conclusion
There are lots of ways to organize your files and you need to find what works for you. If you like putting files in the smallest contextual units, this is a pretty good way to do so without cluttering up your configurations.
This is what our .vimrc file looks like now.
filetype plugin indent on
syntax on
color industry
set nu
set encoding=utf-8 "need for YCM
set splitright
set tabstop=2 shiftwidth=2 expandtab
set statusline=2
let mapleader = ","
let g:python_host_prog='C:\Python27\python'
let g:python3_host_prog='C:\Python37\python'
noremap <leader>emu :!START /MIN E:\AppData\AndroidSDK\emulator\emulator -avd Pixel_2_API_27<cr>
We could probably move those last 3 lines out too.
We didn't get into a full plug-in with more idiosyncrasies. Hopefully this gets you part of the way there if you are interested.
Vim + Kotlin + Android App
It has been a long time since I've written about programming. I used to write a lot about Actionscript back when I was a professional Flash/Flex/Actionscript developer. It was one of the things that helped me to become an expert in the field. For reasons, mostly having to do with employment agreements that scared me, I stopped writing. I also created a disclaimer, which I linked on all my social media, for this reason.
I want to learn like that again. It is for this reason that I've challenged myself. I have challenged myself to create an Android App, in vim (or a vim variant), with Kotlin. This seems like quite a bit of pain. Why would I do this to myself?
Vim + Kotlin + Android App
It has been a long time since I've written about programming. I used to write a lot about Actionscript back when I was a professional Flash/Flex/Actionscript developer. It was one of the things that helped me to become an expert in the field. For reasons, mostly having to do with employment agreements that scared me, I stopped writing. I also created a disclaimer, which I linked on all my social media, for this reason.
I want to learn like that again. It is for this reason that I've challenged myself. I have challenged myself to create an Android App, in Vim (or a Vim variant), with Kotlin. This seems like quite a bit of pain. Why would I do this to myself?
My main reason for all this is learning. I've yet to use Kotlin for anything more than small scripts I learn Kotlin with. Working on a whole application in the language will force me to get more comfortable with it. Since I currently do Android development for work, it can help me to be able to jump to Kotlin when we start using it on our team.
But, Why?
But why would I build an Android App in Vim (or neovim/veonim more likely)? That just seems like torturing myself. Android Studio is a really great IDE. If I want Vim key bindings, IdeaVim is a very decent option. The reason is still learning. IDEs are great, but it's that 'I' that hides the inner workings from us. This is a great thing. Most of the time we don't want to be bogged down with how things work, we just want it to work. If we use the metaphor of a car, most drivers just want them to be able to drive but don't really care about the details. It's time for me to understand how different things work? How do I build? How do I install? How do I debug? All of this, from the command line. Then, how do I present it to myself in my neovim setup? Can I also learn about creating a Vim plug-in?
I've been using Vim key bindings for years. In recent months I've gotten very comfortable in command line Vim and am now using neovim quite a bit. In the past couple days I've been testing out veonim, an IDE-esque experience based on neovim. So far, it seems like neovim but with a bit of presentational polish. So I'll be learning that as well.
Conclusion
So, it is time to learn again and I've got a plan. This is actually what I always recommend to people. If you want to learn some aspect of computer programming, make something. It is in the process of making something, running into and overcoming problems, that you learn.
So, what's the project? I'm going to work on creating an App for my podcast, The Spoilers with Diacre. At the most basic it will be a podcast player. That's a complex enough App to last me quite a long time and hopefully a few articles.
This article was written in neovim with the vimwiki plugin and a few learnings from the book Writing with Vim by Anthony Panozzo
Ironic Police Interaction
A weird thing happened as I left the theater after performing tonight. It was just after midnight, and as I walked to my car I heard what I thought might be gunshots coming from up the Fremont hill. Whatever it was, it was definitely loud enough to echo clearly off of Queen Anne Hill. Being the tech dork that I am, I know that the Seattle Police Department has a pretty good twitter feed. Maybe there will be a tweet on their feed that says if something is happening in an area I usually drive home through. I’d be more than happy to take a detour and stay away from gunfire. So, I planned to check my phone when I got to my car.
A weird thing happened as I left the theater after performing tonight. It was just after midnight, and as I walked to my car I heard what I thought might be gunshots coming from up the Fremont hill. Whatever it was, it was definitely loud enough to echo clearly off of Queen Anne Hill. Being the tech dork that I am, I know that the Seattle Police Department has a pretty good twitter feed. Maybe there will be a tweet on their feed that says if something is happening in an area I usually drive home through. I’d be more than happy to take a detour and stay away from gunfire. So, I planned to check my phone when I got to my car.
My parking space is my favorite near the theater. It is a location that parking is only legal at from 7PM to 7AM. Since call time for an 8 o’clock show is at 7 it is perfect. So, at this time, my 18 year old car has been sitting at this spot for just over 5 hours.
I get to my car and turn it on before looking at my twitter feed. No lights yet. No seat belt yet. Heck, the parking brake is still on. I just need it to defrost while I’m looking at my phone to see if those were gunshots and if so where at. As I’m looking up the twitter feed, there’s no posts newer than a day. Not very helpful. So I try a few keyword searches like “seattle gunshots” to see if I can find anything.
As I’m looking to find information, a bright light shines in my car. I look over my shoulder and see that it is a police officer. He has no lights on or siren, so I had no idea he was in the lane next to me. So, I turn on my lights. I buckle my seat belt. Before I can get the parking brake off he gets a chance to pull up to the side of my car and rolls down his window. Like most modern cars his is an automatic window. My car has the old school manual crank to roll it down. This was a silly thing that I noticed at the time.
I said nothing. I figured the police officer was going to say something to me. I was not wrong. “You can’t stop here. I need to get through for [a call]*.” I said nothing as he got passed me and the car in front of him he briefly turned on his lights to go through the intersection then they went back off again.
So, undid the parking brake and drove home. As I drove home I did see many other police vehicles coming into Fremont at the top of the hill. Two thoughts came to me as I drove.
- If I had stayed in the theater 5 or 10 minutes longer to talk with people he wouldn’t have anyone to talk sternly to. Would I have gotten a ticket that I’d need to contest?
- If he had communicated with me politely and said, “Could you please move, I need to get through quickly” things would have gone better. Well, in the short term they would have been the same because he was gone before I could get moving. In the long term though, I wouldn’t have written this post and perhaps he wouldn’t have been annoyed by me when he got to wherever he was going.
Jeff McBride fools Penn & Teller
I'm starting to blog again when low an behold, my favorite magician shows up on Penn & Teller's Fool Us. In a routine called "Rain maker", Jeff McBride appears to make water appear from nowhere.
I'm starting to blog again when low an behold, my favorite magician shows up on Penn & Teller's Fool Us. In a routine called "Rain maker", Jeff McBride appears to make water appear from nowhere.
I actually have seen him perform this live and even inspected the bowls myself. They are not gimmicked in any way.