I Voted Blinky Badges are here!
You may have noticed something new and fun on our homepage - inspired by the "I Voted" stickers, we made blinky badges. Now you can show your pride in voting, and encourage others to vote, day after day before November 3rd!
What are they?
They're wearable circuit boards that you can "pin" to your clothes using 2 super-strong magnets. We have a pre-assembled version and a solder-it-yourself kit, and all have an ON/OFF button and a BLINK/SOLID button, in case you're sensitive to flashing lights or just don't feel like blinking at the moment. All come with a battery and the two magnets used for "pinning".
My Voting Story
Voting is important to me now because I grew up in a community of people who were mostly disenfranchised by voting. I grew up in the US Virgin Islands, a US territory, where the US citizens who reside there are stripped of their right to vote. I say it like that for a reason - I think people tend to easily "other" people living in US territories thinking either "oh they aren't acutally US citizens" or "no one really lives there, it's just a place people go on vacation." Both of those are very very wrong impressions. Many families have lived there for generations, and anyone born in the USVI or Puerto Rico is a US citizen. If YOU are a stateside-living US citizen and decided to move to the USVI tomorrow, you would not be able to vote for President and would have no voting representation in Congress. Yeah. You can move to Peru and still vote, but you cannot vote if you move to a territory of the United States. If you have any doubt this is due to racism against Black and brown people, read this Harvard Law Review article and some of the language used by - I shit you not - Professor Christopher Columbus Langdell, proclaiming that Puerto Rico and the USVI were "inhabited by alien races."
So the first election I was eligible to vote in because I moved to California, was the year 2000. And I was like "whatever, who cares" because frankly, the federal government of the United States is dismissive of its territories, so I was pretty dismissive of it too. But then a friend had an election night party, but only if you voted and he threatened to check stubs at the door (this friend is Adam Rakunas, he now writes some fun sci-fi with female protagonists, check him out). Well, a party with good friends and good food was relevant to my interests, so that's why I registered to vote and voted in that election - the first in a long time where the popular vote went against the electoral college and yes, my just-out-of-college-self was like, "see, this is bullshit, I told you so!" But despite that, I still continued to vote in presidential elections, and then I started to vote in midterms, and then I started to actually give a shit about voting.
Yes, I should have given a shit earlier. I shouldn't have HAD to been peer-pressured into it. This story isn't a shining example of inspiration. I wanted to share it because I know there are a millions reasons to be disenfranchised - feeling that your country doesn't give a shit about you, feeling like it's always a choice between bad and worse. But it is a choice, and some people don't even get that. And your vote absolutely matters at the local level - our mayor race was won by only about 40 votes in 2016.
I still think there are serious problems with the electoral college system, but voting is the main weapon I have. Even if it's dull as a spoon, I'm still going to use it. It's the LEAST I can do. If you've got a disenfranchised friend, keep working at them. It may only take a bribe of some cookies or beer. And please remember, voting is a privilege, it's not a guaranteed right. Please exercise the privilege you have.
I'm one of the organizers of a local Women in Tech group in San Luis Obispo. We firmly believe that the only kind of feminism is inclusive feminism, and this is especially important because San Luis Obispo is a very white town. SLO is 84% White (and 70% non-Hispanic White) and only 2% Black, and the demographics specifically in tech seem to be a lot worse. We talk a lot in our group about allyship - how we want men to be better allies for us, and what that looks like. In turn, we need to be better allies for Black women in tech. One of the ways we can do that is by speaking up and working to change each of our companies' cultures from their white - and let's be honest, kinda racist - default.
I originally wrote this piece for the women in tech group's newsletter, and after several people asked if they could share the newsletter, I decided to make it public and easily accessible. This article is written by a white woman (me) and is intended to be a resource for other white women who want to learn how to be better allies, and who would like some help with speaking up (including links to sites that go over specific examples and verbage). I draw a lot of parallels to sexism - this is not to remove focus from the immediate problem at hand, which is enormous systemic racism. I talk about sexism because it's a common ground we all share in the Women in Tech group, and I believe our experiences with sexism should make us more empathic to those who are experiencing racism.
Why We Need to Speak Up
In our group video meeting last week, one of our members brought up an experience she had at work. Someone made a racist joke in the workplace, and even though company leadership was present, nothing was said. This emboldened the person to keep making racist remarks and jokes because he took the silence as approval. It wasn't until someone spoke out later that the leadership made a public statement and put a stop to that behavior. Our group then had a good discussion about speaking up, which I've been chewing on, and reading more on, for the past few days.
Not only "speaking out", but speaking up immediately when a racist comment is made keeps coming to the forefront in much of my reading.
This article continues by focusing on racism in the workplace. But we should be speaking up whenever this happens; whether it's at work or in our daily lives. And my friend made the point that it's extra important to speak up when kids are present, because kids soak up everything, and will tend to assume that anything an adult says is OK. He then shared this story:
"When I was a kid my cousin spoke up against someone who made a gay joke and it was literally the first time in my life I heard someone say there was nothing wrong with being gay. I never forgot it and it was a lifeline. It was such a fleeting moment and when I told her about it a few years ago I couldn't even remember when it was and who was there. All I remember is her saying it and it mattered tremendously."
Why We Should Speak Up Right Away
I know from my own experience with sexism, that when an ally speaks up right when it happens, it makes a much bigger impact than if it's handled "discreetly" and "offline" later.
OK, But What Do I Say?
When something racist or sexist happens, we're often caught off-guard, and don't know what to say in the exact moment. And that can result in us not saying anything, which means that we're complicit in the racism that's happening. So that means we need to work on being anti-racist, and speaking out!
What Not to Say
If you're in a situation where a racist remark has been said and a person of color is in the group, don't make it specifically their problem. Don't say something like, "That was super racist, Jim, how do you think you just made Tiffany feel?" That singles Tiffany out, puts negative attention on her, and forces her to respond. You can say instead "That was super racist, Jim, and I don't tolerate that in my space." Never speak for the other person, just use your privilege to speak for yourself.
Speaking up is going to be uncomfortable. As women who are already battling sexism, it may even be risky for our jobs. But it's also one of the best ways we can combat racism and effect change. It's upon us white people to speak up to our fellow white people, and to dismantle white supremacy. And if we can speak up on racism, maybe that will embolden others to speak up on sexism. Let's be the kind of ally for others that we want others to be for us.
A while ago I released BitMarkers - binary stitch markers for knitters and crocheters. I didn't worry too much about a supporting how-to or blog page, because there are a lot of binary number tutorials on the interwebs. But after seeing that the most popular ones tend to dive straight into exponential notation and math-heavy explanations, I decided to go ahead and write my own. This is intended for beginners, and focuses on re-learning how numbering systems work in hopefully a more intuitive way. Then it goes into exponents at the very end.
To put everything in context, let's first review a "normal" number.
Each digit in our number can be 0 through 9. So including 0, there are 10 possible choices for each digit. This is called a base 10 numbering system, and is colloquially known as "decimal". It's also called the "Hindu-Arabic numeral system" after its origins.
In binary, there are only 2 possible choices for each digit: 0 or 1. So it's known as a base 2 numbering system, or binary.
Why only 2 choices? It all boils down to how computers work, electricity, and voltage. Computers can sense the presence of a voltage, or the absence of a voltage. It's either there or it's not. Presence/There = 1, Absence/Not There = 0. So if that's the medium you have for storing and reading information - basically either something's there and it's a 1, or something's not there and it's a 0 - you have to develop a language where you can communicate concepts based on long strings of 1's and 0's. This language is binary.
Binary Counting Method 1 - Rolling over Bits
I think the simplest way to think about counting in binary is to compare it to counting in decimal. What happens when we go from the number 9 to the number 10? Our "9" digit resets to 0, and the next digit rolls over to 1.
The same thing happens with binary. But since we only have 2 numbers possible with each digit, the rollover happens much sooner, at the number 2.
...and the digits just keep counting up and resetting and rolling over:
Each binary digit is called a "bit". 8 bits are called a byte. So if you have 128 GB of memory on your phone, you can store 128,000,000,000 bytes. That's 1,024,000,000,000 bits!
Binary Counting Method 2 - The Places
Another way to think about numbers is by their places. In a 3-digit decimal number, we have the ones, tens, and hundreds places:
We're so used to counting in decimal that we just know 198 = 198. But if we were explaining it to an alien, we could break it down like this:
Whoa! Only having 2 numbers per digit makes each digit rollover sooner and it looks confusing because we don't natively speak binary. But look up at the previous section - remember how 100 = 4? Does it start to make sense that the third digit would be the fours place? Let's break this number down!
Binary Counting Method 3 - Exponents
This is what most tutorials teach because it's technically the "truest" way of converting between numbering systems. But it's also the most mathy, and if you're not a mathy person, it can be confusing to start with this explanation. However, you've already read the above two methods, so you're totes ready for exponents.
Most of us are reasonably familiar with an exponent of 2, so we'll start there. If a number has an exponent of 2, it means the number is "squared" or that you multiple the number by itself.
Another way of thinking about an exponent of 2, is that it means 2 of the number are multiplied together.
An exponent of 3 means 3 of the number are multiplied together.
If you keep adding one to the exponent, you keep adding another multiplication by 3.
3^4 = 3 x 3 x 3 x 3 = 81
3^5 = 3 x 3 x 3 x 3 x 3 = 243
(The symbol "^" is also called "carrot" which means "to the" or indicates an exponent).
But what happens if the exponent is 1? Or 0?
It's a little weird, but just think of it this way.
Now we're ready to explain to our alien visitor how decimal numbers work using exponents, because each digit's place can also be thought of in terms of exponents.
We can go through the same exercise of calculating the value of each digit, using exponential representation.
Ready for the same thing with our binary number?
Ok, same steps:
A few years ago when I was developing the SkeinMinder, I was trying to figure out how to make a normal 2x16 character LCD display larger numbers. Number size is kind of important - I was building a device that would sit on a table-top, and I wanted someone standing above it to easily be able to see the rotation count at a glance, maybe even from a few feet away, without squinting. It was a small conundrum. I didn't want to delve into getting a graphic LCD up and running, I had plenty of other dev work and that seemed like a can of worms I didn't have time for. I've since developed a graphic LCD library (more on that in a future blog post), but at the time, I just wanted to keep it simple. Besides, 2x16 LCDs are plentiful and cheap, they don't require many processor pins, and the LiquidCrystal Arduino library made them easy to get up and running. But oh that fixed font!
I googled around, and found that of course I wasn't the only one who wanted to bend a 2x16 LCD to their will. I think I ran across this instructable by mpilchfamily and this post by digimike, where I learned you can load 8 custom characters into most LCDs, and then write them anytime. They used those characters to create their own big numbers, which look like this:
I liked the bold clarity of the big numbers featured in that code, but they just took up too much space for me. They're 3 columns wide x 2 rows tall, and I really wanted ones that were 2 columns wide x 2 rows tall, so I could fit some normal LCD text plus 4 digits of big numbers on the 2x16 display. Sounds like a good excuse to bust out some graph paper and develop a font, am I right?
One thing I figured out is that 8 custom characters are nice, but man, 9 would have been perfect. JUST ONE MORE would have made 4 L's to make a full zero, 1 vertical bar left, 1 vertical bar right, 1 horizontal bar top, 1 horizontal bar bottom, 2 C's to make 8's and 5's and 2's. OK, so that's actually 10, but I figured out I could live without one of the vertical bars. So that's 9. Maybe I was being too strict with my font style, or maybe I had a mental block, but I couldn't quite make a bold style without coming up one short. Time to get creative. I looked at the built-in symbols, and figured I could make a stylistic zero, using one fully lit character.
I developed 4 fonts overall, the original above I called TREK because of the square clean lines (though it's more original motion picture or DS9 than TNG). TRON incorporates one fully lit character into each number, and made me think of 80s sci-fi movie poster fonts. NASA is reminiscent of the beloved (be-hated?) worm. And then I modified NASA to be a little fancier and gave it some serifs, and that's where my sci-fi inspiration ended because I just called it SERIF. Overall, I think TREK is the cleanest, and easiest to read at a distance, but I kind of love the styling of TRON.
Cool! So I made a sweet font, implemented it for my particular purpose, and promptly forgot about it for a few years. Then I was working on a project with friends which needed to display big numbers, but also a battery %. I busted out my old code, copied it into its own library, and came up with a new % character. At this point, I figured that Big Numbers could probably be useful to a ton of other people, so I worked on tidying it up, put it in more of a standard Arduino library format, and added the ability to handle negative numbers, as well as easily specify the position of the big number on the LCD. And added some example sketches.
It was of course a bigger project than I anticipated, mostly because I wanted it to handle some situations intelligently. I feel that the "-" sign should appear and disappear without the number itself shifting left and right (too distracting). I also feel that there should be inherent leading zero blanking (though if leading zeros are useful in your application, it's easy to comment out the few lines of zero-blanking code). I also thought you should be able to send it just a number and have that number appear in the same place every time without having to specify position, but also be able to override the defaults and place a number in a specific position. A few overloaded functions later, I give you BigNums2x2. It should also be picked up by the Arduino library bot shortly.
I hope you find it useful and easy to use! I'd love to see what you make using the library, please give me a shout-out on instagram @alpenglowyarn and #bignums2x2. And of course, let me know if you encounter any bugs.
Read the Comments or Leave one