Pew Pew Laser Blog http://www.pewpewlaser.com/ Hand forged code from Seattle, Washington. Gaming - analog and digital. Glass artistry. Baking. And a few pictures of cats. en-us Pew Pew Laser Blog http://www.pewpewlaser.com/images/icons/ray-gun.png http://www.pewpewlaser.com/ AWS Easy Mode == Architect. http://www.pewpewlaser.com/blogs/685 http://www.pewpewlaser.com/blogs/685 Wed, 16 May 2018 00:00:00 PDT While severely belated, I wanted to take a bit of time to talk about a really nifty project that I learned about at EmpireConf 2017 last October. In her talk "Architecture as Text (AWS Easy Mode)", Angelina Fabbro talked about .architect - an open source project which handles provisioning of AWS / Lamda servers through the `.arc` file - a plaintext manifest file. The most amazing and wonderful fact is that with .architect in Angelina's demo, the servers were provisioned faster than DNS propagation.

Also of note, she's got a great definition for "Serverless": Functions (the `var func = new Function(arg){}` kind) as a service, not a web server. Abstract away the notion of a server altogether.

For more info on .architect, definitely check out the talk from EmpireConf, or the website at https://arc.codes/.

]]>
Katie Kurkoski
LinkedIn for Job Seekers. http://www.pewpewlaser.com/blogs/684 http://www.pewpewlaser.com/blogs/684 Mon, 23 Apr 2018 00:00:00 PDT I've done the job search thing a few times, and one of the first places I start is with LinkedIn. It's how I found my last job. Here are a number of hopefully useful tips that I've picked up over the years stemming from my own discoveries to advice from professional job search advisors.

  • Copy and paste most of your content over from your resume. You can even use LinkedIn as extra space for stuff that doesn't fit on your 2-page resume.
  • Connections are important; they're how you widen the net of people who can search for you. So do make connections with folks that you've met in your professional dealings. You don't have to accept every request that you receive. I skip those "LIONs" (LinkedIn Open Networkers), and folks I've actually never met. (Unless it's a recruiter working for a company I'm interested in.)
  • Always personalize the connection request. Remind the person how they know you.
  • Keep those email addresses from old jobs tied to your LinkedIn account, and verify them.
  • When you start a new job, connect with your co-workers. They will later become your past co-workers.
  • When you leave an old job (or begin a new search), write a few recommendations about your previous co-workers. Hopefully they'll do the same for you.
  • Fill in every profile field that LinkedIn asks you to.
  • Log in once a day on weekdays. LinkedIn prioritizes active users in search results.
  • Consider setting your current title or description blurb to include "currently seeking next opportunity".
  • Follow companies that you're interested in. You'll be prioritized in their recruiters' search results.
  • Look at people who work at those companies. What technologies and acronyms do they share? That's probably the company's development stack, which is what you should consider either featuring in your profile or learning.
  • If you go to meetups, connect with recruiters you find at those meetups. (Recruiters will pretty much always accept a connection.)

Other links about job searches:

]]>
Katie Kurkoski
Handy Regexes for Search and Replace. http://www.pewpewlaser.com/blogs/683 http://www.pewpewlaser.com/blogs/683 Mon, 26 Mar 2018 00:00:00 PDT Sublime Text - my favorite editor - will let you use a regular expression (regex) in its search and replace functionality. Here are some handy regexes that I've used in the past:

Any anchors
href=\"[^\s]*\"
Any dollar value
\$[0-9.,]+
All HTML comments and their contents
<!--(.|\s)*?-->
Either "alpha" or "beta"
(alpha|beta)
Any blank lines
^\n
Any pair of "s not preceeded by ="
[^=]""
Sass mixins
@mixin .* \{
Sass extends
\%[^\s]*
]]>
Katie Kurkoski
Inkscape - Using Path > Difference With Text. http://www.pewpewlaser.com/blogs/682 http://www.pewpewlaser.com/blogs/682 Sat, 03 Mar 2018 00:00:00 PST It turns out that Inkscape's error messages will appear in the status bar at the bottom of the application.

