text:
[Editor's note: Fourteen years ago Stephen Harper was vice president of the National Citizens Coalition, an Alberta-based think tank that crusades for smaller government and less taxes.
Today, on the eve of another federal election, the NCC's web site says: "Is Canada today perfect? Far from it. Have we conservatives been able to accomplish everything we want? Not by a long shot. But we now have the people, the tools and the political will to help bring Canadians the government they deserve at a price they can afford."
Next week Stephen Harper will begin his fourth try at winning a majority government for the Conservative Party he welded together from its predecessors, the Reform Party and the Progressive Conservatives.We thought it might be a good time to run in its entirety the speech Harper gave to a June 1997 Montreal meeting of the right-wing U.S. Council for National Policy, in which he spoke frankly about the aspirations and criticisms he holds for Canada.]
Ladies and gentlemen, let me begin by giving you a big welcome to Canada. Let's start up with a compliment. You're here from the second greatest nation on earth. But seriously, your country, and particularly your conservative movement, is a light and an inspiration to people in this country and across the world.
Now, having given you a compliment, let me also give you an insult. I was asked to speak about Canadian politics. It may not be true, but it's legendary that if you're like all Americans, you know almost nothing except for your own country. Which makes you probably knowledgeable about one more country than most Canadians.
But in any case, my speech will make that assumption. I'll talk fairly basic stuff. If it seems pedestrian to some of you who do know a lot about Canada, I apologize.
I'm going to look at three things. First of all, just some basic facts about Canada that are relevant to my talk, facts about the country and its political system, its civics. Second, I want to take a look at the party system that's developed in Canada from a conventional left/right, or liberal/conservative perspective. The third thing I'm going to do is look at the political system again, because it can't be looked at in this country simply from the conventional perspective.
First, facts about Canada. Canada is a Northern European welfare state in the worst sense of the term, and very proud of it. Canadians make no connection between the fact that they are a Northern European welfare state and the fact that we have very low economic growth, a standard of living substantially lower than yours, a massive brain drain of young professionals to your country, and double the unemployment rate of the United States.
In terms of the unemployed, of which we have over a million-and-a-half, don't feel particularly bad for many of these people. They don't feel bad about it themselves, as long as they're receiving generous social assistance and unemployment insurance.
That is beginning to change. There have been some significant changes in our fiscal policies and our social welfare policies in the last three or four years. But nevertheless, they're still very generous compared to your country.
Let me just make a comment on language, which is so important in this country. I want to disabuse you of mis-impressions you may have. If you've read any of the official propagandas, you've come over the border and entered a bilingual country. In this particular city, Montreal, you may well get that impression. But this city is extremely atypical of this country.
While it is a French-speaking city -- largely -- it has an enormous English-speaking minority and a large number of what are called ethnics: they who are largely immigrant communities, but who politically and culturally tend to identify with the English community.
This is unusual, because the rest of the province of Quebec is, by and large, almost entirely French-speaking. The English minority present here in Montreal is quite exceptional.
Furthermore, the fact that this province is largely French-speaking, except for Montreal, is quite exceptional with regard to the rest of the country. Outside of Quebec, the total population of francophones, depending on how you measure it, is only three to five per cent of the population. The rest of Canada is English speaking.
Even more important, the French-speaking people outside of Quebec live almost exclusively in the adjacent areas, in northern New Brunswick and in Eastern Ontario.
The rest of Canada is almost entirely English speaking. Where I come from, Western Canada, the population of francophones ranges around one to two per cent in some cases. So it's basically an English-speaking country, just as English-speaking as, I would guess, the northern part of the United States.
But the important point is that Canada is not a bilingual country. It is a country with two languages. And there is a big difference.
As you may know, historically and especially presently, there's been a lot of political tension between these two major language groups, and between Quebec and the rest of Canada.
Let me take a moment for a humorous story. Now, I tell this with some trepidation, knowing that this is a largely Christian organization.
The National Citizens Coalition, by the way, is not. We're on the sort of libertarian side of the conservative spectrum. So I tell this joke with a little bit of trepidation. But nevertheless, this joke works with Canadian audiences of any kind, anywhere in Canada, both official languages, any kind of audience.
It's about a constitutional lawyer who dies and goes to heaven. There, he meets God and gets his questions answered about life. One of his questions is, "God, will this problem between Quebec and the rest of Canada ever be resolved?'' And God thinks very deeply about this, as God is wont to do. God replies, "Yes, but not in my lifetime.''
I'm glad to see you weren't offended by that. I've had the odd religious person who's been offended. I always tell them, "Don't be offended. The joke can't be taken seriously theologically. It is, after all, about a lawyer who goes to heaven.''
In any case. My apologies to Eugene Meyer of the Federalist Society.
Second, the civics, Canada's civics.
On the surface, you can make a comparison between our political system and yours. We have an executive, we have two legislative houses, and we have a Supreme Court.
However, our executive is the Queen, who doesn't live here. Her representative is the Governor General, who is an appointed buddy of the Prime Minister.
Of our two legislative houses, the Senate, our upper house, is appointed, also by the Prime Minister, where he puts buddies, fundraisers and the like. So the Senate also is not very important in our political system.
And we have a Supreme Court, like yours, which, since we put a charter of rights in our constitution in 1982, is becoming increasingly arbitrary and important. It is also appointed by the Prime Minister. Unlike your Supreme Court, we have no ratification process.
So if you sort of remove three of the four elements, what you see is a system of checks and balances which quickly becomes a system that's described as unpaid checks and political imbalances.
What we have is the House of Commons. The House of Commons, the bastion of the Prime Minister's power, the body that selects the Prime Minister, is an elected body. I really emphasize this to you as an American group: It's not like your House of Representatives. Don't make that comparison.
What the House of Commons is really like is the United States electoral college. Imagine if the electoral college which selects your president once every four years were to continue sitting in Washington for the next four years. And imagine its having the same vote on every issue. That is how our political system operates.
In our election last Monday, the Liberal party won a majority of seats. The four opposition parties divided up the rest, with some very, very rough parity.
But the important thing to know is that this is how it will be until the Prime Minister calls the next election. The same majority vote on every issue. So if you ask me, "What's the vote going to be on gun control?'' or on the budget, we know already.
If any member of these political parties votes differently from his party on a particular issue, well, that will be national headline news. It's really hard to believe. If any one member votes differently, it will be national headline news. I voted differently at least once from my party, and it was national headline news. It's a very different system.
Our party system consists today of five parties. There was a remark made yesterday at your youth conference about the fact that parties come and go in Canada every year. This is rather deceptive. I've written considerably on this subject.
We had a two-party system from the founding of our country, in 1867. That two-party system began to break up in the period from 1911 to 1935. Ever since then, five political elements have come and gone. We've always had at least three parties. But even when parties come back, they're not really new. They're just an older party re-appearing under a different name and different circumstances.
Let me take a conventional look at these five parties. I'll describe them in terms that fit your own party system, the left/right kind of terms.
Let's take the New Democratic Party, the NDP, which won 21 seats. The NDP could be described as basically a party of liberal Democrats, but it's actually worse than that, I have to say. And forgive me jesting again, but the NDP is kind of proof that the Devil lives and interferes in the affairs of men.
This party believes not just in large government and in massive redistributive programs, it's explicitly socialist. On social value issues, it believes the opposite on just about everything that anybody in this room believes. I think that's a pretty safe bet on all social-value kinds of questions.
Some people point out that there is a small element of clergy in the NDP. Yes, this is true. But these are clergy who, while very committed to the church, believe that it made a historic error in adopting Christian theology.
The NDP is also explicitly a branch of the Canadian Labour Congress, which is by far our largest labour group, and explicitly radical.
There are some moderate and conservative labour organizations. They don't belong to that particular organization.
The second party, the Liberal party, is by far the largest party. It won the election. It's also the only party that's competitive in all parts of the country. The Liberal party is our dominant party today, and has been for 100 years. It's governed almost all of the last hundred years, probably about 75 per cent of the time.
It's not what you would call conservative Democrat; I think that's a disappearing kind of breed. But it's certainly moderate Democrat, a type of Clinton-pragmatic Democrat. It's moved in the last few years very much to the right on fiscal and economic concerns, but still believes in government intrusion in the economy where possible, and does, in its majority, believe in fairly liberal social values.
In the last Parliament, it enacted comprehensive gun control, well beyond, I think, anything you have. Now we'll have a national firearms registration system, including all shotguns and rifles. Many other kinds of weapons have been banned. It believes in gay rights, although it's fairly cautious. It's put sexual orientation in the Human Rights Act and will let the courts do the rest.
There is an important caveat to its liberal social values. For historic reasons that I won't get into, the Liberal party gets the votes of most Catholics in the country, including many practising Catholics. It does have a significant Catholic, social-conservative element which occasionally disagrees with these kinds of policy directions. Although I caution you that even this Catholic social conservative element in the Liberal party is often quite liberal on economic issues.
Then there is the Progressive Conservative party, the PC party, which won only 20 seats. Now, the term Progressive Conservative will immediately raise suspicions in all of your minds. It should. It's obviously kind of an oxymoron. But actually, its origin is not progressive in the modern sense. The origin of the term "progressive'' in the name stems from the Progressive Movement in the 1920s, which was similar to that in your own country.
But the Progressive Conservative is very definitely liberal Republican. These are people who are moderately conservative on economic matters, and in the past have been moderately liberal, even sometimes quite liberal on social policy matters.
In fact, before the Reform Party really became a force in the late '80s, early '90s, the leadership of the Conservative party was running the largest deficits in Canadian history. They were in favour of gay rights officially, officially for abortion on demand. Officially -- what else can I say about them? Officially for the entrenchment of our universal, collectivized, health-care system and multicultural policies in the constitution of the country.
At the leadership level anyway, this was a pretty liberal group. This explains one of the reasons why the Reform party has become such a power.
The Reform party is much closer to what you would call conservative Republican, which I'll get to in a minute.
The Bloc Quebecois, which I won't spend much time on, is a strictly Quebec party, strictly among the French-speaking people of Quebec. It is an ethnic separatist party that seeks to make Quebec an independent, sovereign nation.
By and large, the Bloc Quebecois is centre-left in its approach. However, it is primarily an ethnic coalition. It's always had diverse elements. It does have an element that is more on the right of the political spectrum, but that's definitely a minority element.
Let me say a little bit about the Reform party because I want you to be very clear on what the Reform party is and is not.
The Reform party, although described by many of its members, and most of the media, as conservative, and conservative in the American sense, actually describes itself as populist. And that's the term its leader, Preston Manning, uses.
This term is not without significance. The Reform party does stand for direct democracy, which of course many American conservatives do, but also it sees itself as coming from a long tradition of populist parties of Western Canada, not all of which have been conservative.
It also is populist in the very real sense, if I can make American analogies to it -- populist in the sense that the term is sometimes used with Ross Perot.
The Reform party is very much a leader-driven party. It's much more a real party than Mr. Perot's party -- by the way, it existed before Mr. Perot's party. But it's very much leader-driven, very much organized as a personal political vehicle. Although it has much more of a real organization than Mr. Perot does.
But the Reform party only exists federally. It doesn't exist at the provincial level here in Canada. It really exists only because Mr. Manning is pursuing the position of prime minister. It doesn't have a broader political mandate than that yet. Most of its members feel it should, and, in their minds, actually it does.
It also has some Buchananist tendencies. I know there are probably many admirers of Mr. Buchanan here, but I mean that in the sense that there are some anti-market elements in the Reform Party. So far, they haven't been that important, because Mr. Manning is, himself, a fairly orthodox economic conservative.
The predecessor of the Reform party, the Social Credit party, was very much like this. Believing in funny money and control of banking, and a whole bunch of fairly non-conservative economic things.
So there are some non-conservative tendencies in the Reform party, but, that said, the party is clearly the most economically conservative party in the country. It's the closest thing we have to a neo-conservative party in that sense.
It's also the most conservative socially, but it's not a theo-con party, to use the term. The Reform party does favour the use of referendums and free votes in Parliament on moral issues and social issues.
The party is led by Preston Manning, who is a committed, evangelical Christian. And the party in recent years has made some reference to family values and to family priorities. It has some policies that are definitely social-conservative, but it's not explicitly so.
Many members are not, the party officially is not, and, frankly, the party has had a great deal of trouble when it's tried to tackle those issues.
Last year, when we had the Liberal government putting the protection of sexual orientation in our Human Rights Act, the Reform Party was opposed to that, but made a terrible mess of the debate. In fact, discredited itself on that issue, not just with the conventional liberal media, but even with many social conservatives by the manner in which it mishandled that.
So the social conservative element exists. Mr. Manning is a Christian, as are most of the party's senior people. But it's not officially part of the party. The party hasn't quite come to terms with how that fits into it.
That's the conventional analysis of the party system.
Let me turn to the non-conventional analysis, because frankly, it's impossible, with just left/right terminology to explain why we would have five parties, or why we would have four parties on the conventional spectrum. Why not just two?
The reason is regional division, which you'll see if you carefully look at a map. Let me draw the United States comparison, a comparison with your history.
The party system that is developing here in Canada is a party system that replicates the antebellum period, the pre-Civil War period of the United States.
That's not to say -- and I would never be quoted as saying -- we're headed to a civil war. But we do have a major secession crisis, obviously of a very different nature than the secession crisis you had in the 1860s. But the dynamics, the political and partisan dynamics of this, are remarkably similar.
The Bloc Quebecois is equivalent to your Southern secessionists, Southern Democrats, states rights activists. The Bloc Quebecois, its 44 seats, come entirely from the province of Quebec. But even more strikingly, they come from ridings, or election districts, almost entirely populated by the descendants of the original European French settlers.
The Liberal party has 26 seats in Quebec. Most of these come from areas where there are heavy concentrations of English, aboriginal or ethnic votes. So the Bloc Quebecois is very much an ethnic party, but it's also a secession party. In the referendum two years ago, the secessionists won 49 per cent of the vote, 49.5 per cent. So this is a very real crisis. We're looking at another referendum before the turn of the century.
The Progressive Conservative party is very much comparable to the Whigs of the 1850s and 1860s. What is happening to them is very similar to the Whigs. A moderate conservative party, increasingly under stress because of the secession movement, on the one hand, and the reaction to that movement from harder line English Canadians on the other hand.
You may recall that the Whigs, in their dying days, went through a series of metamorphoses. They ended up as what was called the Unionist movement that won some of the border states in your 1860 election.
If you look at the surviving PC support, it's very much concentrated in Atlantic Canada, in the provinces to the east of Quebec. These are very much equivalent to the United States border states. They're weak economically. They have very grim prospects if Quebec separates. These people want a solution at almost any cost. And some of the solutions they propose would be exactly that.
They also have a small percentage of seats in Quebec. These are French-speaking areas that are also more moderate and very concerned about what would happen in a secession crisis.
The Liberal party is very much your northern Democrat, or mainstream Democratic party, a party that is less concessionary to the secessionists than the PCs, but still somewhat concessionary. And they still occupy the mainstream of public opinion in Ontario, which is the big and powerful province, politically and economically, alongside Quebec.
The Reform party is very much a modern manifestation of the Republican movement in Western Canada; the U.S. Republicans started in the western United States. The Reform Party is very resistant to the agenda and the demands of the secessionists, and on a very deep philosophical level.
The goal of the secessionists is to transform our country into two nations, either into two explicitly sovereign countries, or in the case of weaker separatists, into some kind of federation of two equal partners.
The Reform party opposes this on all kinds of grounds, but most important, Reformers are highly resistant philosophically to the idea that we will have an open, modern, multi-ethnic society on one side of the line, and the other society will run on some set of ethnic-special-status principles. This is completely unacceptable, particularly to philosophical conservatives in the Reform party.
The Reform party's strength comes almost entirely from the West. It's become the dominant political force in Western Canada. And it is getting a substantial vote in Ontario. Twenty per cent of the vote in the last two elections. But it has not yet broken through in terms of the number of seats won in Ontario.
This is a very real political spectrum, lining up from the Bloc to reform. You may notice I didn't mention the New Democratic Party. The NDP obviously can't be compared to anything pre-Civil War. But the NDP is not an important player on this issue. Its views are somewhere between the liberals and conservatives. Its main concern, of course, is simply the left-wing agenda to basically disintegrate our society in all kinds of spectrums. So it really doesn't fit in.
But I don't use this comparison of the pre-Civil War lightly. Preston Manning, the leader of the Reform party has spent a lot of time reading about pre-Civil War politics. He compares the Reform party himself to the Republican party of that period. He is very well-read on Abraham Lincoln and a keen follower and admirer of Lincoln.
I know Mr. Manning very well. I would say that next to his own father, who is a prominent Western Canadian politician, Abraham Lincoln has probably had more effect on Mr. Manning's political philosophy than any individual politician.
Obviously, the issue here is not slavery, but the appeasement of ethnic nationalism. For years, we've had this Quebec separatist movement. For years, we elected Quebec prime ministers to deal with that, Quebec prime ministers who were committed federalists who would lead us out of the wilderness. For years, we have given concessions of various kinds of the province of Quebec, political and economic, to make them happier.
This has not worked. The sovereignty movement has continued to rise in prominence. And its demands have continued to increase. It began to hit the wall when what are called the soft separatists and the conventional political establishment got together to put in the constitution something called "a distinct society clause.'' Nobody really knows what it would mean, but it would give the Supreme Court, where Quebec would have a tremendous role in appointment, the power to interpret Quebec's special needs and powers, undefined elsewhere.
This has led to a firewall of resistance across the country. It fuelled the growth of the Reform party. I should even say that the early concessionary people, like Pierre Trudeau, have come out against this. So there's even now an element of the Quebec federalists themselves who will no longer accept this.
So you see the syndrome we're in. The separatists continue to make demands. They're a powerful force. They continue to have the bulk of the Canadian political establishment on their side. The two traditional parties, the Liberals and PCs, are both led by Quebecers who favour concessionary strategies. The Reform party is a bastion of resistance to this tendency.
To give you an idea of how divided the country is, not just in Quebec but how divided the country is outside Quebec on this, we had a phenomenon five years ago. This is a real phenomenon; I don't know how much you heard about it.
The establishment came down with a constitutional package which they put to a national referendum. The package included distinct society status for Quebec and some other changes, including some that would just horrify you, putting universal Medicare in our constitution, and feminist rights, and a whole bunch of other things.
What was significant about this was that this constitutional proposal was supported by the entire Canadian political establishment. By all of the major media. By the three largest traditional parties, the PC, Liberal party and NDP. At the time, the Bloc and Reform were very small.
It was supported by big business, very vocally by all of the major CEOs of the country. The leading labour unions all supported it. Complete consensus. And most academics.
And it was defeated. It literally lost the national referendum against a rag-tag opposition consisting of a few dissident conservatives and a few dissident socialists.
This gives you some idea of the split that's taking place in the country.
Canada is, however, a troubled country politically, not socially. This is a country that we like to say works in practice but not in theory.
You can walk around this country without running across very many of these political controversies.
I'll end there and take any of your questions. But let me conclude by saying, good luck in your own battles. Let me just remind you of something that's been talked about here. As long as there are exams, there will always be prayer in schools.
Read more: Politics, Federal Election 2011


