Skip to content

CMS: Sakai, Blackboard, Moodle

This is about CMSs and why HTML rocks while custom behavior is bad.

My first CMS usage was with Blackboard in 2004. That was horrible. I put some basic materials up and ignored it. I used my own blog software for my students (using perl) and generally it was not pleasant though it was fun.

Then I lived CMS free for awhile despite being an online instructor. That worked fairly well, in fact. After a time, I moved up into management and had to deal with CMSs for other courses. And we transitioned an old, homegrown system into Moodle 1.9. We had an individually paced model which no one uses and so it was a rather big nightmare to figure out how to work all of that. While I don’t have administrative access to Sakai or Blackboard, I have the feeling that Moodle was the most accommodating of  the three for us. It also seemed to offer the easiest and clearest way to have automatically graded tests in it. The transfer of materials involved a combination of PHP scripting and lots of button clicking. We used jsMath for displaying math and that worked well enough. Looking back on it, I wonder how stable it is. And you know what? It is great to be able to not care because it is someone else’s problem, a problem not of their own creating so solving it is a plus, not par. Win-win!

After striking out on my own, I ended up teaching a course covering all of math from algebra to statistics to calculus. I first taught it in the classroom and quickly evolved it into presenting slides and giving practice problems to students, thereby developing a variety of support PDFs, all of which were done with LaTeX, GeoGebra–>PSTricks, Beamer, and written with TextMate. Then I was asked to develop an online version.

So I spent a couple of months filming video lectures, i.e., far over the slides with my face in the corner. I recorded them with ScreenFlow and compressed them with ffmpeg into a very compact, but high quality recording which doesn’t play on iOS but works well otherwise.

So I had videos and I had PDFs. I was given Sakai to work with. I decided that each week should remain a single unit with the PDFs and videos being the delivery mechanism. So I wrote Python scripts  to generate HTML with embedded links for all of this material. The first two online sessions I hosted the files (PDFs and videos) on my own server and then I finally had my host institution host the videos; I uploaded the PDFs into Sakai directly–400 files loaded up with clicking! Argh.

When I first looked at Sakai, I thought about playing around with their auto-multiple choice, etc. test framework. But ultimately I decided that it was easier both for me and my students to go with PDF assignments and file uploads. It has worked well. And I am glad I went this route, as I will expand upon in a moment.

I also decided to work with the discussion boards, a wiki, and blogs all in Sakai. They worked reasonably well, but it was all rather disjointed. The wiki drove my students nuts and while I kept the material they had generated, I dropped the requirement to contribute in the third semester. The blogs and discussion boards worked well, but I feel that Sakai’s setup did not call attention to new stuff thereby dampening the interactions.

In summary, my use of Sakai was to host an organization of files, manage a gradebook, and have a managed place for students to generate and share text. They sometimes tried to share images but that was mostly a failure due to permission issues.

I have now been asked to convert into Blackboard. Which I did in less than two days, probably 10-15 hours of investigation and uploading, etc. Now done. And this is why I am writing this. Because I realized that I would have had issues had I used the system made tests. Extracting that kind of information out of a CMS is painful. The uploading files was actually trivial thanks to CyberDuck and WebDAV on the Blackboard site. Attaching them to the lessons was a little painful–a lot of clicking. But still, not as bad as uploading each file in a browser, one at a time.

So I modified my Python scripts to generate HTML for the new environment and then copied and pasted my way to completing the Lesson content. I turned off their rich text editor and it defaulted to having HTML-aware plain text. This was great because pasting in copied material was largely a mess due to styling coming along for the ride. Raw HTML works much better.

Setting up the blogs was trivial. Though when I was setting it up, I had a piece of helper text that I copied over and over again. And then, I said to myself, “Well, I am glad that I am clever enough to not make a mistake with that.” Oops, I had. So I had to do an extra 30 clicks to clean that bad paste job. Never think that you are clever. Ever. Try to avoid doing the same thing over and over again.

The wiki was somewhat easy. I could not copy the source directly because that was in special wiki language. In Blackboard, they use their standard HTML editor. So I had to cross my finger and paste the displayed HTML into the editor. It looks okay. Has some gunk, but not too bad.

The discussion boards and assignments. Well, I did not generate that stuff outside the system. So I had to go into Sakai, edit each blurb, click source, copy, and paste into the appropriate Blackboard bit. Again, the common language of HTML was great (copying the displayed output led to a very bad choice of fonts and gunk in the code). But it took a lot of effort because the primary source was in the CMS.

While I have not had to use it with students, so far, the setting up side has been nice. I was able to put all of a week’s tasks into a single place that they go to. I hope this helps them out. It was much easier to simplify in Blackboard than in Sakai. Also, all the inputs were consistent. I could formulate the start and end dates separately and then just paste them into various boxes without issue. Sakai had a different date format for every different type content–a product of open source plugin stuff.

