Rusty Divine

Live, Love, Learn, Teach

Our Team Palace

"You're not going to believe it," the project manager quipped in his cagey style as he lead my development team from our cubicles to our first meeting in the team room reserved for our latest project.

After a brief pause where I attempted to evaluate whether I should expect to be pleasantly surprised or morosely let down, I guessed the former, "I bet it's like the Taj Mahal." After which Robert's only reply was a chuckle, preferring to keep his game going instead of acquiescing to my correct assertion.

The four of us boarded the elevator on the fifth floor and went down to the third floor. Our company occupies all of the fourth, fifth, and sixth floors (the top floor of the building), which are all well connected by stairs. The third floor, of which we occupy only half, can only be reached by the elevator. People on the third floor complain they feel cut off from the rest of the company; I don't think they even have a fridge or a microwave down there. Not a great sign to start off this project.

I work at a consulting company, and yes, Joel, we make millions selling consultingware, although it is largely due to our very well established name brand - I wouldn't recommend it for a start up that wasn't well connected already.

The previous week, I met with my Group Leader about some new cubicles that were slated for a currently unused space on the other side of a wall behind my cubicle. "I have a break-neck project starting next week. We have six weeks to finish the website, and there will be no time to design it upfront. We're going to need to be in constant communication, and even though Ryan (another developer) sits next to me, we won't be able to cooperate well with the cubicle wall separating us. What do you think about setting up three desks in this area without putting up any partitions so that we can use this space for the project?"

Our Group Leader considered the pros and cons, "I'm not sure what we can do since the cubicles are already ordered. I'll have to speak with Laurie," she decided, in typical corporate fashion, to say no by passing the buck to some possibly imaginary administrative broker.

Never one to give up easily, I visited the project manager to plead my case. Robert was fairly new to the company so I hoped he wasn't aware that giving developers their own space had never been done here, and he was older so I thought he should have some more seniority to leverage. To his credit, he took my request seriously; he did have a large stake in the project, too, after all, and the next thing I knew he was leading the team down to our project team room that he got reserved for the next three weeks. (OK, it wasn't for all six weeks, but it was a start; how's that for getting things done for a grunt?)

Continued next week...

Learn to Deal with Stage Fright

The class in college that I can point to as the single class that prepared me the most for my career was a technical speaking and writing course I took as a senior.

The professor is a renowned curmudgeon in the department, but her heart is in the right place - she really cares about her charges and is somewhat ruthless in her criticism.

Every week we each had to give a speech. The first speech was just a quick 1 minute introduction; our final speech was a 15 minute lecture. Each speech was structured around a presentation; as most scientific talks are, and we were critiqued by our peers in the audience. Since our professor giddily pointed out our little foibles, especially uttering the filler words um, like, and and, our peers weren't shy about being starkly honest in their criticisms either.

Going to that class every week was an exercise in will power for me. Standing on stage in front of an audience of my peers - who may know more about my material than I - trying to appear intelligent, or at least coherent; I dreaded every moment of it until I was finished, at which point I would enjoy a brief sense of elation prior to starting to dread next week's speech.

The absolute worst part was waiting through the speeches before mine. My anxiety level was directly related to how many speeches I had to sit through before I could finally get mine over with!

The next worst experience was seeing other people stumble on stage as their physiology took over and their flight response screamed from within to get the heck outta Dodge. My empathy would mirror their emotion and make my stomach turn sour.

By the finish of the semester, our group had advanced remarkably. I was still anxious about speaking, but I could manage it much better. I credit our increased proficiency to our professor who honestly critiqued us and forced us to face the unpleasantness of learning to speak well.

The one lesson that I remember to this day from her was when she told us that prior to teaching each of her classes, she still gets butterflies - and she'd been teaching for over 20 years. That made me realize that the goal of overcoming anxiety when speaking isn't the true goal, the true goal is to learn to manage your emotions and project an air of confidence despite any quivering from your mid-section.

Fast-forward 10 years to present day when my wife suggested we join a local Toastmasters club. After joining, I soon learned that my confidence had waned in the years since practicing speaking in front of an audience. Well, what better place than Toastmasters to re-hone my abilities? The group is incredibly friendly and supportive - in fact, at first I was a little let down that they weren't as ruthless as my old college professor, but what they lack in brass they make up with in style.

