Introducing Grease

August 28th, 2010

Something that has really bothered me about software music players out there is just how poor their performance is.  Whether it’s iTunes or Songbird or even Foobar, it seems like I would wait forever for them to start up and run through all the things they need to do.  So I decided to do something about it.  I built my own music player that I’ve been calling “Grease”.

As I was thinking about this, I thought about how exactly I use these mp3 players.  Usually, I just pull them up and have them play random songs from my library.

I decided that this is *all* Grease would do.  Embracing the Unix philosophy of “Do one thing well” as inspired by onethingwell I set to work.

After a few hours,  I had something I was able to start using personally, and after some polish, it’s ready for it’s first general release.  I’m calling this somewhere between “Alpha” and “Beta” quality.  There are still some issues, but I thought I would release it to see what the response is.

How to use Grease:

  1. Click on the folder to select a folder full of mp3′s.
  2. Grease recursively walks through that directory finding any MP3′s (and m4a’s).
  3. Click play, and enjoy.

It will remember your directory, so you don’t need to select it every time.  It will load up your music files on startup the next time you open Grease.

I definitely wanted keyboard short cuts, so here they are:

Space-bar: Play toggle
Left arrow: go back a song
Right Arrow: skip to the next song
Down arrow: volume down.
Up arrow: volume up.

That’s all there is to it.  It’s a WPF application, and I’ve only tested it on Windows 7.  If you try it out, please let me know what you think!

It doesn’t require installation.  You can just unzip the binaries and run them.  The source code is on github if you’re interested in that.

Grease: Source Code | Binary Zip

EDIT: I have discovered a bug where keyboard short cuts don’t work after clicking the folder icon.  I’m not sure why this is, but if you restart the application, the shortcuts will once again work.

Grease , , , ,

Team Fortress 2 Manual Launched

June 18th, 2010

Well, the manual I’ve been working on with the Reddit Community for Team Fortress 2 has been launched:

The Missing Team Fortress 2 Manual

I’m happy to report we’ve seen a great response, which has been almost completely positive.  We’re not launching version 1.0 until after the big engineer update, but I’m very pleased with how it’s turned out so far.

gaming , ,

Productive Collaboration: Team Fortress 2 Manual

May 18th, 2010

SomethingOne of the coolest games I’ve ever played is Team Fortress 2.   While it’s tons of fun to play, one issue with it is that it doesn’t come with a manual.  Just over a week ago, reddit user ‘lolard’ posted this to the new to tf2 subreddit, asking us to solve this problem.  The reddit community responded.  We fired up an etherpad clone and got to work.  Here’s what we accomplished:

  • In less than 24 hours, we had written nearly 8,000 words.
  • Today, we’re close 13,000 words.
  • More than 50 people have contributed in some way.
  • 28 people have contributed substantially.
  • Gone through at least two major transitions in the style of writing: from 2nd person to third person, and from the voice being used.
  • 4 different websites (3 etherpad clones and crocodoc.com)
  • My copy of the manual is 56 pages long, formatted.
  • There is now a website: http://tf2manual.net/
  • We were flexible enough to neutralize trolls who deleted all our work.

The list can go on.  The message is clear: this has been a massive collaborative work that has produced something amazing in a very short amount of time.  I’ve been involved throughout the whole process, stepping up soon after lolard made the first post.  From this perspective, I’ve learned several things.

  1. The future is live collaboration at the level etherpad (and it’s clones) tried to provide.  Wiki’s are last generation technology that only slow things down.
  2. None of the etherpad clones were able to fully function at our level of collaboration, including the new Google Documents.  We used ietherpad, openetherpad, sync.in, and I privately tested Google Documents.  All of them experienced difficulties dealing with both the number of collaborators and the size of the document.  Sync.in functioned the best of the bunch.
  3. Crocodoc is awesome, but does not scale up to groups of more than 2-3, especially for a 50 page document.  It’s flash driven, and was extremely slow.  It claims to be ‘live’ in the sense of etherpad, but it really isn’t at the levels we were using it.  I had to refresh the page to make sure I was viewing all of the changes.
  4. Do not use the time slider on any of the etherpad clones.  This basically made the document useless for everyone over the next 20 minutes as the website did who knows what.  This feature worked great in the original etherpad, so I’m not sure why these clones have trouble with it.  Even sync.in had this trouble.

