Easily Extend Images with Photoshop’s Generative Fill

If you have a photo that is too small and you wish it were wider or taller, you can use Photoshop’s Generative Fill feature to fix that. Here’s an example.

Open the image in Photoshop

Enlarge the canvas

Let’s say I want to make the image wider. Using the Crop tool, enlarge the canvas.

When you do this, you’ll see a command prompt below the image.

Click Generate

If you just click Generate, Photoshop will fill in the empty parts to blend in with the original image.

Try custom commands

You can also tell Photoshop how you want to fill in the empty space. For example, if I write, “Fill the empty space with a jungle”

or just “jungle”

I get three variations.

Easily Annotate Screenshots Using Excalidraw

1. Take a screenshot

For example, I’ll take a screenshot of the Yahoo homepage.

2. Paste into Excalidraw

The nice thing about excalidraw is you don’t need an account. Just go to https://excalidraw.com/ and paste.

3. Annotate the screenshot

There are a ton of options, but the options that exist should be sufficient. Some common features are

  • create an outline (rectangle, circle, triangle)
  • draw an arrow or a line with different endpoints

If you use the arrow tool and then hit enter, you can add text in the arrow.

You can then take a screenshot of your annotated screenshot to share with others.

Effective vs Ineffective Work Meetings

In some companies, some people have way too many meetings. Of course, some meetings are necessary, like when you need to discuss an issue. But some meetings are pretty much just status updates. For example, within a marketing department, you will have many teams, including public relations, events, web, design, content, campaigns, etc. Within each team, you’ll have a team lead and other people of varying ranks. What some companies or departments do is they have long meetings every month or so where everyone attends. Then, the team lead from each unit takes turns giving a status update. While this may seem like a good use of everyone’s time, it’s actually dumb as hell. Many, if not most, people will not care about what other teams are doing because the activities of other teams are simply irrelevant to them. They may try to pay attention, but because much of what is said doesn’t matter to them, they will likely forget what was said within a few days if not hours, resulting in a complete waste of many people’s time. Another problem is time management. If each speaker is given 5 minutes to talk, most likely they will talk for much longer and not everyone will be able to share their updates or the meeting will just last for much longer than it needs to. If your team is spread across multiple time zones, e.g., the US and India, then people will inconveniently have to attend these pointless meetings early in the morning or late in the evening. Interestingly, some people are in so many meetings that they don’t even have time to do any of the actual work that they’ve discussed in the meetings. Another problem with these types of periodic (weekly or monthly) status update meetings is people are forced to try to remember their activities or accomplishments, put them in a few Powerpoint slides, and then wait till the meeting happens, only for the activities to become old news because they happened too long ago.

For a live meeting to be effective, it should meet the following criteria:

  1. only relevant people should attend
  2. there should be a clear agenda with an issue that needs to be discussed or one that involves something that is easier said and shown rather than written.
  3. if a live discussion is required, the issue to discuss should be sufficiently complex, important or urgent.

For discussions that don’t need to be in real time (asynchronous discussions), then communicating via chat where only relevant people are involved is usually effective.

For status updates, they are actually more effective when they are written, e.g, via group chat, as long as they are concise and formatted well so that people can easily consume all of it or just the parts that are relevant to them. This also gives people time to think about a particular update and follow up with relevant people if needed. It also allows anyone, not just team leads, to post important updates as soon as they happen.

Following are some quotes from various sources on the topic of providing status updates. Many of these quotes are from companies that provide communication and collaboration tools. Regardless, they do have a point.

Status updates don’t belong in meetings. Status updates are ineffective team meetings, says Baker. “A round-robin of what people are working on can be handled over email or a collaboration tool.”

Slack (from Salesforce)

Status updates are the hallmark of a poorly run meeting. Let’s say every week, each person on your team goes around in a circle and provides a high-level update of what they are working on. Without fail, many of these items are ONLY relevant to a few people.

friday

Sitting through another status meeting where the project manager reads through a spreadsheet list or flips through slides on a presentation isn’t a productive use of anyone’s time. In fact, 56% of US workers get irritated by meetings that could’ve been an email. To make the best use of your team’s time, switch to asynchronous meetings where possible.

When updates or discussions aren’t relevant for the entire team, some people can end up disengaging. Inviting too many people who don’t need to be there can also cause meetings to become irrelevant. Set a high bar for whole-team meetings. Reserve meetings involving the entire team or a larger group for topics that truly require collective discussion and decision-making.

Switchboard

To be plain, many status meetings don’t need to happen. Instead, many status update meetings could be emails, memos, threads on collaboration platforms like Slack, or quick check-ins between colleagues on their own. Many status meetings happen by tradition: “We always do a Monday morning status meeting.” “Wednesday are for team updates.”

BetterMeetings

Almost 50 percent of respondents in a recent poll said they would rather go to the DMV or watch paint dry than sit in a status meeting.

Lucid meetings

One of the worst kinds of status meetings to attend is the type in which everyone goes around the room and states what they accomplished the prior week. This practice is a colossal waste of time. If this is the entire point of the meeting, then don’t call one. An effective PM can get these updates prior to a meeting, distribute them and then discuss issues at the meeting.

Amanet

Why Weekly Synch Meetings Are Boring and A Waste of Time [Rhythm Systems]

LosslessCut: Join/Merge Multiple Video Clips Almost Instantly

Let’s say you have a bunch of video clips and you want to simply join them together without any fancy transitions or anything. The clips could be from a bunch of short videos you took on your phone, action cam, or maybe even your security camera. In my case, I had 2 Wyze cam security cameras that recorded 24/7 footage to an SD card. Each video clip was one-minute long grouped by folder indicating the hour of the day and then grouped by day of the year.