The lessons I have learned about CMS is that for content, it is best to treat it as a HTML-front-ended file manager. Do not use anything that is custom to that environment. And produce everything outside the system as HTML. It is okay to generate it from something else, but having that HTML on the outside ready to copy is crucial to CMS agnosticism. And we all must be agnostic even if we stick to the same system–upgrades cannot be trusted.

The interactive stuff such as blogs, wiki, discussion boards, they all work well. Expect that stuff that goes in does not come out easily. But a big item I care about is whether new stuff gets flagged. I can’t tell that yet, but Sakai’s help manual on private messaging does not feel me with confidence: “Students are not notified if they receive a new message, so routine checks must be made for new messages.”  This is not good. The most important part of a communication system is that you know about an attempted communication. Moodle allowed a lot of notification to email options. Sakai grew less and less over new versions. What will Blackboard hold?

For interactive tests and the like, I think it is largely hopeless. The best that might be hoped for is support for HTML-CSS-JavaScript rather like how WordPress works with themes and stuff. JavaScript would need to be a secure subset. And one would need to talk with the backend. Accessibility becomes an issue. All in all, truly interactive content seems very distant. At the very least, good tools to generate the various possible formats need to be created. But it seems like from a content-testing perspective, the PDF route is the surest bet. It works, it is minimal hassle, and it is transferrable. But it breaks my heart.

Tagged , ,

Educational Debate

So I just saw a blog blurb referencing an article suggesting that liberal education may do more for thinking than teaching in science and mathematics. I find this hard to believe.

The issue is on the nature of the instruction. I just judged at a middle school science fair. Some of the projects were good, most were not so much. Some demonstrated knowledge of some science, but few demonstrated actual initiative. That is what is lacking. When an experiment fails, when data seems to suggest something different from what one was expecting, this should generate excitement and further investigations. It is incredible when something fails. It is a great opportunity to learn. I saw many missed opportunities at the science fair. And this is not a matter of knowledge. It is a matter of time and attitude.

I seriously doubt the issue in academia is that of the subject matter. What the NYTimes blurb suggests is two separate notions of what has gone wrong. One, too much science and mathematics. Two, too much profit/consumer focus. I categorically reject the first. A good exploration of science, mathematics, and/or programming, will teach one all the critical thinking skills one needs. Note the emphasis on exploration; it is not education. A teacher standing in the front saying, “Do these ten problems, learn these facts, master this or that” will not do much for anyone’s critical thinking skills. The same can be said in the liberal arts. Reading a book, reading people’s philosophies, memorizing art facts, will do nothing for a student. But having the spark of life from enjoying a good story, from hearing a different point of view, from seeing the depth in a piece of art, that is something wonderful. It is that spark of life, that exploration which is critical. It cannot be forced, it cannot be taught. It can, however, be invited.

And it is therefore the second point, the consumerization of education, which is actually the important point. Education is about turning out people who can get jobs. That is what it is and, indeed, what it needs to be, in some sense. Life is hard and we want our people to have food in the mouth. The world cannot, at the present time, support 6 billion independent, creative, artistic people with no useful skills or knowledge. We need a lot of industrial movement, we need big business movements. Hopefully, that will change and change soon. But at the moment, getting a job is very important and questioning every one and every thing is not the way to succeed in that endeavor. I should know.

Therefore, what I think one needs to do is to have this education bit be one part of a student’s life. The other is to encourage the exploration. Find ways to get students to really explore, setting them up with mentors, giving them the time to explore, the resources to experiment. It is not about teachers. They can transmit skills, knowledge, and make a baseline separation of people into groups that get it and those that do not. But creativity does not come from the classroom. It can never come from the classroom. I think the greatest tragedy of our times with regards to young people is how much time is either sucked up in resume-building activities or pointless browsing/texting/….

For those concerned, encourage interested reading, writing, puzzling, questioning. Make sure students have breathing time. Not just free time, but actual noiseless time. Let their minds expand. It need not be in STEM, but STEM does need to be known and has plenty of space for such activities. But STEM will not inspire all (probably not most). And that’s fine. They can still, and should, learn STEM. But there must be time given for the imagination. Give a human space, time, and quiet;  the result will be the most fantastical creations.

SPG: Story-playing game

Here is my role-playing game rules, or as I like to think of it, story-playing game.

Philosophy: Give a rough form to improv, group story-telling. Think big and imaginative. Reinvent each time. Be inconsistent. Embrace the inner chaos of creation.

Setup: Story Generator [SG] (aka GM, DM) sketches out rough plot and has some ideas of the challenges that the players will have to overcome. The SG should design a doable path, but one that in real-life would be unlikely. Yet in this game, it becomes quite possible to do.

The players in preparing their characters invest time and energy in the ongoing story of their characters. Between adventures, their character growth depends on what the character does. The more that story develops a character, the more powerful their character is in an adventure. It should be done in consultation with the SG to maintain balance and to feed into/from the SG greater vision.

