tag:blogger.com,1999:blog-121385262024-03-13T14:13:03.753-07:00RandomaginationChris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-12138526.post-12563096585782508972008-05-28T23:52:00.000-07:002008-05-29T00:33:56.222-07:00Thoughts on EmbeddingRecently, during one of my long runs up and down the tortuous hills of San Francisco, the thought occurred to me that we have a lot of content being shared between sites. There is an increasing desire to host content from one application inside of another. One solution that sites like YouTube have used is the publishing of what is known as an embed code. At the time, I was thinking that it would be interesting to provide a service that could centralize the logic in creating different types of embed codes for different types of services. The concept was to abstract out the processing of embedding content to a higher-level service that I would create. Having come from a very service-oriented coding style at my previous employer, I had my doubts that this would be effective because you are effectively abstracting to another proprietary format. It might be better, but it is kind of more of the same. <br /><br />Today, at Google I/O, I was approached by a couple of Powncers who were advocating on behalf of a service called OEmbed. It is meant to provide a common way of embedding external content into a given website. It involves introducing a level of abstraction on the consumer side of the embed process whereby a call is made to the content source to get its embed code. <br /><br />I tend to be highly skeptical of introducing layers of abstraction, hence my rejection of the aforementioned idea that I was kicking around while running. However, in this case, there is an indirection that I think could be extremely powerful, making the abstraction worthwhile. OEmbed requires the content source to translate a given request into a corresponding embed code, alleviating the content container from having to handle the translation itself (which is how sites like Pownce have to do it presently). In this way, content containers can take advantage of a common framework (e.g. OEmbed) to translate certain markup (e.g. hyperlinks to videos) into actual embed codes, and the proprietary logic remains inside the content source. <br /><br />There is still much I need to research into the concepts of OEmbed, but it generally makes sense to me. Hopefully, I can convince others of this line of thinking and/or help shape it as grows.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-43145765001761998072008-03-15T09:22:00.000-07:002008-05-29T00:35:20.677-07:00DefinitionsThese are some terms myself and friends have coined over the years to describe situations we have been in.<br /><br /><span style="font-weight:bold;">Nuts-Out Development</span> – when a development team makes changes to code intentionally without testing the changes or ensuring that the changes do not impact other developers. For example, a developer may do this to cram something in before a deadline. In this scenario, a developer effectively “hangs his nuts out there” to be stepped on.<br /><br /><span style="font-weight:bold;">Child-King Syndrome </span>– when a manager is elevated too quickly through the ranks. For instance, if a prodigious developer is made a manager too early in their understanding of development process. As a result, they may have a deep sense of responsibility, but fail to know how to act effectively. Furthermore, they are stunted in their decision making abilities because they feel an obligation to their role (i.e. decision maker) more so than the goals of the group. Subsequently, ideas are often fast-racked without exercising full diligence with disastrous results.<br /><br /><span style="font-weight:bold;">Clode</span> – code that strives to be as complex as possible, the goal being to extinguish simplicity in all of its forms.<br /><br /><span style="font-weight:bold;">Black-Ops</span> – organizing a team of developers outside of the main development team, under the radar of management, to try and produce a prototype or rewrite of code that would make the original product inherently better. This is a smell that indicates that the team as a whole is not sufficient.<br /><br /><span style="font-weight:bold;">Complexifilication</span> – the name says it all. Over-complicating things.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-88946448830621621062008-03-15T09:12:00.000-07:002008-03-15T09:20:44.768-07:00MigrationI keep my plan for world domination in a handful of pages in my <a href="http://www.backpackit.com">Backpack</a> account. There, I track my ideas on entrepreneurship, leadership, coding, socializing, and general self-betterment. The pages are starting to get too long, so I am migrating a lot of the more general content to my blog. Therefore, there may be a lot of blog posts shortly after this one.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-41586120040404224052008-03-15T08:50:00.000-07:002008-03-15T08:51:43.165-07:00Thoughts on Web 2.0 CompaniesI am particularly interested in companies that do not have a business model based solely on the Internet. For instance, without a web component, companies such as Amazon, Prosper, and Zipcar are in effect, a bookstore, a bank and a car rental company. They could still remain relevant without a web presence. However, their approach to their business is to concentrate on web technology in ways that enable them to outperform their brick-and-mortar equivalents. These companies exhibit some key characteristics that I like.<br /><br />First, these kinds of companies have a sense of tangibility to them. Doing business with them directly affects your physical reality. For instance, when you buy a book through Amazon, a package arrives in the mail containing it. When you take out a loan on Prosper, your bank account correspondingly increases when the loan is funded. When you reserve a vehicle through Zipcar, a car is waiting for you in the parking spot specified. Contrast this to Facebook, where friending someone results in gaining access to their information. Nothing truly happens in the physical realm. I can respect the power of information-only business models, but I just cannot seem to shake the sense of unease that they impart in me.<br /><br />Second, because of their nature, companies such as Amazon, Prosper, and Zipcar will make some iota of money from every transaction that is ever undertaken by a customer, even the very first. Obviously, this does not necessarily correlate to profit, but it does seem to be a simpler way to eventually get there. Making money from the very start is an important characteristic of a company to me. It seems to encourage slower growth and offer more opportunities to make adjustments based on your customers. Certainly many people have made an immense amount of money by building huge audiences very fast and then selling advertising for them. However, I think what is overlooked is how much of an investment it really takes to build up and more importantly, maintain, a target-able audience. The advertising business model is glamorous, but I do not think it is for me.<br /><br />Third, these types of companies are subject to physical constraints. There is only so much warehouse space for books. There are only so many delivery trucks in the world. There are only so many parking spots available. These businesses are subject to the natural forces of supply and demand. If a ZipCar sits in its spot unused, it is costing the company money because it is depreciating in value and it is taking up a rented parking spot. Therefore, a surplus of ZipCars is a liability to the company and carefully monitoring the number of ZipCars necessary to fulfill local demand is of the utmost importance. Contrast this idea with search results. If a search engine constantly returns a surplus of search results, is it a liability to the company or advertisers? Not particularly. Information has become so cheap to store and transport that it is often cheaper to simply return all potentially relevant information available rather than exert the energy needed to be sure all results are relevant.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com1tag:blogger.com,1999:blog-12138526.post-11738287884732227102008-03-07T15:28:00.000-08:002008-03-07T15:36:21.869-08:00SxSW: Interesting Idea #1 of ManyOne panelist talked about having his members of his team keep office hours, similar to a professor. This is different from flexible hours in that the emphasis is on coordinating the individual instead of the team. Teammates who need one-on-one, face-to-face time can plan around office hours. Otherwise, formal team meetings can be done over virtual conference and individual development can occur offsite.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-12379357608065014282008-02-18T22:01:00.000-08:002008-02-18T22:40:35.261-08:00Wrong Makes RightLately, I have been reading <a href="http://www.amazon.com/Golden-Ratio-Worlds-Astonishing-Number/dp/0767908163/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1203400908&sr=8-1">The Golden Ratio</a> by Mario Luvio. About halfway through, the author addresses the studies of Johannes Kepler, who made an attempt to explain the relative orbits of the planets using polygonal geometric primitives (see image).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/2/25/Kepler-solar-system-2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://upload.wikimedia.org/wikipedia/commons/2/25/Kepler-solar-system-2.png" border="0" alt="" /></a><br />What intrigued me was that Kepler's model had a resoundingly positive impact on science at the time, even though it would eventually be debunked as utter nonsense. The author argues that this is probably the most significant example of completely incorrect information unlocking new paths of genuine scientific understanding. As a scientific society, we strive to build up networks of facts to satisfy our hypotheses, and a hypothesis unable to stand on fact is not proven and therefore has no perceived value to us. By that rationale, how could something based on loose calculations and unproven theories lead to anything relevant? I think that the dilemma stemming from the example of Kepler's model reveals how truly human the pursuit of knowledge is. This led me to reflect on how often in my field we encounter situations where the scientific approach may not validate a particular idea, and the idea proves false, but the simple act of pursuing the idea has uncovered value.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-52220891003326382532007-07-22T21:56:00.000-07:002007-07-22T22:20:03.684-07:00Latent PotentialI was reading Guy Kawasaki's 'Rules for Revolutionaries' today, and he mentioned an interesting study. Essentially, the study asked the question "Why did birds evolve wings?" A wing that is 5% of the size of a regular wing is worthless for flight. So what evolutionary advantage would there have been to develop the nubs that would eventually turn into wings? Scientists discovered that wings originally evolved for warmth and not flight. Furthermore, they hypothesized that evolution may leave behind opportunities of 'latent potential'. Hence, when an evolutionary path reaches a certain measure of maturation, there may occur an opportunity to branch or change in interesting and beneficial directions, such as the case of the wings of a bird. <br /><br />This is of keen interest to me as, like Guy Kawasaki, I see a tremendous parallel to the computer industry. The companies that I feel drawn towards seem to have this amazing ability to not only identify new opportunities, but somehow leave behind paths to other potential opportunities within their own work. I also think that companies like Google are now trying to acquire companies with high latent potential, even if the acquired company itself may be unaware of it. <br /><br />There must be clues in nature to as to what kinds of decisions raise the chances of a potential opportunity. Personally, I think that simplicity, organization, elegance, efficiency, fluidity, and exposure are the keystones of latent potential. For instance, clean, organized code that is exposed to many developers, will inevitably be easier to work with and may as such, be prime for new opportunity. I think that management structures that are simple, efficient and organized, yet remain fluid, are going to produce the most innovation.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com1tag:blogger.com,1999:blog-12138526.post-89997119904783130832007-07-22T20:12:00.000-07:002007-07-22T20:23:07.100-07:00Me: The Domesticated AnimalArgh! Damn you free Google food! You have spoiled me already. My refrigerator is devoid of food because for 5 days out of the week, I have no comprehension of the necessity of storing reserves of snacks, meals, and otherwise. It only occurs to me on the weekends. Usually, Saturdays are exploration days. I'll venture out and try out one of the higher ranked restaurants I find on <a href="http://www.yelp.com">Yelp</a>. However, by Sunday evening, I have run through any leftovers and make my way to the fridge. I open the door only to find one bottle of water, a half of a bottle of orange juice, a nearly empty jug of milk, and a wedge of brie cheese. I have no other food and all of the grocery stores nearby have closed for the day. Sonuva! I have become an animal that can no longer survive in the wild.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-69512791718891139802007-07-14T23:00:00.001-07:002007-07-15T01:09:30.332-07:00Facebook PhenomenonSo now that I live in San Francisco and work in Silicon Valley, I cannot help but get caught up in the drama of the technology of Web 2.0 world. Recently, I read a rumor that Microsoft may be in the market for Facebook at the cost of $6 billion dollars. Are you kidding me? Word on the street is that the executive team at Facebook has in the past turned down offers as high as $1 billion dollars. Are they insane?! Take the money! Screw the IPO!<br /><br />Yes, everyone I know uses Facebook and yes, I frequent it myself and maintain my own profile. However, let us think about this rationally. It doesn't make the kind of money to justify $1 billion dollars or more. I think too many people have bought into the idea that millions of eyes will inevitably lead to millions of dollars of revenue. The more tech savvy will take it one step further and suggest that millions of eyes will lead to millions of dollars "once the problem of monetization is solved!" Once the problem of monetization is solved? Seriously? I have had real conversations with really smart people who buy into this line of reasoning! In a for-profit business model, isn't <i>the</i> fundamental problem <b>making money</b>? How are you going to learn how to make money and evolve your business accordingly if you spend the bulk of your growth cycle on capturing and articulating your audience?<br /><br />This is not the same situation as Google. Google innovated their way towards a solution to generating revenue. They did so almost immediately after Google started getting remotely popular. Google anticipated a need to actually make money well before it became time to turn public. So far, what have we heard from Facebook? Sure, maybe peoples' interests and the interests of their friends may yield decent targeted advertising. However, people are searching for everything on Google. People are searching for people on Facebook. There's a BIG difference.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm1.static.flickr.com/219/535491752_e2d8e3d95d.jpg?v=0"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://farm1.static.flickr.com/219/535491752_e2d8e3d95d.jpg?v=0" alt="" border="0" /></a><br />Facebook also recently built and deployed a glorified widget platform. In my opinion, it is masquerading as the innovation necessary to bring Facebook to the level of uber-profitability. I do not think it has the potential to turn lead to gold as Mark Zuckerberg's keynote at f8 would lead us to believe. The concept of the mash-up has been around for a while and I don't think anyone has really made a killing as the middleman in such a model (read <a href="http://www.leahculver.com/2007/06/19/widgets-suck/">Widgets Suck</a> for a decent opinion as to why).<br /><br />My prediction is that Facebook is going to hold out for an IPO. The IPO is going to blast off initially because far too many non-technical investors will hype it up without fully understanding it. Then, with all of the financial documentation that will become available, smart people will start to recognize that there is no real money there to justify a high market capitalization. The stock will tumble and the company will be worth less than anything offered before it went public.<br /><br />Maybe I'm just a pessimist, but if I were 23 and had built a website that was receiving offers of $6 billion after only 3 years of existence, I would take the money and RUN! Seriously, you made it to the big leagues. Cash out, keep one eye on your creation, and if glory is what you want, start the process all over again. Remember, Steve Jobs is only Steve Jobs because he built Apple from the bottom up <i>twice</i>.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-46345795429000473492007-07-12T22:53:00.000-07:002007-07-13T00:24:21.325-07:00iPhone-errificLuck is something that I must have quite an abundance of. Eight months ago, I managed to find a Wii, three weeks after its release, without waiting in line or resorting to eBay. Now, an iPhone found its way into my life, under similar circumstances.<br /><br />Living only a block away from the San Francisco Apple store on iPhone Day, I could not quell the overwhelming desire to cruise by the line of iPhone campers and see what kind of turnout there was. It was simultaneously an awesome sight to behold and a dream crushing reality to face. It looked like the iPhones were going to sell out immediately. So I headed to work, head hanging low.<br /><br />Later that evening, I casually wandered over and found the Apple store completely packed. I waited about 15 minutes trying to get my hands on one of the demo iPhones, but could not break through the crowds. I glanced over at the check-out line and noticed that it was conspicuously empty. One of the attendants read my mind and stepped over to let me know that there were still iPhones in stock. With a 14 day return policy, the little muse on my shoulder convinced me I could always return it. (Riiiiight.) So I bought one.<br /><br />It has since been two weeks and because a friend asked for my perspective on it, here it goes.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ajQO8WqsTvg/Rpcnfiq1AnI/AAAAAAAAAAM/WJCcsV9mvB4/s1600-h/apple_iphone_1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_ajQO8WqsTvg/Rpcnfiq1AnI/AAAAAAAAAAM/WJCcsV9mvB4/s320/apple_iphone_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5086577726974132850" border="0" /></a><br />There is no way I am going to return it. At this point, it is like an extension of my being. Over-dramatic? Perhaps. However, I have turned to it for virtually everything. Everything except work. I have come to the conclusion that if you can detach yourself from work, the iPhone is going to make your life better. And if you can't, it is probably not really meant for you. Give an HTC a try instead. It's what I used before.<br /><br />The first thing I did was sync my music with my iPhone. This meant I could leave my iPod Nano at home from that point forward. Given that I have no vehicle and walk everywhere (by choice), having my music library to go through really helps make the distance seem less. I love the fact that the volume buttons on the side still respond even if the phone is in its locked mode.<br /><br />Next, I pulled down my contacts from <a href="http://www.highrisehq.com/">Highrise</a> and loaded them into Address Book. My Address Book synced right through to my iPhone without much of a hassle. Somewhere in the process though, the pictures associated with my contacts were lost. It was a good time to update many of the pictures anyways, so I spent the hour it took to crop pictures off of <a href="http://www.facebook.com/">Facebook</a> and update my contacts. The contact list on the iPhone is good enough, but I could not help thinking what might have been had they used CoverFlow to page through contact photos to find your contact.<br /><br />Since I just moved to San Francisco, searching for an apartment was a huge priority. Google Maps on my iPhone proved invaluable in finding directions from open house to open house. The built-in PDF viewer allowed me to read Craigslist entries I had printed off and mailed to my iPhone. The combination of the two functions most certainly allowed me to see more apartments in a shorter amount of time and in a more efficient schedule.<br /><br />I have been using the camera on the iPhone for candid photos, eliminating the need to carry around my Sony DSC-W80. The quality seems decent enough and I love the camera shutter effect. The photo viewer is really awesome. I even synchronized some of my photo albums so I can carry them around with me to show people. I never thought I would use my iPhone for that.<br /><br />I am turning to my iPhone to help reduce the amount of TV I watch and to give me an adequate reason to skip cable altogether. I started purchasing Multi-View Passes for shows like The Daily Show and The Colbert Report off of iTunes. Every morning, the latest episodes download and synchronize to my phone. Now, I can watch some television while riding the train from San Francisco to San Bruno, which is all I really need. The playback of videos, both iTunes and YouTube content, is awesome. The screen is amazingly clear.<br /><br />I use the web browser fairly frequently, but mostly for applications such as <a href="http://www.tadalist.com/">Ta-Da List</a>. There are a handful of ideas I have for iPhone applications, so I am constantly seeking out other iPhone applications to see what other people developing and how. I downloaded iPhoney and started developing some simple projects. I love that iPhone's flavor of Safari has webkit built in.<br /><br />The keyboard is interesting. I'm used to stumbling through the UI of my HTC substituting my thumb for the stylus, so I have developed pinpoint thumb accuracy. Many of the problems people are having with the keyboard just have not bothered me much. I do wish that in text messaging and email applications there was the ability to flip to landscape mode.<br /><br />Other than that, I write notes to myself using the notes application sometimes. However, that feature is nothing special. I check the weather on my phone all of the time because its simply faster than waking up my laptop or finding the Weather Channel on TV. I need to figure out a way to sync my gCal with my local Calendar before I'll really be able to take advantage of my iPhone's calendar features.<br /><br />There you have it. I eliminated two devices from my pocket - my iPod Nano and my Sony digital camera - because of my iPhone. I travel lighter and have more access than I ever had with any phone before. People are complaining about the EDGE network, but I guess I love my iPhone enough to look the other way. I'm finding new uses for it everyday.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-85875402516058280542007-07-07T20:05:00.000-07:002007-07-07T20:43:50.681-07:00Apartment FoundAwesome news! I found an apartment, secured it and signed the lease this morning. I'm going to be living in the Nob Hill neighborhood of San Francisco. It is a 1 bedroom on the 4th floor of an older building near Grace Cathedral.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm2.static.flickr.com/1029/749598390_464fdf9e8d.jpg?v=0"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://farm2.static.flickr.com/1029/749598390_464fdf9e8d.jpg?v=0" alt="" border="0" /></a>More photos (<a href="http://www.flickr.com/photos/zacman85/sets/72157600703964525/">Flickr</a>) ...<br /><br />This ends a solid two weeks of searching for an apartment. I am counting myself among the lucky as I have heard it can take upwards of 6-8 weeks to find a place on average.<br /><br />I started out working with an agent who showed me around the city. Unfortunately, neither she nor I truly knew what neighborhoods would work best for me, so the day we spent cruising the city was rather unproductive in finding me a place. However, I quickly recognized which neighborhoods to limit myself to. I chose Nob Hill as my favorite because of the quality of properties I had been seeing around there and the proximity to downtown San Francisco and the Polk St area.<br /><br />My approach was to basically save Craigslist postings into PDF files, and then organize them into folders for each of the upcoming days. I also created a folder called "By Appointment". I would do this virtually every day, aggregating postings throughout the week. That way, by the time I left for work in the morning, I would know which apartments were showing that day. My new iPhone rocked for this purpose, as I would email the bunch of PDFs to my phone and then use Google Maps to plot out my course as I walked from place to place.<br /><br />I would try to hit 1-2 apartments in a specific neighborhood almost every night. On the weekends, I would try and see 3-6 or more (schedules permitting). <br /><br />Pretty much every apartment, regardless of neighborhood, would have tens of people show up to see it. It was ridiculously intimidating. Often, there would be absurd tasks to help boost your chances. At one place, they simply ranked applications by line order. At another, the agent made it a race to fill out the application. First one to finish got priority. Having an expiration date on my current housing situation, these kind of games were really grating on my confidence in finding a place in time. <br /><br />As of the middle of this week, I decided to change my strategy a bit and started actually following up on the "By Appointment" folder. Most of the by-appointment places required you to call the property manager and leave a name and number. I hate talking on the phone, so I started off with the properties that had email addresses listed as a means of contact. <br /><br />One of the posts that I had just seen posted on Craigslist listed only an email address, and had only a one or two line description. Given the limited details, I normally would have passed over the posting, but it was only 2 buildings down from an apartment I desperately wanted, but failed to get. Knowing how much I liked the area, I followed up with an email. <br /><br />Thankfully, the current tenant, who was responsible for showing the apartment, responded almost immediately. I had just had an apartment showing cancel on me when he called, so I was happy to swing over. After a tour, I decided that I liked it a lot and wanted an application. I dropped off a credit report and then took the application home. I filled it out, and emailed it off the next morning. About two hours later, I got a call from the property manager telling me I had gotten it. <br /><br />Anyhow, I am super excited. I can't wait to move in. I went over this morning, looked around once more, and then signed the lease. I move in on August 1st.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-48690556537595612702007-06-24T19:19:00.000-07:002007-06-24T19:21:27.184-07:00Video Walkthrough of My Temp ApartmentHere is a video I made with my Sony Cybershot camera. I'm not very good at walkthroughs, but hopefully you can get a sense of my temporary apartment situation.<br /><br /><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/K8BrKnaQW8E"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/K8BrKnaQW8E" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com2tag:blogger.com,1999:blog-12138526.post-12469203174600331482007-06-23T04:48:00.001-07:002007-06-23T04:50:03.058-07:00San Francisco: Day OneFirst random conversation one-liner heard on the street since arriving:<br /><blockquote>"Where do you think we should optimize first? Tag_ID or Object_ID?"</blockquote><br /><blockquote></blockquote>Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-77811820637672969272007-05-05T20:07:00.000-07:002007-05-05T20:34:09.204-07:00Weekend WarriorsEvery weekend, guys get together to drink beer, eat food, and build stuff. Their efforts combine to tear apart automobile engines, construct tool-sheds, and wire up home theater systems. I wondered if this might be possible to do with a bunch of developers/designers. This spawned several conversations over lunch at Xerox and the idea of a weekend warrior development project came about. <br /><br />The goal would be to create something from nothing in one day. The result would be something that we could possibly use in our portfolios and/or contribute to further if we so desired. Ultimately, the idea is to see what kind of problems, solutions and interactions we might experience in a small team with a small turn-around time.<br /><br />Today, myself and two other developers (Glenn and Rob) set out to accomplish this goal. We started at 10:00 AM, broke at around 4:00 PM, and deployed the project around 8:30 PM. The project involved creating a simple, serial blog application. (For the moment, the blog is to remain anonymous). In the end, we produced only the front page of the blog and had the basic scaffolding for creating, updating and deleting posts. We had intended to flush out the full system, but got caught up getting comfortable with our working environment. Although we might not have accomplished as much as we wanted to, we kept our focus on maintaining deployable code and were successful in deploying a working website by the end of the day. <br /><br />Tools/services we used:<br />* TextDrive<br />* TextMate (Mac)<br />* InType (Win)<br />* Subversion<br />* Tortoise<br />* Ruby On Rails<br />* Transmit<br />* Campfire<br /><br />Things we liked:<br />* Time flew by<br />* Everyone was actively participating and sharing<br />* Learned/expanded our knowledge of Rails development<br />* Learned Subversion<br />* Enjoyed the Soundscapes music channel<br />* Plenty of relevant books and reading materials<br />* Collaborating/tracking ideas in Campfire.<br />* A sunlit environment.<br /><br />Things we need to improve:<br />* Prepare our tools better ahead of time.<br />* Have a deeper blueprint of what the project will entail.<br />* Have the deployment environment configured fully prior to start.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-57102784495820826342007-04-03T14:26:00.000-07:002007-04-03T14:53:04.896-07:00RealizationI think I realize now why Apple users look at Microsoft users like they are nuts, and why Microsoft users look at Apple users like they are arrogant. It occurred to me over lunch. Let's look at Mac OSX and Windows Vista as an example.<br /><br />Say Consumer A wants to buy an operating system for their Mac. They go into the Apple store, pick up a copy of OSX, and hand their credit card to the clerk. Nothing impedes the transaction. They even take a step further by bringing the check-out to you at the Apple store.<br /><br />Say Consumer B Wants to buy an operating system for their PC. They go into a computer store, and... they see 7 flavors of Vista. Whatever reptilian emotion was driving that purchase has now given way to intellect. Nothing could be more destructive to the emotion-driven consumer. The pause necessary to pick which version is right for you can lead to all sorts of internal conflict, which in turn gets in the way of the transaction.<br /><br />Now, I can accept that Microsoft may be attempting to make Vista more "attainable" to lower budget consumers by creating different gradations of their product. However, if they want their consumers to be singing the praises of Vista, they need to get them out of the store as quickly as possible. Nothing kills the mood like trying to make a purchasing decision under the advisement of a BestBuy employee.<br /><br />If you are an Apple guy, you are looking on with a smirk on your face, as you watch the Microsoft guy standing in a state of confusion. If you are the Microsoft guy, you are wondering why that Apple guy is staring at you as he's walking out of the mall.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-6494658418088941442007-04-01T09:37:00.000-07:002007-04-01T09:55:24.448-07:00I Have No Self-ControlIt finally happened. The amount of money in my savings account climbed high enough, Amazon had a deal, and the rest is history. I picked up a 15" MacBook Pro Core 2 Duo for $1850 + shipping. I had it next-day air-mailed straight to my office. 25 hour and 15 minutes later, I was ripping open the plastic wrap. <br /><br />So far, I'm going through a sorta weird withdrawal. At the expense of sounding like a fanboy, everything just worked out of the box. It was easy, too easy. I marveled at the fact that pretty much everything was set up the way I'd have wanted it. With a new Windows box, I usually go through an entire ritual of setting up my folders, configuring system preferences, rearranging my start bar items, and so on. It can take many hours before I actually feel like I can be productive. With my Mac, I felt like I had accomplished most of everything in about 30 minutes, even at newbie-speed.<br /><br />From a programming perspective, I am extremely excited. I want to be programming on a Unix-based OS. I have Ubuntu running on my old laptop, but the machine is just too broken down for me to spend any real time with it. I immediately jumped into Ruby, as I have been playing with Ruby for several months now. I wrote a quick Google stock quote scraper and it felt real good writing it using TextMate. It's amazing how much happier I feel without the integrated debugger, intellisense, etc., that Visual Studio has. That stuff is just so bulky that I feel like I can't breathe unless I'm running it on a super computer.<br /><br />My next step is to see about joining some open source software initiatives. I always strayed away from open source collaborations because I just didn't feel right trying to participate using a Windows machine, even for open source Windows projects.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com1tag:blogger.com,1999:blog-12138526.post-10620886117393054452007-03-11T20:47:00.000-07:002007-03-11T21:50:48.636-07:00It's Time to Break Up, But I Don't Know HowFor over a year now, I've listened to other developers talk about how developing in Ruby, and sometimes Python, makes them "happy". I have most often brushed this off as evangelism. I like what I see in Ruby, but I just haven't been able to make a strong enough argument as to why it would possibly make me "happier" as a developer than I can be now. I think that's changing.<br /><br />I have been developing in Windows technologies for 10+ years. In the early years, I was extremely content because every struggle resulted in an influx of knowledge. Lately, I think any happiness I experience as a .NET programmer comes from those few moments where I actually accomplish something easily. That is where I feel like there might be a problem.<br /><br />It struck me this evening. I tried to write the most basic blog possible in .NET. Each entry would consist of a date, a title, a body and an image. Last week, when the idea took root, I decided to diagram out on paper what it would take to get the most basic list of entries onto the screen. It barely filled a 6x4 piece of paper.<br /><br />Given the applications that I develop at work, with their dozens of assemblies, inter-mixed languages, web services, and complex deployment steps, I just wanted something simple... to make me happy. My goal was to accomplish as much as possible with as little code as possible.<br /><br />I created three tables in the database - two entity tables and one relationship table. I created one stored procedure to access the data from the tables. I created a website project with only one page. I created two business class files - a business entity class and a business service class. Both went in the App_Code directory, not in an external DLL. I used the Enterprise Library Data block to simplify the data access. I even broke a personal, cardinal rule - I used the Web Forms Designer. I bound a repeater to the strongly-typed business entities, which came from the business service, which got its data from the database. In a matter of an hour, I had my little blog-like application showing up perfectly in my debug environment. It was working. It was clean. I was happy.<br /><br />Then I tried to deploy my website to my hosting provider. Three hours later, I could not get my application working. It may have been the hosting provider, it may have been my code, but ultimately, I gave up before I could even identify who was to blame.<br /><br />There was literally nothing in my little application that warranted the amount of pain that I had to go through just trying to identify the problem (a SecurityException dealing with partially trusted callers). I reluctantly made some adjustments by precompiling the website, strongly-signing it, and then deploying it. Still no luck. After scouring Google and trying every little solution that was suggested, I still could not get it to work.<br /><br />I finally gave up because I realized that I was too comfortable with my mindset at this point. I knew every angle that I would need to check just to zero on where the problem is occurring. It clicked in my brain that I must go through mental checklists like this about 2-3 times a day when at work. Rather than demanding sharper tools, I have simply forced myself to be a better hunter, at the expense of my health and happiness.<br /><br />The weight of the tools - tools such as Visual Studio and Team Foundation Server - is too great. The languages themselves are two constrained. Many of the better application frameworks for .NET have to dance around just to achieve their goals. Intellisense is cool, but it makes it too easy to use counter-intuitive code. Fundamentally, being a .NET developer means you are bound to these things. You react to built-in functionality rather than interact with it.<br /><br />I want to be done with all of it. No more heavy-handed user interfaces. No more complex application frameworks. No more weird "by-design" functionality that is missing documentation. I just want to open a text editor, code what I need to code, and then run it. If I need to debug it, I just want to run the code through a debugger. If I want to test it, I want to run it through a test runner. I want the code and everything it comes in contact with to be light and transparent. I'm pretty sure I will never reach this goal with Microsoft's products.<br /><br />Hopefully in a week or so, I will finally have enough cash saved up to go buy a Macbook Pro. I don't even think I'm going to install Windows on a Parallels instance. I want a fresh start and I think I'm going to really concentrate on Ruby. Many very smart, clever human beings look at Ruby as if its a kind of zen religion. I'm definitely in need of a spiritual cleansing and a new direction.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-1156310309740198432006-08-22T22:07:00.000-07:002006-08-22T22:18:29.753-07:00Perspective on SuccessLately, I have been reading the book <span style="font-weight:bold;">The Google Story</span> by David Vise. In reading the book, it occurred to me that the goal in becoming successful really has nothing to do with material things anymore. Rather, if you innovate in a manner that the world responds to, the world offers you the distinct opportunity to reshape it in your own image. Truly successful people leave their mark on the world independent on how much financial success they may or may not have had.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-1149049167271663682006-05-30T21:16:00.000-07:002006-05-30T21:20:26.690-07:00Cool Quote<blockquote>"If I only knew who in fact I am, I should cease to behave as what I think I am; and if I stopped behaving as what I think I am, I should know who I am."</blockquote><br /><p align="right">~Aldous Huxley, <em>The Island</em></p>Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com2tag:blogger.com,1999:blog-12138526.post-1144473102184370192006-04-07T22:10:00.000-07:002006-04-07T22:11:42.196-07:00Since you asked...I have come to realize that whether or not you become something you hate is based on the strength of your resolve. Those who are miserable in life have given up on themselves and have grown to resent themselves because they did not maintain their resolve to be the person that they want to be. Your resolve is what allows you to make the decisions that may not be obvious to society, yet lead to a long fulfulling life. Without your resolve, you have fill no position in the universe and the universe conspires against you. <br /><br />Your only true investment should be to become the person you want to be. All other things (money, success, love, creativity, exploration, etc.) should become engines that you can organize and feedback into this primary investment. I have found that balancing and arranging these pursuits in my life, with the goal of moving me closer to the person I want to be, is a perpetual fountain of satisfaction. To me, I find a tremendous amount of power and clarity from this, which leads to a level of confidence I have never experienced before and a sense of belonging that society can never inherently provide. Being in touch with your current self and the image of your future self allows you to make harder decisions and gives you the ability to focus on longer term goals.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com1tag:blogger.com,1999:blog-12138526.post-1140060139204813492006-02-15T18:36:00.000-08:002006-02-15T19:22:19.223-08:00Let's Get Technical... Technical... I Wanna...Today at work we had a lunch presentation by the ever-enlightened Jeremy Larkin. His topic of choice - Ruby. <br /><br />Perhaps one of the coolest things that I gleamed from the conversation was the concept of dynamic typing in Ruby. Granted, I have worked with the basic concepts of dynamic typing in other languages before, but they typically only had limited support. Ruby is dynamically typed from the ground up. <br /><br />Dynamic typing largely renders irrelevant the whole concept of an interface as a solution for polymorphically accessing objects that do not inherit directly from the same inheritence chain. Instead, methods are validated at runtime during invocation. Therefore, if you want to access a certain method on an object polymorphically, the instance needs only to implement the method being invoked with the proper method signature at the exact moment that a call is made on the method.<br /><br />To go off topic for a minute, I recently read an article somewhere that made the case that interfaces make lousy service contracts. According to the article, a service contract would be more appropriately defined by some number of unit tests. A class would not be a valid implementation of an interface by method signatures alone. Rather, the class must be able to pass the tests required by the interface. <br /><br />This got me thinking and I haven't figured it out yet. Somehow, when an interface is implemented, the associated unit tests for the interface should run against the code implementing the interface. If the code validates, it represents a valid implementation of the interface. This may be possible in Ruby where even things like inheritance may fire events that can be handled. That would be the easiest way. <br /><br />In something like C#, I figured that the best place to attempt to handle this situation would be through a dependency injection engine. For instance, the first time a request is made on the DI engine for an instance of the interface, whatever type is mapped to the interface would be tested. The DI engine would throw if the type being instantiated failed the interface tests. <br /><br />These are just thoughts at the moment; I have no implementation yet.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-1132116365859607902005-11-15T20:15:00.000-08:002005-11-15T20:54:37.090-08:00Random Thoughts, Random RantsWhen you spend $150 on a watch, the 11th hour tick mark is not supposed to fall off for no reason.<br /><br />Walking 1.2 miles to the bars is NOT too far to walk. 1.2 miles IS too far to drive drunk. Think about it.<br /><br />In the Xerox men's room, there are three urinals. Urinals 1 and 3 are in play. Urinal 2 is OFF LIMITS. I don't care if you are 50 years old and this is only your tenth time today. Haven't you listened to Jerry Seinfeld's buffer theory?<br /><br />Thayer Rd. and Dartmouth needs to be a four-way stop.<br /><br />Listen to Jose Padilla's new album Man Ray v.4. So good.<br /><br />I need to get my passport soon so I can head over to Yalta with GBro. Russian girls better be as hot as you say they are GBro or your turtle gets it! ~holds badass machete up to turtle~<br /><br />... ~realizes turtles are impervious to stabbing~<br /><br />... ~realizes GBro doesn't have a turtle~<br /><br />... ~wonders where the turtle came from~<br /><br />... ~wonders where the badass machete came from~<br /><br />... ~wonders why the badass machete has "MIG" monogrammed on it~<br /><br />... ~wonders why someone would monogram a machete~<br /><br />... ~wonders where one would go to monogram a machete~<br /><br />"Ibiza is (dot dot dot)." If you can tell me what that's from, I'll give you a cookie.<br /><br />Glenn did it. Don't let his pleas of innocence fool you.<br /><br />I need to stop procrastinating.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com2tag:blogger.com,1999:blog-12138526.post-1132114501906922492005-11-15T19:43:00.000-08:002005-11-15T20:15:12.606-08:00Blank CanvasI read Kurt Vonnegut's "A Man Without A Country" cover to cover last night. Rarely have I engaged in such pointed but light conversation through a book. If ever I could rattle around in the mind of another, my choice would have to be Kurt Vonnegut.<br /><br />If you don't know, Kurt Vonnegut is the honorary president of the American Humanist Association. I myself did not know this until reading his book. He defines humanism as: "Being a Humanist means trying to behave decently without expectation of rewards or punishment after you are dead."<br /><br />Why can't all religions and/or moral contexts be so simple? The perspective of humanism to me is this refreshingly blank canvas that one can build their life around. I hated paint-by-numbers as a kid. Organized religions are paint-by-numbers. Free-thinking is a blank canvas.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0tag:blogger.com,1999:blog-12138526.post-1119888566858880322005-06-27T08:54:00.000-07:002005-06-27T09:09:26.863-07:00A Wolf in Sheep's ClothingSo one of the movies I have had a keen interest in of late is What The Bleep Do We Know. It synthesizes a bunch of ideas and fields that hold a particular intrigue to me, such as quantum physics, philosophy, and secular humanism. <br /><br />At one point during the day, I decided I would delve deeper into the backgrounds of the "scientists" involved in the voice-overs. Most seemed valid, albeit a bit out there and new-agey, but relevant to debate in my opinion. <br /><br />However, there was one woman who always kind of pissed me off during the movie, because she always seemed to be preaching more than suggesting or proposing. After researching a bit, it turns out, she has no valid scientific background, is the leader of some cult at the base of Mt. Rainier in Washington, and believes herself to be the embodiment of some mystical being named Ramtha. Furthermore, the three directors of the movie are all students of hers.<br /><br />The thing that really gets me too is that none of this is overtly disclosed during the movie. Instead, the directors try to pass the movie off as based on compelling new facts and hypotheses. Perhaps it might be, but it just lost a significant amount of credibility in my book. With so many interesting ideas and perspectives, it is a shame that What The Bleep Do We Know now holds the denomination of "infomercial" in my mind.<br /><br />Back to self-propelled freethought for me.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com1tag:blogger.com,1999:blog-12138526.post-1119236701289036522005-06-19T19:28:00.000-07:002005-06-19T20:48:13.976-07:00Science, Philosophy, and Spirituality (Part 1)I have been delving into a sort of synthesis of science, philosophy, and spirituality as of late. I find this to be the closest thing to what people perceive "religion" to be. I do this from time to time because it keeps me grounded. <br /><br />I do not believe in the religion I was raised in (Catholicism) nor do I believe in any other organized religions. The only "religions" I sympathize with are the ones that stimulate self-realization and enlightenment. I do not typically consider these religions, but states of mind.<br /><br />I spent a great deal of time as a child and teenager wavering between complacency with and resistance towards Catholicism. My biggest complaint has to deal with the denial of the self that many religions directly or indirectly promote. This has proven an insurmountable complaint and to this day, I have rejected my birth-faith.<br /><br />In Catholicism, and many other religions, there is a supreme being usually referred to as "God". The religion dictates that it is our goal to exert ourselves for the appeasement of God in order to receive the benevolent gift of eternal paradise. God is described as incomprehensible to the human mind, yet there are suggestions that we can follow to assure favor with God.<br /><br />My problem is that dealing with a supreme being that holds absolute dominion over us removes responsibility from the self. I do not deny the existence of God. I consider God to be a higher truth that acts as a reflection of the self. To rank God relative to the self in any capacity is irresponsible, because the two are incomparable and mutually dependent. <br /><br />I've been reading "The Fabric of the Cosmos" by Brian Greene, and a recurring concept that I've found in and out of this book is the power of observation. There are forms of energy that, prior to observation, exhibit an infinite arrangement of possibilities. The act of observation brings one possibility into reality. I then apply this concept on a larger, philosophical scale. I suggest that we exist on a canvas of infinite possibility. The responsibility falls on us to paint possibility into reality. The reality around us does not exist until we realize it with our minds. I will even be so bold as to suggest that nothing can possibly exist without the intervention of consciousness.<br /><br />A movie called "What The Bleep Do We Know?" which I have seen several times, includes this notion and further details many other ideas. For example, the movie talks about reality as a function of our mind because it cannot be experienced directly, rather, only through the senses. Since reality is experienced by the mind, the act of controlling our reality is as simple as controlling how are minds react to certain stimulus.<br /><br />Now, I'm not trying to suggest that we can fly if we think hard enough. I do however believe that we can control our path to paradise by applying ourselves. Modern-day organized religions promote blindly following doctrine, self-sacrifice, and the restriction of free will to achieve eternal reward. To me, the harder one tries to accomplish these aims, the further from paradise they become.<br /><br />I believe that through meditation, the pursuit of knowledge, and human connection, we have the power to change the very face of our existence, realizing paradise out of possibility.Chris Zachariashttp://www.blogger.com/profile/08170511071931941119noreply@blogger.com0