A typical meeting starts with a joke or a speaking tip, followed by three 5-7 minute speeches. Each speech is then evaluated by a designated evaluator (which is a great skill in and of itself, combining public speaking, quick thinking, and polite critiquing). Afterwords, there is a Table Topics session where someone throws out a topic like, "What's your favorite camping story" and everyone takes turns telling their story in a 1 minute speech. Sometimes someone will instead start a fictional story, and then everyone takes turns adding to it. Finally, everyone votes for the best speech, evaluation, and table topic culminating in a nice little award to the winners.

There is a well defined structure that includes work books and speech topics that will take you from beginner to Toastmaster in 10 speeches. After you earn your Competent Toastmaster's certificate, you can choose a more specific path of speaking style, such as story telling.

The bottom line is, if you want to feel more comfortable speaking in front of your peers at business meetings, sales calls, or technical presentations, the only way you will improve is through practice. And remember, almost everyone feels acute anxiety when speaking in front of people, and even the most seasoned speakers don't loose that edge completely - they just learn to use its adrenalin boost to their advantage.

For some more information, check out my club's website.

Sick or not?

How sick do you have to be before you stay home from work?

I've been on the verge of a coming down with a cold all weekend. As I write this it is Sunday night, I've got a bit of a sore throat, a headache, and the sweats, but I would bet I go in to work tomorrow.

Compared to my own very superficial observations of my coworkers treatment of my dilemma, I would have to say that I am more likely to take a sick day than average. Still, am I sick enough to stay home? Back in my youth, my dear mother would always take my temperature - if it wasn't over 99, and I wasn't vomiting, then I'd have to go to school. Should I use that axiom still?.

On one hand, it makes a sort of sense; its logical and empirical. On the other hand, it doesn't take into account other circumstances, like my coworkers, for one, and my job performance for seconds.

Are you one of those people who stay at work annoying your neighbors with a wet cough or runny nose that you need to blow every few minutes? It's like Chinese water torture waiting for that next sniffle. "For Pete's Sake, Larry, just go home! You're driving us all nuts!"

I admit I've been one of the insufferable sick who plague the office, walking around and touching things with my germy little fingers. All the time believing that I'm not contagious...it's like Russian Roulette (OK, enough with the slandering of other countries already). Is he loaded? Do you feel lucky today? Well, do ya, punk?

So, when I start feeling ill, I fall into an endless loop of evaluating the pros and cons, but at a near subconscious level. With most of my mind concentrating on the new Simpson's episode, I don't have much processing power to spare calculating whether to go to work tomorrow. At the point that it comes back to the forefront of my thoughts, I realize that if my flu-addled mind is in a state that I can't even decide whether or not its a good idea to go to work tomorrow, then I better stay home because heaven knows what kind of terrible decisions I would make if I did go in.

And I'm generally of the opinion that if I stay home for a day during the onset when I believe (and correct me if I'm wrong here) that I am most contagious, I will actually save the company money by not infecting everyone else.

All that being said, I have two deadlines on Thursday. If my coworkers are reading this, stay away from my cube today...or else.

Do I have to go home? Great office space makes for a great place to work.

How would you like to work here?

 

 

No, not for the hotel; at the hotel.

I was reading Peopleware on my lunch break the other day (a book famous for its intellect worker management ideas) and finished the section on office space. After the authors very effectively argued against the ubiquitous open space floor plan of modern office that intellect workers are too often subject to, they offered a hotel layout as one good alternative.

Imagine! Teams of two-to-three workers per room, each with a door that closes and windows that let in natural light; oh, how majestic that would be! No more 6' tall, 6' square, partitioned, ultra uniform, private yet isolating yet noisy cubicles flooded with fluorescent light from above.

*Warbling dreamy music plays in the background as video image blurs gently*

There's wireless internet and everyone has laptops! People can work on their patio/balcony (even smoke while working outside - oh, the depravity!), or take their laptop out to the park bench under the ole' weeping willow.

There is a formal entry and reception area, and professional conference rooms fit for clients to visit. Heck, you can even have a company meeting outside on the veranda!

Bike to work? Well, feel free to shower off in your office and grab a change of clothes out of the dresser. Work out at lunch? No problem! There is an exercise facility on site and a pool, or feel free to take a jog through the park around the corner. And nothing beats the Jacuzzi after making a tough deadline.

Have a toddler? Well, we'll set up one of the suites as a day care if there's enough interest. How about dogs? Ask your office mates; if it's OK with them, then go for it - having a few dogs around reduces stress and lowers blood pressure.