The SG determines how massive and heroic the characters can be. Also, it is perfectly acceptable to have characters that pursue something that they are not good at it. So they do not grow in ability as much. This is the SG and player’s decision and is for increasing the storyline. Maybe they can do something about it or change direction.

Stories can be about heroes becoming superheros or becoming villains or becoming non-heroes, losing everything, and building up again. Or the characters start as nobodies, nothing special, and decide to turn that around. Maybe they succeed, maybe they don’t.

Not D&D: The system rejects character levels, turn-based combats, ability scores, XP, alignments, and well-defined spells, skills, and equipment.

Dice Rolls: A lot of the time, if something makes sense for a character to be able to do, they can just do it. If it is quite a stretch, then some dice rolls need to be done. Even combats can be thought in that way. Combats could just be resolved with some standard cost if the opposing forces are not really a threat. But hard combats should always use dice.

There are two kinds of dice rolls. Both use 1d20 (4d6-4 could also be used which would center the outcomes mostly around 12).

The first kind is a stand-alone skill usage, such as doing some amazing feat of strength. Here, roll 1d20 and add any bonuses based on the character background (i.e., skill bonus) and the situation (e.g., trying to impress a lady friend) while subtracting any penalties from character (e.g., being drunk) and situational (e.g., being taunted by said lady friend). After adjustment, basic success is in the range of 8-13 with every +4 above that being an extra goodness of success (14-17 is a decent success, 18-21 is a good success, 22-25 is an impressive success, ….) while every -3 below leads to failure, big failure, and humiliating failure, and then dangerous failure.

The second kind of dice roll is an opposed roll, such as in combat. Add attack bonuses, situational, apply negative bonuses (such as wielding two weapons which increases damage at the expense of to hit). Attacker rolls 1d20 and computes. The defender knows the result and can choose how much effort to expend in defending and how. They roll 1d20 and add/subtract bonuses. The two rolls are then compared,  attacker – defender. The center point is 0. Above this, a hit happens. Equal to and below this a miss happens. If it is a miss, then the more negative, the more failure and it can be converted to penalties or even damage depending on severity. If it is a hit, then any damage bonuses (two weapons, special property of the weapon) adds to and damage reduction (plate mail, magic absorber) subtracts from the rolled score. At this point, for every +4 increment, 1 point of damage is done. So (1-4) would be 1 point, (5-8) would be 2 points, etc.

The bonuses in both kinds of rolls can be modified (before rolling!) by expenditure of stamina points. There is a normal bonus level which represents a 1 point of stamina usage. This is the level the character is comfortable with. Above and beyond this, one can spend more stamina points as detailed under the skills. Also, part of a failure penalty is increased use of stamina, generally a multiplier.

The same can be said for magic.

Character Bonus: One way to make the characters extra lucky is to give them automatic rerolls for bad rolls. So if they roll 1-3 unmodified, they get to reroll. On the other extreme, normal monsters could be forced to reroll natural 18-20. This makes it much more likely for characters to do well and monsters not to. Significant monsters might instead reroll 1-3 as well.

This rule means that significant failure for characters should only arise by them trying to do hard stuff. If terrible failure is a desired feature (more comic or tragic than epic), then ignore this rule. This is also what gives the characters the ability to be more heroic than the average fellow.

Stats: The base levels are fixed.  These scores change downwards during a session. Fractional results are rounded to the nearest integer.
LP (life points) is 10. Each point of damage leads to a 10% reduction in all skill levels. Healing without magic is 1 LP per 2 days of complete rest, or 1 LP per week. 0 LP is death.

SP (stamina points) is 100. Every loss of 10 points leads to a 10% reduction in all skill levels. If one does not have enough stamina to cover the normal cost of the activity, then a great penalty is invoked. Failure can be catastrophic. At 0, the character fights for consciousness with rolls. The longer it goes, the more the penalty.

Between 0 and 30, the character is winded and really wants to rest if possible. Resting for 5-10 minutes can get a character up to 50. With water, they can get to 60. They can have a snack for +10. A full meal can get them up to 85; only two (post-breakfast) allowed. Sleep restores SP to 100.

MP (magic points) is 100. They fuel magical effects, both common and trained. They get restored at a rate of 5 MP per hour in a normal magic flow area. At a site of recently used magic, it is drained and the rate is 1 MP per hour. In an area with a lot of magical history, the rates can be much higher.

Skills: The ability to do stuff is determined by what a character is good at, trained at, or practiced in. There are no ability scores such as strength. There are no well-defined skills on the character sheet other than some basic sketches. A character that is well-trained and practices swimming can swim far and fast or in adverse conditions. The more training and practice, the easier it is and the better. Each skill should be pegged at a base level. This is the bonus which only takes 1 SP of use. Up to double this bonus can be used in super efforts, at a cost of 2 SP each +1 bonus up to the double level, up to three times this bonus could be done at a cost of 3 SP per +1 over the double limit, and so on.  One might want to place a max limit, but having players decide how much to expend can be interesting. Too much expenditure in any single effort could also reduce stamina for a longer time.