I can’t emphasize enough how much this changed my view of collaboration.  This has been collaboration how it’s supposed to be done.  While reflecting upon this experience, I’ve identified several reasons I think this went so well.

  1. We’re passionate about the subject.  Of course this is important and must appear on the list.
  2. We’re passionate about the community.  This is not necessarily an extension of the first point.
  3. There was no barrier of entry.  Once the pad was created, we could simply spread the URL around, and once people arrived on that page, they could start editing.  There was no registration, no waiting.  They could immediately jump in and start writing.  This was true for all the etherpad clones as well as crocodoc, and I applaud all of those websites for that.
  4. The latest work was immediately available, down to the keystroke.  We could see exactly what others were typing as they were typing it.  Corrections could be done within seconds, and they were not always done by the person who made the mistake.
  5. Version control was transparent.  We didn’t have to think about keeping track of a history; the application did it for us.  Hypothetically, we could even playback that entire history as it played out, but that feature was broken on every website we tried.

The biggest theme is that while we were all very good with technology, the technology was completely transparent.  We didn’t have to think about it (except when it broke, like with the time slider).  We just focused on what we were trying to do, and then we did it.

It’s been an amazing experience so far, and while this project is far from over, our parts are winding down.  Soon, we’ll have a nice manual for team fortress 2 users to go with all this valuable experience we’ve gained.

education , , , ,

Fun Times with Remote Desktop

April 16th, 2010

The iPad has been making a splash in the gadget world, and I’ve been strongly tempted more than once to go ahead and purchase one.  For now, though, I’ve been able to resist, and I am hoping to hold out for a Notion Ink Adam.  Pixel Qi screen, Rotatable Camera capable of recording HD, HDMI out, Android with Multitouch?  I’m sold.  But this post isn’t about that.  It’s about one of the reasons I want a tablet so bad:  Being able to use it while teaching.

Currently there are a few tablets that are available for use in the classroom.  The problem is “Tablet” is used in a bit of a different sense.  The tablet I have available to me is the Airliner from Smartboard.  This piece of hardware is truly a piece of crap.  Half the time it won’t connect to the computer, and when it does connect, the software fails to function correctly.  There is a better way to handle this type of functionality, and I think I’ve found one.

One issue with using a tablet like this is usability.  You’re controlling the computer through the tablet, but you can’t look at it.  It would be better if you could get a copy of the screen on the tablet itself.  Well, with these new tablet computers, it’s possible to do that.  You just need to setup a VNC server on the computer you want to connect to, and a VNC client on the tablet.

Well, I had the opportunity to borrow one of our faculty member’s iPads and go ahead and try this out.  There’s a lot of idiocy in this institution about network security and such, but I was able to finagle (to use a technical term) the server installation such that I didn’t have to go through IT to enable this functionality.  However, the iPad was having trouble connecting.  So I decided to use another computer in to test the connection.

I didn’t have a VNC client on any of the student machines available, but I did have one on my desktop computer upstairs. So I logged into one of the student machines, and used the Microsoft Remote desktop software to connect to my workstation.  Then I was able to use the VNC client on my workstation to remote into the instructor machine at the front of the classroom.  Everything worked perfectly.

Then I had a thought.  We run a piece of software called iTalc that enables us to view the screen of any of the students computers.  This piece of software is amazing, and I use it constantly while teaching, for diagnosing student problems, letting students demo different things from their computer, and proctoring tests, among other things.

