Showing posts with label life. Show all posts
Showing posts with label life. Show all posts

Monday, November 21, 2011

Brewpub: Seriously Considered

Recently, I informed all of you that I'm not planning to complete my PhD. In that same post, I noted that I had a number of wildly divergent plans running through my head as to what I might do with my life when I finish up at CU. One of those ideas, which has been milling about my head and refusing to leave ever since I first started questioning my commitment to academia last spring, is opening a brewpub.

This sounds like a flight of fancy. Future Ted Mosby was probably right in claiming that "We should open a bar" is a sentence that every American man will say at some point in his life, but this isn't something that I just randomly came upon. This is something that I've thought about pretty intently for awhile -- if only because the thought just won't leave me alone. So, I'm going to publicly run through some of the reasons I'm stuck on this and the overarching plans I would bring to the table to try and make it work.

First thing's first: part of my problem with sticking with computer science is that it's just something I don't enjoy doing much of the time. The part that I enjoy -- designing systems -- is too passive and I'm easily distracted from it. The active part, coding itself, is plagued by the ease of incidental errors that have nothing to do with executing my idea and which cripple my motivation.

There aren't a lot of things that I actually can do for hours on end without starting to hate myself a little bit. Historically, cooking is one of those things. Obviously, spending 8 hours in a day making food for people on a couple of isolated occasions is not the same as working in a kitchen for 10-12 hours a day 5-6 days a week. I would need to get real kitchen experience before I could commit to this sort of plan. But that's okay, because that leads me to another point.

This isn't something that I would just run out and do. This is something that's 5-10 years down the pipeline. I would need experience. I would need savings. I would need a business plan and a reasonable menu of recipes I can consistently recreate to within a small margin of variability. I would need people who know the brewing side of things, and I would need business expertise. These last two are things that rest completely outside my own experience and even my specific interest (though, being fundamentally fascinated by just about everything, I would certainly be invested in these sides of the undertaking).

Again, though, this isn't a huge problem. Why? Because I keep on running into other people who legitimately seem to share this dream, and maybe we just need a support group to rally ourselves to make a go of it. I know at least three people who would love to brew for a living and a couple more who would gladly help manage the kitchen. Business expertise isn't there yet, but we would have time to develop it or to find somebody to help us out. We just need to start taking the idea seriously instead of talking about it as some unrealistic ideal.

So, then, what would my plan be for this awesome-est place where everybody would know my name? Read on, if you dare.

It makes sense to start with what I'd be chiefly responsible for bringing to the table: the general idea of the menu. Stick to simple food. It should be possible to eat 75% of the menu with your hands, with the remainder being split between heavy comfort food and some lighter salad sorts of options. I've had the dubious honor of spending a fair amount of time in Ogden, UT recently, and I've been to two brewpubs there that attempt to make up for the watery 4.5% ABV beer with higher end food. It doesn't work. Even though the food wasn't bad, it just felt out of place and overpriced.

We mostly want foods that are comfortable. A well made burger and fries are a necessity, as are wings. Any brewpub worth its salt will also obviously serve fish and chips with a batter made from a house beer. In order to control costs and prep time, we're going to need to be able to create a diversity of recipes from a number of relatively stock ingredients. That's going to limit stylistic diversity, but that's okay. We can be playful and offer up new ways to eat old flavors. If I'm running things, this will probably mean a lot of southwestern foods, like the shawarma al pastor or huevos rancheros burger recipes I've been working on.

There will also be a heavily seasonal rotation of soups. We will always have a vegan as well as an omnivorous soup options and a chili. I would ideally feature a different chili every day with soups likely rotating less frequently. I say this because 90% of the chili recipes I've made share 90% of their ingredients. It would incur minimal overhead to rotate daily as most of the differing 10% of ingredients have long shelf lives. How often we could rotate soups would depend on which soups we have on the menu and how much overlap there is.

Second up is atmosphere. I'm calling this a pub. Not a bar, not a club. I like places that are chill. So for now, since this is my fantasy, this is going to be a chill place. No speaker system pumping music in at unnecessary volumes, interior organized for minimal noise bleed. Maybe this means segregation into many rooms, maybe this means having giant wooden booths that absorb a lot of sound. I don't know, but I want to be able to hear the people at my table, even when the place is busy. I want to have space for people to sit by themselves and not feel awkward. I want maybe a small library of books and boardgames that people can borrow. If we're in a cold climate, I want couches and fireplaces, dammit!

Speaking of climate, I have no clue where this is going to be. We need a place where people are going to be willing to pay the slightly higher price for what is effectively pico-scale brewing. This likely means someplace with a liberal/possibly academic bent, but at the same time, we don't want to go someplace where the market is nearing saturation or where the cost of business is going to be unreasonable. Personally, I adore the Midwest, and if I could make this happen in Minneapolis or Chicago, I couldn't be happier.

Hours are the next thing to look at. I imagine that the kitchen would offer a full menu from 11 a.m. to 2 p.m. for lunch and then from 4-10 p.m. for dinner. The bar and a limited menu of soups and certain appetizers would be open for full business hours while available. Obviously, long days. If a kitchen opens at 11 a.m., I would expect to be there by 8 at the latest to get mis en place ready and start prepping longer cooking items that will be used throughout the day (roasted meats, soups, etc.). If doors close at 2 a.m., then you couldn't expect to be gone until at least 3.

I want to have a family. I want to see my family. Running a bar/restaurant, as you can see, is a good way to keep that from happening. That's part of the benefit of having a number of people on board at the top level, though. We'd each get a smaller cut of profits, but it would be easier to rotate and provide one another time off (so long as we have well defined policies). People could take the shifts that best fit their own productivity and sleep habits, and, in time, we could hire competent youngsters to help manage the day-to-day. The first year or more would be killer, though.

That's why we need a Sabbath. Not open at all on Sundays. Pick another day of the week to not serve lunch and wait to open at 4 when the kitchen opens for dinner. Yeah, maybe people wouldn't love it, but we've got to take care of ourselves. I would also plan to make up for the lack of lunch by doing a simple brunch buffet once weekly. We could serve a selection of low maintenance egg dishes (quiches and frittatas), fresh fruit, and muffins/pastries from some local partner. Maybe do Waffle stations while we're at it. Saturday would be an obvious choice for this, but I somehow like the idea of a Thursday brunch. Keep it low key, make it a business friendly thing.