Hungry? Dial 9 for room service; the menu is next to the phone. You can also bring your laundry and have it waiting for you when you go home. Or bring your lunch and store it in the mini fridge in your office and use your microwave to heat it up. Be sure to take advantage of the picnic benches out back!

Speaking of the phones, notice that you can put yours on Do Not Disturb if you need to concentrate. Don't forget to put the Do Not Disturb sign on your door, too!

Need to catch some Z's? We've kept beds in a couple of rooms and you can reserve one using your scheduler, or by dialing the front desk. Just need a break? Try out the pinball and arcade games in the lobby. There's a pool and fousball table there, too.

Feel free to work with your suite mates to personalize your room; there are some supplies in storage if you need extra lamps. If your HVAC unit acts up, just ring the front desk; they'll take care of it.

Need to ask Shelly over in the Monroe suite a question? Try the IM system first; it is a quiet and quick way to converse. You can use it to view each other's desktops too, and use the other collaboration tools. When you really need to get into the same room to work with someone, just reserve on of the spare suites or a conference room if you need more room.

*Warbling dreamy music plays in the background as video image blurs gently*

Whoa...what a great day dream! If I worked at a place like that, I'd be so much more productive than in my isolated cubicle in a noisy open office environment. Well, my lunch is over, time to head back to the cube.

Further reading:
Developers Office Layout

Dynamically Generated SQL Stored Procedures

One of my favorite MSDN articles has been the key to saving countless tedious hours manually creating the select, insert, update, and delete stored procedures in SQL Server 2000 for web applications: Peter W. DeBetta and J. Byer Hill, MSDN April 2003, Automate the Generation of Stored Procedures for Your Database.

Some developers prefer not to use stored procedures for various reasons, but I agree with Douglas Reilly who essentially concludes that if you don't need to worry about switching from SQL Server to another RDBMS, and if some of your procs have complicated processing in them, then generally it is advantageous to use SQL stored procedures over ad hoc SQL.

The SQL script from the MSDN article creates a few functions that query the sys tables for schema information, and stored procedures, one each for generating select/insert/update/delete procs that take a table name as a parameter. For example, executing the proc that selects a record in a table generates and executes the following script (example based on the Northwind Customer table):


EXEC @RC = [Northwind].[dbo].[procMakeSelectRecord] 'Customers'

Yields:


IF EXISTS(SELECT * FROM sysobjects WHERE name = 'procSelectCustomers')
DROP PROC procSelectCustomers

------------------------------------------
-- Select a single record from Customers
------------------------------------------
CREATE PROC procSelectCustomers
@pstrCustomerID nchar(10)
AS

SELECT CustomerID,
CompanyName,
ContactName,
ContactTitle,
Address,
City,
Region,
PostalCode,
Country,
Phone,
Fax
FROM dbo.Customers
WHERE CustomerID = @pstrCustomerID

Notice how the script added the where clause based on the primary key in the Customers table without having to specify that in the execution statement. The script also added a comment, and formatted the new proc in a standard way, including the proc name, "procSelectCustomers". Now, if I wanted to go in and add an Order By clause, it would be easy to alter and customize it. (Note: The formatting applied to this post removed all indentation for the code; it is possible to generate procs that use indentation)

The benefits of using the tool include:

  1. Easy standardization on naming conventions and formatting, which promotes readability - just customize the script to suit your needs. Imagine all of the procs in the database with standard indentation, line breaks, and the required meta data all automatically generated!
  2. Saves time and avoids errors from typing out simple procs, and it is a good first step on complicated procs that need some more processing.
  3. Promotes organization by naming all the procs in the same format, which will make it easy later to find the procs that act on a certain table, and will make it easier for new developers to the project to get up to speed.

If your project is destined for SQL Server, and you agree that stored procedures are the way to go, then try customizing the MSDN script to fit your standards. You can reap the benefits of increased efficiency in authoring, time saved reacquainting with the code at a future date, and getting new team members up to speed quickly.

One final tip: if the installation script is executed on the Model database, then every new database will likewise have the ability to generate procs based on its database tables. Since you will likely want to customize the naming conventions and formatting used, however; I would recommend running the script on a test database first.

Hedgehog Concept

Reposted from codesnipers.com

Do you feel a little bite of insecurity when reading a post about a new (to you) technology subject?

