- Most Recent | Since 2004
- List View
- Archive
- June 22, 2007
SQL Spellbook
June 22, 2007Read moreYesterday I extolled the joy of writing down nuggets of information as a way of “binding the magic” to yourself in a modern spellbook. My goal has been to get past my noob database status and start creating a new spellbook for myself. Since a lot of the SQL information is already on the web, I’m planning on pulling it all together first in this wiki page.
If you are already registered for the PCEO wiki, you can also add your own notes and suggestions. For everyone who’s offered to help, here’s the place you can do it. Just heap the stuff in, and I’ll structure it as I go.
The end result, I am hoping, will be a very concise set of commands that are suitable for hand-transcribing into a spellbook. And possibly, this will also serve as the foundation for a very nice downloadable PDF booklet.
» Dave’s SQL Spellbook Development Wiki Page
If you want write access to the wiki, you will need to register first.
Note: If you’re confused by the “Guild” stuff as you click around, it’s because the wiki is on the same site that our World of Warcraft Business Networking Guild. I’ll be fixing this as I transition my entire site to Expression Engine over the next month or so.
- June 22, 2007
Virtual Reality and Circa Mashups
June 22, 2007Read moreA reader recently contacted me via Flickr to say hello, and checking out his blog I was very intrigued by the combination of virtual reality, social media, and hot videos of levenger products doing things that are, shall we say, not listed in the main catalog. Oh, it’s completely tame; the combination of social media and productivity tools is just too interesting for me not to pass along.
» Ryan Rasmussen’s Collaborative Ideation.
- June 20, 2007
Modern Spellbooks
June 20, 2007Read moreAs technology gets newer and I get older, learning new things becomes frustrating. For example, I want to learn how to work with MySQL for web development, program 3D games, and play the guitar, but my lack of ability in these areas prevents me from achieving my overall life goals. There’s also day-to-day stuff that, as a 40-year old American male, I feel I should know: balance my household finances, invest in the markets, ride horses, and flirt with women without throwing up. These are tasks that are, from my perspective, hard to learn for several reasons: a lack of good mentors, reference materials, and classes. And that’s even without mentioning the magnetic properties of my ass with respect to my couch.
When I overcome these obstacles, I still hit the proverbial brick wall; for whatever reason, my brain can’t quite deal with the important task of learning before getting bored or sleepy, and I end up going to get a sandwich instead or watching Age of Love on TV.
It’s easy to presume, as I join the ranks of the Newly Old, that my mind is becoming less flexible. This is the common wisdom; for example, people say that it’s tough to learn languages when you’re older, and that we should have done it when our minds were most facile: around the age of 6, I think. Although I don’t have any studies to back me up, I’m pretty sure that other factors are greater contributors:
- We’re self-conscious about not being competent in front of other adults, so we iterate less and thus learn more slowly.
- We’re not particularly motivated, given that mass media tells us it’s supposed to be easy. When it’s not, we give up.
Since we’re all grown up and have our own money, we expect to be able to buy knowledge and expertise readily. It’s really amazing just what you can buy, and we’ve grown to expect the easy access or we get real mad. It doesn’t help that our advertising, at least here in the USA, tends to emphasize the quick and easy fix. We expect instant gratification, and thus we’ve forgotten how hard it was to learn our first lessons, and we’ve also perhaps forgotten how to learn for ourselves. I wonder if kids these days even know what it’s like to have to wait for anything.
A LESSON FROM THE PAST
Yesterday morning I was doing my morning coffee thing, glumly looking at all the things I wanted to do that I was unable to follow through with due to a lack of understanding. One of the main ones has been transitioning my blog to Expression Engine, which I think will allow me to more easily expand the content offerings on my website while improving overall service. I had met up with Mark J. Reeves recently for lunch recently to catch up, and asked him about the possibility of writing a web service that would save data from my Flash Apps and integrate with the Expression Engine user management system. Mark, who’s a competent execution-oriented web developer, told me exactly what I needed to do: write some SQL queries to access the pertinent database tables, maybe even repurpose the underlying blog engine to store data for me in custom fields. The problem: I don’t know SQL, or what tools to use, or even how to talk to the database. I am paralyzed by not knowing what the best practices are, haunted by issues of scalability and security, and most importantly of all: I was not looking forward to learning all that stuff. I could not readily apprehend the structure of the material, and therefore I could not approach it logically.
Reflecting on this experience, I found myself reminiscing about my youth, when I first started learning about computers. Today, computers don’t scare me at all, and it’s because I have experienced them nearly to the transistor level of operation. As a result, I can look at a computer system and “read its aura” to figure out what’s really going on. That is now, but when I was in the 7th grade, computers were as mysterious to me as, um, MySQL is to me right now. I vowed that I would master the computer and learn all its secrets. Somehow.
And so I started my notebook:
Some historical notes first: this actually isn’t the original notebook: it’s a manually-transcribed copy. The original copy went to a kid named Derek Bumpas, which I handed to him just before I graduated; he had a good attitude and was eager to learn even though he was in the 8th or 9th grade. He recently contacted me, some 20 years later, to say that getting that notebook had meant a great deal to him, and had helped put him on his path in computer science. That was really nice to hear.
When I first started taking these notes—recall that there was no Internet, hard disks, or multi-window multi-tasking operating systems—paper was the only way to simultaneously take notes and learn. Every nugget of wisdom gleaned from hours of tinkering was transcribed, as cleanly as I could, into this notebook so I could share information with friends at school. There were all kinds of things in the book, all of them interesting to me. It was, in essence, my spellbook. Here’s some of the entries:
INCANTATION
An Applesoft BASIC routine to reformat a long string so it would display nicely on a 40-character wide text display; in today’s desktop publishing terms, it does “ragged-right justification” for a monospaced font. This was a common task that I had to solve in my various text-based programs, as I was pretty obsessed back then with things looking right. I finally wrote it down…my first incantation.
TRANSMUTATION
As a high school kid without any money, we often “had” to copy software. The difference was that software back then came on 5.25″ floppy disks that were copy-protected using peculiar algorithms; it was a fun challenge to try to figure out exactly how to elegantly disable them by rewriting the program code. This was my real education in computer software debugging. The code listing shown here is written in 6502 assembly language, revealing the method behind the protection. By understanding the principle behind the interaction with the disk hardware’s imperfections and the software code that exploited them, a copy-protected disk could be transmuted into one that was easily-copied with everyday copy utilities.
SORCERY
As I started to understand assembly language, I learned how mapping the interface between code and hardware (the “input/output”, or I/O routines) allowed one to zero-in on the game logic itself. For example, say I wanted to be able to change a shooting game so I had “unlimited bullets”. By looking for the specific code that read the joystick button state (e.g.: is it pressed?) I could easily find the code that was responsible for checking how much ammunition was left. And once you decode one piece of code, you can infer the purpose of surrounding code. I was able to modify the game Beyond Castle Wolfenstein (the original Apple II one from 1984) to give me a 30-round submachine gun with burst capability, and rewrote the opening story to explain why you had one in the first place. This changed the nature of the game quite dramatically. By documenting the logic behind the software and noting the location of critical routines, the granting of unnatural abilities within the game world became possible.
ENCHANTING
I attended an American high school in Taiwan, and software was difficult to find for teaching purposes. Taiwan being a rather gray area in terms of copyright, my science professors would sometimes enlist my help to help them make backups of the US-sourced software; the humidity and mold in Taiwan tended to eat disks very quickly in the sub-tropical environment. Most of the time, educational software was protected with fairly straight-forward techniques using off-the-shelf protection systems. Because they were rather generic, the same general process could be used to remove the locks with just a few steps. In this photo, I wrote down the process of disenchanting this particularly piece of software, which required the use of a specialized instrument called “Advanced DeMuffin”.
THE PHILOSOPHER’S STONE
And then there were the great unsolved challenges against which I beat my head. Electronic Arts had a very advanced protection routine that was designed specifically to defeat the casual copy breaker; you needed special hardware installed in your computer to even get at the code, and then you needed to understand it. I spend many hours trying to understand just how Electronic Arts’ incredibly fast boot system worked, and once I understood that I tried to trace how they were doing the copy protection. Smarter crackers in the U.S. had already done it, but it was beyond my abilities and knowledge to follow. Here’s a fragment of my research on the area…to me, to be able to understand this code would be like transmuting lead into gold. I should search online to see if any back issues of Computist describe this. I still kind of want to know how it worked.
THE MODERN SPELL BOOK
It’s been years since I’ve kept any kind of notebook like this, with the exception of my patentable ideas journal. There’s so much material out there now that the task of learning is equated with finding resources: the right teacher, book, or online tutorial is perceived as the “magic bullet” that will get things done. However, what I have forgotten is that the process of distilling these ideas into a form that I can invoke at will is necessary as well. It’s my missing link.
I went out and bought some of the larger Quadrille-ruled Moleskine Cahiers ($14.95 for 3), and pasted a paper label on the front of it (the picture is at the top of this post). The idea is to start recording the same kind of notes that I used to do in the 7th through 12th grade; looking back, it was a highly productive period of time for me, though I didn’t recognize it then. I’m thinking of just writing down really basic things that are currently mystifying, by hand, for reference in this book. I know there are plenty of reference books and online sources that purport to do this already, but do you think any aspiring wizard would buy their spellbook off-the-shelf? NO WAY! They would be told by their cantankerous mentors to go find a sturdy book and pen, and transcribe their spells themselves by hand. Because that’s the way you learn, and that’s the way you bind the magic to yourself.
WHAT WAS OLD IS NEW AGAIN
Ok, you may have figured out that this whole “spellbook” thing is just an amusing way for me to start learning again. The main takeaway is this: by assembling my own book of “recipes” that actually make something, I’m much more likely to maintain some kind of focus on learning. In the past, what I’ve done is just read everything and picked out the main principles as they’ve revealed themselves. What I have forgotten is that transcribing the nuggets is just as useful. I think I probably forgot this because it’s so easy to just let the actual implementation replace documentation: Photoshop files, HTML, javascript libraries, etc. I don’t think this is a good foundation, because you can cut ‘n paste your way very quickly into the structural equivalent to spaghetti code.
Packaging the information into nuggets as I learn, which I used to do when I was younger, may be the way for me to approach the new technologies that are making my head hurt now. As an adult I had expected things to get easier, but really they are just as hard. Fortunately, I now remember how I worked through the challenge.
We’ll see how it goes. In the meantime, I’m just pleased with the way my new SQL notebook looks :-)
- June 19, 2007
Designing Forms for Resource Planning, Part I
June 19, 2007Read moreI’ve been quite busy—or more accurately, pleasantly distracted—by all the cool people I’ve been talking to in the past few weeks. I’ve also been recently booked on some interesting projects that threaten to take up my time up to August 31st. It’s a nice problem to have, though I am finding myself wanting some kind of way of predicting my future time.
Right now, I’m relying on Google Calendar to mark and reserve chunks of time in the future; the built-in reminder system works pretty well, and the printed output from the browser are surprisingly nice. I was reminded, though, of a couple of forms I had given everyone a peek of in Guess the Form last January. I’d basically sat on it until now, so to make up for that (and a slow summer posting schedule), I’m going to just release them and see if people find them useful. A couple of people had asked about them in email, and I’d sent them some drafts. I haven’t heard back though, so I’m assuming the forms didn’t work out that well. Sigh.
Anyway, here’s the two variations I made.
THREE WEEK RESOURCE PLANNING
This is basically a mashup of my compact calendar with the timegrid concepts that you may recognize from the Emergent Task Planner and the Resource Task Tracking. It’s designed to allow you to allocate deliverables (and the amount of time required) to certain days in the future. The addition of the calendar may make this a more useful form, though I’m not sure.
This is the form that I originally showed back in January, so now everyone finally has a chance to try it out. There really isn’t much different from that earlier version, except some updated serial numbers and the marking “DRAFT RELEASE” at the bottom. The design isn’t tweaked to completion either, so colors, proportions, and line weights are still a bit off.
EIGHT WEEK RESOURCE PLANNING
For looking even further out, I had made a variation that uses less detail than the three-week version. To get more rows in, I assumed that half-day allocation was good enough. For me, this time unit probably would work pretty well even if I’m allocating 1 or 2-hour tasks was out in the future. I figure that time will get lost anyway to administrative overhead. Allowing myself some buffer time is a good thing anyway…but not too much.
You’ll notice that there’s a lot of space to write down stuff. I think the information here might be job codes or numbers + the name of the task or client. You can scribble the number into the timegrid directly. You might use colored markers to pre-allocate vacation days and other time.
USAGE
I really am not sure the best way to use these, which is why I’ve decided to just release them as unlocked PDF files and see if anyone can discover best practices for them. Think of it as a collaborative design exercise.
If you think of something interesting to do with them, or make a modification to share, register on the Wiki and feel free to edit the page to add your take on the design. Registered users should have the ability to upload files too, so let me know if that doesn’t work. This way, I will stop being the bottleneck for people who want to contribute their ideas. Will it work? I guess we’ll find out.
Feel free to play in the Wiki! It’s your space to express your ideas and concepts. If you see anything that looks obviously like abuse, feel free to nuke or re-edit things.
Some random thoughts:
- I would probably want to print these larger than 11×8.5″ so I had more room to write. And since these sheets would theoretically be in use for several weeks, I’d print them on more robust paper stock than usual. Cardstock or lamination might be the way to go.
I’ve thought that using post-it notes as markers (particularly those very tiny tab ones) might be a good way to show utilization. One problem is that this sheet really only works for one resource at a time. You could print multiple ones for each resource.
This is one of those things that probably would be better suited to a software application GUI.
DOWNLOAD FORMS
<
p>You’ll find them on this wiki page. Don’t forget to register if you want to upload or annotate any of the existing pages. Thank you in advance for participating!
- June 14, 2007
Two Emergent Task Planner User Mods
June 14, 2007Read moreA couple of Emergent Task Planner enthusiasts asked for permission to post their modifications online. I think that’s awesome, so I’m sharing what they sent:
EXCEL VERSION
This is a neat idea I hadn’t thought of doing: “Terababy” over at The Forgotten Milk has made a variation of the Emergent Task Planner in Excel format. It is a very faithful-looking rendition of the version 1.0 ETP form. I haven’t personally evaluated the excel document [in daily use] myself to see what it is capable of doing, but I’d be curious how it’s used by people.
FRENCH TRANSLATION
Frédéric Mikusek figured out a way of modifying the ETP to translate it into French, which is pretty awesome. I took 4 years of high school French and never really learned how to say anything, but recently my interest has been renewed because a LOT of the good cheese in the world is in France. I am stupide not to go.
Frédéric also has a cool picture of a document stand made out of an old CD-R case, using an ETP form by way of example. It’s pretty cool :-)