tag:blogger.com,1999:blog-40372728145668936072024-03-08T04:37:19.743-08:00Upper HarmonicsA blog about programming, politics, and possibly pizza.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.comBlogger86125tag:blogger.com,1999:blog-4037272814566893607.post-68540620567120802362019-08-20T10:17:00.004-07:002019-08-20T10:25:50.468-07:00Some personal newsI'm now a journalism student at City College!<br />
<br />
Before I get into that, yes, this means I am not at Hustle anymore. I was going to wait to announce this publicly online until after the news already leaked, but surprisingly, it hasn't yet, as far as I can tell. (Which is surprising, because the <a href="https://techcrunch.com/2019/01/14/hustle-layoffs/">last time they downsized</a>, it was reported in a few places.) In any case, I hope Hustle continues to succeed, and I had a great time there, but that time ended about a month ago.<br />
<br />
Anyway, I found myself without a job and needed to decide what to do next. Being a software engineer has been really rewarding for me, but I decided to take advantage of this moment to try and explore journalism, which is something I've been curious about for a little while. This might seem like a strange jump, going from tech to journalism, but there are a few reasons I was drawn to it.
<br />
<br />
For one thing, I've been really interested in hearing journalists talk about journalism, which they seem to be doing a lot lately. I've paid a lot more attention to political news, since Trump got elected, as I'm sure many of us have. It seems like he says something shocking or horrifying every day, and it's been eye-opening to see how it gets covered. How to report on this government seems to be a huge and important challenge, so the critiques of how political reporters are doing that, are really timely right now. I would recommend <a href="https://www.youtube.com/playlist?list=PLJ8cMiYb3G5cghzLdchzalWpQJnhRYZgO">Strikethrough</a>, <a href="https://soundcloud.com/citationsneeded">Citations Needed</a>, and <a href="https://www.wired.com/story/hulk-hogan-gawker-netflix-documentary/">Nobody Speak: Trials of the Free Press</a> in particular.
<br />
<br />
The election of Trump also led me to think about other types of power, besides that of elections. Immediately after the 2016 election, I started asking, "What the hell? How could this happen? What can I do?" and a lot of the answers I found, in places like Tech Workers Coalition and the Democratic Socialists of America, had to do with the power of ordinary people, not voting (or at least, not <i>just</i> voting) but organizing, in their communities, and particularly in their workplaces. I had already been a little bit involved in worker organizing at Google, but ratcheted it up a little bit in my last year or two there. Even though Google sometimes feels like a very small community where information can travel quickly, it seemed to travel a lot more quickly when there was a reputable news outlet talking about it. Drawing attention to an issue externally was very often the best way to draw attention to it internally. And it was harder for senior executives to pretend an issue was being raised by just a handful of disgruntled Googlers whose concerns don't really represent any mainstream population, when the same concerns were raised in an article that was being shared widely. So even as I was increasingly aware of the power of workers, especially when they are unionized or otherwise organized, I also became more aware of the power of good reporting to effect change by revealing what was happening. Especially for issues at companies like Google, where the technical details can be hard to follow and the company tends to be very secretive.
<br />
<br />
I also got to attend a couple of free workshops in the last few years, one about journalism from Tim Redmond at 48 Hills, and one about freedom of information requests from Freddy Martinez at Lucy Parsons Labs. Both of them went into some detail on tools that reporters can use to investigate stories, and even though I wasn't really thinking about pursuing journalism in any serious way, at the time, I thought that type of work sounded like a lot of fun.
<br />
<br />
Then, in the last few weeks as I've been thinking about this, I got in touch with several journalists, and when I told them I was thinking about getting into their field, they were overwhelmingly encouraging and helpful. I know that news outlets are financially struggling these days, so I kind of expected people to be a lot more defensive or gatekeeper-y, but I'm glad they weren't. So to anyone that I chatted with about this, thank you! And to anyone I didn't, sorry! This has been kind of sudden, and I haven't had a chance to contact everyone yet.
<br />
<br />
Finally, I know it's hard to believe, but the 2016 election did bring some good things, and one of them was Proposition W, which made City College free for San Francisco residents. Since I voted for it, I feel like I might as well take advantage of it, right?
<br />
<br />
Anyway, I will probably be primarily focused on class assignments for the next few months, but feel free to send me ideas for blog posts, stories, etc. and maybe I can write them up on here.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-17203880735208276812019-07-31T13:30:00.001-07:002019-07-31T13:30:20.777-07:00Are BART's fare enforcement efforts totally misguided? and other questions SF Gate didn't askToday the SF Gate has an article on <a href="https://www.sfgate.com/local/article/bart-new-gates-fare-evasion-richmond-bikes-tickets-14150805.php">fare evasion on BART</a>, not so different from similar stories you've probably seen recently. The highlights are always about the same: Fare evasion is a massive problem, riders who pay resent those who don't, BART is trying to make up the money they've lost, but it's really difficult. Every time I hear this, I get a little more skeptical of this narrative, although it never seems to change much. Since the Gate started their headline with a question, I thought it would be fun to list some of the questions on my mind, that they didn't ask, and try to answer a few of them.<br />
<br />
<b>You say you saw 56 people skip paying in 1 hour. How many did you see who <i>did</i> pay?</b><br />
<b><br /></b>
This is perhaps my biggest issue with this reporting, and similar stories I've seen about BART fare evasion. They will often include numbers from BART officials, about how much fare evasion is costing the agency. In this case, it's "up to $25 million" which sounds like a lot, but doesn't mean much without a little more context. For one thing, the actual estimate is somewhere between $15 million and $25 million, but SF Gate (like the SF Chronicle article they got that number from) focuses on the higher end of that range. More importantly, the total revenue from fares in FY 2019 was about <a href="https://www.bart.gov/sites/default/files/docs/Fiscal%20Year%202020%20Preliminary%20Budget_2019-03-29%20FINAL.pdf">$485 million</a>, so that $25 million represents only 5% of passengers.<br />
<br />
If we assume that BART's $25 million estimate is correct, and that the hour when SF Gate was watching was representative, then over 1,100 people walked through the gates and did pay their fare, during that same hour, which makes the stat of 56 people seem a lot less significant by comparison.<br />
<br />
<b>Who failed to pay? Locals, or tourists? What else can we find out about them?</b><br />
<b><br /></b>
It would be hard to know exactly without interviewing everyone, and of course that might skew the results, since people are presumably less likely to squeeze through the closed gate if they think they're going to be interrogated afterward. But even based on the video, they could make some rough estimates, which could drive BART policy.<br />
<br />
For example, if many of the evaders are commuters, BART could work with employers to provide discounted BART passes to their employees (which might have the nice side effect of getting a few more out of their cars). If they're tourists, maybe clearer signage and more staff at the SFO and Coliseum stations would help.<br />
<br />
<b>Are people failing to pay out of laziness, or to save money, or some other reason?</b><br />
<b><br /></b>
If they can't afford the standard BART fares, maybe they'd be eligible for the low-income discount that was <a href="https://www.sfexaminer.com/the-city/bart-board-approves-low-income-riders-discount-and-raises-fares-for-everyone-else/">approved last month</a>, and would be more likely to pay if that option were publicized more widely. Or perhaps they find it too difficult to reload their clipper card, because the machines in the stations are all in use, or are broken. (If you've ever tried to reload using a credit card, did it work on the first try? I didn't think so.) If that's the case, making it easier to reload clipper cards online, or at locations besides BART stations, could make a big difference.<br />
<br />
In general, BART reporting seems to focus on what BART is doing, rather than on the motivations of the riders who are skipping paying. If we heard more from the people actually riding BART (who, by the way, are usually paying for it indirectly through sales taxes, even if they don't always pay their fare), we might come up with solutions that focusing more on what riders <i>can</i> do, rather than criminalizing them and punishing them for what they shouldn't do.<br />
<br />
<b>What do BART employees think?</b><br />
<b><br /></b>
This is probably my favorite part of the article:<br /><br />
<blockquote class="tr_bq">
<div style="background-color: white; border: 0px; color: #222222; font-family: Georgia, serif; font-size: 16px; line-height: 26px; padding: 0px 0px 24px; vertical-align: baseline;">
"Oh no, I'm not going in there," a passenger with a bike told the station agent. "I just saw a guy get chopped in the head."</div>
<div style="background-color: white; border: 0px; color: #222222; font-family: Georgia, serif; font-size: 16px; line-height: 26px; padding: 0px 0px 24px; vertical-align: baseline;">
The agent let him through the swinging side gate.</div>
</blockquote>
My first thought was, did the agent ask him to tap his card first, or did they just let him through, implicitly condoning his not paying the fare? More generally, what do station agents, BART drivers, janitors, engineers, and other workers, think about fare evasion? Those fares are part of the money that comes into the system so they can get paid, so maybe they'd want to work to increase the number of people paying. But on the other hand, maybe they care more about making the system being convenient and comfortable for riders, and consider the financial questions to be someone else's problem. I hope the next article about BART fares includes interviews some of these workers. We might get a very different take from the people on the ground doing the work to keep the system running, than we do from the BART board and senior leadership.<br />
<br />
<b>Is more police and more enforcement the only solution?</b><br />
<b><br /></b>
As I alluded to earlier, BART's solutions tend to lean more on criminalizing people, punishing them for not paying, rather than encouraging them to pay. More fare checkers, more police, taller and scarier gates, and even signs <a href="http://www.sfweekly.com/news/bart-removes-anti-panhandling-signs-for-now/">threatening people with fines</a> simply for asking their fellow riders for spare change. What if they went in the complete opposite direction? Try taking out the gates entirely at some stations, and just make the tap targets easy to find (like at Caltrain stations). Even if the only enforcement is the honor system, would the 95% to 97% of riders who pay their fares now, still pay? If so, there's got to be a way to make up the difference without further criminalizing people and making BART feel more and more heavily guarded and policed.<br />
Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-45328250300612267982017-03-18T20:12:00.004-07:002017-03-18T20:12:56.972-07:00The Two Googles<i>Copied from <a href="https://twitter.com/tbreisacher/status/843166308652867584">a twitter thread</a> with some minor edits. Opinions are my own, not those of my employer.</i><br />
<br />
There are two Googles. The real-life one which is a massive for-profit company (which does some awesome things, treats it employees well, is very progressive in many ways, etc. But: it's still a massive for-profit corporation.) And then there's the imaginary Google that a lot of Googlers and Google users have in their mind. The imaginary Google is probably different for everyone, but think of like, if the EFF wrote a lot more code? Or, imagine if every engineer at Google was a huge believer in Net Neutrality and the Free Software philosophy and the power of technology to make society fairer. More importantly, imagine if decisions at Google were made democratically by those people, rather than by the executive team. Now you have some idea what Imaginary Google looks like. (Also there are zero neo-nazis at Imaginary Google. None at all. It's great.)<br />
<br />
Anyway, here's the tricky part. A lot of us (including me, not sure if I made that clear on Twitter), in a weird way which is hard to describe, kinda believe we're working at Imaginary Google. Is that because A Few Years Ago Google was slightly closer to Imaginary Google than today's IRL Google? Or does it just seem that way because we look at the past with rose-tinted glasses? Hard to say. I bring it up because it's a useful framing for certain issues if you're hoping to get Google to change its position on something. The specific example that prompted me to write this was the <a href="https://twitter.com/joshbloch/status/843165034079387648">revelation that Google is a donor to the Federalist Society</a> which I don't know much about but I gather that it's not what you'd call a progressive organization. If you follow news about Google, you can probably think of other examples where Google has taken actions to remind you that it's not the idealistic Imaginary Google you sometimes think it is. Anyway, what I mean about "framing" is that once you remind yourself about the two Googles, your response to Google doing something that seems shocking isn't, "How could we possibly being doing this? This isn't what Google stands for!" but instead, "This <i>is</i> what Google stands for. Our actions are clear. But, let's change that please. Let's not take this position."Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-45408172552310713312012-12-02T12:09:00.001-08:002012-12-02T12:09:43.448-08:00Polkadot PostcardsRemember that Kickstarter <a href="http://trojansax.blogspot.com/2012/03/polkadot.html">I helped</a> kickstart, <a href="http://www.kickstarter.com/projects/1429207749/polkadot-a-gender-non-binary-childrens-book-series">Polkadot ____</a>? Well, they reached their funding goal about a month later, and I recently got my reward: Postcards and a button!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-ZBY69eqKOP8/ULq2JClr8FI/AAAAAAAACj0/WCoPzcf3RlM/s1600/IMG_20121201_151436.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-ZBY69eqKOP8/ULq2JClr8FI/AAAAAAAACj0/WCoPzcf3RlM/s320/IMG_20121201_151436.jpg" width="320" /></a></div>
<br />
Woohoo! Looking forward to the book.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-36407311839388582412012-07-02T10:03:00.000-07:002012-07-02T10:03:00.346-07:00Why coming out still mattersIf you're a part of the gay blogosphere/tweetosphere/tumblrosphere, you already know by now that Anderson Cooper has acknowledged he is gay, in <a href="http://andrewsullivan.thedailybeast.com/2012/07/anderson-cooper-the-fact-is-im-gay.html">an email to Daily Beast reporter Andrew Sullivan</a>. Before sharing the email itself, Sullivan admits that it's really not a big deal. So many celebrities have come out in the last few years that it's, as he says, kind of a "non-event" now. But in Anderson Cooper's email, he explains eloquently why the act of coming out is still a big deal, not just for him, but for all of us:<br />
<blockquote class="tr_bq">
I’ve also been reminded recently that while as a society we are moving toward greater inclusion and equality for all people, the tide of history only advances when people make themselves fully visible. There continue to be far too many incidences of bullying of young people, as well as discrimination and violence against people of all ages, based on their sexual orientation, and I believe there is value in making clear where I stand.</blockquote>
Nothing changes people's minds about gay people in quite the same way as seeing more gay people out there in the world, among their own friends, family, and coworkers, and in the public eye. The next time Mitt Romney or someone else says something about <i>the gays</i>, maybe people will think of Anderson Cooper, rather than thinking of an abstract and weird group of people they'll never know and can't relate to at all.<br />
<br />
Of course, this is also a big deal for him personally. If you've never had to "come out" about something, whether it's your sexual orientation, gender identity, or some aspect of your past that you had previously kept hidden, you might not relate to this, but coming out feels like such a huge weight off your shoulders, like being weirdly trapped and then suddenly free of that trap. Maybe you already knew, maybe <a href="http://www.youtube.com/watch?v=UYl-2Wsvfrc">everyone already knew</a>. But to actually come out and say it publicly is still a big deal for him. So I'm happy for him as well, not just for the effect this will have on the rest of the gay community.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-43808718652203617142012-06-10T15:38:00.000-07:002012-06-10T15:38:26.108-07:00Top 9 reasons to ride Metro in Los AngelesThis post has been in my drafts folder for months. Time to get it finished up and actually post it. My top 9 reasons to ride Metro in L.A.:<br />
<br />
9. People in Los Angeles are sort of shocked when you arrive somewhere and they ask if you were able to find parking easily, and you tell them you took a bus. "You took a what? You can do that? Really?!"<br />
<br />
8. Most of the train stations have interesting art in them, totally different in each one. I think if I was an artist, I'd rather have people see my art every day on the way to work, rather than going to a museum, staring at it for a few minutes, pretending to "get it" and then going home.<br />
<br />
7. This one's sort of obvious: Gas is expensive. Metro tickets are cheap.<br />
<br />
6. No matter where you're going, finding a parking spot in LA is always terrible.<br />
<br />
5. Paying for that parking spot? Also usually terrible.<br />
<br />
4. When you don't have to focus on driving, you can actually do other things while you're en route. Check email, play games, let your mind go blank.<br />
<br />
3. If you want to go to bars or other alcohol-based venues, you don't need a designated driver. I get so nervous when people say they only drank a "little bit" so they're "totally fine to drive," don't you?<br />
<br />
2. You can take the Silver Line or the 550 and be in the carpool lane on the 110, even when you're by yourself. I like carpool lanes.<br />
<br />
1. While a train or bus is slowing down or speeding up, you can lean against the <a href="http://xkcd.com/123/">inertial forces</a> and pretend you're doing that Smooth Criminal lean. Until you fall over and then you're not so smooth.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-40400082793982613482012-06-10T15:23:00.001-07:002012-06-10T15:23:39.840-07:00Kickstarter is not an investment<br />
In case you haven't heard of it, there's this great site called Kickstarter. If you have an idea for a documentary, video game, or other product you're trying to get off the ground, you can post it on Kickstarter, detailing the process you're going to go through, what you need money for, etc. Then anyone who likes your idea can donate as much as they want. In return, they usually get a copy of the product (if it's something easily copy-able like a video game) or some other little trinket from the creator. For example, I <a href="http://trojansax.blogspot.com/2012/03/polkadot.html">donated</a> to the "<a href="http://www.kickstarter.com/projects/1429207749/polkadot-a-gender-non-binary-childrens-book-series">Polkadot</a>" book series a few months ago.<br />
<br />
Kickstarter, and sites like it, have come up in conversation a few times with people I know. And there is a sense from some people that it's a "scam" because you don't get any real return on your investment. Call me crazy, but I think there's something nice about a donation where you don't expect anything back. You just do it because you believe in the thing you're donating to. Not that you necessarily believe it will become massively profitable, and you want a cut of those profits, but maybe you just believe the world will be a slightly better place if that product exists than if it doesn't. It's a donation, not an investment. And there's something kind of nice about that, don't you think?<br />Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com2tag:blogger.com,1999:blog-4037272814566893607.post-48226742477480045382012-05-30T21:12:00.002-07:002012-05-30T21:12:54.089-07:00Google<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;">This week marks my six month anniversary (0.5th anniversary?) at Google. I feel like I should have something inspiring to say about that. Mostly I feel like I know enough to know that there's a ton I don't know. In other words, I feel like I'm still so new that I don't have anything particularly awe-inspiring to say yet. But I'll piece together some scattered thoughts as best I can.</span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;"><br /></span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;">I can say i</span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;">t's awesome to be working at a company where so much information is shared with employees, and </span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;">where we always try do the right thing. Not necessarily what's best for Google in the short term, but what's best for our users and for the internet. It's awesome to work at a company that has a sense of humor. It's awesome how much energy goes into improving the tools that Googlers use every day, which makes us happier and more productive. Some of those tools are also used by people outside of Google, and it's awesome that Google makes a <a href="http://code.google.com/opensource/projects.html">lot of them</a> open to the world. It's awesome to work on <a href="https://www.google.com/chrome/">a product</a> that's used by a zillion people every day. It's awesome to have people tell me they're die-hard fans of <a href="http://www.mozilla.org/firefox">that other product</a>, because it makes me feel like I'm a warrior in some sort of epic battle (even though I'm not).</span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;"><br /></span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 15px;">I don't know what else to say right now. Ask me again in another six months.</span>Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-7988319080154168292012-03-24T16:54:00.000-07:002012-03-24T16:54:46.395-07:00Polkadot ____I've been thinking about backing a Kickstarter project for a little while now, but nothing particularly jumped out at me as something I cared enough about to fund with my own money. But today, I came across <a href="http://www.kickstarter.com/projects/1429207749/polkadot-a-gender-non-binary-childrens-book-series">a project for a "gender non-binary children's book"</a> called <b>Polkadot ____</b>. I'm assuming that's because the books will be called "Polkadot Goes to Preschool" or "Polkadot Does a Silly Dance" or "Polkadot Wears Polkadot Pants" or something, and that you don't actually pronounce it "Polkadot Blank" -- but who knows? According to the Kickstarter page:<br />
<blockquote class="tr_bq">
Our series begins when our main character Polkadot; a child who was not assigned a gender, is at an age when their gender identity is still forming and emerging. The first book in our series is entitled, "Polkadot Goes to Preschool." While Polkadot is the main character of the series, and therefore their gender identity is central, this series of books celebrate the beauty and validity of ALL gender identities.</blockquote>
I won't pretend to know what it's like to be transgender, but I can imagine that reading this book, or better yet, growing up in a world where you're surrounded by people who have read this book, can only make it easier. To suggest to kids that the idea that maybe "I was born as a boy, therefore I'm a boy, it's that simple" might be wrong, it's a definite step in the right direction. So I threw the author a few dollars. Why not?<br />
<br />
I also wrote up this blog post, which might bring in a few more for them, and it didn't even cost me anything! Now the trickier question. Should I try and get the word out to pro-LGBT people who might also contribute? Or should I instead get the word out to anti-LGBT groups, so that they can cause a big "controversy" over the fact that a book might teach children that people are different from each other, so that then even more pro-LGBT people will contribute, to spite the anti-LGBT people?Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com2tag:blogger.com,1999:blog-4037272814566893607.post-11046895426682873712012-02-10T17:31:00.000-08:002012-02-10T17:31:16.583-08:00Haskell adventure: Project Euler #191I thought I'd try to be like one of the cool Haskell kids and do one of those literate programming blog posts. That means you can copy and paste this whole blog post into a .lhs file and it will actually compile. This is about how I solved <a href="http://projecteuler.net/">Project Euler</a> problem <a href="http://projecteuler.net/problem=191">191</a> in Haskell. So if you're trying to work through the problems on your own, don't read this yet!<br />
<br />
Let's get to it. Already read the <a href="http://projecteuler.net/problem=191">problem statement</a>? Cool.<br />
<br />
<code>> import Control.Monad ( guard )</code><br />
<code>> import Data.List ( groupBy</code><br />
<code>> , isInfixOf</code><br />
<code>> , sort </code><br />
<code>> )</code><br />
<br />
One of the most obvious things you might want to do, especially since the problem statement used the word "string," would be to represent the O's, L's, and A's as Chars. But I think it's nicer to use a distinct type like this:<br />
<br />
<code>> data Day = O | L | A</code><br />
<code>> deriving ( Eq, Show )</code><br /><br />
As you'll see, it will also be helpful to have a list of the three possible "day" values:<br />
<br />
<code>> days :: [Day]</code><br />
<code>> days = [O, L, A]</code><br />
<br />
Then we can represent a student's attendance record as a list of those values. (I'm calling it Record1 here because I'm later came up with a better representation, as you'll see.)<br />
<br />
<code>> type Record1 = [Day]</code><br />
<br />
How do we know whether a particular record is prize-winning or not? This is more or less just a translation of what the problem tells us.<br />
<br />
<code>> prize1 :: Record1 -> Bool</code><br />
<code>> prize1 record = (not $ [A,A,A] `isInfixOf` record) && notLateTwice record</code><br />
<code>></code>
<br />
<code>> notLateTwice :: Record1 -> Bool</code><br />
<code>> notLateTwice record = case filter (== L) record of</code><br />
<code>> (L:L:_) -> False</code><br />
<code>> _ -> True</code><br />
<br />
<div>
Now we can attack the actual question: After n days, how many prize strings are possible? For n=0, there is only one, namely, an empty record:</div><br />
<div>
<code>> prizes1 :: Int -> [Record1]</code></div>
<div>
<code>> prizes1 0 = [[]]</code></div>
<div>
</div>
<div>
<br /></div>
<div>
On the nth day, take all the prize-winning strings from the (n-1)th day, and for each one, tack on an O, L, and A. Now you have three times as many strings, and you can check each of them to see if they're prize-winning. (We don't have to check the non-prize-winning strings from day n-1, because once you've lost the prize, there's no way to get it back.)</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<code>> prizes1 n = do</code></div>
<div>
<code>> prevPrizeString <- prizes1 (n - 1)</code></div>
<div>
<code>> nextDay <- days</code></div>
<div>
<code>> let newString = nextDay:prevPrizeString</code></div>
<div>
<code>> guard $ prize1 newString</code></div>
<div>
<code>> return newString</code></div>
<div>
<br /></div>
<div>
The code after "do" gets evaluated several times, once for each possible combination of a string from prizes1 (n - 1) and a day from [O,L,A]. In another language, you might write this as a double "for" loop, or possibly a list comprehension. I probably could have used a Haskell list comprehension instead but I think this is nicer. Anyway, then we add the 'nextDay' onto the prize string from the (n - 1)th day, and check whether the result is still a prize string. If it is, we "return" it which means it will end up in the list of prize strings for day "n" and if not, the "guard" function ensures it will not be returned.</div>
<div>
<br /></div>
<div>
You may notice that I stuck nextDay onto the front of the list instead of the end. That's just because it's faster and cleaner than writing "++ [nextDay]" although it turns out to be useful later too, as you'll see. You can check that "length $ prizes1 4" is 43 which is a good sign we probably haven't messed up too badly yet. And then "length $ prizes1 30" should be the answer. I fired up ghci and typed it in, and ... nothing. The CPU cranked away but after several seconds, it hadn't come up with anything. The rule of thumb for Project Euler is that your code should run in a minute or less. But I had a sneaking suspicion that there was a solution for this problem that would run almost instantly. So let's optimize!</div>
<div>
<br /></div>
<div>
One thing to notice is, we don't really care about absences in the distant past. You only lose the prize if you're absent three <i>consecutive</i> times. And we'll never end up with a string like OAAAO because once you hit the third A, you've already lost your prize and we stop keeping track of you at all. So the function we pass to "guard" can just look for A's at the beginning of the string (remember, more recent days are at the beginning, not the end), rather than using "isInfixOf" to look for an "AAA" sequence anywhere in the string.</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<code>> checkRecord :: Record1 -> Bool</code></div>
<div>
<code>> checkRecord (A:A:A:_) = False</code></div>
<div>
<code>> checkRecord (L:ds) = L `notElem` ds</code></div>
<div>
<code>> checkRecord _ = True</code></div>
<div>
</div>
<div>
<br /></div>
<div>
If today is your third consecutive absence (A:A:A:_), you don't get a prize. If you were late today, you can still get a prize, but only if you were never late in the past. In all other cases, if you haven't already lost your prize, then you're still eligible for it. Now in the definition for "prizes1," we can just replace "guard $ prize newString" with "guard $ checkRecord newString" and it should be a bit faster. It was still well short of "instant" so I kept looking for better approaches.</div>
<div>
<br /></div>
<div>
Writing "checkRecord" was a step in the right direction, but we were still keeping track of lots of information we didn't actually care about. All that really matters is a student's current absence streak, and total number of times being late. So let's just store those, and not the actual sequences:</div>
<div>
<br /></div>
<div>
<code>> data Record2 = Record2 { consecutiveAbsences :: Int, lates :: Int }</code></div>
<div>
<code>> deriving ( Eq, Ord, Show )</code></div>
<div>
<br /></div>
<div>
You could also just use a tuple ((Int, Int)) but this way there's no risk of forgetting which field is which. Plus, this syntax is called "record syntax" so it's only appropriate to use it for our "Record" type, right? Right. Now that records aren't just lists, we can't tack on the next O, L, or A with the (:) operator -- we have to actually keep track of what those two Ints should be. That's what the (#) function does. (Why did I choose "#"? No particular reason, I just picked a character.) Anyway, here it is:</div>
<div>
<br /></div>
<div>
<div>
<code>> (#) :: Record2 -> Day -> Record2</code></div>
<div>
<code>> r # O = r { consecutiveAbsences = 0 }</code></div>
<div>
<code>> r # L = r { consecutiveAbsences = 0, lates = lates r + 1 }</code></div>
<div>
<code>> r # A = r { consecutiveAbsences = consecutiveAbsences r + 1 }</code></div>
</div>
<div>
</div>
<div>
<br /></div>
<div>
If you're absent, we increase "consecutiveAbsences" by 1. If not, we reset it to 0. And if you're late, we increase "lates" by 1. Now it's really easy to check whether a particular record is prize-winning:</div>
<div>
<br /></div>
<div>
<code>> prize2 :: Record2 -> Bool</code></div>
<div>
<code>> prize2 r = consecutiveAbsences r < 3 && lates r < 2</code></div>
<div>
</div>
<div>
<br /></div>
<div>
And we can do more or less the same thing we did before:</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<code>> prizes2 :: Int -> [Record2]</code></div>
<div>
<code>> prizes2 0 = [Record2 0 0]</code></div>
<div>
<code>> prizes2 n = do</code></div>
<div>
<code>> r <- prizes2 (n - 1)</code></div>
<div>
<code>> d <- days</code></div>
<div>
<code>> let r' = r # d</code></div>
<div>
<code>> guard (prize2 r')</code></div>
<div>
<code>> return r'</code></div>
<div>
</div>
<div>
<br /></div>
<div>
This should be a bit faster, I think, at least in theory. But I was still convinced the "right" solution was instantaneous, and this one definitely wasn't. The problem is, we're still dealing with a number of records on the order of 3<sup>30</sup>, and we really don't need to. If you look at the new Record2 type, you realize that there are only a few distinct records we ever care about: consecutiveAbsences only goes up to 3 and lates only goes up to 2 so there are only 3*2=6 possible records we'll ever care about. So instead of keeping a huge list containing several copies of identical records, we could just keep a list of the six possible records we actually care about, paired with a number indicating how many times that record should appear in the list:</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<div>
<code>> prizes3 :: Int -> [(Record2, Integer)]</code></div>
<div>
<code>> prizes3 0 = [(Record2 0 0, 1)]</code></div>
<div>
<code>> prizes3 numDays = reduce $ do</code></div>
<div>
<code>> (record, count) <- prizes3 (numDays - 1)</code></div>
<div>
<code>> day <- days</code></div>
<div>
<code>> let record' = record # day</code></div>
<div>
<code>> guard (prize2 record')</code></div>
<div>
<code>> return (record', count)</code></div>
</div>
<div>
</div>
<div>
<br /></div>
<div>
If we leave out the "reduce" this will be the same as "prizes2", except that every record will be paired with a "1" which is kind of useless. The "reduce" function takes all the Record 0 0's and puts them together, then takes all the Record 0 1's and puts them together, and so on, each possible record value being paired with its total count. There are at least a couple ways to do this, but what I did was this:</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<div>
<code>> reduce :: [(Record2, Integer)] -> [(Record2, Integer)]</code></div>
<div>
<code>> reduce = map f . group . sort where</code></div>
<div>
<code>> group = groupBy (\(r,_) (s,_) -> r == s)</code></div>
<div>
<code>> f list@((r,_):_) = (r, sum $ map snd list)</code></div>
</div>
<div>
</div>
<div>
<br /></div>
<div>
Remember that with the (.) function, it's often easier to read right to left. So the reduce function takes a list of (Record2, Integer) pairs, sorts it, then calls "group" on that sorted list, then maps the function "f" over the result of that. The "group" function groups all the identical records together, returning a list of lists. Then the "f" function reduces each list into a single (Record2, Integer) pair. To get the total number of prize strings after n days, we can't just use "length" anymore; we need to sum the counts from all the pairs:</div>
<div>
<code><br />> prizeCount :: Int -> Integer</code></div>
<div>
<code>> prizeCount = sum . map snd . prizes3</code></div>
<div>
</div>
<div>
<br /></div>
<div>
Again, you can check that prizeCount 4 is 43 (really nice of the Project Euler people to give you that sanity check, isn't it?) and then</div>
<div>
<br /></div>
<div>
<code></code></div>
<div>
<code>> answer :: Integer</code></div>
<div>
<code>> answer = prizeCount 30</code></div>
<div>
</div>
<div>
<br /></div>
<div>
and it runs instantly! If you didn't know much Haskell before. I hope you learned something from this post, or at least enjoyed kind of half-following along. If you did, maybe you can point out something I did wrong, or a more elegant way to accomplish one of these steps. Either way, leave a comment and let me know what you think!</div>
<div>
<br /></div>Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-23037730002636781512012-02-07T20:47:00.000-08:002012-02-07T20:47:53.067-08:00We win. Again.If you follow LGBT news at all, you've probably heard that Prop 8 was ruled unconstitutional today. Again. I'd like to be excited, drive up to West Hollywood, wave a rainbow flag and celebrate with the rest of the gayborhood. But I'm a bit less than thrilled because this is the third time we've "won" in court and only one of those times actually led to same-sex couples getting married. All this really means is that we're one step closer to the <i>real</i> win. I know, court cases take a really long time and I need to get used to that.<br />
<br />
But for those LGBT people who actually might like to get married, they're being told yet again, wait just a little bit longer. The lawyers have to talk this over just a bit more. Be patient, it'll happen eventually.<br />
<br />
In short:<br /><br />:-/<br />
<br />Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-72379952924624122672012-01-22T20:24:00.000-08:002012-02-02T22:56:43.761-08:00If Programming Languages Were Types of MusicThanks to the classic <a href="http://blog.aegisub.org/2008/12/if-programming-languages-were-religions.html">If Programming Languages Were Religions</a> for the inspiration. Actually, it turns out there are a bunch of <a href="http://lambda-the-ultimate.org/node/3133">If Programming Languages Were X</a> things out there.<br />
<div>
<div style="font-weight: normal;">
<br /></div>
<b>Assembly</b><span style="font-weight: normal;"> would be </span><b>scales</b>: They're the foundation that all music is based on.<br />
<div style="font-weight: normal;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/YIZ4zSDxJ1g" width="420"></iframe><br />
<div style="font-weight: normal;">
<br /></div>
</div>
<div>
<b>Fortran</b> would be a <b>Gregorian Chant</b>: Ancient and methodical, but still sung occasionally in certain dark places.</div>
<div>
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/kK5AohCMX0U" width="560"></iframe><br />
<br /></div>
<div>
<b>C</b> would be <b>Bach</b>: Almost all modern music is based on Bach in one way or another. The music can be pretty elaborate, but if you break it down, it's actually pretty straightforward.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/S6yuR8efotI" width="420"></iframe><br />
<br />
<b>C++ </b>would be <b>Beethoven</b>: To the untrained ear, it sounds just like Bach -- classical and easy to listen to. But once you start listening more closely, it's actually a lot more complicated than most people realize.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/oqSulR9Fymg" width="420"></iframe><br />
<br />
<b>Java</b> would be <b>The Beatles</b>: Familiar to almost everyone, simple and uncontroversial, though as time went on, they started adding more stuff to their act and getting a little weirder.<br />
<b><br /></b><br />
<b><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/3_I8RCUpe-c" width="420"></iframe></b><br />
<b><br /></b><br />
<b>BASIC</b> would be <b>kids music</b>: Everyone liked it <a href="http://en.wikipedia.org/wiki/TI-BASIC">when they were younger</a>, but no one takes it seriously once they start listening to anything else.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/yCjJyiqpAuU#t=20s" width="560"></iframe><br />
<br />
<b>JavaScript</b> would be <b>Lady Gaga</b>: Everyone knows her hits and thinks they can <a href="http://www.youtube.com/watch?v=HDMb6xkyCEE">play them</a> even if they're not a musician, but few know how <a href="http://www.youtube.com/watch?v=NM51qOpwcIM">talented</a> she really is.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/qrO4YZeyl0I" width="560"></iframe><br />
<br />
<b>Perl</b> would be <b>The Ugliest Piece of Music Ever Written</b>: You're required to make fun of Perl when you write a post like this, right? (Skip to 7:45 if you just want to hear the song.)<br />
<b><br /></b><br />
<b><iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/RENk9PK06AQ" width="560"></iframe></b><br />
<br />
<b>Python </b>would be <b>OK Go</b>: You watch them occasionally on YouTube, but you would never listen to a full album from them.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/dTAAsCNK7RA" width="420"></iframe><br />
<br />
<br />
<b>Haskell </b>would be <b>Radiohead</b>: You've heard them a few times, but you've never really understood what they're singing about, or what their fans are talking about.<br />
<div>
<br /></div>
<div>
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/IBH97ma9YiI" width="560"></iframe><br />
<br />
<b>Ruby</b> would be <b>electronic music</b>: It's not bad or anything, but fans of electronic music act like it's the best music in the world, and rarely listen to anything else. Most people don't see what the big deal is.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/h7ArUgxtlJs" width="560"></iframe><br />
<br />
Edit: Thank you to commenter Mike for this one: <b>Lisp</b> would be <b>Jazz</b>: It was a big deal when it came out and supposedly it still has a big following, but you can't name a single person who likes it.<br />
<br />
I apologize if I left out your favorite programming language. It's either because I'm not familiar with it, or I couldn't think of a good musical analogy. Leave a comment and let me know what type of music it would be.</div>
</div>Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com6tag:blogger.com,1999:blog-4037272814566893607.post-35759901862894381632011-08-04T01:15:00.000-07:002011-08-04T01:57:44.766-07:00Prop 8 overturned one year agoIt was one year ago today that <a href="http://abcnews.go.com/Politics/california-gay-marriage-ruling-due-appeal-expected/story?id=11322255">Proposition 8 was overturned</a> by a Federal judge, making it legal for same-sex couples to marry in California. Except not really. I used to think that when courts strike down laws, those laws are, you know, not laws anymore. In fact, that's pretty much what happened the last time <a href="http://articles.latimes.com/2008/may/16/local/me-gaymarriage16">a court struck down Proposition 8</a>. "But wait!" you say, "That wasn't Prop 8. In fact, that was before Prop 8 even passed!" Right, it was Proposition 22. But see if you can spot the difference between the two:<br /><br />The <a href="http://primary2000.sos.ca.gov/VoterGuide/Propositions/22text.htm">complete text</a> of Proposition 22:<br /><blockquote><p>This initiative measure adds a section to the Family Code; therefore, new provisions proposed to be added are printed in <i> italic type </i> to indicate that they are new.</p><p>SECTION 1. This act may be cited as the "California Defense of Marriage Act." </p> <p>SECTION 2. Section 308.5 is added to the Family Code, to read: </p> <p><i> 308.5. Only marriage between a man and a woman is valid or recognized in California. </i></p></blockquote><p><i></i> </p>The <a href="http://voterguide.sos.ca.gov/past/2008/general/text-proposed-laws/text-of-proposed-laws.pdf#prop8">complete text</a> (pdf) of Proposition 8:<br /><br /><blockquote><p>This initiative measure expressly amends the California Constitution by adding a section thereto; therefore, new provisions proposed to be added are printed in <i>italic type</i> to indicate that they are new.</p><p>SECTION 1. Title<br />This measure shall be known and may be cited as the “California Marriage Protection Act.”</p><p>SECTION 2. Section 7.5 is added to Article I of the California Constitution, to read:</p><p style="font-style: italic;">SEC. 7.5. Only marriage between a man and a woman is valid or recognized in California.</p></blockquote>Prop 8 changes the Constitution, while Prop 22 only changed the Family Code. Much more importantly, Prop 8 has the word "thereto" in it. I think that means they hired more expensive lawyers in the intervening 8 years? Anyway, what was I saying? Right, so it's been a year since this court decision, but same-sex couples still can't actually get married here, because the Proposition 8 proponents are appealing the decision, so there's a stay on the decision. And, the court isn't actually considering their appeal yet because first they need to figure out whether the proponents even have <span style="font-style: italic;">standing</span> to appeal. In other words: It's gonna be a while.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-80073673040033644502010-11-26T10:18:00.000-08:002010-11-28T18:51:14.531-08:00What I want for ChristmasHere we are. Black Friday. The day that the TV box insists is the biggest shopping day of the year, although I suspect that it's a lie -- nowadays, I bet most people are either smart enough to start before Black Friday, or lazy enough to wait until the 23rd or 24th. Or they just buy everything online. Anyway, it's time for you to start deciding who you like enough to buy Christmas presents for, and what in the world they might want. So if by any chance I was going to end up on your list, here's what you should get me:<br /><ol><li>Nothing</li></ol>Seriously. I have <a href="http://www.youtube.com/watch?v=MvgN5gCuLac">plenty of stuff</a>. So if you really want to spend money this Christmas, spend it on someone who can really use it. Some ideas, in no particular order:<br /><ol><li>Make a <a href="http://www.kiva.org/">Kiva</a> loan. The best part about this one is, you probably get the money back eventually.</li><li><a href="http://www.lagaycenter.org/voteforequality">Vote For Equality</a>. Remember that gay marriage thing? Yeah, it turns out we still don't have it, and this is a great, volunteer-based organization that is really doing the work to make sure we win if this comes to a vote again.</li><li>Speaking of which, you could also donate to the <a href="http://www.afer.org/">American Foundation for Equal Rights</a>, who is fighting prop 8 in court right now.<br /></li><li>You've probably heard about <a href="http://www.thetrevorproject.org/">The Trevor Project</a> -- a hotline to help LGBT kids who are thinking about committing suicide.</li><li>I think you've probably heard of <a href="http://www.teachforamerica.org/">Teach For America</a>, which encourages college graduates to teach for a couple years, before or instead of getting a more typical job. Even though they didn't accept me, they're still great.</li></ol>What other organizations are worth donating to? Let me know in the comments!Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com2tag:blogger.com,1999:blog-4037272814566893607.post-82342441620190393292010-10-20T21:49:00.001-07:002010-10-20T22:18:48.864-07:00Maggie Gallagher on gay teen suicidesMaggie Gallagher of NOM has <a href="http://nomblog.com/2105">written about the idea that anti-same-sex marriage groups like hers are responsible for all the gay suicides</a> that have been happening lately. She seems to slightly misunderstand the charge: it's not that gay marriage prevents teen suicides, it's that homophobia is what causes them--and no matter how you try to state it, NOM is of the opinion that same-sex relationships are not as good as opposite-sex ones--NOM is part of that homophobia that gay and perceived-to-be-gay teens are surrounded by. There's a nice, <a href="http://www.bilerico.com/2010/10/who_cares_about_queer_youth_not_maggie_gallagher.php">reasonable response to her column from The Bilerico Project</a> where they admit that people like NOM aren't directly responsible for gay suicides, but also explain that they are, in fact, part of the problem.<br /><br />Toward the end of that post, they say:<br /><blockquote>If Maggie Gallagher is actually concerned with queer youth as she says she is, perhaps she could donate to the Ali Forney Center to help some teens find a place to stay so that they don't have to get caught up in the violence that she knows so much about. Of course she won't, because she's a clown who doesn't really care about much other than advancing her agenda. </blockquote>So I posted this on NOM's blog:<br /><p></p><blockquote><p>Maggie, call this blogger's bluff! </p> <p><a href="http://www.bilerico.com/2010/10/who_cares_about_queer_youth_not_maggie_gallagher.php" rel="nofollow">http://www.bilerico.com/2010/10/who_cares_about_queer_youth_not_maggie_gallagher.php</a></p> <p>Donate to the Ali Forney Center or the Trevor Project<img style="display: inline ! important; cursor: pointer ! important; border: 0px none ! important; float: none ! important; height: 13px ! important; width: 13px ! important; margin: 0px 0px 0px 2px ! important; padding: 0px ! important; min-width: 13px ! important; max-width: 13px ! important; min-height: 13px ! important; max-height: 13px ! important; position: static ! important;" src="http://twitter-badges.s3.amazonaws.com/t_mini-a.png" class="CL_img" />, or even just publically state your support for anti-bullying laws.</p> <p>As you say, "These kids need help, real help." So do something that will actually give them that support.</p></blockquote><p></p>Think she'll do it?Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-1039279668411161282010-10-17T21:10:00.001-07:002010-10-17T21:43:57.080-07:00California Propositions 2010Here's how I'm voting on <a href="http://www.voterguide.sos.ca.gov/quick-reference-guide/">the 2010 propositions</a> on Nov 2. As of this writing, my decisions are based on the (extremely small) amount of research I've done. I will update this post as my opinions change, so feel free to comment and tell me how wrong I am.<br /><br />YES on 19: Makes it legal to possess less than an ounce of marijuana. People are already using marijuana, so let's go ahead and make it legal -- and tax it! I know there are a lot of issues with this law, and it may not hurt the Mexican drug cartels as much as we want it to. But I still would rather it be legal.<br />YES on 20: Don't allow legislators to draw their own districts. Seems like a pretty simple choice to me.<br />YES on 21: Adds $18 to the cost of owning a car, to fund state parks and wildlife conservation. I'm kind of indifferent on this one but $18 isn't THAT much and our state parks can probably use the money.<br />NOT SURE on 22: Prevents money that belongs to local government from being taken by the state. If there is money that is supposed to go to local governments and local projects, then the state shouldn't be allowed to take it just because they can't find their own source of funding. But according to the "No" arguments, that funding is NEEDED for important things like police and firefighters. Sounds like the way our state works is super broken and I can't tell if a "Yes" or a "No" on this will make it any less broken.<br />NO on 23: This would suspend a law passed in 2006 that would get the state to reduce emissions by 2020. I feel like reducing emissions is a good thing, so no on this one.<br />NOT SURE on 24: Something about taxes and businesses. I can't tell if this affects small businesses that really need the tax break, or huge ones that frankly don't. I need to read more about this one.<br />YES on 25: Punishes the state legislators by taking away their paycheck if they don't pass the budget (which is admittedly pretty mean, but I think they'll survive, because they'll be pretty unlikely to be super late like they always are now) and more importantly makes it so that a majority of the legislature needs to pass the budget, not a 2/3 supermajority. Maybe if this passes, we won't pay all our state employees in IOUs.<br />NO on 26: Makes it harder to create/increase certain taxes by requiring a 2/3 vote of the legislature or voters, instead of a simple majority. Look, I know taxes suck, but I feel like if we require a 2/3 vote to increase pretty much ANY tax, then we'll never get anything passed.<br />NO on 27: This is pretty much the exact opposite of Prop 20 -- it gives all the power to draw district outlines back to the legislators.<br /><br />So there you go. Tell me how super wrong I am on the above points, or help me with my "not sure" ones. Also, just sayin': Almost all of the official pro and con groups are called "Citizens For Lower Taxes" or "Taxpayers Against Evil Things" or "Just A Bunch Of Totally Reasonable Everyday People Who Are Totally Reasonable, We Promise, And Are In Favor Of Things That Everyone Loves Like Ice Cream And Puppies. I Mean, You Don't Hate Puppies, Do You?" It's a little sketchy, am I right?Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-84227684949799730222010-09-06T17:32:00.000-07:002010-09-06T17:46:00.125-07:00Scribe 1.0 releasedI have officially released version 1.0 of Scribe, my first Android app ever! (insert confetti and cheering here) It's an Android implementation of <a href="http://www.marksteeregames.com/Scribe_rules.pdf">the paper-and-pencil game, Scribe</a>. It's a two player game, so find a friend and give it a try!<br /><br />If you are viewing this on an Android device, or if you have the <a href="http://code.google.com/p/chrometophone/">ChromeToPhone</a> or <a href="https://addons.mozilla.org/en-US/firefox/addon/161941/">FoxToPhone</a> extension, then you can just <a href="market://details?id=tyler.breisacher.scribe">click right here</a> to download it. If you have a barcode reader app, then you can point it at the QR code below. Otherwise, just open the Android Market and search for "Scribe." Let me know what you think!<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://chart.apis.google.com/chart?cht=qr&chs=350x350&chl=market%3A%2F%2Fdetails%3Fid%3Dtyler.breisacher.scribe"><img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 350px; height: 350px;" src="http://chart.apis.google.com/chart?cht=qr&chs=350x350&chl=market%3A%2F%2Fdetails%3Fid%3Dtyler.breisacher.scribe" alt="" border="0" /></a>Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1tag:blogger.com,1999:blog-4037272814566893607.post-33772076227630504652010-08-20T00:41:00.001-07:002010-08-20T00:44:17.596-07:00The gay agenda: Legalizing prostitution?I'm sending the following to both CNN's contact page, and <a href="http://www.glaad.org/reportdefamation">GLAAD</a>. We'll see if either of them acts on it.<br /><blockquote>This Tuesday night, Larry King had four guests on his show to debate gay marriage and Prop 8. For the most part, the debate was fairly civil and fair, but at one point, Bishop Harry Jackson claimed that "on the gay and lesbian agenda, right now, is a desire to legalize prostitution" (see http://www.youtube.com/watch?v=WT6g5w1qNrw#t=50s ). While I don't expect everyone to fully understand or agree with the "gay and lesbian agenda" as he put it, I think it's quite obviously and provably false that any gay rights activists anywhere are working to legalize prostitution.<br /><br />I think that was a moment in which Larry King should have injected a little bit of fact-based questioning into the discussion: "Hang on a second -- where did you hear that? Stephanie, you're gay. Is that on <i>your</i> agenda?" Since he didn't do that, it would be nice for him to make a statement on his show, explaining that he did some research and (as far as he can tell) there is no such item on the gay agenda, while offering to Bishop Jackson the opportunity to come back on the show and explain where he got his facts from, or what he meant.</blockquote>By the way, if you're curious what the actual gay agenda is, I <a href="http://trojansax.blogspot.com/2009/05/gay-agenda.html">laid it out on this very blog</a> a couple of years ago.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-83569177237037129622010-08-14T17:15:00.000-07:002010-08-14T17:45:55.852-07:00political quotes of the dayAt a Ramadan ceremony at the White House yesterday, President Obama <a href="http://www.nytimes.com/2010/08/14/us/politics/14obama.html?_r=1&hp">spoke out in favor of allowing</a> Muslims to build a community center and mosque, close to the site of the World Trade Center towers. He defended their right to build a place of worship by referring to an obscure legal document called the "First Amendment to the Constitution":<br /><blockquote>But, he continued: “This is America, and our commitment to religious freedom must be unshakable. The principle that people of all faiths are welcome in this country, and will not be treated differently by their government, is essential to who we are.” </blockquote>I wish the phrase "But, he continued, 'This is America'" appeared in every article about Obama, or for that matter, any article about politics. <a href="http://www.theonion.com/articles/last-time-sources-checked-this-still-america,17545/">Kinda like this</a>. My other favorite quote from this article is:<br /><blockquote>In New York, Rick A. Lazio, a Republican candidate for governor and a former member of the House of Representatives [said,] “With over 100 mosques in New York City, this is not an issue of religion, but one of safety and security,” he said. </blockquote>Anyone know what that means? I'm trying really really hard to figure out why a mosque a few blocks from Ground Zero would be a safety and security concern, whereas another mosque, a little further away, would not be. Even if we accept the idea that all Muslims are terrorists, which obviously is not true, I still don't get it. Is he afraid that someone is going to attack the same site again, and he thinks that the Muslims who worship elsewhere in Manhattan, (or elsewhere in the country, or the world), don't have access to, you know, transportation? The only reasonable explanation I can think of, is that this man truly doesn't hear himself when he speaks. He says words, but he doesn't hear himself saying them. Any other ideas?<br /><br />I'm so excited to see how crazy this country will get during the election season this year. We're off to a great start.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com2tag:blogger.com,1999:blog-4037272814566893607.post-27296940672632680242010-08-07T23:42:00.000-07:002010-08-08T02:40:52.423-07:00The "just to be safe" argument. And then: The Ask.I've been watching the <a href="http://www.youtube.com/watch?v=xD1b6I00RyA">marriagetrial.com reading</a> of the Proposition 8 ruling, while also sort of reading along in <a href="https://ecf.cand.uscourts.gov/cand/09cv2292/files/09cv2292-ORDER.pdf">the official pdf</a>. If you're too lazy to read all 136 pages (although it's double spaced and a fair amount of it is just citations, so it's really more like 60) there are some great summaries at the <a href="http://www.bilerico.com/2010/08/analysis_of_prop_8_decision.php">Bilerico Project</a> and <a href="http://blogging.la/2010/08/07/reading-the-prop-8-decision-so-you-dont-have-to/">Blogging LA</a> (thanks to <a href="http://fatpinkchicken.blogspot.com/">Heather</a> for that second link).<br /><br />Anyway, I was tweeting a couple of my favorite quotes from the decision, and someone responded on Twitter: "Fuck the other half of CA, and dumb bigots." Of course I understand the frustration behind this statement, but I want to be sure to make one thing very clear.<br /><br />The seven million <span style="font-weight: bold;">people who voted for Proposition 8 are not the enemy</span> in this fight. I know this may be hard to believe, but it's true. Watch this ad, even if you've seen it before:<br /><br /><object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/0PgjcgqFYP4&hl=en_US&fs=1?rel=0"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/0PgjcgqFYP4&hl=en_US&fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="480"></embed></object><br /><br />This is the kind of message that voters saw over and over and over again in the six weeks leading up to the 2008 election. It was two full weeks before the No on 8 campaign came up with any response to the message that allowing gay marriage meant the unthinkable would happen -- kids would be taught the shocking truth that <span style="font-weight: bold;">gay people exist</span> and sometimes they fall in love and want to get married. I know. Shocking. (Waiting this long was the <a href="http://prop8report.lgbtmentoring.org/read-the-report/findings-overview/findings-1-7-prejudice/finding-4-princes-delay-avoidance">single biggest mistake made by the No on 8 campaign</a>, according to <a href="http://prop8report.lgbtmentoring.org/">The Prop 8 Report</a>, something I've been meaning to blog about since it was released last week, about a day before the trial decision came out. Worst timing ever.)<br /><br />So for two weeks, many people were faced with the following set of facts, or perceived facts:<br /><ol><li>If I vote no on Prop 8, my children might be taught something I don't want them to know, and at a very young age!</li><li>This is backed up by a very official person with a law degree who is much smarter than I am, as well as by actual facts.</li><li>I don't know of any negative consequences if I vote yes on Prop 8.</li></ol>There is only one rational conclusion that can be drawn from these three facts, or even from just #1 and #3: Vote yes on Prop 8! Even if you think the threat to children is unlikely or insignificant, there's no downside to voting yes. It's a win-win. Many of the voters I talk to as a volunteer with Vote For Equality (more on this in a moment) tell me that they're not sure how they feel about gay marriage, or <span style="font-weight: bold;">they have no strong feelings one way or the other</span>. Yes, I'm sure many of them are against gay marriage, and just don't want to say so to my face. But I believe that a significant number of them are truly undecided or indifferent. And yet, of the 13.7 million Californians who voted that day, <a href="http://en.wikipedia.org/wiki/Proposition_8#Results">less than two and a half percent</a> were unable to decide, and didn't cast a vote one way or the other on Prop 8. If you <span style="font-weight: bold;">don't see the harm in voting yes</span>, why would you ever vote no, <span style="font-style: italic;">just to be safe</span>,<span style="font-style: italic;"> just in case</span> those scary ads about harming children are true?<br /><br />I bring this up for two reasons, First of all, as I said, we need to remember that the 7 million "yes" voters are not the enemy in this fight. Call me naive, but I think the majority of them aren't actually <span style="font-style: italic;">that</span> offended by the idea of a couple of guys making a promise to each other, eating some cake, drinking some wine, signing a piece of paper, and one of them getting to use the other's health insurance. They were just <span style="font-weight: bold;">misled and tricked</span> into changing the definition of marriage. It's not their fault. Really.<br /><br />Secondly, we can convince people that "fact" #3 is not true, because, of course, it's not. Yes, we can rebut the other two facts as well, but if we can show people what marriage means to <span style="font-style: italic;">actual real-life gay and lesbian Californians</span> and their families, then <span style="font-weight: bold;">we can win next time</span>. This is one of the central arguments made by the plaintiffs in the prop 8 trial: By denying marriage to a couple, you are sending them a clear message that their relationship is inferior to other people's relationships.<br /><br />That is what I've been doing with <a href="http://www.lagaycenter.org/voteforequality">Vote For Equality</a> for the last few months: Having open, honest conversations with voters, both on the phone, and at their front door, explaining to them why I believe we ought to extend marriage benefits--not the separate but equal classification of "domestic partners", but <span style="font-style: italic;">marriage</span>--to all committed long-term relationships. More importantly, Vote For Equality has devoted itself to something we almost never did during the No on 8 campaign: <span style="font-weight: bold;">listening to the voters</span> and finding out what their concerns are. Check it out!<br /><br /><object height="385" width="640"><param name="movie" value="http://www.youtube.com/v/Iamj2EZ4b4g&hl=en_US&fs=1?rel=0"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/Iamj2EZ4b4g&hl=en_US&fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="640"></embed></object><br /><br />We won't always change someone's mind, like Jay did in this video, but with every conversation we have, we'll find out more about that person -- their thoughts about this issue, any ideas they have that are factually incorrect, and any questions they have about same-sex marriage, that we might be able to answer for them. It's a lot of fun, and I believe that if we vote on this again, in California or elsewhere, and we win, it will be largely because of this kind of work. If you volunteered with the No on 8 campaign, and you were frustrated with how ineffective our tactics were, I promise you <span style="font-weight: bold;">this is different</span>. We've learned from our mistakes, and we're continuing to improve our approach.<br /><br />(And if you were at any of the No on 8 actions, you know what's next -- <span style="font-weight: bold;">The Ask</span>)<br /><br />One of the next major events coming up is a phonebank on August 24, where we have phone conversations much like the in-person conversation in that video you just watched. It also happens to be <span style="font-style: italic;">the day before my birthday</span>, and seeing all of you, my huge following of blog readers (okay, so there are like four of you, but still), at the phonebank, would be a <span style="font-weight: bold;">pretty awesome birthday present</span>. I know it might seem scary to just call up a stranger and ask them how they feel about gay marriage, but once you get into it, you'd be surprised how much people are willing to talk about it.<br /><br />If you have any friends or family who might someday want to marry a person of the same sex, <span style="font-weight: bold;">please come to this phonebank, for them</span>. I'm sure you know at least one, and if not, then come to this phonebank for me -- for my birthday. There might even be free food! And no using band as an excuse, TMB people. If you leave right after practice, you'll get there on time, even with traffic.<br /><br /><span style="font-weight: bold;">The details:</span><br />Vote For Equality voter persuasion phonebank<br />August 24th, 6:30pm-9:30pm<br /><a href="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=1125+N.+McCadden+Place+Los+Angeles,+CA++90038&sll=33.893465,-118.386284&sspn=0.009511,0.016007&ie=UTF8&hq=&hnear=1125+N+McCadden+Pl,+Los+Angeles,+California+90038&ll=34.0929,-118.336487&spn=0.037956,0.06403&z=14">1125 N. McCadden Place,<br />Los Angeles, CA 90038</a><br /><br />I want to conclude this blog post with a quote from an unlikely source. As they are a project of <a href="http://www.nationformarriage.org/">NOM</a>, you can imagine I don't agree with much of what comes from the <a href="http://www.ruthinstitute.org/">Ruth Institute</a>, but they're 100% <a href="http://www.ruthblog.org/2010/08/06/the-fraudulent-principle-of-%E2%80%9Cliberal-neutrality-from-prof-ed-feser/">right about one thing</a>, and it nicely sums up why the work Vote For Equality is doing is so important, and why we can't just sit around waiting for court decisions:<br /><blockquote>As with other issues, what will decide the “same-sex marriage” controversy in the long run are the attitudes that prevail in society at large, not this or that judicial decision, ballot measure, or piece of legislation.<br /></blockquote>P.S. I really think if you give it a chance, you'll enjoy this phonebank, or find other VFE actions that suit you better. But if you really don't want to do this, or can't make it on that day, or find that you have more spare money than spare time (hey, it's possible!), then you can also <a href="https://secure2.convio.net/laglc/site/Donation2?2200.donation=form1&idb=1461712824&df_id=2200">make a donation</a> to Vote For Equality, and that would also make a huge difference. Thanks!Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com2tag:blogger.com,1999:blog-4037272814566893607.post-76659353397800282332010-07-18T09:08:00.000-07:002010-07-18T10:05:09.917-07:00NOM is on the road to protect (some people's) marriage!I don't know if you've been following <a href="http://nomblog.com/">the NOM Blog</a> recently but the National Organization for (Hetero-Only) Marriage is going on a National Tour! (And by national, I mean just the eastern US -- I know, I was hoping they'd actually come to California, instead of spending lots of money on our politics). Their <a href="http://nomblog.com/1205/">recent blog post</a> basically covers three things:<br /><ul><li>People were very excited about "protecting marriage" and NOM had great turnout at their rallies.<br /></li><li>Gay marriage bloggers are jealous, and they're a bunch of liars. But no, we won't bother linking to any of those blogs <s>because you might be exposed to some intelligent ideas that we don't really want you to hear</s> because you don't need to see those lies for yourself, you can trust NOM. (I mean, if you're going to accuse bloggers of lying, you ought to at least link to their blog so that your readers can see for themselves, and the accused have a chance to defend themselves. Right?)<br /></li><li>There were some protesters at the NOM rallies but they were silly and ineffective. No mention of what the protesters' signs said (though you can see a few pictures <a href="http://www.flickr.com/photos/50933783@N07/">on their flickr page</a>) or the fact they were from an actual established group, rather than just a bunch of randoms.</li></ul>It's almost as though one of NOM's main goals on this tour is to draw the attention of gay marriage supporters -- to bring out protesters who are still angry about their right to marry being taken away. All it takes is one or two people angry enough to shout over NOM's rallies, or with signs that imply NOM is bigoted or hateful, and all of a sudden, they'll be the victims. The poor, tiny, grassroots, average Americans, just trying to stand up for tradition and common sense against the big bad oppressive super-powerful atheist family-hating gay lobby.<br /><br />Here on the internet, we call them <a href="http://en.wikipedia.org/wiki/Troll_%28Internet%29">trolls</a>. The first evidence I saw of this, was <a href="http://twitter.com/nomtweets/status/18716695040">this tweet</a> from a couple of days ago: "<span class="status-body"><span class="entry-content">Brian: On our way to Albany. Car just swerved to cut us off and gave hand gesture. Got tolerance? <a href="http://twitter.com/search?q=%23nom" title="#nom" class="tweet-url hashtag" rel="nofollow">#nom</a>". So </span></span><span class="status-body"><span class="entry-content">I want to reiterate what I said on twitter: As a supporter of marriage equality, you should get out there and make your voice heard. Make signs, carry rainbow umbrellas, draw attention to the issue from all over the place, talk to your friends and family about why marriage is important for you or the same-sex couples in your life. But please, PLEASE don't do anything that will help NOM and other anti-gay-marriage groups to play the victim. They thrive on that, so let's not give them any more assistance than they already get. You know, "Don't feed the troll."<br /><br /></span></span><span class="status-body"><span class="entry-content">Of course, maybe I'm overreacting. As my friend <a href="http://twitter.com/y0ssarian87/status/18717874018">Jonathan said</a>, "</span></span><span class="status-body"><span class="status-content"><span class="entry-content">@<a class="tweet-url username" href="http://twitter.com/tbreisacher" rel="nofollow">tbreisacher</a> Maybe it wasnt even a marriage equality believer. Maybe the nom car driver is a shitty driver...</span></span></span><span class="status-body"><span class="entry-content">"</span></span>Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com3tag:blogger.com,1999:blog-4037272814566893607.post-38468480778843716772010-07-03T14:59:00.001-07:002010-09-06T17:56:38.231-07:00Scribe for Android!UPDATE 9/6/10: This release is no longer available. Please download the <a href="http://trojansax.blogspot.com/2010/09/scribe-10-released.html">official one from the Android Market</a>.<br /><br />Good news, everyone! The first official release of Scribe for Android <a href="http://github.com/downloads/MatrixFrog/scribedroid/scribedroid.apk/qr_code">is now available</a>. If you have an Android device, fire up your barcode reader and try it out! Keep in mind this is still a very very early version of the game so most of the menus don't work yet, and it's starts to feel very slow as you get close to the end of the game.<br /><br />Please let me know if you have any comments, suggestions, bug reports, etc. by creating an issue <a href="http://github.com/MatrixFrog/scribedroid/issues">on the github issue tracker</a>, or just emailing me.<br /><br />Enjoy!Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-31655942847521880802010-06-28T00:00:00.001-07:002010-06-28T00:13:08.395-07:00New Android game, Scribe: Coming soon!Remember how I said I would update this blog, like, all the time? Me neither. Anyway, I'm working on a game for Android called <a href="http://www.marksteeregames.com/Scribe_rules.pdf">Scribe</a> (pdf): <blockquote>Scribe is a pen and paper game for two players. Nine mini grids together form one super grid. The 19 glyphs of Scribe are listed in the left margin. Draws cannot occur in Scribe. Mark Steere invented Scribe on October 1, 2006.</blockquote> I've played a sort of "play by email" version of it at <a href="http://superdupergames.org">superdupergames</a> and I always thought it would be more fun in real time, so I decided to make it my first Android development project. I've already cranked out all the data structures and tricky logic (specifically, the difficult task of figuring out who won a particular mini-grid), so all that's left is the UI. As it's my first Android project, I don't know how long it will take, but my (admittedly rather arbitrary) goal is to have a beta version ready for download by the beginning of August.<br /><br />If you want to follow along with the development, keep an eye on <a href="http://github.com/MatrixFrog">my github account</a>. (The Scribe project that's up there now is a desktop version, hastily thrown together in Swing, but I couldn't get the github "downloads" feature to work, so you'll have to build it from source, or wait a little while.)<br /><br />In the meantime, can you prove Mark Steere's claim that ties are impossible?Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com3tag:blogger.com,1999:blog-4037272814566893607.post-51838198051083491172010-05-27T13:18:00.001-07:002010-05-27T14:08:04.955-07:00GLAAD Media MonitoringI just finished the online training for to be a <a href="http://www.glaad.org/">GLAAD</a> Media Monitoring volunteer. For those who don't know, GLAAD is the Gay and Lesbian Alliance Against Defamation. They're the people that go after reporters, news organizations, TV shows, etc. who represent GLBT people unfairly or inaccurately, as well as hosting their own awards show (which I volunteered for a couple of years ago) for awarding <span style="font-style: italic;">postive</span> portrayals of gay and lesbian people in the media. Although I've criticized GLAAD before for being over-sensitive, I think what they do is generally a good thing, so I'm excited to be volunteering for them. If you're not officially signed up as a volunteer, you can still help by <a href="http://www.glaad.org/reportdefamation">filing an incident report</a> whenever you see something in the media that you feel is defamatory to the GLBT community in some way.<br /><br />The first part of the training was essentially just a summary of what GLAAD does and why. I would encourage you to click around their website a little bit to get an idea of it, but the general idea is that they want to ensure news stories are fair (reporters contact LGBT people or allies, not just anti-gay people), accurate (factually correct, and not defamatory), and inclusive (including LGBT people even in stories that aren't directly about them, when appropriate). Next, they went into more detail about specific words that should be used/avoided by reporters. If you don't think words matter, take a look at the numbers from this <a href="http://www.cbsnews.com/8301-503544_162-6198284-503544.html">CBS news poll</a> from a few months ago:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://wwwimage.cbsnews.com/images/2010/02/11/image6198096.jpg"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 403px; height: 165px;" src="http://wwwimage.cbsnews.com/images/2010/02/11/image6198096.jpg" alt="" border="0" /></a><br />The other good/bad word pairs I managed to jot down were "adoption by gay people" (good) vs. "gay adoption" (bad) and "sexual orientation" (good) vs. "sexual preference" (bad). Lots of other word-choice recommendations can be found in GLAAD's official <a href="http://www.glaad.org/Page.aspx?pid=373">Media Reference Guide</a>.<br /><br />Because the media works on a 24-hour news cycle, information and stories are constantly being written and published, which is why it's important for organizations like GLAAD to react quickly. If a story appears on the AP wire this afternoon, GLAAD can act and possibly get parts of it reworded before it goes to print in newspapers the next morning. Even after something goes to print, it's important to act quickly. Newspaper editors aren't interested in complaints about stories posted several weeks ago.<br /><br />The direct action that volunteers take, is <a href="http://www.glaad.org/reportdefamation">filing incident reports</a>. All this really means is sending an email to incident@glaad.org telling them about anything defamatory that you find in the media, including where you found it (whether it's a newspaper, magazine, internet, TV, etc.) and why you think it's defamatory. There was a little more information given in the training (for example, noting that you have to treat a news story different from the way you treat an opinion piece, although both can be defamatory) but really, that's basically it!<br /><br />The trainers mentioned that GLAAD also has a guide about how to write effective letters to the editor (of course, most of the information would also apply to blog posts and comments, etc.) <s>but they implied that it's not available online. I asked them to send me a copy, and maybe I'll summarize it on this blog as well. But I will also encourage them to post it online, as well as perhaps posting a video of today's training.</s> <span style="font-weight: bold;">Update:</span> It turns out this information is online, on page 72 of their <a href="http://www.glaad.org/mediaessentials">Media Essentials training manual</a>. I still think they should post the powerpoint or video from today's training, though. Making your materials open and accessible is a good thing!<br /><br />Anyway, if you find yourself fighting defamation against GLBT people or anyone else, let me know! And I will keep you updated on how this goes for me.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com0tag:blogger.com,1999:blog-4037272814566893607.post-25205082273484376982010-04-26T11:59:00.000-07:002010-04-26T13:23:29.139-07:00Ignoring PeopleI saw something this morning that I found very impressive. I'd never seen anything like it in my four years at USC. In fact, I don't think I'd ever seen anything like it in my life. A kid was sitting on a bench reading a book, without looking up at all. The bench in question was Associate's Park, between Bovard and the PE building. For those not familiar with the geography of USC, this is a location typically used for sitting quietly and reading/studying, unlike, say, Hahn Plaza, which is traditionally where enthusiastic people with clipboards and flyers try to stop you and get you to join their party this weekend/religious organization/service organization/volunteer opportunity.<br /><br />Anyway, this kid is sitting there, reading a book, not looking up at all. Next to him are two people with some sort of small flyers, talking to this kid about how Jesus loves him and quoting something from Genesis. They're just continuing, on and on and on, seemingly completely unaware of the fact that they're absolutely being ignored. I've never seen anything like it before--I've never seen anyone so intent on getting a stranger to believe what they believe. It was really quite amazing.Tylerhttp://www.blogger.com/profile/03197090819217016934noreply@blogger.com1