It seems everyone knows all about Ruby on Rails already, but I only just heard of it after becoming a Codesniper. I am quite curious about this new paradigm, and am woefully behind my peers. Isn't that just typical?

Doesn't Eric Sink say that to improve your career, you need to focus on the first derivative of Cluefulness - Learning? Shouldn't I find the next Ruby on Rails conference and take a long weekend to go learn all about it?

For my career, becoming proficient with Ruby on Rails probably wont benefit me as much as say, spending the same amount of time learning from that design patterns book that I've been using as a coaster. Oh, I listened to the Ruby on Rails 15 min. promotional video narrated by someone who sounded a lot like Emo Phillips, and I'll keep tabs on Ruby; I'll never grok it though.

My ambition is to have a truly great career, and I'll tell you how I am going to do it; that is, as soon as I figure out my Hedgehog Concept. Jim Collins wrote a #1 best seller, Good to Great, that examines companies that really kicked-ass over a long duration compared to similar companies that languished. His team found that the really great companies had many traits in common, one being that they had a crystal clear Hedgehog Concept.

The Hedgehog Concept is based on a Greek parable. The lesson goes that a quick and very cunning fox comes across this hedgehog every day that is lumbering down the middle of a forest path. The fox thinks that today he is finally going to make a meal of this dumpy little creature; the hedgehog thinks, "Here we go again." So, as the fox approaches, the hedgehog rolls up into a ball of needle sharp quills that stymies the fox who soon gives up and moves along. The lesson being that although the fox is a formidable predator, the hedgehog is very good at doing one very simple thing - defending himself.

Jim says you can develop a hedgehog concept for your business or yourself by considering the intersection of three principles:

  • What can you be the best in the world at?
  • What are you deeply passionate about?
  • What drives your economic engine?

It is important to find the intersection of all three in order to be truly great; although, you can still be wildly successful by finding the intersection of the second and third.

<Example>
Joel Spolsky has a Hedgehog Concept: To have the best (informational, entertaining) site on the web for discussing the art and science of software.

  • Joel on Software is arguably the best site for learning about good software and draws tens of thousands of visitors to read and discuss ideas.
  • Joel is passionate about improving software from soup to nuts; from concept, specification, development, user interface, deployment, marketing, and maintaining.
  • Joel profits by the exposure his site gets and as more people come to trust him, more people try out and purchase his software. His economic engine could be defined in terms of profit per unique visitor to Joel on Software.

</Example>

Instead of taking a shotgun approach to professional development, we should narrow our focus to our own Hedgehog Concept. Figure out what drives you, what you can be better than anybody at, and how to leverage both to rev your economic engine. If your resume has a paragraph of jargoned technologies, some that you've only read about, replace that list with the three or four concepts you really know. Instead of listing HTML, JavaScript, CSS, ASP, DHTML, XML, Web Services, IIS, etc. put "Web Developer".

Why should you develop your Hedgehog Concept? Well, as Joel explains, when the economy is doing well, it doesn't matter as much, but when it turns to muck, you'll be able stand out from the crowd.

Myers-Briggs Personality Types and Coping with Coworkers

Reposted from codesnipers.com

Do you have any coworkers that you just can’t relate to? Maybe Jim in Marketing, you know the one with a diamond stud in his ear, who plays solitaire while gabbing away for hours on the speakerphone? Or Janice, the DBA you try to avoid at all costs because of her propensity to start an argument over the most trivial of details, “Did you say detach! You better have meant backup and restore, buster! There will be no detaching around here, period.” Or how about Curt, who handles all the Flash animations, but can’t take constructive criticism about his work?

I was surprised and relieved to find insight into why people act the way they do when I stumbled onto the Myers-Briggs personality Type Indicators (MBTI). The MBTI are sixteen categories of personality types driven by psychological preferences, and knowing and understanding a persons MBTI can help you relate to why they act/react the way they do. When you see what drives a person, you can empathize with their position, and you can avoid their trigger points.

Your MBTI is a generalization, a best-fit, and is analogous to handedness – i.e. even if you are right-handed, you can learn to switch hit, much like if your natural tendency is to be quiet during meetings you can learn to take a more active role. When you are under stress, however, the tendency is to fall back on your psychological preference for coping.

My type is ISTP. Introverted, Sensing, Thinking, Perceiving, and although there is only about 5.4% of the population who fit in this category, my guess is that a large percentage of programmers are also ISTP.

