text:
Making the Most of Professional Growth: Encouragement, feedback are all part of the equation
by Marian Carlson
Most firms recognize that developing young associates into strong lawyers requires a conscious effort. However, many shy away from structured professional development programs for fear they will be costly and require too much "down time" by their lawyers. Fortunately, there are many ways to advance the growth and skill of a firms' lawyers without elaborate programs. The following are just a few examples of how a firm can strengthen the development of its lawyers through simple enhancements to existing processes.
1. Use evaluations as a road map for future development.
Associate evaluations are perhaps the most underutilized tool at a firm's disposal for associate development. Most firms recognize the need to conduct formal evaluations on at least a yearly basis. However, too often, these reviews amount to vague, generalized, post-mortems that comment on past work but provide little guidance for the associate going forward. By ensuring that your evaluation forms identify specific behaviors rather than general characteristics, and by pressing the evaluating lawyers for specific examples in completing these forms, the evaluation process can become a springboard to improved associate performance and accelerated professional development.
After evaluation forms have been thoughtfully completed, use the evaluation conference to motivate your associates. After summarizing the written reviews, set goals for the coming year. These goals should build on the associate's strengths, such as moving to the next level of complexity on a type of assignment he successfully completed, and also challenge the associate to improve in the areas of weakest performance.
2. Encourage Your Associates to Plan Their Development.
Once the evaluation has identified areas of strength and challenge for an associate, a professional development plan provides a useful tool for helping the associate reach his/her goals. Such a plan need not take any particular form. What matters is that each associate give careful thought to what skills they would like to sharpen, what capabilities they would like to acquire, and the means by which he/she is going to achieve those objectives. There are few experiences more demoralizing than trying to meet standards that are never disclosed, trying to jump as high as we can but never knowing if it is high enough. In contrast, the process of identifying goals helps to focus and motivate the associate.
In addition to setting performance goals for the coming year, the development plan should describe the new kinds of assignments the associate will tackle, what training may be required to achieve the desired growth, and how the associate will develop greater expertise in a particular practice area. Ideally, the associate should review the plan with his or her mentor or a senior lawyer so that the selected goals are level-appropriate and suited to the firm's practice needs. This process also helps make supervising lawyers aware of the associate's goals, so they can keep an eye out for assignments that help meet them. Once the plan is prepared, the associate should review it every month or two to maintain awareness of larger objectives and set interim, specific goals for moving toward them. At the next evaluation, the plan provides a framework for assessing the associate's growth and measuring the accomplishment of specific objectives.
3. Give associates prompt, frequent, and constructive feedback on completed work.
Although formal evaluations are important, they should not be the firm's primary method of giving performance feedback. The most effective way to promote desirable behaviors and discourage undesirable behaviors is to give the associate constructive feedback as soon as possible after each assignment is completed. Often, time pressures make it difficult for supervising attorneys to sit down with an associate to discuss a completed assignment in detail. However, even a small amount of feedback is more helpful than none. In each assignment, try to find at least one aspect of the associate's work on which you can provide useful comments, preferably both positive and negative.
Often, lawyers forget to give positive feedback, assuming the associate will assume "no news is good news." However, associates, particularly those who are recent law school graduates, are used to getting a steady stream of feedback in the form of grades. When no feedback is given, they often fear the worst, especially if they are top performers. Making the effort to give positive feedback can reap substantial rewards in associate performance, attitude and loyalty.
Although many supervising lawyers are uncomfortable about giving negative feedback, following a few guidelines can make the process easier. As an initial matter, feedback must be given promptly after the assignment is completed, while the thought process that went into the work is still fresh in the associate's mind. To make feedback constructive, it is helpful to (1) make it about the work, not the person; (2) make it as specific as possible, so that the associate knows what particular aspects of the assignment are being discussed; and (3) make it forward-looking, providing the associate with guidance on what to do more, better, or differently the next time.
4. When allocating work assignments, consider the opportunity for professional development the assignment may provide.
Depending on the size of your firm and the nature of its practice, you may have little flexibility in choosing work assignments for particular associates. However, when possible, keep the associates' development plans in mind when delegating work. Try to vary the assignments given to each associate, either by the substantive nature of the assignment or the degree of responsibility she will assume. Consider the extent to which an assignment you might not have delegated, or would have delegated to someone else, might help expand the capabilities of a particular associate. In short, look for opportunities to assign work that will challenge each associate and allow her to grow.
If your practice area or firm structure is not amenable to varied or expanding work assignments, consider accepting pro bono matters as a way to broaden your associates' range of experience. Associates can benefit not only from the training pro bono work provides, but also from the personal rewards that come from community service.
5. Share experience within the firm.
A firm's lawyers represent a gold mine of intellectual capital, a bank vault full of valuable experience. Yet, too often, firms neglect to spread the wealth of experience among their lawyers - from the top down, and from new associates upward as well. By making a conscious effort, firms can design meetings to share experience among their lawyers. For example, when an attorney has closed an unusual deal or tried a case of particular interest, have him share the experience with the firm or practice group. Require the presenting attorney to take their work a step further, by identifying lessons that others can apply to their own cases or matters. Or, when new developments arise in a particular area of law, have a senior lawyer who specializes in that area take the opportunity to share past experience, then explain how the new changes would have affected the outcome of the case or matter, and what implications the changes have for the future.
6. Share newly-gained knowledge.
Similarly, when an attorney in the firm has attended a continuing legal education program on a subject of widespread interest, have him present a condensed version of the program to the attorneys in the firm, particularly those in the relevant practice area. This not only shares the information presented in the CLE program, but for junior associates, it also provides valuable practice in presentation skills. Afterward, make all CLE outlines available in the firm's library and provide extra copies to the attorneys most likely to use them.
Knowledge can also be shared by organizing completed work, such as best examples of a form of document, or research on a commonly encountered subject area, in a brief bank or document file. By making your best examples of past work accessible, developing lawyers can learn from them and use them to shape future projects. Your system can be as elaborate as an intranet with portals to multiple databases, or as simple as a file cabinet with file folders of hard copies. While many firms have some kind of "brief bank" or knowledge organization system, keeping the content up to date often falls by the wayside in the press of day to day business. Consider assigning a junior lawyer to update the database at a scheduled time each week or two, as simply working with the material will make her aware of the resources to be found in the database. By taking time to organize completed work examples, either as they are created or on a scheduled basis, you will improve the quality and consistency of your associates' work product.
7. Encourage internal marketing presentations.
In addition to discussions of particular cases, deals, or newly gained knowledge through a CLE, hold periodic meetings at which the firm's attorneys describe the kinds of work they do and tell perhaps one or two interesting "war stories." Quite frequently, even within a relatively small firm, there are attorneys who have no idea what their colleagues do all day. Holding periodic "practice description" meetings creates this awareness, serving several purposes:
8. Make your own training videos.
Consider having your firm's more experienced lawyers create training videos for the newer lawyers. The technology is cheap, and your own experienced attorneys can tailor the material to your firm's particular practice preferences and client needs, unlike an outside CLE presenter. Videotapes have the added advantage of being easily accessible to learners, and can be especially valuable when an attorney needs "spot" training shortly in advance of having to apply a new skill.
Even in a small or medium-sized practice, the professional growth of a firm's attorneys is too important to be left to chance. There is no end to the list of ways a firm can enhance its learning environment, whether through formalized programs or modifications to existing procedures. The key is to make a conscious decision to plan for - and make policy decisions around - the professional development needs of the firm's lawyers.
Marian Carlson is a consultant specializing in attorney training and professional development. Before starting her consulting firm, Carlson Performance Strategies, Marian practiced law for fifteen years as a commercial litigator in Denver. She can be reached through her Web site, www.carlsonperformancestrategies.com.


text:
Last Width: 100 mm
Flex: 130
The RX 130 embodies what savvy testers and bootfitters want in an expert-level, medium-fit boot: functional and comfortable stance geometry, anatomical shell and liner shape, even and progressive flex feel, contoured instep fit, worthwhile all-mountain application tweaks like a rubberized boot board, grippy toe and heel plates, and simple bombproof gizmos like a Cam-lok power strap (even if its end frays too easily). Testers couldn't say enough about how well this boot skied, handling whatever was thrown at it. "Runs hot, but it's not all-or-nothing. Allows modulation of input." Notes: Polyether lower and polyurethane upper maximize strength and dampness, along with a rubberized bootboard and Ultra grip replaceable soles for impact mitigation. 40 mm CamLock power strap, upper cuff adjustment and rear spoiler on a Control Fit liner comprise the basic features package.
Find this boot and more in our online gearfinder.

subset: commoncrawl