So I opened up iTalc to open up the screen of the student’s computer I was on.

The circle was complete.  I was remoting in a complete circle using three different pieces of technology on three different computers.  I got a nice looking mirror effect on my computer, but I was also able to close it all down easily.  Here’s the final picture:

  1. Student Machine -> My Workstation (using RDP)
  2. My Workstation -> Instructor Machine (using VNC)
  3. Instructor machine -> Student Machine (using iTalc)
  4. The student machine was already connected to my Workstation.

Just a bit of fun.  Unfortunate the wireless bandwidth around here is so crappy the iPad was practically useless as a VNC client.  I’m going to have to figure out something else.

education , , ,

Lessons after a year Teaching

February 15th, 2010

I’m now in my second year teaching, and while I’ve learned quite a bit, I’ve still got a ways to go.  Here are a few things I’ve learned so far though.

  1. Students won’t do their readings if they’re not going to tested on it immediately.  Solution: require them to fill out worksheets concerning the readings as they do them.
  2. Test questions need to explicitly ask for details, otherwise students will not provide them.
  3. Nuances should sometimes be left unsaid, as they can confuse students.  There needs to be a balance between the basic required information, and the exceptions to the rule.
  4. As a general rule, accepting late work is a bad idea.  Students will abuse it.
  5. Bad class performance is most likely due to laziness and not inability to do the work.
  6. Sometimes you do have students that really can’t cut it.  I have yet to learn of a good way to deal with that.
  7. If you allow your students to be creative, they will blow your mind with their creations.
  8. Your actions have the biggest effect on morale.  You need to be able to make jokes and get them to laugh.
  9. You cannot be afraid to be wrong.
  10. Have discussion questions prepared ahead of time.  These need to be open ended, and force them to bring many different things together.

Lessons I’ve learned from observing other classes.

  1. Don’t treat your students as though they are lazy or stupid.
  2. A harsh word can completely ruin a semester, and force you to lose all credibility.
  3. If morale gets low, you better get creative, because low morale means low learning.
  4. If you find yourself ranting about your students more often that praising them, you probably need to reconsider your teaching strategies. And take a break.  Students aren’t actually that bad.
  5. Don’t treat your students as though they are lazy or stupid.

It’s an ongoing process, but I think things are progressing pretty well.  I hope to keeping experimenting to see what works best.

education

Strong Opinions, Lightly Held

December 14th, 2009

A few weeks ago, I listened to this great podcast episode from Hanselminutes with James Bach.  While the podcast is normally about programming topics, this particular episode was more about auto-didactic learning.  Near the end of the show, they talk about the concept of ‘Strong Opinions, Lightly Held.’

The idea behind this concept is that you have very strong opinions about something, but you’re not dedicated to it.  You can make a passionate defense of a topic, but when presented with contrary evidence, you simply switch over.  Imagine making a very strong argument and then going ‘Oh, you’re right. Nevermind.’

This is something I don’t think very many people understand, but as someone who’s philosophy is scientific in nature, I’m very familiar with it.  I’ve experienced this countless times where I’ve made what I think is a very good argument for something, then had someone completely destroy it with a simple counter argument.  At that point, I have no choice but to change my mind.  And that’s a good thing.  It means I’ve learned something new, and I’ve progressed in some way.  It’s something I strive for, and when I see it in others, it’s something that gains them immediate respect in my eyes.

Being ‘wrong’ about something has been unfairly stigmatized in our culture.  If you change your mind about something, many times you’re viewed as a ‘waffler,’ or someone who doesn’t know what they believe, or someone who lacks principles.  In reality, it’s just the opposite.  Changing your mind when faced with a better argument does not represent the lack of principles, but dedication to the pursuit of truth.  Is is the embodiment of the idea that truth is more important than the self and that any opinions, beliefs, and views one has must bend to reality, because to do anything else is delusion, by definition.

