There are a couple of curated resources I use regularly for discovering new things that can help improve my life.
Please let me know if you have resources you like for these sorts of things. I'm always on the lookout for good quality resources.
There are a lot of Google search tricks out there. OK, not exactly tricks, but functions that aren't obvious but are super useful. One of my favorites is the site: command. It tells Google to only return results from a particular web site. If a site has a poor quality search feature, then using Google is a quite useful alternative.
For example, if I'm looking for WCN's annual report, the site search lists 2013 as the top hit. But if I use Google site search, I get all of them. (2016 is the third result for some reason, but at least it is there.)
annual report site:wildnet.org
You can also use it to browse all the images on a site. I find this useful for getting a high-res logo, or for pulling down an image that I can use in promoting the site.
I still use an RSS reader (Feedly) for much of my news. It's the best way I've found to aggregate all of my sources in one place. But for a few sources (including my own organization’s news feed), I want to know immediately when something new is posted.
I did some research of various services, and the one I ended up using and liking best is RSSFWD.com.
It's run by an email marketing platform called Campaigner. which I don't use. But I do love companies that provide useful tools to the world for free. So giving them a shout out as a company worth checking out if you are looking for email marketing. (Definitely don’t go with Vertical Response.)
MacBook Pros—at least the Retina display ones—have a built-in HDMI adapter, which works perfectly for driving an external monitor with a native resolution of 4K (2460✕1440). However MacBook Airs only have a ThunderBolt port, so you'll need an adapter.
I started with a standard ThunderBolt (or mini DisplayPort) to HDMI adapter, but the resolution peaked at HD (1920✕1080). I wasn't sure if it was the adapter, the monitor, or the MacBook, so I tried swapping out all 3.
From that, I discovered that a mini DisplayPort to DisplayPort cable was the only configuration that worked reliably. Of course this means you need to get a monitor that has a DisplayPort input. Not all of them do, but thankfully there are enough choices, and even some at the lower end of the price range have it.
We use VoIP phones at work, and have standardized on the Polycom VVX-310 desk phone. By default when you transfer a call, it will show the transferer's extension rather than the original caller’s info. Super annoying.
But there’s a really simple fix for this buried in the phone’s settings. This RingCentral article walks you through it, but the exact steps might be different for a different model of phone. For theVVX-310, it is:
And you're done! You can back out of the preferences to the main screen.
Siri dictation (speech to text) for emails and text messages is by far the quickest and easiest way to input text on the iPhone. Just tap the microphone button to the left of the space bar on the iPhone keyboard. And these tricks will make it even easier.
First, you can name pretty much any punctuation character to add it: period, question mark, exclamation point, comma, colon, dash, close paren, ellipsis…
You can also insert returns by saying new line, or start a new paragraph by saying new paragraph.
And Siri knows a few emoticons too: smiley, frowny, and winky.
But please only use these (and dictation in general) when you are alone. Don't be that jerk.
We have a campaign page that include a donate widget near the bottom. The problem is that most browsers automatically scroll the page down to the iFrame when it loads, which always happens after the parent page loads. But there is a workaround.
At the bottom of your page—just before the </body> tag—include a simple, 1-line script to tell the page to scroll back to the top after everything loads:
My organization sets up for slide/video presentations in a lot of different spaces. I've found that having a short-throw projector plus a dedicated projector stand makes it easy to get it set up in a variety of configurations.
Standard projectors require you to place the projector 6–10 feet from the screen, which means you need to create a gap in the seating to accommodate. And the cables (power and video) need to be run even further, and generally across an area where people walk.
Short-throw projectors work just 2–3 feet from the screen, so you can put it in front of the seating. And it is a small enough gap that no one will try to walk between. You can also get an ultra-short-throw projector if you want to put it even closer (<2 feet). I bought an Optoma, and I'd recommend that brand.
I also recommend a Pelican case to protect your substantial investment.
For the screen, if you are looking for portability and value, blackout cloth is the way to go. I do have a proper 16:9 screen, but it is very long and won't fit in most cars. The cloth can be rolled the short way and works great (as long as you have a variety of clips, cord, and braces to mount it).
There are a lot of limitations in the built-in SalesForce reports. One particularly annoying one is that—while reports rendered inside SalesForce can have images—when you export to Excel the images are not embedded.
We solved this by using Printliminator to remove all of the extraneous header and footer from the page, and then Print to PDF. Yes, you can't do additional large-scale edits after this (like adding columns or sorting), but it works well for a printed report.
We had a storm last night that knocked out power for about 4 hours. Thankfully—because I have an Uninterruptible Power Supply (UPS)—my internet connection stayed up, as did my Network Attached Storage (NAS) and backup desktop. It gave me enough time to cleanly shut down these devices before the battery ran out.
Some CyberPower UPSs (and other brands too) have USB ports that can tell your computer or NAS that it is on battery and will trigger an automatic shutdown.
Be sure to calculate how much power your equipment will draw so that you get the appropriate size. For my setup of a modem, wifi router, NAS, and desktop computer + display, I got 650VA.
More tips for MailChimp users. We discovered that the internal list name we chose (“Master List”) was exposed to our subscribers when they click on why did I get this? in the footer of the email. Also, if you want to edit the content on that page—for example to add your logo and make it look more legitimate—click on the list, then click Settings > Required email footer content.
Similarly, when subscribers click on the update subscription preferences link, they go to a page for where they can update their display name and email address, and any other fields you've defined. On that form, MailChimp shows them all of the categories and groups you've created and let's them change which groups they are in. So make sure those names are donor-friendly!
My previous post covered generating a remainder email list when only a subset of the list was successfully mailed.
We imported that list into MailChimp, which then told us that 3 addresses were not imported because they had previously bounced. But they gave us no way to actually see those addresses. Great. 😕
So now we want to download the list that was imported, compare it against the original, and generate a list of only the duplicate addresses (the intersection of the original list and the import list).
Here's the scenario: we wanted to send an email to a group of about 400 supporters. Due to a poor import user experience on the part of MailChimp (more on that later), the email only went to about ¾ of the list. So now we need to send the same email out to a new list containing only the people who didn't receive the first one. Basically we want to subtract one list from the other:
Original list (400 people) - Sent list (300 people) = Remainder list (100 people)
I used a modified version of this de-duping process.
What the formula does is check the cell in column A's previous and next neighbors. If either match the current cell, it leaves the cell in column B blank. Otherwise it copies the address over from column A to column B. You are left with only the unique addresses, which are the ones that have not yet been sent to.
This isn't IT-related, but since my org is hiring a new database manager, the hiring process is top-of-mind for me.
I thought that this article makes a compelling case why you should trust objective data over interpersonal skills, especially for jobs that are aren’t focused on interactions with people (like finance or IT).
For business, government, and education, the lesson is clear: People ought to be relying far more on objective information and far less on interviews. They might even want to think about scaling back or cancelling interviews altogether. They’ll save a lot of time—and make better decisions.
When I was setting up our conference rooms, I needed to run cables to the table in the center of the room for the phone and laptops. We're in an old building and don't have the luxury of installing outlets in the floor at the center of the room. I had originally bought those cord runners that look like a small speed bump. But it kept getting kicked around, and it never really laid flat after coming rolled up.
I was talking to a guy who was extending our Ethernet network to a new office addition, and he mentioned that there were flat cables. Sure enough, I bought flat HDMI cables for connecting laptops to the conference room displays, flat USB extension cablesconferencing microphone/speaker combo, and even flat power extension cords for laptop chargers (remember, keep your Li-Ion devices plugged in as much as possible!).
To prevent a tripping hazard, we got some small area rugs and threw them over the cabling. I used gaffers tape on some cables to ensure they don't get moved or twisted. I did this going on a year ago, and it's worked out really well.
Pretty much every reasonable payment processor out there will have a “test” mode, where you can enter test transactions that will work just like the real system, but don’t require real credit cards and don’t result in real charges.
To do this, you’re going to need some test credit cards to use. A simple search will turn up several pages that will help. However, here are the ones I use the most:
|Visa||4111 1111 1111 1111|
|(It can be any month in the future.)|
|MasterCard||5555 5555 5555 4444|
|all other info is the same as Visa|
Some payment processors will generate all their different response codes based on a particular amount you send for the test transaction. Pretty clever.
Since I work at a non-profit, we are always looking for the best value in apps. A great place to research apps is AlternativeTo.net.
I previously blogged about Pixelmator, which is a fantastic and inexpensive alternative to Photoshop. I discovered it using AlternativeTo.net. I also found Inkscape (free, open-source alternative to Adobe Illustrator), Scribus (free, open-source alternative to Adobe InDesign), and TextWrangler.
It's also good to confirm that you are using the best option and that there aren't better ones out there. e.g. Chrome, VLC, and Skype.
Our donations stopped flowing from our payment processor into SalesForce. I was getting this generic error message:
REQUEST_LIMIT_EXCEEDED: TotalRequests Limit exceeded
The problem turns out to be a SalesForce API limit. Here are a few pages in SalesForce that will be useful when debugging this problem:
For what it’s worth, our problem turned out to be our newly-added MailChimp app and an annual report newsletter that went out to our entire donor database. That ate up our entire limit of calls 2 days in a row.
A few days ago I talked about the terminology confusion in SalesForce between apps and packages.The reason I was digging around with this is because I was trying to figure out how to update the apps in SalesForce.
As far as I can tell, there is no auto-update system for apps/packages. Some apps do implement their own form of updating. The Non-Profit Starter Pack (NPSP) is one. Others have an updater built into the app, like Click & Pledge (it's in C&P Settings > About C&P Apps; click Sync for Updates).
But for most, you just go back to the SalesForce AppExchange, find the app and check its version against the one you have installed. If there is a more recent version, simply go through the process of installing it again.
Also, the Installed Packages setup page is where you go to manage licenses for any third party apps. We use Apsona and S-Docs, and both only allow 3 people in our org to access them. This is where I go to change who gets access.
Also a tip: If you enable the Organization Admins Can Login as Any User feature, then admins can log in as one of the users who has a license if they ever need to do something with that app. It's a good backup for when people are out of the office or otherwise not available. Of course you could just reassign the license temporarily and then assign it back when you're done.
It's frustrating that the built-in SalesForce date fields (Created, Modified, Close) only show the date rather than both the date and time. I often want to view donations for a particular day (YESTERDAY or TODAY), and I want to see them listed in chronological order.
Thankfully there's a simple way to fix this: create a new custom field for the transaction date of the donation that displays as Date/Time (rather than just Date). To do so:
Now go to your list views, and add the new Transaction Date & Time field to the view. And then click the header to sort by it. Ahhh, nice. 😊
This will also work for CreatedDate (a standard field for all SalesForce objects) if you want. Just repeat the steps but use a different name and field reference in steps 8 and 11 respectively.
One of my co-workers has been getting recurring crashes when in the office. It wasn't happening when she was at home or when she took the MacBook into the Apple Genius Bar. Here is the first line of a typical crash report:
panic: "hfs_UNswap_BTNode: invalid backward link (0x0000250b == 0x0000250b)
HFS means it has something to do with the file system. Kind of sad that in this day and age, corrupt data in a file can bring down the whole system. But I digress…
I did a bit of sleuthing and aside from the typical "reset the SMC" and "clear the PR", there were reports that turning off Time Machine fixed it. So that's what I tried, and lo and behold it worked!
The promise of Time Machine is wearing very thin for me these days. I'm moving over to using Resilio Sync for our org's backups. It works cross-platform, and since it's based on BitTorrent technology, I trust it to be a lot more resilient to network and file system problems. And the nice thing is, it's super easy to have both an on-site backup and an offsite one.
SalesForce allows third parties to add functionality to their base service. The site where these are all listed is called SalesForce AppExchange, and they use the term app throughout. You then click a Get It Now button, you will be asked to Log in to the AppExchange Using your Salesforce credentials, and finally Install in production (or a Sandbox).
Which makes it all the more confusing that when you try to manage these apps in SalesForce, you need to go to Setup > Installed Packages. Even more confusing, there is a Manage Apps section of Setup that includes pages for Connected Apps, App Menu, and even Google Apps Settings. These are not the droids you are looking for.
Remember: install from AppExchange, but manage it under Installed Packages.
If you use Click & Pledge as your payment processor, you probably know they don't have the best online documentation. And they also create literally over 100 objects in SalesForce, making it nearly impossible to understand how everything flows and is related. However their support is actually pretty good. I called into their daily office hours to ask about source tracking, which it turns out has been in the system for many years now.
C&P Transactions in SalesForce have a field called Tracker. This field can be set by passing a value in a URL parameter named trk (it would have been better to call it tracker so that the labels matched up, but hey, that's just me). So if you have a link to an event you are managing with Click & Pledge, just add something like this to the URLs you create to your event:
And now you can filter and report on the Tracker field in SalesForce to see which lead source generated which admissions.
Whenever I get a new ISP installed, or when I am on a new network where we plan to do a live stream, I always run a speed test. There are several options out there. My new favorite is the one built into the Google search results page for "speed test".
I just switched our ISP to WebPass from Comcast. We now have dedicated bandwidth and we should have a much more reliable connection for our VoIP phones and Skype video calls.
All ISPs give you at least 2 DNS servers to use when you configure your router. However, I have simply been using the Google DNS servers. First, they are super easy to remember:
And second, I trust their reliability a lot more than I do most ISPs. If you ever do run into problems with domain names not resolving, you can always switch back to your ISP’s DNS servers. But I doubt you will. These are way more reliable than any ISP I've ever used.
Speaking of which, I keep a Google spreadsheet with all of my ISP info in it, just so I'll have it in a handy location should I ever need to reconfigure or replace the router.
These days when you create a web page or email newsletter, you need to know how to make it responsive. This essentially means that the width of the page/email is not hard-coded (although a max-width is fine), but instead is set to a fluid value—usually 100%—so that it completely fills the width of the device.
Similarly, image sizes need to be set so that they will also scale properly according to the width of the device. The CSS I recommend:
The height declaration is essential. Often mail apps or web browsers will determine the native size of an image and set the height and width based on that, so if you don’t do anything, you will end up with a squished or skewed image.
Note that you can adjust the width to whatever you want. Sometimes 100% is too much, so I will add in some margins. If you like to use the golden ratio like I do, that would be:
width:62%; margin:0 19%; height:auto;
Once you have a web site up and running you’re going to want to have some basic understanding of how it is being used.
The first tool I recommend is Google WebMaster Tools. It will help you understand what other web sites are linking to yours. There are also a couple other tools that can do this, like GooLinks and Moz’s Inbound Link Profiler.
For more advanced analytics—including how many people are visiting your site—Google Analytics is the king. It requires placing a code snippet on every page of your site. Generally this is pretty straightforward to do, and most site builders even have a configuration setting for this so that you don't even need to dig into your code directly.
To find out specific pages that are linking to you, you can use Googles search operator site:. So if huffingtonpost.com shows up on your list of inbound links, try searching for your org's name or web site on HuffPo pages only, e.g.
Any non-profit—no matter how small these days—will have at least one custom domain that they use for their online presence. I mean you don’t want to be running your org out of @gmail.com accounts, a Tumblr blog, and Facebook, right?
I inherited an account at register.com, and they were a complete nightmare. Super expensive, making you go through a live support agent for simple config changes, and constantly trying to upsell you. I’ve also had similar bad experiences with GoDaddy.
NameCheap has been great. I was using them for my personal domains (like this one!). I switched my org over to one, and also another community org that I'm helping with web management. They are inexpensive, relatively easy to use, and they've had reasonably good support.
Always check their coupons page before buying. You will get at least 10% off.
If you are a maximizer and would like a few others to consider, this is a good start. (Overall I’m a fan of LifeHacker, and they are one of my go-to resources when looking for a product category recommendation when I have no prior knowledge or experience.)
Also, Domize is my favorite tool for quickly seeing which name in the top 3 domains are still available.
Since we are primarily a Mac house, I’ve only ever used Skype Translator on a trial basis since it is currently Windows-only. But it looks like it has a lot of promise for international orgs like mine. The premise is simple: real-time speech translation, a la the Hitchhiker’s Guide babelfish.
In the meantime, Google Translate is still my go-to for text translation. And if you get the mobile app (iOS · Android) and download the offline dictionaries, you can use the camera to get real-time translations. It's based on the old Word Lens app, and it's pretty magical.
We use Google accounts for our email. But when you are on an airplane, or in some remote location in the bush without internet access, it’s useful to have an offline solution for your email.
I’ve tried out several different alternatives including Apple Mail, Gmail Offline, Outlook, and Thunderbird. Spark is by far the best option out there. Of course it only does email, so if you want your calendar offline as well, Apple Calendar is a decent option. Although these days I just use the Google Calendar app on my iPhone.
If you want a disk so that it works with both Mac and Windows, format as ExFAT and use the GUID partition map. The old FAT32 is too small for current drive sizes, NTFS won't work on the Mac (current Macs can read, but not write), and Mac formats won't work at all on Windows.
Sometimes you want an item sorted to the top or bottom of a list of files. For example, an older versions folder for example.
Here are characters that sort below z on a Mac:
I just tested it, and last 3 work in Windows (although definitely not as easy to type!). I personally have been using Ω since it is really easy to type, and makes sense as the last character of the Greek alphabet.
I try to make it a habit of testing a link before sending it by bringing up a New Incognito Window in Chrome, or a New Private Window in other browsers and pasting the link in there. This will give the experience the recipient will see.
I got a 64 GB USB* flash drive (I prefer the design of Kingston Data Traveler. SanDisk Ultra is a good choice too.) and then used this process to create a bootable install drive:
At this point you are technically done. You can insert this USB drive into any Mac, hold down the option key as you power it on, and then boot from it to do a clean install of macOS.
But you also have about 58 GB of space remaining. I fill it up with essential apps and other files I want to install once I boot up and configure the new computer. Here's a list of my essentials that go onto every new computer:
And here are some optional ones that only go onto select computers:
*I only recommend USB 3 at this point; USB 2 is cheaper but also a lot slower. The few extra dollars you pay are worth it.
I just updated the name and code (SKU) of one of our programs in SalesForce. We had nearly 1500 donation records whose name needed to be updated. NPSP will auto-generate the name based on a format you configure in NPSP settings. But after the record is first created, there are only 2 ways to trigger that code: by manually clicking a button on the record, or updating all of the records in your system.
So I decided to manually update the records. Here's how I did it.
1. Create a new Donations report in SalesForce
The report must include the ID of each record, and in my case also the Name.
2. Export the report results to a CSV file
Click Export Details in the button bar. Change the format to CSV.
3. Edit the data in your favorite spreadsheet app
I did a simple search and replace in Excel to swap the old code out with the new one. Be sure to save!
4. Sign into dataloader.io
Use your production SalesForce credentials.
5. Click NEW TASK > Import at the top of the page
6. Choose Update as the operation
7. Select Donation (Opportunity) as the object
8. Click Next
9. Drag and drop the CSV file from step 3 here
The fields should map automatically. If not, you need to do it yourself.
10. Click Save and Run
I just leave these values set to the defaults.
Go get coffee. When you get back, your records will be updated.
I have enabled a catch-all email address for our domain. The benefit is that I can actually make up email addresses on the fly as needed and I will always be sure to receive messages sent there (useful for testing transactions and email list sign ups).
However as a result, I do end up with a fair amount of spam, especially from people trying to guess email addresses of our staff. Gmail is actually pretty good at filtering out most spam, but it won't catch most hand-crafted “cold emails”. Some are good about including opt-out instructions, but many are not. For those, I have crafted a boilerplate response that I send.
Sorry, we do not accept unsolicited commercial offers. Please add this email address—and all other @nonprofit.org email addresses—to your "do not contact" list. Thank you.
FYI, your message does not comply with the US CAN-SPAM requirements, most notably:
5. Tell recipients how to opt out of receiving future email from you. Your message must include a clear and conspicuous explanation of how the recipient can opt out of getting email from you in the future. Craft the notice in a way that’s easy for an ordinary person to recognize, read, and understand. Creative use of type size, color, and location can improve clarity. Give a return email address or another easy Internet-based way to allow people to communicate their choice to you. You may create a menu to allow a recipient to opt out of certain types of messages, but you must include the option to stop all commercial messages from you. Make sure your spam filter doesn’t block these opt-out requests.
We use a VOIP (voice over internet protocol) for our phone system at work. In addition, we’ve standardized on Skype for our video conferencing and screen sharing. In both cases, I need to give priority to voice and video data.
First order of business was to get everyone on the wired network. WiFi just increases the chance of lag and dropouts, especially since we are in a high-density area with a lot of other wireless routers and devices around.
It surprised me how hard it was to find network gear that made this easy. My research convinced me that Qualcomm’s StreamBoost technology was the way to go. I started with a NetGear router: the venerable NightHawk R7000. I then upgraded to the R8500 when we doubled our office space to get more range on the WiFi. But NetGear’s QoS console required me to go in and set the QoS for every new device that joined the network. This is 1) a management hassle, and 2) isn't the right strategy as I want to prioritize traffic, not devices. So once I ran into a bug prevented me from setting the QoS of new devices (NetGear support told me to do a factory reset; no thanks), I scrapped NetGear altogether.
I currently have a D-Link AC3200. It has the ability to manage by application. I have placed Streaming Media in the Highest bucket, Online Chat (e.g. Skype) in High, and the rest in the Medium bucket.
Overall it has worked pretty well, although I did have a problem of the QoS settings getting reset which made our phones unusable. I'm not sure why that happened, and of course now I am concerned it could happen again.
Does anyone out there have other suggestions for an easy-to-use QoS system for ensuring high-quality voice and video?
Friday I was trying to set the default value for a field when creating a new donation record. Turns out you can’t for standard fields (but ironically you can for custom fields).
The workaround is to use a workflow rule. Here’s the one I created, which basically says that we must generate a paper thank you letter for all in-kind donations. It’s a bit convoluted, as you need to also create a workflow action that will be run (in this case, Check "Needs Paper Letter" filed) separate from the trigger conditions.
The downside to this is it isn’t obvious to the person creating the new record that the field will be changed the instant they press Save. It would be better if there were an option for the rule to run when the new record form comes up (which is actually before it has been created in the database).
This might surprise you, but not all image files are created equally. Programs that save images often do so in an inefficient way. Thankfully a lot of smart, dedicated people have built utilities that correct this.
If you are on a Mac, install ImageOptim. On Windows, install FileOptimizer. They work essentially the same way. You drag an image over (remember to always operate on a copy), and it runs a bunch of different utilities to compress the images without any loss of resolution. It’s pretty impressive how much you can save. For simple illustrations and icons, I’ve seen savings of up to 80–90%. More typically is in the 10–30%. But that definitely adds up. I’ve compressed entire folders of raw images from my phone and digital camera to save space before I save them into my photo archive.
A quick note on file formats. For real-world photographs and realistic paintings/illustrations, JPEG is the format to use. For logos, maps, and other illustrations—especially those with a limited color palette—use PNG. I don’t recommend GIF, TIFF, BMP, PICT, or any of the legacy file formats anymore. These are the two best and most widely supported.
If you want to reduce the size and don’t mind losing a bit of quality, then get an image resampling app like ImageAlpha. It has a live preview, so you can see instantly how the new file with a reduced color palette will look. In many cases, it’s difficult to see much of a difference and you can save a lot more space.
And for cases where you don't care about quality at all, I use the most excellent Mac droplet Make JPEG. It’s quick and very useful for significantly reducing a full fidelity screen capture to a workable file you can send over email.
Finally, there is a great web-based utility for optimizing PDFs called PDF Compress. A word of warning: it will significantly degrade the quality of high-resolution images in the file, so don’t use if you are planning to print.
So why do we care? Because speed matters. You want people who are viewing your web site or email messages to see your content as quickly as possible. This is especially true for mobile devices when network speeds can be a lot slower. Google is one company that really gets this. Yes they have high-quality search results. But part of the value of their product is the speed. To this day they still show the amount of time taken to return a search. You might not notice it, but it’s always there right above the top result (and the ads). Back in November Google Research announced a very clever tool that allows you to scale down images to ¼ their original size and then use software on the other end to regenerate the details. I'm looking forward to being able to use that on our web site to double the speed.
Running IE on a Mac used to involve buying a copy of Parallels or VirtualPC, then getting a Windows installer and a license activation code. But thanks to some visionaries over at Microsoft and Oracle, the whole process is fairly straightforward and best of all, free.
First, install the latest VirtualBox host. This is the software that makes your look like a standard PC computer.
Next, head over to Microsoft and download a free virtual machine with the version of Windows and IE that you need. If you're not sure, I recommend the latest stable version of Windows (currently Microsoft Edge on Windows 10 stable); It includes both Internet Explorer and Microsoft Edge. Make sure you unzip using The Unarchiver.
I just use the defaults when creating the new virtual machine. I don't need anything high-powered here; I'm just using it for the browser. Start it up, and first thing click the Windows logo (lower-left), Settings (gear icon), Update and Security, Check for Updates. Apply all updates, restarting if necessary. Once your are completely up to date, click Take Snapshot in the Machine menu.
When the license evaluation period is over, you can reset the machine to this snapshot by clicking Snapshots in the upper-right corner of the VirtualBox Manager window. Or you can just keep the source ova file around, delete the VM and create a new one from the ova.
Many file formats these days are actually a folder containing multiple files and folders that are zipped up into a single binary file.
As always when you are mucking around with files like this, create a copy and work only on the copy.
Simply change the file’s extension from .docx, .pptx, or .pdf to .zip. Note: this will not work on the old Office formats .doc and .ppt. In that case, open the file, then save as the new file format (that ends in a x). For PDFs, it's not obvious if it's an older format. You can try saving to a newer version, but sometimes it just doesn't work, unfortunately.
Once you have the zip file, unzip it. On the Mac, the built-in Archive Utility doesn’t always work, so I recommend The Unarchiver app.
For PDFs, all the images show up in the top level of the unzipped folder. For Office documents, it will be under word > media or ppt > media.
An oz of prevention is worth a lb of cure.
I started using a password manager in 2010 right after Gawker was hacked. The hackers have only gotten more sophisticated, powerful and clever since. And now since the Snowden revelations, you also have to worry about the NSA, FBI, CIA, and other state-sponsored organizations who subscribe to the “collect it all” mentality.
We use LastPass Enterprise at my organization to manage all of our digital credentials. They have a 30% discount for non-profits, and for the value that it provides it is absolutely worth it. There are other password managers out there too if you want to do a bit more research. But whichever you choose, definitely choose one. The days of repeated passwords and shared passwords in a shared spreadsheet are over. It’s not a matter of if you will be compromised, rather when.
Switching over is a pain; you will need to go through all of your accounts and change the password to one randomly-generated by the app. But once done, it’s actually easier to use than trying to remember which password and variation you used for each site.
You will still need one strong password to secure your password manager. Bruce Schneier’s method is the best out there for generating a secure yet memorable master password, which essentially boils down to choosing a memorable phrase or sentence and then encoding that in a unique, difficult to guess way. Scroll down half way to the paragraph that starts with “There's still one scheme that works…”
Enabling 2 factor authentication for your password manager is also highly recommended. There are authenticator apps out there for smart phones that make this a fairly painless process, where you only need to click Yes to confirm you are trying to sign into a new device. And you can always fall back on a code sent via text message. And if you are traveling without network access, you can generate single use codes that you can print out and take with you in your wallet. Of course be sure to never include your account name, email address, or any other info with the codes that would tell someone where they could use them.
One side benefit to using a password manager: it will greatly reduce your chance of being phished.However if you copy/paste passwords it could still happen. Which is why 2-factor auth is so important. Even if a hacker gets your username and password, they will not be able to sign in without the code from your phone.
I needed to give a new employee the ability to edit public list views. I spent a while looking around in permission sets before Google told me that it's actually a setting in Profiles.
I'm sure there is some sort of logic behind the distinction of these two different mechanisms that to my naïve eye looks to be the same. But honestly it would be a lot simpler and easier if these were combined into one, logical feature.
Here’s a cool trick I figured out both by digging around in the custom work that our SalesForce consultant did and through some experimentation.
Since every SalesForce object has a unique ID, and since these IDs are used in the URLs for displaying items, it’s actually pretty easy to assemble a link to a page for an item.
I created a custom VisualForce page for our contacts called Contact Card and I wanted a quick way to get to it from the list view. To do so, I created a new custom field (of type formula) for the Contact object, and used the HYPERLINK command. Looking at the address bar in my browser when I was viewing the page for a contact, I was able to determine the syntax to use to assemble a working link. And I discovered that SalesForce supports Unicode characters in its strings, so I was able to find an emoji icon to use for the column so that it would be compact.
HYPERLINK("/apex/ContactCard?id=" + Id, " 📇 ", "_blank")
Managing storage is always a hassle. Even as storage grows, so does the size and number of files people want to keep. DaisyDisk is an excellent paid app for helping with this, and they do have a trial version so I recommend checking it out.
But macOS has a few search tricks built-in as well. Open a new Finder window then press Cmd F (or click Find in the File menu). The search bar appears in the window. If you click the first drop-down menu (mine is set to Kind), you’ll see a list of other criteria. Choose the last option in the menu: Other… There are well over 100 different criteria you can search on—so many that this window has its own search box! The one I’m interested in is File Size. Check it then click OK. Now you can search for files greater than say 20 MB.
Or say you want a view of all the recent files you’ve created or changed (useful for attaching files to email). Last modified date is within the last 2 weeks, and Kind is Document.
Whichever folder you are viewing before you choose Find, you can click the name of the folder—which is net the the This Mac option that is already selected—to narrow scope of the search to the current folder only.
Once you have the search criteria set how you want, click Save, name it, add it to the sidebar, and now you can use it just as you would any folder.
Tip: if you just want a list of every file on your computer, (which can be useful for doing a general audit, seeing where you might have duplicate files, etc.), you can do something clever like Created Date is before tomorrow (you’ll actually have to put the date of tomorrow in the search. Unfortunately I don’t know how to do relative dates in macOS)
If you are a small non-profit looking for the most feature-rich, inexpensive way to give work phone numbers to your staff, Google Voice is the way to go. Pretty much everyone these days has a smart phone, and your staff can install Google Hangouts on their phones, which lets them make and receive calls as well as send and receive texts to and from US numbers for free. The voicemail is particularly useful, as the service sends speech-to-text transcriptions of voicemail to your inbox. I hardly ever listen to the actual message anymore since—while the transcription isn’t perfect—it is good enough to convey the gist of the message.
I travel internationally both for work and vacation. It’s pretty great to have a phone number that I can still use while traveling, since the service works over WiFi rather than the cellular network.
We just hired a contractor for our org who will be spending most of his time overseas. But with his new Google Voice number, we can call him or he can call us for free.
You do have to have another valid US phone number to use when verifying your new Google Voice number, but employees can use their own personal mobile numbers for that.
My 2012 MacBook Pro needs a new battery. It’s going to cost over $500 to replace—½ parts, ½ labor. It turns out I could've made the battery last longer had I known how to properly care for it.
With older style batteries (NiCad and NiMH), it was beneficial to completely discharge the battery before recharging due to “battery memory”. However for modern lithium-ion batteries (Li-Ion), the reverse is true.
It’s best to keep your batteries charged as much as possible, top them off whenever you can, and keep your devices plugged in as much possible.
Coconut Battery is a great little utility for your Mac to view detailed battery diagnostics.