The E Myth
What most people need, then, is a place of community that has purpose, order, and meaning. A place in which being human is a prerequisite, but acting human is essential. A place where the generally disorganized thinking that pervades our culture becomes organized and clearly focused on a specific worthwhile result. A place where discipline and will become prized for what they are: the backbone of enterprise and action, of being what you are intentionally instead of accidentally. A place that replaces the home most of us have lost.
That’s what a business can do. It can become that place of community. It can become that place where words such as integrity, intention, commitment, vision, and excellence can he used, not as nouns, but as verbs, as action steps in the process of producing a worthwhile result.
What kind of result? Giving your customer a sense that your business is a special place, created by special people, doing what they do in the best possible way. And all being done for the simplest, most human reason possible–because they’re alive.
What other reason do you need?
Human beings are capable of performing extraordinary acts. Capable of going to the moon. Capable of creating the computer. Capable of building a bomb that can destroy us all. The least we should be able to do is run a small business that works.
For if we can’t do that, then what’s the value of our grand ideas? What purpose do they serve but to alienate us from ourselves, from each other, from who we are?
Our business can become something more than merely a place to go to work. It can become a place that satisfies more of ourselves than what we are today. There is a place in Business Development for the whole of ourselves.
Our business can give us more life.
Well, it appears that my post was right on time. With the release of VS 2008 and .NET 3.5 also comes SQL Server Compact 3.5 and the Sync Services framework! A long time coming, this pretty much answers most of problems related to data concurrency and synchronization for occasionally connected systems. I’m very impressed Microsoft!
So, what was a nightmare is no longer… I was worried that it would put too much emphasis on having a designer and leave out the flexibility that is needed for very complex situations, but I was surprised to find that it is indeed extremely flexible (programmatically).
Look out for some articles in the future about how to use this beast! I have a feeling I’m going to be a sync services evangelist this coming year.
P.S. I’m an MCP now. I finally bit the bullet, shrugged off my laziness, and went for the 70-536 exam… passed with an 824 out of 1000 (it was a surprisingly hard exam!). Next is 70-526, and that will make me MCTS. Yay for certifications. I’m officially addicted.
Share This Sphere: Related ContentI am still confused about when this happened because I heard a rumor on Monday that it was supposed to happen before the end of the month, but it appears that the release occurred on Monday? Strange. I’m always behind! Bah.
Anyways, I’m UNBELIEVABLY excited about this. Visual Studio 2008 and .NET 3.5 are officially released to manufacturing, and the official official release (aka marketing release) is set for February during the Windows Server 2008 product launch.
Scott Gu has more information up on his blog here about how to get it (if you have an MSDN subscription). The Express edition is available for free here. This Thanksgiving weekend is going to be one filled with unbelievable learning. I’m most excited about LINQ, extension methods, and the JavaScript intellisense support.
Wooooo freeeaaakkkiiinnnn’ hooooooooo!
Share This Sphere: Related ContentThese days, I find myself having optimistic concurrency issues inside my own brain, and I’m ashamed to say that I often consider pessimistically locking my ideas on what is right at any one moment until I can successfully update the record with a completed concept that will get the job done, even if it stops the possibility of something better being put in its place in the meantime. While a geek like myself MIGHT be able to deduce the meaning and context of this techie jargon, here it is in layman’s terms:
Anyone who knows me knows that I’m the type of person that will continue to research every possible solution to a problem, even after finalizing on a decision… it is both a blessing and a curse, however, when it comes to my recent battles with building the best occasionally connected system that I possibly can. Due to my constantly changing ideas of how the “occasionally connected” concept can best be implemented in any particular situation and my love for automating processes down to a generic level that works for (almost) anything, I find myself getting frustrated and coming to the conclusion that there really is no one-size-fits-all solution to this particular problem.
So, why is building an offline application so difficult? Let’s begin by trying to take an online system that you might be familiar with, and changing it to work offline… something simple to start with, like… Facebook?
Yes, I know its a website. But, suppose that you are going on a business trip to San Francisco (I love that place) and you want to check up on your latest comments… but on the plane, you are out of luck. If you are a die hard and absolutely must have access to your favorite websites without an internet connection, the best option you have available is to use some sort of offline caching tool that will periodically download information from these sites when they are available and store them in a way that can later be reviewed without actual access to the original information. These tools do exist (i.e. HTTrack Website Copier, BackStreet Browser), and they work rather well at providing READ access to a site.
Now, let’s say we are on the plane and looking at our “latest” comments on our Facebook profile (which evidently includes a request from one of your hottest friends that hints at a possible desire to “hookup”). After fighting to control our excitement as a courtesy to the obviously religious husband and wife with three adorable little innocent children that are surrounding us on all sides, we decide to post a response… something like, “hellz yeah, im all about gettin me some of that! when and where baby?”
Wait, what is this? 404? Page not found? Oh yeah… how silly of me to assume that I would have WRITE access to a website without an internet connection. Sure, it is doable and I’m sure that applications exist that do exactly that, but that would require the ability to fake a response to the server and saving it temporarily until we are back in a place where sanity and internet connectivity may be restored (for me, these two things typically go hand in hand). Once we arrive, the saved responses can be sent off to Facebook as if we had just written them.
Ah hah! But therein lies the problem. We didn’t just write them. Nor do we have any knowledge of changes taking place while we are disconnected from the rest of the world. Our attempts at making our own changes to the world are based on our knowledge of actions that could already be “stale” and useless. How could this happen? What if that insanely beautiful woman posted another comment, while we were on the plane, to the tune of, “I absolutely have to tell you about my new big, buff boyfriend… he’s really jealous of guys I talk to and has an appetite for destruction.” Oops. Too late now, and most likely, you have made an unknown enemy… with an appetite for destructing your head on his fist.
A lot of developers don’t plan for this situation and/or do their best to pretend this problem doesn’t exist. They follow a philosophy of last-in wins. In these kinds of systems, this scenario is perfectly acceptable. In some cases, this may actually be true. On this particular occasion, data is not being destroyed… only your pride is. A full history of the conversation continues to exist out there for everyone to see. But in most situations, this philosophy is used when UPDATING data, not just ADDING new data to it. If applied to this situation, it would mean that Facebook didn’t maintain a history of the conversation and it would have to only allow you to see the last comment made, whether it be yours or hers, and “last-in wins” would mean that you NEVER see her comment about the big bad boyfriend and the obvious undesire to hookup. In the business world, making changes to data based on old information can be disastrous.
So, what should happen in this instance? Ideally, Facebook would read your response, compare it to an updated instance of the conversation, and see that you are obviously about to make a huge fool of yourself, thereby changing it to not be so incredibly ignorant… maybe to, “Sure, let’s meet up. When and where?” which is still susceptible to ticking off the jealous boyfriend, but it at least ATTEMPTS to correct the situation without canceling it entirely. This is optimistic concurrency with a splash of intelligent and automated conflict resolution.
But since computers are not intelligent and there’s no way for Facebook to know you are a moron, the next best thing would be to alert you that new comments have been added since you left and that you might want to re-evaluate whether your comment still makes sense, allowing you to either continue to send, canceling altogether, or edit your response before sending. This is optimistic concurrency requiring manual conflict resolution. While obviously being the most accurate solution, it requires that you pay attention as a user… something else that doesn’t occur very often in the business world.
Last, but not least, there is one final option that is absolutely unacceptable in an offline environment. Just after downloading the website and prior to takeoff, you could always tell Facebook to disable the comments system on your page until you are safely back on the ground again. This sucks for several reasons… 1) she is pissed because she can’t post her comment, 2) just because she can’t post the comment doesn’t mean that it isn’t fact, and 3) if you die during your flight, she can NEVER post that damn comment! This is called pessimistic locking. This actually does work nicely in always connected systems because the amount of time between the moment you decided to post your response and the time you actually post the response is kept at a minimum, and if you lose your connection or the application crashes, it can usually be made smart enough to release that lock on the data for others to use, unchanged. These two things don’t even make sense when applied offline.
Of course, this is only a small taste of the bigger picture. There are MANY more problems associated with building an offline applications, but they all revolve around the same bigger problem… keeping communication alive and sensible, even when you are both deaf and dumb.
I’ll stop there for now, but I’m sure I’ll continue this again soon. I believe there is a big buff guy at my door with a gun and a really bad attitude.
Share This Sphere: Related ContentIn studying for my MCTS certification, I’m currently reading chapter 11 on Application Security in the Microsoft Press .NET Framework 2.0 Application Development Foundation Self-Paced Training Kit (big breath), and I must say that it is the most boring thing I’ve ever read in my entire life. I respect the ideas and concepts, but most of the chapter seems like it is being copied and pasted over and over again with a few words changed out here and there. It has effectively slowed down my “on-a-roll” vibe. Rant rant.
Share This Sphere: Related Content
I think “Sith Lord” is the best caricature reference I’ve seen thus far for what role Cheney plays in our government. There has been so much talk recently of his evil doings. Take a look at this article that talks about Cheney’s “stealth” abilities. Wikipedia describes Palpatine, aka Darth Sidious, like so:
“Palpatine is a main villain in Star Wars fiction. In the series’ timeline, he first appears as a key politician in the Republic. Unbeknownst to the public and Senate, he is also Darth Sidious, a powerful Sith Lord and a master practitioner of the dark side of the Force. He initiates and manipulates the Clone Wars to destroy the Jedi and create the totalitarian Galactic Empire, with himself as dictator.”
Well, I believe that just about sums it up. I hate that guy more than anyone else currently alive or dead in the history of our planet. He needs to be waterboarded as penalty for his crimes against our country and the world. Period.
Share This Sphere: Related ContentAfter formatting and reinstalling Vista the other day, I decided to start hunting around for some decent dual monitor backgrounds. This led me to DualMonitorBackgrounds.com. Surprised? Anyways, they have a great collection of dual monitor wallpaper available, much of it fairly high quality.
However, my post is about one in particular that will probably be a permanent fixture on my desktop for some time. This background is absolutely fantastic! David Biers did an amazing job on it. Click the image below, grab yourself a copy, and tell him how much you love it as I have!
Ahhh, the day has come once again for my “Bi-Yearly Format.” Twice a year (almost without fail), I get to the point where I’m unhappy with my computer’s performance. I do a pretty good job of maintaining my machine, but as a developer, there’s really only so much we can do. Since we are forced to stay up to date with the latest and greatest of everything, that means installing many CTP and beta releases of random development libraries that are released in addition to the many processor leeching “server” softwares out there, such as SQL Server, Macromedia Media Server, and Virtual Server. Over time, the constant installing, uninstalling, and running of these giant applications take a toll on the system, regardless of how well you maintain your machine. I’ve proven this time and time again.
So, I’m on my laptop writing this as I watch Windows Vista install once again. If all goes well, I should have my computer, with my most critical software applications installed, back by tomorrow afternoon. Again… if all goes well. ![]()
I went to Club Space tonight to see Paul van Dyk. Let me tell you… clubbing is such a waste of time UNLESS YOU ARE AT CLUB SPACE SEEING PAUL VAN DYK. What an unbelievably amazing experience. I’ve never experienced such a rush of energy from so many people at once. I had so much fun that I don’t remember which leg went numb first, and was too busy dancing to remember to drink (I had one screwdriver the entire night, lol). Anyways, here’s a quick clip of the experience so you can try to understand how incredibly amazing it really was. You can see me briefly at the end when the lights flash.
PVD @ Club Space, Miami, June 16, 2007
Add to My Profile | More Videos
Alright, I’ve been waiting for quite awhile to see a WPF demonstration that really made me see what could be done with WPF (besides Microsoft’s own Expression tools, of course… they don’t count). It appears as though Vertigo Software has finally made me see the light.
Take a look at Family.Show, a very well written geneology genealogy demonstration built on WPF. This is by far the most functional demonstration I’ve seen to date. Maybe I’m a little behind on my WPF news, but this is simply astounding to me. My ache for VS 2008 seems to grow more and more by the day thanks to folks like those at Vertigo. Impressive.