A person with the ISTP type is an experiencer who values honesty, prefers action to conversation, is a bit impulsive at times, and covets their allotment of me-time. ISTPs are tool users who take pride in wielding the best, most honed tools of their trade. Many ISTPs are surgeons, engineers, and military personnel. They tend to lead the charge from the front of the pack, but are also comfortable taking orders. From Team Technology, “ISTPs direct their energy toward the inner world of thoughts (and, maybe, emotions). They analyze situations and come up with explanations of how things work. They prefer dealing with tangible problems and proven experience - they often enjoy solving organizational problems that need to be thought through.”

Remember Jim in Marketing? The guy with the diamond stud who can blab on and on to a until whoever is listening finally agrees with him, possibly out of being hypnotized by his voice? Well, your good buddy Jim just might be an ENTP; an extroverted, intuitive, thinking, perceiver. ENTPs are born leaders who almost can’t help but take control. They are very charismatic, and have a good understanding of the global picture and strategy. ENTPs love to take on challenges, but sometimes take on too many, and/or delegate the boring work to subordinates. ENTPs will win over clients, charm the suits, and will be a great power player if they are on your team.

What about Janice, the DBA who knows everything about the software and isn’t shy about asserting it? Janice might be an INTJ; an introverted, intuitive, thinking, judger. INTJs are Masters of the Universe – their quest is to understand their subject completely. An INTJ may not tolerate other people who make casual mistakes about details; calling something a Functional Specification when it is actually a Technical Specification will make an INTJ blurt out the correction in spite of being rude. INTJs strengths are in their domain knowledge – no one will know or understand more about the subject and all the myriad details than the INTJ.

So Curt, the guy who you told his blinking flash widget may be giving children epileptic seizures, and he took it so personally that he hasn’t said more than a grunted hello to you ever since, what is his type? Who knows? Curt probably just has the emotional IQ of a 10 year old. MBIT doesn’t explain everything, after all. I’d recommend just staying away from him; he’ll hang himself sooner or later and move on to a different job.

If you agree there is value in understanding what makes your coworkers tick, I encourage you to suggest a "Team Building" exercise where everyone takes 15 minutes to fill out an online form to find out what their type is. Later, you can all meet for a beer after work and have a good, friendly chuckle about each team member’s quirks. Even if you don’t want to take it that far, I suggest taking a look at the links below to see if you recognize your coworkers types; and certainly take the test yourself to find out more about you!

IT Death Match

Reposted from codesnipers.com

Today, I got a chance to put my money where my mouth is. I work in a small development division at a large consulting company that has a protectionist IT department. IT wants to protect us from everything, especially ourselves, which more often than not results in impeding billable workers from getting billable work done.

In the post linked above, I stated that IT divisions at consulting companies should be avoided whenever necessary. Have a project that needs a website? Don't post it on the company's web server, register a domain at Go Daddy and host it at Webhost4Life.

IT at any company that is not in business to do IT is like a 360 pound swamp creature complete with slime and tentacles that pulls you into the mire anytime you get within 39 feet of where it wallows. Why deal with that mucky mess when you could use a professional IT company like Webhost4Life that will treat you like a customer (not a hostage, intruder, villain, miscreant) and charge you a mere $10/month? (note: I have no affiliation with the linked professional IT companies, just direct experience with them.)

So, today I get a call from my customer. She has sent a link to the project website that is still on our internal web server to the reviewers, but the site has stopped serving all asp.net pages. Last week, we had set up an account at Webhost4Life to host the website on, but the FTP access wasn't working and I needed them to set up MS Index Server.

Let the death match begin! IT Swamp Thing vs. IT Pros

I called up our internal help desk, which goes by the acronym TAC (Total Assistance Center - ha!) to get the ball rolling there. The dude I talked to had never heard of an .aspx page - Bong! One point to IT Pro. After I told him that the customer was calling and was unhappy, he actually told me he was going to assign the issue the lowest priority - Bong! Two points for IT Pro! But I persuaded him to increase it one level, which insured I would get a call back the same day.

Meanwhile, I had opened up an on line help session and was typing questions to Marina over at Webhost4Life to get the FTP problem cleared up and the Index Server configured. She couldn't get the FTP site to work with Filezilla, Bong! One point for IT Swamp Thing, but did set it up so that it would work through IE. Next, I sent here the setup configuration for the Index server, but she had me browse to a web page to enter a help ticket instead, and gave me an indefinite, "Someone will get back to you" answer Bong! One point for Swampy.