It doesn’t mean you won’t make mistakes, that you can’t be misled.  It’s easy to imagine a situation where you hear what you only perceive to be a better argument, and in reality, you’re missing some vital information that would clearly demonstrate its incorrectness.  The beauty of this philosophy of ‘strong opinions, lightly held,’ is not that it always leads directly to ‘truth,’ but that it’s self-correcting. If you take the wrong path at some point, it’s easily corrected once you do have the required information.  You never reach ‘absolute’ truth, but you do get closer to it with each iteration.

If there is a path towards wisdom, it surely must begin with the recognition of your own fallibility through self-examination, and this is exactly what is represented by ‘Strong Opinions, Lightly Held.’

education ,

Hebrews, Moral Relativism, and Biblical Theme

October 19th, 2009

What does faith have to do with morality?  The choice to take something on faith is fundamentally a moral choice above all else.  A good definition of faith comes from chapter 11 in the book of Hebrews in the Bible:  “Now faith is being sure of what we hope for and certain of what we do not see.”  Basically, to take something on faith means believing in something for which there is no evidence.  Loaning money to that friend who has never paid you back in the past and hoping this time will be different?  That’s faith.  Asking a stranger for coffee? Quite possibly an act of faith.  Believing there is an all-loving super-being out there who cares for you personally?  Most definitely an act of faith.

As a Christian, moral relativism was something I heard about quite a bit.  The term was used in disdain; it was obvious that the Christians I were around felt that moral relativism represented something very wrong with the world.  This is something I agree with them on.  Unfortunately, I think the Christian stance on this is akin to psychological projection.  That is, they deny that their own faith contains any such relativism, and instead assign it to those “not christian.”

The demonstration that moral relativism is at the core of Christian views of faith is relatively simple.  It is a theme in the bible: from Abraham’s attempted murder via sacrifice of his only son, to the ongoing acceptance of hell as a legitimate theological stance.  Abraham is held up as one of the holiest men of all time – the father of three of the worlds largest religions.  His faith in God is adored and held up as an example.  Very rarely are his actions questioned in a moral light.  The questions, “why did he feel it appropriate to take action he knew to be wrong?”  The answer for Christianity is a given:  God told him to do so, and when you’re given a commandment by god, you are not to question, but to obey.  To obey is the moral, holy thing to do. This idea has not died out.  It’s why we still have suicide bombers, women who drown their children by divine commandment, and apparently, a war in Iraq.

Additionally, a divine commandment delivered personally supersedes any other divine commandments (turn the other cheek leaps to mind, ignoring the Big Ten.)

The other big example of moral relativism is the doctrine of hell.  That is, the idea that those humans not made holy through the acceptance of Jesus Christ as their personal lord and savior will spend eternity in eternal torture.  It never ceases to amaze me how easily people seem to accept this idea.  It’s given as the practice of perfect divine justice.  Yet, given the definition of Justice, hell certainly doesn’t fit.  There is no justice, fairness, grace, or love to be found in the doctrine of hell.  I’ve gone in depth on this in the past, so I’m not going to rehash it.  The doctrine of hell is the ultimate expression of faith: the acceptance of something known to be morally abhorrent as holy.

The theme is simple: morality is not objective but derived from mandates from god and the only absolute is obedience to those mandates.

This is a source for cognitive dissonance.  How can any god worthy of the title give immoral commandments?  Obviously he cannot, therefore any actions he takes are moral.  Yet just a quick browse through the old testament yields dozens of instances where the abrahamic god is most certainly not moral.  The solution for those who wish to remain Christians is to plead imperfection.  The argument goes, god is much wiser than us, who are we to to judge his actions? God is all-just, especially when he’s killing people – or more likely – commanding people to kill other people.  God is all-wise, especially when sending people to spend eternity being tortured.