text:
July/August 2012
Dear friends of Istituto Acton,
The beginning of July signals the start of the summer vacation period here, so we've been seeing a flurry of activity coming in the form of new nominations for key Vatican posts, including a new Prefect of the Congregation for the Doctrine of the Faith, a new President at the Pontifical Council for the Family, and even a new position created to handle the very challenging public relations side of Vatican affairs – with my good friend Greg Burke [2] at the helm. Kudos to Greg, whose reporting on all [3] kinds [4] of [5] bizarre [6] things [7], including the latest on the Italian "super tomato [8]," at Fox News we will surely miss. But on second thought, I'm not sure which is a more "bizarre" assignment: trying to explain the European/Italian way of life to American television viewers or trying to get senior Vatican officials to speak and act "on message", as they say in the media world.
As everyone now knows, there are plenty of internal power struggles going in within the Roman Curia; most of these are of interest only to professional Vatican-watchers and have little effect on the life of the Church or the average Catholic. Such distractions, however, take away from Pope Benedict's mission to re-evangelize the Christian world and resist the secularization that is turning Europe into the world's least spiritual and hence least hopeful continent. Despair would be increasing here even without the on-going economic crisis, and every few months there is new concern over the viability of the financial sector in Spain, Italy and beyond. What needs to be done? The Asia Times columnist Spengler put it in terms of a Chinese proverb: "Kill the chicken [Spain] and let the monkey [Italy] watch. [9]" (Spain, of course, re-gained some of its dignity with a dominating victory over Italy in the Euro 2012 football championship. With the London Olympics coming soon, sports seem to be one European activity that is thriving these days. As a friend in Chicago who has many European clients told me, no one will be working in Europe this summer.)
The need for reform, for getting back to some fundamental truths about life, is urgent. The "form" that needs to be recovered has everything to do with faith and freedom, as discussed by many of us at Acton University in Grand Rapids last month and now online [10]. Here [11], for example, is one Italian participant's take on what she saw and heard at our annual seminar. And during my recent stay in Washington, DC, I was alerted to a former US Ambassador's 2009 farewell speech [12] in which he summarizes what ails the Italian economy:
Why does the Italian economy grow so slowly? There are many reasons and the demographic factor surely plays an important role. But I think the heart of the problems resides in policies and the economic climate. Italy repeatedly finds itself very low in international rankings on the conditions to do business and invest. We all know the problems: a heavy bureaucracy, a rigid labor market, organized crime, corruption, a slow justice system, the lack of meritocracy and an education system that doesn't respond to the needs of the 21st century.
In these years, I've asked myself why Italians don't react when they see their own country at the bottom of rankings on world competitiveness. Italy cannot maintain the status of an economic power if its results remain so low. I certainly don't want to say that a country must blindly depend on these economic analyses, but there exists a tight connection betwen the postive data of these studies and economies that are improving. Italians should ask for changes that grow the country and above all look to build a consensus around these. Would it not be a pleasure to see Italy rise again in the international rankings and each year obtain better rankings? Wouldn't it be a reason to be proud for the representatives of all parties, all social groups and all generations?
There's also been a recent study [13] that claims there's a link between strong families and rigid labor markets, giving the impression that countries have to choose between close-knit families and economic growth. The same tension was mentioned by Pope Benedict during his homily [14] at the Mass for the World Meeting of Families in Milan:
In modern economic theories, there is often a utilitarian concept of work, production and the market. Yet God's plan, as well as experience, show that the one-sided logic of sheer utility and maximum profit are not conducive to harmonious development, to the good of the family or to building a just society, because it brings in its wake ferocious competition, strong inequalities, degradation of the environment, the race for consumer goods, family tensions. Indeed, the utilitarian mentality tends to take its toll on personal and family relationships, reducing them to a fragile convergence of individual interests and undermining the solidity of the social fabric.
The pope is criticizing a utilitarian mentality rather than market mechanisms themselves, but there's no question he is placing a healthy market economy within a certain ethical framework that gives priority to non-economic goods, such as the family, over those that can be bought and sold. But it's not as if families can thrive if they don't earn enough money: to paraphrase Aristotle, virtue requires equipment. The question is whether strong families will be enough to get the Italian economy moving again and who can bring about the change that Ambassador Spogli was calling for. Europeans are not working so much they don't have time to start families or worship God in church. Rather than a problem with modern economics, Spengler [15] says it's a combination of pre- and post-modern attitudes that ails Spain and Italy:
Excepting Portugal, the Mediterranean countries combine a pre-modern hostility towards central government with a post-modern indifference to the national future. At just 1.4 children per female, Italy and Spain have some of the lowest fertility rates in the world, which is to say that its citizens are unlikely to sacrifice their pleasures and prerogatives for a national future to which they do not contribute by raising children. Neither country's elite evinces a sense of national obligation. To pay taxes is to play the fool. Italy has a great deal of private wealth and very low levels of private debt (which is only 45% of GDP, one of the lowest ratios in the developed world). If Italians were public-spirited, it would be a simple matter to stabilize the country's public debt, which is tantamount to saying that if we had some meatballs, we could have spaghetti and meatballs, if we had some spaghetti.
If Italians and Spaniards treat their own national government as a hostile entity to be frustrated and evaded at every turn, how would they resound to a fiscal boss from Brussels? The notion that supranational controls can accomplish what national governments have failed to accomplish is one of the stranger ideas to achieve broad purchase in public policy.
Quite sadly, the United States seems to be moving in the same statist direction as Europe. One of the few places in the US that has seen an economic boom in recent years is Washington, DC: its metropolitan area now boasts 4 of the 5 richest counties [16] in the country, and perhaps even more surprisingly, can claim that 80 percent of its women under 45 years of age are childless [17]. These economic and social dynamics have only been intensified under the Obama Administration, whose signature piece of social legislation has just survived a legal challenge by the skin of its decaying teeth and will now become a major issue in the November 6 presidential election. The best that can be said about the Supreme Court ruling that preserved Obamacare is that the outcome will now be decided politically, at the election booth rather than by judicial fiat.
I cannot tell you how many times I've had to explain to European friends why Obamacare is such a bad deal for not only economic freedom in the United States, but religious freedom as well, as the U.S. bishops [18] are now well aware. That the State can compel individuals to buy health insurance doesn't sound like much of an imposition to Old World ears, but that's because they've been surrounded by the same kinds of social policies for generations, to their great material and spiritual detriment. Why any government would want to take on additional entitlement programs when the existing ones are about to collapse under demographic and economic stress is beyond all common sense.
The statist mindset is also alive and well at the United Nations, where the "Rio+20" summit on sustainable development recently concluded. I served on the Holy See delegation to Rio+10 gathering in Johannesburg a decade ago, and came away from that event even more cynical about the UN that I had been, which I can tell you is quite an achievement. One noted economist writes that Rio+20 was "unsustainable nonsense [19]" at some point, the nations of the world should pull the plug on the charade of these mega-conferences, which nothing more than crude attempts to re-distribute wealth to governments whose policies are largely responsible for their peoples' poverty in the first place. But I guess extorting money from the more successful is always easier than reforming one's own draconian economies and putting corrupt politicians out of work.
So where can we turn for hope? As I indicated at the beginning of this letter, and in previous ones too, Pope Benedict is perhaps the only European leader who can credibly talk about the continent's true heritage of faith and reason. We should wish him a restful vacation this July and perhaps a more permanent one for those in his service who are not committed to his vision. With the "year of faith" to begin in October and dour economic times ahead, we really don't need any more foot-dragging, do we?
This month's newsletter is for July and August, so you'll hear from us again in September, and I take this chance to wish you and your families a fruitful summer vacation – whether it's of the American (one week of often frenetic, planned activities) or European (one month followed by a few more weeks to ease back in to work or school) variety!
Kishore Jayabalan


text:
Learning Center Search Results
Showing 11-16 of 16 results
Military Records: Revolutionary War
This lesson describes the value of military records for genealogical purposes. Military records can provide valuable details for family history. Information covered here includes service records and pension records.
Nineteenth Century Soldiers: Getting the Most from Online Resources
This talk aims to explain the intricacies of soldiers' service records online, in record series WO 97, and how using the records of the First World War is something which should be considered when researching nineteenth-century soldiers. William Spencer is The National Archives' principal military specialist, and has worked for The National Archives for the past 17 years. He is the author of a number of books including 'Army Records: A guide for family historians'.
Finding an ancestor using Internet sources from the United Kingdom and Germany. This lesson also includes references to merchant navy records, and the SMS Seeadler (Sea Eagle) also known as the Pass of Balmaha which was commanded by Count Von Luckner. Douglas Page sailed on the SS Horngarth
Royal Hospital Chelsea: Soldiers' Service Documents
Military records specialist William Spencer talks about WO 97, one of The National Archives' most popular record series. This series holds detailed and comprehensive military records of over 1.5 million soldiers who served in the British Army between 1760 and 1913. This talk reveals the enlightening information found in the records, for anyone with ancestors who served in the army during this period.
Selective Service Records (WWI) Draft Cards and More
All males born between September 1872 and September 1900 (citizens and aliens alike) who were not already in U.S. military service were required by congressional conscription acts to register for the draft in light of the Great War—World War 1. Learn how to research draft cards and other sources.
Use the Full Scope of Arkiv Digital for Swedish Genealogy
This hands on webinar shows you 12 steps to get the most of Arkiv Digital. Be sure to download the class handout and follow the steps. This content is useful for all levels: beginner, intermediate, and advanced.


text:
view full screen
Neutral Platform Heel
Style: 570105605
Out of Stock
Neutral toned sandal wrapped with an exotic texture, soft suede feel and a gilded edge. Straight chunky heel and a patent platform.
- Our obsessively great fit feels as beautiful as it looks.
- Breathable lining.
- Super-comfortable memory foam footbed.
- Leather sole scored for traction.
- Suede leather and manmade materials. Imported.
- 4.25" heel. 0.75" platform.
Read more… Read less…


text:
"Thank you for your great witness and ministry to Christ and His Church. I have enjoyed listening to Catholic Answers Live and your apologists for a number of years now. It has been very formative and inspirational in my journey towards becoming a well versed and devoted servant of Christ and His people on earth via His Church."
~ Andrew, Canada
0 results
Subscribe to Catholic Answers Magazine
"The Church has always taken great care that no one should be compelled against his will to embrace the Catholic Faith, because, as Augustine wisely declares: 'except he be willing, man cannot believe'."
~ Leo XIII in his encyclical Immortale Dei (November 1, 1885) quoting Augustine of Hippo, as detailed in the article Religious Toleration


text:
A month of firemen, pottery and silk paintings at the DVAA
September 11, 2013 —
NARROWSBURG, NY — The current exhibit at the Delaware Valley Arts Alliance opened on Friday, September 6 to a sizeable crowd. The "regulars" were there, viewing the dual exhibition by Jane Blake and Carolyn Duke, a display of paintings on silk and pottery respectively. Upstairs in the LOFT Gallery was a new crowd to the art gallery—firefighters. The exhibit is "Volunteer Firefighters: Heroes Among Us," and is an exhibit of photographs and interviews by John Dzowonar and Ellen Bay. While downstairs the guests munched on light fare from Natural Contents, upstairs there was a big crock pot of "Fireman's chili" stewing.
At the downstairs show, "Color," by Blake and Duke, the juxtaposition of Duke's metallic-like pottery with an earthy sheen and Blake's pretty and colorful paintings worked very well. I commented on this complementary element to Duke, and she explained that she had not even seen Blake's paintings before the show. I also asked her about the Raku process with which she makes her pieces. Raku pottery originated in Japan and the way it is made is by heating the pottery quickly to high temperatures and cooling it quickly. This process creates a certain unpredictability, and Duke said sometimes it works and sometimes it doesn't, calling it a "happy accident." The intense color and shine that are in Duke's works make the unpredictability well worth it.
Jane Blake's paintings are wonderful swirls of color, that when looked at closely come alive with texture. Blake paints highly saturated color onto silk, a process that originated in Asia. Inside the main gallery, Blake's paintings are displayed with Duke's pottery. Many of the paintings are large. In the hallway, smaller paintings adorn the wall.
Upstairs in the LOFT Gallery, I could instantly tell it was the firemen show because many of the people were proudly wearing their respective town's fire department shirts. Portraits of volunteer firemen (and women) from Callicoon, Highland Lake, Lake Huntington, Lava, and Narrowsburg hung on the walls next to quotes from their interviews. Each person had their own story about what it meant to them to become a volunteer fireman. Some were funny, some were heartbreaking and all of them were interesting and inspiring.