By the time I left work, both ITs were still tied two-to-two. Even with similar results from both help desks, going with IT Pro is still my best choice because they:

  1. Let me have a website that I can FTP into (IT Slime prohibits this)
  2. Monitor the websites 24/7 and have disaster recovery plans
  3. Let me build a .Net page that can upload any file type (IT Stinky prohibits anything Outlook wouldn't approve of)
  4. And treats me like a customer, not a renegade script monkey.

Whois Rusty Divine?

Reposted from codesnipers.com

One night while laying quietly in the top bunk at a medical testing facility and using a pen light to read the university's course manual, my aspirations to be a mechanical engineer like my half brother came to an end. If it wasn't for Dynamics, which I did finally pass after three attempts, but which I'm sure hexed my soul, I may be a mechanical engineer today.

And thank God I'm not, because I can't write one line of code without breaking the compile! Imagine the masses of innocent lives that would have been snuffed out by my bridges, cat walks, and handrails (in that order, as my career spiraled into oblivion) if I hadn't given up on that fateful night! It may be your life I saved.

So what did I discover in that course book? It actually was about as far away from computers as I could get (unintentionally; I have been a computer hobbyist since before puberty). I read about Geology. Man, after spending years in a stuffy engineering department where some of my professors didn't even have necks, the thought of hiking around mountains, camping, and hitting rocks with a steel hammer really appealed to me.

Maybe it was the Prozac talking; or maybe I was low on blood after the 43rd draw of the day, but switching majors turned out to be one of my better life decisions. I met my future wife in the Geology department and have followed her career to our current rookery in Seattle where we live with our two Greyhounds.

My first job after college; well, the week I spent mucking out a glorified stomach deemed "The Digester" for $7/hr that broke down salad dressing waste water in a sandy slurry of bacteria doesn't count (in fact, I try hard to repress that memory...especially the part about the dead rats..); was at an environmental engineering company. I quickly transitioned into the "Database Guy" role, and later the "ASP Web Guy". After that, I bought about 200 pounds of computer books and have spent evenings and weekends constructing electronic fortresses and exploring new territories.

I've worked at environmental consulting companies ever since, and have specialized in ASP.Net with SQL Server. I wear a lot of hats though, from project management, analysis, development, through completion.

I love working in consulting because every few months I get to start a new project where I learn a client's business process and then work to automate and improve it.

I also enjoy reading, writing and arithmetic (expect dynamic arithmetic) and I look forward to sharing my experiences in the consulting world and learning about your reactions and your world views.

IWAH

My good buddy K-Dog taught me a lot about consulting, but most of it was bad habbits! No one was better at working 10-3 with a 2 hour lunch than the Dog. He was a lot like The Kramer of Consulting, except a very bald version.
K-Dog always had a insightful quip, or an interesting opinion to share, which is where IWAH comes from; an acronym for I'm "Working" At Home today - with Working emphasized with a sleazy wink. Someone has gone IWAH when they call in to the office to say that they can't make it in, but to call them at home because they're working there today *nudge, nudge, say no more*.
I went IWAH once last week, but I was proud of myself for being about as productive as I am in the office. My excuse? My truck was in the shop; and when I picked it up, the Blue Angels were flying over the city so the Interstate was closed down because slack-jawed rubbernecks would be causing enormous pileups if the city didn't keep them off the roads. I cheated though because I left my house and went downtown to a meeting with a client - I can't swear that I would have been as productive if I had stayed at home all day.
What is it about being home that makes it so hard to concentrate on work? For me, it's the dogs, the bed, and the fridge (daytime TV sux). Being out of the office is great because there are far fewer interruptions - no phones ringing, no coworkers asking questions or just making noise. Being at home though is too relaxing. Working at home is probably about as bad of an idea as reading in bed, both mix activities that are meant to be kept separate (although I admit I like reading in bed and don't find it difficult to fall asleep on nights that I don't read in bed).
I think the happy medium would be to work somewhere not home, and not at work, where there aren't any interruptions from noise or motion. A library that had wi-fi and allowed coffee would be perfect. I bet if you infiltrated your local college campus, you could find a good library with all the right assets...as long as you could keep your eyes off the college women (or men) with the same.