| Julius 的个人资料Julius Ganns . netzkern照片日志网络 | 帮助 |
|
|
11月1日 The World Spins Madly On... As already the Weepies said in their very own way, things inevitably change. Nearly 8 years ago, I joined one of the best companies I've always known and I probably will know in the future. Working for netzkern was not only fun and a great experience, the team became somewhat like family to me during these years. The things I learned in my various roles and having very different responsibilities were more valuable to me than most other things I came across in my life (including the years at school, university and in all other educational programs combined). But as all great times come to an end, so does this endeavor. Tomorrow I will start my new job at Avanade, an international IT consulting company founded by Microsoft & Accenture. I feel a little bit like the former Chief Software Architect of Microsoft, Bill Gates, these days (see the great video "Bill Gates' last full day at Microsoft"). As you can imagine, this change has been in the planning for quite some time now. The newly formed steering committee for the netzkern.systems business unit is staffed with some of the finest guys I've known and there is no doubt that Thomas, Markus, Peter and Alex will lead the team into a successful future. I also don't want to neglect the fact that it had a transforming effect on all of them. Now that my former responsibilities have been distributed among them and the technical expert teams led by Mattes and Phil, there seems to be an even larger desire to move things forward. Maybe, this change is one of the most important things that will ever happen to netzkern, as it literally kickstarted a process I tried to implement for nearly 2 years now, but it always got stuck somehow between large projects and daily activities. Putting a newly formed team in charge of the work I did for almost 4 years not only distributes the work on more shoulders, it also forces everyone to take additional responsibilities and to grow into new roles, while finally removing me as bottleneck. Of course, there are challenges, but I'm convinced that everyone will do his very best to not only keep things going well, but to finally overcome the challenges we started to move on when I was still part of the team. The only thing I've left to say at this point is Thank You. I want to thank my partners, Thomas and Daniel, for their support and for some of the best years of my life. I also want to thank my team for all the great experiences we had together - I will definitely miss each and everyone of you and I hope to see you soon. Of course, I will not leave work unfinished that I started. Although my blog will shortly move to www.juliusganns.com/blog, I will continue to publish the missing pieces of my SharePoint vs. Sitecore series here, as well as under the new URL. Have a great time, Julius 10月11日 SharePoint 2010 - The Good and the Bad Okay guys, here is a very short list of the good and bad things in SharePoint 2010 from my perspective as software architect. Let's get started... The Good:
10月10日 SharePoint vs. Sitecore Series - Revised Edition of Last Update Before continuing my series on SharePoint and Sitecore development from a software engineering perspective, I created a revised edition of my last post. The series now covers the CTP version of VSeWSS 1.3, which makes developing custom SharePoint solutions much easier. Table of Contents: - Introduction (Part 1) - Installation and General Architecture (Part 2) - Configuration (Part 3) - Customization and Designer Experience (Part 4) - Integration with Developer Tools (Part 5) - Feature Deployment (Part 6) - API und Data Model (Part 7) - Integration with other systems (Part 8) - Conclusion (Part 9) By the way, part 6 is currently in development and will hopefully be ready in a couple of weeks. 9月29日 What's New in .NET 4.0 Base Class Library There are great things to come in .NET 4.0, especially Code Contracts and the Parallel Extensions. Take a look: http://msdn.microsoft.com/de-de/magazine/ee428166(en-us).aspx 9月28日 Web Deployment in .NET Finally Catches Up With Java EEThere has always been one area in the religious war between .NET and JEE where Java Enterprise developers had the right to lean back and start smiling: Packaging and deployment features for web and service applications. While Java EE has been offered very well integrated mechanisms like JAR, WAR, EAR and OSGi for years now, deploying .NET web and service application has always been cumbersome, painful and half-baked at best. Of course there are XCOPY, the "Publish..." feature in Visual Studio, the Web Deployment Project Template for Websites and Web Applications (although that did not always work as expected in the latter case), the option to use MSI, and numerous application specific mechanisms like the SharePoint Solution Framework and the Sitecore Packaging API, but lets be honest, deploying web applications with .NET is a painful obstacle course and if you don't know how to handle certain build and automation tools (especially MSBuild, NAnt and FinalBuilder), it really, really sucks.
Well, it seems that this could change very soon. Today, Microsoft released the Web Deployment Tool (a.k.a. MSDeploy), which is not only based on MSBuild, but it will also be fully integrated with VS2010, Team Build and other servers, tools and frameworks. Take a look at the announcement here and enjoy the already existing integration with IIS7, which has been laying around for some time now: http://misfitgeek.com/blog/web-deployment-tool-has-gone-rtw/ 7月8日 Why Postbacks SuckEveryone knows, I’ve never been that big of a fan when it comes to ASP.NET WebForms. Instead of repeating my reasons here over and over again, just take a look at former posts of mine, for example here, here, and here. Well, unfortunately starting with today, there is one more reason for not using WebForms: A very annoying bug in IE8 that especially disturbs the way ASP.NET WebForms are working. As those things are inherently difficult to explain, I decided to make a very short video (about 1 minute and 30 seconds) to show the strange behavior of WebForms and IE8 when opening a new browser window. In a nutshell, IE8 seems to lose its current state when a new page is opened for the first time, so it has to request the current page using GET from the server again. The odd thing is, doing the same thing a second time transfers the current state to the new browser window and no request is issued towards the server, so ASP.NET WebForms does not have a chance to react appropriately. This is especially an issue if the state and behavior of your web application depends on hidden fields and automatic framework handling of the forms collection – which is unfortunately the case in Microsoft’s primary web framework ASP.NET WebForms. Check out the video (1:30 mins). 6月8日 Microsoft Finally Takes the Web SeriouslyA couple of days ago, I needed a minor customization in my Outlook 2007. Being a developer, I just opened the integrated development environment in Office and wrote some quick VBA code. I would have done it with C# and VisualStudio, but to be honest, every time I start to work with Office components, especially Outlook, I struggle with the unnecessary complexity and the low quality COM-based API. While I was coding, I began to think about why there seemed to be virtually no effort at Microsoft to rewrite and redesign important applications like Outlook in the near future. It virtually made no sense to somehow abandon a successful product like that. A couple of hours later, I checked my RSS reader and found an interesting article about the upcoming Exchange 2010 (or "E14" for short). Suprinsingly, when I took a look at the screenshots, they answered my earlier question. Microsoft has not only started to rewrite its most important applications, in fact, they have completely redesigned every single one of them. Following the vision of its Chief Software Architect Ray Ozzy, Microsoft has finally understand the possibilities and the importance of the web. The new Microsoft Exchange 2010 has an Outlook interface that should be able to really compete with the “old” desktop client and as we all know, this is only part of a complete Microsoft Office application suite running within the browser. When we started to see the web as platform for our business back in 2004 when I took over as Chief Software Architect at netzkern and our company began to focus all efforts on web and service-oriented technologies, there were a lot of people who disagreed with me on that vision. Up until today, history has proven us right and we’re looking forward what the web will bring to us in the next 5 years. 5月22日 DataTransferObjectManager on CodePlexA couple of days ago, we released our first BETA release of the .NET ServiceToolkit at http://servicetoolkit.codeplex.com. It contains the DataTransferObjectManager to automatically create DTO's from Entitiy Objects, for example to use them in WCF. Tell us what you think! 5月9日 Is The End For Heavy-Weight Web UI Component Frameworks Finally Coming? I certainly hope so…When Web UI Component Frameworks like ASP.NET WebForms and JSF were invented in the early years of this decade, they were an honest attempt to bring an additional layer of abstraction to the web. This layer was supposed to improve a couple of things, especially in the areas of usability, developer productivity, extensibility and out-of-the-box features. They were also created to attract the old guard of desktop developers, that spend so many years to learn and master their craft. To accomplish that mission, these frameworks were composed of hundreds of invisible components to form a feature-rich environment based on abstraction and simulation. This environment targeted one specific thing: hiding away as much of the original web infrastructure as possible. To accomplish that goal, Microsoft, Sun and others created complex workarounds to overcome some of the “serious limitations” of the web. Those features were given fancy names like Postback, ViewState and CodeBehind, which we all know and have to live with every day. The problem with these techniques is that they are not only an additional layer of abstraction, they are actually based on some quite different paradigms. At some point that inevitably creates major problems if you want to create “real” web applications and you find yourself searching for solutions to problems that you might not even have if you hadn’t started to use those frameworks in the first place. When some developers began to realize that these heavy-weight component-oriented frameworks started to decrease their productivity, they did a very clever thing. Instead of reverting completely back to old frameworks like the original Struts or ASP, they took all the great things that the Web UI Component Frameworks had brought to light, merged them with those frameworks and included new techniques and approaches that emerged over the last few years. The result of these efforts are frameworks like ASP.NET MVC, Ruby on Rails, Grails and Spring MVC that handle requests on the server-side much more naturally and effectively, and frameworks like JQuery, ASP.NET AJAX, Silverlight, Flex and Prototype, that handle user interaction on the client-side. The way of web development has changed and as I wrote in my post about this topic about a year ago, it’s time to rethink now. Don’t miss this one, it is a big one. About Micro Blogging and Ego-Casting“The largest thing on earth is the human ego.” is one of that statements that remain true no matter what – probably today more than ever. In the beginning of this year, I was quite active on various social networking sites like Twitter and Facebook. In the beginning, it was really a lot of fun, seeing all the things my friends were doing and what was going on around me. Unfortunately, that feeling has changed. When I open Facebook these days, the only feeling I get is disgust about the grandstanding and ego-casting that is happening there way to much. It is the same thing that happens if people get to much attention in the real world: They get supercilious, start to actually need all the attention and feel obligated to attract all the approval of the other people around them. The sad thing about that development is that Twitter and Facebook could really bring value to our world. They could help to stay in contact, to bring people closer together over large distances and they can help this world to overcome some of the biggest problems we face today: Biased media, censorship and ignorance. The good thing is: Publicity is one of the most volatile things there are, and therefore, I expect those self-exposing images to be gone a certain while from now. And if we get lucky, someone will fill that void with sustainability and balance by using those great ideas for something useful. 5月3日 A Conceptual Alignment of DataTransferObjectManager and ADO.NET Data ServicesADO.NET Data Services is Microsoft’s new services framework for accessing data from remote clients using HTTP and other disconnected protocols by sending either LINQ or URI’s queries to a specialized DataService<T>. DataService<T> is connected to the underlying data source and can perform read, update, delete and create operations against any data framework with a sufficient data context implementation, for example LINQ-to-SQL or the ADO.NET Entity Framework. While it is possible to create components that intercept the data operations at the service level, ADO.NET Data Services has been specifically designed to support CRUD operations performed by remote clients. That means, for the time being, there is no support for accessing and invoking business logic components over DataService<T> or for returning custom response messages based on data structures that are not managed by the underlying data context. That in turn means that business logic has to reside on the client (maybe even written in JavaScript) and can easily be manipulated. It also means that arbitrary clients can run all operations against every exposed interfaces of DataService<T> (which is a matter of configuration). WCF and the DataTransferObjectManager on the other hand allow you to selectively open your API to external clients and provide a consistent interface for business operations beyond create, read, update and delete scenarios, regardless of the underlying data structures and without any affiliation to a specific data framework. They also allow you to invoke service operations that access repositories and business logic components while still returning only the necessary parts of large object graphs to the client. ADO.NET Data Services (and the upcoming .NET RIA Services) are great frameworks with a lot of potential value, but for the time being they do not solve the problem of accessing any kind of API call through service operations without having to worry about large and deeply interconnected object graphs. This is where DTOM and the ServiceToolkit.NET step in, which we will release in a couple of days on CodePlex. 5月2日 I *love* Evernote - now even more! In case you didn't know: I'm somewhat addicted to EverNote, especially since they released Windows Mobile and iPhone clients in addition to the desktop (Windows and Mac) and Web editions. It's the easiest way to capture board drawings, business cards, things you need to buy (for example if you have an empty milk pack, just take a picture) and all those other things around you. Everything is instantly synced and available everywhere something I really expected from OneNote, but that may happen in the future. A couple of days ago, Evernote released a Twitter integration and the new iPhone client 2.0. Because of the Twitter support, you can now even use SMS to send short notes and other stuff to you universal inbox (which is one of the most important parts of GTD methodology) - just great! 4月27日 SharePoint vs. Sitecore Series - Part Six Moving to the Top of My Next Actions List It has been a pretty busy year so far and as you may have noticed, some of my projects did not come out of hibernation yet. One of them is my SharePoint vs. Sitecore Series and I was asked a couple of times when I'm going to finally publish part 6. Well, I won't give you an exact date, but let me tell you, it won't be that long. A couple of days ago I submitted my article on WCF and currently I'm preparing my running projects to keep running while I'm in New York from May 4th to May 20th. I will meet some very interesting people there and enjoy the greatest city of the world, but I'm also looking forward to find time for writing. So, stay tuned and be assured, part 6 is going to contain some very interesting things about both, SharePoint and Sitecore. 3月23日 Performing Updates with the DataTransferObjectManagerIn a previous post we took a look at an early preview version of the DataTransferObjectManager, a library we developed at netzkern to integrate WCF with O/RM tools. Today we will take a look at how nk.DTOM solves the problem of mapping updates from clients to entity objects. Here is how to do this: // This object represents an update request from an external client. // Read the corresponding entity from the data source. // Map the properties of the DTO to the entity. // Update the data source. Pretty straight forward, right? Remember, by default nk.DTOM only maps value type properties from the source object to the destination object, and that’s exactly what we need here. Now, let’s consider our entity “houseEntity” contains a property that should be readonly for external clients. In our case, the price of our house is fix and we don’t want it to be changed. In this case, we use the support for selective updates in nk.DTOM. The “Map”-Method contains a fourth parameter that allows us to specify certain properties that we want to preserve in the destination object. By combining the third and the fourth parameter, nk.DTOM even enables us to update certain values of complete graphs of entity objects. We just need to preserve the original reference to the entity object and maybe some other properties. Take a look: // Update a referenced DTO on the client-side. // Create a PropertyPathCollection on the server-side that allows the client to update the referenced entity “Person” in the property “Owner” as well. The service developer can even decide which properties can be changed based on the identity of the caller, for example by relying on WCF authentication features. We’re currently planning to release netzkern.DataTransferObjectManager as part of a small toolkit on CodePlex. We hope, you’re going to use and like it. 3月1日 Top 10 Must-Read Books for Personal SuccessI love reading books. Usually that means one, sometimes two or three books per week. In the last four years I extended my personal library to several self-development and management books and I have to say, I’m glad that I read most of them. Below you can find my personal top ten list in those two categories: Getting Things Done Additionally I own several other books that I haven’t read yet but that might make it to this list, maybe even replacing one or two of the ones listed above. Here are those I’m eager to read: Think And Grow Rich For a complete list of all my books, please visit my website at www.juliusganns.com. 2月24日 Integrating WCF and Object/Relational-Mapping Tools by using Data Transfer Objects(Version 1.1 – March 20th, 2009) Developing with today’s platforms, a developer can utilize great tools and libraries to increase development speed and software quality. Two very common in the .NET space are WCF and LINQ to SQL, besides various other O/RM tools like NHibernate and the ADO.NET Entity Framework. Unfortunately, using a messaging framework like WCF that has to perform quite a lot serialization work in combination with a tool to automatically retrieve data from data sources and create deeply nested object graphs like LINQ to SQL creates some pretty hard challenges. The reason for this is that WCF has to transform the graph into a “flat” message representation. If the graph contains cyclic references, WCF has two options to avoid running in circles (and kill your App) when it encounters an object it already has processed:
For service developers that want to use object-relational mapping tools to automate database queries, neither of one is really sufficient. Although the latter part may be an option in a strict .NET to .NET scenario, it does not implement any standard (because there is none) and thereby makes it nearly impossible for other platforms to use the serialized message with reasonable effort. Even worse, in the Web 2.0 area more and more WCF services create JSON and XML output for client-side components like ASP.NET AJAX, JQuery, Silverlight and Flex. Therefore it is essential to provide client-side developers with all necessary information in a strctured way without the need to blow up the server side development. Taking a look at the .NET framework, Microsoft currently does not offer any solution for this in its primary frameworks WCF and LINQ. After re-designing and overworking our Reference Architecture over the last week, we finally managed to develop an approach here at netzkern to integrate both technologies with each other in a pragmatic and pretty “clean” way. We created a utility called the DataTransferObjectManager that is able to dynamically fill DTOs with the values and copies of all requested references. The trick here is that it does only selectively chooses the right references by letting the client-side developer provide a configuration parameter that indicates which properties he really needs to do his work. All other references are ignored and not returned to the client, they are usually not even loaded from the database. Let’s have a look. First, we create two entity classes as part of our model. They don’t need to be public as they are never used outside of the core assembly. namespace App.Core Let’s pretend that instances of these classes are being tracked by an O/RM manager component that automatically detects changes and performs updates. Now, let’s create the corresponding DTO’s: namespace App.DTO These classes are basically message definitions. In WCF you would use these as DataContracts and annotate them with the appropriate attributes. Instances of these classes are somewhat “dumb”, they only contain data. Now let’s consider, we have the following object graph: House h1 = new House(); This creates a graph with just two objects and a cyclic reference. When you try to serialize “h1” using WCF’s default DataContractSerializer, you get the above mentioned exception. Now let’s use the netzkern.DataTransferObjectManager (or nk.DTOM for short) and see what it can do for us: // Create an empty base DTO. What we get from this is the following “filled” DTO message object: So far we created a flat copy of “h1” with all references excluded. Now let’s include a copy of “h1.Owner” as part of “h2”: // Create an empty base DTO. The result now includes a copy of “p1” that has been mapped to a PersonDTO type: We can now even include “deeper” properties, that are being copied equally by the nk.DTOM: // Create an empty base DTO. That creates the following result: So, how do we use this in WCF? After you have successfully loaded entities in your service operation using an O/RM, you just call the nk.DTOM and return the DataTransferObject as result. The trick is to let the client(!) choose which parts of your internal object graph are necessary to do its work. A simple service call might look like this: IHouseService service = new HouseServiceClient(); That’s basically it. By using the netzkern.DataTransferObjectManager, you can define your data transfer objects independently of your internal entity objects. You can even omit certain properties and nk.DTOM will ignore them. We will now test this component internally and make it available on CodePlex as soon as it reaches BETA status. We also would love to hear your thoughts, just send a mail to blog@juliusganns.com. Update Update 2月23日 About Toolbars, Desktop Widgets and Tray IconsI’ve read about 30 books about Time Management and Productivity over the last few years and there are a couple of things all the techniques in these books have in common. One of them is: Do one thing at a time. This is one of the main reasons why I stay disconnected most the time, and it is also the basic idea behind this post. This post is about all the little applications and programs you can install on your notebooks and desktops as companion to various online services and websites. Although they come with a lot promises and large feature lists, I have a pretty strict opinion regarding all these little tools: If you can do it on the web, don’t use software. Not only do they slow down your PC, they also distract you constantly from the one really important thing you should be doing right now. Using your browser to access those services gives you a lot of advantages, that may not be that obvious. Here are my top three reasons not to use desktop counterparts for web services:
This doesn’t mean that desktop versions of popular web services are inherently a bad thing. They’re not. But if you use them, you should consider the basic idea this post is based on: Do one thing at a time. The following list contains the most important applications I use on my desktop although there are web-based counterparts: Windows Live Messenger (because there is no support for advanced features like File Sharing or Video Conferencing in web-based clients like Meebo), Skype (because there is no real web equivalent), EverNote and MindManager (because I need to be able to offline access my stuff and because of the great integration with other applications). 2月16日 HTML 5.0 - The Next Generation...Finally, after 10 years of HTML 4.01, a W3C working group is going to publish a new HTML standard, hopefully cleaned up and bringing more "native" support for the Web Applications without the use of JavaScript for standard behavior (like editing, drag'n'drop and so on). The following Working Draft summarizes the differences between HTML 4.01 and HTML 5.0. 2月12日 GTD 1.1 - My Personal Tips After More Than One Year...When I started reading Getting Things Done back in 2007, I would have never expected it to change the way I work that fundamentally. There are those things that immediately kick in and help you to structure your day like the Mastering Work Flow Model, but there is even more to GTD than that basic process. This post is about the things I learned in the last 1.5 years and that are easily forgotten. When you start to implement GTD, especially if you're a techie like me, you will immediately create all these fancy lists, install all these feature-rich tools and register for every web 2.0 productivity application you can find. This "learning by playing around" is an important part of getting familiar with the methodology. Tip #1: Allow yourself to have fun with GTD. Cut yourself some slack and experience with your new process and your new tools. But make sure that you don't get lost in the fancy world of GTD tools and practices. Don't forget the reason you're doing all this stuff. Playing around is also important because it helps you with another important thing: Do one step at a time. In the very beginning implementing GTD "to the fullest" seems to be the greatest thing on earth. Trust me, doing it all at once is not possible. Give yourself time to learn, to adjust and to integrate the principles into your life. GTD (and every other "habit") only sticks if it fits naturally in your day, without distracting or hindering your way of doing things. Tip #2: Do one step at a time and keep it simple. GTD is a simple thing, but reading about it and implementing it is not the same. Give yourself the time to learn and don't overwhelm yourself. Another common problem is the thing with the weekly review. I am aware of that because I had it myself. I put in on my calendar, I wrote reminders and I read numerous blogs about the importance of the review process, but I just never really did it. I talked to my friends who are also familiar with GTD, but their response was even more frustrating: No, I don't do it and I don't think it's really that important. It was about that time I also discovered my enthusiasm for Steven Covey, especially The 7 Habits of Highly Effective People and First Things First. The latter one also contains great productivity and time management principles, but instead of starting at the profound organizing level, it helps you to get a new perspective of your life and focus on those things that are really important for you. One of these principles is "Plan Weekly - Adjust Daily". While reading that particular chapter, it suddenly hit me: Why do you always try to do your "Weekly Review" Friday afternoon? Why perform such an important control task when you are exhausted from the week, tired, looking forward to the weekend, hungry and already mentally out of the office? Driven by the success of my idea, I even decided to create a recurring breakfast meeting with all executives at netzkern before my personal Weekly Review and Planning session, every Monday at 9:15 AM. This so called Central Operations meeting still exists and it is a great establishment. So this brings us to our first tip... Tip #3: Do the Weekly Review. It's not only important, it's critical for the successful implementation of GTD, especially in corporate environments. In the beginning, you may be able to manage a smaller amount of projects without it, but the earlier you start to review your stuff, the better. Set aside 15 to 30 minutes per week and make sure that you're neither tired nor have something "more important" to do at that moment. Use the Weekly Review to plan your upcoming week as well and start right away afterwards with the most important thing on your updated list, ideally one that helps you to conquer one of your "Big Rocks". As I mentioned earlier, there is more to GTD than just the Mastering Work Flow Model. It is more than just projects and actions, although most people might perceive it that way. GTD also includes two higher level models that are easily forgotten, yet they are even much more powerful. The first one is called the Natural Planning Model and is intended to help you with the management of all kind of projects. David often refers to projects as "everything that needs more than one action to complete". The problem with that sentence is that because of that statement, a lot of people tend to think of projects primarily as "containers" for actions. But in GTD, projects are much more than that, especially when they do not have a clear outcome or already defined next actions. I will not repeat the Natural Planning Model here, but I want to make sure that everybody understands how important this part of GTD really is. Following its five step process, Purpose and Principles - Vision - Brainstorming - Organizing - Next Actions, is a great way to conquer your own thoughts and I do it every day. Tip #4: Don't stop halfway between, there is much more to GTD than the Mastering Work Flow Model. Study and implement the Natural Planning Model and the Horizons of Focus Model for maximum effectiveness and efficiency in your day-to-day productivity work. Alright, these are my most important tips so far. I could go on a while longer, but instead of just telling you about them, I find it more important that everyone experiences certain parts of the learning process himself. In the end, I really recommend that you read GTD at least twice and maybe revisit it every couple of years. It gets better every time... 2月7日 The Power of DisconnectionEveryone knows, I’m a pretty “connected guy”. I have several Notebooks, Netbooks, PDA’s, my iPhone, my HTC smartphone and plenty of other gadgets that are usually constantly connected to the internet. There is practically no IM service and no community I’m not registered at. Although this perception is largely correct, several years ago I discovered that while these communication services can make your life a lot easier and they help you to stay in touch with your people, they are usually a real productivity killer and a constant distraction. Let’s be honest, 95% of all IM conversations, community messages and even most of your emails fall in one of two categories: They are pretty meaningless, if not stupid -or- they contain important information that really can wait. But yet every single “connection attempt” pops up, “plings” and demands your immediate attention. That’s true for Outlook, Windows Live Messenger, ICQ and even your browser showing Google Talk or Facebook. Everything screams “here, here, read me” and implies “quick, write something back, it doesn’t matter what it is”. So most people just “take a short look” again and again and they wonder why they don’t get anything done… So how should we deal with that? Although communication is a great thing, the first step is to disable everything… Yep, everything, just shut it off. Don’t let your IM applications connect to the internet automatically on windows startup, do not open Facebook first thing in the morning and leave it running in the back and don’t reply to every SMS right after it has been delivered to your phone. Turn off any annoying “you have new mail” notification on your desktop and for god’s sake, do not update constantly all twenty-something services with meaningless status messages like “Having fun with…”, "Just decided to..." and "Thinking about...". Trust me, nobody really cares, except those people that have the same addiction to those things you might currently experience. The second step is to define a communication pattern that does not get in the way of your work and your life. The truth is, having all your communication service enabled all day long is like having 10 people in your office and being constantly interrupted because every 10 minutes someone asks you something. It is really the same. My personal communication pattern is pretty strict. I have three regular times during the day on which I enable all my communication services: When I start my day at the office, right after lunch and when I leave the office. During those periods which usually last about 30 minutes, I open all “channels” to the world, check my email and chat a little with colleagues. I read through my SMS, reply to my friends and return calls. I update my twitter status, take a look at Facebook and check for new messages at studiVZ. After 30 minutes my timer interrupts me, I finish my conversations and disable all tools, sites and features completely. Of course, this is my way and it’s only working pretty great for me. You have to find your own way, but I strongly encourage you to work more disconnected and don’t get trapped in unimportant, apparently urgent but surely mindless things. Turn off the noise in your life. |
|
|