text:
Keep up with new releases and promotions. Sign up to hear from us.
Register your product to gain access to bonus material or receive a coupon.
As the application of object technology--particularly the Java programming language--has become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and extend. Increasingly, software system professionals are discovering just how difficult it is to work with these inherited, "non-optimal" applications. For several years, expert-level object programmers have employed a growing collection of techniques to improve the structural integrity and performance of such existing software programs. Referred to as "refactoring," these practices have remained in the domain of experts because no attempt has been made to transcribe the lore into a form that all developers could use. . .until now. In Refactoring: Improving the Design of Existing Code, renowned object technology mentor Martin Fowler breaks new ground, demystifying these master practices and demonstrating how software practitioners can realize the significant benefits of this new process.
With proper training a skilled system designer can take a bad design and rework it into well-designed, robust code. In this book, Martin Fowler shows you where opportunities for refactoring typically can be found, and how to go about reworking a bad design into a good one. Each refactoring step is simple--seemingly too simple to be worth doing. Refactoring may involve moving a field from one class to another, or pulling some code out of a method to turn it into its own method, or even pushing some code up or down a hierarchy. While these individual steps may seem elementary, the cumulative effect of such small changes can radically improve the design. Refactoring is a proven way to prevent software decay.
In addition to discussing the various techniques of refactoring, the author provides a detailed catalog of more than seventy proven refactorings with helpful pointers that teach you when to apply them; step-by-step instructions for applying each refactoring; and an example illustrating how the refactoring works. The illustrative examples are written in Java, but the ideas are applicable to any object-oriented programming language.
Click below for Sample Chapter(s) related to this title:
Download the sample pages (includes Chapter 3 and Index)
1. Refactoring, a First Example.
The Starting Point.
The First Step in Refactoring.
Decomposing and Redistributing the Statement Method.
Replacing the Conditional Logic on Price Code with Polymorphism.
Final Thoughts.
Defining Refactoring.
Why Should You Refactor?
When Should You Refactor?
What Do I Tell My Manager?
Problems with Refactoring.
Refactoring and Design.
Refactoring and Performance.
Where Did Refactoring Come From?
Duplicated Code.
Long Method.
Large Class.
Long Parameter List.
Divergent Change.
Shotgun Surgery.
Feature Envy.
Data Clumps.
Primitive Obsession.
Switch Statements.
Parallel Inheritance Hierarchies.
Lazy Class.
Speculative Generality.
Temporary Field.
Message Chains.
Middle Man.
Inappropriate Intimacy.
Alternative Classes with Different Interfaces.
Incomplete Library Class.
Data Class.
Refused Bequest.
The Value of Self-testing Code.
The JUnit Testing Framework.
Adding More Tests.
Format of the Refactorings.
Finding References.
How Mature Are These Refactorings?
Extract Method.
Inline Method.
Inline Temp.
Replace Temp with Query.
Introduce Explaining Variable.
Split Temporary Variable.
Remove Assignments to Parameters.
Replace Method with Method Object.
Substitute Algorithm.
Move Method.
Move Field.
Extract Class.
Inline Class.
Hide Delegate.
Remove Middle Man.
Introduce Foreign Method.
Introduce Local Extension.
Self Encapsulate Field.
Replace Data Value with Object.
Change Value to Reference.
Change Reference to Value.
Replace Array with Object.
Duplicate Observed Data.
Change Unidirectional Association to Bidirectional.
Change Bidirectional Association to Unidirectional.
Replace Magic Number with Symbolic Constant.
Encapsulate Field.
Encapsulate Collection.
Replace Record with Data Class.
Replace Type Code with Class.
Replace Type Code with Subclasses.
Replace Type Code with State/Strategy.
Replace Subclass with Fields.
Decompose Conditional.
Consolidate Conditional Expression.
Consolidate Duplicate Conditional Fragments.
Remove Control Flag.
Replace Nested Conditional with Guard Clauses.
Replace Conditional with Polymorphism.
Introduce Null Object.
Introduce Assertion.
Rename Method.
Add Parameter.
Remove Parameter.
Separate Query from Modifier.
Parameterize Method.
Replace Parameter with Explicit Methods.
Preserve Whole Object.
Replace Parameter with Method.
Introduce Parameter Object.
Remove Setting Method.
Hide Method.
Replace Constructor with Factory Method.
Encapsulate Downcast.
Replace Error Code with Exception.
Replace Exception with Test.
Pull Up Field.
Pull Up Method.
Pull Up Constructor Body.
Push Down Method.
Push Down Field.
Extract Subclass.
Extract Superclass.
Extract Interface.
Collapse Hierarchy.
Form Template Method.
Replace Inheritance with Delegation.
Replace Delegation with Inheritance.
Tease Apart Inheritance.
Convert Procedural Design to Objects.
Separate Domain from Presentation.
Extract Hierarchy.
A Reality Check.
Why Are Developers Reluctant to Refactor Their Programs?
A Reality Check (Revisited).
Resources and References for Refactoring.
Implications Regarding Software Reuse and Technology Transfer.
A Final Note.
Refactoring with a Tool.
Technical Criteria for a Refactoring Tool.
Practical Criteria for a Refactoring Tool.
Wrap Up.
Once upon a time, a consultant made a visit to a development project. The consultant looked at some of the code that had been written; there was a class hierarchy at the center of the system. As he wandered through the hierarchy, the consultant saw that it was rather messy. The higher-level classes made certain assumptions about how the classes would work, assumptions that were embodied in inherited code. That code didn't suit all the subclasses, however, and was overridden quite heavily. If the superclass had been modified a little, then much less overriding would have been necessary. In other places some of the intention of the superclass had not been properly understood, and behavior present in the superclass was duplicated. In yet other places several subclasses did the same thing with code that could clearly be moved up the hierarchy.
The consultant recommended to the project management that the code be looked at and cleaned up, but the project management didn't seem enthusiastic. The code seemed to work and there were considerable schedule pressures. The managers said they would get around to it at some later point.
The consultant had also shown the programmers who had worked on the hierarchy what was going on. The programmers were keen and saw the problem. They knew that it wasn't really their fault; sometimes a new pair of eyes are needed to spot the problem. So the programmers spent a day or two cleaning up the hierarchy. When they were finished, the programmers had removed half the code in the hierarchy without reducing its functionality. They were pleased with the result and found that it became quicker and easier both to add new classes to the hierarchy and to use the classes in the rest of the system.
The project management was not pleased. Schedules were tight and there was a lot of work to do. These two programmers had spent two days doing work that had done nothing to add the many features the system had to deliver in a few months time. The old code had worked just fine. So the design was a bit more "pure" a bit more "clean." The project had to ship code that worked, not code that would please an academic. The consultant suggested that this cleaning up be done on other central parts of the system. Such an activity might halt the project for a week or two. All this activity was devoted to making the code look better, not to making it do anything that it didn't already do.
How do you feel about this story? Do you think the consultant was right to suggest further clean up? Or do you follow that old engineering adage, "if it works, don't fix it"?
I must admit to some bias here. I was that consultant. Six months later the project failed, in large part because the code was too complex to debug or to tune to acceptable performance.
The consultant Kent Beck was brought in to restart the project, an exercise that involved rewriting almost the whole system from scratch. He did several things differently, but one of the most important was to insist on continuous cleaning up of the code using refactoring. The success of this project, and role refactoring played in this success, is what inspired me to write this book, so that I could pass on the knowledge that Kent and others have learned in using refactoring to improve the quality of software.
Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In essence when you refactor you are improving the design of the code after it has been written.
"Improving the design after it has been written." That's an odd turn of phrase. In our current understanding of software development we believe that we design and then we code. A good design comes first, and the coding comes second. Over time the code will be modified, and the integrity of the system, its structure according to that design, gradually fades. The code slowly sinks from engineering to hacking.
Refactoring is the opposite of this practice. With refactoring you can take a bad design, chaos even, and rework it into well-designed code. Each step is simple, even simplistic. You move a field from one class to another, pull some code out of a method to make into its own method, and push some code up or down a hierarchy. Yet the cumulative effect of these small changes can radically improve the design. It is the exact reverse of the normal notion of software decay.
With refactoring you find the balance of work changes. You find that design, rather than occurring all up front, occurs continuously during development. You learn from building the system how to improve the design. The resulting interaction leads to a program with a design that stays good as development continues.
This book is a guide to refactoring; it is written for a professional programmer. My aim is to show you how to do refactoring in a controlled and efficient manner. You will learn to refactor in such a way that you don't introduce bugs into the code but instead methodically improve the structure.
It's traditional to start books with an introduction. Although I agree with that principle, I don't find it easy to introduce refactoring with a generalized discussion or definitions. So I start with an example. Chapter 1 takes a small program with some common design flaws and refactors it into a more acceptable object-oriented program. Along the way we see both the process of refactoring and the application of several useful refactorings. This is the key chapter to read if you want to understand what refactoring really is about.
In Chapter 2 I cover more of the general principles of refactoring, some definitions, and the reasons for doing refactoring. I outline some of the problems with refactoring. In Chapter 3 Kent Beck helps me describe how to find bad smells in code and how to clean them up with refactorings. Testing plays a very important role in refactoring, so Chapter 4 describes how to build tests into code with a simple open-source Java testing framework.
The heart of the book, the catalog of refactorings, stretches from Chapter 5 through Chapter 12. This is by no means a comprehensive catalog. It is the beginning of such a catalog. It includes the refactorings that I have written down so far in my work in this field. When I want to do something, such as Replace Conditional with Polymorphism (255), the catalog reminds me how to do it in a safe, step-by-step manner. I hope this is the section of the book you'll come back to often.
In this book I describe the fruit of a lot of research done by others. The last chapters are guest chapters by some of these people. Chapter 13 is by Bill Opdyke, who describes the issues he has come across in adopting refactoring in commercial development. Chapter 14 is by Don Roberts and John Brant, who describe the true future of refactoring, automated tools. I've left the final word, Chapter 15, to the master of the art, Kent Beck.
For all of this book I use examples in Java. Refactoring can, of course, be done with other languages, and I hope this book will be useful to those working with other languages. However, I felt it would be best to focus this book on Java because it is the language I know best. I have added occasional notes for refactoring in other languages, but I hope other people will build on this foundation with books aimed at specific languages.
To help communicate the ideas best, I have not used particularly complex areas of the Java language. So I've shied away from using inner classes, reflection, threads, and many other of Java's more powerful features. This is because I want to focus on the core refactorings as clearly as I can.
I should emphasize that these refactorings are not done with concurrent or distributed programming in mind. Those topics introduce additional concerns that are beyond the scope of this book.
This book is aimed at a professional programmer, someone who writes software for a living. The examples and discussion include a lot of code to read and understand. The examples are all in Java. I chose Java because it is an increasingly well-known language that can be easily understood by anyone with a background in C. It is also an object-oriented language, and object-oriented mechanisms are a great help in refactoring.
Although it is focused on the code, refactoring has a large impact on the design of system. It is vital for senior designers and architects to understand the principles of refactoring and to use them in their projects. Refactoring is best introduced by a respected and experienced developer. Such a developer can best understand the principles behind refactoring and adapt those principles to the specific workplace. This is particularly true when you are using a language other than Java, because you have to adapt the examples I've given to other languages.
Here's how to get the most from this book without reading all of it.
I need to say right now, at the beginning, that I owe a big debt with this book, a debt to those whose work over the last decade has developed the field of refactoring. Ideally one of them should have written this book, but I ended up being the one with the time and energy.
Two of the leading proponents of refactoring are Ward Cunningham and Kent Beck. They used it as a central part of their development process in the early days and have adapted their development processes to take advantage of it. In particular it was my collaboration with Kent that really showed me the importance of refactoring, an inspiration that led directly to this book.
Ralph Johnson leads a group at the University of Illinois at Urbana-Champaign that is notable for its practical contributions to object technology. Ralph has long been a champion of refactoring, and several of his students have worked on the topic. Bill Opdyke developed the first detailed written work on refactoring in his doctoral thesis. John Brant and Don Roberts have gone beyond writing words into writing a tool, the Refactoring Browser, for refactoring Smalltalk programs.
Even with all that research to draw on, I still needed a lot of help to write this book. First and foremost, Kent Beck was a huge help. The first seeds were planted in a bar in Detroit when Kent told me about a paper he was writing for the Smalltalk Report Beck, hanoi. It not only provided many ideas for me to steal for Chapter 1 but also started me off in taking notes of refactorings. Kent helped in other places too. He came up with the idea of code smells, encouraged me at various sticky points, and generally worked with me to make this book work. I can't help thinking he could have written this book much better himself, but I had the time and can only hope I did the subject justice.
As I've written this, I wanted to share much of this expertise directly with you, so I'm very grateful that many of these people have spent some time adding some material to this book. Kent Beck, John Brant, William Opdyke, and Don Roberts have all written or co-written chapters. In addition, Rich Garzaniti and Ron Jeffries have added useful sidebars.
Any author will tell you that technical reviewers do a great deal to help in a book like this. As usual, Carter Shanklin and his team at Addison-Wesley put together a great panel of hard-nosed reviewers. These were
They all added a great deal to the readability and accuracy of this book, and removed at least some of the errors that can lurk in any manuscript. I'd like to highlight a couple of very visible suggestions that made a difference to the look of the book. Ward and Ron got me to do Chapter 1 in the side-by-side style. Joshua suggested the idea of the code sketches in the catalog.
In addition to the official review panel there were many unofficial reviewers. These people looked at the manuscript or the work in progress on my Web pages and made helpful comments. They include Leif Bennett, Michael Feathers, Michael Finney, Neil Galarneau, Hisham Ghazouli, Tony Gould, John Isner, Brian Marick, Ralf Reissing, John Salt, Mark Swanson, Dave Thomas, and Don Wells. I'm sure there are others who I've forgotton; I apologize and offer my thanks.
A particularly entertaining review group is the infamous reading group at the University of Illinois at Urbana-Champaign. Because this book reflects so much of their work, I'm particularly grateful for their efforts captured in real audio. This group includes Fredrico "Fred" Balaguer, John Brant, Ian Chai, Brian Foote, Alejandra Garrido, Zhijiang "John" Han, Peter Hatch, Ralph Johnson, Songyu "Raymond" Lu, Dragos-Anton Manolescu, Hiroaki Nakamura, James Overturf, Don Roberts, Chieko Shirai, Les Tyrell, and Joe Yoder.
Any good idea needs to be tested in a serious production system. I saw refactoring have a huge effect on the Chrysler Comprehensive Compensation system (C3). I want to thank all the members of that team: Ann Anderson, Ed Anderi, Ralph Beattie, Kent Beck, David Bryant, Bob Coe, Marie DeArment, Margaret Fronczak, Rich Garzaniti, Dennis Gore, Brian Hacker, Chet Hendrickson, Ron Jeffries, Doug Joppie, David Kim, Paul Kowalsky, Debbie Mueller, Tom Murasky, Richard Nutter, Adrian Pantea, Matt Saigeon, Don Thomas, and Don Wells. Working with them cemented the principles and benefits of refactoring into me on a firsthand basis. Watching their progress as they use refactoring heavily helps me see what refactoring can do when applied to a large project over many years.
Again I had the help of J. Carter Shanklin at Addison-Wesley and his team: Krysia Bebick, Susan Cestone, Chuck Dutton, Kristin Erickson, John Fuller, Christopher Guzikowski, Simone Payment, and Genevieve Rajewski. Working with a good publisher is a pleasure; they provided a lot of support and help.
Talking of support, the biggest sufferer from a book is always the closest to the author, in this case my (now) wife Cindy. Thanks for loving me even when I was hidden in the study. As much time as I put into this book, I never stopped being distracted by thinking of you.
--Martin Fowler
Melrose, Massachusetts
"Refactoring" was conceived in Smalltalk circles, but it wasn't long before it found its way into other programming language camps. Because refactoring is integral to framework development, the term comes up quickly when "frameworkers" talk about their craft. It comes up when they refine their class hierarchies and when they rave about how many lines of code they were able to delete. Frameworkers know that a framework won't be right the first time around--it must evolve as they gain experience. They also know that the code will be read and modified more frequently than it will be written. The key to keeping code readable and modifiable is refactoring--for frameworks, in particular, but also for software in general.
So, what's the problem? Simply this: Refactoring is risky. It requires changes to working code that can introduce subtle bugs. Refactoring, if not done properly, can set you back days, even weeks. And refactoring becomes riskier when practiced informally or ad hoc. You start digging in the code. Soon you discover new opportunities for change, and you dig deeper. The more you dig, the more stuff you turn up. . .and the more changes you make. Eventually you dig yourself into a hole you can't get out of. To avoid digging your own grave, refactoring must be done systematically. When my coauthors and I wrote Design Patterns, we mentioned that design patterns provide targets for refactorings. However, identifying the target is only one part of the problem; transforming your code so that you get there is another challenge.
Martin Fowler and the contributing authors make an invaluable contribution to object-oriented software development by shedding light on the refactoring process. This book explains the principles and best practices of refactoring, and points out when and where you should start digging in your code to improve it. At the book's core is a comprehensive catalog of refactorings. Each refactoring describes the motivation and mechanics of a proven code transformation. Some of the refactorings, such as Extract Method or Move Field, may seem obvious. But don't be fooled. Understanding the mechanics of such refactorings is the key to refactoring in a disciplined way. The refactorings in this book will help you change your code one small step at a time, thus reducing the risks of evolving your design. You will quickly add these refactorings and their names to your development vocabulary.
My first experience with disciplined, "one step at a time" refactoring was when I was pair-programming at 30,000 feet with Kent Beck. He made sure that we applied refactorings from this book's catalog one step at a time. I was amazed at how well this practice worked. Not only did my confidence in the resulting code increase, I also felt less stressed. I highly recommend you try these refactorings: You and your code will feel much better for it.
--Erich Gamma
Object Technology International, Inc.