Part of getting my Glowforge laser cutter has been learning to use a new piece of software, Inkscape. I was having problems using Inkscape's "Path > Difference" option to combine (well, cut out) shapes and text elements. Here's what I had to do to get the elements merged:

  1. Optional: Disable any stroke styles on both objects. Use fills instead.
  2. Optional: Make sure the first element - the non-text - is a path. Select it and choose "Path > Object to Path".
  3. Turn the text into a path. Select it and choose "Path > Object to Path".
  4. Ungroup that new path. Right click it and choose "Ungroup".
  5. Bring the "top" element to the top layer (Home). This is what will be removed from the other element.
  6. Position / align the elements as desired.
  7. Select both of the elements.
  8. Choose "Path > Difference".
]]>
Katie Kurkoski
Global Diversity CFP Day Q&A. http://www.pewpewlaser.com/blogs/681 http://www.pewpewlaser.com/blogs/681 Tue, 06 Feb 2018 00:00:00 PST Last week was Global Diversity CFP Day and we held the Seattle workshop that I'd been organizing for a few months. Global Diversity CFP Day was started by Peter Aitken, who ran a similar event to improve the diversity of submissions for his event ScotlandJS. At the event, a number of locations world-wide held workshops where people who are under-represented at technology conferences could learn about submitting talks to conferences from experienced speakers and event organizers. The attendees asked some really good questions, so I figured I'd answer them here for posterity. I hope readers will forgive me for including one "Socratic method" question at the end.

  • What is a "CFP?"

    It stands for "call for proposals" or sometimes "call for papers". It comes from academic conferences making it known that they are looking for content for their meetings and conferences. In my experience, tech conferences use to indicate that talk submissions are open to anyone who fills out the online form.

  • How did you get involved in this?

    I attended a local meetup and learned about a local conference that had just happened. I continued attending meetups, and following interesting people on Twitter, and started beginning to think that perhaps I could speak too. I talk more about getting involved with organizing conferences here.

  • Do conferences pay?

    It depends, greatly.

    A few conferences pay their speakers a fee, in addition to covering the speaker's travel, lodging and conference ticket. Some of these pay only some of their speakers a fee. These conferences are usually - but not always - organized for a profit.

    Most of the conferences I pay attention to usually - but not always - cover a speaker's travel, lodging and conference ticket, but it is much more rare to pay a speaker fee. These are usually organized by volunteers in their "spare" time, and some are even 501c3 non-profit organizations.

    Some conferences will cover some fees if you ask, and other conferences don't pay for anything - even when the speakers are providing the content! This is more common in academic and open-source conferences, where the expectation seems to be that your employer will cover conferences costs.

    Conferences usually publish what they cover along with their CFP. It's up to you to make the call as to whether speaking at that particular conference works for you. For me, it doesn't make any sense to pay out of my own pocket to speak at a conference.

  • Do you write the talk before the proposal?

    No, almost never. For one, writing the proposal gives me the outline of what's going to be in the talk. More importantly, I don't do speculative work; so I don't write a talk before it's accepted at a conference. I have made one or two exceptions when I just knew it was a good talk, and I was determined to give it at a local meetup.

  • How do you find open calls for proposals?

    Twitter is huge in my sphere of influence. Following JSConf EU is a good start. Mozilla Tech CFPs is also a great way to get notified of CFPs which are closing soon. HackyGoLucky has a crowd-sourced spreadsheet of conferences at https://docs.google.com/spreadsheets/d/1WYQ0bi8c6OLGx9ZPgUHhGG3x7unIPz1XpODj7OrHPDE/edit#gid=575542415. The Global Diversity CFP Day workhops have also put together a list at https://www.globaldiversityCFPday.com/CFPs.

  • How do you identify the culture of a conference; what kind of talks do they tend to accept and where do they fall on the silly vs. stodgy scale?

    I usually start by looking at the Twitter accounts for the conference itself, and its organizers. From this I can get a sense of how they interact with the community. The conference's website is usually all about the upcoming conference, but often archives the previous years too (try changing 2018 to another year in the URL). Looking at a previous year will tell you what talks they did accept, and those little descriptions of the talks were usually part of the CFP that the speaker sent in. If the conference records its talks, then you can watch videos of last year's talks - the keynote and MC sections can be particularly enlightening.

  • How do I find technical topics for the core of my talk?

    For me, technical topics commonly come out of bits of "fiddling with code" that I do. I can browse through my old Codepens and get some ideas about what's interesting. Also, when I've accomplished something in an evening of experimentation, I often think "I should share this!" and a few related topics can be the foundation of a talk. Even when working, any solution that can be abstracted and shared can be part of a talk.

  • How does going to local meetups improve my proposals and talks?

    One thing about meetups is that they're a lot like itty-bitty conferences. Attending conferences is definitely a way to get involved with the community, but attending meetups will get you involved with the community too. At a meetup, you can meet other people with the same interests and talk about current projects. When you're talking about something and the other people lean in and say "oh, that's interesting", then you might have a talk idea right there. Often, conference volunteers and organizers attend these meetups. Also, meetup organizers need to have a few talks each and every month of the year, so they are very likely to accept your talk. You can get very helpful feedback from attendees (What did they take away from the talk? What was confusing?) after giving a meetup talk.

]]>
Katie Kurkoski
Games I've Beat. http://www.pewpewlaser.com/blogs/680 http://www.pewpewlaser.com/blogs/680 Mon, 15 Jan 2018 00:00:00 PST Gender-based marketing is lazy and video game marketing has been lying to you. Here is a list of video games that I have beat. Where "beat" means variously beat the final boss, won all races or levels, or completed the story, as appropriate for the genre.

]]>
Katie Kurkoski
Keyboard Shortcuts for Web Dev Tools Inspector and Console. http://www.pewpewlaser.com/blogs/679 http://www.pewpewlaser.com/blogs/679 Thu, 07 Dec 2017 00:00:00 PST Sometimes, right clicking on something in a browser and picking "Inspect" from the context menu just isn't fast enough for me. I wanted to find a way to quickly open the Inspector and Console tabs in a browser's web developer tools, so naturally I turned to keyboard shortcuts. I've compiled a reference of the commands for Firefox and Chrome here.