Categories of skills feed into one another. So being good at swimming increases the athletic level in general. So all athletic skills can get a bonus, say 1/2 the top bonus in a category gets added to all the bonuses in that category, including itself. So factor that in when deciding on the top bonus. One should have some ideas as to the bonus levels for the adventure in mind.  They should go up to make it more epic as needed. Not all skills need to go up and while going up should happen a lot in the beginning of a new skill, it should then taper off and only increase with tremendous dedication.

A rough rule of thumb is a +1 bonus for every 20 hours of training until +5 bonus. Then +1 for every 100 until +10. Then +1 for every 500 until +15. Then +1 for every 1000 hours until the max of +20. That’s a maxed superskill and represents about 8000 hours of training or about 4 years of continuous study. To go beyond requires something extraordinary. These times are just suggestions and may be tweaked for whatever reasons, generally magical or mystical.

The skills include acrobatics, thief skills, diplomacy, weapon skills, parrying, riding, tracking, whatever you like. And one can have a whole package of training for a variety of related skills.

These skill bonuses are the base level. So they can be upped significantly by using up stamina, but stamina does not increase making super expenditures quite rare.

Magic: Think of various kind of elemental types of magic such as fire, water, air, earth, light, life, death, mental, space-time, force, magic. Perhaps more. Some ideas for their use:

  • Fire. Create a flame for light, sheathe a weapon in fire, burst in flame, throw a fireball, explode a fireplace.
  • Water. Part the waters, crash them back again, walk on water, freeze, boil.
  • Air. Breathe underwater or in a casket, create a hurricane, fly.
  • Earth. Crack the ground open, thrust the ground up, travel fast through rock and ground, listen to the histories in the soil.
  • Light. Throw a lightning bolt, transform into light and travel fast, have blinding light or total darkness, become invisible.
  • Life. Accelerate healing, return the dead to life, rejuvenate the life of an area, talk with animals and plants, create food, water.
  • Death. Raise an army of the dead, try to kill outright, summon monsters of destruction, ferment.
  • Mental. Communicate with telepathy, be aware of companions status, have a sixth sense for danger, imminent attacks, control others, relax.
  • Space-time. Travel in space, travel in time. See visions of the past or future. Find things, see maps.
  • Force. Make rigid, such as a deflection shield, or an extra edge to a weapon, or a ram-head bursting a door.
  • Magic. Sense magic, understand it, dispel it, take control of it.

These are just suggestions and starting points. Doing any of this requires training and practice as any skill does. Most who do not focus on magic learn about healing and giving an edge to other common pursuits. That should be the focus unless one wants to really delve into something. To do really amazing stuff, one has to specialize and do the same training as the skills in terms of training.

Basic effects are manipulations, creations, and perversions. Manipulations take existing situations and manipulate them to one’s own will. This requires a base of 1 MP and 1 SP. Creations are much more difficult and take 2MP + 3SP at base. Perversion is 4MP+3SP at base. These are added up in the same way as with skills, doubling or more as appropriate.

As an example, taking an existing fire and blowing it up and at someone using the fuel present is manipulation. Creating fire out of nothing, say in a fireball independent of a fire source, is creating. Creating and manipulating can stack so creating a firestorm and moving it around is both. Perverting is making something go against its nature, such as snuffing out a fire using fire magic. Better to use air or water magic for something like that.

Continuous magic effects take the given cost per hour. So having a sixth sense on all the time might be 24MP and 24SP for the day. Resting and refreshing does not recuperate these costs while the effect continues on. Sleeping does restore it all.

One needs to decide the power of these effects. These can be dice rolls if it is unusual or it can be a standard setup. Others can try to counter it particularly those of the magic school of magic. Take a very simple setup such as a small ball of fire and then when casting, each increment of success above, the effects can be augmented in the way specified by the player, adding size, damage, longevity.

Those who reach a high-level of capability in a particular school of magic should have their appearance change. Fire should lead to flame and smoke encircling the person, a flame appears at a snap of the fingers, etc. Light people look wavy, water people teary, whatever flair is appropriate. Eventually, at high enough level, some of the basic spells become essentially supernatural abilities that occur without cost or thought.

Equipment: There should be variety such as bonuses on weapons to attack with penalties during the damage phase or just the opposite. They could also have special abilities such as increased range or ability to trip or whatever one can think of and makes sense. Larger weapons might do more damage but being heavier means it is harder to hit. Thinking like that. Similarly with armor, shields, whatever. Magic items can be used to channel the user’s magic, stamina, etc., but direct those costs into effects that they might not otherwise be able to do. That is they give them a specific skill bonus for some well-defined action. Potions that restore LP, SP, and MP can be allowed, but they should be scarce. Managing these three stats should be a hard part of the game.

