Month: July 2018

  • Shared today on Twitter

    RT @waxpancake: Google Reader shut down five years ago today, and I’m still kind of pissed about it.


    @minxdragon Yes indeed! I could send you one, but I bet @frconil could find you a local source faster… 😉


    Today’s #bepeculiar adventure: a full day of new hire orientation! Excited to meet all my fellow new Amazonians. 😁


    It’s been a while since I baked. Was inspired to create some truly OTT American Compost Cookies for the 4th of July! 🇺🇸🍪 https://t.co/tsL9VBXOLx https://t.co/scp5t9eo5C


    Protip: when you update your lambda function code, YOU HAVE TO ACTUALLY DEPLOY IT IN ORDER FOR IT TO WORK. *smacks forehead*


    @MichelePlayfair https://t.co/V0xiQq3czb


    @MichelePlayfair Oh wait. That’s not the recipe I use. 🤔


    @MichelePlayfair I used this one: https://t.co/VNk68nD1EZ


    I have 79 LinkedIn connection requests with no message to give me any context about where I met them. 😭 People, if you want to connect, LEAVE A NOTE. https://t.co/eBVOfPvgUZ


    Yes to all of this. (Especially the socks!) 🧦❤️ https://t.co/2AnJWro4Xi


    @mootpointer Like I wouldn’t recognise the guy with THE BEST SPEAKER PHOTO EVER.


    @Amys_Kapers It ALL went in the cookies.


    @boyter Okay, I am still pretty new to serverless, so please explain that bit a little more!


    @twistieman Nope – you didn’t hit the connect button! But it’s cool – Imma do it. 🙂


    @boyter Ahhh, I see. Luckily I was fixing mine about 12 hours after it had failed and timed out. 🙂


    List: 17 Real-Life Would-You-Rathers I, a Woman, Have Had to Ask Myself – https://t.co/hcWmQ7Vyln – @mcsweeneys killing it again with the “I laugh so that I don’t weep” content.


    Annoying part of having a 9-5 office job that I totally forgot about: picking a different outfit every single morning. Ugh.


    @jonoabroad Pants, every damn day. 😒


    @Taco_Lad @jonoabroad More socially acceptable for dudes. Still – considering it!


  • Shared today on Twitter

    Banksy Hits Paris with Sharp Political Criticism and Several Mischievous Rats https://t.co/eFGw3j5Iuw – This is very cool. https://t.co/ewt6k9SDry


    Diagnosis: Female https://t.co/S8wwErEPWU – DAMN. My (male) GP is great, but I still wince-laughed at this… as would pretty much every woman, I reckon.


    @feraldata Any chance you’ll be in Sydney on August 22? @SydTechLeaders are having a meetup focused on ethics in tech and we’d love to have you join us.


    @randomknits Awww, @gilmae has a bebe!


    Just donated. You should too. 👍 https://t.co/uvGjs7Wndo


    Did you know there are 19 tech events happening in Sydney on July 3? 😱 Blog post: Introducing MUGicalNode! I wrote a serverless app to create calendars of Aussie tech events that YOU can subscribe to in your calendar app of choice. https://t.co/ahIouoqzWl https://t.co/WZfd94AviM


    @LapTop006 Ahhh, of course. It’s those @meetupmadness folks with their #beerops event! Should’ve known. 😂


    @gilmae That’s only been possible for a couple days! 😂


    @lemon_lime Ooh, I didn’t know Season 2 was out! I hear they did a Queer Eye crossover though. 😂


    @Mandy_Kerr @DDDPerth @msandfor @AshleyAitken @robdmoore Congrats to all of you!!❤️


    @lemon_lime It got added the other day as a special extra on the end of the QE2 season, I think. I haven’t watched it yet.


    RT @glasnt: I’m running a conference next month. You should come along

    https://t.co/KPA8tfY5US


    @larsklint Congratulations!!


  • Introducing MUGicalNode!

    Back in January 2017, I wrote a PHP script I called MUGicalPHP that used the Meetup API to create iCal feeds (ie calendars you could subscribe to) for tech events in various Australian cities. The idea was that it would update the feeds every day with new events. It was kind of flaky though, and it often failed silently without me knowing about it. (Sometimes the Meetup API just decides to return ZERO RESULTS for some reason. 🤷‍♀️) Still, it was useful and mostly worked, so I shared the links with lots of folks in the community and made plenty of use of them in my job at YOW!.

    Fast-forward to 2018, and now I’m working at AWS. As I was going through the hiring process, it occurred to me (not for the first time) that I could probably use “that Lambda thing” to rewrite my meetup script to be “serverless.” So… I did it!

    MUGicalNode is now working and it’s up on Github here. If you were using the old links, they should point to the new version and hopefully you shouldn’t notice any change at all (beyond them being more reliable and frequently updated!). If you just want to subscribe, add these in your calendar application of choice:

    How it works: I started the project with a straight monolithic reimplementation of the old PHP script, and I was super proud when I got it working locally. Unfortunately, the Meetup API did not like me firing off lots of requests in parallel and promptly banned my access key for a bit. As a result, I ended up breaking the script into three parts: “getgroups,” “getevents,” and “makecalendar.”

    • “getgroups” runs once a day for each city. It requests all the groups in a location matching a topic list and then stores those groups in Amazon Simple Queue Service.
    • “getevents” runs every minute of every day. It checks the SQS queue to see if there are any groups. If there are, it gets the top one and requests the next 10 events for it from Meetup.com. If events are returned, they’re saved in an Amazon DynamoDB database.
    • “makecalendar” runs once a day for each city. It retrieves all the events for the city from the DynamoDB and then constructs an iCal feed from them. It then uploads the file to an Amazon S3 bucket.

    This seems to spread the requests out enough that Meetup doesn’t complain. That said, as of three days ago SQS is now a supported event source for Lambda! That means instead of triggering “getevents” every minute, I could simply use the queue as the event source and have it trigger automatically. My only hesitation is the throttling on the Meetup side, so I’m going to have to do some testing to see if this is feasible.

    Costs: I don’t have an operating cost estimate for this project, but I suspect I will be well within the free tier for all these services. I’ll let you know at the end of July.

    Additionally: As part of this project, I also rebuilt my old personal site https://krishoward.org and migrated it to AWS for hosting. That code’s on Github here. I was indebted to this great post from Vicky Lai that describes how to get your custom domain and SSL certificate working with S3 buckets.