Mistakes

I was so upset.

Having just finished my first bike ride in six years with my first bicycle in nearly twenty, I knew my $200 expenditure was a mistake.

The bike, which during the five-minute test ride made me feel like I was flying, was in terrible shape. The grips were plastic, the seat was too low, the brakes squeaked, and I wasn’t nearly qualified to ride it.

My lack of experience in purchasing a bike was more than enough to overcome what little bit of research I had done online.

And unfortunately, you can’t return items on Craigslist, especially when you pay for them in cash.

Fortunately, my busy schedule allowed me to avoid the bike for nearly eight weeks. But then I had a free weekend, and it was time to face the music.

Off I went to a bike shop to fix up my tragic bicycle.

Having never been to a bike shop, I was amazed at all the options available. Now, suddenly, my bike had potential! I gathered a squishy pair of grips, a better-bent handlebar, a sturdier kick-stand, and a new brake cable. (Having a mechanical background makes moments like this one particularly fun.)

Also, in the corner of the store, was a used bicycle, on sale. It had everything I had hoped the Tragedy Bike would have, and more. But I’d already committed* to my new bike, so I paid for my upgrades and went home.

The upgrades made an instant, incredible impact. Tragic Bike was transformed! It was now Minimium Viable Bike: it would get me to the train station and help me buy groceries. We’d be fast friends, I knew.

That night, however, I couldn’t help but think about Other Bike. The one I saw in the shop, on sale. It really had everything I wanted. And it wouldn’t have to wait for my one free weekend for me to fix it up. But I put those thoughts aside and prepared for the ride I would go on the next day.

I took the MVB out of the garage. There’s a notion in engineering where you have the “good enough” solution. No, it’s not perfect, but without the time, talent, or funding to make it the best solution, you will settle and hope you remember to fix it later. (You, dear reader, might also know this phenomenon as technical debt.)

As I left the house, the front fender fell off. I removed the fender. Turns out the fender fell off because the brake fell off. I removed the front brake (that’s what the rear brake is for, right?). I guess the front wheel felt lonely, since it fell off next. We didn’t make it out of the driveway.

And with that, I returned what was now Failure Bike to the garage, got in my car, and made my way back to the bike shop.

An hour later, I had Other Bike (now New Bike) in my possession. It was, in fact, everything I wanted out of a bicycle.

We often get caught up in what we think we want. In an attempt to save money, we’ll grab the first thing we see, realize it was a HUGE mistake, and try to make it better, usually with more money. When possible, the best approach is to do proper research, find out what you need, and buy the best option available, the first time around.

Commitment is a funny word. To stick with something you love, during good times and bad, makes perfect sense: nothing is perfect, but if you are willing to compromise, your chances of being happy over all are pretty high. If you stick with something you don’t* love, however, what’s the point?

======

This was originally posted on The Pastry Box Project at https://the-pastry-box-project.net/raquel-velez/2014-March-31.

How Do I Learn To Code?

I received an email this morning about learning to code. I responded to it, and felt like maybe I should share it with others. So, um… here it is! :-)

Have questions? Comments are open :-D

======

Hi!!

So, the number one thing when it comes to learning to code - is to want to learn to code. It can start out as a curiosity thing (that’s generally how it starts), but it gets frustrating fast, so inherent self-drive is critical.

There are a lot of programs out there where you can pay money to have someone teach you to code. I don’t recommend spending it, unless you need the structure and are confident that the extra connections and opportunities are worth the cost. In the world of Time, Talent, and Treasure, I’d rather spend my Time building my Talent, rather than my Treasure. (But that’s just me.) More often than not, these classes involve someone giving you a roadmap for learning to code - you’re still going to have to learn it on your own (you’ll just have people right next to you when you have questions, instead of relying on the Internet). Again, emphasis on the need to be self-driven.

Here are the basic first steps:

1) Pick a language to learn. There are LOADS of languages - pick the one that seems to be good for now. You can always switch later (in fact, knowing one language makes it easier to learn another). The best way to pick a language is to figure out what sort of things you want to do - do you want to play with web stuff? Phone stuff? Hardware stuff? The answer to these questions will help you narrow down your options and pick the right language for you to learn.