Combats: At any given moment, every character can say what they will do and change in mid-action as needed. Attacks are carried out, defenses, etc. The pace of the combat and what it all represents depends on the situation, but the idea is that it should be a bit chaotic. Be creative in descriptions and possibilities. Try to gauge speeds as appropriate and if needed, roll randomly to determine who goes first if it really matters. Ideally, a team working together would order themselves appropriately to not get in each other’s ways.

Monsters: Pretty much write them anyway you like. The points levels can be the same or not as you choose, but I think the main thing would be to determine the basic attacks and their levels. This can be easily scaled as needed. And don’t forget that not every monster needs to be slain. For both these and equipments, feel free to get inspired by other role-playing games. They have delved into stuff much more than I ever would.

The End of the Beginning: This is a quick sketch of the kind of role-playing that I and other hares might enjoy playing. I think this outline makes sense and allows for structure and rules without the rules being a focus. The story should be the focus in this game. Make it rich, terrifying, glorious, cinematic, funny. But make it alive. More can be added such as more ideas on skills, magic uses, equipment. Examples probably should be written. But I am a hare so don’t expect any of that anytime soon.

Inspired? Made something of this? Comment a link to it below; that would be awesome. Know of something similar? Post it below. Please.

HOTS RPG

So lately I have been thinking about designing an RPG. Actually, I think I am almost done with the basics which is about as far as I am likely to go. I have been looking at some other systems and discussions. Independently, I recently read a book which I borrowed from a neighborhood cafe. In it, it has the HOTS theory of personality differences:

  • Hares. These are idea people, creative types who get blown away by ideas and then leave them. I am a hare.
  • Owls. Strategists, planners. They make connections and plans. I can do this.
  • Turtles. Wet towels, naysayers. They take ideas and find out what is wrong with them. They drive me nuts.
  • Squirrels. Detailers. They love to go through each step in a logical, methodical way. I have done it, but man is it hard.

Such setups and views are not new, but they are still nice. As I said, I am a hare. It explains my “work ethic”. I come up with amazing ideas, pursue them for a bit, and generally tire of them, moving on. I can do the owl thing. I find being a turtle antithetical to my being. If I have deadlines and pressing needs, I can do the squirrel thing. I do have a PhD in mathematics, after all. And I like programming (even finished some programs, on occasion). But I have to say that I wish I could get my squirrel on.

The book recommends getting a team to complement one’s strengths. I would need a turtle though I do have a friend who has a knack for that. He doesn’t quite have the bludgeon to death attitude of most turtles, but he can fill in. Maybe my team can draw straws to be a squirrel.

Anyway, in my search of RPGs, I have realized that that there are three types:

  • Rules, rules, rules. This is the modern form of D&D. I currently play such a version and at times it does drive me crazy. This form of the game is for squirrels. Much like the legal code, this generates a lot of income in selling large numbers of rule books.
  • Treasure, XP! This I think is for owls. They are goal getters, methodically increasing their way to riches and power. This is the original form of D&D as far as I can tell. It has less rules and is more about having some creative BS thrown in to spice up the game not worrying about fine-tuned rules, but for the most part it is a dungeon dive–go in, kill a few monsters, grab the treasure, run away. Player skills come out in this version, not in-character role-playing. This mode makes some money with supplemental adventures.
  • Story. This is what I want. Indeed, I have been having a great deal of fun writing up and making up adventures for my D&D character over at Mord Blog. The RPG I am designing fits this need. Instead of getting stronger through adventures, it is the back stories that can increase the character capabilities. I want a structured, dice influenced, improv experience. I want the DM to say yes to crazy ideas and figure out what happens, how to handle it. And them amazing creative sparks fly. I speak for the hares! Unfortunately, my interest already wanes and it has been less than a week. There is also no profit in this. My rules will come to about 2 pages of materials and while supplements could be made, the type who like this game would really want to do it themselves.

So that is where I am at. Role-playing is fun, but it is fun for different people for different reasons. There are the rule munchkins who probably make good lawyers. They parse the rules and optimize their characters in that system. The story setting is secondary to just becoming a superhero. I play in such a system and have a superhero character, but I am not happy about it. I feel constrained. I want to be imaginative, but that does not really happen in this game.

Somewhere in between the munchkins and the story-tellers lies the overachievers. They want to win the race against time and death to be their primary concern. This can indeed be fun.

I propose the names: lawyering, dungeon-delving, and story-playing for the three different types.

Core Standards

So the time has come where the nation unites under one educational standard: corestandards

This is an exciting time to be contemplating creating math education software and texts. I just read that one of the reasons textbooks are so thick and incoherent is their attempt to meet all the different standards. Could tiny books be around the corner?