subset: commoncrawl


text:
Genesis 47
Jacob's Family Settles in Goshen
1Then Joseph went in and told Pharaoh, and said, "My father and my brothers and their flocks and their herds and all that they have, have come out of the land of Canaan; and behold, they are in the land of Goshen." 2He took five men from among his brothers and presented them to Pharaoh. 3Then Pharaoh said to his brothers, "What is your occupation?" So they said to Pharaoh, "Your servants are shepherds, both we and our fathers." 4They said to Pharaoh, "We have come to sojourn in the land, for there is no pasture for your servants' flocks, for the famine is severe in the land of Canaan. Now, therefore, please let your servants live in the land of Goshen." 5Then Pharaoh said to Joseph, "Your father and your brothers have come to you. 6The land of Egypt is at your disposal; settle your father and your brothers in the best of the land, let them live in the land of Goshen; and if you know any capable men among them, then put them in charge of my livestock."
7Then Joseph brought his father Jacob and presented him to Pharaoh; and Jacob blessed Pharaoh. 8Pharaoh said to Jacob, "How many years have you lived?" 9So Jacob said to Pharaoh, "The years of my sojourning are one hundred and thirty; few and unpleasant have been the years of my life, nor have they attained the years that my fathers lived during the days of their sojourning." 10And Jacob blessed Pharaoh, and went out from his presence. 11So Joseph settled his father and his brothers and gave them a possession in the land of Egypt, in the best of the land, in the land of Rameses, as Pharaoh had ordered. 12Joseph provided his father and his brothers and all his father's household with food, according to their little ones.
13Now there was no food in all the land, because the famine was very severe, so that the land of Egypt and the land of Canaan languished because of the famine. 14Joseph gathered all the money that was found in the land of Egypt and in the land of Canaan for the grain which they bought, and Joseph brought the money into Pharaoh's house. 15When the money was all spent in the land of Egypt and in the land of Canaan, all the Egyptians came to Joseph and said, "Give us food, for why should we die in your presence? For our money is gone." 16Then Joseph said, "Give up your livestock, and I will give you food for your livestock, since your money is gone." 17So they brought their livestock to Joseph, and Joseph gave them food in exchange for the horses and the flocks and the herds and the donkeys; and he fed them with food in exchange for all their livestock that year. 18When that year was ended, they came to him the next year and said to him, "We will not hide from my lord that our money is all spent, and the cattle are my lord's. There is nothing left for my lord except our bodies and our lands. 19Why should we die before your eyes, both we and our land? Buy us and our land for food, and we and our land will be slaves to Pharaoh. So give us seed, that we may live and not die, and that the land may not be desolate."
Result of the Famine
20So Joseph bought all the land of Egypt for Pharaoh, for every Egyptian sold his field, because the famine was severe upon them. Thus the land became Pharaoh's. 21As for the people, he removed them to the cities from one end of Egypt's border to the other. 22Only the land of the priests he did not buy, for the priests had an allotment from Pharaoh, and they lived off the allotment which Pharaoh gave them. Therefore, they did not sell their land. 23Then Joseph said to the people, "Behold, I have today bought you and your land for Pharaoh; now, here is seed for you, and you may sow the land. 24At the harvest you shall give a fifth to Pharaoh, and four-fifths shall be your own for seed of the field and for your food and for those of your households and as food for your little ones." 25So they said, "You have saved our lives! Let us find favor in the sight of my lord, and we will be Pharaoh's slaves." 26Joseph made it a statute concerning the land of Egypt valid to this day, that Pharaoh should have the fifth; only the land of the priests did not become Pharaoh's.
27Now Israel lived in the land of Egypt, in Goshen, and they acquired property in it and were fruitful and became very numerous. 28Jacob lived in the land of Egypt seventeen years; so the length of Jacob's life was one hundred and forty-seven years.
29When the time for Israel to die drew near, he called his son Joseph and said to him, "Please, if I have found favor in your sight, place now your hand under my thigh and deal with me in kindness and faithfulness. Please do not bury me in Egypt, 30but when I lie down with my fathers, you shall carry me out of Egypt and bury me in their burial place." And he said, "I will do as you have said." 31He said, "Swear to me." So he swore to him. Then Israel bowed in worship at the head of the bed.