2) Start messing around with code. Get stuck, ask questions, mess around. Get stuck, ask questions, mess around some more. This is where things get frustrating, but also where you do the most learning. For asking questions: Stack Overflow is a really good resource (best used when searching via Google and accessing specific topics). Also reach out on IRC and Google Groups (depending on what you’re trying to do). Most important, though, is to meet people who are doing what you want to do and ask questions in person. (When you’re starting out, you don’t yet know the vocabulary you need to ask good questions. Being able to talk to people and say “this thingie isn’t doing the whatchamacallit I was hoping it would - why not?” and have them understand that you’re talking about databases and storage is MAGICAL.) Go to Meetup.com and search for the language you picked earlier. Go to those events. Ask questions, get involved, become a better programmer.

Words of warning: it is hard. You WILL mess up. But programming is the closest thing to alchemy that you can get in the 21st century (we turn 0s and 1s into things that people use, sometimes to save lives!). It’s so incredibly rewarding and I’m so grateful I get to do it every day.

If you have questions, let me know!!

Hugs,

Raquel

P.S. If the only goal is to get a good job in the field and make loads of money with little effort, you can do that, too. But it’s also soul crushing and will make you want to quit after about 5 days. Learn to code because you want to build stuff, not because you want to make money. People will throw money at you once your skills are up to snuff (and if you put in the effort, you’ll get there!).

Nom.

Best Chocolate Chip Cookies On the Planet


These are the absolute best chocolate chip cookies you’ll ever make/have. The sea salt is key — do NOT forget the sea salt. You can use regular salt the first time, but once you start using sea salt, you’ll never go back, unless you lose your sea salt, in which case you’ll think you’ve completely and totally failed at making chocolate chip cookies.

Christmas Croissants


Make these at least once a year (I do them at Christmas-time). They’re a lot of work (they take 3 days), but they’re holy cow amazing. No, really. They’re the closest things you’ll ever find to proper French croissants outside of France. Warning: they’re 90% butter, and udder-ly delicious.

Wedding-Cake Cake


If I had had the time, I would have made my own wedding cake with this recipe (apologies for the ads — content and quality of website aren’t always directly correlated). This cake freaking rocks, especially for birthdays. Or any occasion, really.

Dad’s Flan


Ok, so this one’s actually kind of a secret. No one knows the recipe, not even Dad. But I watched him make it once, and I made my husband copy some semblance of the ingredients and process. I even made it myself once, and it came out well, but not the same. This recipe is fairly close, though it’s in Spanish :-)

The Point of this Post


The stuff we make is best when shared with others. I share code, robots, and — now — some of my favorite recipes. I suspect you’ve got lots of good (non-technical) stuff worth sharing, too.

Let’s be nice, share the things we make with each other, and enjoy the tasty things in life.

(Also, this is the Pastry Box Project, and so far I haven’t seen any recipes. Fortunately, I <3 baking and can provide some quality options for you!)

Sharing Really is Caring


Have some amazing recipes you’d like to share, too? Please do!

======

This was originally posted on The Pastry Box Project at https://the-pastry-box-project.net/raquel-velez/2014-March-4.

Role Models

Newbies

You don’t have to look like, act like, or have a similar background to ANYONE to get started in this industry.

Be you, do great.

Me, a few weeks ago on Twitter
When I was a beginner web developer, my first thought whenever I visited a website was to find out out who was involved. I always asked myself, “Which one of them is the most like me?” I usually started with faces — “Do any of them look like me?” And then I moved to names — “Do any of them have names like mine?”

In the case of many websites: No, none of them were like me.

Does it matter?

Yes — it absolutely matters.

Some of us spend our whole lives constantly reminded about the things over which we have no control (race, gender, ethnicity, neighborhood in which we grew up, etc). Often these reminders are followed by (usually inaccurate) stereotypes about our intelligence, personality, fashion sense, etc. Over time, we (understandably) start to believe it all, and it infiltrates every aspect of our daily lives.

Role models are important. When the people we look up to look like us, act like us, and have similar experiences as us, we start to believe that wecan be like them. As students, we need to know that we can learn the hard stuff, despite the memories of the morons in our past who tried to convince us otherwise. Role models help us keep going.

Unfortunately, as in the case of the aforementioned websites, not all of us have role models when we need them. So what should we do?

We keep going anyway.

Like it or not, our success is defined more by how we act than by how we’re born.

Be persistent, learn constantly, and ignore the haters.

Become the role model that someone else looks up to, to know that they can make it, too.

======

This was originally posted on The Pastry Box Project at https://the-pastry-box-project.net/raquel-velez/2014-February-4.

Is Your Conference Proposal Good Enough?