But more interesting to me is that the math standards are a 93 page document while the Language Arts/History/Science is a 66 page document. Looking at them, they are formatted quite differently.

Math is the way I would do it. One vertical column of material, progressing linearly through the grades, with overviews.

The other is turned on its side with extra wide tables and multiple grades per page, side-by-side.

The math one, I feel like I can handle and read. The other one, that makes my dizzy. Do I read down, across, diagonal maybe? I understand that it makes sense in some ways, but man, I hate that kind of presentation.

Home schooling just got easier, I think. It seems that this has been adopted by 38 states in a matter of three months.

Return to Programming

It is a New Year and I miss programming. Somehow two months have passed and I have not programmed during that time. It is hard to imagine how time slips through my fingers.

But I will begin in earnest tomorrow. I have already reviewed some of my own posts to get back into the game. I found it amusing when I wrote that this was for me 3 months later. Well, I was wrong. It is only 2 months later. Still…

The other day I imagined being wealthy. It is a good exercise. What would I do? My lifestyle would remain pretty much the same. I don’t imagine changing anything too much other than not waking up with an alarm clock (fits Apple’s plan of making a mess of alarms).  I think about my projects and interests. Many of them I could see funding others to do, setting up foundations to do some cool stuff. I am interested in following up and understanding what others do, but I don’t want to do a lot of the work myself. For example, if someone came up with a theory of everything, I would be content to understand it. I would not want to take it on myself if I could avoid it.

But when it comes to programming, if someone came up and said “Here, I wrote this parsing program for you to use.” I would not use it. I want to do the programming. Much like I want to write my own fiction, as I am doing elsewhere. I could read a ton of science fiction and fantasy, which I have done at times, but I want to create the stories. This is my passion. I would pay someone to do the editing and marketing and whatever else I wanted done with the stories. But the core construction is my joy.

And so it is with programming. But then why, oh why, are the past two months so blank with regards to it? In part, I am writing and that takes time. It is hard to pursue multiple projects.

So here is a toast to the new year and to new programming, new parsing, and the land of dreams fast approaching.

Facebook clog

Facebook’s founder got man of the year from Time. Whatever one thinks about that label, it just puzzles me.

Why did that guy succeed? And by this, I have two questions, really. Why Facebook over other social networks? But even more so, why do people like Facebook, or Twitter for that matter?

First, my pet theory is that Mr. Z was clever in using the universities to create the critical mass needed for a social network to succeed. From what little I know, Facebook started as a university-only site offering a safe, restricted space to have students communicating with each other online. And it was embraced. And then it was was opened up and people flocked to it as the family of university students, their colleagues, etc., rolled onto it.

In other words, incubate a social networking site and then open it up when it reaches critical mass.

A different view: bait-and-switch. Classic.

Okay, now for the part that gets me scratching my head. What is Facebook? I see a wall of noise. I see people posting things I generally do not care about with a few things that I do. Actually, I rarely ever see anything as I find the noise utterly annoying and don’t check often. So it puzzles me.

Are people trying to create noise in their lives? Is that why Facebook, Twitter, YouTube, etc., are popular? Is there some vacuum in their life that they are trying to fill with this? Or is it something else that I am completely missing?

So here is what I would envision being a cool replacement system that I would like. I use Google Reader (auto blog feeding into one page, for those that do not know) and I write blogs. Multiple blogs for multiple purposes. And I have installed wordpress multiple times. Annoying. But the content is different, the audience may become different (yeah, not just you two, maybe, someday). I could use categories and all, but I also want to have different themes and the feeds, well, do readers subscribe to different categories? And how do I restrict the public from some posts, but not all?

And wouldn’t it be nice if important news could get to you about people and the noise can exist for browsing when bored, but not impinging on your world.

So what I want are channel blogs or, clogs. That is, a blog with different channels, different feeds where you can easily manage what various readers (say by their email) can see and they can login to customize their feed to include whatever subset of the options given to them and to browse that noise that they do not see usually. Now, by login, I don’t mean with yet another username and password. I am not sure what I mean, but using internet id stuff or just a dark web link that they can use for that purpose. Something simple. You type in their email into the system. They get an email with instructions as to how to get their feed up and running.

And each such “user” is in the system in groups or what have you and you can manage which categories they can see, which ones are public, etc. Comments could also be tied in so that one can specify which groups can comment, which groups can see/comment on which other groups, etc. And varying themes as well.

Because I think that is what Facebook and Twitter are somehow dancing around. Customizable, semi-private streams of information. Cinfo. Or Cspsi. I like clogs.

So how can this be done? Well, a 0.8 approach would be to take WordPress and build plugins to do this. Some of this functionality already exists, but it shouldn’t be too hard to design a reader database with the various options. There is what the author uses and then what the reader chooses. It would be a single feed for each user; that would not change, but what is being fed would change.