text:
Astrobiology Summer Institute for High School Teachers
The Astrobiology Summer Science Experience for Teachers, or ASSET, is being held July 18-24, 2010, at San Francisco State University. ASSET will feature presentations by leading astrobiology researchers from the SETI Institute, NASA and the California Academy of Sciences. Scientists will share the latest in astrobiology research on the origin of life on Earth, the extreme conditions in which life exists, Mars exploration, the formation of planetary systems around sun-like stars, and the search for life in the universe.
The 6-day workshop features a combination of cutting-edge science, inquiry-based teaching and learning, and leadership skills development to support teachers and teacher trainers.
Participants receive the entire Voyages Through Time curriculum and complementary astrobiology materials, developed by NASA's Astrobiology Institute, for use in their classrooms.
Applications are due Feb. 12, 2010.
For more information, visit http://www.seti.org/epo/ASSET.
If you have any questions about this opportunity, please contact Pamela Harman at 650-960-4523 or email@example.com.


text:
Stripe announces an industry-first partnership with JCB and doubles down on its Japanese operations
- An industry-first partnership with JCB
- A new engineering office in Tokyo
- A further investment in the local team to support growing demand from Japanese businesses
TOKYO—Stripe, the online payment infrastructure provider powering Amazon, Facebook, Shopify, Zoom Video Communications, Slack, and millions of businesses across 39 countries, today announced several ambitious investments in Japan to accelerate the offline to online transition of the economy and help Japanese firms export globally.
An industry-first partnership with JCB
Stripe and JCB have worked hand in hand to deepen the partnership, first announced in 2018, and offer industry-first features at a time when businesses need them the most:
- Automated onboarding on JCB: Stripe will be the fastest way for a business to accept online payments with JCB, whether they are a marketplace using Connect, a SaaS platform using Billing, or an online store using Checkout. It will now only take a few days (versus weeks previously) for businesses to offer JCB to more than 136M cardholders in Japan and other Asian markets, setting a new industry standard.
- Fastest pay-out cycle in Japan: Eligible Stripe-powered businesses can have access to JCB funds in their account in a matter of days versus the industry standard of one month at a time when access to funds is more critical than ever in the supply chain.
- Global JCB acceptance: Millions of businesses on Stripe in the US, Canada, Australia, New Zealand, (with more to come soon) will now be able to instantly accept payments from JCB cardholders, making international commerce much more accessible between Japan, other Asian markets and the rest of the world.
"We're excited about the opportunity to partner with Stripe, one of the fastest moving technology companies in financial services," said Mr. Shioda, Executive Vice President, Head of Global Acceptance & Marketing Headquarters at JCB. "Through this partnership, we expect to dramatically enhance access to JCB by International businesses and consumers."
A new engineering office in Tokyo
Today, Stripe announced the opening of an engineering office in Tokyo, which will focus on building more features and capabilities to meet the specific needs of Japanese businesses. This includes supporting additional domestic payment methods at scale, such as bank transfers and Konbini payments. The team will also focus on bringing new Stripe products to the market at an accelerated pace.
"Stripe has long been the best payments platform for fast growing Japanese businesses and for international companies wanting to operate in Japan," said Daniel Heffernan, Representative Director and Head of Engineering for Stripe in Japan. "It's the most robust, secured and fastest innovating payments infrastructure in the world. Building a local engineering team will help us open up more monetization opportunities for hundreds of thousands of Japanese businesses."
A further investment in the team to support the growing demand from Japanese businesses
Stripe's momentum continues to gather pace globally in 2020 with fast growing businesses seeing unprecedented spikes in demand (Instacart, Slack, Shopify, Mixi, Medley, AWA, Cookpad), and established companies responding quickly to surges in demand (e.g: ANA, DeNA) or expanding their online business (e.g: Muji in Australia).
To support this growing momentum in the enterprise space, Stripe today announced the hiring of Apple veteran Daisuke Aranami as Representative Director and Head of Revenue and Growth for Stripe in Japan. Under his leadership, Stripe will invest in its go-to-market team to address the increasing demands of Japanese Enterprises.
"Amid the current disruption, where several years of offline-to-online migration are being compressed into a few months, established Japanese businesses are being forced to quickly rethink their business model, and look for new monetization opportunities. Stripe offers solutions that provide ease of use and speed with no compromises on stability or security," said Daisuke Aranami, Representative Director of revenue and Head of growth for Stripe in Japan. "We're obsessed about helping businesses innovate faster and we believe now is not the time to pull back, but to invest even more heavily in Stripe's presence in Japan."