Speaking of Sabbath, I'm a Christian. Many of the people with whom I've talked about this are Christians. As such, we need to intentionally work to benefit our community. I say we tithe from our profits. Not to the church (save that for personal giving), but to local organizations. Support the arts in our schools, give to homeless outreach. Look at what else the people we're serving need and help meet it. Instead of a direct tithe, we could allow charitable organizations to select a dish to sponsor for a time. We would advertise that profits from that menu item (and some smaller percentage of general profits) go to the organization. Again, how often this would rotate is something to do research on, but it seems like a good potential way to actively give back.

I also say we build as many partnerships with other local companies as we can. Again, buy our bread (and brunch pastries) from local bakers. Stock our library from a local bookstore (if they even exist). Do cross promotions, offering savings to customers who patron our friends and have them do the same -- assuming this is legal. Sometimes the law is stupid. We could also bring in live music if we actually have a usable space for it (I've been to too many bars that try to cram musicians into awkward performing spaces just to say they have live music) or showcase local artists, though that starts to border on the pretentious end of things.

Perhaps the most important thing, since this is a brewpub, after all, is the beer. Unfortunately, I know little about brewing, so I'd leave that to others, but it's worth pointing out the obvious. We need a variety of regular taps covering broad styles (something dark, something hoppy, something smooth, maybe a sour beer and/or a regular cider) and several seasonal taps. I haven't even been drinking beer for a year, so, again, I'm not the best person to trust here for details, but that's why I'm not in this alone.

I'm saving nearly $1000 a month right now as a "poor, underpaid" grad student. I'm serious enough about this that I'm going to start carefully looking at what I have and see what I can put into medium term investments for the next 5-10 years with the intent of using it to get this going once I've had time to work out a legitimate plan. I know that some of you seem serious about this, too. If you are, let me know. Maybe we can start talking in more detail. Maybe you can start saving as well and we can reduce the debt we'll incur getting this thing off the ground. A lot could happen and change before we get a shot, but, hey, at least we'll focus on something that makes us happy and improve our finances!

Wednesday, November 2, 2011

Not an Academic After All

It's time for that semi-annual post about my actual life. A lot of you know this already, but I figure it's good to share with the rest:

I'm not getting my PhD in computer science. I don't know if it's the program or the school or just me, but it's not working right now. I'm sick of having my work come home with me, I don't enjoy research, and the things I care about just aren't the things that computer scientists care about (which makes reading the garbage they call writing even harder). Beyond that, I think that Academia is broken beyond my ability to tolerate. The publication cycle discourages meaningful work and places emphasis on individual accomplishment over advancing societal goals. The amount of ego I've encountered here is astonishing, especially considering our inability to accomplish anything without collaboration.

I'm not entirely certain what comes next, but I've got a year to work it out, as I won't be done with my Masters coursework until next December. Most likely, I'll just enter industry for awhile and be a productive member of society, but there are other possibilities on the horizon. Whatever the case, I'm glad I came out to CO. It's been a fantastic 14 months so far in which I've made some wonderful friends, grown in ways I've long wanted to, and learned some surprising things about where my priorities lay. I'm glad that I've got more time to lean on this community as I figure out my next step.

Thursday, March 10, 2011

Lessons Slowly Learned

I struggle a lot with guilt. I try my best not to rationalize my decisions or hide from their consequences, but I'm not always good at doing this in a healthy way. I obsess over trying to be better, trying to be the person I'm supposed to be. I get hung up on penitence, unwilling to forgive myself until I'm convinced that all blemishes of my wrong-doing have been rectified (an impossible task).

Not very long ago, I spent upwards of two years of my life feeling such a persistent and crushing guilt over my inability to do this sufficiently that it nearly broke me. Then, one day last summer, when everything was at its apex and I was feeling especially horrible and worthless, somebody I respected gave me a hug and told me that I was a good man. I felt true absolution for the first time in my life and spent the next 48 hours spontaneously coming close to tears as I dealt with what that meant:

I cannot make myself better. On my own, I am incapable of being good. The same holds for you. What we can do is this singular good thing: take our focus off of ourselves and let God's Grace take root. Through that Grace, we are allowed to do all manner of good, but it is not something that can come when our concern rests on ourselves. Freedom from guilt and from fear comes only from ignoring our pride and our insecurities and being servants to one another. That this is something we can do no matter how sinful and hideous we may feel, as I apparently did that day last summer, is a testament to God's goodness and Love.

Love, like Grace, is not something we earn. It is something we are allowed and given in spite of ourselves. It is utterly inhuman, embracing faults and failings, freeing us to move beyond them instead of demanding retribution or justification. We are free to give it because it has been given to us, but it is not something that we can seek. The very idea of seeking Love is absurd. The act requires us to be so focused on ourselves that we necessarily lose our fleeting sight of what Love is.

I forget all of this, though. I allow my insecurities and my guilt to get the best of me and restore my focus to myself and my wants. I consistently fall into the trap of thinking that salvation and redemption are about me. That whatever good God allows me is for my sake and my glory rather than to glorify Him and His plan. I return to the belief that my ultimate goal is to be able to do good without Grace instead of being more immediately receptive to it. Hypocritically, I think that even though I can somehow find the ability to love my friends, fallen and fallible as they are, I am incapable of being loved unless I am something approaching perfect.

When this happens to any of us, all we are capable of spreading is hurt. As such, I have realized that, next time I allow myself to be overly caught up in my own desires and insecurities and, in doing so, bring stress and pain on those close to me, I will not to turn it into an issue of my own inadequacy. I will, instead, use it as a reminder that I cannot be so important to myself. That it is only in properly Loving that I can recognize the Love that God and others have for me.

Wednesday, March 2, 2011

Academia Redux

After my post on Academia a couple of weeks ago, frustrations compounded to the point that I was within inches of calling grad school quits after this semester. Fortunately, I've got level-headed people around to talk with, and I came to the conclusion that some of my apathy and irritation are likely springing from not having made a solid enough effort to find passion in my work.

Over the coming weeks, I'm going to make a much more serious effort to do the work I need to be doing for my research, and that is going to require processing a hell of a lot of information about problems in concurrent computing. Considering I process things almost entirely verbally, writing is a great outlet for this, but I see no reason to bore most of you with this stuff.

So, if you are a strange person who wants to know more about what I'm thinking about my research, I'm starting a new blog, much as I did with my senior project in undergrad. It can be found here, and updates should be commencing (late) tonight with an overview on what I feel to be the essential difficulties with using physical metaphors for shared memory systems and a quick look at where I'll be starting my reading.

Thursday, February 10, 2011

Academia

As much as I love music, there's a reason I never could have made a career out of it. Music, in both performance and consumption, is something I do for myself. It is therapeutic to me. I love doing it, but, except for rarely, it's not something I can do in order to meet the needs of others. Oftentimes my ability to perform and other people's desire to listen have overlapped positively, but if I felt like I was somehow beholden to others in my performance, I would grow resentful and lose what love I have for it.

Essentially the same thing holds true for computer science.

I adore designing systems to solve problems. I love analyzing these systems to try to improve them and make them do their job better and generalizing them to a wider variety of tasks...but it's not something I can readily make myself do, and it's certainly not something I can make myself do because somebody else is expecting something from me.

For some reason, when I signed up for grad school, I was under the delusion that academia was a place where I could go to find novel problems of interest to me and seek guidance from a field of experts as to where to start looking to solve them. I thought it would be self-directed. I thought it would be freeing.

Nope.

I get here, and I'm subjected to the frantic energy of brilliant but frazzled men who live and die not by the intrinsic value of their work, but by the whims and opinions of their colleagues. These are men who want me to pursue my own interests, but at their pace and in the manner that they see fit because they know that their careers hinge, in part, on my potential for brilliance.

I don't work that way, at least not in this discipline. I come under sudden pressure to satisfy the needs of others in this regard and I crumble. I fall into depression, and I fall even farther behind. I can't be effective if I'm spending as much time figuring out how to convince my advisors that I'm doing good work as I am actually working.

I'll give it the rest of the semester and probably the year after that -- long enough to get my Masters -- but I'm not sure this is going to happen without taking an unnecessary toll on me. At least not here. Mostly, I think I may need to find a career doing something I'm capable of and enjoy doing for others.

So, who wants to help me start a cafe/brew-pub? I'll manage the food part of the menu and take the day shift. In the evenings, I can hang out with and lead a double life as an eccentric inventor/writer/musician. It will be fun. I promise.

Monday, February 7, 2011

Goals for my 25th Year

Analyze things less.

Enjoy things more.

Stop focusing on expectations.

Man up and ask for help when I need it.

Quit being a pansy in my personal life.

Learn to rock out on bass.

Use bass rocking as an opportunity to improve knowledge of chord structure and progression so as to rock out on saxophone harder than ever (or at least as hard as when I was 18).

Go to more concerts.

Participate in dance parties instead of hiding from them.

Learn to at least tolerate beer (in moderation).

Learn to at least tolerate coffee (in excess as needed).

Prepare vegetarian meals at least thrice a week.

Get exercise beyond copious walking.

Lose another 25+ lbs (already down nearly 40 since graduation).

Develop a stronger rapport with the rest of my lab.

Find a way to twist my research into something I'm passionate about.

Submit at least one paper or article for publication.

Monday, November 22, 2010

Final GRFP Essays

After I posted a draft of my personal statement for critiquing, a couple of people asked me if I would post the end results of my essays for the NSF Graduate Research Fellowship Program. I figured I would oblige, at least on the two important essays (the personal statement and the plan of research). My advisor was quite happy with both, though I'm fairly certain that the lack of references in the research plan will show how little I know about current research in the area and hurt my chances. In any case, here they are:

Personal Statement

As I begin the journey towards earning my PhD, I cannot help but be grateful that my undergraduate education took place at a small, liberal arts college. I may not have had all of the resources or opportunities to participate in original research that would have been available at a major university, but I was able to thoroughly integrate myself into a small, successful department in a way that would not have been possible in any other setting. For five years, I took every opportunity I could to leave my mark on Calvin College's Computer Science department. As president of the departmental student organization, I strove to foster community and engage my classmates in extra-curricular programming and service projects. As a lab assistant, I gained insight into the essential difficulties of programming while helping first-year students take their first steps into computational thinking. As a student grader for courses in Abstract Data Types, Programming Languages, Operating Systems, Software Engineering, and High Performance Computing, I developed an ever-deepening appreciation for the intricacies of our field.

Perhaps most importantly, I developed relationships with classmates and alumni who had entered the industry in every conceivable environment. From locally owned Agile software shops to corporate IT departments, from Google to MySpace to RIM to Microsoft, I was able to get a strong sense of what the world on the other side looked like. Reflecting on these conversations in the light of my own internship experiences, I quickly came to the realization that, while I could perform well there, industry is not the right fit for my personality. Whereas products are of limited appeal to me, novel problems can keep me captivated endlessly. Further, I could not escape the fact that many of the most fulfilling experiences of my undergraduate career came when working with students. The obvious route appeared to be a PhD and a career in academia. However, I had come to view programmers as “my people”, and I knew that I would not be satisfied if I felt that I was sequestered away in the mythical ivory tower. I concluded that I needed to do research with the potential to positively impact the lives of my friends in the workforce. To my understanding, there is no better path to this goal than working to improve the most fundamental tools at the disposal of every programmer: programming languages.

We live in a rapidly digitizing world, and while plenty of us have not yet bought into the smart-phone revolution, I cannot believe that the day is far off when every individual will benefit from being able to write simple applications for whatever personal computing device they carry with them. I doubt this will happen if people need to use Objective C or Java or even Python to do so. As much as these are improvements over assembly language and FORTRAN, most people simply aren't willing to endure the rigors that even modern high level languages demand. We need to further improve the expressiveness and of our programming languages if want programming to spread to the general populace. More worrisome is the simple truth that applications developed by such para-programmers are likely to be riddled with gaping security vulnerabilities and other errors. We need analysis tools that can identify these problems, explain them in comprehensible language, and even suggest fixes, and we need development tools that integrate utilities of this sort so that developers have all of this information at their fingertips.

While such improvements would certainly help professional programmers, they have their own set of needs that we must meet. As technology advances, software engineers must increasingly look to multi-processor computing to provide users with the performance and convenience improvements that they expect and deserve. If the task of programming in modern languages is too complicated for the general public, then the task of writing concurrent applications is even worse. The most prevalent constructs for concurrency remain threads and processes, machine-level notions that do not naturally lend themselves to the way we design algorithms or programs. We need to find new ways of representing concurrency that will ease the task of utilizing the power at our disposal. These tasks – the improvement of language design and analysis tools – fall squarely on the shoulders of Programming Languages researchers, and by taking them on, we assist in the efforts of all other practitioners of our discipline, be they hobby hackers, software engineers, or our fellow academics.

When the time came to decide where I wanted to pursue these goals, it was easy to choose the University of Colorado at Boulder (CU). For one thing, the Programming Languages group at CU gave me an opportunity to get in near the ground level with a young, energetic, and talented group of professors who are eager to advance the school's reputation in the field. This would not have been enough on its own, but when the time came for me to visit campus, Professor Evan Chang and others echoed my strongly held sentiments that programming languages research ought to be an interdisciplinary affair with a strong eye towards the tenets of Human Computer Interaction. After all, a tool that is difficult to use, no matter how great its functionality, is an inferior tool. Fortunately, CU also provides me the opportunity to work with respected researchers in HCI and cognitive science, including Professor Clayton Lewis, who found one of his first passions within academia in programming language comprehensibility. Considering these prospects, CU provides a near ideal environment in which to build the connections and lay down the foundational work to achieve my goals.

Ultimately, though, I do not believe that we enter academia simply to achieve our own research goals. I do not believe that we seek to make new discoveries simply in order to gain renown or satisfy our own curiosity. I believe whole-heartedly that we work to push the state of the art so that the next generation can push it even further. I believe that our work remains incomplete unless we prepare the next generation to pick up where we left off and provide them with the necessary resources to forge ahead. This, along with my professed love of working with students, is why I intend to return to the liberal arts when the time comes. Through its Graduate Teacher Program and participation in the GK-12 initiative, CU will provide me with ample opportunity to improve my pedagogy. By participating in these programs, I hope to learn how to design curricula that will mitigate my students' struggles while helping them gain an appreciation for both the art of programming and the principles that govern it. I also hope to bring with me a number of opportunities that are all too often lacking for liberal arts students working in the sciences. In particular, I hope to develop opportunities for research both within my own institution and especially in collaboration with my peers at other universities. I believe that building bridges between the liberal arts and and the world of research can only be of benefit to both.

There's a lot of work to be done before I get to that point, and that all starts with having the freedom to work on these problems. While my professors are excited by my ideas and eager to see me forward, we do not currently have funding for the particular work I hope to do, and this is ambitious work. As a student, I have time to do the necessary legwork and build the relationships that will get this work started. More importantly, I have the time to fail on the way towards progress without it impacting my career. I firmly believe that, with the guidance available to me here, I can make real progress and create opportunities for others to join in my work. I just need the opportunity, an opportunity the GRFP can provide.



_______________

Developing New Abstractions for Concurrency
Jonathan Walz

As we all know, in order to keep pace with Moore's Law and to continue providing consumers with the regular performance improvements to which they have grown accustomed, microprocessors have shifted to a multi-core model. While it was only a few short years ago that desktop computers were first adopting dual-core processors, we have now reached a point where six-core chips are being used in servers. Even low-power, ultra-portable devices like netbooks and tablets are seeing the upgrade to dual-core. It will not be long before even our simplest consumer devices have more than one independent processing unit on board. In order to take advantage of this multi-core architecture, developers need to write programs that propagate their computation across multiple processes and threads of execution.

Unfortunately, concurrent programming is fraught with difficulties, especially the sort of shared memory, thread based parallelism that multi-core systems utilize. Deadlock, race conditions, and other problems plague any programmer trying to properly utilize the power at their disposal, and while numerous libraries and frameworks exist to simplify the problem, they require programmers to fundamentally alter the way in which they develop applications. It seems reasonable to me, however, that these issues with thread-based parallelism all stem from a more fundamental problem with threading: it does not match up with our natural understanding of concurrent behavior. It is startling to me that, for all of our advances in high level languages designed to allow us to express programs more naturally and coherently, we still expect programmers to implement concurrency through constructs as fundamentally machine-level as threads and processes. If we want to evolve computing to the point where programmers can quickly and intuitively write concurrent applications that are both efficient and safe, we need to provide new abstractions for concurrency that operate in a manner that is intuitive to human understanding.

This edict requires us to first understand how it is that humans understand concurrency, a troublesome proposition. Think, for a moment, about the simple nature of human existence. Millions of distinct cells, each filled with dozens of organelles, independently send messages back and forth, coordinating their growth and operation in order to make up the tissues and organs that compose our bodies. These organs function in concert to keep us moving and breathing and thinking with nary a lock or semaphore in sight. We manipulate our bodies in response to multiple simultaneous stimuli so naturally that it is only when we start to consider how we are doing so that we falter. Concurrency is simply a fundamental feature of the natural world.

How, then, do we go about trying to understand how people think about concurrency in environments where it needs to be imposed rather than simply being? Fortunately, University of Colorado at Boulder professors Clayton Lewis and Michael Eisenberg have already taken an interest in this question. As a part of an Educational Game Design course taught by Dr. Lewis, several students have ventured to design games meant to help individuals think about concurrency. While results from these early iterations have been limited, there is hope that continuing efforts on this front will start to shed light on the topic.

Doctors Lewis and Eisenberg may be the only researchers at CU who are actively thinking about how we understand concurrency, but they are certainly not the only resource at my disposal. From traditional vanguards of numerical analysis and high performance computing to the emerging needs of software engineering researchers to Dr. Nikolaus Correl's work with robot swarms, concurrency is everywhere at CU. This will provide me a high level overview of how concurrency is viewed throughout the entire spectrum of the discipline and help me to see if there is any sort of unified model that can be applied.

Having access to this new level of expertise on the topic of concurrency has already allowed me to begin a much improved review of the literature on the subject compared to my earlier efforts. While I am only in the beginning phases of learning what has already been done, I am still feeling emboldened and hope to revisit my past research and expand on my efforts. I still believe that a message passing model for concurrency has great potential, but it has been stymied by the fact that we have needed to make the messaging explicit. When we work in Object Oriented programming, we already cause objects to send messages between one another. By utilizing shared memory access in new and well controlled ways, I firmly believe that we can remove or reduce the need for synchronization in these exchanges and gain concurrency and speedup as a result. Most important, such strategies could have a very limited impact on existing programming practices.

I will begin delving back into this topic with the same approach I took in my earlier research efforts: by using metaprogramming techniques to create this functionality in an existing language. Due to its numerous hook methods, reflectivity, and duck typing, Ruby remains an ideal candidate for this work. If I am successful in this endeavor, I hope to establish partnerships with researchers in other areas that use concurrency – especially Software Engineering – to test the usability and performance potential of such a system in real-world uses. If I see success in this area, I would like to continue on and begin work developing a language that natively supports this functionality or even try to add it directly to common runtime environments.

While I am engaged in this work, I also plan to participate in the GK-12 initiative where I can work with students who have had limited or no previous exposure to computing. This could be an ideal environment for gaining a better understanding of how people learn to think about concurrency as well as the best ways to teach it. Of those students who choose to pursue Computer Science as a profession, few will likely ever have to program a system with only a single processing unit. It is only fair that they be prepared for the tasks ahead of them.

The problem of how we understand and represent concurrency in computation is an increasingly important one. The more angles from which we can attack it, the better. I do not yet claim to be an expert on all of the research being done in the area, but the approach I suggest is not one that I or others with whom I have talked have heard of. It may not turn out to be the cure to our problems, but it is another point from which to start and from which to gather new information to help move us along in this new era of computing.

Thursday, September 16, 2010

Boulder Update

The cool kids are writing "settling into grad school" blog posts, so I figure I might as well join the club:

The living situation is solid. Living with 5 other people isn't that different from living with 3, and when everybody has their own rooms, it's actually a lot easier. The guys are all fairly chill and I don't see too much potential for personality clashing, which is a huge relief. I don't have an abundance in common with anybody, but that's where my diverse knowledge and interest base pays off. I've had plenty of good times chilling and getting to know the roommates, either procrastinating around the house or out at the bars. I'm actually pretty excited that we've got a "regular" bar nearby in the form of Southern Sun Pub and Brewery, which is less than a 10 minute walk.

My only complaint lies in the kitchen. We've got too much stuff too poorly organized, and most of it is of pretty crappy quality. Trying to keep all of my tools straight and in a place where I can find it is an exercise in futility. Fortunately, I have a knife magnet now which houses a handful of tools that I need regularly, and I've had enough money to slowly pick up the few things we need (still need to get a couple of reasonably sized skillets, though). More irksome, for whatever reason, nobody seems particularly interested in eating what I'm making if they're being asked to chip in. It makes it hard to make not only more elaborate meals, but also simple things like soup unless I want to be eating it for days.

Boulder itself is pretty awesome. After a lifetime in the Midwest, dry heat is a wonder to behold. Being able to walk two miles in 90 degree weather and barely start to sweat is amazing. There's plenty to do in town, though my previous sciatica issues have made me hesitant to do a whole lot of hiking or any climbing, no matter how much the housemates want me to. The house is in a great location. Besides Southern Sun, we're also withing easy walking distance of both groceries (~.5 miles) and school (~2 miles) as well as several decent restaurants. We've also got nearby bus stops for the inevitable day when I can't walk to school.

Classes are good. I started out not particularly caring about Program Analysis, but the more I think about some of the work I'm interested in -- particularly abstractions for concurrency -- the more I realize how essential verification is going to be if I want people to take my research seriously. It will probably get rough once we get into project territory, but I'll be grateful for it down the road. User Centered Design started out slow but is getting more interesting. We're currently talking a lot about designing for accessibility to those with disabilities, which isn't anything I've thought about a lot before. The professor is also very interested in programming language comprehensibility and is excited to have a student in the class who wants to do some work in that area.

Research is less good. It turns out that my advisors and the group we're working with from CSU got their wires crossed when first discussing the project. When I came in, they thought we were going to be verifying policies for on-the-fly reconfiguration of smart power grids to ensure constant energy delivery and writing a DSL to describe these topology changes. It turns out that they just want us to optimize an algorithm for doing cost-benefit analysis on running feeder lines between sections of a smart grid. This isn't remotely in the realm of Programming Languages/Verification research, and it's not even kind of a year-long problem, but the first step is to do what they want from us. As a result, I'm banging my head against crazy statistical algorithms and MATLAB. This is just making me more convicted that I need to take some time to generate excitement about the work I want to do and possibly start up on reviving some of my old senior research project code.

Finally, I'm surprised by how grateful I've been for the InterVarsity Graduate Christian Fellowship group. Usually hearing the word "Evangelical" is enough to make me suspicious, but these are the sorts of evangelicals who would come to school some place like Boulder. I haven't had to deal with a lot of judgmental, conservative "personal relationship with Jesus" BS, which is a huge relief. My understanding of Christianity definitely differs from that of most of the other people, but it's good for me to be made to read and think about the Bible once or twice a week. It's also just a good social outlet. It's easy to call people up to go down to Pearl Street or just to sit and visit after small group on Wednesdays (which, fortunately, meets at our house). Last week we had about 20 people over for a game night that lasted a good seven hours (I highly recommend both Bang!, which is like a more elaborate Mafia, and Small World, which reminds me of a streamlined History of the World in many ways). Tonight I'm heading out to a Nepalese restaurant with some folks. Should be good times.

Anyway, I'm feeling pretty settled at this point and life is, as usual, mostly good. Glad to be where I am, even if I only have the slightest idea of where I'm going.

Saturday, August 7, 2010

Eclectic Update

I'm feeling really bored right now, so I'm going to pretend I'm a 14-year-old girl from 2004 and treat my blog like a diary for a night, just for shits and giggles. No single topic, just a bunch of loosely connected thoughts and facts about my life of late. If people actually like this, maybe I'll do it semi-regularly.

So, the Firefly stuff sort of imploded. Didn't realize how little I'd want to sit and watch TV, even Firefly, during the busier parts of my summer. I have not had a weekend to myself since June 11 and won't have one until just before classes start on the 23rd. I have either been elsewhere or had my grandparents in town or, in the case of this weekend, been packing any time a weekend rolled around for the last eight weeks. That might seem irrelevant during the summer, but when you consider the fact that my parents tend to forget that I am an adult and lay claim to most of my weekday evenings, it has added up to me having precious little time to enjoy this summer. In fact, the two best days I've had at home in my two and a half month stay were the two that I spent downtown on Jury duty. I got to explore and meet people and catch lawyers off guard and sit and read in peace. It was actually pretty awesome.

Speaking of reading, I've done a lot of that this summer. I mentioned that I finally got around to Pride and Prejudice in my (intentionally) somewhat controversial post on Mr. Darcy awhile back and wrote about my thoughts upon re-reading Harry Potter and the Deathly Hallows. Beyond those two, I also read or re-read: Neil Gaiman's Neverwhere which, while not my favorite of his novels, is likely his most accessible; Boneshaker, a very solid first entry into Steampunk by Cherie Priest; Mossflower, easily my favorite of the Redwall series; and the first five books in Jim Butcher's Codex Alera series.

I wrote a little bit about the first book in this series and my thoughts on Fantasy as a whole when I started into it last summer. I'm happy to say that I have, by and large, quite enjoyed the books. They aren't without their faults. My biggest issue at first was that the first two books and more clung so closely to genre norms that I often saw Startling Revelations coming hundreds of pages in advance. During the third book, though, Butcher proves that all of the tropes were not a framework but mere scaffolding, and the series begins to move based on the considerable merits of its own setting and politics. More consistent problems, for me, include an occasional tendency towards the highly visual writing that makes Fantasy a difficult genre for me and Butcher's tendency to delve into unnecessary repetition of basic facts to make sure his audience is following along (how many times in a book do we need to be reminded of the importance of body language to the Canim?). By and large, though, Butcher keeps the pace flowing rapidly and the books are a solid read for fans, or lapsed fans, of Fantasy.

All of this reading got me to finally start working a little bit on a writing project I've been muddling over for years. Unfortunately I'm not talking about The Littlest Hobo, which tends to just make me go to very, very dark places. I've mostly got the loose details of a setting and a protagonist in place and am still trying to find the plot. I've got a couple of pages of establishing material written which I may post in the not too distant future. If anybody else would like to read about a "professional" medical test subject's experiences in a corporate dystopia, let me know.

I've been watching HIMYM with my mom lately (which is both weird and perfectly natural) and I've noticed that none of the characters beyond Barney, and, to a lesser extent, Robin, are terribly consistently defined in terms of personality. Ted can be perfectly charming and respectful in one episode and nearly as big a sleaze as Barney in the next; Marshall can't decide if he's the straigh-man or the goofball; and Lilly swaps between erudite and childlike at a whim. Honestly, though, I think that's part of why the series works and an important distinction between it and Friends, to which it will probably always be compared. None of us fills exactly one role in our social groups. We put on and take off hats as the situation demands it. It's nice to see characters who are similarly varied, even if the end result is sometimes more like season 5 and less like season 4.

Been cooking lots of Mexican/Tex-Mex lately. It's kind of like when I was first learning to cook and all I could really make was stir-fry and chili. My family was so blown away that they kept on asking me to make that same thing. Now I keep on getting talked into making tacos, guacamole, and salsa for people. As much as I love it, I'm hoping to move on to something new soon. Lots of ideas for soup recipes, especially ones that involve lentils and kale (though not together...yet). Here's hoping that the occasional weirdness of cooking at altitude won't kill that plan.

Not a lot of videogame action this summer. The same thing that killed the Firefly coverage killed that. Did finally cave in and pick up Jade Empire on Xbox Originals, though. I was...a bit disappointed. After reading IGN's 10.0 review, I was expecting something a little more. Part of the problem is that silent protagonists don't work as an emotional repository when the rest of the world talks. Bioware obviously realized this by the time they were making Mass Effect, and it's amazing how taking a certain amount of control away from the player -- giving the protagonist his/her own voice and words -- enhances attachment and even ownership. Bioware is apparently going a step further even in the Dragon Age sequel, allowing the user to select only the tone of the response, not even giving any sort of textual summary at the time of choosing. I'm excited to see how that will work out.

That's it, I guess. Hopefully everybody found something of interest.

Monday, July 5, 2010

About Me

Lately, I've been writing people from all across the Internets, notably those who are physically located in Boulder, CO, about considering me as a roommate. Since I am stuck on the Internets, unable to manifest myself in Boulder to meet people or see properties, I have been getting a lot of practice introducing and describing myself to people. This afternoon, I had the opportunity to write the longest such explanation yet while starting correspondence with a group of five guys from I've never met before whom I was put in touch with through InterVarsity and who might be willing to let me rent a house with them. I'm not even remotely enthused by the possibility right now, but I've got to take what I can get. At the very least, I think the email introduction a pretty good one -- at the very least, it's thorough (most are much, much more brief). Let's see how many of you agree and what you think I left out:

"...
Mostly, though, I'd like to know a bit more about all of you along with how and how well you know each other. I can get along with just about anybody, but I'm very much an introvert and it can take me awhile to figure out where I fit into established group dynamics and to feel comfortable. Living with 5 guys I don't know from Adam who I don't readily identify with and who are already pretty close could easily result in me semi-consciously cutting myself off. I don't particularly feel like doing that to myself or to you.

I can start by sharing a bit (or perhaps a lot) about myself: I'm an incoming PhD student in Computer Science. I don't fit super well into whatever stereotype that may cause you to imagine, but I am definitely a bit of a nerd. I like boardgames and videogames, I use Linux, I read and (usually) get xkcd , and I'm pretty willing to get excited and engage in debate about relatively meaningless things so long as nobody is being terribly serious about it. I even minored in Japanese. However, I don't obsess over anime, comic books, or RPGs (except occasionally Mass Effect and Chrono Trigger <_<); I get along perfectly well with people who aren't huge nerds; and I even enjoy watching and occasionally playing sports (especially my Twins and Vikings).

I really like music. If Calvin College, where I did my undergrad, had a better program, I would have pursued a double major with it. I sing and play saxophone pretty well and hope to do a bit of both at whatever church I wind up attending. A lot of what I listen to for pleasure is relatively indie (TV on the Radio, DeVotchKa, Explosions in the Sky), but I also love Jazz (Coltrane, Stan Getz), classic rock (Zeppelin, The Who), "classical" (Brahms, Mozart, Stravinsky) and even good pop music on occasion (The Killers, old Weezer). I will never proclaim that I hate an entire genre of music, as so many people do with hip-hop and/or country, even if I'm not terribly fond of the most prominent examples of those genres, as is the case with hip-hop and country. As a result of hanging out with a lot of media production people, I'm also really into movies and relish hanging out and binging on TV on DVD. My collection isn't huge, but I like to think it's of pretty good quality. If you have an appreciation for Arrested Development, Pushing Daises, Freaks and Geeks, or Buffy the Vampire Slayer...we'll probably get along.

In terms of things that more directly impact living arrangements, I have a fellowship, so paying my share of rent and utils should never be a problem. I sometimes let my own room get cluttered with laundry or papers, but I'm pretty good at keeping common areas clean so long as other people make an attempt to do so as well. If you're a bunch of slobs, I'll probably join right along out of spite. I like to cook, and I'm very happy to cook for others so long as they cover their share of the cost. I'm not terribly fond of passive-aggressive behavior, as I tend to respond in kind, which isn't something I like doing. I much prefer that issues be addressed directly and considerately. I'm usually pretty good at acknowledging when I'm in the wrong, and it takes a hell of a lot to make me hold a grudge. About the only thing you can do that will immediately give rise to dislike from me is display intolerance towards another person's race, sexuality, politics, religion, or whatever else (for the record, I am a white, heterosexual, liberal Christian).

I don't mind having people over, and would like to have people over myself for pot-lucks or grill outs or just to hang out. I don't want to live in a huge party house, though, and I tend to revert to people watching in crowds of larger than 10-15, which weirds some people out. I don't drink or smoke and would rather not live with smokers (certainly no 420), but I don't have any problem with others drinking so long as no one person is getting absolutely trashed five nights a week.

Finally, as long as you seem to know one another at least in part through InterVarsity, I may as well also comment that I'm Catholic. Not a "The Pope is always right and Protestants are heathens" Catholic, but an "I appreciate the bulk of the theology, love the level of social activism, and semi-reluctantly understand the value of the hierarchy and thus see no real cause to leave the Church" Catholic. I thoroughly enjoy discussing theology academically, but I'm not huge into talking about my faith or my "walk with Jesus". I can explain in a couple of easy sentences why I'm a Christian if I'm asked, and that's about the deepest I like to go on the subject under all but the most extreme of circumstances.
..."

huh? huh?

Saturday, September 5, 2009

Life update

I don't blog about my life much, but I'm now all moved in to a new apartment with brand new roommates, so I figure it's worth talking about what's up.

Being a fifth year senior is definitely weird already and classes haven't even started yet. Seeing friends looking for work or getting married or settling down in new places is hard. More than that, though, it really feels like this isn't Calvin as I know it, though. There are so many changes on campus - new and departed faculty, building projects - to accompany my missing friends that it's almost like the school is taunting me for staying beyond my welcome. I know I made this choice almost a year and a half ago and that this surrealness of my current position isn't any sort of punishment for failing to grow up or achieve to some desired level...but it's hard all the same.

The new living arrangements will be good, but very different from what I've experienced before. I'm used to living with fairly meek individuals, people who give me room to expand my role and my personality and act out a bit in order to liven things up. The social dynamics of my three roommates, though, are established well enough that, instead of expanding to fill in gaps, I'm fighting to figure out how I fit in. So far, I feel like I'm the guy who cooks and plays videogames. Not terribly glamorous. More than that, this is much more of a typical guy apartment. A bit more crudeness, a bit more testosterone than I'm used to living in. It's an environment I can survive in just fine, but I'm definitely going to need more escape from the heightened level of subliminal conflict and competition. Also, they actually watch sports here, which will be fun from time to time, but it's definitely going to be odd seeing the TV in heavy use for something other than games or binging on TV on DVD.

One nice thing about this being a more typical guy apartment, though, is that I'll also have more chances to expand my cooking. Cooking for one is a pain in the butt, but cooking for four doesn't feel nearly so bad. The guys fastidiously track receipts and what was bought any time anybody goes to the store and will be paying for their share instead of me always treating when I make larger meals (which I didn't mind at all when I only did it once in awhile). In the last week, I've already tried my hand at a few new things without even using any recipes (chicken soup, salsa) that have turned out pretty well. I'm looking forward to doing some more, and especially cooking with wine/alcohol. (beer brats at home! =D)

As far as classes go, things shouldn't be too bad. I've got Physics, which should be a breeze considering I've basically done the work before and I'm living with 2 engineers. I'll probably need to break down and buy a new calculator, though. My 8-year-old TI-86 now has as many dead lines of pixels as it has working ones. That's an unexpected expense that I keep on forgetting to incorporate in my budget planning. Lit and Theology shouldn't be too bad. My (comparatively) slow reading speed will probably make the work a bit of a pain time-wise, but I still write well enough and I like the fields. I'm also taking Intro to Logic, a 100-level Philosophy course, to keep myself full time. Considering all of my experience with deductive logic, the first part of the course, at least, shouldn't pose any difficulties. I can't imagine the inductive logic being much harder (especially since, again, it's an intro level Philosophy course).

In the mean time, I've also got to start getting down to business with grad school research and applications. My intentions to continue work on my senior project in hopes of presenting on it somewhere kind of fell apart over the summer as communication with my advisor dropped off, so I won't be looking quite as impressive as I'd hoped. The list right now isn't terrible long:
Carnegie Mellon (the ideal school, probably won't get in)
University of Michigan
Virginia Tech
University of Colorado at Boulder (where I'm not as likely to go, but I'm hoping they'll pay for me to come visit so I can see some friends for free)

I figure I've got a decent shot at the last three, but I want to expand my options a bit, anyway. Also, I'm looking chiefly at the HCI/Cognitive Science programs at all of these schools, and I'd like to find schools doing cool stuff with programming languages research. In any case, I need to get started researching the profs at these schools and getting my materials together. Having Tuesdays and Thursdays completely free should help a lot, assuming I can actually keep myself on task.

Fortunately, the novelty of my new X-Box 360 is starting to wear off. I've completed Mass Effect and Shadow Complex (two of the best games I've played in recent years), and I'm not looking at buying anything else that will be a major time sink for a good while. The only other games I have are a few multi-player ones I can play with my roommates or online with friends back home. If any of you play Castle Crashers, BlazBlue, or Team Fortress 2, let me know.

That's about it, I guess. I'll probably have some more "profound" thoughts to share in the not too distant future. At the very least there will be a summer movie round up.

Wednesday, October 17, 2007

This is what I do...

So, I'd absolutely love to put a bunch of effort into some long writeup relating to a bunch of crap that only I'd care about, but...I'm just too busy. That said, while I'm not huge into putting personal information about the details of my life online, I'm going to go through and let you all know what I'm doing, anyway. Mostly, I'm busy with classes, so I guess I'll start by describing the basics of what that entails.

Advanced Conversational Japanese is a lot more intense than the first two years were. After only speaking Japanese intermittently, mostly for the purpose of practicing grammar patterns, suddenly being dropped in an environment where the professor only speaks English when absolutely necessary is a bit of a shift. Also, it seems that, as a class, our handwriting is terrible. We regularly receive packets of sheets for practicing Katakana and Hiraganna of the variety used by small Japanese children. I'm managing well, though. I haven't scored below a 90 on any of our first three tests and I'm exceedingly well prepared for the test I have tomorrow; mostly, though, I'm just reminded on regular basis that I love this language.

Intro to Psych is...meh. It's an interesting enough class, it's not terribly difficult, and it meets a graduation requirement. There's really nothing bad about it, and I'm regularly entertained by my prof., but I feel like it's time that could be spent just as well elsewhere.

Intro to Public Speaking is a joke. Having been involved with theater since I was 11, I'm more comfortable in front of an audience and have a stronger public speaking voice already than 90% of the class. It will be worthwhile to learn to speak better from an outline and to be more physically involved in my speaking, but we haven't talked about any of that, and I doubt we will (in 6 weeks, we've only actually talked about speaking skills twice). Honestly, the only thing at all engaging about the class is going to be speech preparation. This weekend, I'll be hitting the books and preparing an informative speech about the Catholic theology of Intercessory Prayer (to the Saints) and Purgatory and how these beliefs (and the Protestant confusion relating to them) stem from the differing concepts of the Communion of Saints between Catholicism and Protestantism. When time for a persuasive speech comes about, I'll be tackling the much lighter subject of Graphic Novels and why more people should read them.

Computer Science stuff comes next. I'll try and make it as simple as I can for the lay folk in the community.

High Performance Computing is a class I'm incredibly glad I'm taking. Learning how to write code in parallel has been interesting, and once we get to less "embarrassingly parallel" problems, things only promise to get more interesting. So far, we haven't done much beyond domain decomposition of simple problems and being reminded of the intense performance cost of Object Oriented code, but as we approach more fine grained parallel problems, it will become easier to see the attitudes we're going to need to adopt to make more consumer level programs function in parallel.

...Speaking of consumer applications, Software Engineering has also been a real eye opener already. I'm working as a member of a team of 5 to produce a single product by the end of the semester, and it's definitely a more exciting feeling tackling a larger project and starting to understand the work that needs to be done. The project itself takes a bit of work to describe and make it sound as cool as it is, so I'm not going to try now. Once I finish a final revision of the vision statement as well as our supplemental specification, I may post them here. In any case, the most important lesson I've learned (or am learning) so far is that I can rely on other people in group projects, it just requires effective communication of responsibilities and a willingness to trust. I've donned the role of chief program architect for now (once we're building the database interaction model, I'll suddenly become less useful), so I've done a lot more work than the rest of the team at this point, but they all want to be right there and understand how this is being put together so that they can do whatever they do best to help it along, which is awesome.

Anyway, I'm typing this because I really don't want to work on my High Performance Computing code right now. I much prefer C++ to C, but taking incredibly procedural code and making it OO just isn't my idea of fun (right now =P). Unfortunately, we have a strict schedule of access times on the cluster, so I need to get this done if I want to run my benchmarks tomorrow and hand it in on time. So...have fun, all, and thanks for reading.

Wednesday, June 27, 2007

Work

So, I'm at work right now. My boss is out, as he usually is, and I've got no real projects to work on until he gets back, so I may as well let you kiddies know what it is I'm doing this summer.

I'm working as an IT intern for Trustar Federal Credit Union in glorious Int'l Falls, MN. Because this is a small town with a stagnating economy and shrinking population, nobody that needed computer work actually had the money to pay me themselves. As such, I'm actually working here through the workforce center, and instead of making $9-10 easily for as many hours as they need me, I get the privilege of making minimum wage for a maximum of 32 hours a week.

The main IT issues they have here deal with a piece of software that they run pretty much the whole organization through and that only two people in the office really understand at all (fortunately, one of these two people is my boss). Because he's always running around fixing people's problems, I've had no time to learn a damn thing about this service and have been pretty much relegated to sorting through old paper work and running the odd wire through dropped ceilings (along with whatever grunt work anybody else in the building needs; I am an intern after all).

Another thing that's bad is the paperwork, at least in the IT department. We offer dial-up internet access and email to credit union members, and I spent a large chunk of my first two weeks trying to sort through that paper work to see what was out of date and make sure everything was together. It wasn't uncommon for me to find a member's records in two year increments in three or four different places, meaning I had to meticulously comb through them all to compare dates, find out if they were still connected, determine if some of the unowned accounts belonged to them during past periods of connection, and then clean out the superfluous, supposedly unused accounts. Any time I did this however, I got calls the next day from 70-year-olds who had signed papers to permanently disconnect a year ago wondering why they didn't have internet access!

That's pretty much over with, now. I gave my boss, Keith, the list of out of date accounts and owners and told him that the final calls were up to him. Now I've got no projects, so I'm using work time to do things like, well, this, and to start learning Visual Basic under the premise that I need time to write up some completely unnecessary VBA Macros for some Excel spreadsheets to help saving the accounting folks all of five minutes every few days. I guess I shouldn't complain, though. I mean, I'm getting paid right now, and nobody knows the difference (yet).

edit: I removed my complaints about the security because I am a bit paranoid about the world of the web. Suffice it to say, it's terrible.