Over the past several months a colleague and I have been working together on creating a series of videos to get the word out on how awesome Emacs is. We have a handful of videos published so far, and have slowly been getting feedback and people subscribing. It’s pretty exciting that people want to learn more about Emacs with our channel. People started posting links to our videos on reddit (such as here and here). Even a blog that I personally follow posted about one of our videos.
If you ever wondered what makes Emacs awesome or have wanted to learn, you can check out our channel. We’ll be making more videos in the future!
]]>It’s quite interesting that time can repeat itself in our minds based on how much we cling onto our memories from a certain time, or even how much of the event has been recorded. 9/11 is arguably one of the most recorded terrorist attacks in history. The timeline of the attacks are documented with details to the second1. To me, time feels frighteningly slow as every next detail is accompanied with a timestamp. It wasn’t hard to read the roughly 200 pages of No Better Time, but the death of Danny Lewin, who is arguably the first person killed in the 9/11 attacks, doesn’t happen until the very last pages of the book. And the final pages of the book are where I probably read the slowest.
Hundreds of pages are spent on the Lewin’s life, with his notable achievements being in the military, starting a family, going into the Ph.D program at MIT, and working to end the World Wide Wait of the internet during the 90s. This all sets the stage for the climax of the book. The climax reveals the irony of Lewin’s life, as one of the motivations of ending the World Wide Wait was to prevent high traffic sites such as the news from crashing when breaking news occurred—-breaking news like 9/11, when the phone and radio lines went down, yet the web continued serving news thanks to Lewin’s work.
If Danny were still alive, I would have loved to have dinner with him, if not just to experience his invigorating character. The closest things I’ll have now are the stories about him and the published papers (here’s one) with his name that were critical to speeding up the Internet for everyone.
Read it all on Wikipedia. The flight events alone are incredibly detailed: American Airlines Flight 11, United Airlines Flight 175, United Airlines Flight 93, and American Airlines Flight 77.↩
General game-playing programs do not know the rules of the game ahead of time. As such, they are based on concepts that games have in general; for instance, each game has players, legal moves to make, and conditions that indicate that the game is over. For example, tic-tac-toe involves two players, where each player takes turns marking Xs or Os on the board, and the game-over condition is when there’s a line of matching Xs and Os or if the board doesn’t have any blank spaces. Chess, go fish, and other games follow the same structure as well, although the specific game rules are different.
There’s always been research about computers being smart enough to beat people at games (famously for chess). They’ve been done for years. What makes general game playing programs different is that they are not specialized for any particular game.
It’s crazy to think that a single program can be used to play different games, given that the games are described in a way that the program can understand. In general, games are just a series of states that change as the game progresses, so the program just inspects the states and makes moves accordingly. Unsurprisingly, games are just represented by a state machine. How fortunate, given that I’m currently learning about them in CS 154 as well.
In related news, I watched Peter Norvig’s talk on How Computers Learn today, which was great. He talks about machine learning and some of the work that Google’s done with it in clear language without much jargon. The entire talk was interesting, though the part where (at time 43:52 of the video) he talks about a computer learning how to play the game Breakout and getting really good at it is sort of relevant to the topic for this post. Though it’s not a general way to play games, just having the program learn from its past experience, and all it knows are the pixels on the screen and the score. The computer gets pretty good at playing the game after being extremely dumb from its first time playing and getting pretty good at the game after hundreds of play sessions.
Applying that same technique to GGP is probably not feasible. Since the program doesn’t know what kind of game it’s going to play, it can’t really build on past experience and say that certain techniques are better than others. It could be playing tic-tac-toe in one round and chess in the next round, and each game has their own winning strategies.
A good way to make moves without basing it on prior knowledge is to “inspect the future” by checking future possible moves and seeing which move is best, statistically speaking. This is what, from what I’ve read so far, the papers on GGP have written about.
Though I haven’t heard about general game playing at all until this past weekend, it’s pretty interesting. If you want to follow along and learn more about GGP, check out the General Game Playing course on Coursera or ggp.org.
]]>I was partly enlightened while listening to episode 28 of Cmd+Space some time last year. It’s a great episode with John Roderick. About 20 minutes into the podcast, John talks about the current culture to “compulsively record things,” and that some people don’t believe something happened if there isn’t a picture of the event as well. Or rather, they’re disappointed that there aren’t any pictures. So I’ve been taking much fewer photos lately, and I don’t feel like I’ve been missing out on much.
By not taking pictures of anything and everything, I feel that I’m more focused of my surroundings and the people around me and less on capturing the moment with a few photos. It’s very much a Look Up argument (though I still constantly use a computer).
It’s easier to forget without photos, which leads me to choose what memories to cherish mentally.
Here’s to more valued memories.
]]>However, after every semester I realize more things about school, and my priorities have shifted.
One of the first things that I have accepted is that where you go to school doesn’t matter. People have been telling me this repeatedly, but it took me a while to internalize and accept it. People aren’t defined by the school they attended. In many ways, the institution’s culture affects and shapes our perceptions of the world, given that we spend around four years within their atmosphere. But you don’t introduce yourself to people by first saying which school you came from, because that’s not interesting at all.
Another thing I’ve accepted is that grades are not important, at least not as important as I thought they were. Every professor has their own way of grading course work, and yet all grades are considered equally on a college transcript. Some professors grade on the infamous bell curve, while other professors hack their grading scales based on whatever criteria they come up with during the course, extra credit et al. I waste a lot of time caring about what other people tell me what’s right and wrong, which is time I could instead use to focus on more important matters, like actual learning.
Reading Salman Khan’s book, The One World Schoolhouse, reinforced the fact that there is plenty wrong about the modern school system, and not just financially speaking (as much as we complain about the rising costs of tuition). The issue with our schools is ingrained in the pedagogy. Sal’s book provides a lot of context for why the U.S. education system is the way it is, how Khan Academy is changing that space, the purpose of homework, and all sorts of other great points on education and what the future holds for it.
While reading Sal’s book, I had a couple of weeks where I was reading and watching a whole bunch of Bret Victor and John Taylor Gatto, and watched the college documentary Ivory Tower. A couple of my favorite pieces are Bret’s thoughts on teaching and Gatto’s The Six-Lesson Schoolteacher.
There was an interesting discussion last month on the College Opportunity Day of Action about innovation and higher education. The whole panel discussion is recorded on YouTube, and starts an hour into the video and lasts about an hour. One of the main points was rethinking the perceptions that we have about our education, but one point that stood out to me (it happens at about the 1:44:00 timestamp of the video) was one that Freeman Hrabowski made in the talk about the need to learn how to ask the right questions. introducing the topic by prefacing it with Isidor Isaac Rabi growing up in New York and coming home from school with his grandmother asking him “Did you ask a good question today?” while his friends’ mothers would ask their children “What did you learn in school today?” His grandmother’s question encouraged his curiosity.
What did you learn today?
]]>This is huge. Not only is this another great resource to learn algorithms, this is made alongside Dartmouth professors. This includes one of the authors of the famous CLRS Introduction to Algorithms book, Tom Cormen. If you had a reason to be skeptical about the quality assurance of the Khan Academy content (which is already great), having the Khan-powered algorithms course being backed by Cormen and his colleague Devin Balkcom should alleviate any doubts.
If I had this and VisuAlgo when I took the Data Structures and Algorithms course at SJSU a year ago, I would’ve been so happy. The resources I had back then to learn the course material was plenty, but I think would’ve spent so much time outside the course with these materials to help me learn.
]]>I took the bus to school yesterday morning. While I was at the bus stop, there was a man there that started to talk with me. As it usually is with strangers, I’m hesitant to start a conversation, but I tend not to ignore someone who talks about how nice the weather is for the day.
Of course innocent conversation starters usually don’t end there. This man proceeded to tell me about the morning he had. He was making casserole in the oven, but when he took it out of the oven, the casserole wasn’t put in all the way so it fell onto the kitchen floor. “I got lucky that it didn’t touch my legs! It was really close,” he said, while he motioned his hands in the air to imply he was grabbing napkins and cleaning the mess from the oven. What a rough morning.
Our conversation doesn’t stop there. He began to talk about the police report he had to write. He pointed out the apartment complex that he lives at not too far away from the bus stop, and he told me that someone broke into his apartment and took everything. And to clarify what he meant by “broke into,” the robber didn’t break his door down—his door was completely fine. Whoever broke into his place used a master key and took photos of all his bank account information, passport, and whatever else was in his apartment. He said people who used to work at the complex were bad enough to take the master key with them after they quit their job.
The reason why he has to write this police report himself is because the police won’t write it themselves, and he has to pester them to give his case a police number (making it official in the police records). Apparently whoever owns the apartment complex he’s living in has some connection with the police, so the police won’t file any reports from that place because that would scare away buyers. If this sounds crazy to you, you’re not alone. I was thinking the same thing as this man told me this.
The conversation then proceeds to the topic of crime. He tells me that someone in America gets robbed every 8 seconds, and that a million Americans have to deal with identity theft. He needs to work on the police report without the help of the cops so that he doesn’t have to go through any issues about people doing things under his name. “If I can make this official, then it’ll my proof if somebody ever tries to do something funny, y’know?”
Before we got on the bus, he ended our chat by smiling, saying that it was still a beautiful day that morning. The weather was pretty nice.
At the end of the day, this guy can still smile and look on the bright side. How someone could be happy after all that is astonishing. The man’s probably gone through tougher times in his life.
]]>It wasn’t really clear if Bluelight was actually showing the movie. First, Bluelight’s website showed it would be showing the movie, and then it showed that it wouldn’t. And their automated machine over the phone also didn’t mention the movie at all. But the movie’s official website said yes, and @internetsownboy tweeted would be coming to Bluelight as originally scheduled.
It wasn’t worth the drive to see if Bluelight was going to show the movie the day it came out. So my friend and I decided to watch it at home whenever we were free again. And so we watched it.
Anyway, the movie’s good. It does a good job telling the story of Aaron Swartz in a nutshell (an almost two-hour long nutshell). A lot of the parts of his life you can read about online on his blog or elsewhere, such as Wikipedia. The web of links you find online will lead you to many articles, but it’s nice to see it visually documented during the film. I really enjoyed seeing it.
“Enjoyed” probably not the right word. I suppose I should say that I found it interesting. It’s an interesting movie.1
I highly recommend a watch. It’s available on YouTube. Just as Marco says, you’re free to watch it due to the film’s Creative Commons license. Yay.
I told a colleague during lunch that “I had fun over the weekend. I watched the Aaron Swartz documentary.” His response was “That movie doesn’t seem like something I would call fun.”↩
I had to set up a new work computer for myself, and I didn’t expect it to be so tedious. I really relied on 1Password, Alfred, and Emacs on my own computer, and not having them is a total punch in the gut. Not only did I rely on those programs, but I got really used to the customizations I made, like keyboard shortcuts and Alfred workflows. I should really prepare my own personal set of dotfiles for my preferences (such as this popular one by Mathias Bynens or the amazing magnars’s .emacs.d directory. Now I gotta learn how to organize my settings for readability and easy setup in the future. Right now it’s a whole kludge of preferences that only I really understand. The lesson to learn from this: personal computers are truly personal, and organization and documentation are really important if I don’t want to repeat tedium in the future.
To start, I’m gonna see if I can get any tips from Zach Holman’s words about dotfiles.
]]>So, how’s school?
The dreaded question, to which I just answer “It’s okay.”
I mean, I really don’t want to talk about it. I used to believe that school was really awesome. Nowadays, I’m not too sure.
I remember in elementary school where I would be really excited about it. Go to school to learn and play with friends, what’s there not to like? I was praised for a lot of what I did, like doing well in math1, or doing something that seemed “out of my capability.” In fifth grade I had to give a presentation to second graders on how to make a paper airplane. I typed up a whole page of instructions on Microsoft Word: materials, procedure, observations—-like a lab report. My teacher was really impressed by the document. There was a parent-teacher meeting not too long after and my teacher showed my page of directions to my parents, telling them how impressed she was. She asked them if they helped me make it or if I did it all by myself. “He did it all by himself. I only showed him how to put in the arrows (→).”
That was one of my proud moments in elementary school. Other moments like that include playing the violin at school concerts and making the winning shot in basketball one day during PE.
Then came middle school. I remember graduating from there I thought to myself that I would cherish a lot of memories that I had during middle school. Now, I don’t remember much. I was pretty much a typical child, coping with whatever social drama that middle schoolers tend to create. Middle school was pretty strange in hindsight. Classrooms were filled with students with smug attitudes, and some teachers really seemed like they didn’t express any motivation to teach us.
One thing I’m grateful for about middle school is the handful of friends I’ve kept from that time.
In high school, there was less “trying to fit in” compared to middle school. The group I hung out with were people I liked being around. Socially, it was pretty much the same throughout the four years. That was nice. When I talk to the same people now we have this attitude of “be yourself because I don’t care how you judge me.” We’ve spent enough time with each other during high school that we don’t need to be shy about ourselves. We don’t know everything about each other, but we’ve come to accept each other’s personality.
I don’t know where this post is going. It started with the question “how’s school”, which I assume means academically. But here I am talking about the social aspects of it.
Perhaps school is mainly a social institute first and foremost. We’re expected to do group work, interact with others, and survive for about seven hours a day being in a place with other people.
Anyway, let’s go back to first line of this post: How’s school? To be more specific: How’s SJSU?
It’s alright. It’s not great knowing that even though I’m doing well according to my transcript, all that doesn’t matter because it’s SJSU.
I was talking to my professor about grad school. Although I’m still unsure whether I should go for it, he told me that I should “definitely go.”
You’re fit for grad school. You have the grades and mentality for it. But don’t go here. Go somewhere with a good CS program, like Berkeley, MIT, Carnegie Mellon, Stanford, or UCLA.
But it’d probably be a stretch to apply for the grad programs at those schools because you’re coming from SJSU. Just because you’re doing well here doesn’t mean you’d do well getting a bachelor’s at one of those schools. I mean, I dunno, maybe you would. But the fact is a degree from SJSU isn’t as significant as a degree from one of those top schools.
(That’s not exactly what he said, but it’s an accurate paraphrase.)
So as it stands right now, school is sort of holding me back. If I want to pursue research and go to grad school, I wonder if I have a chance to go one of those schools. I guess if I do go to grad school I shouldn’t aim so high and I’ll end up at a “backup school.”2
Nowadays, school is just this thing I “must do.” It’s a societal obligation that I go to college and get a degree. Sort of drab.
Who knows, maybe my thoughts on school may change later. But these are my thoughts right now about school and whatever else I blabbed about.
]]>“You are dead”: Three words that I’ve been seeing a lot in the past couple of days. They’re from a game called 1001 Spikes, a difficult game with brilliant level design that I can’t seem to put down once I start it up. The pacing seems just right, in the same way that Super Meat Boy nailed it.
As I played the really hard levels the game has to offer, it reminds me that as long as I perservere through the unknown and learn from the many mistakes that I’m bound to make, I will succeed. If I don’t try, then I won’t get anywhere, so it’s best to keep on trying, even though I may fall into some spikes every now and then. No pain, no gain, as the saying goes.
If you’re in for a challenge, I highly recommend it.
]]>Twenty years ago today, Leslie Lamport was writing a page of the Getting Started section of the LaTeX manual.1
A simple date on a calendar, but it means different things to different people. Most days are just like any other day, but some days carry more weight than others.
Have a great day today. It’s the only May 18, 2014 you’ll have in your lifetime.
I haven’t been putting much of my time into reading this book lately, but hopefully I’ll read it more after this semester ends. I want to write beautiful documents, especially with math symbols.↩
And after you’ve played that (or maybe before), you might want to read this piece he wrote about his father.
All you need are words to make something meaningful.
]]>My friends are amazing people. We can talk about practically anything together. Most of the time it’s the funny stuff, but the serious stuff isn’t forbidden from our conversations; it’s just not as laughable.
They are the reason why I’m always happy to have a break away from school; we can all get together, sit in a room for hours and talk, laugh, and go crazy together. It’s really fun. All we need is ourselves and some stories to share. We don’t need to do anything that breaks the bank; we only need each other to have a blast.
This is what I did. It’s 1:07 AM right now and I just came home from having a blast with you all, my friends. My life would be so dull without you guys, so thanks. I’m really grateful that I’m allowed in your lives.
What I love about our conversations is how it builds up as time passes. We talk about something new, and connect it with something we’ve talked about before. We connect the dots and reminisce about past events, and we essentially create a huge collection of mutual knowledge that, when we mention a sound bite, brings back memories and, usually, joy. It probably doesn’t make sense to someone who isn’t in-the-know, but it doesn’t have to be. Memories are contextual.
This is how I usually converse with people. I mention something in the past that we’ve talked about. I bring back the past a lot.
After writing that, it sounds as if I like to dwell in the past. I like to remember the good ones, and less so of the bad ones.
My relationships with people are all based on memories, anyway. If I forget the memories, I essentially don’t know anything. I wouldn’t know anyone. So if I bring back some past memory when I’m talking to you, it’s because I want to rekindle some thought between us. It’s to reexamine my relationship with you—to determine what I know about you.
I guess it’s kind of like Rogerian argument. I repeat what’s been said as a way to tell myself and my friends that yes, I am listening. Yes, I care.
When I want to experience some certain emotion, I’ll think about some memory that matches the emotion. Sort of like some dose of a drug. Nothing physically dangerous enters my body; it’s completely mental.
It’s now 2 AM. I guess it’s time to sleep, huh?
]]>I had an interview recently and I did a horrible job answering personal questions, which should probably be the easiest part, and the part I really shouldn’t mess up with. So it’s probably time for me to think about myself. The following questions aren’t all from the interview I had. It also includes questions that people had asked me from their curiosity.
I like to read. Right now I’m into reading about programming as a way to learn more than what college doesn’t do much to teach me, such as famous computer scientists, using version control, and a little bit about the well-known languages and frameworks that are used in the industry. At least, the classes I’ve taken so far haven’t taught me these things, and I’m impatient with my learning.
It’s strange when my professor or a textbook mentions something that I only know about from doing some reading outside of school. When it’s presented in lecture it’s almost as if we should’ve already known how to do this, but none of the classes I took before really covered it; I need to do my own reading to be on top of what’s happening in class.
I enjoy bicycling to places. It’s amazing that I can just pedal my feet to get somewhere relatively quickly. For example, I can bike to school with about fifteen minutes more time compared to driving (and a whole lot more sweat), without worrying about needing gas, changing my oil, running someone over, or finding parking. It’s great.
I like to play video games. They’re fun. I love interacting with these surreal worlds that hundreds of hours of man work has been able to concoct.
And I write. Here, in my journal, and with my friends, practically every day. I’m not a great writer, but if practice makes perfect, then I hope to become better by writing every day.
I see myself working on something that lives on the web. Things on the web can be opened by any browser, no matter what OS is running, with no notion of being “downloaded and installed”. It’s pretty amazing.
When a guy asked me this question last semester I told him “I don’t know.” I still don’t really know, but I know I’m interested in networks and the web. I want my CS degree to allow me to create things that people can use.
I’m not really a music person. By that, I mean I don’t follow or listen to whatever’s popular on the radio. Heck, I’ve never really fully memorized any lyrics to a song. When I see people sing along to their favorite songs, it amazes me that they know all the words. I can’t do that.
I tend to listen to songs that I like; that’s not really narrowed to any particular genre, and my tastes change over time. Nowadays, I tend to listen to video game and movie soundtracks. Listening to them brings me back into their respective worlds, and they sound fabulous to boot.
]]>I don’t even think I’m ready for a job.
My friends at school say that I’m absolutely qualified for an internship—I have the grades to prove it, they say. But grades aren’t everything. They just show that I was able the play the game well enough to do well in class. Sure, I learned a lot from the classes I took, but is that even good enough for me to get a job?
I don’t think so.
One of the skills that I truly believe I’m lacking is talking (and communication in general). I don’t really like talking to other people, probably in fear of being judged (but I’m getting better at not caring). Although from the outside you may think that I’m a good communicator, it may just all be a facade. I’m just trying to copy other people whom I think are great at talking. And if that’s working, then great.
But that’s me copying other people. I’m not comfortable with presenting myself. I don’t know how to sell myself.
Am I smart? I wouldn’t say so. (Although my GPA may tell you otherwise, but it’s just a number.)
Can I program? Sure, but they’re not great. I try to make the code readable and to make myself understand what’s going on, but I’m lacking in the reusablility aspect.
Am I an excellment communicator? No, I wouldn’t say so.
I tend to undersell myself. In my opinion, that’s better than overselling myself. I don’t want to give false promises.
I’ve seen the resumes of my classmates, who write about all of their experience with such-and-such program and working on such-and-such project. Most of which I feel like is complete BS. Is BS how we succeed?
What I really want to know is how shallow our experience can be in order for a company to hire us.
]]>That’s why I don’t do well in history classes; at least, I’m not fond of them. I don’t really understand why things happen, and I try to get by solely with memorizing. History isn’t supposed to be that difficult if you understand why people acted the way they did when key events happened.
I take so many notes in history class, not putting much effort into understanding what people did. I just write whatever’s on the slide and whatever my profressor is talking about. I try to jot down most of what happens in class, but it doesn’t mean I retain it. Suffice to say, I’m not confident on history exams.
From what I learned in history classes (or, rather, from the lousy way I’ve tried to understand the material), most of human history involves racism, sex, greed, and war. It’s all the same thing, but different. There are lots of dates to remember, people to know, and rationales to connect the dots with.
On the other hand, I don’t take much notes in my CS courses. What I try to do in those courses is understand the material. Because understanding something allows me to get that information practically instantaneously without needing to refer to my notes.
If I’m going to consider myself competent in this computer stuff, I need to understand, not just memorize.
So if it takes me many hours to understand something, so be it. So long as I can shove the logic into my brain so I can comprehend it. One of the hardest things about learning something hard is being overwhelmed by all the details. It’s better to digest the new information slowly.. Try to understand the little parts and not think of the big picture.
In fact, my statistics professor told us just that two days ago:
Be patient, do each step one at a time, pay attention to the assumption you make at each step and you’ll get there.
If I could just remember to take things slow, I would be better off.
]]>I found out this morning that my car got egged. I spent a good hour scrubbing it off my car, but it still reeks of egg.
I wonder if whoever threw the eggs has something against me, or if it was some random hooligans who wanted to egg a car.
Or if it was someone coming back from the supermarket and somehow dropped the eggs from the grocery bag all over the place. (It could happen, right?)
In any case, at least I got an excuse to wash my car.
]]>Work is tough because I’m asked to do things I have no clue about. But that’s what’s great about it, because I get to learn on the job and work on interesting problems.
As much as I’m struggling to deliver results for whatever I’m asked to do, I have to remember that the final solution will come if I step away from the big picture and focus on some small part of the problem first; someone once told me, “Nothing’s really that challenging. If something’s hard, I’ll make it easy.”
I’m not extremely talented, but I’m doing my best, whatever that means.
]]>Voicemail question: what do you do when your best isn’t good enough?
When my best isn’t good enough, I learn from my inadequacy and do better next time.
Best is relative. What you may think is best is probably not what I think is best, and what I think is best is probably not even close to what someone else thinks is best.
But what’s tough to deal with is when I find that my best work doesn’t do myself justice. Either I have unfinished work, or I didn’t get the full credit that was possible. It’s usually not about doing my best, but aiming putting out the best.
I always tend not to do the best. Aiming for the best probably isn’t going to be worth doing in the end. I mean, I don’t spend endless hours proofreading what I write, checking that the words I choose are the best words I can use (I don’t think there’s enough time in the world for that). I don’t write programs that are the best, but I try to make ‘em do what they have to do, hopefully in a beautiful and elegant way.
Sometimes, the best thing to do is the one that requires the least effort. Probably for the sake of trying to fit everything in a schedule, or so that the time and effort investment is actually worth it. A good thing gets the job done; a great thing gets the job done and does it well. At the very least I reach the former, and ultimately I aim for the latter.
Funny, I wrote something about this back in October (but never posted it):
I really don’t think I’m doing that great of a job right now. I tell myself that I can do better than what I’m putting out right now, but it’s just not really happening. I don’t finish my homework, but it’s not even collected anyway. I don’t do well on exams. My scores are horrible on a pure numerical scale (a 70% means I’m not understanding the material enough), but the class curve makes it so I’ve “done well” relative to everyone else. I’m being destroyed in work because I can’t even answer students’ questions (what kind of instructor doesn’t know the answer?), and the programs I write are just unorganized hacks that are amazingly able to do something, but the people using are always issuing bugs.
Instead of doing my best on one thing, I’m doing okay on many things.
Dang, talk about angst. In hindsight, I feel like I made the best out of what I had. I got a lot of experience from last semester and learned a lot. What I considered to be my best work last semester can’t even match the best of me now.
I’ll never be good enough, and that’s why I’ll keep on learning to become better. My best may not be good enough right now, so I’ll need to make myself better in order to overcome my obstacles.
What doesn’t kill you makes you stronger, right?
]]>