Hi Friends.

So you’re thinking about submitting an idea for a conference. Hurray!! Please do – your ideas are worth sharing and even if you don’t think it’s very good/original/worthy, no one knows how to present your material the way you do. So go for it!

Now, if you’re hoping your idea gets picked, then listen up and listen good. While I can’t guarantee that your talk will be selected, I can help you not get outright rejected.

Not only have I spoken at a variety of conferences, but I’ve also helped conference organizers sort out conference proposals. I’ve been on teams that have decided who gets to be on stage and who doesn’t. So before you hit Submit on your proposal, make sure you keep these in mind:

YES


DO pick a relevant topic to discuss. Be mindful of the conference to which you’re submitting a proposal - if it’s a local meetup, then chances are your “10 Steps to Writing a Perfect Angular App” will be great. If it’s a major, global conference that prides itself on pushing the envelope, your how-to guide will be less successful because writing an Angular app (which has been done countless times in blog posts all over the Internet) isn’t pushing the envelope. Maybe it was a year ago, but not this year.

DO tell organizers what you’re going to discuss with some detail. We don’t need The Great American Conference Proposal, but 100-150 words about your topic is great. I’ve seen CFP topics that say “EmberJS.” That’s it. Nothing else. While I’d love to hear more about EmberJS, it’s also complex on many fascinating levels. What’s so special about your topic? Will it beat out someone else who’s eager to talk about Ember’s inner complexities, using it at scale, or how it compares to the many other frameworks out there? For all I know, you’re going to talk about the cute little hamster mascot. Let me know what you’re going to discuss and be specific.

DO submit more than one proposal, if you’ve got more than one topic you’d like to discuss. I’m not just the “robot” girl - I also like to talk about node, front-end dev, math, and all sorts of other things. Maybe you’ve got a bunch of ideas, too, that all fit into the theme of a given conference. Shop ‘em all! No one loses points for submitting more than one proposal, and by the law of statistics, the more proposals you submit (assuming at least one of them is good), the higher your chances are of getting one picked!

DO ask your friends to review your proposal(s) before you submit them. Ask your colleagues if the topic sounds like something they’d want to see at the conference. Ask your writer friends to review the proposal for typos, clarity, etc. Most importantly, ask yourself if this is a topic that you can prepare for and give an awesome talk about - if you’re excited about it, it’ll show (and we’ll be excited about it, too!)

NOT SO MUCH


DO NOT give me 4 proposals in a single CFP. I LOVE that you can talk about many things. But when you tell me that you can talk about A, B, C, and D (and then ask me to choose for you), it makes it nearly impossible for me to know how to categorize your submission. (Yes, it’s true. Some conferences have categories. This should come as no surprise.) For larger conferences, organizers have teams specifically focused on individual categories. If your submission has a proposal about frameworks and a proposal about robots, then my choices are to pick the category for you, manually split the proposal into two and then pass them both along, or ignore it altogether. (Note: When categorizing, I’m willing to spend up to 30 seconds on each submission. I’ll let you figure out which option I’m going to choose.) Instead, submit four separate proposals! Now you’ve got me spending 30 seconds on each of your proposals, instead of 30 seconds on your one (overloaded) submission.

DO NOT ask me if your proposal has been picked. I don’t know how you found out that I’m on the speaker selection committee, but that’s completely irrelevant. I make it a point to be as unbiased as possible while reviewing submissions. Chances are higher that I have no idea what your topic was about, since I don’t look at names or bios when reviewing talk topics. The best topics will move forward, and the selected speakers will be notified by the conference organizer. If you bug me about it, it’s more likely I’ll remember your name with a negative connotation. You deserve better than that, so let’s keep the speaker selection process to strictly business, yes?

DO NOT propose a topic that you think will get you on stage but doesn’t actually excite you at all. Yes, robots are a crazy hot topic right now. But let’s say you don’t actually care about robots. Let’s also say that you’ve managed to create an incredible proposal and you get picked. Now it’s a week before the conference, and you’ve procrastinated on your talk because you don’t actually give a humdeedum about robots, and you’re stuck for something to talk about on stage. Next you’re on stage, ill-prepared, and your boss is sitting in the back of the room (or your potential future boss, who you were hoping was going to offer you a job after seeing your talk)… Don’t put yourself in this situation. It’s not worth it. Pick a topic that excites you, write a proposal that shows that excitement, and submit it to every relevant conference out there. One of them will pick you up (if not more!), I promise.