text:
Proverbs Chapters
1 The words of king Lamuel. The vision wherewith his mother instructed him.
2 What, O my beloved, what, O the beloved of my womb, what, O the beloved of my vows?
3 Give not thy substance to women, and thy riches to destroy kings.
4 Give not to kings, O Lamuel, give not wine to kings: because there is no secret where drunkenness reigneth:
5 And lest they drink and forget judgments, and pervert the cause of the children of the poor.
6 Give strong drink to them that are sad: and wine to them that are grieved in mind:
7 Let them drink, and forget their want, and remember their sorrow no more.
8 Open thy mouth for the dumb, and for the causes of all the children that pass.
9 Open thy mouth, decree that which is just, and do justice to the needy and poor.
10 Who shall find a valiant woman? far and from the uttermost coasts is the price of her.
11 The heart of her husband trusteth in her, and he shall have no need of spoils.
12 She will render him good, and not evil, all the days of her life.
13 She hath sought wool and flax, and hath wrought by the counsel of her hands.
14 She is like the merchant's ship, she bringeth her bread from afar.
15 And she hath risen in the night, and given a prey to her household, and victuals to her maidens.
16 She hath considered a field, and bought it: with the fruit of her hands she hath planted a vineyard.
17 She hath girded her loins with strength, and hath strengthened her arm.
18 She hath tasted and seen that her traffic is good: her lamp shall not be put out in the night.
19 She hath put out her hand to strong things, and her fingers have taken hold of the spindle.
20 She hath opened her hand to the needy, and stretched out her hands to the poor.
21 She shall not fear for her house in the cold of snow: for all her domestics are clothed with double garments.
22 She hath made for herself clothing of tapestry: fine linen, and purple is her covering.
23 Her husband is honourable in the gates, when he sitteth among the senators of the land.
24 She made fine linen, and sold it, and delivered a girdle to the Chanaanite.
25 Strength and beauty are her clothing, and she shall laugh in the latter day.
26 She hath opened her mouth to wisdom, and the law of clemency is on her tongue.
27 She hath looked well to the paths of her house, and hath not eaten her bread idle.
28 Her children rose up, and called her blessed: her husband, and he praised her.
29 Many daughters have gathered together riches: thou hast surpassed them all.
30 Favour is deceitful, and beauty is vain: the woman that feareth the Lord, she shall be praised.
31 Give her of the fruit of her hands: and let her works praise her in the gates.


