I've been using this strategy in unlimited tournaments since I discovered the core mechanic (and improved it with the help of my opponents) last summer. Since I've seen other folks playing variations on this a few weeks ago, I've decided to write about it. I call this team "Kimmy Schmidt", because the Stirge is unblockable. Here are the important cards:
- Kobold - Greater Humanoid: This is here for the Swarm effect; [fist] energy is a bonus. Buy all 4 dice as soon as you can. During play, you'll want to field one (maybe two, tops) and keep the rest cycling through your bag as energy.
- Stirge - Epic Beast: Buy these after your Kobolds. Keep one or two in the field, and the rest cycling through your bag courtesy of Swarm. Attack with just one Stirge when you can increase its attack using the Anger Issues global. If your opponent hasn't seen this strategy, considering saving up for a really big hit to start. But don't worry, with the Swarm-fueled economy, Stirge will come back through your dice back in no time.
- Anger Issues: Bring this for its global action: "Pay [fist]. Target character gets +1A until the end of turn." You can do it as many times as you have [fist] to pay for it. Once you've got a Stirge fielded and lots of [fist] energy to spend, use this global to pump up the Stirge's attack.
- Human Paladin - Lesser Emerald Enclave: Get one on the field when you can. The Paladin's active effect - "your characters in the field cannot be affected by global abilities used by your opponent" - will protect your Kobold and Stirge from cheap deaths from something like Magic Missile's global, or field removal from Distraction's global.
You can fill out the rest of your team however you like. You'll want something with some blocking strength for when your opponent's characters start coming at you. Power Transfer is nice if you've got it, but your opponent can use it to swap Stirge's attack to something lower. Try to avoid lots of characters cycling through your dice bag so that Swarm will remain effective. Bringing another unblockable character is a good plan; or something with a strong attack that can take advantage of the Anger Issues action.
In tournament play, I found that this setup took a little too long to get up and running to be truly deadly. There are also a few specific threats be aware of:
- Adventurers: The Kobold must attack if your opponent has any Adventurers fielded, which will probably break your swarm. You can avoid this bringing the Kobold - Paragon Humanoid, but at it's really difficult to want to it at twice the cost.
- Wasp - Founding Avenger: You'll use the Anger Issues global several times per game, so it's deadly to lose 1 life to Wasp's ability each time.
One of the longest-lasting artifacts of a home-made Thanksgiving dinner is the turkey stock. After roasting and carving a whole turkey, it feels very efficient to also utilize the neck, bones and other leftover bits to make something, and then use it throughout the year. When successful, the stock is a thick or even gelatinized liquid that adds flavor and a smooth thickness to dishes. We use the turkey stock throughout the year as a replacement for water when making making cous cous, wild rice, or any time chicken stock could be used. There's no strict recipe for stock - it's more of a set of general guidelines. Here's how it's done:
Collect cleaned vegetable trimmings and any vegetables that are about to go bad. Stash them all together in a gallon-size plastic zip bag and store it in a corner of your freezer. You can collect stock ingredients for a few months - more is always better - though we usually only end up doing it during the Thanksgiving effort. Most ingredients are fine, but there are a few things to keep in mind:
Do keep these things in your stock bag and add them to the stock pot: Carrot skins (washed), beet stalks (the green part), leek trimmings. All left-over meat bits (bones, giblets, necks, et cetera); roast them if you like and you can use any the drippings from the roasting. You many want to break the larger bones into smaller pieces with a large knife to they'll fit better in the pot. It's fine to mix poultry with beef or pork or whatever; or even omit the meat if you're aiming for a vegetarian stock. Don't sweat it of you're missing anything from here.
There are a few things to avoid adding to the stock. Kale, spinach, cabbage, Brussels' sprouts, and broccoli will turn too bitter. Beets and tomatoes will turn the stock red in color. Potato peels are too cloudy. Oily fish will be too fishy; most lamb is too fatty, and drained bacon fat is just too fatty. Also avoid salting the stock; it will be too strong if added at the beginning and it's best to season when the stock is already incorporated into the final dish.
Throw all "good" stuff into a stock pot (you'll probably need one which can hold at least 2 gallons). Then add:
- 1 unpeeled onion, root end removed and onion quartered
- 1 whole carrot, quartered
- 1 stalk of celery, quartered
- 4 garlic cloves, whole
- 2 tablespoons of tomato paste
- 1 teaspoon of Thai fish sauce (if you have it)
- 1 cup dry white wine (if you have it)
Add about a gallon of water; enough to cover most of the solid bits. Simmer the pot for a while; a little boiling won't kill the stock, but it can cause cloudier stock, and more impurities to strain / skim off. Check the pot occasionally to make sure the majority of solid parts are covered with liquid; add more water if not. You want to cook the stock for as long as possible - more time equals more concentrated flavor and more deliciousness - but it can be done in just 3 hours (especially if crack the bones).
Strain the solid chunks out of the stock and cool it. For the ultimate cooling mojo: put an empty pot into your sink, and then fill the sink (but not the pot) with ice and some water. Add about a tablespoon of salt to the ice water. Then pour the hot stock into that pot in the sink. Stir the ice-water once in a while. For long term storage, freeze the stock in muffin cups or ice cube trays for easy portioning.
For a professionals take on stock, see Freezer-Bag Quick Stock from Lynne Rossetto Kasper.
Flexbox is a great CSS module for making clean and flexible layouts. But flexbox is a bit odd, it can be tricky to get the results you're looking for when you're just getting started. Here are some things you should know about flexbox:
display: flex; goes on a parent element. Then all children of that element become flex items and will accept other flex properties.
- Don't use
box-sizing: border-box; with flex elements. It won't work they way that you'd expect from display or inline elements.
flex-direction defaults to
row to lay flex elements out horizontally. Sometimes, you want
column to lay elements out vertically instead.
margin-[side]: auto; makes the margin use up all the available space on that side. If multiple margins (in the same dimension) are
auto, they each take an even share of the available space
flex-grow: defaults to
0; where elements won't grow beyond the content's width. You probably want
flex-grow: 1. Among other things, this handy for making all input elements stretch to use up the remaining space: http://codepen.io/matuzo/pen/eJYdWV?editors=110
flex-wrap: defaults to
nowrap, where all elements will be stuffed on a single line (or a single column, for
flex-direction: column;). Alternately, you may want
flex-wrap: wrap; to allow the elements to flow to multiple rows.
- Flexbox is well-supported in all recent versions of Firefox, Chrome, Safari, Chrome, Edge, mobile browsers, and even passably-well supported in IE. See http://caniuse.com/#feat=flexbox.
For more about
If you're organizing a conference, one of the most important tasks is selecting speakers who will give unique and interesting talks to your attendees. But you've also got your budget to worry about...
Whether or not you can pay for your speakers' conference ticket and travel costs is one of the biggest factors in determining who can speak at your conference. There are few types of people who are generally more able to speak at conferences than others. To illustrate this, let us take a look at Earth 517, where StickerConf (the nation's most prestigious annual conference for sticker designers and developers) has just opened their speaker application process. These are some of the people who are thinking of applying:
Logan is the best there is at making stickers, bub. His sticker consultancy has been in business for decades and he is a common fixture at conferences. He is a popular speaker, but his well-worn talks always seem to cover the same material.
Just like last year, Logan will apply to speak at StickerConf, and will pay travel and ticket costs with his company's finances.
Scott is a committed single father. As a widower, he is the sole wage-earner and caretaker for his children Rachel (4 years old) and Nathan (1 year old). Scott's independent shop has been a leader in the sticker-making industry since the beginning, but these days he only has time for two things: parenting and making stickers.
Scott can't afford to pay his own way to StickerConf; there are college funds which need to be filled. Taking days off from his work to prepare a talk and to speak at StickerConf is already a significant commitment. If StickerConf won't cover his travel and ticket costs, Scott won't apply to speak.
Ororo is an industry longtimer and senior director at the largest sticker factory in the US. Her first priority is her career and managing her team at the sticker factory. The factory doesn't cover conferences, so she uses her own vacation time to attend and speak at a few conferences each year. Due to her busy schedule, she often neglects her own personal time.
Having already agreed to speak 2 other conferences this year, Ororo has room for perhaps one more new talk in her schedule. She will apply to speak at StickerConf if her costs are covered, but otherwise is considering taking a real vacation.
Hank is a tenured professor at a university where he teaches several courses on sticker making. He has a well honed stage presence, and years of experience teaching the traditional and theoretical methods. However, without any real world experience, his talks haven't changed much over the years.
Hank gets ample time off during school breaks, and a yearly stipend from the university for conferences and travel. He enjoys learning new things at StickerConf, and will apply to speak every year.
Warren is an entrepreneur who founded StickrIO a few years ago. He has managed to speak at a few conferences in the past year, and he has had a really great time talking to the community and increasing awareness of StickrIO.
Warren will apply for every speaking slot he can find, polish up his slide deck in the week before the conference, and StickrIO will pay his travel costs.
Kitty is attending state college on a full ride scholarship, and next year she will graduate with a degree in Sticker Sciences. As a full-time student with no parental support, she is broke as heck. But she is heading straight towards a career in sticker making and has been watching StickerConf's talk videos on YouTube for years.
She would like to share her fresh perspective with the professional sticker community; as well as to meet all the people that she has admired from afar. A quick peek ahead in Earth 517's timeline shows that one face-to-face conversation with Scott will give Kitty an insight which enables her to complete the breakthrough new sticker adhesive that she's got brewing in the school lab. But if StickerConf won't cover her ticket and travel expenses, Kitty can't speak.
Based on these profiles, if StickerConf does not cover travel and ticket costs for their speakers, they will only receive talk proposals from Logan, Hank, and Warren. However, if StickerConf is able to cover speakers' costs, they will have a much wider variety of talks to choose from. In fact, the lack of expense reimbursement tends to play a larger role in talk submissions for under-represented people than it does for those who are not.
Since iOS updated to version 9, the Music app is awful. Pants. Terrible. Balls. Poop emoji. Specifically:
- No, I don't want a subscription to anything. I just want to play the music on my iPhone..
- Why is this album shuffling? Where the hell is the shuffle button?
- Why are you wasting the entire bottom of my screen with advertisements instead of the customizable Albums / Artists / Genre pickers that you used to have?
So, I did the only reasonable thing, and spent an evening evaluating the available options from the App Store. These are the things that I was mostly interested when evaluating music apps:
- I prefer seeing buttons to learning gestures in an interface. I haven't found gestures to be common enough between apps that I can learn them easily, and I don't often spend enough time in any one app to really learn its particular gestures. (There are a few exceptions to this - flicking left or right to turn a page or to the next photo.)
- Integration with iOS music player controls, so i can still control them with Siri or from the lock screen.
- I love my album art, and I bet I'm not the only one. Album art should be featured prominently in the UI.
- It would be nice to be able to use playlists too, but Music is so bad that I'm willing to let go of playlists on my iPhone.
Ecoute is the best of the bunch and just $.99. Has an simple and clean interface, and allows you select music by Album, Artist or even playlists! It's standout feature is allowing you to queue up music to play next. Good-bye, Music.app. https://itunes.apple.com/us/app/ecoute-beautiful-music-player/id536882653)
A solid audio player, and it's free (but well worth the $.99 in-app purchase to support development). The UI is clear, and it gets right out of way and lets you to your music. I like the innovative way that it displays your album art in a random order to re-introduce you to old audio friends. And you can pick between music, audiobooks and podcasts. The only downside is that (as of this writing), it doesn't read playlists. https://itunes.apple.com/us/app/taptunes/id320145698)
The UI is gorgeous, I love the outline around the album fills up as the song plays. But it is far too gesture driven for my needs - and I feel like the "track forward" and "track backward" gestures are reversed. Some of the App Store reviews mentioned problems with Albums containing multiple artists. But I tested this and didn't have any problems. https://itunes.apple.com/us/app/listen-gesture-music-player/id768223310)
This app is focused on creating and customizing playlists. I only want to pick albums and play those - sorry Songbucket, it's not you, it's me. https://itunes.apple.com/us/app/songbucket/id691167689)
Here are some things that I kinda wish schools taught to their students:
- How to reserve a room in Outlook: Add room as a resource. If you don't get an accept from the room, you don't have it reserved.
- How to troubleshoot: Proving functionality of small the components which make up the entire system.
- How to evaluate a study: Has it been peer reviewed? Has it been published in a respectable journal?
- Statistical analysis: What makes an appropriate sample size, and how to actually calculate the odds.
Beyond Responsive: Building a mobile web you're f*ing proud of - Kate Hudson
- Many people only use the web via mobile!
- Technology failures do happen - prepared and engaged tech staff make it better.
- Test features before their time. Use service workers: transpile and polyfills.
Really good engineering is finding adequate solutions to problems that matter.
This talk was super useful for me. Someday, I intend to refactor my blog's backend from PHP to Node, but I sure as heck don't want to change the database that holds all the content.
- node-mysql: A Node package for doing SQL
- Bookshelf.js: An ORM that goes on top of knex; does common CRUD operations for you.
- Knex Querylab: Fiddle with the knex syntax
- SailsJS: An MVC framework for Node that talks to databases
(math == art && art == code) - John Brown
I always love John's talks; I find them super inspiring. Confession: I never finish my "homework".
- Color pallettes = math
- music = data
- Learning is more fun with art becuase you're in control. This is the freedom of personal projects.
- @AvatarGlitch: A Twitterbot that will make you a glitchify your avatar
- Art in a physical space: you can watch people interact with it.
Mariko's image processing parts were the most interesting to me; it's related to screen printing on glass that I took last year.
- Mariko's a non-native English speaker. Finally with knitting machine manuals, she's doing tech in her native Japanese.
- How to even bitmap?
npm install gm: GraphicsMagick and ImageMagick for node.js - https://www.npmjs.com/package/gm
- Greyscale: Make the grey == the highest of the RGB values
- To make that monochrome requires dithering; methods include halftone, bayer and screw.
Cold War - Simon Swain
When Simon finished his talk, he walked right by our table and everyone just watched him with jaws agape. It was absolutely mind-blowing. There doesn't seem to be a video of Cold War from JSConf, but there are videos of other versions from both TXJS and EngineersSG.
We owe our jobs to cold war networking technologies.
- With two warring states (orange vs. blue), who wins?
- In animation, 60 fps = 16ms to render a frame to keep the browser below the jank point.
ctx.store() for canvas states
- The unit flocking came from rules: stay near to other units, shoot opponents with just a hair of randomness added.
- The slideshow was all in CSS/JS, including the glitch effect
- Have a play with at Cold War at https://coldwar.io/coldwar or other wonders at https://coldwar.io/.
- Make your own Cold War: https://github.com/simonswain/coldwar
Steve Kinney: Building a musical instrument with the Web Audio API
- Good news - someone put a synthesizer in your broswer.
- Math notes: https://github.com/stevekinney/octavian
- Hook up any input or sensor to the browser. Face Terimin! Johnny Five Music! Power Glove! Music Bot!
Maintaining a Local Dev Meetup - Jacob Roufa
- Everyone learns at a different place.
- The Cathedral & the Bazaar by Eric S. Raymond
Meetups are a wonderful place to become a better version of ourselves.
- It's possible that I shouted unduly - I just love FreeGeek!
To run a meetup, you need a Code of Conduct. It's about devining harassment explicitly.
- A meetup needs space and internet.
- Better than being excellent to each other; be of service to each other
If you wish to learn ES6/2015 from scratch, you must first invent the universe - Ashley Williams
I teach beginners, and beginners teach me.
- The conceptual understanding is exposed by the language.
- Picasso = abstraction. Through a deep understanding of the core subject.
- When abstractions attack: "Draw the f*cking owl."
Teaching is nature's way of letting you know how sloppy your understanding is.
30 Minutes or Less: The Magic of Automated Accessibility Testing - Marcy Sutton
- A11y = accessibility
- 1/5 of the world's population has some disability.
- Easy win: styles for focused elements
- Turn on your Mac's included screen reader - Cmd F5.
- Firefox's Developer Tools: Structure Check
- Chrome's Dev Tools: Accessibility Audit
- npm: A11y + phantom = automated tests
You can watch all of talks - there were so many that I either missed or didn't have time to write useful notes for. I hope to get to all the videos someday!