Thursday, July 6, 2017

Things I'm learning about 3D printing

(I'll keep adding to this as I learn/understand more. Eventually I'll break this up into separate posts.)

My amazing wife got me a 3D printer for our 20th anniversary, which I believe is the traditional gift. It's a FlashForge Creator Pro, an entry-level 3D dual-spool and dual-extruder printer that handles both ABS and PLA filaments. (The website indicates it can print much more, even wood and metal!) The printer itself comes with two random colours of ABS filament.

Setup is pretty straightforward, but it's not hard to see how it would be considered daunting for those not used to tech work. The quick start and detailed manuals have slight contradictions and probably some aged-out content.

Initial print went well, but slow. That's an expectation worth setting correctly - the speed of these things is slow, and governed by multiple factors such as the resolution and density. I'm not yet sure what terms the 3D printer world uses for these, but I'm defining resolution as the number of layers per mm of height and density as the amount of printed material in a solid object.

Resolution example: A solid block using tiny globs of material resulting in a lot of super-tiny layers to the point where the sides feel smooth. Big globs make it look like one of those Fisher-Price doughnut stacking toys.

Density example: A solid block could actually be a solid block, or it could be made of a honeycomb. On the outside, both look solid. But the insides are obviously different. This affects weight, amount of filament ($), and print time. The differences are significant. I was told by one experienced person that there's not much benefit to a hobbyist to print at greater than 30% density unless there's a really specific reason to do so.

Making your model

Tinkercad.com is how I've been doing my initial modelling. Very simple - too simple? Bring solids onto a canvas and cut holes out of the solids by defining other shapes as holes. Where they touch is the cut. You can do more complex shape making using Javascript, but that's a high barrier to entry for someone like me who doesn't know the language at all.

Printing

This is where the challenge lies. After making the model, export it as an STL file. (OBJ works too, but I understand that STL is a more common choice.) Open that in the printer software, known as a "slicer" which creates individual printable layers out of your model in GCode (the generic 3D printer language) specifically tailored to your printer. In other words, random slicer software won't do the trick. You must check compatibility with your printer.

I started with ReplicatorG (bundled with my printer; hasn't been updated since November 2012, basic Getting Started at http://replicat.org/usage) but am being enticed into spending US$149 to purchase Simplify3D by a whole lot of forum comments. There's a 10% education discount - you must use the form to contact the company first to get the discount, as there's no way to apply the discount after the purchase. There's a two-week trial after which they offer a refund if you're not satisfied.

Getting the GCode to the printer

You can use any slicer to generate the GCode, but then must transfer it to the printer. If your printer has a USB connection, the speed and quality of the serial connection is low enough that you've got to slow down the print. (This is according to my printer's manual.) These are settings you manually configure in the slicer at the last stage before the GCode is generated.

Higher speed printing ("high" being relative!) - or more precisely, higher speed data transfer - is far more reliable if the GCode gets to the printer otherwise, e.g. USB stick (not supported on my printer) or SD card (supported on my printer).

Turns out my printer is not smart enough to handle even slightly longer filenames on the SD card. I generated GCode and saved it to an SD, but couldn't get the printer to see the file, no matter how many times I reinserted the card, restarted the printer, etc. Turns out the fix was stupid simple - shorten the filename. That's more stupid than simple, but at least it was simple. There's no indication in the manual that there are restrictions on filename length, but score one for Google and 3D Hubs.com.

Wednesday, May 24, 2017

Putting your Facebook calendar into your normal calendar

You've told Facebook you're Going or Maybe to an event. But it's not in your personal calendar, so you might forget or double-book. Keeping track of Facebook events on your personal calendar can be a bit of a challenge, and I bet a lot of people deal with it by manually creating another event.. It certainly isn't obvious that you can view your Facebook calendar in your personal calendar, using a special link as a calendar "feed".

Warning

This only displays your Facebook calendar in your personal calendar, but the appointments are not aware of each other and do not interact with each other. In other words, if you book something in your personal calendar without looking, you won't see a conflict/double-booking warning. While this is unlikely for you, it becomes a risk when you open your personal calendar up for others to book you. An appointment in the Facebook calendar doesn't appear as busy time in your personal calendar (workaround at end of article). Someone booking you through, say, Calendly, FreeBusy, or the native calendar sharing option might send you a request seeing you're free. If you accept without visually checking your calendar, you may double-book yourself. It's a good solution if you're the only person who interacts with your calendar.