Firefox:

  • Inspector: Ctrl Shift c (Cmd Option c on OSX)
  • Console: Ctrl Shift k (Cmd Option k on OSX)

Even better, the Web Dev tools will open up - with the last active tab - when you hit your F12 key. (In OSX, use fn F12 if you haven't enabled the "Use all F1, F2, etc keys as standard function keys" Keyboard Preference.)

Chrome:

  • Inspector: Chrome doesn't have a keyboard shortcut specific to "Elements" (Inspector), but Ctrl Shift i (Cmd Option i on OSX) will open the most recently used tab, just like F12.
  • Console: Ctrl Shift j (Cmd Option j on OSX)
]]>
Katie Kurkoski
The <code>DL</code> Element. http://www.pewpewlaser.com/blogs/678 http://www.pewpewlaser.com/blogs/678 Tue, 14 Nov 2017 00:00:00 PST At a conference earlier this year, I was asked what my favorite HTML element was. In fact, I do have one: the Definition List, along with its children Definition Term and Definition Description. The definition list is great because it provides an inherent semantic relationship between two elements - the term and the one or more descriptions. I feel like these elements are under-used; especially considering that they've been around since HTML 4.01.

I was going to invent a clever example to demonstrate the definition list, but I don't think I can do any better than the one provided by the Mozilla Developer Network:

Firefox
A free, open source, cross-platform, graphical web browser developed by the Mozilla Corporation and hundreds of volunteers.
The Red Panda also known as the Lesser Panda, Wah, Bear Cat or Firefox, is a mostly herbivorous mammal, slightly larger than a domestic cat (60 cm long).

Here is the source code for that:

<dl>
  <dt>Firefox</dt>
  <dd>A free, open source, cross-platform, graphical web browser developed by the Mozilla Corporation and hundreds of volunteers.</dd>
  <dd>The Red Panda also known as the Lesser Panda, Wah, Bear Cat or Firefox, is a mostly herbivorous mammal, slightly larger than a domestic cat (60 cm long). </dd>
</dl>

This shows one term (Firefox) along with two definitions of that term. Because it's a list, you can add as many groups of terms and definitions as needed for your content.

]]>
Katie Kurkoski
Virtual Reality. http://www.pewpewlaser.com/blogs/677 http://www.pewpewlaser.com/blogs/677 Mon, 23 Oct 2017 00:00:00 PDT An attendee tests VR goggles at JSConf Last Call Folks love to post pictures of people using virtual reality (VR) googles, because everyone just looks so darn goofy with the headset on. But virtual reality really does have legs. In the past couple years, I've seen some truly convincing VR demos, and run across amazing uses for VR. (Photo by Matthew Bergman from JSConf Last Call; CC BY-NC-ND 2.0.)

This year, 3 friends and I played a demo of Marvel Powers United VR on 4 fully loaded Oculus setups with motion sensitive headsets and hand-held controllers. A single set of this gear costs multiple hundreds of dollars. When my system booted up, I was The Hulk - I was taller than everyone, my strides consumed feet like they were inches, and I could grab puny humans by their baseball-size skulls. It was unbelievably immersive; my brain easily believed in this new reality. I only experienced a little motion sickness; see (this for more on gender and VR motion sickness).

With any one of a number of electronic headsets and their companion apps, you can record and view panoramic or even 720° photos (some with even ambient sound). You can then view these high-resolution photos on the headset where moving your head moves the view of the photo. I've had demos of this too, and they're also very immersive. Can you imagine immersing your family in your vacation photos like this? Or remember that folks with disabilities are often technology's earliest adopters - virtual environments like this would be huge for those with severe anxiety or people who have trouble traveling.

Think about watching your favorite sports team; with 3D sound and picture captured right on the sidelines? Beyond games and entertainment, the universal on-line educational system of "Ready Player One" seems tantalizingly close. If you ever get a chance to try out some of this technology, I highly recommend checking it out.

There are more utilitarian ways to utilize VR. Google offers Cardboard, a $15 set of "glasses" that you insert your smartphone into. As just one example of apps for Cardboard, here is one which simulates a conference stage, so that you can practice your public speaking.

If you're a developer, this is a great time to start working with VR technologies. A great place to start is Shagufta Gurmukhdas's SeattleJS Conf 2017 talk about VR and Mozilla's A-Frame.

]]>
Katie Kurkoski
OSX Screenshots. http://www.pewpewlaser.com/blogs/676 http://www.pewpewlaser.com/blogs/676 Sat, 30 Sep 2017 00:00:00 PDT In Windows, I use either the PrintScreen key or the Snip program for screenshots. But I can never remember the keyboard commands for screenshots in OSX, so here is a quick reference:

  • Shift Command 3: Capture the whole screen.
  • Shift Command 4: Use crosshairs to select an area to capture.

Both of the above methods will save the screenshot on your Desktop.

If I'm working in Firefox, I just use the built-in screenshot tools in Firefox too. (The files are saved in Downloads.)

]]>
Katie Kurkoski