====

Curious about what a good conference proposal looks like? Be sure to read this post on weareallaweso.me by Tiffany Conroy (@theophani), a JSConf EU curator!

====

For even more (bonus!) DOs and DON’Ts, be sure to read through this post by Chris Williams (@voodootikigod), the JSConf US curator!

====

This was a PSA from your friendly neighborhood rockbot. Let me know your thoughts below.

Fountains

“Dime con quien andas y te diré quien eres”

(Tell me who your friends are, and I’ll tell you who you are)

— Spanish proverb
Your friends matter — a lot.

The good ones are like fountains: they’re active listeners, help you celebrate your wins, and give you valuable perspective when things go south. Simply put, they energize you.

The bad ones are like sewers: they complain, spread rumors, and make you doubt yourself on the regular. In short, they suck the life out of you.

Surround yourself with fountains and limit the interaction you have with sewers. You’ll feel better in the long run.

======

This was originally posted on The Pastry Box Project at https://the-pastry-box-project.net/raquel-velez/2014-january-4.

Chapter Three is Upon Us

My crazy experiment started in January 2012. I thought I knew what I wanted, but in truth I had no idea what lay ahead.

And now, um… 2014 is starting in less than two hours.

2013 was amazing; what started out as an adventure in San Francisco has resulted in pretty much the most incredible year I could have ever hoped for.

2014 will be even more incredible, with more writing, more speaking, and a whole lot more JavaScript!! :-D

Massive - MASSIVE - thanks go to all the incredible friends (old and new!) who have encouraged me to be my crazy self.

<3

Silly rockbot
Silly me, trying to help with scalenpm

Using XBees for Wireless NodeBots!

Tethered robots just aren’t nearly as cool or fun as wireless robots. When you’re just getting started or prototyping, having your robot directly connected to your computer is fine, since your little bot probably isn’t going to be going very far.

But eventually, just like an over-confident teenager, your robot is going to want to leave the comfort of the workspace. And, like a good parent, you should let it.

https://twitter.com/rwaldron/status/345912423015923714

Thanks to the work of Rick Waldron, Francis Gulotta, and Jeff Hoefs, we’ve got wireless working in NodeBots land! (By wireless, we mean replacing your USB cable with two XBee radios. If you’re using Johnny-Five, this means your j5 commands will still be processed on your host machine and then sent over the air to the Arduino.)

Here’s what you’ll need*:


  1. 2 XBees (I’ve got two PRO Series 1 Wire Antennas, but here’s a good guide for you to decide what you want/need)

  2. XBee Explorer (for your XBee transmitter)

  3. XBee Shield (for your XBee receiver)

  4. USB A to USB mini-B cable (actually tought to find now that USB A to USB micro-B cables are super prevalent)


* I’m not part of any affiliate programs - most of the links here will lead you to a local shop run by a real person who genuinely cares about hobby electronics. If you want to buy your electronics from one of the bigger retailers, no worries - I just thought I’d give Al a shout out for being awesome :-)

Once you’ve got the goods, make sure you’ve got the right drivers.

Now, I had the distinct luxury of having my XBees configured by someone else. When you get yours, however, you may not be so lucky. If you have a PC, you’re in luck, as the general recommended method for pairing XBees is done using X-CTU. If you’re on a Mac, however, you can still make it work! You’ll just need the Arduino IDE and this handy tutorial.

And that’s it!

Got questions? I’ve got answers (or I know someone who does). Ask away!

Why do we build bipedal robots?

That, good sir, is a fantastic question! And while I’ve done no specific research, I do have a few clues as to why we even bother with the two-legged robots:

Two legs are actually good for some things


When we think about mobility, we generally have two options: wheels and legs. Wheels (and I’m going to include treads here) are perfect for roads and generally flat surfaces. But legs - legs - are what will get us through forests, over rocky mountains, and up and around the Great Wall of China. 2-, 4-, 6-, and 8-legged animals have managed to roam the earth with ease for as long as animals have lived on this planet; wheels have only been around for a short period of time by comparison.

I’m pretty sure that the reason we humans have two legs is simply so that we can stand up and look around while carrying things with our other two legs (aka “arms”). In any event, having two legs is pretty useful.

We’re more accepting of robots that look like us


Think about Star Wars. Which robot is easier to relate to? C-3PO or R2-D2? Luke hardly bothered interacting with R2, whereas he was in constant communication with C-3PO. (And it’s not just because C-3PO could speak English; body language is critical to human communication.)