The result of all this is nothing more than the further erosion of objective morality.  What meaning does justice have when we accept eternal torture as a legitimate practice of it?  What meaning does “right and wrong” have when it’s subject to ever-changing whims?  It’s even worse in that there is no way to verify these whims.  How can the woman who drowns her children by divine commandment be prosecuted?  How do you know God didn’t tell her to take that action?  There is no way to check.  Luckily we have a secular government who can act against such madness.

Unfortunately for Christians, the remaining choices are not acceptable:  either decide that god is not worthy of worship, and go looking for a god so deserving elsewhere, or stop believing in gods all together (or as I did, both).  Some Christians are forging another way: re-interpreting Christianity to remove the moral ambiguity.  Hell doesn’t survive the cut and Abraham becomes a villain.  I don’t know how intellectually acceptable it is, but it is interesting.

So the next time you hear a Christian railing against “Moral Relativism” just remember: their beliefs are likely more relient on it than yours are.

Disclaimer:  I realize I may be taking a simplistic approach to Abraham’s situation.  The book that really talks about it, Fear and Trembling, is on my reading list, but it might be a while before I get to it.

Disclaimer 2:  Yes, this is another post where I pigeonhole christians to mean “fundamentalist christians”  Bad Josh!  Bad bad Josh!  I realize that not all Christians have the problems described above.  However, those christians who have railed against moral relativism usually do have these problems, and that is why I wrote this.  If you have a better way to describe these people that identifies them specifically, please let me know.

Theology

Jesus Christ and the Fig Tree

July 27th, 2009

This post concerns a curious bible story, found in the book of Mark:

Mark 11:12-14

12The next day as they were leaving Bethany, Jesus was hungry. 13Seeing in the distance a fig tree in leaf, he went to find out if it had any fruit. When he reached it, he found nothing but leaves, because it was not the season for figs. 14Then he said to the tree, “May no one ever eat fruit from you again.” And his disciples heard him say it.

Mark 11:20-25

20In the morning, as they went along, they saw the fig tree withered from the roots. 21Peter remembered and said to Jesus, “Rabbi, look! The fig tree you cursed has withered!”

22“Have faith in God,” Jesus answered. 23“I tell you the truth, if anyone says to this mountain, ‘Go, throw yourself into the sea,’ and does not doubt in his heart but believes that what he says will happen, it will be done for him. 24Therefore I tell you, whatever you ask for in prayer, believe that you have received it, and it will be yours. 25And when you stand praying, if you hold anything against anyone, forgive him, so that your Father in heaven may forgive you your sins.”

Christians tend to look at this story as a lesson in faith.  While verse 24 is quoted often as an example to live up to in faith, I think there is another way to read this story.  It is a retelling of the original downfall of mankind according to Genesis.  The key fact that makes it so is that the fig tree wasn’t in season, something the story points out explicitly.   Jesus cursed it for not bearing fruit when it supposed to have no fruit.  There was no way the fig tree could have behaved any differently.

This parallels nicely the story of man’s downfall in Genesis.  God created Adam and Eve and told them not to eat of the tree of knowledge.  But without the knowledge the tree provided, how were they to know that was wrong to disobey?  How would they know that it was wrong to indulge curiosity?  Their ignorance secured in their creation, they acted in the manner that they were created.  God was not pleased, and he cursed them.

Christians read the story of the downfall as a lesson in disobedience, but I must disagree.  The actions of god in this case are mirrored by the actions of jesus: a curse on his creation for the way he created them!

Theology

Summer Road Trip

July 16th, 2009

Yesterday I learned the importance of having paper maps instead of only electron maps that depend on cellular networks to download data.

Two days ago, my sister and I attended an event that some of my musical colleagues consider heretical (in a kind sense, I think).  What was this event?  The Drums of Summer, in Broken Arrow, OK. It’s part of the Drum Corps International (or DCI) summer tour.  It’s a competition for drum and bugle corps comprised mostly of college students.  Put another way, it’s hardcore marching band.

It was amazing.