text:
We had a lot of snow in January |
January's house project was continuing work on our small second bathroom. Dan installed a new water heater, turning the tiny, old pantry into a utility room. We began to think about future water conservation systems and started making plans for remodeling our kitchen. In January we got our "big snow." This was the month I lost Charlie. Our outside project was preparing the overgrown field for our first planting of field corn.
Things always look better on the other side of the fence |
In February, we finished remodeling the bathroom. We started to tear into the kitchen, but decided we'd better do the back porch first, to use as a temporary kitchen. I also started this year's garden plans, deciding to try a companion group garden.
Our experimental wheat patch was coming along. |
In March we worked on the back porch: put in new back door, leveled the floor, and installed a kitty door. We also interviewed electricians about moving the circuit breaker box. I worked on my goal to conquer the wire grass and I moved all my strawberries to 2 new beds.
April was kidding month |
In April we continued to make progress on the back porch by installing a laundry sink. We planted our field corn and added two Hugelkultur beds to the herb garden. In April, our first goat kid was born, followed by Surprise's Easter twins.
Fort William, our log buck barn (complete with Pygmy bucks) |
May's kidding was less successful as Jasmine gave birth to a stillborn. We sold our grade goats and used to money toward buying two Pygmy bucks. To prepare for that, Dan built a log buck barn. I discovered I could make whipped cream from goat milk. Hot discussion topics on my blog included 2nd year egg laying, and immunities and goats milk. In the house, we installed folding attic stairs in the back porch ceiling.
My companion group gardening experiment was going well |
In June we harvested our small experimental patch of wheat and fenced off a section of pasture for the bucks. We started preparations for the electrical work on the house, and I made my first experiments with cheesemaking. June also seemed like a good month to rearrange and inventory the pantry, in preparation for this year's harvest.
Homestead mozzarella on homemade pizza |
In July, we made our Kinder herd name official. All month I had to compete with the goats for the blueberries. The field corn was out of control. In July, I mastered the art of mozzarella making, we revised our homestead master plan, and had my 1st broody hen.
We had 2 home hatched & 16 mail order chicks |
In August I showed you our new chicks. It was the month we started serious work on the kitchen: milling our own load bearing ceiling beam, removing a load bearing post (in the middle of the kitchen floor), and replacing it with Dan's beam. This month we had a horrific storm that knocked out my computer. We finished fencing part of the woods for a buck browse, and lost our Pygmy buckling shortly after that.
Calico popcorn, part of September's harvest |
September was the month we relocated and installed a new kitchen back door. I bought new kitchen windows to replace the old, and we got the first one installed, but not without difficulty. An extension of that project was new exterior siding on that section of the house. In September, we harvested our field corn and started the fall garden.
By October, the pantry shelves were full |
In October I began to work out some of the details for my kitchen plans. We finished the electrical upgrade and painted the new siding. We had a bumper crop of pecans, and I got my first Meyers lemon. I also tallied my first food preservation totals for the year and we planted about a quarter acre of winter wheat. Our 1st frost was Oct. 30th.
In November we took major steps in the kitchen remodel. |
November was the month I lost Katy. Dan finished the chinking on the buck barn. In the kitchen, we tore down the odd, old wall cabinets and moved the pantry door. We bought a water filter and I learned how to can green tomatoes for frying. All month long I foraged for persimmons for the first time, and got about a quart of pulp to freeze.
In December we got the wood cookstove installed |
December was mild but wet, and a big month for working on the kitchen. Dan rebuilt a section of the kitchen floor to level it for our woodcook stove, we tore out the last of the kitchen cabinets and got the wood cookstove in. We also installed the second new window, insulated that wall, and put up the drywall. I wallpapered the dining nook. In addition, the chicks were 5 months old and creating a ruckus. Dealing with that seemed to mark a change in our homestead journey.
That's our look back at 2011. 2012, here we come.


text:
Driver's Club
Drivers service on board
The journey gives the drivers possibilities for rest and recreation. Some of our ships can offer separate Drivers' Clubs and saunas as well as peaceful cabin departments. The counterfoils on the driver's ticket entitle on most ships to a berth, sauna, food and coffee. The counterfoils cannot be exchanged for cash.
Club One
The drivers can also participate in special offers for frequent customers by getting a Club One Card. An application for a Club One card can be made in our port offices.


text:
Contents |
MAC Productions and Mike Mansfield Productions in association with HTV Wales for ITV, 7 January 1989 to 29 December 1990 (9 episodes in 1 series)
Grand Sportsmasters: 5 January to 11 May 1991 (13 episodes in 1 series)
Where Dickie Davies was put out to pasture after World of Sport had finished, this was A Question of Sport meets Mastermind, only with a much broader and less deep knowledge than that required for Sports Anorak of the Year.
For some reason there was a Grand Sportsmasters series in 1991, although why it was any grander than the regular show is a bit of a mystery.
Key moments
One classic moment concerned a contestant had been asked to name a cricketer having been shown a picture of an (obviously Australian) batsmen playing an attacking shot. The contestant answered 'David Boon' only to be told that it was Allan Border. We went to an ad break and came back to be told that the contestant had been awarded the point, having pointed out that the picture was of a right-handed batsman, whereas Allan Border was left handed. "They got the slide the wrong way around" we were told.
The show certainly kept it in the family. The quiz was devised by Dickie Davies himself, his wife Liz was a researcher, his son Peter wrote the theme music, and Dickie's twin brother Danny was also involved.


text:
Welcome to Al Meroz Hotel Bangkok
The Al Meroz Hotel is Bangkok's Leading Halal Hotel, conveniently located with easy access to Suvarnabhumi Airport and downtown Bangkok. It is also close to The Foundation of Islamic Centre of Thailand, which offers religious services and guidance to the Muslim Community. The Hotel's accommodation, dining and leisure facilities have been specially created to ensure the comfort and wellbeing of our Muslim and non-Muslim guests. All meals served in our restaurants are Halal-certified and the Hotel is a non-alcoholic.