text:
As anticipated, Phillies outfielder Delmon Young will not be ready for the start of the season and will miss "a while" according to Charlie Manuel. On the bright side, Young reported to camp 30 lbs lighter according to John Clark of NBC 10 but comes to camp without any expectation of when he expects to play according to Ryan Lawrence. Young's absence creates an opportunity for another outfielder to receive significant playing time to start the year in 2013.
36 Comments
I read where Young said he doesn't have a "clue" when he'll be ok'd by the docs. I wish someone would pay me $750,000 to not have a clue. Normally I just do that for free.
Seriously, How can you not ask for a "window" or an "estimate" from the doctor. When I've had surgery I sure did. No one expects medical science to be perfect, every living being is different and they all heal differently. But nothing?, no time frame at all? Delmon Young would have insisted on at least that if he's any kind of competitor. Not a clue? C'mon.
Did he not have a physical. I would think the doctor should have a good idea when he would be recovered. I think it's possible that he wanted a contract and said all the right things. I mean, going from being ready to go in February to who knows when. Come on.
Doctors only give time frames, like 2-4 weeks, 6-8 weeks, etc. That's not very definite.
I had a doctor once tell me my broken wrist would take 6-8 weeks but it took 6 months before the cast could be removed, after which I had to wear a brace for another month. My kidney surgery was supposed to keep me sub-normal for about 3 months, but I was engaging in my usual routine after about 7 weeks. That's how much of a clue doctors have, so I wouldn't expect Young to know more.
Also, if he did give the press a time frame and had complications, everyone would be all over him. He's got a bad enough reputation already, and if fans figured he was slacking, he'd be run out of town on a rail.
I agree that doctors don't really know, and said so above. So just give us the "time frame" set by the doctor instead of saying "I don't have a clue", that's just dumb. If the doctor is wrong that wouldn't make me think less of Delmon Young, it doesn't make him wrong.
I realize that not many people think much of Young now, but I think they should at least see him play here first, sometimes guys find new life by changing teams, it's not impossible. But even the doubters shouldn't blame Young for a doctor's estimate being wrong, should they? The Ryan Howard infection delay is a great example, I don't think anyone blamed Howard. (well, maybe besides our resident broken record, but that's to be expected)
I also blame the media for not digging deeper, they should not accept such a lame answer.
BTW – glad to hear the kidney surgery turned out well for you.
I agree that a doctor's mistaken estimate shouldn't cause adverse fan reaction, but experience tells me it will. Chase Utley, for instance, has been castigated frequently for not being ready when he gave fans the idea he might be, and he actually had a good reputation to begin with. Howard wasn't blamed for anything because no one really expected an early return.
While I'll agree that "no clue" is a shallow answer, I don't think it's any more silly than some of the other things ball players say. I also know that the type of surgery Young had isn't very predictible, and the timeframe may be very vague.
I just thought you were being a little harsh on a guy who's never been known to say intelligent things, and I'm glad to see you are one of those few people who say "see him play here first." That's a much more reasonable approach than so many others are taking.
As far as my own health goes, thanks for your consideration. All I have to worry about now is feeling guilty should a relative need a kidney transplant. Obviously, it'd be too dangerous to donate the only one I have left.
my neurologist told me that after further review that i might not ever function normally . i was devastated! i asked him for a time frame to normality and if it doesn't happen will i be able to play the piano. he said i don't see why not. why do you ask? i said cause i never could play the piano. just saying. and just kiddin. happy saturday to all. lol
I think this is a good opportunity to give Dom chance number 4 in right field and have Ruf try his hand at left. I haven't been too hot on the Delmon Young signing (and I know no one who has), and this could be an opportunity to find out if we just signed a half-decent bat off the bench for less than $1m, once he's healthy. I think Mayberry is a sufficient fall back if Ruf doesn't pan out in left, and both of them can spell a day off here and there for Howard against a lefty.
Aside from the silliness of signing a guy who has played right field zero times since 2007 to be our starting right fielder, this doesn't seem to be a huge problem for the Phils. If nothing else, it gives some of the other guys a chance to shine, and the Phillies aren't actually losing anything proven.
This is why Amaro structured the deal the way he did. If Young does not play it was a minor (for MLB) investment. If he does and Charlie keeps him in the lineup he gets paid more. But let's not forget – whatever his fielding issues – D. Young can hit.
D. Young has been an above average hitter in only one of his 6 seasons as a regular. Over the last two years, he has not hit as well as Mayberry or Brown.
So he sucks at baseball AND he's not healthy. Great pick up Ruben!
That is a good pick by Ruben.
If he was healthy he'd be playing and suck.
After all the lost time from injuries to star players like Utley and Howard it was nice of Ruben to stock the team with players who nobody will miss for a second.
Check his stats against lefties and you will see why it was a no-brainer to pick him up for little to nothing.
They already had Mayberry, who is a better fielder and base runner.
And he hits better against lefties:
Young: .307/.341/.483 (.824 OPS)
Mayberry: .284/.328/.547 (.875 OPS)
Unfortunately, it's only "little to nothing" if he never plays. If he plays vs. lefties (and based on the above, hopefully he won't, he earns $3+ million).
You can always count on schmenkman to fight the good fight with statistics on his side.
This enhances Ruf's opportunity. Let's watch him take full advantage.
I get the impression that some here are somewhat surprised that Delmon Young is not physically fit to play this Spring. I read the newspaper and a few websites on the internet for my source of info and It's old news here about Young's slow recovery from off season surgery on his foot. Some basball writers were of the the opinion that Young's weight problem (which does not help the healing process) and slow recovery from surgery would put him on the 15 day disabled list fior to season opener.
That can be a blessing in disguise (smile) by giving Ruf and Brown more playing time in exhibition games to get the fundamentals down pat in fielding and hitting.
Whatever it takes to get the better player (Brown) the more at-bats… so in a twisted way, this is good news.
Sad, but true…
I normally don' t want Phils players to endure long rehab, but please let D. Young not be ready to play long enough for Dom Brown to nail down the right-field job.
Mike R – Why would you want that? That's like a guarantee that he gets a roster spot on the DL without ever having seen him play. I'd rather he be healthy sooner, and if he's not good enough they can cut bait before going north.
IMO- There are plenty of ST games, split squads etc. for D Brown to prove himself whether D Young is on the field or not.
I'm with Mike R on this one. I don't want a hot streak (or cold streak) in 30 ST games to be a determining factor one way or the other. I am concerned that Young will play as well (sic) as he has the past two years, and that will be viewed as good enough for him to start.
I'm with schmenkman and Mike R…when a GM signs a guy who has produced .267 / .298 / .403 in 1,100+ PA's over the past two seasons, you have to assume that he's pretty much expecting similar production and hoping for better. If Young gets healthy relatively soon and is ready at some point in April, we could very well see the Phils pay $3.5M to a poor fielding, poor base running corner OF with a WRC+ of ~90.
Sounds like Young and Bynum are going to be bowling buddies this Spring.
I don't care what the two year stats on Young are. I just can't see hoping anybody doesn't recover in a hurry; it's just a nasty and cruel way to think.
In any case, I also think the Phils will give all their outfield options an equal chance. I'd rather see some legitimate competition sooner, rather than later.
Surely I am missing something here- someone please help me understand.
Mike R said –
"I normally don' t want Phils players to endure long rehab,but please let D. Young not be ready to play long enough for Dom Brown to nail down the right-field job."
I'd caution that you yield to the old saying, "be careful what you wish for".
Whether you realize it or not, the three of you are implying that you would rather just give an automatic spot on the roster (on the DL) to Delmon Young -sight unseen-, just so that you can see Dom Brown play with less competition in ST. Seriously? Why? Is Brown's ego that fragile? And why is it assumed that Dominic Brown would not get a job if Young played well anyway? Brown's a lefty and Young's a righty. If anything, they are being smart not taking the chance that Darin Ruf's outlier of a season last year is likely to repeat. (although I sure hope it does.)
The team did not sign the free agent Young to cut him without even seeing him play. They will KEEP him around and send someone else down when he is ready. ( April, May, June?) Wouldn't it be better to have that happen in ST when there is at least a chance that Young would not measure up? They could do the same as they did to last year with Dontrelle Willis, a guy they picked up and gave an incentive laden contract that could have paid him well- and then let him go for a paltry 139,000 termination fee. They tried Luis Castillo the year before, he didn't cut the mustard, and they said see you later to him too. If you believe D. Young is that bad, what's the problem?
OR…. Maybe Delmon Young could actually help the club if he plays at the correct weight and keeps himself in shape, it's not impossible.
None of this matters anyway, because Young's goofy doctor won't even give the public a window of when he"ll be ready, they said he'd likely start on the DL so your wish will most likely be granted anyway.
We already know Young will not be ready for the opener. If he was playing in ST, I would be concerned that a short ST streak would be used to make a roster decision. But as it is, the only question now is how far into the regular season he comes back.
The fear (my fear at least) whenever Young returns is that
a) Brown plays as well or better than Young but Young's AVG-HR-RBI stats look better and he gets more playing time
b) Young's stats don't look very good but he gets more playing time anyway because Amaro/Manuel prefer veterans and they continue hoping he might duplicate his one good season.
I want Brown to get a real shot because his upside, in terms of value for money, is so much greater than Young's. If Young is successful, he costs $3.5 M this year, and becomes a FA costing $5-10 M+ in 2014-on.
If Brown is successful, the Phillies have an effective, cheap, controllable outfielder for several years.
I understand that part, but why is it Brown v Young when they hit from different sides of the plate? Why isn't it Ruf v Young?
Has RA Jr. or Manuel made some statement that i missed? Didn't Brown spend much of the last two years learning to play left field just for a situation like this? I don't get why Brown is threatened in this situation at all? The last I read Ruf was really not too good in the OF anyway because it's not his natural position.
Brown, Revere, D Young- seems like the logical combination if they are committed to Young. IMO- The only question is can Ruf overtake Nix?
Lefty, I hope you're right.
What I've heard so far is this:
– Manuel repeatedly saying how much he likes Ruf's bat.
– Amaro saying that in a "perfect world" Young is the starting RFer
– Amaro and Manuel repeatedly downplaying Brown's role, or not mentioning him at all when discussing the outfield.
Now all of that may be simply to downplay the focus and expectations from Brown, since many among the fans and the media inexplicably already seem to have Brown fatigue and are ready to move on to other options. I hope that's the case.
Schmenkman, I think you are underestimating the Phils management when you have fears that Young will get more playing time even if he stinks. Favoring veterans has its limits, and contracts full of playing time incentives are more likely than other contracts to be terminated. (That way, a so-so player can't bilk the club for too much loot.) Young will get a chance, for sure, but with his past weight and attitude issues he'll most likely be on a pretty short leash.
If Young stinks, that sort of ruins Amaro's "perfect world." He's already hedging his bets, because no one has ever said there is such a thing as perfect unless they're talking about God (and even then you might get an argument). At that point, I think Ruben will be exploring the "imperfect world" of Brown or Ruf.
George, again, I hope you're right. They signed him in spite of him stinking the last two years, so my (and others') fear is that that level of performance would be enough to give him the nod.
George I agree, In other words, I think sometimes that people get caught up in "Ibanez-Polanco fear syndrome" (yeah, I just made that up)
The point being- yes the management of this club did keep throwing Ibanez out there every day despite his poor performance due in part, to the large lengthy contract they signed him to. Same for Polanco on a lesser scale (he actually had defensive value)
The team just seemed bound and determined to get their money's worth, squeeze every penny out of their investment.
IMO- this is completely different. Without a long term high salary commitment, there is no chance they keep starting this guy out there every day if he stinks up the joint.
Personally, I hope he proves them right and performs great. I don't care WHICH players help the Phils win a championship, I just want another one.
@Schmenkman- If I'm reading correctly, (I think I have this right) Brown could be eligible for his first Arb year next year, so the cost control may be shorter than you think.
Brown is arb-eligible before the 2015 season (according to Cot's), and becomes a FA in 2018.
It's not Young stinking up the joint in an obvious way (e.g. posting a .150 / .225 / .300 line) that has (others and) me concerned. It's the fear that Charlie will keep starting Young if he performs like he has the past 2 seasons (.267 / .298 / .403). That type of performance should be unacceptable from a corner OF who is a poor fielder and a poor base runner, but they seem committed to finding out whether his 2010 season is more indicative of his future potential than are the 1,100 PA's he accumulated in 2011 and 2012.
hk, Ok So, Why don't we just move right to the bigger issue then.
Would you like to see a certain part of/ all of the management team replaced then? You don't seem to trust their competency.
Your opinion on this won't hurt my feelings one way or the other. I want one thing, a competitive team that can contend for a championship.
Yes, I would like to see a new manager and GM.
My gut feeling is that Delmon Young will basically be a non-factor. So we all need to stop getting our panties up in a bunch about. Can everyone pleeeeaase just let this thing play out…and, yeah….have a bit more faith that the RIGHT decisions will be made when it comes time to make them.
If I'm Domonic Brown and Darin Ruf….especially Brown, since he's presumably at that "make it or break it" point….I'm doing EVERYTHING I can to play my way into that starting lineup and not relinquishing that spot. Make them HAVE to play you.


text:
CINCINNATI — The ballpark suite for Hamilton County taxpayers will be used again this summer for Cincinnati Reds games, this time for a noncontroversial cause — letting children see games with law-enforcement officers.
An agreement has been reached for the Hamilton County sheriff's office to use the Great American Ball Park suite for 20 games this season. Concessions will be donated by Reds food-service provider Delaware North.
"This program is about giving underprivileged students who are facing challenges and yet are succeeding academically the opportunity of a lifetime," said Chief Deputy Mark Schoonover. "Sometimes the less fortunate just need a chance and a little encouragement, especially our youth."
The county hadn't used its suite for three seasons after examples surfaced that local leaders were using it as a political perk, and that suites were being stocked with thousands of dollars' worth of treats, such as Montgomery Inn barbecue. Hamilton County Auditor Dusty Rhodes, critical in the past of how the suites were being used, approves of the new plan.
"It's a good use of the suites," Rhodes said. "As long as it's not for political purposes. That was my concern in the past."
As part of taxpayer funding, the county has the use of a suite in both the baseball and football stadiums. Students accompanied by unpaid volunteer police officers and school volunteers saw the Bengals play in the county's Paul Brown Stadium suite last season.


text:
Ethics, Interest Groups, Political Process
The Ethics, Political Interest Groups & The Political Process class studies the rise of interest groups and their enormous effects on the American political system. The course explores the workings of various groups related to how they target potential members, lobby Congress and other governmental bodies, and conduct campaigns to advance their interests. The ethical dilemmas of such activities, including the often corrosive effect of money and the often uneasy relationship of interest group activity and federal regulation, will also be a major concern.
This course will provide an understanding of the history and influence of public interest groups, an ability to analyze the processes and impact of public interest groups, and an understanding of central and ethical and public service issues relating to public interest groups. This course will cover the origins of interest groups, interest group development and maintenance, targets, money and funding, as well as federal regulations, ethics, lobbying and the integrity of the democratic process.
Coursework may include students facilitating a critical discussion that incorporates the course readings and applies the key concepts to the readings. Students may write a research paper about an interest group that actively participated in the most recent presidential election, and answer the various questions the course has presented.


text:
Elegant and stylish, step into 'Pier' from Tory Burch this spring. Accented with silver hardware.
No results found.
We are not perfect but we try to be! If you are not satisfied, please let us know how we can improve your footnotesonline experience!
Most orders ship within 24 hours of being placed, Monday-Friday. Please refer to the Shipping map below to estimate your delivery date.
Visit US Shipping Page or the International Shipping Page
Please enter your information and we will alert you when your request becomes available!
Note: Due to their popularity, some sizes may not be available from the manufacturer. However we will do our best to accommodate you. Thanks!
Thank you for subscribing to our newsletter.


text: Representatives of energy companies working in Karnes County presented funds totalling $185,000 to go toward the purchase of "Tanker 1" – a 3,000 gallon water tanker truck to be used in response to fires and emergencies all across Karnes County. The special presentation was made on April 25. PXP, BHP, COP, EOG, Marathon and Universal PP each contributed $25,000, NuStar and Pioneer each contributed $10,000, Haliburton and Stream Flo each contributed $5,000, Statoil contributed $3,500 and Nabors contributed $1,500. For more information on how to contribute to the fund raising effort, contact Charlie Malik at 830-780-2666.


text: Find wedding venues in Southern California! See prices, tons of photos, virtual tours, detailed information for gorgeous, affordable and unique Southern California ceremony and reception venues. Before you book, make sure all your questions are answered—in writing. We've created a list of important questions to ask your location to get you started.


text:
Java Training
Performance Consulting
Newsletter Archive
[Issue 243] Hacking together a CircularArrayList (Video Tutorials)
For our 16th anniversary edition, we have produced three short video tutorials on how to build your own CircularArrayList in Java, based on the AbstractList.
[Issue 242] Concurrency Puzzle Explained, Solved With StampedLock
Most programmers had a blind spot with the statement "arr[size++] = e;" We somehow think that size will be updated after the assignment. In this newsletter we look at this basic concurrency bug and also present a solution in the form of the Java 8 StampedLock.
[Issue 241b] Concurrency Puzzle Useful Hints
In the previous newsletter, we sent out a threading puzzle for you to solve. Here are some hints to help you figure out what is going on.
[Issue 241] Concurrency Puzzle - System.arraycopy()
"Friends don't let friends write low level concurrency by themselves." -@karianna. Here is your chance to participate in a global code review puzzle to figure out what's going on in some synchronized code.
[Issue 240] Interfacing with Messy Humans
We humans are rather good at figuring out what is meant from context. Computers are terrible. They do exactly what we tell them to. Fun ensues when we feed them wrong number formatting information.
[Issue 239] Sorting Lists
List has a new method sort(Comparator). This is handy, as it allows implementations to specialize how to sort their internal data structures. Vector only synchronizes once per list, not once per element. ArrayList avoids copying the array unnecessarily. CopyOnWriteArrayList works.
[Issue 238] java.util.Optional - Short Tutorial By Example
Java 8 introduced the java.util.Optional class, based on the famous Guava class by the same name. It was said that we should hardly ever call get(). In this newsletter we offer a short tutorial that demonstrates coding examples of alternatives to get().
[Issue 237] String Compaction
Java 6 introduced a mechanism to store ASCII characters inside byte[] instead of a char[]. This feature was removed again in Java 7. However, it is coming back in Java 9, except this time round, compaction is enabled by default and byte[] is always used.
[Issue 236] Computational Complexity of BigInteger.multiply() in Java 8
BigInteger has new algorithms for multiplying and dividing large numbers that have a better computational complexity than previous versions of Java. A further improvement would be to parallelize multiply() with Fork/Join.
[Issue 235] Checking HashMaps with MapClashInspector
Java 8 HashMap has been optimized to avoid denial of service attacks with many distinct keys containing identical hash codes. Unfortunately performance might degrade if you use your own keys. In this newsletter we show a tool that you can use to inspect your HashMap and view the key distribution within the buckets.
[Issue 234] Random Code Failures - Race Conditions Between Our Code and the JVM
Most of the time our code fails because of bugs in our code. Rarely, however, bugs in the JVM ecosystem cause our systems to fail. These are insanely difficult to diagnose in production systems. In this newsletter we look at two different such race conditions between our code and the JVM.
[Issue 233] Intersection Types to give Lambdas Multiple Personalities
Lambdas are often described as anonymous inner classes without the boilerplate code. However, lambdas are more powerful. Firstly, a lambda does not always result in a new object. Secondly, "this" refers to the outer object. Thirdly, a lambda object can implement multiple interfaces. In this newsletter we will look at this third feature, where cast expressions use intersection types to produce lambdas with several interfaces.
[Issue 232] ByteWatcher from JCrete
Even though standard Java is not real-time, we often use it in time-sensitive applications. Since GC events are often the reason for latency outliers, such code seeks to avoid allocation. In this newsletter we look at some tools to add to your unit tests to check your allocation limits.
[Issue 231] Why Crete?
In this newsletter, Heinz answers the question that he gets asked most: "Why Crete?" "Because I can" could be one answer, but the reality is a bit deeper than that.
[Issue 230] String Substring
Java 7 quietly changed the structure of String. Instead of an offset and a count, the String now only contained a char[]. This had some harmful effects for those expecting substring() would always share the underlying char[].
[Issue 229] Cleaning ThreadLocals
ThreadLocals should in most cases be avoided. They can solve some tough problems, but can introduce some nasty memory leaks, especially if the ThreadLocal class or value refer to our own classes, not a system class. In this newsletter we show some mechanisms that help under OpenJDK.
[Issue 228] Extracting Real Task from FutureTask
ExecutorService allows us to submit either Callable or Runnable. Internally, this is converted to a FutureTask, without the possibility of extracting the original task. In this newsletter we look at how we can dig out the information using reflection.
[Issue 227] How Can I Become a Champion Programmer?
In this newsletter, Heinz talks about some characteristics that are useful if you want to become a successful champion Java programmer.
[Issue 226] Discovering Where Threads Are Being Constructed
How can you discover all the places in your program where threads are being constructed? In this newsletter we create our own little SecurityManager to keep an eye on thread creation.
[Issue 225] Hiding Interface Methods
Whenever a class implements an interface, all the implemented methods have to be public. In this newsletter we look at a trick that we can use to make them private.
[Issue 224] Book Review: Mastering Lambdas: Java Programming in a Multicore World
In his latest book, Maurice Naftalin takes us on a journey of discovery as we learn with him how Lambdas and Streams work in Java 8.
[Issue 223] ManagedBlocker
Blocking methods should not be called from within parallel streams in Java 8, otherwise the shared threads in the common ForkJoinPool will become inactive. In this newsletter we look at a technique to maintain a certain liveliness in the pool, even when some threads are blocked.
[Issue 222] Identity Crisis
The JavaDocs for method Object.hashCode() seems to suggest that the value is somehow related to memory location. However, in this newsletter we discover that there are several different algorithms and that Java 8 has new defaults to give better threading result if we call hashCode a lot.
[Issue 221] Throwing Checked Exceptions From Lambdas
Lambdas in Java took a long time in coming, due to the considerable engineering effort put into incorporating them into the Java Language. Unfortunately checked exceptions are not managed as seamlessly as they should.
[Issue 220b] availableProcessors() Follow-up
Whenever we have thread pools in our system, we need to make their size configurable. In this follow-up, we continue looking at some issues with the common fork/join pool that is used in Java 8.
[Issue 220] Runtime.getRuntime().availableProcessors()
Java 8 magically makes all our code run in parallel. If you believe that, I've got a tower in Paris that I'm trying to sell. Really good price. In this newsletter we look at how the parallism is determined and how we can influence it.
[Issue 219] Recent File List
The LinkedHashMap has a little known feature that can return elements in least recently accessed order, rather than insertion order. In this newsletter we use this to construct a "Recently Used File" list.
[Issue 218] Thread Confinement
One of the techniques we use to ensure that a non-threadsafe class can still be used by multiple threads is to give each thread its own instance. We call this "thread confinement". In this newsletter we look at some of the issues that can happen when this instance leaks.
[Issue 217b] Parallel Parking (Follow-up)
Heavily contended concurrent constructs may benefit from a small pause after a CAS failure, but this may lead to worse performance if we do more work in between each update attempt. In this follow-up newsletter, we show how adding CPU consumption can change our performance characteristics.
[Issue 217] Parallel Parking
What is faster? Synchronized or Atomic compare-and-set? In this newsletter we look at some surprising results when we run Java on the new i7 chip.
[Issue 216] Book Review: Good Math
Software engineers need to have a good understanding of mathematics. In this newsletter, we review a book written by a geek and aimed at the geek who wants to discover interesting facts about maths.
[Issue 215] StampedLock Idioms
Java 8 includes a new synchronization mechanism called StampedLock. It differentiates between exclusive and non-exclusive locks, similar to the ReentrantReadWriteLock. However, it also allows for optimistic reads, which is not supported by the ReentrantReadWriteLock. In this newsletter, we look at some idioms on how to use this new synchronizer.
[Issue 214] CountingCompletionService
CompletionService queues finished tasks, making it easier to retrieve Futures in order of completion. But it lacks some basic functionality, such as a count of how many tasks have been submitted.
[Issue 213] Livelocks from wait/notify
When a thread is interrupted, we need to be careful to not create a livelock in our code by re-interrupting without returning from the method.
[Issue 212] Creating Sets from Maps
Maps and Sets in Java have some similarities. In this newsletter we show a nice little trick for converting a map class into a set.
[Issue 211] Unicode Redux (2 of 2)
We continue our discussion on Unicode by looking at how we can compare text that uses diacritical marks or special characters such as the German Umlaut.
[Issue 210] Calling Methods from a Constructor
In this newsletter we investigate what can go wrong when we call methods from constructors, showing examples from the JDK, Glassfish, Spring Framework and some other well known frameworks..
[Issue 209] Unicode Redux (1 of 2)
Unicode is the most important computing industry standard for representation and handling of text, no matter which of the world's writing systems is used. This newsletter discusses some selected features of Unicode, and how they might be dealt with in Java.
[Issue 208] Throwing Exceptions from Fields
How can you set a field at point of declaration if its constructor throws a checked exception?
[Issue 207] Final Parameters and Local Variables
The trend of marking parameters and local variables as "final" does not really enhance your code, nor does it make it more secure.
[Issue 206] Striped Executor Service
We present a new type of ExecutorService that allows users to "stripe" their execution in such a way that all tasks belonging to one stripe are executed in-order.
[Issue 205] How to Make Your Own Rules
Rule Based Programming, a declarative programming paradigm, is based on logical patterns to select data and associate it with processing instructions. This is a more indirect method than the sequential execution steps of an imperative programming language.
[Issue 204] Book Review: The Well-Grounded Java Developer
Ben Evans and Martijn Verburg explain to us in their new book what it takes to be a well-grounded Java developer. The book contains a section on the new Java 7 features and also vital techniques that we use for producing robust and performant systems.
[Issue 203] GOTO in Java
It is possible to use the break statement to jump out to the end of a labelled scope, resulting in some strange looking code, almost like the GOTO statement in C.
[Issue 202] Distributed Performance Tuning
In this newsletter, it is up to you to figure out how we improved the performance of our previous Fibonacci newsletter by 25%.
[Issue 201] Fork/Join With Fibonacci and Karatsuba
The new Java 7 Fork/Join Framework allows us to define our algorithms using recursion and then to easily parallelize them. In this newsletter we describe how that works using a fast Fibonacci algorithm that uses the sum of the squares rather than brute force. We also present a faster algorithm for multiplying two large BigInteger numbers, using the Fork/Join Framework and the Karatsuba algorithm.
[Issue 200] On Learning Concurrency
Every Java programmer I have met knows that they should know more about concurrency. But it is a topic that is quite hard to learn. In this newsletter I give some tips on how you can become proficient in concurrency.
[Issue 199] Hacking Java Surreptitiously
Surreptitious: stealthy, furtive, well hidden, covert. In this newsletter we will show two Java puzzles written by Wouter Coekaerts that require a surreptitious solution. You cannot do anything to upset the security manager.
[Issue 198] Pushing the Limits in Java's Random
What is the largest double that could in theory be produced by Math.random()? In this newsletter, we look at ways to calculate this based on the 48-bit random generator available in standard Java. We also prove why in a single-threaded program, (int)(Random.nextDouble() + 1) can never be rounded up to 2.
[Issue 197] What is the Meaning of Life?
In this newsletter we try to calculate the meaning of life, with surprising results.
[Issue 196] Uncaught AWT Exceptions in Java 7
Java 7 removes the Swing Event Dispatch Thread (EDT) hack that allowed us to specify an uncaught exception handler for the EDT using a system property sun.awt.exception.handler.
[Issue 195] Performance Puzzler With a Stack Trace
In this newsletter, we present a little performance puzzler, written by Kirk Pepperdine. What is happening with this system? There is only one explanation and it can be discovered by just looking at the stack trace.
[Issue 194] trySynchronize
Did you know that it possible to "try" to synchronize a monitor? In this newsletter we demonstrate how this can be used to avoid deadlocks and to keep the wine coming.
[Issue 193] Memory Usage of Maps
In this newsletter we measure the memory requirements of various types of hash maps available in Java. Maps usually need to be threadsafe, but non-blocking is not always the most important requirement.
[Issue 192b] How Does "this" Escape?
A quick follow-up to the previous newsletter, to show how the ThisEscape class is compiled, causing the "this" pointer to leak.
[Issue 192] Implicit Escape of "this"
We should never allow references to our objects to escape before all the final fields have been set, otherwise we can cause race conditions. In this newsletter we explore how this is possible to do.
[Issue 191] Delaying Garbage Collection Costs
The garbage collector can cause our program to slow down at inappropriate times. In this newsletter we look at how we can delay the GC to never run and thus produce reliable results. Then, instead of actually collecting the dead objects, we simply shut down and start again.
[Issue 190b] Automatically Unlocking with Java 7 - Follow-up
In this newsletter we discuss why we unfortunately will not be able to use the try-with-resource mechanism to automatically unlock in Java 7.
[Issue 190] Automatically Unlocking with Java 7
In this newsletter we explore my favourite new Java 7 feature "try-with-resource" and see how we can use this mechanism to automatically unlock Java 5 locks.
[Issue 189] Fun and Games with Java Lego NXT 2.0
It is almost Christmas time, which gives us an excuse to invest in all sorts of toys. I found that the most ridiculously priced ones are those that promise to have an added benefit besides fun. "Educational", "Good for hand-eye coordination", etc. In this Java newsletter we look at one of these "toys", the Lego Mindstorms NXT 2.0
[Issue 188] Interlocker - Interleaving Threads
In this newsletter, we explore a question of how to call a method interleaved from two threads. We show the merits of lock-free busy wait, versus explicit locking. We also discuss an "unbreakable hard spin" that can cause the JVM to hang up.
[Issue 187] Cost of Causing Exceptions
Many years ago, when hordes of C++ programmers ventured to the greener pastures of Java, some strange myths were introduced into the language. It was said that a "try" was cheaper than an "if" - when nothing went wrong.
[Issue 186] Iterator Quiz
Most of the northern hemisphere is on holiday, so here is a quick quiz for those poor souls left behind manning the email desk. How can we prevent a ConcurrentModificationException in the iterator?
[Issue 185] Book Review: Java: The Good Parts
In his latest book, Jim Waldo describes several Java features that he believes make Java "good". A nice easy read, and I even learned a few new things from it.
[Issue 184] Deadlocks through Cyclic Dependencies
A common approach to ensuring serialization consistency in thread safe classes such as Vector, Hashtable or Throwable is to include a synchronized writeObject() method. This can result in a deadlock when the object graph contain a cyclic dependency and we serialize from two threads. Whilst unlikely, it has happened in production.
[Issue 183] Serialization Size of Lists
What has a larger serializable size, ArrayList or LinkedList? In this newsletter we examine what the difference is and also why Vector is a poor candidate for a list in a serializable class.
[Issue 182] Remote Screenshots
In this newsletter, we describe how we can generate remote screen shots as compressed, scaled JPGs to build a more efficient remote control mechanism.
[Issue 181] Generating Static Proxy Classes - 2/2
In this newsletter, we show how the Generator described in our previous issue can be used to create virtual proxy classes statically, that is, by generating code instead of using dynamic proxies.
[Issue 180] Generating Static Proxy Classes - 1/2
In this newsletter, we have a look at how we can create new classes in memory and then inject them into any class loader. This will form the basis of a system to generate virtual proxies statically.
[Issue 179] Escape Analysis
Escape analysis can make your code run 110 times faster - if you are a really really bad programmer to begin with :-) In this newsletter we look at some of the places where escape analysis can potentially help us.
[Issue 178b] WalkingCollection Generics
Generics can be used to further improve the WalkingCollection, shown in our previous newsletter.
[Issue 178] WalkingCollection
We look at how we could internalize the iteration into a collection by introducing a Processor interface that is applied to each element. This allows us to manage concurrency from within the collection.
[Issue 177] Logging Part 3 of 3
After almost nine years of silence, we come back to bring the logging series to an end, looking at best practices and what performance measurements to log.
[Issue 176] The Law of the Xerox Copier
Concurrency is easier when we work with immutable objects. In this newsletter, we define another concurrency law, The Law of the Xerox Copier, which explains how we can work with immutable objects by returning copies from methods that would ordinarily modify the state.
[Issue 175] Creating Objects Without Calling Constructors
De-Serialization creates objects without calling constructors. We can use the same mechanism to create objects at will, without ever calling their constructors.
[Issue 174] Java Memory Puzzle Explained
In this newsletter, we reveal the answer to the puzzle from last month and explain the reasons why the first class sometimes fails and why the second always succeeds. Remember this for your next job interview ...
[Issue 173] Java Memory Puzzle
In this newsletter we show you a puzzle, where a simple request causes memory to be released, that otherwise could not. Solution will be shown in the next newsletter.
[Issue 172] Wonky Dating
The DateFormat produces some seemingly unpredictable results parsing the date 2009-01-28-09:11:12 as "Sun Nov 30 22:07:51 CET 2008". In this newsletter we examine why and also show how DateFormat reacts to concurrent access.
[Issue 171] Throwing ConcurrentModificationException Early
One of the hardest exceptions to get rid of in a system is th ConcurrentModificationException, which typically occurs when a thread modifies a collection whilst another is busy iterating. In this newsletter we show how we can fail on the modifying, rather than the iterating thread.
[Issue 170] Discovering Objects with Non-trivial Finalizers
It is well known that implementing a non-trivial finalize() method can cause GC and performance issues, plus some subtle concurrency bugs. In this newsletter, we show how we can find all objects with a non-trivial finalize() method, even if they are not currently eligible for finalization.
[Issue 169] Monitoring Sockets
In this newsletter, we show two approaches for listening to bytes on sockets. The first uses the Delegator from our previous newsletter, whereas the second uses AspectJ to intercept the call to Socket.getInput/OutputStream. We also write an MBean to publish this information in JConsole.
[Issue 168] The Delegator
In this newsletter we show the reflection plumbing needed for writing a socket monitor that sniffs all the bytes being sent or received over all the Java sockets. The Delegator is used to invoke corresponding methods through some elegant guesswork.
[Issue 167] Annotation Processing Tool
In this newsletter we answer the question: "How do we force all subclasses to contain a public no-args constructor?" The Annotation Processing Tool allows us to check conditions like this at compile time, rather than only at runtime.
[Issue 166] Serialization Cache
Java's serialization mechanism is optimized for immutable objects. Writing objects without resetting the stream causes a memory leak. Writing a changed object twice results in only the first state being written. However, resetting the stream also loses the optimization stored in the stream.
[Issue 165] Starvation with ReadWriteLocks
In this newsletter we examine what happens when a ReadWriteLock is swamped with too many reader or writer threads. If we are not careful, we can cause starvation of the minority in some versions of Java.
[Issue 164] Why 0x61c88647?
Prior to Java 1.4, ThreadLocals caused thread contention, rendering them useless for performant code. In the new design, each thread contains its own ThreadLocalMap, thus improving throughput. However, we still face the possibility of memory leaks due to values not being cleared out of the ThreadLocalMap with long running threads.
[Issue 163] Book Review: Effective Java 2nd Edition
Joshua Bloch has at long last published an updated version of Effective Java. An essential guide for professional Java programmers who are interested in producing high quality code, this book is also very readable. In this newsletter we describe some of the nuggets found in the book.
[Issue 162] Exceptions in Java
In this article, we look at exception handling in Java. We start with the history of exceptions, looking back at the precursor of Java, a language called Oak. We see reasons why Thread.stop() should not be used and discover the mystery of the RuntimeException name. We then look at some best practices that you can use for your coding, followed by some worst practices, in the form of exception anti-patterns.
[Issue 161] Of Hacking Enums and Modifying "final static" Fields
The developers of the Java language tried their best to stop us from constructing our own enum instances. However, for testing purposes, it can be useful to temporarily add new enum instances to the system. In this newsletter we show how we can do this using the classes in sun.reflect. In addition, we use a similar technique to modify static final fields, which we need to do if we want the switch statements to still work with our new enums.
[Issue 160] The Law of the Uneaten Lutefisk
Imagine a very stubborn viking father insisting that his equally stubborn child eat its lutefisk before going to sleep. In real life one of the "threads" eventually will give up, but in Java, the threads become deadlocked, with neither giving an inch. In this newsletter we discover how we can sometimes escape from such deadlocked situations in Java and learn why the stop() function should never ever ever be called.
[Issue 159] The Law of Sudden Riches
We all expect faster hardware to make our code execute faster and better. In this newsletter we examine why this is not always true. Sometimes the code breaks on faster servers or executes slower than on worse hardware.
[Issue 158] Polymorphism Performance Mysteries Explained
In this newsletter, we reveal some of the polymorphism mysteries in the JDK. The HotSpot Server Compiler can distinguish between mono-morphism, bi-morphism and poly-morphism. The bi-morphism is a special case which executes faster than poly-morphism. Mono-morphism can be inlined by the compiler in certain circumstances, thus not costing anything at all.
[Issue 157] Polymorphism Performance Mysteries
Late binding is supposed to be a bottleneck in applications - this was one of the criticisms of early Java. The HotSpot Compiler is however rather good at inlining methods that are being called through polymorphism, provided that we do not have very many implementation subclasses.
[Issue 156] The Law of Cretan Driving
The Law of Cretan Driving looks at what happens when we keep on breaking the rules. Eventually, we might experience a lot of pain when we migrate to a new architecture or Java Virtual Machine. Even if we decide not to obey them, we need to know what they are. In this newsletter, we point you to some essential reading for every Java Specialist.
[Issue 155] The Law of the Micromanager
In good Dilbert style, we want to avoid having Pointy-Haired-Bosses (PHBs) in our code. Commonly called micromanagers, they can make a system work extremely inefficiently. My prediction is that in the next few years, as the number of cores increases per CPU, lock contention is going to be the biggest performance problem facing companies.
[Issue 154] ResubmittingScheduledPoolExecutor
Timers in Java have suffered from the typical Command Pattern characteristics. Exceptions could stop the timer altogether and even with the new ScheduledPoolExecutor, a task that fails is cancelled. In this newsletter we explore how we could reschedule periodic tasks automatically.
[Issue 153] Timeout on Console Input
In this newsletter, we look at how we can read from the console input stream, timing out if we do not get a response by some timeout.
[Issue 152] The Law of the Corrupt Politician
Corruption has a habit of creeping into system that do not have adequate controls over their threads. In this law, we look at how we can detect data races and some ideas to avoid and fix them.
[Issue 151] The Law of the Leaked Memo
In this fifth law of concurrency, we look at a deadly law where a field value is written early.
[Issue 150] The Law of the Blind Spot
In this fourth law of concurrency, we look at the problem with visibility of shared variable updates. Quite often, "clever" code that tries to avoid locking in order to remove contention, makes assumptions that may result in serious errors.
[Issue 149] The Law of the Overstocked Haberdashery
Learn how to write correct concurrent code by understanding the Secrets of Concurrency. This is the third part of a series of laws that help explain how we should be writing concurrent code in Java. In this section, we look at why we should avoid creating unnecessary threads, even if they are not doing anything.
[Issue 148] Snappy JSliders in Swing
Recent versions of Swing do a good job of mimicking the underlying platform, with a few caveats. For example, the JSlider only snaps onto the correct tick once you let go of the mouse. Here I present a fix for this problem with a non-intrusive one-liner that we can add to the application code.
[Issue 147] The Law of the Distracted Spearfisherman
Learn how to write correct concurrent code by understanding the Secrets of Concurrency. This is the second part of a series of laws that help explain how we should be writing concurrent code in Java. We look at how to debug a concurrent program by knowing what every thread in the system is doing.
[Issue 146] The Secrets of Concurrency (Part 1)
Learn how to write correct concurrent code by understanding the Secrets of Concurrency. This is the first part of a series of laws that help explain how we should be writing concurrent code in Java.
[Issue 145] TristateCheckBox Revisited
The Tristate Checkbox is widely used to represent an undetermined state of a check box. In this newsletter, we present a new version of this popular control, retrofitted to Java 5 and 6.
[Issue 144] Book Review: Java Puzzlers
Experienced Java programmers will love the Java Puzzlers book by Josh Bloch and Neal Gafter, both well known Java personalities. In this newsletter, we look at two of the puzzles as a teazer for the book.
[Issue 143] Maths Tutor in GWT
Google Web Toolkit (GWT) allows ordinary Java Programmers to produce highly responsive web user interfaces, without needing to become experts in JavaScript. Here we demonstrate a little maths game for practicing your arithmetic. Included is an Easter egg.
[Issue 142] Instrumentation Memory Counter
Memory usage of Java objects has been a mystery for many years. In this newsletter, we use the new instrumentation API to predict more accurately how much memory an object uses. Based on earlier newsletters, but revised for Java 5 and 6.
[Issue 141] Hacking Enums
Enums are implemented as constant flyweights. You cannot construct them. You cannot clone them. You cannot make copies with serialization. But here is a way we can make new ones in Java 5.
[Issue 140] Book Review: Java Generics and Collections
Java Generics and Collections is the "companion book" to The Java Specialists' Newsletter. A well written book that explains generics really nicely, including some difficult concepts. In addition, they cover all the new collection classes up to Java 6 Mustang.
[Issue 139] Mustang ServiceLoader
Mustang introduced a ServiceLoader than can be used to load JDBC drivers (amongst others) simply by including a jar file in your classpath. In this newsletter, we look at how we can use this mechanism to define and load our own services.
[Issue 138] Better SQLExceptions in Java 6
Java 6 has support for JDBC 4, which, amongst other things, gives you better feedback of what went wrong with your database query. In this newsletter we demonstrate how this can be used.
[Issue 137] Creating Loggers DRY-ly
A common idiom for logging is to create a logger in each class that is based on the class name. The name of the class is then duplicated in the class, both in the class definition and in the logger field definition, since the class is for some reason not available from a static context. Read how to solve that problem.
[Issue 136] Sneaking in JDBC Drivers
In this newsletter, we look at a technique of how we can replace an existing database driver with our own one. This could be used to migrate an application to a new database where you only have the compiled classes. Or it could be used to insert a monitoring JDBC connection that measures the length of database queries.
[Issue 135] Are you really Multi-Core?
With Java 5, we can measure CPU cycles per thread. Here is a small program that runs several CPU intensive tasks in separate threads and then compares the elapsed time to the total CPU time of the threads. The factor should give you some indication of the CPU based acceleration that the multi cores are giving you.
[Issue 134] DRY Performance
As developers we often hear that performance often comes at the price of good design. However when we have our performance tuning hats on, we often find that good design is essential to help achieve good performance. In this article we will explore one example of where a good design choice has been essential in an effort to improve performance.
[Issue 133] Safely and Quickly Converting EJB3 Collections
When we query the database using EJB3, the Query object returns an untyped collection. In this newsletter we look at several approaches for safely converting this to a typed collection.
[Issue 132] Thread Dump JSP in Java 5
Sometimes it is useful to have a look at what the threads are doing in a light weight fashion in order to discover tricky bugs and bottlenecks. Ideally this should not disturb the performance of the running system. In addition, it should be universally usable and cost nothing. Have a look at how we do it in this newsletter.
[Issue 131] Sending Emails from Java
In this newsletter, we show how simple it is to send emails from Java. This should obviously not be used for sending unsolicited emails, but will nevertheless illustrate why we are flooded with SPAM.
[Issue 130] Deadlock Detection with new Locks
Java level monitor deadlocks used to be hard to find. Then along came JDK 1.4 and showed them in CTRL+Break. In JDK 1.5, we saw the addition of the ThreadMXBean, which made it possible to continually monitor an application for deadlocks. However, the limitation was that the ThreadMXBean only worked for synchronized blocks, and not the new java.util.concurrent mechanisms. In this newsletter, we take a fresh look at the deadlock detector and show what needs to change to make it work under JDK 1.6. Also, we have a look at what asynchronous exceptions are, and how you can post them to another thread.
[Issue 129] Fast Exceptions in RIFE
One of the tricks that Java allows us to employ is to change the control flow of the application using exceptions. This is generally strongly discouraged, since it makes the code hard to decipher. In addition, exceptions are notoriously bad at performance. Here is a trick used in RIFE to make this work faster.
[Issue 128] SuDoKu Madness
In this Java Specialists' Newsletter, we look at a simple Java program that solves SuDoKu puzzles.
[Issue 127] Casting like a Tiger
Java 5 adds a new way of casting that does not show compiler warnings or errors. Yet another way to shoot yourself in the foot?
[Issue 126] Proxy equals()
When we make proxies that wrap objects, we have to remember to write an appropriate equals() method. Instead of comparing on object level, we need to either compare on interface level or use a workaround to achieve the comparisons on the object level, described in this newsletter.
[Issue 125] Book Review: Java Concurrency in Practice
We review Java Concurrency in Practice by Brian Goetz. Brian's book is the most readable on the topic of concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. It is interesting, useful, and relevant to the problems facing Java developers today.
[Issue 124] Copying Arrays Fast
In this newsletter we look at the difference in performance between cloning and copying an array of bytes. Beware of the Microbenchmark! We also show how misleading such a test can be, but explain why the cloning is so much slower for small arrays.
[Issue 123] Strategy Pattern with Generics
The Strategy Pattern is elegant in its simplicity. With this pattern, we should try to convert intrinsic state to extrinsic, to allow sharing of strategy objects. It gets tricky when each strategy object needs a different set of information in order to do its work. In this newsletter, we look at how we can use Java 5 Generics to pass the correct subtype of the context into each strategy object.
[Issue 122] Copying Files from the Internet
Sometimes you need to download files using HTTP from a machine that you cannot run a browser on. In this simple Java program we show you how this is done. We include information of your progress for those who are impatient, and look at how the volatile keyword can be used.
[Issue 121] How Deep is Your Hierarchy?
Someone asked me yesterday what the maximum inheritance depth is in Java. I guessed a value of 65535, but for practical purposes, not more than 5. When I asked performance guru Kirk Pepperdine to estimate, he shot back with 63. In this newsletter, we look at the limitations in the JVM and examine some existing classes.
[Issue 120] Exceptions From Constructors
What do you do when an object cannot be properly constructed? In this newsletter, we look at a few options that are used and discuss what would be best. Based on the experiences of writing the Sun Certified Programmer for Java 5 exam.
[Issue 119] Book Review: "Wicked Cool" Java
The book "Wicked Cool Java" contains a myriad of interesting libraries, both from the JDK and various open source projects. In this review, we look at two of these, the java.util.Scanner and javax.sql.WebRowSet classes.
[Issue 118] A Simple Database Viewer
A simple database viewer written in Java Swing that reads the metadata and shows you all the tables and contents of the tables, written in under 100 lines of Java code, including comments.
[Issue 117] Reflectively Calling Inner Class Methods
Sometimes frameworks use reflection to call methods. Depending how they find the correct method to call, we may end up with IllegalAccessExceptions. The naive approach of clazz.getMethod(name) is not correct when we send instances of non-public classes.
[Issue 116] Closing Database Statements
Don't Repeat Yourself. The mantra of the good Java programmer. But database code often leads to this antipattern. Here is a neat simple solution from the Jakarta Commons DbUtils project.
[Issue 115] Young vs. Old Generation GC
A few weeks ago, I tried to demonstrate the effects of old vs. new generation GC. The results surprised me and reemphasized how important GC is to your overall program performance.
[Issue 114] Compile-time String Constant Quiz
When we change libraries, we need to do a full recompile of our code, in case any constants were inlined by the compiler. Find out which constants are inlined in this latest newsletter.
[Issue 113] Enum Inversion Problem
A problem that I encountered when I first started using enums was how to serialize them to some persistent store. My initial approach was to write the ordinal to the database. In this newsletter, I explore some ideas of a more robust approach. It will also show you some applications of Java generics.
[Issue 112] Book Review: Head First Design Patterns
This book is a fantastic introduction to Design Patterns, probably the best available. In this newsletter, I look at some of the winning formulae used in the book, and explain why they work. I also give some tips of where I disagree with the book and some additional information that will be useful to you.
[Issue 111] What is faster - LinkedList of ArrayList?
[Issue 110] Break to Labeled Statement
[Issue 109] Strategy Pattern of HashCode Equality
[Issue 108] Object Adapter based on Dynamic Proxy
[Issue 107] Making Enumerations Iterable
[Issue 106] Multi-line cells in JTable in JDK 1.4+
[Issue 105] Performance Surprises in Tiger
[Issue 104] EDT Lockup Detection
[Issue 103] New for/in loop gymnastics
[Issue 102] Mangling Integers
[Issue 101b] Causing Deadlocks in Swing Code (Follow-up)
[Issue 101] Causing Deadlocks in Swing Code
[Issue 100] Java Programmers aren't Born
[Issue 099] Orientating Components Right to Left
[Issue 098] References
[Issue 097] Mapping Objects to XML Files using Java 5 Annotations
[Issue 096] Java 5 - "final" is not final anymore
[Issue 095b] Follow-up: Self-reloading XML Property Files
[Issue 095] Self-reloading XML Property Files
[Issue 094] Java Field Initialisation
[Issue 093] Automatically Detecting Thread Deadlocks
[Issue 092] OutOfMemoryError Warning System
[Issue 091] Controlling Machines Remotely with Java
[Issue 090] Autoboxing Yourself in JDK 1.5
[Issue 089] Catching Uncaught Exceptions in JDK 1.5
[Issue 088] Resetting ObjectOutputStream
[Issue 087] sun.reflect.Reflection
[Issue 086b] Initialising Fields before Superconstructor call (Follow-up)
[Issue 086] Initialising Fields before Superconstructor call
[Issue 085] Book Review: Pragmatic Programmer
One of my favourite software development books, this one takes a good hard look at how to be a programmer in the real world. Surprisingly thin for a book with this much substance, I refer to the ideas in here all the time. The pragmatic bunch have built an entire industry around their software pragmatism.
[Issue 084] Ego Tripping with Webservices
[Issue 083] End of Year Puzzle
[Issue 083b] End of Year Puzzle Follow-up
[Issue 082] TristateCheckBox based on the Swing JCheckBox
[Issue 081] Catching Exceptions in GUI Code
[Issue 080] Many Public Classes in One File
[Issue 079] Generic toString()
[Issue 078] MemoryCounter for Java 1.4
[Issue 077] "Wonderfully disgusting hack"
[Issue 076] Asserting Locks
[Issue 075] An Automatic Wait Cursor: WaitCursorEventQueue
[Issue 074] GoF Factory Method in writing GUIs
[Issue 073] LinkedHashMap is Actually Quite Useful
[Issue 072] Java and Dilbert
[Issue 071] Overloading considered Harmful
[Issue 070b] Multi-Dimensional Arrays - Creation Performance
[Issue 070] Too many dimensions are bad for you
[Issue 069b] Results of last survey
[Issue 069] Treating Types Equally - or - Life's Not Fair!
[Issue 068] Appending Strings
[Issue 067] BASIC Java
[Issue 066] Book Review: Java Performance Tuning by Jack Shirazi
In this book, Jack outlines the process used to make Java systems run faster. He gives lots of tips on how to find your bottlenecks and then also gives specific tricks to make your code just that bit faster. A must-have for Java programmers who care about the speed of their programs.
[Issue 065] Wait, Cursor, Wait!
[Issue 064] Disassembling Java Classes
[Issue 063] Revisiting Stack Trace Decoding
[Issue 062b] Follow-up and Happy New Year!
[Issue 062] The link to the outer class
[Issue 061] Double-checked locking
[Issue 060] Nulling variables and garbage collection
[Issue 059b] Follow-up to Loooong Strings
[Issue 059] When arguments get out of hand...
[Issue 058] Counting bytes on Sockets
[Issue 057] A Tribute to my Dad, Hans Rudolf Kabutz
[Issue 056] Shutting down threads cleanly
[Issue 055] Once upon an Oak ...
[Issue 054b] Follow-up to JDK 1.4 HashMap hashCode() mystery
[Issue 054] HashMap requires a better hashCode() - JDK 1.4 Part II
[Issue 053] Charting unknown waters in JDK 1.4 Part I
[Issue 052] J2EE Singleton
[Issue 051] Java Import Statement Cleanup
[Issue 050] Commenting out your code?
[Issue 049] Doclet for finding missing comments
[Issue 048] Review: The Secrets of Consulting
How much do your customers love you? How should you give and receive advice? In this excellent book, we learn why it is so important to understand your customer. I use the principles daily in my work with code reviews, performance tuning and dealing with customers or clients.
[Issue 047] Lack of Streaming leads to Screaming
[Issue 046] "The compiler team is writing useless code again ..."
[Issue 045] Multi-line cells in the JTable
[Issue 044] Review: Object-Oriented Implementation of Numerical Methods
In our first book review, we look at an interesting book that talks about implementing numerical methods in Java. Although not primarily a Java book, it gives us some insight as to the performance of Java versus other languages like C or Smalltalk.
[Issue 043] Arrgh, someone wants to kill me!
[Issue 042] Speed-kings of inverting booleans
[Issue 041] Placing components on each other
[Issue 040] Visiting your Collection's Elements
[Issue 039] Why I don't read your code comments ...
[Issue 038a] Counting Objects Clandestinely
[Issue 038b] Counting Objects Clandestinely - Follow-up
[Issue 037] Checking that your classpath is valid
[Issue 036] Using Unicode Variable Names
[Issue 035] Doclets Find Bad Code
[Issue 034] Generic Types with Dynamic Decorators
[Issue 033] Making Exceptions Unchecked
[Issue 032] Exceptional Constructors - Resurrecting the dead
[Issue 031] Hash, hash, away it goes!
When I first started using Java in 1997, I needed very large hash tables for matching records as quickly as possible. We ran into trouble when some of the keys were mutable and ended up disappearing from the table, and then reappearing again later.
[Issue 030] What do you Prefer?
[Issue 029] Determining Memory Usage in Java
[Issue 028] Multicasting in Java
[Issue 027] Circular Array List
[Issue 026] Package Versioning
[Issue 025] Final Newsletter
[Issue 024] Self-tuning FIFO Queues
[Issue 023] Socket Wheel to handle many clients
[Issue 022] Classloaders Revisited: "Hotdeploy"
[Issue 021] Non-virtual Methods in Java
[Issue 020] Serializing Objects Into Database
[Issue 019] Finding Lost Frames
[Issue 018] Class names don't identify a class
[Issue 017b] Follow-up
[Issue 017a] Switching on Object Handles
[Issue 016] Blocking Queue
[Issue 015] Implementing a SoftReference based HashMap
[Issue 014] Insane Strings
[Issue 013b] Follow-up
[Issue 013a] Serializing GUI Components Across Network
[Issue 012] Setting focus to second component of modal dialog
[Issue 011] Hooking into the shutdown call
[Issue 010] Writing GUI Layout Managers
[Issue 009] Depth-first Polymorphism
[Issue 008] boolean comparisons
[Issue 007] java.awt.EventQueue
In this newsletter, we learn how we can create our own EventQueue and then use that to intercept all the events that arrive in AWT/Swing.
[Issue 006] Implementation code inside interfaces
Did you know that it is possible to define inner classes inside interfaces? This little trick allows us to create method objects inside an interface.
[Issue 005] Dynamic Proxies - Short Tutorial
Dynamic proxies can help us reduce the amount of code we have to write. In this newsletter, our guest author, Dr Christoph Jung, gives us a short tutorial on how the dynamic proxies work.
[Issue 004] Logging part 2
We look at some tricks on how we can track where things are happening in our code, which can then be used for producing more detailed logging.
[Issue 003] Logging part 1
In this newsletter we look at how we can write a TeeOutputStream that works similarly to the unix "tee" utility and pipes the output to two different OutputStreams. We can then reassign System.out to be written to a file and to the old System.out.
[Issue 002] Anonymous Inner Classes
Anonymous inner classes allow us to call super class methods inside its initializer block. We can use this to add values to a collection at point of creation, for example: new Vector(3) {{ add("Heinz"); add("John"); add("Anton"); }});
[Issue 001] Deadlocks
Java deadlocks can be tricky to discover. In this very first Java Specialists' Newsletter, we look at how to diagnose such an error and some techniques for solving it.
Extreme Java - Concurrency and Performance for Java 8
Extreme Java - Advanced Topics for Java 8
Design Patterns
In-House Courses
© 2010-2016 Heinz Kabutz - All Rights Reserved
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. JavaSpecialists.eu is not connected to Oracle, Inc. and is not sponsored by Oracle, Inc.