The comments would be more difficult and securing wordpress would be hard. It either calls PHP for each page (goodbye cache), or it uses darkweb urls to avoid most snooping. And one would need to get the bots off the network. I suppose it would only darkweb the semi-private while the public posts would seem normal.

How about the reader? Any blog reader works for now as long as the user can control what comes in. Throttle the news in the feeder settings.

Comments, well, that is for the next system.

The above could almost be rolled out now. It would just work for those who have a blog and use blog readers.

But 1.0 would be a new website with apps. It would be kind of like Google Reader and WordPress.com combined. One would login and have the reader feeds to peruse and a way to create content and then tag/categorize it. And off it would go. Clogging. And of course, one keeps the feeds going so to get the news stream, one does not need to login. Ideally, the logging in for news is mainly for setting the feeds and for browsing that which one does not get in the feed stream.

Done right, this could have several competing sites all partaking from the same feed stream and generating it. No single site needs to dominate, but you would have your network intact. I could imagine some sort of simple protocol designed to export/import feed listings so that one could take the network one has and move it about.

To me, that would be what I would want to see. I like to know about what distant friends are doing, but not what they had for dinner. If they get married, divorced, have kids, switch jobs, come up with some amazing insight (like clogs), etc., etc., then that is stuff I would be happy to be inundated with. But not the noise.

Not the noise.

More on Wisdom vs. Intelligence

I wrote about web development and its relation to the wisdom/intelligence division of DnD. Now I write about science and this idea. Specifically, physics since that is what I do, but taxonomy (intelligence of categorization) vs. evolution (wise insight as to the how and why we got here) tells me that the other sciences probably can also be thought through that way.

Before I begin, just an addendum to the earlier post which ties into this one as well. When returning to programming, it requires a review of the language, the idioms, the ideas. When returning to design, such a review is less needed. The ideas of design and programming are lasting, but the bulk work of design can be done without too much technical mucking about. For programming, the language itself, the tools available, etc., are crucial to writing the code. The big ideas are there, but a lot of programming is getting the words out there. Design is about understanding core principles and then painting and tweaking–the code of css and html should not be much of a hurdle to those who have once mastered it. But javascript, jquery? Take 6 months off of them and one needs the review.

And to me this speaks of intelligence vs. wisdom. Intelligence is really skill oriented, something that the brain highly optimizes when needed and then lets it go, a bit like biceps. Wisdom is very much about intuition, about the core feeling. It relies on core lines laid down in the brain, more like the heart. It never ceases, never fades.

I study quantum mechanics and its foundations. Specifically, Bohmian mechanics which differs from quantum mechanics in that Bohmian mechanics can be explained to a first grader, to a limited extent. It cannot be explained to a trained physicist in the slightest. This is the core of wisdom. The basic idea of wisdom is that it is about having an open mind and a rush of sensibilities. It is not in the details.

Science needs its details. It is thought of as where intelligence rules the roost. Engineering notions are much more welcome than philosophical musings. And what this does is it promotes analysis over insight. Right now, quantum mechanics, or rather quantum field theory, is one of the most successful theories in all history in terms of predicting precise values of the results of experiments. But the theory itself is meaningless. That is literally true, but even figuratively, it is pretty close to it.

The whole idea of the theory is to compute the so-called S-matrix, which is, roughly, a matrix of probabilities for going from “in” states that are Scattered into “out” states.  That is what the theory is at base. That is bad enough. It gets even worse because they have various forms of infinity that creep in that they have to “subtract off”.

Now what is wrong? What is wrong is the missing of wisdom. Quantum field theory as formulated is fine as a predictive, effective theory of high energy scattering states. It is completely and utterly useless as a theory that tells us what the world is like. It has nothing in it that can make a correspondence with our reality.

Contrast that with general relativity. Space-time is curved. Okay, a little weird perhaps, but okay. I can see the stage of reality is a bit warped. It is even kind of nice. The mathematical details can be intractable, but the basic intuition is easy enough to deal with. And many of the puzzles of relativity are blatantly not computed out, but rather thought through. This gives a nice enlightenment to the whole procedure.

But in quantum, they have thrown all of that out. The state of the system is an object that is sometimes a wave, sometimes a particle. What in the hell does that mean? It collapses when we do measurements. Measurements? What in the hell are measurements? I have a table sitting in my room. Is that a wave? Can a wave sit in my room? No, it spreads. Does my table spread? No, it does not. So what are they talking about?

They have forsaken wisdom and embraced intelligence completely. Intelligence will get answers. They can compute fantastic answers. But they have no framework for understanding it. And what is that framework? For Bohmian mechanics, it is that we have particles that are guided by waves. Hence wave patterns. Completely ordinary. And intuitive. This is wisdom. Can we prove this?