Your first thought might be to drag all video clips to a video editing tool like Adobe Premiere or Corel VideoStudio and render one combined video. I tried that using VideoStudio but it had to reencode all clips which took a long time. Also, the resulting file size was huge because the lowest encoding settings available were much higher than the source audio and video settings.

LosslessCut

LosslessCut describes itself as the swiss army knife of lossless video/audio editing.

 The main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard many gigabytes of data without doing a slow re-encode and thereby losing quality. Or you can add a music or subtitle track to your video without needing to encode. Everything is extremely fast because it does an almost direct data copy.

Download LosslessCut

The thing I hate the most about video editing is how long it takes. I tried LosslessCut to join 60 video clips and it completed almost instantly. Drag the files to the window.

LosslessCut will allow you to sort the files. Just drag a file to the position where you want it to go. Check the “Include all streams?” checkbox and click “Merge!”

Missing Audio

In my case, I couldn’t use LosslessCut directly with the mp4 files from Wyze Cam. I would get this error.

I then converted each file to MOV and then I was able to merge each MOV file. But, when I imported the MOV file into Corel VideoStudio, there was no sound. This seems to be a common issue for many people. Apparently, the audio codec used by Wyze Cam is some unknown one. To remedy this, I first batch converted all video clips using HandBrake while keeping the audio and video quality almost the same. In the screenshot below, you can see the audio is being converted from “1 Unknown” to “160 kbps AAC).

After batch encoding all video clips, I was able to merge them instantly using LosslessCut.

Free Topic-Based Communication Tool for Small Groups Like HOAs

I’ve used many enterprise-level productivity tools like Atlassian Jira, Confluence (Wiki), Microsoft Teams, Asana, and, of course, email. Asana seems to be the best for managing large projects that have multiple tasks and deadlines. Microsoft Teams is great for having discussions separated by topic and sharing documents related to each discussion. As the president of an HOA (Homeowner’s Association) that pays an experienced property manager, it’s interesting that we’re still communicating by email because so often we’d have a hard time finding specific information and documents. Microsoft Teams would be a big improvement but the free version doesn’t come with some useful features available in the paid version. Of all the tools I’ve used, it looks like Slack fits the bill because 1) there is no bill (pun intended – there’s a free version) and 2) it comes with features similar to the ones in the paid version of Microsoft Teams. This post will explain some of Slack’s features that could be beneficial for small groups like an HOA.

Separate Discussions By Topic

One of the problems with a simple chat tool is different topics get lost in one super long chat. At my HOA, we have different topics to talk about, e.g. landscaping, security cameras, parking, etc. With Slack, you can create multiple channels to represent these topics. Each channel is a separate chat discussion as you can see in the screenshot below.

In the screenshot above, you can see:

  • Group Name: Antoine Ct Landlords
  • Channels: These are discussion topics:
    • landscaping-cleaning
    • security-cameras
    • vehicles-and-parking
  • Direct messages: this shows you who is in the group and allows you to send a message directly to one specific person
  • Apps: you can see the list of apps you’ve integrated with Slack such as a polling app

In the screenshot above, the chat in view is the one for the landscaping-cleaning channel.

Apps

Slack allows you to integrate many apps for a seamless experience. Below are some of the apps you can integrate.

One thing we often do as an HOA is conduct polls. You can add a polling app and then create a poll in a channel. For example, I added the Simple Poll app and created a poll in the landscaping-cleaning channel. In the screenshot below, the simple poll asks if everyone wants to hire one landscaper for all units and split the cost. The answer options are simply yes and no.

Of course, if there is too much chatter, the poll can get buried in the history of chat messages. If that happens, you can pin the poll to the top. It then shows up in the bar at the top of the channel like this:

Chatting is useful, but eventually you’re going to need other productivity tools like documents, spreadsheets, presentations, etc. In the chat field, you can click the + button to insert things other than text, e.g. create a post.

A post in Slack is like a Google or Word doc.

If you prefer to use a different tool like Google Docs, you can link the Google Doc to your Slack channel. Just copy the Google Doc share URL and paste it into the chat and, optionally, pin it to the top as I did for the poll example above. Or, you can create folders in the bar at the top of the channel to organize documents and chat messages. In the screenshot below, I clicked the + button to add two folders: Documents and Photos.

I then hovered over the Documents folder link and clicked Add to bookmark to add links to external resources:

  • Test Document 1 (link to a shared Google Doc)
  • Association Website (link to a WordPress site)

Multiple Teams

If you are part of multiple groups or teams of people, you can create a separate Slack group (called Workspaces). In the screenshot below of the Slack homepage, I see the workspace for the example HOA group mentioned above called “Antoine Ct Landlords”. There is also a button to create a new workspace.

If you are part of a small (or large) group of people and need to discuss many topics and don’t want to pay a monthly fee, you may want to give Slack a try.

Calculate Frequency of Unique Values in Google Sheets

I’m often finding myself needing to calculate the frequency of unique values in a spreadsheet. It turns out it’s a 2-step process. For example, if you have a column of data as shown below and you want to know how many times the numbers 1, 2, and 3 occur, you need to first add a column containing the unique values in column 1. Then, you can use the frequency function to calculate frequency.

1. Get Unique Values

In column 2, get the unique values in column one using the unique function:

=UNIQUE(A2:A7)

If you want, you can also sort the values as follows.

=SORT(UNIQUE(A2:A7))

2. Get Value Frequency

In column 3, get the value frequency using the frequency function. The data is in column 1 and the classes are in column 2.

FREQUENCY(data, classes)

=FREQUENCY(A2:A7, B2:B4)

Google Sheets seems to want to add an extra row with the value 0. I just ignore that.