Step 1 of 2: Find and copy the special link

  1. Open any event in Facebook. Click the ellipsis to the right of the Share button and choose Export Event. (You'd be forgiven for thinking this only has to do with this event.)
    • On the Android Facebook app, the options are mostly different and this one is missing. As far as I can tell, it's desktop only.
  2. Copy the link. (Ignore everything that references this event only.)

Step 2 of 2: Paste the link into your calendar application

Every calendar app has its own way of doing things.

Google Calendar

  1. On the left side of the calendar, click the drop-down next to Other Calendars
  2. Choose Add by URL
  3. Paste

This new calendar didn't magically add itself to my already-set-up BlackBerry calendar. I recently removed and re-added my main Google Apps account to my PRIV and saw that additional calendars in place before adding the account were added upon setup. This seems to be something required if you're adding calendars after the fact.

BlackBerry Android Calendar (like PRIV, DTEK50/60, KEYone, etc.)

Tip: Since I was at my computer, I pasted the URL into a bogus calendar appointment in my Google Calendar and waited a moment until it synched over to my BlackBerry Calendar, so I could copy/paste.
  1. Tap the three bars in the upper left of the calendar app
  2. Tap Add Account
  3. Tap BlackBerry Subscribed Calendar
  4. Paste the URL and select the sync frequency when prompted
I suspect, like BlackBerry 10, if you tap the URL in your browser, it'll automatically take you to the right place. Just haven't tested that.

BlackBerry 10 Calendar

Example is Classic 10.3.3, but it's the same all 'round. Shortcut is to tap the URL in your browser, and *poof* a miracle occurs.

Outlook

Example is Outlook 2010, but it's the same basic idea. Scroll down to "Add an Internet Calendar Subscription to Outlook" for the instructions, which are basically click the link from above, and answer Yes when prompted by Outlook. (Your browser may confirm with you first.) The Facebook calendar opens in its own tab with a distinct colour; click the arrow on the tab to overlay it with your main calendar.

Workaround for free/busy booking problem

At the top of the article, I mentioned that the Facebook calendar doesn't interact with your personal calendar, and if other people are booking you based on free/busy availability, you've got a potential problem on your hands. Most calendar applications that know how to use these subscribed calendars also understand that, and allow you to copy an item from one calendar to another. It's still only a workaround though, because it's a copy; if the source calendar changes, the copy won't. I use this with events where the basic details (date/time/location) are unlikely to change.

Google Calendar

  1. Open the Facebook calendar event in your Google Calendar, and in the header, click More Actions
  2. Select Copy to <your main calendar name>
  3. Click Save

BlackBerry Android/BlackBerry 10

Not sure yet how to copy events from one synched calendar to another. (No big deal if you're receiving an invitation - you just select the target calendar. But this isn't that situation.) If you have the answer, please let me know. I generally live mobile first, but am not religious about it.

Outlook

I swear there was an easier way to do this - some simple "copy to other calendar" option that I can't find now. 

Option 1 - Move

  1. Open the event in your Facebook calendar in Outlook
  2. From the File menu, choose Info > Move to Folder and browse to your calendar folder
It's moved out of the synched Facebook calendar and into your main one. Not sure what this means to Facebook yet; have you taken yourself out of the event? Probably not.

Option 2 - Copy

  1. Click the event only once in your Facebook calendar in Outlook
  2. Press CTRL-C to copy. You will get no feedback.
  3. Switch to your main calendar and do not click anything. Press CTRL-V to paste.
  4. You'll get a notice about accepting the meeting. It doesn't matter what accept option you choose - the second one will say you've failed. But it works anyway. (If you choose Copy, it'll also work, but you now have an annoying "Copy:" prefix on your event. It's Outlook's way of letting you know there's no relationship between this event and the source.)
Enjoy!

Monday, August 1, 2016

What if our galaxy is the cream in a big cup of cold coffee?

What if our galaxy is the cream in a big cup of cold coffee?

I poured a small amount of fridge-temperature cream into my just-poured same-fridge-temperature cold coffee. (Not enough time for the coffee to meaningfully increase in temperature. Lower-rate Brownian motion and regular post-pour chaotic motion still very much in effect, but with no mechanical stirring motion. My preferred cups are circular have a truncated conical tapering which obviously necessarily introduces some circular motion.) Every time I do this, the same two things happen:

1. Right away, there is a stratification effect. The cream punches straight down through the coffee and forms its own density layer, with minimal integration. (Clearly more than zero integration, but without intentional mixing, they remain quite obviously separate.) The height of the layer always seems more than the amount of cream would justify. (This must be a result of the layer taking on the additional volume of coffee post-integration.) Drink result: It's like two-two-two tasty coffee drinks in one! A nice cold bitter on top and a smooth café con crema finish. This is good, and should not be a surprise.

2. Almost simultaneously, at the punch-through location, despite the intentional lack of stirring, a swirly thing happens at the very top of the coffee-air interface. The cream stays on top, and proceeds to very gently expand in a spiral galaxy pattern, staying somewhat together. This is of course, perpendicular to the direction of the cream punching through. There is virtually no integration with the coffee layer, other than what must necessarily be happening at the invisible-to-the-naked-eye horizontal interface between the cream and the coffee. No doubt the very low temperature difference must contribute to the low rate of mixing. (Both coffee and cream are fairly miscible liquids.) Even if left alone for a few minutes, there's not much change.

The similarity to spiral galaxies finally struck me today. (Probably because I have work to do.) Are some galaxy formation mechanics a result of a more-or-less linear matter stream that suddenly collided with a bit of chaotically whirling matter, resulting in clearly separate strata in the dimension of the matter stream, leaving only the surface interaction visible? The centre of such a galaxy would be a since-closed path to a second level of organization with deep integration between the original matter stream and whatever it is that comprises the non-empty parts of space.

There are a lot of beautiful images out there that show the galactic* coffee effect far better than I could photograph. I'll leave it to you to find your own faves.

*Language nerds, this word choice was for you.

Monday, May 30, 2016

Windows Network Location Awareness

A while back I was stuck in this strange world during two conferences. My Windows 7 laptop said there was no Wi-Fi connection (red marking through the network strength indicator) but things were working. That threw me off when things weren't actually working. A colleague mentioned Windows NLA (Network Location Awareness) which could get confused depending on the nature/quality of the network(s) you flip between.

Here are some people's thoughts on the matter: https://www.google.com/?q=windows%20%22network%20location%20awareness%22

Sunday, May 29, 2016

Counting the number of times a word appears in a column in Excel

How do you count the number of times a thing appears in a column of text? For example, if you're the type of person who downloads your credit card information, how many purchases did you make at any particular vendor?

If you know the number of things you're counting is small and manageable, using count (if numeric) or counta (if non-numeric) at the bottom might be the way to go. But if you don't (or can't) know, there's an elegant, nifty use of countif that solves the problem instantly - without resorting to PivotTables or any fancy stuff.
(image property of KyleMit on StackOverflow)

You can then filter, group, etc.

COUNTIF(range, criteria) - set the range to the entire column, and just count the thing next to you.

Simple. Brilliant. Love it.

Full article at http://stackoverflow.com/questions/18661016/how-many-times-do-each-value-appear-in-a-column.

Tuesday, May 3, 2016

Microsoft Word: Find and Replace characters within parentheses

This is something I have to occasionally do, and I'm always re-learning from scratch:

Thing (I want to find and replace) with more stuff (different item to find and replace) and other info (the only consistent thing is that these are in parentheses) in-between.
  1. Open the Find-Replace dialog
  2. If necessary, click the More button to display and enable Use wildcards
  3. The ( is a special character, so you must escape it with \ i.e. \(
  4. Use the asterisk * to indicate the anythingness in-between
  5. Terminate with \)
    1. Your search string looks like \(*\)
Problem: How do I replace the contents between parentheses? Haven't figured that out yet. You use parentheses to demarcate items in a search string - (thing)(item)(stuff) in the Find box are represented as \1\2\3 in the Replace box. But (\()(*)(\)) in the Find box just keeps failing on me.

The trick at http://word.mvps.org/FAQs/General/UsingWildcards.htm doesn't quite seem to be the answer. Any ideas?

Sunday, May 1, 2016

Getting Android media apps to ignore certain folders

Just learned this handy tip that I have yet to test out. On Android, you can prevent the media scanner from indexing a directory by placing a file entitled .nomedia in it.

http://android.stackexchange.com/questions/138470/how-to-make-my-car-realize-my-phones-system-sounds-arent-music

http://androidforums.com/threads/whats-a-nomedia-file.307529/