We like robots that look like humans. We want to interact with robots that look like humans. In fact, our world was created for humans, by humans.

It’s an interesting challenge


Bipedal locomotion is a tough problem. Not only do you have to worry about balance, but you also have to worry about momentum. In particular, the center of gravity on a bipedal robot is actually off center for the robot, as opposed to in the center for a generic 4-wheeled robot. (This is so that when the robot is ready to move, it can actually move forward/backward, instead of simply lifting its legs up and down.)

Easy problems aren’t nearly as interesting as tough ones, at least, in my opinion ;-)

We’re a little narcissistic


We humans like to create things. Whether it’s a house made of twigs or space rockets, we get this ridiculous satisfaction out of being able to say “I made that.” Add to that notion the idea that we already know that we’re the most interesting creatures on earth, and there’s something undeniably cool about being able to create something in our own likeness. You can argue that you can create human life with a bit of biology, but as any parent will tell you - you don’t have a chance in hell of making it do everything you want it to do, 100% of the time.

So now we have robots. Robots are totally under their creator’s control. For better or for worse, your robot will do everything you ask it to do. Little boxes with wheels are certainly a good start, but for the truly power-hungry, maybe a robot that looks like a human is even more satisfying to control than your average, run-of-the-mill starter robot.


In short


Yes, our brains are what make humans the coolest animals on planet Earth, but our bodies are pretty great, too. I hope this post sufficiently answers your question, Tom!

If anyone else has a question (robotics-related or otherwise), feel free to tweet at me or send me an email!! This was fun :-D

Conference Protips

I went to three conferences in the past six weeks. This is not a combination I will attempt to do again, but I would like to pass along a few observations that I noticed in the process.

As an Attendee


  1. Don’t feel like you have to go to every. single. session. There are many of them, and not all of them will interest you. Sometimes it’s better to go back to your room or sit in a corner to recharge, or maybe you want to participate in Hallway Conf (the unofficial networking event that happens outside of sessions). This is more than okay.

  2. Yes, you are going to have to be at least a little social. Yes, you will have to talk to random strangers. Fortunately, it turns out that you already have something in common! (Hint: it’s a safe bet you’re both into the subject of the conference.) Some of the best people I’ve met in my life are the random strangers I awkwardly introduced myself to at these events.

  3. The speakers are not gods. They will not smite you with lightning if you ask (what you think is) a silly question. In fact, they are speaking because they want you to learn something. Go talk to them and pick their brains.


As a Speaker



  1. Be prepared for your talk, but don’t freak out. The members of the dev community are (by and large, at least in the JavaScript community) ridiculously awesome. They will worry less about your ‘ums’ and ‘ahs’ and more about whether you are authentic and interesting. Put on a show, but have fun while you’re doing it.

  2. You will be nervous before your talk and exhausted after it. These feelings are due to your endorphins surging through your body because you’re doing something unnatural. This is more than okay. Drink lots of water, talk about something that makes you happy (i.e. your dog or your favorite board game) during the 20 minutes before your talk, and take a quick potty break right before you go on stage. After your talk, expect to have to answer some questions - just make sure you eventually find some alone time to fully decompress.

  3. You are not a god. Be nice when someone asks you questions about your talk or topic. Be honest - if you’re tired/don’t want to answer/don’t know the answer, just say so. You will get crazy questions, but you’ll also get really interesting ones.


For Everyone



  1. Network, network, network. You have no idea who you will meet or what they can do for you later on in your career. I’ve gotten most of my leads for exciting new career opportunities while at conferences - it turns out knowing your future boss is an excellent “in” for your dream job (and a whole heck of a lot better than going through a recruiter).

  2. Follow up, follow up, follow up. The people you connect to at the conference will be connecting with the hundreds of other people at the conference as well. They’ll remember you better if you remember to reach out to them. Fortunately, it’s 2013 - you don’t have to exchange business cards; Twitter, gchat, and IRC are perfectly sufficient methods for keeping those connections strong.

  3. The conference organizers and staff have worked their butts off. Thank them. Thank them every chance you get - because their jobs are the most thankless, and they need to be reminded that it was all worth it. It doesn’t matter how you thank them, just make sure that you do.

  4. Don’t be a meanie/poopy head. No, really - be kind, courteous, and respectful. Have fun, but not at the expense of others. Conferences are only as awesome as the people who participate in it.