Posts from January 2015
-
People do certain things because that's how they were brought up. Communities raise children to act a certain way and to value certain behaviors because the communities that survived are the ones that shared rituals and values. Having an undercurrent of common beliefs is essential to extended survival because it cuts out a lot of the bookkeeping discussion that is generated by diverse communities.
Kohlberg's stages of moral development are useful for understanding this next bit. In short, Kohlberg sees humans as having six possible perspectives on morality, in increasing order:
- Selfish, egocentric, only punishment-avoiding: For instance: autistic adults; toddlers
- Understand that others are people, too; look for self-interest/quid-pro-quo: Sociopaths; children
- Seek conformity; look for reputation as a "good person": Religious hypocrites; pre-teens
- Obey laws: Authoritarians; most adults
- Recognize that laws are social contracts: Democratic governments (ideally); political scientists?
- Seek and apply universal moral principles: Philosophers?
(I would hypothesize a level above this last, wherein you would recognize that other intelligences in the universe could have a different set of universal morals, but it's hard to discuss that without knowing other real intelligences, and not just sci-fi suppositions.)
(Also note, that Kohlberg splits the stages of morality into three tiers of two perspectives each.)
In a society composed of mostly people in the second of the three tiers (phases 3 and 4), having standing ethical and moral frameworks is essential. In fact, given that children are born at phase 1, there will always have to be at least some bootstrapping ethical framework for them to scaffold off of if we ever expect a majority of people to hit the third tier. (It is questionable whether having a majority of people at the third tier is even possible.)
In general, the people around you are going to be legalistic: what is right is what is comfortable, what I've been trained to do, and what my in-group sees as right. There will be norms they follow only because of habit, like praying even when they don't get anything out of it, and saying to others that prayer helps them. And there will be norms that they follow because they see them as "right", such as not stealing or being deferential to others; seeing the opposite of these things happen will get under their skin.
In tight in-groups that have persisted through the post-industrial era of youth mobility, these norms generally persist, and they're innocuous as long as members of out-groups don't infringe on their territory. Generally, though, the 100-year old WASP village isn't going to be able to incorporate a huge influx of Pakistani Muslims, even if the latter group at the core has many of the same values viz. the importance of family, religiosity, etc.
Tier 3 humans would recognize pragmatic practices that enable effective social bonding, which are useful to having peaceful social transactions. Having a certain number of tier 3s in a diverse region can enable the free-flow of people and transactions through the area, even if most individuals remain in tier 2. I can practice limited sharia law in your neighborhood, as long as, when I violate the larger social norms, I am able to defer to the overall social context, even if I am not capable of level five thinking.
In terms of "burning up" morality, or "morality porn", I believe that the group most susceptible to these effects are those at level 3: they want to be known as a "good person", and not necessarily to do good, so they just need to hit a certain level of expenditure and/or public charity to satisfy themselves: "And when you pray, do not be like the hypocrites, for they love to pray standing in the synagogues and on the street corners to be seen by others."
Overall, then, there is a place for ritual: bonding, in-out group designation (in light of this, one should open one's dinner table to out-neighbors in order to lower those barriers), and the development of morality in children and the sustenance of moral actions in the under-developed. But overall, each person should strive to at least understand the role of the social contract, and dispose of those rituals and groupings that cause friction in practical life.
-
I never quite accomplish what I wish to. There is a long list of stuff in my head that I can never seem to get out. I know this doesn't make me unique in any way, but so much of my identity is tied up in the belief that I have a lot to offer the world, and I just need to get it out, so it's frustrating to constantly hit the wall.
A core problem seems to hit when I regress. I start down what should be a productive train of thought, and find myself thinking about bigger and bigger ideas, or at least more and more abstract ones, until I get to a point that I'm trying to solve all the problems of the world at once.
People don't really care about big ideas if they can't see a solution. The same reaction I give students when they tell me they know the material, but they just can't solve the exercises, is what others rightfully give me. In the meantime, I recognize that doing is more important to me than thinking, at least from an emotional perspective, but I also find myself questioning the merit of the things I do when I simply act. When actions don't fit into a larger context, they don't seem to make me better or lead to anything. This is how I believe people waste their lives.
-
When students have to make a time/effort tradeoff when swamped with work, not all the work that the professor desires students to complete will be done. Students are still capable of achieving high marks in the absence of 100% commitment, which indicates that there's a disconnect between the work assigned and the demands of a given quantum of instruction.
Matching these would be a challenge, but consider this:
- Instructors identify the highest-level skills that students who are successful in the class should possess
- Instructors make a hierarchy of skills that students would have to progress through in order to develop and demonstrate skills, and connect them together
- Students are given high-level skills to practice, and if they can't manage them, are given easier and more fundamental skills until they are making progress at their experience level
-
To begin, it helps to understand that things get under my skin easily. I was running Word 2004 on a recent Intel Mac, and spent two hours toggling options and configuring my environment to try to get rid of a 50 ms lag in characters appearing on screen. (I never was able to, and ended up using Word 2010 on a PC to do that piece of work.) I argued with a guy for three hours about the use of a particular piece of iconography and the role of consistency in UI design, because a visual confusion was causing me thirty seconds of inconvenience per day.
So basically, I'm an asshole (to many of you) or particular ("OCD") about a couple things, which can be roughly boiled down to "responsiveness" and "flow". I'll upgrade my phone to reduce typing lag, I won't use a device that's too old if fast tasks aren't fast—app switching, typing, mouse input—and I hate chrome, animation, and interfaces that reduce application interaction speed. This leads into flow: if a button isn't clear after using it five times, or I mis-hit a menu because my understanding of an app is different from the designers' intent, I get increasingly frustrated. Adobe Reader using the Windows XP file dialog for saving/opening files (as opposed to the Windows 7 version) is one of my pet peeves. Thus, the main reason I prefer OS X is that there are so few exceptions: Apple's "update or get left behind" dictum to software developers is, in my mind, a virtue, because when everything is up-to-date everything behaves predictably and I can flow more easily.
-
"Never dine alone." There's a purpose to this: if you're dining, you should seek to share food with someone whose social bonds and career trajectory might benefit you down the road, or with someone you could mentor in some way. In all aspects, you should seek to dine (that is, eat out) with people who can enrich your life, and who can benefit from or provide benefit to you through the social bonds created by the ancient rites of breaking bread together.
Jesus said:
"You are the light of the world. A city set on a hill cannot be hidden; nor does anyone light a lamp and put it under a basket, but on the lampstand, and it gives light to all who are in the house. Let your light shine before men in such a way that they may see your good works, and glorify your Father who is in heaven."
Genius works the same way. Somewhere in the universe is a creature of an alien species that knows the answers to the problem you're working on, but just as his knowledge does you no good in your life, knowledge you don't share with others does them no good in their lives. People work better in messy offices, where ideas can cross-pollinate and you can (hopefully) find someone who speaks a dialect of the language of your problem, and skip out on a lot of the infrastructure that would accompany writing.
In general, a good intellectual peer allows you to do what I've heard referred to as "skip talk": you skip a lot of words and ideas because your companion indicates, using non-verbal and sub-verbal cues that they see where you're going because they've already been there. So you quickly get to the meat of the discussion, and gain a lot of ground there because that person can help you recognize which ideas are worth pursuing.
Once you create something, though, you should polish it to a point that someone who doesn't know you and doesn't necessarily like you can understand it. This is the work that happens alone, for the most part, and that which most resembles "work". The endless polishing, cleaning up of ambiguities, and presentation of data in an understandable format for all to see takes a lot of time, but this is where true genius lives.
-
Well, we officially don't have to blog, do progress reports, or (presumably) even show up at 9 am anymore.<
Just try to stop me.
Interesting thing of the day: the new class arrived. Did we look so adorable and naive on our first day? It really does feel like basic in a lot of ways, again notably in the way that a person (or group) can so markedly change in a few short weeks. It feels like forever ago that I was writing nonsense ruby code, like everything is a
for
loop! Huzzah!, and now I get mildly angry every time I have to write afor
loop in JS.Another interesting thing I noticed today: I just don't give a damn about reddit. It's been a while now that I haven't found it so interesting, but today there was absolutely. nothing. I cared about. I guess I've transitioned, and it's now time to start reading HN regularly?
There's so many things I could be doing now that it can be hard to know where to start. I've been doing meta-work: getting my hosting set up (it turns out Dreamhost has a lot of the same restrictions as Heroku, viz. spinning down server instances if they haven't been accessed in a while, so I guess I will have to get a pingdom account regardless), getting some documents together, etc. Planning is a big thing; I think I'm going to have to live by a routine over the next three weeks+, moreso than even before, which means identifying overarching tasks that deserve attention and then tending to them at regimented times.
One thing that was made abundantly clear last week is that I can't keep not working out. I have the damn bike setup right here! But… I have no motivation to deal with it in the morning, and that's no excuse at all, especially with a) how much my back hurts by the end of the evening and b) how bad for your health sitting, in any shape, is supposed to be.
A fun part of today: I pulled my resume from dropbox, then rendered it in HTML + CSS, and explored a lot of sub-topics that had tickled my fancy during this course that I hadn't yet had time to look into. I have a whole list of things that I've learned, and a whole list of things that I could spend time learning (
pandoc
anyone?), but what I learned today is that flexible styling knocks the pants off document-based styling, as in Word or InDesign. I'm sure they have their strengths, but when all you have is JavaScript, every problem looks like it calls for selectors.One funny though from today: there are so many different file formats for presenting structured text. I wonder if it would be possible to extract a universal grammar for them all.
Tonight calls for more meta-planning; I am going to try to slice my day up into hour-long chunks and see about tending to many things each day. We're supposed to have applied to jobs by next Monday, preferably earlier, and I know I have my work cut out for me.
-
Well, not much to say… Today was presentation day, and I spent most of the day bug chasing, trying to get core features to work the way they needed to work and not the broken ways they had been. I feel like Javascript has more instances of dodgy edge behavior than any other language that I've worked in…
Afterward, my peers and I spent a good amount of time talking about previous classes' projects. We thought, two weeks ago, that other people's projects weren't very good, but we came out today understanding just how hard it is to produce production-quality code in a short time period.
I pretty much faceplanted on the presentation portion of the day. I want to go back to this project, to finish it up, but I know it can take as much time as I'm willing to give it over the next three weeks, or I can find other projects to also work on… time management will become even more important over this last period. Thankfully, we don't have to go in until 10:30 Monday, and this weekend will be a much appreciated break from the slog that was the project week(s), but … what will my portfolio look like? The pace doesn't ever end. What next? I have a book on Objective C, and an Arduino kit here, and I know that my portfolio might be able to say a lot about me, but what do I want it to say.
Back to work Monday.
-
$('body').removeClass('more-drake')
-
Spent most of the day today trying to make up for lost time, which doesn't really work but most of the day I had that level of speed. I left the office at 11:00 last night and midnight tonight, and got in a half-hour late this morning because there just isn't enough time.
A benefit to overthinking everything and going down blind alleys is that my bug-hunting skills are only getting better. After three productive hours prior to lunch doing… I barely remember, but something… I tried doing something a bit too clever (having to do with separation of concerns again), and didn't come up for air until after 6. From 6 to midnight I was plenty productive, but messing up like that still stings.
In brief: I monkey-patched the Backbone Router prototype to offer callbacks before and after routing, and then tried using those hooks to grab a user who wasn't logged in and redirect them to the login page (while preserving state). Once again, on my way home, I think I understand what I was doing wrong, and can see how to fix it, but I ended up ripping most of that code out and leaving it basically exactly how we were taught in the auth demo.
I still don't like having a
currentUser
global, but for my app it's not a terrible idea, since you need to have some purpose coming to a blackboard-like site. It's not like your typical modern website, where there's generally some functionality that's meaningful even without an account, so… whatever.Oh, so I remember now—one of the fastest ways to make me hate your website or app is to have data entry be painful. So I spent three hours making syllabus creation absolutely beautiful, modulo a couple tweaks, and ran into a bug that I couldn't figure out even with Tommy's help. Basically, I had the event creation success callback call a JQuery
focus()
event on the first field in the form, and it kept losing focus after render. So I said to hell with it, and installed asetTimeout
call that waits 50ms then focuses back on the first field. Hacky, but resilient.No matter what I do, more of these sorts of hacks creep into my codebase. But then I see things like when iOS autocompletes a word, then you press punctuation, it backspaces and writes the punctuation and a space instead of just inserting it at the previous position.
I can't decide if this says more about the UX rot of iOS or the inevitability of hacky solutions.
Tomorrow we're presenting again and I think I'm going to bum rush the core features, no matter how they look, rather than polish anything. I have a
TODO.md
full of broken things, but that's just going to be the nature of the beast.Wanna know what kind of day it's been? I just remembered that I didn't eat my breakfast. I packed it in my bag 16 hours ago.
-
… about everyone having a slow day is that you can commiserate.
I spent a while this morning moving items out of my
TODO
list and into Trello—might as well use it for something now that I have an account. I found that trying to read to-dos off of a serial text file is next to impossible, and until I can afford a more full-featured project management app, it should do the trick. (Why is OmniFocus so expensive?)From there I went down a rabbit hole of other people's code, doing a lot of thinking about separation of concerns and where and how views should interact, and how routers play into all that. The good thing is many people have asked themselves similar questions before; the bad news is that so many people have thought about it that there's no one good answer for how to address it, and Backbone is agnostic about the whole mess.
That was most of my day. I did read a lot of code and learned more and more about how Backbone actually works under the hood (as well as playing with a number of neat Underscore functions) but at the end of the day what I have to show for it is clickable column headers that update the sort order of their associated table, and some utility code … not so much output.
I'm already thinking about what I want to and need to do tomorrow, and prioritizing various tasks based on the knowledge that we'll probably have a 1-hour lecture at some point and that we have to present again on Friday… It's going to be close. Hopefully I'll have some "wow" by then.