text:
Enjoy this article? You may also be interested in these related items from our partners
Loungefly Star
Wars Tattoo Zip Wallet
Coin Purse
Modern Marvels:
Coin Operated II
Via its new blog, Walt Disney World has announced that it is participating in a pilot program to enter US $1 coins into circulation from retail and dining locations in Epcot's American Adventure and Magic Kingdom's Liberty Square.
Quoting it as a move towards the Disney-coined environmentality iniative, the coins will be distributed in lieu of 'paper' dollar bills as change.


text:
The Environmental & Public Works Senate committee takes the book to class scientifically but I will recap some of the scientific points before I move on.
- The book claims polar bears are starving and dying left and right while reports say the population on the whole is either stable or increasing; take that Robert Christopherson!
- Another claim is that this climate change is human caused. This ignores those who question the man's effect on the climate and those who point out rapid climate change on other worlds.
A second thing I have against the book is its politics. It blames "rich countries" for global warming. Never mind industrialized countries have decreased greenhouse gas emissions by 3.3 percent from 1990 to 2004. Turkey has increased by 72.6% (Kansas City Star; A1; 10/31/06) while India and China increase can be measured geometrically. The Kyoto Climate Change treaty would impose no restrictions on these countries. China alone will pass the U.S. in emissions in 2009 if trends continue.
The third complaint is cultural. The book was made by elitists at the United Nations. The Eskimo (Inuit is a specific group of Eskimo so I am being accurate with the term) child encounters "Sedna, the Mother of the Sea" who identifies itself as creator of all sea life. Let me break this down the meaning: to be in touch with nature the child and Eskimos have to be pagan, never mind most Eskimos in Greenland are Lutherans. Also, the story trivalize beliefs- the sea goddess is just as real as the talking animals. Can you imagine the United Nations making a book where young Peter is warned by Jesus about climate change or young Moqtada is warned by Muhammad? No, of course not. Eskimos and religion are fair game.
The last bit is the most repulsive. When the child reaches information overload the whale character complements the child saying that is a good thing and to get angry. This is a message to children not to question what is being told to them and become drones.
I am not denying climate change. All I am doing is making a public call for reason. If there is climate change that means humans as a whole will have to deal with some pretty important problems. The only way we can correctly solve these problems (or at least work around them) is to have cool heads with solid information. Let us all think. No Medieval calls for end of discussion, no demonization, let us all work together for a better world.
Category: Miscellaneous