This was the first time I’ve ever seen a DCI World Class-level corp, and I was not disappointed. The music, sound, technique, and showmanship made this one of the most entertaining musical events I’ve ever attended.  Imagine a human kaleidoscope that creates it’s own music and is executed with pin point precision both visually and musically, and you will begin to approach the drum corp experience.  I’m already looking forward to the next time I can attend one of these events.

The trip down to Broken Arrow was pretty much without incident.  The roads were clear, and we made excellent time, Oklahoma’s insane way of showing road construction signs aside.  The trip back, however, proved much more trying.

It started with a trip to Goodyear in Broken Arrow, and three new tires on my car.  A few hours (and a few hundred dollars later), and we were finally ready to leave.  I wasn’t very familiar with the area, and followed the signs, only to discover I had entered a turnpike with no immediate exits, going south, when I was supposed to go north.  Getting off at the first available exit, I was over 50 miles away from where I was supposed to be.  This set the theme for the trip back.

There was an unbelievable amount of problems I encountered as I neared Warrensburg, MO, where I was going to drop off my sister.  The first route I chose took me out of cell phone range where I discovered the highway was completely closed.  I had no choice buck to back track several miles and head north.  This route nearly had the same thing happen, as the state highway ended abruptly.  Luckily, the road continued, however, and I was able to find a connection to another state highway.

Once we got into Warrensburg, I had visions of a quick trip through town.  It’s not very big, and I thought there would be no issues.  But it was not to be.  A fatal vehicle accident earlier in the day blocked off the road, forcing me to return to the high way and find another route.  Once I finally got back on track, a funeral procession pulled out in front of me, holding us up again.  After the funeral procession, we came to an intersection that had a traffic light that had been plowed over, stopping traffic again.  Finally, I routed us around all that, and made it to our destination.  Total added time: nearly three hours.  When I finally arrived back home to my apartment, I felt very relieved.

Some might say that this series of unfortunate events was retribution by Apollo for my musical heresy.  Since I like to play up the Odyssey-esque journey back home, this explanation is not without appeal.  Over-all though, it was a great trip, and I’m very happy I went.

Personal

When Science Meets Anti-Science

July 9th, 2009

As the war between PZ and the folks at the Intersection heats up again, I can’t help but throw my own voice into the cacophony.  The argument is age-old and tries to answer the question: “Why are people so gosh darn ignorant?”  On one side, the answer is because they cling to superstition and ritual.  On the other side, it’s because scientists aren’t good enough educators.  To be fair, the previous two sentences were gross over-simplifications of the respective positions.

To a certain extent, both sides are correct, but it’s not a debate I’m really interested in.  As an educator, the reach of my influence is greater than the common person, but not that great, and I’m personally satisfied with what I’m doing.  I can’t do anything about the rest.

The question I have seems to be the one that the accomodationalists (that is, the people who think scientists should focus only on the science) have yet to answer.  What should be done about those people who are not merely ignorant, but ignorant and proud of it, and actively work against known truth.

I don’t have a problem with people believing evolution is wrong and the earth is only 6000 years old, until those beliefs start influencing public policy.  How should those demonstrably harmful beliefs be handled then?

I don’t have a problem with people taking homeopathic medicine and other alternative medical treatments, but how should those beliefs be treated when they’re foisted upon children and others who are unable to protect themselves?

How should the psychic who preys on the weak and hurt be treated?

How should the faith healers who use honest belief as instrument for personal profit be treated?

The popularization of science is not going to make the young-earth creationist change their mind.  When they come to the schools and attempt to gut science curriculum, what should be done?

Education will work in the long term.  We see it working already.  But it will take decades before we get the kind of literacy society really needs.  What are we supposed to do in the meantime?  Sit silently and hope we don’t destroy ourselves out of ignorance?  What can we do right now beyond education?

These are the questions I’d like answered by the accomodationalists.

Philosophy ,