text:
News!! I am starting up my Princeton web site.
It is at www.wws.princeton.edu/~pkrugman/
It's only partial, but eventually all files will move.
I'm back! My recent move to New Jersey and other pressures
have temporarily prevented me from updating this site. I will now begin
occasional postings, although fewer than before I began writing for the
NY Times. You can still read that column on the day it appears (Sunday
and Wednesday, currently) by going to the opinion
page , and read about 8 back columns on the Times op-ed
archive. Still older columns will be posted on this site soon.
For the latest additions to this site, check out What's
new .
What's new
Articles in Fortune
Articles in Slate
Other writing
Stuff that is harder to read
Additional biographical
What I look like
honorary degree ceremony in Berlin (text of talk, audio, video)
Special page
on Japan (direct links to Japan-related pieces)
Some favorite
links (updated)
The unofficial
page (A fan has set this up: I disavow any knowledge of his actions)
Welcome to my home page. The main purpose of this page is to give interested parties - students, colleagues, journalists, mad bombers, etc. - easy access to some of my more recent writings. For the time being the links in this page lead for the most part to less-formal writing, mainly for nonprofessional publications. I have started, however, to put some pieces that do contain equations into a new section, "Stuff that is harder to read". (I also maintain a listing, in reverse chronological order, of what's new on this page).
Most people who have accessed this page probably know who I am, but for anyone else here is a summary. (To learn more click here ). I have recently moved from MIT to Princeton . I was born in 1953, got my Ph.D. from MIT in 1977, and have since taught at Yale and Stanford as well as MIT. I also spent an eye-opening year working at the White House (Council of Economic Advisers) in 1982-3. In 1991 I received my major professional gong, the John Bates Clark Medal, given by the American Economic Association every two years to an economist under 40.
I have written or edited 18 books (I think) and several hundred articles. Most of these are about international trade (I helped found the so-called "new trade theory", which is about the consequences of increasing returns and imperfect competition for international trade) and international finance, and are pretty well incomprehensible to laymen. However, since I wrote The Age of Diminished Expectations in 1989, I have increasingly tried to communicate with non-economists through op-eds, magazine articles, and so on. It turns out that people have a hard time tracking all of this stuff down; hence this page. It contains, among other things, links to my two former monthly columns: "No free lunch" in Fortune, and "The dismal science" in the cyberspace magazine Slate. (Slate is free - I highly recommend it). As mentioned above, you can read my New York Times column either on paper or online.
With any luck, you will find many of these pieces extremely annoying. My belief is that if an op-ed or column does not greatly upset a substantial number of people, the author has wasted the space. This is particularly true in economics, where many people have strong views and rather fewer have taken the trouble to think those views through - so that simply insisting on being clear-headed about an issue is usually enough to enrage many if not most of your readers.
But read the articles and judge for yourself.
Fortune / No Free Lunch
for the New Economy (11/10/97)
Habits of Highly Defective Investors (12/29/97)
Worry About Deflation (2/2/98)
What Went Wrong (3/2/98)
always be a Soros (3/30/98)
Rasputin (4/13/98) (sidebar for Fortune story on Indonesia)
afraid of the euro? (4/27/98)
The ice
age cometh (5/25/98)
Supply, demand,
and English food (7/20/98)
Why aren't we
all Keynesians yet? (8/3/98)
Asia: It's time to get radical (9/7/98)
Soros' plea
(Nov. 1998)
The euro:beware
of what you wish for (Dec. 1998)
I know what the
hedges did last summer (Dec. 1998)
the Fed care about stock bubbles? (Mar. 1, 1999)
JE NE SAIS QUOI OF LES ANGLOPHONES (April 1999)
The ascent
of e-man (May 1999)
What you
don't think about can't hurt you
Why Germany
Kant Kompete (July 1999)
A self-defeating
prophecy (Dec. 1999)
Slate Magazine/The Dismal Science
Downsizing downsizing
How copper came
a cropper (7/15/96)
Supply-side virus
strikes again (8/15/96)
The lost fig
leaf (9/27/96)
Economic culture
wars (10/24/96)
Gold bug variations
The CPI and the
rat race (12/21/96)
The accidental
theorist (1/23/97)
Vulgar Keynesians
In praise of cheap
labor (3/20/97)
Earth in the balance
sheet (4/17/97)
Rat democracy
Unmitigated Gauls
The east is in
the red (7/1/97)
Bahtulism (8/14/97)
Who's buying
whom? (9/25/97)
The power of
biobabble (10/23/97)
A raspberry for
free trade (11/20/97)
Speed trap(12/18/97)
The legend of
Arthur (1/14/98)
values (1/22/98)
Life of Brian (A Symposium) (1/30/98) (because it contains letters
from other people, this requires a subscription to Slate - try it,
you'll like it)
Paradigms of panic
The $300,000 man
Soft microeconomicsThe
squishy case against you-know-who (4/23/98)
Glenn Loury's Round
Trip The odyssey of a black intellectual
Setting sunJapan:
What went wrong? (6/11/98)
Size does
matterIn defense of macroeconomics (7/9/98) (requires Slate
the economy (8/13/98) (requires Slate subscription)
The other
bear market (9/10/98) (requires Slate subscription)
in Connecticut
Is the economic
crisis a crisis for economics ? (11/12/98)
The hangover
theory (12/3/98)
pain, no gain? (1/14/99)
in Japan? (3/11/99)
mania (4/15/99)
outside the box office (5/12/99)
good things happen to bad ideas (6/9/99)
laugh at me, Argentina (7/20/99)
about a revolution (8/19/99)
control freaks (9/28/99)
O Canada
(the latest Nobel prize)
of the WTO
Other Writings
"White collars
turn blue" The New York Times Magazine, 9/29/96
An exchange with Jude
Wanniski (from Mother Jones backtalk)
" Ricardo's difficult
idea " (paper for Manchester conference on free trade, March 1996)
" What economists
can learn from evolutionary theorists " (a talk to the EAEPE, Nov.
" Against the tide:
an intellectual history of free trade " (book review)
" What should trade
negotiators negotiate about? " (review essay in Journal of Economic
Literature, March 1997)
" Seeking the
rule of the waves " (book review, Foreign Affairs, June 1997)
" One world,
ready or not " (book review, The Washington Post)
" What is wrong
with Japan? " (Nihon Keizai Shimbun)
" How fast can
the U.S. economy grow? " (Harvard Business Review, Summer 1997)
" Capitalism's
mysterious triumph " (Nihon Keizai Shimbun)
" Is capitalism
too productive? " (Foreign Affairs, Sept./Oct. 1997)
" What ever happened
to the Asian miracle? " (Fortune, Aug. 18, 1997)
" Currency crises
" (prepared for NBER conference, October 1997)
" Two cheers for
formalism " (forthcoming in Economic Journal)
" The Mercedes
menace " (USA Today, Jan. 13, 1998)
" The trouble with
history " (Washington Monthly, March 1998)
" Will Asia bounce
back? " (speech to be given in Hong Kong, March 1998)
"Start taking the
Prozac " (Financial Times, April 9, 1998)
" I told
you so " (New York Times Magazine, May 5, 1998)
" The myth of Asia's
miracle " (the Nov. 1994 Foreign Affairs article - by popular demand)
" Future
imperfect " (The Red Herring, June 1998)
America the Boastful
(Foreign Affairs, May 1998)
The Great Betrayal
(Washington Post - review of Patrick Buchanan)
A bridge to nowhere?
(Shizuoka Shimbun, 7/14/98)
False Dawn : The
Delusions of Global Capitalism (book review, New Statesman)
No time for losers
(New York Times Magazine, 7/26/98)
Viagra and the
wealth of nations (New York Times Magazine, 8/23/98)
Don't panic - yet
(New York Times, 8/30/98)
An open letter
to Prime Minster Mahathir (9/1/98)
confidence game (The New Republic, 10/5/98)
Heresy time
(9/28/98 - a note on why I have starting saying outrageous things)
Curfews on capital:
what are the options? (10/12/98 - why dollar debt is not the problem)
The eternal
triangle (10/13/98 - a note on global "architecture")
Even worse than
you think (10/27/98) Financial Times
The return of
Dr. Mabuse (New York Times Magazine)
The web gets
ugly (New York Times Magazine, Dec. 6, 1998)
Japan heads
for the edge (Financial Times, 1/20/99)
Alas, Brazil
for graduate macro
A monetary
fable (The Independent)
of respectability (2/7/99)
targeting in a liquidity trap: the law of the excluded middle (2/10/99)
Some chaotic
notes on regional dynamics (3/10/99)
pains (The New York Times Magazine, 5/23/99)
depressed about Japan (Financial Times)
Global vision
du jour (Washington Monthly)
Money can't
buy happiness - er, can it? (New York Times)
The euro,
living dangerously (A quick note after reading the news)
Don't bet on it (Time, Asia edition)
A dollar
crisis? (memo, August 1)
Why I am
an economist (sigh) (Notes during textbook revision)
of the rising yen
is the word
and increasing returns: a cautionary tale
Dow 36,000:
how silly is it?
The wonders
of editing
Notes on
Social Security
Class warfore?
Stuff that is harder to read
" What happened
to Asia? " (for a conference in Japan, January 1998)
" Fire-sale FDI
" (for NBER Conference on Capital Flows to Emerging Markets, Feb. 20-21,
" Japan's trap
" (May 1998: an attempt to clarify my own thoughts on the Japanese slump)
Further notes
on Japan's liquidity trap (clarification on "Japan's trap")
But for, as if,
and so what (a technical note on the effect of trade on wages)
Latin America's
swan song (notes on the current dilemma)
It's baaack! Japan's
slump and the return of the liquidity trap (draft Brookings Paper
- requires Adobe Acrobat)
Japan's bank
bailout (10/17/98 - why the scheme is likely to fail)
Japan: still
trapped (11/30/98 - a restatement of the argument)
There's something
about macro (notes about teaching graduate macroeconomics)
The world's
smallest macroeconomic model
Balance sheets,
the transfer problem, and financial crises (pdf file, rough draft of
conference paper)
Can deflation
be prevented? (2/21/99)
spirals (2/25/99)
The spatial
economy: introduction (introduction to forthcoming book with Masahisa
Fujita and Anthony J. Venables)
The fall
and rise of development economics (a 1994 essay about models and methods
from Rodwin and Schon,
Rethinking the Development Experience)
is a weak euro (6/3/99)
And now for
something completely different (Paper presented at a 1998 conference
on trade and inequality)
afterthoughts on the Asian crisis (9/12/99)
Time on the
cross: can fiscal policy save Japan? (9/21/99)
Was it all
in Ohlin? (paper for Centennial celebration of Bertil Ohlin, Stockholm)
about the liquidity trap (paper for NBER/CEPR/TCER conference in Tokyo,
Dec. 1999)
The energy
crisis revisited (note posted Mar. 5, 2000)


text:
This is my second post on what I learned from creating an implementation of the geometryservice specification in node.js. The first post can be found here.
By default node.js doesn't reload your files when they have changed but while developing this can be very handy. The most easy to use tool for node.js on windows that monitors your files for changes, with an easy way to set the node.js debugging flag, is nodemonw. You can download nodemonw at https://github.com/cenanozen/nodemonw. Once you've downloaded the executable I suggest to copy it to your %Appdata%\npm directory or another directory thats in your path. To start nodemonw I now run the following command nodemonw --debug index.js
. In the next section it will become clear why I added the --debug flag.
To be able to debug my node.js application I installed node-inspector (npm install -g node-inspector
). As you can read in the readme of node-inspector it is really easy to get started with node-inspector. You just have to start node-inspector and then open http://127.0.0.1:8080/debug?port=5858 in your favorite WebKit based browser. On Wikipedia I found this list of WebKit based browsers. The most well known ones for Windows are Google Chrome and Safari. A screencast on node-inspector can be found here. There is also a node-inspector playlist on YouTube.
To be able to test parts of my GeometryService I used vows (npm install -g vows
). Vows is an asynchronous behavior driven development framework. More info about it can be found on http://vowsjs.org/. I am now going to show a small part of the code from my GeometryService and some tests I wrote for this code. My directory structure for the code I'll show looks like this: lib/
In datatransformer.js I started a function to convert an ESRI geometry JSON object to wkt based on its geometry type.
-- datatransformer.js
-- datatransformers.test.js
exports.esriGeoJsonToWKT = function esriGeoJsonToWKT (geometryType, geometry) { if(geometryType === "esriGeometryPoint") { return "POINT(" + geometry.x + " " + geometry.y + ")"; } }
And the content of datatransformer.test.js is:
var dt = require("../lib/datatransformer"); var vows = require('vows'); var assert = require('assert'); vows.describe('Esri geometry JSON to WKT').addBatch({ 'when converting esriGeometryPoint {"x":-117,"y":34}':{ topic: function(){ var geomType = 'esriGeometryPoint'; var p = JSON.parse('{"x":-117,"y":34}'); return dt.esriGeoJsonToWKT(geomType, p); }, 'we get "POINT(-117 34)"': function(topic){ assert.equal(topic, "POINT(-117 34)"); } }, 'but when converting esriGeometryPoint {"x":-117.01,"y":34.02}':{ topic: function(){ var geomType = 'esriGeometryPoint'; var p = JSON.parse('{"x":-117.01,"y":34.02}'); return dt.esriGeoJsonToWKT(geomType, p); }, 'we get "POINT(-117.01 34.02)"': function(topic){ assert.equal(topic, "POINT(-117.01 34.02)"); } } }).exportTo(module);
As you can see I created two tests for converting point geometries from ESRI JSON to wkt. One for integer coordinates and one for decimal coordinates. The easiest way to run this tests with vows on windows was opening a commandline in the root directory of my node.js project and type vows --spec
. This will run the tests it finds in the test and spec directories of your project. My output looks like this :
? Esri geometry JSON to WKT
when converting esriGeometryPoint {"x":-117,"y":34}
V we get "POINT(-117 "4)"
but when converting esriGeometryPoint {"x":-117.01,"y":34.02}
V we get "POINT(-117.01 34.02)"
V OK » 2 honored (0.007s)
On a side note if you ever encounter that node can't find any of your globally installed packages then it might help to add a new User Variable called NODE_PATH with as value %AppData%\npm\node_modules. That was it for this post more posts on this project will follow.
As I announced in this post, I open sourced the code of this project. It can be found in this bitbucket repository.


text: WNLICENS(7WN) WordNettm WNLICENS(7WN) NAME wnlicens - text of WordNet license DESCRIPTION WordNet Release 3.0 This software and database is being provided to you, the LICENSEE, by Princeton University under the following license. By obtaining, using and/or copying this software and database, you agree that you have read, understood, and will comply with these terms and conditions.: Permission to use, copy, modify and distribute this software and data- base and its documentation for any purpose and without fee or royalty is hereby granted, provided that you agree to comply with the following copyright notice and statements, including the disclaimer, and that the same appear on ALL copies of the software, database and documentation, including modifications that you make for internal use or for distribu- tion. WordNet 3.0 Copyright 2006 by Princeton University. All rights re- served. THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON UNIVERSITY MAKES NO REPRESENTA- TIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE, DATABASE OR DOCUMEN- TATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE- MARKS OR OTHER RIGHTS. The name of Princeton University or Princeton may not be used in adver- tising or publicity pertaining to distribution of the software and/or database. Title to copyright in this software, database and any asso- ciated documentation shall at all times remain with Princeton Univer- sity and LICENSEE agrees to preserve same. WordNet 3.0 Dec 2006 WNLICENS(7WN)


text:
Governor Tom Wolf has announced the launch of 511PAConnect, a new initiative that will provide information updates to motorists in the event of a long-term road closure due to accidents on the Pennsylvania Turnpike or other state roadways. Following last year's significant trapped queue during Winter Storm Jonas, Wolf tasked state agencies to develop a tool to better keep drivers informed in similar situations in the future.
"People being stuck on roadways due to an accident isn't a new problem, but we're using modern technology to keep motorists informed about the status of accident cleanup and highway reopening," said Governor Wolf in making the announcement on December 22. "This connection with motorists will also allow us to have a clearer picture of who is sitting in a vehicle and where they are, so we can better plan for the use of our resources."
Wolf said when personnel from the PA Turnpike and PennDOT identify a potential long-term closure, they will notify staff at the 24-hour Commonwealth Watch and Warning Center at the PA Emergency Management Agency, who will issue an initial location-based alert to motorists in the area of the closure. Law enforcement also uses the alerting system to issue Amber Alerts for missing children.
"This system will only be used for emergencies that will last for a sustained period," said PEMA Director Richard D. Flinn Jr. "It is important for motorists to recognize that the system will only work in areas with cellphone service, and that this is not a substitute for calling 9-1-1 if you have an actual emergency in your vehicle."
Motorists who receive the alert will have the option of registering for automatic text messages or phone call updates. Follow-up notifications will be generated by Turnpike and PennDOT staff monitoring the closure. Once the incident is resolved, motorists who registered for the alerts will automatically be unsubscribed and all personal data will be scrubbed from the system.
"This new 511PAConnect initiative helps PennDOT in its mission to serve drivers regardless of weather or road conditions that may impede travel," said Department of Transportation Secretary Leslie S. Richards. "While we hope we never have to use it, drivers will now have rapid communications on conditions when emergencies or major incidents impact their travel."
"We certainly recognize that it can be stressful for travelers caught in an extended roadway closure, not knowing where they are, worrying how long they may have to sit there," said PA Turnpike CEO Mark Compton. "At a time like that, just knowing someone is out there who is aware of your predicament can be a comfort; and the updates and life-safety messages we push out through this tool help to make stranded travelers feel connected."
PennDOT and the Turnpike offer a variety of tools to keep travelers informed during all levels of incidents — including the 511PA smartphone app, phone number, online sources and social media platforms — but 511PAConnect is the first initiative of its kind to link directly to a targeted group of travelers who are being impacted by, or who are approaching, a large-scale emergency.
Governor Wolf also said motorists should maintain a small stash of emergency supplies in their cars year-round. A basic emergency kit should include non-perishable food and water and a cellphone charger, and any specialized supplies such as baby or pet care items, as well as items appropriate for the weather such as a blanket, small shovel or rain gear.


text:
Skin Cancer Detection & Prevention
Summer is on its way and people will get more exposure to the suns' rays than any other time of year. We've all heard the word of caution about too much sun causing skin cancer, but specifically it's the Ultraviolet (UV) light exposure that is overwhelmingly the most frequent cause of skin cancer. Since May is Skin Cancer Detection & Prevention Month, and skin cancer affects more than 1 million people in the United States each year, I thought I'd dedicate some time to the topic.
Skin Cancer Causes
Other than frequent, unprotected sun exposure, some significant causes of skin cancer include:
1. The frequent use of tanning booths, which, like the sun, expose the skin to harmful ultraviolet (UV) rays.
2. Immune system compromise, which impairs the body's ability to fight disease. A suppressed immune system affects the ability of the body to regenerate and repair at the cellular level. Ways to improve the immune system are to stress less and laugh more, drink more water and less alcohol, eat antioxidant rich foods rather than empty calories and sugar, as well as take a probiotic to promote beneficial gut flora.
3. Regular exposure to electromagnetic wave of high energy and very short wavelength, such as Xrays. And exposure to certain chemicals, such as arsenic and those in tar, oils and soot.
People with Greater Risk
– Besides outside environmental factors, certain people are predisposed to skin cancer. These are the characteristics of the people who are at greater risk:
– Fair skin that burns easily from the sun exposure and freckles easily
– Blond or redheads with blue or green eyes
– Depleted skin pigmentation, such as from certain genetic disorders like albinism and xeroderma pigmentosum.
– Previous cancer or close family members who have had skin cancer
– Birthmark of a large mole, or numerous moles and unusual moles that developed later in life
– Experienced a severe sunburn in childhood
"ABCD's" of Cancer Detection
1. Asymmetry: one side not looking like the other
2. Border irregularity: rough, jagged or bumpy edges
3. Color: mixture of black, tan, brown, blue, red, or white
4. Diameter: larger than the size of a pencil eraser (about 6 mm across) or noticeable increase in size
Kinds of Skin Cancer
The skin is the largest organ in the body and skin cancer is the most common of all cancers. There are three major kinds of skin cancer:
Basal Cell Carcinoma (BCC)
Squamous Cell Carcinoma (SCC)
Melanoma is actually the most frequent cancer in people age 25 to 29 years. About a third of all melanoma are diagnosed before the age of 50, although most skin cancers are diagnosed between 50 and 75 years old. Squamous cell carcinomas and basal cell carcinomas, which are the vast majority of skin cancers, are more common in older people. Unlike the Melanomas, the BCCs or SCC usually do not spread to other parts of the body.
It is important to self check using the "ABCD's" and to regularly be checked by a dermatologist.
A doctor can send away a biopsy of a questionable mole or marking to tell if it's cancerous.
Fortunately, you can reduce your risk of getting skin cancer. This is one of the main reasons why I recommend safeguarding yourself when you enjoy the beautiful weather with sunscreen, protective clothing, sunglasses and a hat.
Prevention and early detection are key with skin cancer. Enjoy the beautiful summer weather, but please do so safely. If you have any more questions, please consult your dermatologist.
Steven Davison M.D.
Board Certified Plastic Surgeon


text:
Some people have quipped that still gamblers have is losing. Would that hot weather was that direct to the point. Solving problem gambling involves a lot more than just finding a winning system or having a lucky streak, because a gambling problem is really a deep seated situation that involves above just losing a game or money. Addictive gambling can rob you of all you care about or hold dear use isn't about winning and losing, it's about gambling and move.
Once you've turned to your Nintendo DS or Nintendo ds lite lite, machine files will load from the R4 DS cartridge, the same way they do when utilizing the M3 DS Simply. It will take Slot gacor about 2 seconds for the main menu to appear, with the R4 DS logo for a top screen, and the menu on the bottom. On the underside screen you could select 3 models.
The casino gaming experience is such a big high for your own family gives that you just vacation from your your trouble. If you stop gambling, you are aware you could have to give this us, but truly do not want to.
Progressive Slot s are a fairly new involving Slot machine that improves the odds of winning in brick and mortar on line casino. These are normally joined together within an electronic digital network to slowly expand the jackpot seeing place bets. So as people more bets in the network, the jackpot gradually increases. This creates a feeling of community, as gamblers place bets hoping of winning a life-changing amount money. These types of games are preferred and normally function becoming main attraction at physical casinos. You'll have commonly find a group ladies gambling together in order to enhance their chances of winning.
Slot car makers have aimed to standardise their cars within UK and Europe. Probably the most popular scale of cars is 1:32. The following companies produce products in this particular scale.
Fascination of Gambling compels people to commit crimes to support their contest. An impulsive gambler never leaves this addiction even as he is playing no money and instead takes on crime to finance his standard need of gambling. People even turn towards domestic violence and torture their spouse on a daily basis.
Obviously, get started building links thing you just need to create sure of is how the website you simply are take a look at accepts players from Mexico. This should manifest as a pretty easy thing to do, while the majority of gambling sites out there do. Canadian players have very few restrictions when it comes to gambling hosted. Unlike the U.S., there are not many complications may become comes to gambling legitimateness. However, the Canadian government also doesn't consider the same stance as the U.K. planet sense of really being pro-gambling. Could do know is it is not illegal by any means, so most gambling sites accommodate very nicely for Canadian players.
Gambling is a choice of entertainment, when it will become a need within your life, you are facing additive gambling mistake. It should be avoided totally, gets allows you help you awesome games . help yourself diminish gambling addiction.