??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品人成网在线播放影院,国产成人精品日本亚洲网址
,综合一区自拍亚洲综合图区
http://www.tkk7.com/tanzek/archive/2008/05/26/203057.htmltanzektanzekMon, 26 May 2008 15:08:00 GMThttp://www.tkk7.com/tanzek/archive/2008/05/26/203057.htmlhttp://www.tkk7.com/tanzek/comments/203057.htmlhttp://www.tkk7.com/tanzek/archive/2008/05/26/203057.html#Feedback0http://www.tkk7.com/tanzek/comments/commentRss/203057.htmlhttp://www.tkk7.com/tanzek/services/trackbacks/203057.htmlMost of my readers know that I'm a software architect by trade. I've been creating software large and small for over twenty years. And I've experienced movement after movement in software design from object-orientation in the 1980s and early 90s to component-based design, distributed objects, Web-based software, service-oriented architecture and too many others to even mention. I'm pretty jaded at this point because I've learned, in general, the problems that you couldn't solve in the previous generation of technique are often only marginally more solveable in the next generation (which is invariably invented to "fix" the previous problems.)
Alas, a genuinely better mousetrap is really hard to find.
So in the end, if you couldn't do whatever it is you wanted to do with the previous generation of technique, it's actually not that likely you'll succeed in the next. Certain software problems remain hard, and in general, it mysteriously happens to involve the juncture between technology and people in some way. To paraphrase this, I could say that the software and techniques get better fairly constantly, but people remain the same.
And please, bear with me because I'm going to try out a real zinger on you in a minute.
Because every once in a long while, something new and big actually does come along. Or at least something that looks new and big. One of the new and big things that came along about ten years ago was the concept of
design patterns
. It was pretty neat stuff. It said that despite the current technology we have, the processes that continue to evolve, there are certain timeless solutions to certain software design problems. It was a revelation at the time. And the writers of the
book that explained this
got both famous and very successful. Why? Because these design patterns really worked is why. And anyone who has read the books and has ever really built software recognizes these patterns. And what was strange was that no one really expected it. One day, we just had them. And the kicker was, they were always there, but now they were in our conscious thought and we had real names for them. My point: They were in our face all the time but most of us couldn't see them.
We are in a similar place with the Web right now. We've done this Web stuff enough now that we are just beginning to see the design patterns. What works, and why, in a specific situations, bounded by forces. Some folks have had the hubris to give this next generation a name and to tease out these patterns. Some people are just now going aha, and some people haven't got it yet, and most of the rest of us either aren't ready for it or just haven't heard of it. But, I will tell you this. It's quite real. The best practices and design patterns of Web software are just starting to become understood. The strange part is, we're discovering the same things over again. What's old is new again.
Now, before you get all worked up or worse, I bore you and you stop reading, I will give you a nice list of the the forces behind these patterns. If you recall, design patterns are a solution to a problem in context. We are starting to get the context and even the outlines of the patterns of this "new" generation of software. But we have a long way to go still. The Web is a monstrously big space with big problems, and it's not getting better. There are
one billion of us
out here now. Clearly understanding what it takes to create great software on the Web that is successful, useful, and vibrant will be an ongoing challenge for a long time. But it will get easier because we are codifying our knowledge of this exciting and huge place where we now find ourselves.
Figure 1: The driving forces in modern software. With a rough comparison between SOA and The Timeless Way (Web 2.0 by any other name).
Now is where I'm going to hit you with a flight of fancy. I'm going to use Christopher Alexander's opening chapter of a Timeless Way of Building and tailor it to describe this old-but-new way of building the Web and software for it. We are lacking for a little inspiration and this book in particular continues to sell upwards of 10,000 copies a year, 25 years after it was frst published. And Christopher Alexander, for those of you who may not know, was the person that originally discovered the design pattern. But it wasn't for software. It was for creating great, timeless buildings. He was one of the first that realized that his field of endeavor has certain elemental, timeless cores, no matter the technique, building material, or the people. It was an amazing discovery that poured over into the software world with considerable success.
My assertion is that nothing has really changed in software, we might understand the forces better but they are almost always the same. People want software that does what they want, is available when they need it. They want software that grows with them, helps them, teaches them, and lets them do the same with others. They want software that gets out of their way, disappears, and is more convenient by far than inconvenient. A
nd they want to pay as little as possible for it, but enough so that it's worth it.
They are willing to have software get right into the middle of their lives. If it's the right software. And as long as we've had software, they've always wanted this. But now they might actually start getting it.
In any case, I don't literally believe every phrase in this take-off, but I do believe the overall concept deeply and profoundly as a software professional. And I will continue to update the diagram above (clearly marked beta 1) until we have more of the forces in it. And some are definitely missing. Please, as always, leave any comments and suggestions for improvement below.
And now, without further ado, here is the The Timeless Way of Building Software, with sincere apologies to Christopher Alexander:
The Timeless Way of Building Software
Inspiration For The Next Generation of Web Software
There is one timeless way of building software. It is decades old and is the same today as it's always been. And because it is timeless, it will always remain this way.
The great software of our time has always been created by people who were close to this way. It isn't possible to create great software - software that is satisfying, and useful, and makes itself a natural extension of life - except by following this way. And as you will see, this way will lead anyone who looks for it to elegant, vibrant software which is itself timeless in its form.
It is the process by which the function of a piece of software grows directly from the inner nature of people and naturally out of the raw bits, the otherwise meaningless digital medium, of which it is made.
It is a process which allows the life inside a person, or a group of people, or a community to flourish, openly, in freedom, so vividly that it gives rise, of its own accord, to the natural order which is needed to be contained within it. It is so powerful and fundamental that with its help you can create software that is as beautiful and enriching as anything else you have ever seen.
Once you understand this way, you yourself will be able to create software that is alive, that is intertwined comfortably with your life and the lives of others. You will design worlds where you and others will want to work, play, and co-exist together; beautiful places where you can sit and dream comfortably.
This way is so powerful, that with its help hundreds or thousands, or even hundreds of thousands of people, can come together together to create software and community which is as alive and vibrant, peaceful and relaxed, as any living experience has ever been.
Without the central control of authorities and experts, if you are working in this timeless way, a genuine place will grow right from underneath your fingertips, as steady as the grass in the fields or the trees in your backyard.
And there is no other way in which a software which is fundamentally good can possibly be made.
That doesn't mean that all ways of making software are identical. Quite the contrary. It means that at the core of all successful software and at the core of all successful processes of creation and evolution, there is one fundamental invariant feature which is responsible for their success. Although this way has taken on a thousand different forms at different times, in different places, still, there is an unavoidable, invariant core to all of them.
Take a look at the some of the great Web software like Google's search page, Flickr or del.icio.us. They all have that unique, yet unhurried, grace which comes from perfect ease and natural balance. But what is it they have in common exactly? They are beautiful, ordered, harmonious - yes, all of these things. But especially, and what strikes to the heart, they live.
Each one of us yearns to be able to bring something to life like this. Or just be a part of it somehow.
It is a fundamental human instinct, as much a part of our desire as the desire to be part of something greater than ourselves. It is, quite simply, the desire to make a part of nature, to complete a world which is already made of mountains, streams, stones, buildings, ourselves, our living systems, and our increasing connectedness together.
Each one of us has, somewhere in our heart, the dream to make a living world, a universe, and place of our own for us to share with others.
Those of us who have trained as software designers have this desire perhaps at the very center of our lives; that one day, somewhere, somehow, we shall build a software experience which is wonderful, beautiful, and breathtaking; a place where people can go and live their dreams.
In some form, every person has some version of this dream; whoever you are, you may have the dream of one day creating a most beautiful place, virtual or otherwise, where you can come together with others and freely share your knowledge, learn, participate in your community or government, and otherwise conduct your daily interaction with the rest of the world.
In some less clear fashion, anyone who is concerned with communities and other large group efforts has this same dream, perhaps for the entire world.
And there is a way that software can actually be brought to life like this.
There is a definable sequence of activities which are the heart of all acts of software design, and it is possible to specify, precisely, under way conditions these activities will generate software which is alive. All this can be made so explicit that anyone can do it.
And just so, the process by which a group of independent people can make software become alive and create a place as real as any other can equally be made precise. Again, there is a definable sequence of activities, more complex in this case, which are the heart of all collective processes of software creation. And it is also possible to specify exactly when these processes will bring things to life. And once again, these processes can be made so explicit, and so clear, that any group of people can make use of them.
This process is behind the design of community built software like Linux, Apache, Wikipedia, and many others. It was behind the design of the great virtual places for people to live and work: the Internet, Usenet, and the World Wide Web. It was behind the creation of simple, satisfying software of the kind that powers the iPod, the Blackberry, and Firefox; of SourceForge, Wikipedia, and BitTorrent. In an unconscious form, this way has been behind almost all ways of creating software since the beginning.
But it has become possible to identify it, only now, by going to a level of analysis which is deep enough to show what is invariant in all of the different versions of this way.
This hinges on a form of representation which reveals all possible design processes, as versions of one most fundamental set of patterns.
First, we have a way of looking at the ultimate constituents of the environment: the ultimate "things" which a piece of software is made of. As we shall see, every piece of software is made of certain fundamental entities known as design patterns; and once we understand software in terms of its patterns, we have a way of looking at them, which makes all software, all of their parts and function, all members of the same class of thing.
Second, we have a way of understanding the generative processes which give rise to these patterns: in short, the source from which the ultimate constituents of software come. These patterns tend to come from certain combinatory processes, which are different in the specific patterns that they generate, but always similar in their overall structure, and in the way they work. They are essentially like languages. And again, in terms of these pattern languages, all the different way of building software, although different in detail, become similar in general outline.
At this level of analysis, we can compare many different software creation processes.
Then, once we see their differences clearly, it becomes possible to define the difference between those processes which make software vibrant, alive, and useful, and those which make them the opposite.
And it turns out that, invariant, behind all processes which allow us to make great software, there is a single common process.
This single idea is operational and precise. It is not merely a vague idea, or a class of processes which we can understand: it is conrete enough and specific enough, so that it functions practically. It gives us the power to make software and virtual communities live, as concrete as a match gives us the power to make flame. It is a method of a discipline, which teaches us precisely what we have to do make our software what we want it to be.
But though this method is precise, it cannot be used mechanically.
The fact is, that even when we have seen deep into the processes by which it is possible to make software alive, in the end, it turns out this knowledge only brings us back to that part of ourselves which is forgotten. Although the process is precise, and can be defined in exact scientific terms, finally it becomes valuable, not so much because it shows us things which we don't know (though it may do that as well), but instead, because it shows us what we know already.
Of course, this way of building software has never be named. It's not service-oriented architecture, or the personal software process, or agile methodology, or the unified process, or CMM, or any of the others. It's the actual things that are conceived and done and worried about when software is created and used. For now, because all software is quickly becoming connected to all other software, and because the Web is becoming the place where more and more of the relevant software is, and finally because it is a more complete reconception of what we thought we knew, we'll give it a name temporarily. An unsatisfying name, but one that we can remember for now.
We will call it Web 2.0.
What do you think? Are we at a place where we can really identify the design patterns in Web 2.0?
]]>JDBC驱动下蝲http://www.tkk7.com/tanzek/archive/2007/09/11/144343.htmltanzektanzekTue, 11 Sep 2007 11:01:00 GMThttp://www.tkk7.com/tanzek/archive/2007/09/11/144343.htmlhttp://www.tkk7.com/tanzek/comments/144343.htmlhttp://www.tkk7.com/tanzek/archive/2007/09/11/144343.html#Feedback0http://www.tkk7.com/tanzek/comments/commentRss/144343.htmlhttp://www.tkk7.com/tanzek/services/trackbacks/144343.html
SQL Server 2000 Driver for JDBC Service Pack 3
Download-Site: http://www.microsoft.com/downloads/details.aspx?familyid=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en
System Requirements
Supported Operating Systems: HP-UX; IBM AIX; Linux; Solaris; Windows 2000 Service Pack 2; Windows 2000 Service Pack 3; Windows 2000 Service Pack 4; Windows Server 2003; Windows XP
The following versions of SQL Server will be supported for use with the SQL Server 2000 Driver for JDBC SP2: ?SQL Server 2000 Standard and Enterprise Editions* ?SQL Server 2000 Standard and Enterprise Editions with Service Pack 1 or higher* ?SQL Server 2000 Enterprise Edition (64-bit)*
* Service Pack 3a is strongly recommended
The following versions of the JDK will be supported for use with the SQL Server 2000 Driver for JDBC: ?JDK 1.1.8 ?JDK 1.2 ?JDK 1.3 ?JDK 1.4
MySQL Connector/J is the official JDBC driver for MySQL.
Microsoft SQL Server 2005 JDBC Driver 1.1
System Requirements
Supported Operating Systems: Linux; Solaris; Windows 2000 Service Pack 4; Windows Server 2003 R2 (32-Bit x86); Windows Server 2003 x64 editions; Windows XP Service Pack 2
]]>JAVA与蓝牙v?Getting Started with Java and Bluetooth)http://www.tkk7.com/tanzek/archive/2007/04/26/113658.htmltanzektanzekWed, 25 Apr 2007 16:39:00 GMThttp://www.tkk7.com/tanzek/archive/2007/04/26/113658.htmlhttp://www.tkk7.com/tanzek/comments/113658.htmlhttp://www.tkk7.com/tanzek/archive/2007/04/26/113658.html#Feedback0http://www.tkk7.com/tanzek/comments/commentRss/113658.htmlhttp://www.tkk7.com/tanzek/services/trackbacks/113658.html栈初始化 在你做Q何事之前Q你需要初始化你的栈。记住,栈是一个用来控制你的蓝牙设
// step #1 // the String url will already be defined with the // correct url parameters notifier = (StreamConnectionNotifier)Connector.open(url);
// step #2 // we will get the LocalDevice if not already done so localdevice = LocalDevice.getLocalDevice(); servicerecord = localdevice.getRecord(notifier);
// step #3 is optional
// step #4 // this step will block the current thread until // a client responds this step will also cause the // service record to be stored in the SDDB notifier.acceptAndOpen();
// step #5 // just wait... // assume the client has connected and you are ready to exit
// step #6 // this causes the service record to be removed // from the SDDB notifier.close(); 你需要在蓝牙里面做的服务发现如上Q下一步是通信
通信 蓝牙是一个通信协议Q因此你如何与它通信呢?JAVA Bluetooth APIl你三种Ҏ来发送和接收数据。但为立刻v见,我们实现其中的一个:RFCOMM 注意QRFCOMM是用来通信的串行端口操作模式的协议层,但是q两个东西经常被当作同样来用?/p>
public static void main(String [] args) { new Child(); } }
class Child extends Parent { private int instanceValue = 20; public void test() { System.out.println("instance value is: " + instanceValue); } }
执行Parent的mainl果是什么,q说出理?
[回复]: 我试着分析下哦:
很显?E序是从Main开始执行的,不过执行之前肯定是装载了Parentcȝ. 当执行new Child();语句?肯定也会去装载Childc?C,q是只是装蝲,装蝲的同时会完成cȝ静态成员的初始化工?.q里是请求创建Child的实?因ؓChild是Parent的子c?那么肯定是要dd建Parent的一个实例的,那么在这个过E中,׃执行了Child的覆盖方法test(),q时,子类中的instanceValueq没有被赋?因ؓq时候还没有q行Child的实例创? 看一下我加入一些状态的E序和执行结果哦. E序清单: public class Parent { public void test() { System.out.println("In Parent Class."); }
public Parent() { System.out.println("In Parent Constructor"); test(); }
public static void main(String [] args) { System.out.println("In Main Function."); new Child(); } }
class Child extends Parent { private int instanceValue = 20;
public void test() { System.out.println("In Child Class."); System.out.println("instance value is: " + this.instanceValue); }
public Child() { System.out.println("In Child Constructor."); } } 执行l果(主要是看执行序?: In Main Function. In Parent Constructor In Child Class. instance value is: 0 In Child Constructor.
]]>IBM xSeries服务器安装内存一?/title>http://www.tkk7.com/tanzek/archive/2007/04/04/108304.htmltanzektanzekTue, 03 Apr 2007 16:55:00 GMThttp://www.tkk7.com/tanzek/archive/2007/04/04/108304.htmlhttp://www.tkk7.com/tanzek/comments/108304.htmlhttp://www.tkk7.com/tanzek/archive/2007/04/04/108304.html#Feedback0http://www.tkk7.com/tanzek/comments/commentRss/108304.htmlhttp://www.tkk7.com/tanzek/services/trackbacks/108304.html部门q购IBM xSeries 225服务器已l达三年之久了,128*2=256MB RAM + 40G HDD跑v来嘎哒嗄哒地响,期间一直没有更新过Q如今赶上个好日子,领导重视服务器应用v来了Q于是报告一批,一?12MB的内存条马上到手了?br> 着q喜_q夜加班装到机器上面Q一开机却发现不了512M+256M那么多的内存Q却只有640MB。郁P怎么会这样子呢?换个插槽试试Q结果d四个插槽和三根内存条Q试遍了整整3*3*3*3U方法,却发现内存最大也只能?40MBQ最却?28MBQ倒哦Q白喜了一,那夜晚上q了那640MB的内存一直跑到如今来了?br> 那是比较久的事了Q大概还是半q前。嘿嘿,今天兴致比较好,居然又想动vq个来了Q于是把它又整出来(IBM的机q难拆Q。这一ơ换了思\了,打算先从文档下手Q嘿嘿,扑ֈ?#8220;@server xSeries 225 Documentation”q张光盘Q放q去看一下文档,居然?#8220;Installation Guide”Q进L找,扑ֈ了,现引用原文如下哦Q?br> Installing memory modules You can increase the amount of memory in your server by installing memory modules. Your server uses industry-standard PC2100 double-data-rate (DDR) dual inline memory modules (DIMMs). Notes: 1. The system board contains four DIMM connectors and supports two-way memory interleaving. 2. The DIMM options available for your server are 128 MB, 256 MB, 512 MB, 1 GB, and 2 GB. Your server supports a minimum of 256 MB and a maximum of 8 GB of system memory. 3. The amount of usable memory will be reduced depending on the system configuration. A certain amount of memory must be reserved for system resources. The BIOS will display the total amount of installed memory and the amount of configured memory. 4. Your server comes with two 256 MB or 512 MB DIMMs (for a total of 512 MB or 1024 MB) installed in the DIMM 3 and DIMM 4 memory connectors. When you install additional DIMMs, be sure to install them as a pair in DIMM connectors 1 and 2. 5. DIMMs must be installed in matched pairs. The first pair of DIMMs you install in DIMM 3 and DIMM 4 memory connectors must be the same size, speed, type, and technology. You can mix compatible DIMMs from various manufacturers. If you install a second pair of DIMMs in DIMM 1 and DIMM 2 memory connectors, they do not have to be the same size, speed, type, and technology as the DIMMs you installed in DIMM 3 and DIMM 4 memory connectors. However, the size, speed, type, and technology of the DIMMs you install in DIMM 1 and DIMM 2 memory connectors must match each other. 6. Install only 133 MHz (memory bus), 2.5 V, 184-pin, double-data-rate (DDR), PC2100, registered synchronous dynamic random-access memory (SDRAM) with error correcting code (ECC) DIMMs. These DIMMs must be compatible with the latest PC2100 SDRAM Registered DIMM specification. For a list of supported options for your server, go to http://www.ibm.com/us/compat/ on the World Wide Web. 7. Your server supports Chipkill™ memory if the DIMMs are all type x4 and are 256 MB or larger. Using any 128 MB DIMMs or DIMMs that are not type x4 on your server disables Chipkill memory. Complete the following steps to install a DIMM: 1. Review the safety information beginning on page vii, “Installation guidelines” on page 9, and “Handling static-sensitive devices” on page 10. 2. Remove the side cover (see “Removing the side cover” on page 11). 3. Remove the support bracket (see “Removing and installing the support bracket” on page 13). 4. Locate the DIMM connectors on the system board. Determine the connectors into which you will install the DIMMs. Install the DIMMs in the order shown in the following table. Table 3. DIMM installation sequence Installation order DIMM connectors Diagnostic reference First DIMM 3 and DIMM 4 Bank 2 Second DIMM 1 and DIMM 2 Bank 1 28 IBM xSeries 225 Type 8647: Installation Guide 5. Open the retaining clips and, if necessary, remove any existing DIMM. 6. Touch the static-protective package containing the DIMM to any unpainted metal surface on the server. Then remove the new DIMM from the package. 7. Gently open the retaining clip on each end of the DIMM slot. Turn the DIMM so that the pins align correctly with the connector. 8. Insert the DIMM into the connector. Firmly press the DIMM straight down into the connector by applying pressure on both ends of the DIMM simultaneously. The retaining clips snap into the locked position when the DIMM is firmly seated in the connector. If there is a gap between the DIMM and the retaining clips, the DIMM has not been correctly installed. Open the retaining clips, remove the DIMM, and then reinsert it. DIMM 1 DIMM 3 DIMM 2 DIMM 4 9. If you have other options to install or remove, do so now; otherwise, replace the support bracket (see “Removing and installing the support bracket” on page 13) and go to “Completing the installation” on page 34.
[问题解决]QThe command is attempting to use a Web page from the site >gbui://blank.htm/ You have not identified this site as a trusted site in Internet Explorer.
Background Information
This error indicates that a needed registry key was not created during the installation of Project Server.
Resolution
You can uninstall and reinstall Project Server, or you can manually create the following registry key:
可能出现的问题: 1、其中添加了一个NameVirtualHost和两个VirtualHostQ注意后面的*必须相同Q否则会出现Q?br> [warn] NameVirtualHost *:0 has no VirtualHosts 另外Q?br>2、在上面配置中的三项必须打开Q否则也会出现无法访问网늚现象Q?br>