Now that is an interesting question. No, we cannot. In fact, we can do a host of amazing alternate theories that are all empirically equivalent. That is, intelligence cannot decide between them as there are no facts to distinguish them. We have theories in which all particles are the same (electrons, protons, etc. are all the same kind of particle), we have theories in which only some particles exist (say electrons or those in this solar system), we have theories in which there are no particles, but rather flashes of something, we have theories in which we do have a wavy object in 3-space that is a condensed version of the monstrous quantum wave (function on a space with something like 10^80 dimensions).  So there are choices, but what we have never been able to do is make sense of the “theory” presented in textbooks.

And such is the role of wisdom. It guides the intellect. It takes that powerful tool and says, “This is what’s going on.” It provides the framework that can never be deduced.

Lest I be unfair to intelligence, one does need intelligence to build the structures. Without intelligence, we have nothing. We have religion, really. I believe religions started as people trying to write down essential truths, but without intelligence to guide them in making a firm contact with reality, they went into some dangerous territory.

But atheists should be warned by what has happened in quantum physics. There people with intelligence make fools of themselves because they forsake wisdom. Merging the two is what we all should really strive for. Learn how to do the details, but always keep in mind the big picture. And that big picture is what lasts. I can go years without touching physics, and I know the big ideas. And they guide me when I review the details. When I do not have that picture, nothing makes sense to me.

Wisdom is the boat on the river of intelligence.

Web Design as DnD

So I play DnD (Dungeons&Dragons, role-playing game). I also do web development. I do neither very well,  but I do get inspired in both. Right now I play a cleric half-orc named Mord. He has a blog. But I digress.

The DnD world has two main types of magic. Arcane magic for wizards and sorcerers; divine magic for clerics and druids. The former is obtained through study and hard work. The latter is obtained through devotion and hard work. The arcane magic is based on intelligence or rather the ability to figure things out. The divine magic is based on wisdom or rather the ability to view things in just the right way.

I think programming, meaning javascript programming and server-side programming, is arcane magic. It requires studying symbols and languages. It involves difficult mental trains of thought, but fairly straightforward in their execution. Yes, it takes inspiration to program, but it feels more like it is figuring stuff out. It is a mental journey from a blank slate to a finished product that does its task. Much like casting a fireball.

Design, by which I mean HTML and CSS mechanizations, is divine magic. It requires knowing what the end product should look like. Yes, there is syntax and language to know, but it feels like that is not the obstacle. It is an inspired creation, created on a canvas of the imagination. Much like casting righteous might.

So why I am writing this? Mainly because I find it an amusing idea. But also because it is important to understand the essential differences between programming and design. With programming, one often has a clear endpoint in mind; the hard part is getting there though one can take small little steps. In design, one often has a good grasp of the tools; the hard part is knowing what to do with them and small steps do not work as well. It is hard to make a functioning program; it is easy to implement some design. It is hard to design a great look; it is easy to plan out what a program ought to do.

I am a programmer first, a designer not at all. But I want to be one. How does one do it? For programming, one gets some book on a language and starts writing a program. Eventually it works and one is on the way. There is the paradigm of the language and the idioms of the language to learn and use, but that comes easily enough over time. For design, what does one do? I suppose one needs to look at various designs and find out what works and what does not. And then proceed to sketch out a particular design, choosing positioning, fonts, color schemes, etc. Then one can implement it using tools such as HTML and CSS.

Faster Browsing

OKay, the other day my ISP’s DNS went down and my browsing came to a screeching halt. This made me aware of DNS issues. I had an iPhone so I searched for Comcast being down and got Google’s display of tweets about the issue. And they said to try using Google’s DNS at 8.8.8.8 After looking up on my iPhone about what the heck that was and how to change it, I did so and my browsing was back on. More importantly, it was fast. Safari was blazing fast though Firefox was still a little slow.

I found a nice program called Namebench which will test all the various public and your own DNServers (why do I always want to expand the last in an acronym, such as ATM machine, DNS server, etc.?) and it confirmed that Google’s was the fastest; I did run that when my ISP was backup. It looks like my ISPs DNS is in Manassas, VA. Is that right?

In case you are interested, it takes roughly a tenth of a second for the round trip for most of the DNS’s I tried, half that for google’s DNS.

So that fixed some of my problems. But I still had more. Firefox was slow. Why? Well, I upgraded to FF4Beta and that did not fix it. I looked into the issue and apparently Firefox checks domains for IPv6 addresses which few use. So it has to receive a fail signal before moving onto the common use case. Now, I don’t understand this at all. I thought the DNS translated words into IP addresses. So why is there another level? But, even though it makes no sense to me, I found that toggling the IPv6 setting in about:config made Firefox respond like crazy.

I was almost done. I still had issues with my sites. That was what the nginx upgrade did with the WP Supercache. Now my sites load blazingly fast.

One last point that I could not track down. From what I could tell, my iMac is not caching the DNS lookups. Why? How do I get it to do so? Is it not good to do so?

Tagged